A modern, cross-browser extension for Chrome (Manifest V3), Firefox (Manifest V2), and Safari (Manifest V2) that enhances and streamlines functionality on the Church of Jesus Christ of Latter-day Saints Leader and Clerk Resources (LCR) platform.
v0.21.x) with Vite bundlerv5.8.x) in Strict Mode (zero-any policy)@testing-library/domnpmcd extension
npm install
Run development servers with hot-module reloading and automatic extension reloading:
# Chrome (Manifest V3)
npm run dev
# Firefox (Manifest V2)
npm run dev:firefox
# Safari (Manifest V2)
npm run dev:safari
All verification commands are enforced in CI and development:
# Type check without emitting files
npm run compile
# Run Vitest unit and functional test suites
npm test
# Run tests in watch mode
npm run test:watch
# Generate test coverage report
npm run test:coverage
# Format all files with Prettier
npm run format
# Verify Prettier code formatting compliance
npm run format:check
# Check for package dependency vulnerabilities
npm audit
Compile production bundles for all target browsers:
# Compile bundles for Chrome MV3, Firefox MV2, and Safari MV2
npm run build:all
# Or compile individually:
npm run build # Chrome MV3 -> output/chrome-mv3
npm run build:firefox # Firefox MV2 -> output/firefox-mv2
npm run build:safari # Safari MV2 -> output/safari-mv2
# Package production builds into distributable zip archives
npm run zip:all
chrome://extensions in the URL bar.output/chrome-mv3 directory.about:debugging#/runtime/this-firefox in the URL bar.output/firefox-mv2/manifest.json.npm run build:safari.output/safari-mv2 build using Xcode or xcrun safari-web-extension-converter output/safari-mv2.Please consult AGENTS.md for strict architectural rules:
index.ts, types.ts, utils.ts, <helper>.ts).any policy: Every variable, function parameter, and return value must have an explicit representative type.src/actions/registry.ts.All data processing is conducted locally in memory within your browser session. No church member data or personal records are ever tracked, logged remotely, or transmitted to third-party servers.
Note: LCR Tools is an independent open-source project and is not affiliated with or endorsed by The Church of Jesus Christ of Latter-day Saints.