browser-extensions-playground
    Preparing search index...

    browser-extensions-playground

    browser-extensions-playground

    Coverage Build Size Report

    Playground for browser scraping extensions and scraped data tooling. The repository also tracks built package artifact size with gh-build-size.

    This workspace centers on a single local scraping server.

    Install dependencies:

    bun install
    

    Start the local scraping server:

    cd packages/scraping-server
    bun run build
    bun run start -- --store-file .tmp/scraping-server/deterministic.sqlite

    Build an extension and load its dist directory as an unpacked Chrome extension:

    cd packages/scraping-extension-devtools
    bun run build

    For package-specific setup, API details, metric semantics, and MCP usage, follow the package README links above.

    bun run build
    
    bun run typecheck
    bun run test
    bun run playwright:test

    This repository uses lefthook to run the same checks as CI locally before commits and pushes. This brings feedback earlier without changing what CI runs.

    Install the hooks once after cloning:

    bunx lefthook install
    

    pre-commit — runs on every git commit:

    Check Command
    Lint bun run lint
    Typecheck bun run typecheck

    pre-push — runs on every git push:

    Check Command
    Lint bun run lint
    Typecheck bun run typecheck
    Unit tests bun run test

    Playwright / end-to-end tests are intentionally excluded from hooks and from CI because they require a browser environment. Run them locally with bun run playwright:test before merging changes that touch extension build output or runtime behaviour.

    Checked-in packages/*/package.json versions are the release source of truth. Before creating a GitHub release, bump the package versions in the same pull request that prepares the release. The release workflow verifies that every workspace package shares the same committed version and, for release events, that the version matches the release tag. It does not rewrite package manifests during CI.

    MIT