lcr-tools

LCR Tools Extension

CI Testing Chrome Web Store Version License

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.


Features


Tech Stack


Getting Started

Prerequisites

Installation

cd extension
npm install

Development

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

Testing & Quality Assurance

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

Building for Production

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

Loading Unpacked Extension in Browsers

Google Chrome / Chromium Browsers (Brave, Edge)

  1. Open chrome://extensions in the URL bar.
  2. Toggle Developer mode in the upper right corner.
  3. Click Load unpacked.
  4. Select the output/chrome-mv3 directory.

Mozilla Firefox

  1. Open about:debugging#/runtime/this-firefox in the URL bar.
  2. Click Load Temporary Add-on….
  3. Select output/firefox-mv2/manifest.json.

Apple Safari

  1. Run npm run build:safari.
  2. Convert or package the output/safari-mv2 build using Xcode or xcrun safari-web-extension-converter output/safari-mv2.

Architecture & Code Guidelines

Please consult AGENTS.md for strict architectural rules:


Privacy & Disclaimer

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.