From f174a54f613cfd8e744712796f339d1c1997010d Mon Sep 17 00:00:00 2001 From: Aaron Date: Tue, 13 Aug 2024 14:43:38 -0500 Subject: [PATCH] chore: Refactor to bun workspaces (#66) --- .github/workflows/publish-packages.yml | 1 - .github/workflows/validate.yml | 65 +- .gitignore | 3 + .husky/pre-commit | 4 - .prettierignore | 4 + bun.lockb | Bin 0 -> 563576 bytes docs/.gitignore | 24 + docs/.vitepress/config.ts | 181 - docs/.vitepress/theme/components/Chip.vue | 64 - .../.vitepress/theme/components/ChipGroup.vue | 14 - .../theme/components/ContributorList.vue | 63 - docs/.vitepress/theme/index.ts | 18 - docs/.vitepress/theme/styles/vars.css | 112 - docs/__mocks__/webextension-polyfill.ts | 3 - docs/_redirects.txt | 26 + docs/app.config.ts | 17 + .../0.get-started/0.introduction.md} | 31 +- .../0.get-started/1.browser-support.md | 18 + .../0.get-started/2.contributing.md} | 46 +- docs/content/fake-browser/0.installation.md | 25 + .../fake-browser/1.testing-frameworks.md} | 6 +- .../fake-browser/2.triggering-events.md} | 8 +- .../fake-browser/3.reseting-state.md} | 8 +- .../fake-browser/4.implemented-apis.md | 122 + .../fake-browser/api.md} | 10 +- docs/content/index.md | 118 + .../isolated-element/0.installation.md} | 19 +- .../isolated-element/api.md} | 21 +- .../job-scheduler/0.installation.md} | 43 +- .../job-scheduler/api.md} | 14 +- .../match-patterns/0.installation.md} | 19 +- .../match-patterns/api.md} | 10 +- .../messaging/0.installation.md} | 49 +- .../messaging/1.protocol-maps.md} | 10 +- .../messaging.md => content/messaging/api.md} | 32 +- .../proxy-service/0.installation.md} | 42 +- .../proxy-service/1.defining-services.md} | 10 +- .../proxy-service/api.md} | 27 +- .../storage/0.installation.md} | 20 +- .../storage/1.typescript.md} | 11 +- .../storage.md => content/storage/api.md} | 30 +- ...ipt-docs.ts => generate-api-references.ts} | 306 +- docs/guide/browser-support.md | 18 - docs/guide/fake-browser/implemented-apis.md | 57 - docs/guide/fake-browser/index.md | 28 - docs/index.md | 55 - docs/nuxt.config.ts | 5 + docs/package.json | 19 + docs/plugins/redirects.ts | 29 + docs/public/_headers | 11 - docs/public/favicon.ico | Bin 0 -> 180375 bytes docs/public/logo.svg | 13 - docs/public/robots.txt | 1 + .../snippets/ensureNotificationExists.test.ts | 42 - .../setupNotificationShownReports.test.ts | 26 - docs/tsconfig.json | 4 + docs/vitest.config.ts | 9 - docs/vitest.setup.ts | 3 - package.json | 43 +- packages/fake-browser/package.json | 20 +- packages/isolated-element-demo/index.html | 2 +- packages/isolated-element-demo/package.json | 10 +- packages/isolated-element/package.json | 18 +- packages/job-scheduler/package.json | 18 +- packages/match-patterns/package.json | 18 +- packages/messaging-demo/package.json | 14 +- .../src/assets/google.injected.ts | 8 - packages/messaging-demo/src/background.ts | 16 - .../src/entrypoints/background.ts | 16 + .../src/entrypoints/google-injected.ts | 8 + .../src/entrypoints/google.content.ts | 15 + .../popup/index.html} | 4 +- .../{popup.ts => entrypoints/popup/main.ts} | 2 - packages/messaging-demo/src/google.cs.ts | 12 - packages/messaging-demo/src/manifest.json | 23 - .../messaging-demo/src/public}/.keep | 0 .../messaging-demo/src/utils/messaging.ts | 6 +- packages/messaging-demo/tsconfig.json | 5 +- packages/messaging-demo/vite.config.ts | 17 - packages/messaging-demo/wxt.config.ts | 13 + packages/messaging/package.json | 18 +- packages/messaging/src/types.ts | 8 +- packages/proxy-service-demo/package.json | 12 +- packages/proxy-service-demo/src/background.ts | 3 - .../src/entrypoints/background.ts | 3 + .../popup/index.html} | 4 +- .../{popup.ts => entrypoints/popup/main.ts} | 2 - packages/proxy-service-demo/src/manifest.json | 11 - packages/proxy-service-demo/src/public/.keep | 0 .../src/{ => utils}/math-service.ts | 0 packages/proxy-service-demo/tsconfig.json | 3 + packages/proxy-service-demo/vite.config.ts | 13 - packages/proxy-service-demo/wxt.config.ts | 5 + packages/proxy-service/package.json | 20 +- .../src/defineProxyService.test.ts | 4 +- packages/proxy-service/src/types.ts | 13 +- packages/storage/package.json | 16 +- packages/tsconfig/package.json | 5 +- pnpm-lock.yaml | 6756 ----------------- pnpm-workspace.yaml | 2 - turbo.json | 9 - 101 files changed, 953 insertions(+), 8216 deletions(-) delete mode 100755 .husky/pre-commit create mode 100755 bun.lockb create mode 100644 docs/.gitignore delete mode 100644 docs/.vitepress/config.ts delete mode 100644 docs/.vitepress/theme/components/Chip.vue delete mode 100644 docs/.vitepress/theme/components/ChipGroup.vue delete mode 100644 docs/.vitepress/theme/components/ContributorList.vue delete mode 100644 docs/.vitepress/theme/index.ts delete mode 100644 docs/.vitepress/theme/styles/vars.css delete mode 100644 docs/__mocks__/webextension-polyfill.ts create mode 100644 docs/_redirects.txt create mode 100644 docs/app.config.ts rename docs/{guide/index.md => content/0.get-started/0.introduction.md} (80%) create mode 100644 docs/content/0.get-started/1.browser-support.md rename docs/{guide/contributing.md => content/0.get-started/2.contributing.md} (85%) create mode 100644 docs/content/fake-browser/0.installation.md rename docs/{guide/fake-browser/testing-frameworks.md => content/fake-browser/1.testing-frameworks.md} (98%) rename docs/{guide/fake-browser/triggering-events.md => content/fake-browser/2.triggering-events.md} (72%) rename docs/{guide/fake-browser/reseting-state.md => content/fake-browser/3.reseting-state.md} (97%) create mode 100644 docs/content/fake-browser/4.implemented-apis.md rename docs/{api/fake-browser.md => content/fake-browser/api.md} (61%) create mode 100644 docs/content/index.md rename docs/{guide/isolated-element/index.md => content/isolated-element/0.installation.md} (85%) rename docs/{api/isolated-element.md => content/isolated-element/api.md} (60%) rename docs/{guide/job-scheduler/index.md => content/job-scheduler/0.installation.md} (85%) rename docs/{api/job-scheduler.md => content/job-scheduler/api.md} (90%) rename docs/{guide/match-patterns/index.md => content/match-patterns/0.installation.md} (78%) rename docs/{api/match-patterns.md => content/match-patterns/api.md} (72%) rename docs/{guide/messaging/index.md => content/messaging/0.installation.md} (88%) rename docs/{guide/messaging/protocol-maps.md => content/messaging/1.protocol-maps.md} (94%) rename docs/{api/messaging.md => content/messaging/api.md} (95%) rename docs/{guide/proxy-service/index.md => content/proxy-service/0.installation.md} (86%) rename docs/{guide/proxy-service/defining-services.md => content/proxy-service/1.defining-services.md} (95%) rename docs/{api/proxy-service.md => content/proxy-service/api.md} (82%) rename docs/{guide/storage/index.md => content/storage/0.installation.md} (83%) rename docs/{guide/storage/typescript.md => content/storage/1.typescript.md} (94%) rename docs/{api/storage.md => content/storage/api.md} (74%) rename docs/{.vitepress/plugins/typescript-docs.ts => generate-api-references.ts} (57%) delete mode 100644 docs/guide/browser-support.md delete mode 100644 docs/guide/fake-browser/implemented-apis.md delete mode 100644 docs/guide/fake-browser/index.md delete mode 100644 docs/index.md create mode 100644 docs/nuxt.config.ts create mode 100644 docs/package.json create mode 100644 docs/plugins/redirects.ts delete mode 100644 docs/public/_headers create mode 100644 docs/public/favicon.ico delete mode 100644 docs/public/logo.svg create mode 100644 docs/public/robots.txt delete mode 100644 docs/snippets/ensureNotificationExists.test.ts delete mode 100644 docs/snippets/setupNotificationShownReports.test.ts create mode 100644 docs/tsconfig.json delete mode 100644 docs/vitest.config.ts delete mode 100644 docs/vitest.setup.ts delete mode 100644 packages/messaging-demo/src/assets/google.injected.ts delete mode 100644 packages/messaging-demo/src/background.ts create mode 100644 packages/messaging-demo/src/entrypoints/background.ts create mode 100644 packages/messaging-demo/src/entrypoints/google-injected.ts create mode 100644 packages/messaging-demo/src/entrypoints/google.content.ts rename packages/messaging-demo/src/{popup.html => entrypoints/popup/index.html} (93%) rename packages/messaging-demo/src/{popup.ts => entrypoints/popup/main.ts} (96%) delete mode 100644 packages/messaging-demo/src/google.cs.ts delete mode 100644 packages/messaging-demo/src/manifest.json rename {docs/blog => packages/messaging-demo/src/public}/.keep (100%) delete mode 100644 packages/messaging-demo/vite.config.ts create mode 100644 packages/messaging-demo/wxt.config.ts delete mode 100644 packages/proxy-service-demo/src/background.ts create mode 100644 packages/proxy-service-demo/src/entrypoints/background.ts rename packages/proxy-service-demo/src/{popup.html => entrypoints/popup/index.html} (94%) rename packages/proxy-service-demo/src/{popup.ts => entrypoints/popup/main.ts} (97%) delete mode 100644 packages/proxy-service-demo/src/manifest.json create mode 100644 packages/proxy-service-demo/src/public/.keep rename packages/proxy-service-demo/src/{ => utils}/math-service.ts (100%) create mode 100644 packages/proxy-service-demo/tsconfig.json delete mode 100644 packages/proxy-service-demo/vite.config.ts create mode 100644 packages/proxy-service-demo/wxt.config.ts delete mode 100644 pnpm-lock.yaml delete mode 100644 pnpm-workspace.yaml delete mode 100644 turbo.json diff --git a/.github/workflows/publish-packages.yml b/.github/workflows/publish-packages.yml index 4a582ca..fe5a8e8 100644 --- a/.github/workflows/publish-packages.yml +++ b/.github/workflows/publish-packages.yml @@ -93,7 +93,6 @@ jobs: if: ${{ steps.changelog.outputs.skipped == 'false' }} run: | echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" > ~/.npmrc - pnpm build:dependencies pnpm build pnpm publish working-directory: packages/${{ matrix.package }} diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index cb3ae88..2f2a733 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -6,35 +6,42 @@ on: workflow_call: jobs: - root: - name: root + checks: runs-on: ubuntu-22.04 steps: - - name: Checkout Repo - uses: actions/checkout@v3 - - - name: Install PNPM - uses: pnpm/action-setup@v2.2.4 - with: - version: 8 - - - name: Install Node 16 - uses: actions/setup-node@v3 - with: - node-version: 16 - cache: 'pnpm' - - - name: Install dependencies - run: pnpm install - - - name: Check Formatting - run: pnpm format:check - - - name: Build - run: pnpm build - - - name: Type Check - run: pnpm -r compile + - uses: actions/checkout@v3 + - uses: oven-sh/setup-bun@v2 + - run: bun install + - run: | + bun format:check + bun run --cwd packages/fake-browser check + bun run --cwd packages/isolated-element check + bun run --cwd packages/isolated-element-demo check + bun run --cwd packages/job-scheduler check + bun run --cwd packages/match-patterns check + bun run --cwd packages/messaging check + bun run --cwd packages/proxy-service check + bun run --cwd packages/storage check + + build: + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v3 + - uses: oven-sh/setup-bun@v2 + - run: bun install + - run: bun run build - - name: Run Tests - run: pnpm -r test:coverage + tests: + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v3 + - uses: oven-sh/setup-bun@v2 + - run: bun install + - run: | + bun run --cwd packages/fake-browser test:coverage + bun run --cwd packages/isolated-element test:coverage + bun run --cwd packages/job-scheduler test:coverage + bun run --cwd packages/match-patterns test:coverage + bun run --cwd packages/messaging test:coverage + bun run --cwd packages/proxy-service test:coverage + bun run --cwd packages/storage test:coverage diff --git a/.gitignore b/.gitignore index 3f9bbc7..6c27d90 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,6 @@ coverage /docs/.vitepress/cache .DS_Store tsconfig.vitest-temp.json +/.cache +.output +.wxt diff --git a/.husky/pre-commit b/.husky/pre-commit deleted file mode 100755 index f42dc94..0000000 --- a/.husky/pre-commit +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env sh -. "$(dirname -- "$0")/_/husky.sh" - -pnpm pretty-quick --staged diff --git a/.prettierignore b/.prettierignore index 05bbd30..7349e29 100644 --- a/.prettierignore +++ b/.prettierignore @@ -4,3 +4,7 @@ lib/ pnpm-lock.yaml /docs/.vitepress/cache /docs/api/* +.nuxt +.wxt.output +docs/content/index.md +docs/content/*/api.md diff --git a/bun.lockb b/bun.lockb new file mode 100755 index 0000000000000000000000000000000000000000..c6a0f85e9fe27b6b98d7a9d694f372aa6404fe71 GIT binary patch literal 563576 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 R{Qgh;{(bzC{r^}0{J)Zx9>)Lx literal 0 HcmV?d00001 diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 0000000..4a7f73a --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1,24 @@ +# Nuxt dev/build outputs +.output +.data +.nuxt +.nitro +.cache +dist + +# Node dependencies +node_modules + +# Logs +logs +*.log + +# Misc +.DS_Store +.fleet +.idea + +# Local env files +.env +.env.* +!.env.example diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts deleted file mode 100644 index 385310e..0000000 --- a/docs/.vitepress/config.ts +++ /dev/null @@ -1,181 +0,0 @@ -import { defineConfig } from 'vitepress'; -import { defineTypescriptDocs } from './plugins/typescript-docs'; - -const ogDescription = 'Next Generation Frontend Tooling'; -const ogTitle = 'Web Ext Core'; -const ogUrl = 'https://webext-core.aklinker1.io'; - -const packageDirnames = [ - 'storage', - 'messaging', - 'job-scheduler', - 'match-patterns', - 'proxy-service', - 'isolated-element', - 'fake-browser', -]; - -const packagePages = { - 'fake-browser': [ - { - text: 'Get Started', - link: '/guide/fake-browser/', - }, - { - text: 'Testing Frameworks', - link: '/guide/fake-browser/testing-frameworks', - }, - { - text: 'Reseting State', - link: '/guide/fake-browser/reseting-state', - }, - { - text: 'Triggering Events', - link: '/guide/fake-browser/triggering-events', - }, - { - text: 'Implemented APIs', - link: '/guide/fake-browser/implemented-apis', - }, - ], - 'isolated-element': [ - { - text: 'Get Started', - link: '/guide/isolated-element/', - }, - ], - messaging: [ - { - text: 'Get Started', - link: '/guide/messaging/', - }, - { - text: 'Protocol Maps', - link: '/guide/messaging/protocol-maps', - }, - ], - 'proxy-service': [ - { - text: 'Get Started', - link: '/guide/proxy-service/', - }, - { - text: 'Defining Services', - link: '/guide/proxy-service/defining-services', - }, - ], - storage: [ - { - text: 'Get Started', - link: '/guide/storage/', - }, - { - text: 'Typescript', - link: '/guide/storage/typescript', - }, - ], - 'job-scheduler': [ - { - text: 'Get Started', - link: '/guide/job-scheduler/', - }, - ], - 'match-patterns': [ - { - text: 'Get Started', - link: '/guide/match-patterns/', - }, - ], -}; - -const packagesItemGroup = packageDirnames.map(dirname => ({ - text: dirname, - link: `/guide/${dirname}/`, - items: packagePages[dirname], -})); - -const apiItemGroup = { - text: 'API', - items: packageDirnames.map(dirname => ({ text: dirname, link: `/api/${dirname}` })), -}; - -export default defineConfig({ - ...defineTypescriptDocs(packageDirnames), - - title: `Web Ext Core`, - description: 'Web Extension Development Made Easy', - - head: [ - ['link', { rel: 'icon', type: 'image/svg+xml', href: '/logo.svg' }], - ['meta', { property: 'og:type', content: 'website' }], - ['meta', { property: 'og:title', content: ogTitle }], - // ['meta', { property: 'og:image', content: ogImage }], - ['meta', { property: 'og:url', content: ogUrl }], - ['meta', { property: 'og:description', content: ogDescription }], - [ - 'meta', - { - name: 'twitter:card', - content: - 'https://repository-images.githubusercontent.com/562524328/c0cd6d4b-23ff-4536-97ab-f19a57cc23e3', - }, - ], - ['meta', { name: 'theme-color', content: '#646cff' }], - // - [ - 'script', - { - async: '', - defer: '', - 'data-website-id': '04aff3ed-57d7-4ee0-9faf-e24a39adeafa', - src: 'https://stats.aklinker1.io/umami.js', - }, - ], - ], - - themeConfig: { - logo: '/logo.svg', - - search: { - provider: 'algolia', - options: { - appId: '5YM53OJZKV', - apiKey: 'afa7be8df70add29c036f21548117128', - indexName: 'webext-core-aklinker1', - }, - }, - - editLink: { - pattern: 'https://github.com/aklinker1/webext-core/edit/main/docs/:path', - text: 'Suggest changes to this page', - }, - - socialLinks: [{ icon: 'github', link: 'https://github.com/aklinker1/webext-core' }], - - footer: { - message: `Released under the MIT License.`, - copyright: 'Copyright © 2022-present Aaron Klinker & Web Ext Core Contributors', - }, - - nav: [{ text: 'Guide', link: '/guide/' }, apiItemGroup], - - sidebar: { - '/guide/': [ - { - text: 'Introduction', - link: '/guide/', - }, - { - text: 'Browser Support', - link: '/guide/browser-support', - }, - { - text: 'Contributing', - link: '/guide/contributing', - }, - ...packagesItemGroup, - ], - '/api/': [apiItemGroup], - }, - }, -}); diff --git a/docs/.vitepress/theme/components/Chip.vue b/docs/.vitepress/theme/components/Chip.vue deleted file mode 100644 index 0fea3f0..0000000 --- a/docs/.vitepress/theme/components/Chip.vue +++ /dev/null @@ -1,64 +0,0 @@ - - - - - diff --git a/docs/.vitepress/theme/components/ChipGroup.vue b/docs/.vitepress/theme/components/ChipGroup.vue deleted file mode 100644 index 5d691d8..0000000 --- a/docs/.vitepress/theme/components/ChipGroup.vue +++ /dev/null @@ -1,14 +0,0 @@ - - - diff --git a/docs/.vitepress/theme/components/ContributorList.vue b/docs/.vitepress/theme/components/ContributorList.vue deleted file mode 100644 index f0008bb..0000000 --- a/docs/.vitepress/theme/components/ContributorList.vue +++ /dev/null @@ -1,63 +0,0 @@ - - - - - diff --git a/docs/.vitepress/theme/index.ts b/docs/.vitepress/theme/index.ts deleted file mode 100644 index 0b0ae68..0000000 --- a/docs/.vitepress/theme/index.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { h } from 'vue'; -import Theme from 'vitepress/theme'; -import './styles/vars.css'; -import Chip from './components/Chip.vue'; -import ChipGroup from './components/ChipGroup.vue'; -import ContributorList from './components/ContributorList.vue'; - -export default { - ...Theme, - Layout() { - return h(Theme.Layout, null, {}); - }, - enhanceApp({ app }) { - app.component('Chip', Chip); - app.component('ChipGroup', ChipGroup); - app.component('ContributorList', ContributorList); - }, -}; diff --git a/docs/.vitepress/theme/styles/vars.css b/docs/.vitepress/theme/styles/vars.css deleted file mode 100644 index f584d71..0000000 --- a/docs/.vitepress/theme/styles/vars.css +++ /dev/null @@ -1,112 +0,0 @@ -/** - * Colors - * -------------------------------------------------------------------------- */ - -:root { - --vp-c-brand: #34c55d; - --vp-c-brand-light: #3de26b; - --vp-c-brand-lighter: #60fa8b; - --vp-c-brand-lightest: #94ffb2; - --vp-c-brand-dark: #26b24d; - --vp-c-brand-darker: #14a43c; - --vp-c-brand-dimm: rgba(52, 197, 93, 0.08); -} - -/** - * Component: Button - * -------------------------------------------------------------------------- */ - -:root { - --vp-button-brand-border: var(--vp-c-brand-light); - --vp-button-brand-text: var(--vp-c-black); - --vp-button-brand-bg: var(--vp-c-brand); - --vp-button-brand-hover-border: var(--vp-c-brand-light); - --vp-button-brand-hover-text: var(--vp-c-black); - --vp-button-brand-hover-bg: var(--vp-c-brand-light); - --vp-button-brand-active-border: var(--vp-c-brand-light); - --vp-button-brand-active-text: var(--vp-c-black); - --vp-button-brand-active-bg: var(--vp-button-brand-bg); -} - -/** - * Component: Home - * -------------------------------------------------------------------------- */ - -:root { - --vp-home-hero-name-color: transparent; - --vp-home-hero-name-background: -webkit-linear-gradient(120deg, #45ccf6 30%, #3de26b 70%); - - --vp-home-hero-image-background-image: linear-gradient( - -45deg, - #45ccf6 50%, - rgba(61, 226, 107, 70%) 50% - ); - --vp-home-hero-image-filter: blur(40px); -} - -@media (min-width: 640px) { - :root { - --vp-home-hero-image-filter: blur(56px); - } -} - -@media (min-width: 960px) { - :root { - --vp-home-hero-image-filter: blur(72px); - } -} - -/** - * Component: Custom Block - * -------------------------------------------------------------------------- */ - -:root { - --vp-custom-block-tip-border: var(--vp-c-brand); - --vp-custom-block-tip-text: var(--vp-c-brand-darker); - --vp-custom-block-tip-bg: var(--vp-c-brand-dimm); -} - -.dark { - --vp-custom-block-tip-border: var(--vp-c-brand); - --vp-custom-block-tip-text: var(--vp-c-brand-lightest); - --vp-custom-block-tip-bg: var(--vp-c-brand-dimm); -} - -/** - * Component: Algolia - * -------------------------------------------------------------------------- */ - -.DocSearch { - --docsearch-primary-color: var(--vp-c-brand) !important; -} - -/** - * VitePress: Custom fix - * -------------------------------------------------------------------------- */ - -/* - Use lighter colors for links in dark mode for a11y. - Also specify some classes twice to have higher specificity - over scoped class data attribute. -*/ -.dark .vp-doc a, -.dark .vp-doc a > code, -.dark .VPNavBarMenuLink.VPNavBarMenuLink:hover, -.dark .VPNavBarMenuLink.VPNavBarMenuLink.active, -.dark .link.link:hover, -.dark .link.link.active, -.dark .edit-link-button.edit-link-button, -.dark .pager-link .title { - color: var(--vp-c-brand-lighter); -} - -.dark .vp-doc a:hover, -.dark .vp-doc a > code:hover { - color: var(--vp-c-brand-lightest); - opacity: 1; -} - -/* Transition by color instead of opacity */ -.dark .vp-doc .custom-block a { - transition: color 0.25s; -} diff --git a/docs/__mocks__/webextension-polyfill.ts b/docs/__mocks__/webextension-polyfill.ts deleted file mode 100644 index 2f62519..0000000 --- a/docs/__mocks__/webextension-polyfill.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { fakeBrowser } from '@webext-core/fake-browser'; - -export default fakeBrowser; diff --git a/docs/_redirects.txt b/docs/_redirects.txt new file mode 100644 index 0000000..d93536f --- /dev/null +++ b/docs/_redirects.txt @@ -0,0 +1,26 @@ +# Vitepress -> Nuxt + +/guide/ /get-started/introduction +/guide/browser-support.html /get-started/browser-support +/guide/contributing.html /get-started/contributing +/guide/fake-browser/ /fake-browser/installation +/guide/fake-browser/testing-frameworks.html /fake-browser/testing-frameworks +/guide/fake-browser/reseting-state.html /fake-browser/triggering-events +/guide/fake-browser/triggering-events.html /fake-browser/reseting-state +/guide/fake-browser/implemented-apis.html /fake-browser/implemented-apis +/guide/isolated-element/ /isolated-element/installation +/guide/job-scheduler/ /job-scheduler/installation +/guide/match-patterns/ /match-patterns/installation +/guide/messaging/ /messaging/installation +/guide/messaging/protocol-maps.html /messaging/protocol-maps +/guide/proxy-service/ /proxy-service/installation +/guide/proxy-service/defining-services.html /proxy-service/defining-services +/guide/storage/ /storage/installation +/guide/storage/typescript.html /storage/typescript +/api/fake-browser.html /fake-browser/api +/api/isolated-element.html /isolated-element/api +/api/job-scheduler.html /job-scheduler/api +/api/match-patterns.html /match-patterns/api +/api/messaging.html /messaging/api +/api/proxy-service.html /proxy-service/api +/api/storage.html /storage/api diff --git a/docs/app.config.ts b/docs/app.config.ts new file mode 100644 index 0000000..f153774 --- /dev/null +++ b/docs/app.config.ts @@ -0,0 +1,17 @@ +export default defineAppConfig({ + docus: { + title: 'Web Ext Core', + description: 'Web Extension Development Made Easy', + url: 'http://webext-core.aklinker1.io', + github: { + dir: 'docs', + owner: 'aklinker1', + repo: 'webext-core', + }, + socials: { + github: 'https://github.com/aklinker1/webext-core', + }, + titleTemplate: '%s - Webext Core', + image: '/favicon.ico', + }, +}); diff --git a/docs/guide/index.md b/docs/content/0.get-started/0.introduction.md similarity index 80% rename from docs/guide/index.md rename to docs/content/0.get-started/0.introduction.md index 481c910..0d78145 100644 --- a/docs/guide/index.md +++ b/docs/content/0.get-started/0.introduction.md @@ -1,31 +1,16 @@ # Introduction -## Overview - All of `@webext-core`'s packages are provided via NPM. Depending on your project's setup, you can consume them in 2 different ways: -1. If your project uses a bundler like Vite or Webpack, see [Bundler Setup](#bundler-setup). +1. If your project uses a bundler or framework (like Vite, Webpack, WXT, or Plasmo), see [Bundler Setup](#bundler-setup). 2. If your project does not use a bundler, see [Non-bundler Setup](#non-bundler-setup) -## List of packages - - - -

- ## Bundler Setup -If you haven't setup a bundler yet, I recommend using [`vite`](https://vitejs.dev/) and [`vite-plugin-web-extension`](https://vite-plugin-web-extension.aklinker1.io/) for the best DX and to support all browsers. +If you haven't setup a bundler yet, I recommend using [WXT](https://wxt.dev/) for the best DX and to support all browsers. -```sh PNPM -# Bootstrap a new project -pnpm create vite-plugin-web-extnesion +```sh +pnpm dlx wxt@latest init ``` Install any of the packages and use them normally. Everything will just work :+1: @@ -44,11 +29,15 @@ const value = await localExtStorage.getItem('some-key'); If you're not using a bundler, you'll have to download each package and put it inside your project. -:::details Why download them? +::callout +#summary +Why download them? + +#content With Manifest V3, Google doesn't approve of extensions using CDN URLs directly, considering it "remotely hosted code" and a security risk. So you will need to download each package and ship them with your extension. See the [MV3 overview](https://developer.chrome.com/docs/extensions/mv3/intro/mv3-overview/#remotely-hosted-code) for more details. If you're not on MV3 yet, you could use the CDN, but it's still recommended to download it so it loads faster. -::: +:: All of `@webext-core` NPM packages include a minified, `lib/index.global.js` file that will create a global variable you can use to access the package's APIs. diff --git a/docs/content/0.get-started/1.browser-support.md b/docs/content/0.get-started/1.browser-support.md new file mode 100644 index 0000000..719229a --- /dev/null +++ b/docs/content/0.get-started/1.browser-support.md @@ -0,0 +1,18 @@ +# Browser Support + +## Overview + +The `@webext-core` packages are simple wrappers around [`webextension-polyfill`](https://www.npmjs.com/package/webextension-polyfill) by Mozilla. As such, they will work on: + +| Browser | Supported Versions | +| --------------------- | ------------------ | +| Chrome | >= 87 | +| Firefox | >= 78 | +| Safari _1_ | >= 14 | +| Edge | >= 88 | + +Other Chromium-based browsers are not officially supported, and may not work_2_. See Mozilla's [supported browsers documentation](https://github.com/mozilla/webextension-polyfill#supported-browsers) for more details. + +> _1_ `webextension-polyfill` works on Safari, however Safari does not implement the complete web extension standard. See the [browser compatibliity chart](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Browser_support_for_JavaScript_APIs) for more details. +> +> _2_ In practice, the browsers are close enough to chrome that they work 99% of the time. But make sure to test your extension before assuming it will work. diff --git a/docs/guide/contributing.md b/docs/content/0.get-started/2.contributing.md similarity index 85% rename from docs/guide/contributing.md rename to docs/content/0.get-started/2.contributing.md index 99de21c..07111c7 100644 --- a/docs/guide/contributing.md +++ b/docs/content/0.get-started/2.contributing.md @@ -1,24 +1,26 @@ +--- +toc: true +--- + # Contributing Special thanks to the contributors. I look forward to seeing you in the list! - - - + + + + +::callout +#summary +First time contributing to open source? -:::details First time contributing to open source? +#content It's easy! Here are some resources to get started: - https://www.youtube.com/embed/dSl_qnWO104 - https://docs.github.com/en/get-started/quickstart/contributing-to-projects -::: - -
- -###### Table of Contents - -[[toc]] +:: ## Project Goals @@ -38,18 +40,15 @@ If you want to add a new package or feature, open an issue first. That way we ca ## Development Setup -You'll need to install some tools: - -- [NodeJS](https://nodejs.org/en/), v16 or above -- [PNPM](https://pnpm.io/): Install it via `corepack enable` +You'll need to install [Bun](https://bun.sh) before contributing. Then you can fork the repo, install the dependencies, and build the packages for the first time! ```sh git clone {your-fork} cd webext-core -pnpm i -pnpm build +bun i +bun run build ``` ## Project Layout @@ -58,7 +57,7 @@ The `webext-core` repo is a monorepo containing all the packages under the [`@we Here's an overview of the main directories: -- `docs`: The [`vitepress`](https://vitepress.vuejs.org/) website for +- `docs`: The website for - `packages/*`: Each NPM package has it's own directory - `packages/*-demo`: Some packages have a demo extension @@ -77,17 +76,16 @@ In general, all packages are the same. In the root directory, you can run the following scripts: ```sh -pnpm build # Run the build script for all packages -pnpm docs # Run the docs website locally -pnpm format # Run prettier to format all your files +bun run build # Run the build script for all packages +bun run format # Run prettier to format all your files ``` Or `cd` into a package's directory and run these scripts ```sh -pnpm build # Build the package and it's dependencies -pnpm compile # Check for type errors -pnpm test # Run unit tests in watch mode +bun run build # Build the package and it's dependencies +bun run check # Check for type errors +bun run test # Run unit tests in watch mode ``` Each directory might have additional scripts you can run. See each `package.json` for a complete list. diff --git a/docs/content/fake-browser/0.installation.md b/docs/content/fake-browser/0.installation.md new file mode 100644 index 0000000..bfa880b --- /dev/null +++ b/docs/content/fake-browser/0.installation.md @@ -0,0 +1,25 @@ +--- +toc: true +--- + +# Installation + +:badge[Vitest]{type="success"} :badge[Jest]{type="success"} :badge[Bun]{type="success"} :badge[Mocha]{type="success"} + +## Overview + +An in-memory implementation of [`webextension-polyfill`](https://www.npmjs.com/package/webextension-polyfill) for testing. Supports all test frameworks (Vitest, Jest, etc). + +```sh +pnpm i -D @webext-core/fake-browser +``` + +::alrt{type=warning} +This package only really works with projects using node, so only the NPM install steps are shown. +:: + +See [Testing Frameworks](/fake-browser/testing-frameworks) to setup mocks for your testing framework of choice. + +## Examples + +See [Implemented APIs](/fake-browser/implemented-apis) for example tests and details on how to use each API. diff --git a/docs/guide/fake-browser/testing-frameworks.md b/docs/content/fake-browser/1.testing-frameworks.md similarity index 98% rename from docs/guide/fake-browser/testing-frameworks.md rename to docs/content/fake-browser/1.testing-frameworks.md index 3b2872e..53c1307 100644 --- a/docs/guide/fake-browser/testing-frameworks.md +++ b/docs/content/fake-browser/1.testing-frameworks.md @@ -2,9 +2,9 @@ `@webext-core/fake-browser` works with all frameworks. Setup for only a few of the major testing frameworks is listed below. -[[toc]] - -> Open a PR to add an example for your framework of choice! +::alert +Open a PR to add an example for your framework of choice! +:: ## Vitest diff --git a/docs/guide/fake-browser/triggering-events.md b/docs/content/fake-browser/2.triggering-events.md similarity index 72% rename from docs/guide/fake-browser/triggering-events.md rename to docs/content/fake-browser/2.triggering-events.md index 947ac43..6b3e9fd 100644 --- a/docs/guide/fake-browser/triggering-events.md +++ b/docs/content/fake-browser/2.triggering-events.md @@ -7,9 +7,13 @@ When possible, events are triggered based on other calls to other browser APIs. Some events, like `runtime.onInstalled` or `alarms.onAlarm`, can't be triggered as they would be in a real extension. -> In the case of `onInstalled`, when is an extension "installed" during tests? Never? Or when the tests start? Either way, not useful for testing. +::alert +In the case of `onInstalled`, when is an extension "installed" during tests? Never? Or when the tests start? Either way, not useful for testing. +:: -> In the case of `onAlarm`, alarms are meant to trigger in the far future, usually a much longer timespan than the duration of a unit test. Also, timers in tests are notoriously flakey and difficult to work with. +::alert +In the case of `onAlarm`, alarms are meant to trigger in the far future, usually a much longer timespan than the duration of a unit test. Also, timers in tests are notoriously flakey and difficult to work with. +:: Instead, the `fakeBrowser` provides a `trigger` method on every implemented event that you can call to trigger them manually. Pass in the arguements that the listeners are called with: diff --git a/docs/guide/fake-browser/reseting-state.md b/docs/content/fake-browser/3.reseting-state.md similarity index 97% rename from docs/guide/fake-browser/reseting-state.md rename to docs/content/fake-browser/3.reseting-state.md index 514b5ba..9a2fd7d 100644 --- a/docs/guide/fake-browser/reseting-state.md +++ b/docs/content/fake-browser/3.reseting-state.md @@ -6,9 +6,9 @@ Implemented APIs store state in memory. When unit testing, we often want to rese 2. Reset just one API: `fakeBrowser.{api}.resetState()` 3. Call `fakeBrowser.{api}.on{Event}.removeAllListeners()` to remove all the listeners setup for an event -:::info +::alert All the reset methods are synchronous -::: +:: For example, to clear the in-memory stored values for `browser.storage.local`, you could call any of the following: @@ -17,6 +17,6 @@ For example, to clear the in-memory stored values for `browser.storage.local`, y All these reset methods should show up in your editor's intelisense. -:::info +::alert Generally, you should put a call to `fakeBrowser.reset()` in a `beforeEach` block to cleanup the state before every test. -::: +:: diff --git a/docs/content/fake-browser/4.implemented-apis.md b/docs/content/fake-browser/4.implemented-apis.md new file mode 100644 index 0000000..da99efb --- /dev/null +++ b/docs/content/fake-browser/4.implemented-apis.md @@ -0,0 +1,122 @@ +# Implmeneted APIs + +This file lists all the implemented APIs, their caveots, limitations, and example tests. Example tests are writen with vitest. + +::callout{type=warning} +#summary +Not all APIs are implemented! +#content +For all APIs not listed here, you will have to mock the functions behavior yourself, or you can submit a PR to add support :smile: +:: + +## `alarms` + +- All alarms APIs are implemented as in production, except for `onAlarm`. +- You have to manually call `onAlarm.trigger()` for your event listeners to be executed. + +## `notifications` + +- `create`, `clear`, and `getAll` are fully implemented +- You have to manually trigger all the events (`onClosed`, `onClicked`, `onButtonClicked`, `onShown`) + +### Example Tests + +::code-group + +```ts [ensureNotificationExists.test.ts] +import { describe, it, beforeEach, vi, expect } from 'vitest'; +import browser, { Notifications } from 'webextension-polyfill'; +import { fakeBrowser } from '@webext-core/fake-browser'; + +async function ensureNotificationExists( + id: string, + notification: Notifications.CreateNotificationOptions, +): Promise { + const notifications = await browser.notifications.getAll(); + if (!notifications[id]) await browser.notifications.create(id, notification); +} + +describe('ensureNotificationExists', () => { + const id = 'some-id'; + const notification: Notifications.CreateNotificationOptions = { + type: 'basic', + title: 'Some Title', + message: 'Some message...', + }; + + beforeEach(() => { + fakeBrowser.reset(); + }); + + it('should create a notification if it does not exist', async () => { + const createSpy = vi.spyOn(browser.notifications, 'create'); + + await ensureNotificationExists(id, notification); + + expect(createSpy).toBeCalledTimes(1); + expect(createSpy).toBeCalledWith(id, notification); + }); + + it('should not create the notification if it already exists', async () => { + await fakeBrowser.notifications.create(id, notification); + const createSpy = vi.spyOn(browser.notifications, 'create'); + + await ensureNotificationExists(id, notification); + + expect(createSpy).not.toBeCalled(); + }); +}); +``` + +```ts [setupNotificationShownReports.test.ts] +import { describe, it, beforeEach, vi, expect } from 'vitest'; +import browser from 'webextension-polyfill'; +import { fakeBrowser } from '@webext-core/fake-browser'; + +async function setupNotificationShownReports( + reportEvent: (notificationId: string) => void, +): Promise { + browser.notifications.onShown.addListener(id => reportEvent(id)); +} + +describe('setupNotificationShownReports', () => { + beforeEach(() => { + fakeBrowser.reset(); + }); + + it('should properly report an analytics event when a notification is shown', async () => { + const reportAnalyticsEvent = vi.fn(); + const id = 'notification-id'; + + setupNotificationShownReports(reportAnalyticsEvent); + await fakeBrowser.notifications.onShown.trigger(id); + + expect(reportAnalyticsEvent).toBeCalledTimes(1); + expect(reportAnalyticsEvent).toBeCalledWith(id); + }); +}); +``` + +:: + +## `runtime` + +- All events have been implemented, but all of them other than `onMessage` must be triggered manually. +- `rutime.id` is a hardcoded string. You can set this to whatever you want, but it is reset to the hardcoded value when calling `reset()`. +- Unlike in a real production, `sendMessage` will trigger `onMessage` listeners setup in the same JS context. This allows you to add a listener when setting up your test, then call `sendMessage` to trigger it. + +## `storage` + +- The `local`, `sync`, `session`, and `managed` storages are all stored separately in memory. +- `storage.onChanged`, `storage.{area}.onChanged` events are all triggered when updating values. +- Each storage area can be reset individually. + +## `tabs` and `windows` + +- Fully implemented. +- All methods trigger corresponding `tabs` events AND `windows` events depending on what happened (ie: closing the last tab of a window would trigger both `tabs.onRemoved` and `windows.onRemoved`). + +## `webNavigation` + +- The two functions, `getFrame` and `getAllFrames` are not implemented. You will have to mock their return values yourself. +- All the event listeners are implemented, but none are triggered automatically. They can be triggered manually by calling `browser.webNavigation.{event}.trigger(...)` diff --git a/docs/api/fake-browser.md b/docs/content/fake-browser/api.md similarity index 61% rename from docs/api/fake-browser.md rename to docs/content/fake-browser/api.md index f7bb5f9..d9d5c7c 100644 --- a/docs/api/fake-browser.md +++ b/docs/content/fake-browser/api.md @@ -1,8 +1,12 @@ -# API Reference - `fake-browser` +# API Reference -> [`@webext-core/fake-browser`](/guide/fake-browser/) +::alert + +See [`@webext-core/fake-browser`](/fake-browser/installation/) + +:: ## `FakeBrowser` @@ -24,4 +28,4 @@ An in-memory implementation of the `browser` global. --- -_API reference generated by [`plugins/typescript-docs.ts`](https://github.com/aklinker1/webext-core/blob/main/docs/.vitepress/plugins/typescript-docs.ts)_ \ No newline at end of file +_API reference generated by [`docs/generate-api-references.ts`](https://github.com/aklinker1/webext-core/blob/main/docs/generate-api-references.ts)_ \ No newline at end of file diff --git a/docs/content/index.md b/docs/content/index.md new file mode 100644 index 0000000..065c114 --- /dev/null +++ b/docs/content/index.md @@ -0,0 +1,118 @@ +--- +title: Home +navigation: false +layout: page +main: + fluid: false +--- + +:ellipsis{right=0px width=75% blur=150px} + +::block-hero +--- +cta: + - Get started + - /get-started/introduction +secondary: + - Open on GitHub → + - https://github.com/aklinker1/webext-core +--- + +#title +Web extension development made easy + +#description +Easy-to-use utilities for writing and testing web extensions that work on all browsers. + +#support + ::terminal + --- + content: + - npm i @webext-core/storage + - npm i @webext-core/messaging + - npm i @webext-core/proxy-service + - npm i @webext-core/fake-browser + - npm i @webext-core/job-scheduler + - ... + --- + :: +:: + +::card-grid +#title +All Packages + +#root +:ellipsis{left=0px width=40rem top=10rem blur=140px} + +#default + ::card{icon=noto:optical-disk} + #title + `@webext-core/storage` + #description + An alternative, type-safe API similar to local storage for accessing extension storage. +
+
+ [Go to docs →](/storage/installation) + :: + + ::card{icon=noto:left-speech-bubble} + #title + `@webext-core/messaging` + #description + A simpler, type-safe API for sending and recieving messages. +
+
+ [Go to docs →](/messaging/installation) + :: + + ::card{icon=noto:construction-worker} + #title + `@webext-core/job-scheduler` + #description + Easily schedule and manage reoccuring jobs. +
+
+ [Go to docs →](/job-scheduler/installation) + :: + + ::card{icon=noto:thumbs-up} + #title + `@webext-core/match-patterns` + #description + Utilities for working with match patterns. +
+
+ [Go to docs →](/match-patterns/installation) + :: + + ::card{icon=noto:oncoming-bus} + #title + `@webext-core/proxy-service` + #description + Call a function, but execute in a different JS context, like the background. +
+
+ [Go to docs →](/proxy-service/installation) + :: + + ::card{icon=noto:puzzle-piece} + #title + `@webext-core/isolated-element` + #description + Create a container who's styles are isolated from the page's styles. +
+
+ [Go to docs →](/isolated-element/installation) + :: + + ::card{icon=noto:rocket} + #title + `@webext-core/fake-browser` + #description + An in-memory implementation of webextension-polyfill for testing. +
+
+ [Go to docs →](/fake-browser/installation) + :: +:: diff --git a/docs/guide/isolated-element/index.md b/docs/content/isolated-element/0.installation.md similarity index 85% rename from docs/guide/isolated-element/index.md rename to docs/content/isolated-element/0.installation.md index 541be74..d5a708e 100644 --- a/docs/guide/isolated-element/index.md +++ b/docs/content/isolated-element/0.installation.md @@ -1,19 +1,6 @@ ---- -titleTemplate: '@webext-core/isolated-element' -next: - text: API Reference - link: /api/isolated-element ---- - -# Isolated Element - - - - - - - - +# Installation + +:badge[MV2]{type="success"} :badge[MV3]{type="success"} :badge[Chrome]{type="success"} :badge[Firefox]{type="success"} :badge[Safari]{type="success"} ## Overview diff --git a/docs/api/isolated-element.md b/docs/content/isolated-element/api.md similarity index 60% rename from docs/api/isolated-element.md rename to docs/content/isolated-element/api.md index d8cb072..e4ee17a 100644 --- a/docs/api/isolated-element.md +++ b/docs/content/isolated-element/api.md @@ -1,14 +1,18 @@ -# API Reference - `isolated-element` +# API Reference -> [`@webext-core/isolated-element`](/guide/isolated-element/) +::alert + +See [`@webext-core/isolated-element`](/isolated-element/installation/) + +:: ## `createIsolatedElement` ```ts async function createIsolatedElement( - options: CreateIsolatedElementOptions + options: CreateIsolatedElementOptions, ): Promise<{ parentElement: HTMLElement; isolatedElement: HTMLElement; @@ -36,6 +40,7 @@ Create an HTML element that has isolated styles from the rest of the page. const { isolatedElement, parentElement } = createIsolatedElement({ name: 'example-ui', css: { textContent: "p { color: red }" }, + isolateEvents: true // or ['keydown', 'keyup', 'keypress'] }); // Create and mount your app inside the isolation @@ -54,6 +59,7 @@ interface CreateIsolatedElementOptions { name: string; mode?: "open" | "closed"; css?: { url: string } | { textContent: string }; + isolateEvents?: boolean | string[]; } ``` @@ -61,14 +67,19 @@ Options that can be passed into `createIsolatedElement`. ### Properties -- ***`name: string`***
A unique tag name used when defining the web component used internally. Don't use the same name twice for different UIs. +- ***`name: string`***
A unique HTML tag name (two words, kebab case - [see spec](https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name)) used when defining the web component used internally. Don't use the same name twice for different UIs. - ***`mode?: 'open' | 'closed'`*** (default: `'closed'`)
See [`ShadowRoot.mode`](https://developer.mozilla.org/en-US/docs/Web/API/ShadowRoot/mode). - ***`css?: { url: string } | { textContent: string }`***
Either the URL to a CSS file or the text contents of a CSS file. The styles will be mounted inside the shadow DOM so they don't effect the rest of the page. +- ***`isolateEvents?: boolean | string[]`***
When enabled, `event.stopPropagation` will be called on events trying to bubble out of the shadow root. + +- Set to `true` to stop the propagation of a default set of events, `["keyup", "keydown", "keypress"]` +- Set to an array of event names to stop the propagation of a custom list of events +

--- -_API reference generated by [`plugins/typescript-docs.ts`](https://github.com/aklinker1/webext-core/blob/main/docs/.vitepress/plugins/typescript-docs.ts)_ \ No newline at end of file +_API reference generated by [`docs/generate-api-references.ts`](https://github.com/aklinker1/webext-core/blob/main/docs/generate-api-references.ts)_ \ No newline at end of file diff --git a/docs/guide/job-scheduler/index.md b/docs/content/job-scheduler/0.installation.md similarity index 85% rename from docs/guide/job-scheduler/index.md rename to docs/content/job-scheduler/0.installation.md index b9392d6..1dcd2aa 100644 --- a/docs/guide/job-scheduler/index.md +++ b/docs/content/job-scheduler/0.installation.md @@ -1,19 +1,6 @@ ---- -titleTemplate: '@webext-core/job-scheduler' -next: - text: API Reference - link: /api/job-scheduler ---- - -# Job Scheduler - - - - - - - - +# Installation + +:badge[MV2]{type="success"} :badge[MV3]{type="success"} :badge[Chrome]{type="success"} :badge[Firefox]{type="success"} :badge[Safari]{type="success"} ## Overview @@ -52,7 +39,7 @@ curl -o job-scheduler.js https://cdn.jsdelivr.net/npm/@webext-core/job-scheduler `defineJobSchduler` should to be executed once in the background. It returns an object that can be used to schedule or remove jobs. -:::code-group +::code-group ```ts [background.ts] import { defineJobScheduler } from '@webext-core/job-scheduler'; @@ -60,11 +47,11 @@ import { defineJobScheduler } from '@webext-core/job-scheduler'; const jobs = defineJobScheduler(); ``` -::: +:: -Once the job scheduler is created, call `scheduleJob`. To see all the options for configuring jobs, see the [API reference](/api/job-scheduler). +Once the job scheduler is created, call `scheduleJob`. To see all the options for configuring jobs, see the [API reference](/job-scheduler/api). -:::code-group +::code-group ```ts [One time] jobs.scheduleJob({ @@ -99,7 +86,7 @@ jobs.scheduleJob({ }); ``` -::: +:: If a job has been created in the past, and nothing has changed, `scheduleJob` will do nothing. If something changed, it will update the job. @@ -109,15 +96,15 @@ To stop running a job, call `removeJob`. job.removeJob('some-old-job'); ``` -:::warning +::warning This is especially important when releasing an update after removing a job that is no longer needed - even if `scheduleJob` isn't called anymore. If you don't call `removeJob`, the alarm managed internally for that job will not be deleted. -::: +:: ## Parameterized Jobs You can't pass parameters into each individual job execution, but you can pass dependencies when scheduling a job by using higher-order functions: -:::code-group +::code-group ```ts [background.ts] import { someJob } from './someJob.ts'; @@ -140,15 +127,15 @@ function someJob(someDependency: SomeDependency) { } ``` -::: +:: ## Other JS Contexts You should only create one scheduler, and it should be created in the background page/service worker. -To schedule jobs from a UI or content script, you can use [`@webext-core/proxy-service`](/guide/proxy-service/). +To schedule jobs from a UI or content script, you can use [`@webext-core/proxy-service`](/proxy-service/installation). -:::code-group +::code-group ```ts [job-scheduler.ts] import { defineProxyService } from '@webext-core/proxy-service'; @@ -179,4 +166,4 @@ jobs.scheduleJob({ }); ``` -::: +:: diff --git a/docs/api/job-scheduler.md b/docs/content/job-scheduler/api.md similarity index 90% rename from docs/api/job-scheduler.md rename to docs/content/job-scheduler/api.md index f4974c4..ab7e640 100644 --- a/docs/api/job-scheduler.md +++ b/docs/content/job-scheduler/api.md @@ -1,8 +1,12 @@ -# API Reference - `job-scheduler` +# API Reference -> [`@webext-core/job-scheduler`](/guide/job-scheduler/) +::alert + +See [`@webext-core/job-scheduler`](/job-scheduler/installation/) + +:: ## `CronJob` @@ -101,11 +105,11 @@ interface JobScheduler { removeJob(jobId: string): Promise; on( event: "success", - callback: (job: Job, result: any) => void + callback: (job: Job, result: any) => void, ): RemoveListenerFn; on( event: "error", - callback: (job: Job, error: unknown) => void + callback: (job: Job, error: unknown) => void, ): RemoveListenerFn; } ``` @@ -164,4 +168,4 @@ Runs a job once, at a specific date/time. --- -_API reference generated by [`plugins/typescript-docs.ts`](https://github.com/aklinker1/webext-core/blob/main/docs/.vitepress/plugins/typescript-docs.ts)_ \ No newline at end of file +_API reference generated by [`docs/generate-api-references.ts`](https://github.com/aklinker1/webext-core/blob/main/docs/generate-api-references.ts)_ \ No newline at end of file diff --git a/docs/guide/match-patterns/index.md b/docs/content/match-patterns/0.installation.md similarity index 78% rename from docs/guide/match-patterns/index.md rename to docs/content/match-patterns/0.installation.md index d07f199..719b1b2 100644 --- a/docs/guide/match-patterns/index.md +++ b/docs/content/match-patterns/0.installation.md @@ -1,19 +1,6 @@ ---- -titleTemplate: '@webext-core/match-patterns' -next: - text: API Reference - link: /api/match-patterns ---- - -# Match Patterns - - - - - - - - +# Installation + +:badge[MV2]{type="success"} :badge[MV3]{type="success"} :badge[Chrome]{type="success"} :badge[Firefox]{type="success"} :badge[Safari]{type="success"} ## Overview diff --git a/docs/api/match-patterns.md b/docs/content/match-patterns/api.md similarity index 72% rename from docs/api/match-patterns.md rename to docs/content/match-patterns/api.md index 8db437b..5d191cb 100644 --- a/docs/api/match-patterns.md +++ b/docs/content/match-patterns/api.md @@ -1,8 +1,12 @@ -# API Reference - `match-patterns` +# API Reference -> [`@webext-core/match-patterns`](/guide/match-patterns/) +::alert + +See [`@webext-core/match-patterns`](/match-patterns/installation/) + +:: ## `InvalidMatchPattern` @@ -42,4 +46,4 @@ pattern.includes("http://youtube.com/watch?v=123") // false --- -_API reference generated by [`plugins/typescript-docs.ts`](https://github.com/aklinker1/webext-core/blob/main/docs/.vitepress/plugins/typescript-docs.ts)_ \ No newline at end of file +_API reference generated by [`docs/generate-api-references.ts`](https://github.com/aklinker1/webext-core/blob/main/docs/generate-api-references.ts)_ \ No newline at end of file diff --git a/docs/guide/messaging/index.md b/docs/content/messaging/0.installation.md similarity index 88% rename from docs/guide/messaging/index.md rename to docs/content/messaging/0.installation.md index b6f5aa4..ea1353d 100644 --- a/docs/guide/messaging/index.md +++ b/docs/content/messaging/0.installation.md @@ -1,22 +1,14 @@ ---- -titleTemplate: '@webext-core/messaging' ---- +# Installation -# Messaging - - - - - - - - +:badge[MV2]{type="success"} :badge[MV3]{type="success"} :badge[Chrome]{type="success"} :badge[Firefox]{type="success"} :badge[Safari]{type="success"} ## Overview `@webext-core/messaging` a simplified, type-safe wrapper around the web extension messaging APIs. It also provides a similar interface for communicating with web pages or injected scripts. -> Don't like lower-level messaging APIs? Try out [`@webext-core/proxy-service`](/guide/proxy-service/) for a more DX-friendly approach to executing code in the background script. +::alert +Don't like lower-level messaging APIs? Try out [`@webext-core/proxy-service`](/proxy-service/installation) for a more DX-friendly approach to executing code in the background script. +:: ## Installation @@ -47,7 +39,7 @@ curl -o messaging.js https://cdn.jsdelivr.net/npm/@webext-core/messaging/lib/ind First, define a protocol map: -:::code-group +::code-group ```ts [messaging.ts] interface ProtocolMap { @@ -55,13 +47,13 @@ interface ProtocolMap { } ``` -::: +:: Then call `defineExtensionMessaging`, passing your `ProtocolMap` as the first type parameter. Export the `sendMessage` and `onMessage` methods. These are what the rest of your extension will use to pass messages around. -:::code-group +::code-group ```ts [messaging.ts] import { defineExtensionMessaging } from '@webext-core/messaging'; @@ -73,11 +65,11 @@ interface ProtocolMap { export const { sendMessage, onMessage } = defineExtensionMessaging(); ``` -::: +:: Usually the `onMessage` function will be used in the background and messages will be sent from other parts of the extension. -:::code-group +::code-group ```ts [background.ts] import { onMessage } from './messaging'; @@ -95,13 +87,13 @@ const length = await sendMessage('getStringLength', 'hello world'); console.log(length); // 11 ``` -::: +:: ### Sending Messages to Tabs You can also send messages from your background script to a tab, but you need to know the `tabId`. -:::code-group +::code-group ```ts [content-script.ts] import { onMessage } from './messaging'; @@ -117,13 +109,13 @@ import { sendMessage } from './messaging'; const length = await sendMessage('getStringLength', 'hello world', tabId); ``` -::: +:: ## Window Messaging Inside a content script, you may need to communicate with a webpage or an injected script running in the page's JS context. In this case, you can use `defineWindowMessenger` or `defineCustomEventMessenger`, which use the `window.postMessage` and `CustomEvent` APIs respectively. -:::code-group +::code-group ```ts [Window] import { defineWindowMessaging } from '@webext-core/messaging/page'; @@ -151,11 +143,14 @@ export const websiteMessenger = defineCustomEventMessaging { }); ``` -::: +:: diff --git a/docs/guide/messaging/protocol-maps.md b/docs/content/messaging/1.protocol-maps.md similarity index 94% rename from docs/guide/messaging/protocol-maps.md rename to docs/content/messaging/1.protocol-maps.md index 8776b95..1ab98d2 100644 --- a/docs/guide/messaging/protocol-maps.md +++ b/docs/content/messaging/1.protocol-maps.md @@ -1,12 +1,8 @@ ---- -next: - text: API Reference - link: /api/messaging ---- - # Protocol Maps -> Only relevant to TypeScript projects. +::alert +Only relevant to TypeScript projects. +:: ## Overview diff --git a/docs/api/messaging.md b/docs/content/messaging/api.md similarity index 95% rename from docs/api/messaging.md rename to docs/content/messaging/api.md index 8e83b9f..f104986 100644 --- a/docs/api/messaging.md +++ b/docs/content/messaging/api.md @@ -1,8 +1,12 @@ -# API Reference - `messaging` +# API Reference -> [`@webext-core/messaging`](/guide/messaging/) +::alert + +See [`@webext-core/messaging`](/messaging/installation/) + +:: ## `BaseMessagingConfig` @@ -53,7 +57,7 @@ Messenger returned by `defineCustomEventMessenger`. ```ts function defineCustomEventMessaging< - TProtocolMap extends Record = Record + TProtocolMap extends Record = Record, >(config: CustomEventMessagingConfig): CustomEventMessenger { // ... } @@ -89,7 +93,7 @@ websiteMessenger.onMessage("initInjectedScript", (...) => { ```ts function defineExtensionMessaging< - TProtocolMap extends Record = Record + TProtocolMap extends Record = Record, >(config?: ExtensionMessagingConfig): ExtensionMessenger { // ... } @@ -104,7 +108,7 @@ It can be used to send messages to and from the background page/service worker. ```ts function defineWindowMessaging< - TProtocolMap extends Record = Record + TProtocolMap extends Record = Record, >(config: WindowMessagingConfig): WindowMessenger { // ... } @@ -183,7 +187,7 @@ You cannot message between tabs directly. It must go through the background scri interface GenericMessenger< TProtocolMap extends Record, TMessageExtension, - TSendMessageArgs extends any[] + TSendMessageArgs extends any[], > { sendMessage( type: TType, @@ -193,8 +197,8 @@ interface GenericMessenger< onMessage( type: TType, onReceived: ( - message: Message & TMessageExtension - ) => void | MaybePromise> + message: Message & TMessageExtension, + ) => void | MaybePromise>, ): RemoveListenerCallback; removeAllListeners(): void; } @@ -216,8 +220,8 @@ type GetDataType = T extends (...args: infer Args) => any ? Args[0] : never : T extends ProtocolWithReturn - ? T["BtVgCTPYZu"] - : T; + ? T["BtVgCTPYZu"] + : T; ``` Given a function declaration, `ProtocolWithReturn`, or a value, return the message's data type. @@ -228,8 +232,8 @@ Given a function declaration, `ProtocolWithReturn`, or a value, return the messa type GetReturnType = T extends (...args: any[]) => infer R ? R : T extends ProtocolWithReturn - ? T["RrhVseLgZW"] - : void; + ? T["RrhVseLgZW"] + : void; ``` Given a function declaration, `ProtocolWithReturn`, or a value, return the message's return type. @@ -261,7 +265,7 @@ async. ```ts interface Message< TProtocolMap extends Record, - TType extends keyof TProtocolMap + TType extends keyof TProtocolMap, > { id: number; data: GetDataType; @@ -401,4 +405,4 @@ details. --- -_API reference generated by [`plugins/typescript-docs.ts`](https://github.com/aklinker1/webext-core/blob/main/docs/.vitepress/plugins/typescript-docs.ts)_ \ No newline at end of file +_API reference generated by [`docs/generate-api-references.ts`](https://github.com/aklinker1/webext-core/blob/main/docs/generate-api-references.ts)_ \ No newline at end of file diff --git a/docs/guide/proxy-service/index.md b/docs/content/proxy-service/0.installation.md similarity index 86% rename from docs/guide/proxy-service/index.md rename to docs/content/proxy-service/0.installation.md index 95764b5..c84f803 100644 --- a/docs/guide/proxy-service/index.md +++ b/docs/content/proxy-service/0.installation.md @@ -1,22 +1,12 @@ ---- -titleTemplate: '@webext-core/proxy-service' ---- +# Installation -# Proxy Service - - - - - - - - +:badge[MV2]{type="success"} :badge[MV3]{type="success"} :badge[Chrome]{type="success"} :badge[Firefox]{type="success"} :badge[Safari]{type="success"} ## Overview `@webext-core/proxy-service` provides a simple, type-safe way to execute code in the extension's background. -:::code-group +::code-group ```ts [MathService.ts] import { defineProxyService } from '@webext-core/proxy-service'; @@ -50,7 +40,7 @@ const mathService = getMathService(); await mathService.fibonacci(100); ``` -::: +:: ## Installation @@ -83,7 +73,7 @@ Lets look at a more realistic example, IndexedDB! Since the same IndexedDB datab First, we need to implementat of our service. In this case, the service will contain CRUD operations for todos in the database: -:::code-group +::code-group ```ts [TodosRepo.ts] import { defineProxyService, flattenPromise } from '@webext-core/proxy-service'; @@ -112,13 +102,15 @@ function createTodosRepo(idbPromise: Promise) { } ``` -::: +:: -> In this example, we're using a plain object instead of a class as the service. See the [Defining Services](./defining-services) docs for examples of all the different ways to create a proxy service. +::alert +In this example, we're using a plain object instead of a class as the service. See the [Defining Services](/proxy-service/defining-services) docs for examples of all the different ways to create a proxy service. +:: In the same file, define a proxy service for our `TodosRepo`: -:::code-group +::code-group ```ts [TodosRepo.ts] // ... @@ -130,7 +122,7 @@ export const [registerTodosRepo, getTodosRepo] = defineProxyService('TodosRepo', Now that you have a service implemented, we need to tell the extension to use it! This needs to happen syncronously when your background script is loaded, so put it as high up as possible. -:::code-group +::code-group ```ts [background.ts] import { openDB } from 'idb'; @@ -141,21 +133,21 @@ const db = openDB("todos", ...); registerTodosRepo(db); ``` -::: +:: You need to call `register` synchronously at the top level of the background script to avoid race conditions between registering and accessing the service for the first time. -:::info +::alert Here, even though `openDB` returns a promise, we're not awaiting the promise until executing the functions inside the service. You can follow the pattern of passing `Promise` into your services and awaiting them internally to stay synchronous. -[`flattenPromise`](/api/proxy-service#flattenpromise) is used to make consuming this promise easier. -::: +[`flattenPromise`](/proxy-service/api#flattenpromise) is used to make consuming this promise easier. +:: And that's it. You can now access your IndexedDB database from any JS context inside your extension: -:::code-group +::code-group ```html [extension-page.html] +