From 32500a78be838ef8ac2c80eb1e6a9730e21ed930 Mon Sep 17 00:00:00 2001 From: Aaron Date: Sat, 28 Dec 2024 09:35:20 -0600 Subject: [PATCH] feat: Add `@wxt-dev/webextension-polyfill` module (#1310) --- .github/workflows/release.yml | 1 + .github/workflows/sync-releases.yml | 1 + docs/guide/resources/upgrading.md | 24 +- packages/webextension-polyfill/README.md | 18 + .../webextension-polyfill/build.config.ts | 15 + .../entrypoints/content/index.ts | 6 + .../entrypoints/popup/index.html | 12 + .../entrypoints/popup/main.ts | 3 + .../modules/webextension-polyfill/browser.ts | 1 + .../modules/webextension-polyfill/index.ts | 18 + packages/webextension-polyfill/package.json | 56 +++ packages/webextension-polyfill/public/.keep | 0 packages/webextension-polyfill/tsconfig.json | 4 + pnpm-lock.yaml | 405 ++++++++---------- 14 files changed, 340 insertions(+), 224 deletions(-) create mode 100644 packages/webextension-polyfill/README.md create mode 100644 packages/webextension-polyfill/build.config.ts create mode 100644 packages/webextension-polyfill/entrypoints/content/index.ts create mode 100644 packages/webextension-polyfill/entrypoints/popup/index.html create mode 100644 packages/webextension-polyfill/entrypoints/popup/main.ts create mode 100644 packages/webextension-polyfill/modules/webextension-polyfill/browser.ts create mode 100644 packages/webextension-polyfill/modules/webextension-polyfill/index.ts create mode 100644 packages/webextension-polyfill/package.json create mode 100644 packages/webextension-polyfill/public/.keep create mode 100644 packages/webextension-polyfill/tsconfig.json diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 76e21651..ce04912f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -15,6 +15,7 @@ on: - module-vue - storage - unocss + - webextension-polyfill - wxt jobs: diff --git a/.github/workflows/sync-releases.yml b/.github/workflows/sync-releases.yml index 35f18d26..ab59ae76 100644 --- a/.github/workflows/sync-releases.yml +++ b/.github/workflows/sync-releases.yml @@ -14,6 +14,7 @@ on: - module-svelte - module-vue - storage + - webextension-polyfill - wxt jobs: diff --git a/docs/guide/resources/upgrading.md b/docs/guide/resources/upgrading.md index e448a61c..a1602cf8 100644 --- a/docs/guide/resources/upgrading.md +++ b/docs/guide/resources/upgrading.md @@ -31,12 +31,11 @@ WXT no longer uses the `webextension-polyfill` internally and `wxt/browser` uses To upgrade, you have two options: 1. **Stop using the polyfill** - - No changes required, this is the default behavior of v0.20. Your extension will likely continue to work, but do some manual testing to confirm. + - Replace any manual imports from `wxt/browser/chrome` with `wxt/browser` 2. **Continue using the polyfill** - - Install the polyfill, types (if you use typescript), and WXT's [new polyfill module](https://www.npmjs.com/package/@wxt-dev/webextension-polyfill): + - Install the polyfill and WXT's [new polyfill module](https://www.npmjs.com/package/@wxt-dev/webextension-polyfill): ```sh - pnpm i webextension-polyfill - pnpm i -D @types/webextension-polyfill @wxt-dev/webextension-polyfill + pnpm i webextension-polyfill @wxt-dev/webextension-polyfill ``` - Add the WXT module to your config: ```ts @@ -46,7 +45,7 @@ To upgrade, you have two options: }); ``` -Additionally, the `extensionApi` config has been removed. Remove it from your `wxt.config.ts` file if present: +Regardless of your choice, the `extensionApi` config has been removed. Remove it from your `wxt.config.ts` file if present: ```ts // wxt.config.ts @@ -55,6 +54,21 @@ export default defineConfig({ }); ``` +Additionally, extension API types have changed. `wxt/browser` now uses types from `@types/chrome` instead of `@types/webextension-polyfill`. You will have to migrate any type imports to use `@types/chrome`'s namespace approach: + + +```ts +import type { Runtime } from 'wxt/browser'; // [!code --] +import { browser } from 'wxt/browser'; // [!code ++] + +function getMessageSenderUrl(sender: Runtime.MessageSender): string { // [!code --] +function getMessageSenderUrl(sender: browser.runtime.MessageSender): string { // [!code ++] + // ... +} +``` + +`@types/chrome` are more up-to-date, contain less bugs, and don't have any auto-generated names. So even if you continue to use the polyfill, you will need to update your types to use these types. + ### `public/` and `modules/` Directories Moved The default location for the `public/` and `modules/` directories have changed to better align with standards set by other frameworks (Nuxt, Next, Astro, etc). Now, each path is relative to the project's root directory. diff --git a/packages/webextension-polyfill/README.md b/packages/webextension-polyfill/README.md new file mode 100644 index 00000000..8dffa772 --- /dev/null +++ b/packages/webextension-polyfill/README.md @@ -0,0 +1,18 @@ +# `@wxt-dev/webextension-polyfill` + +Configures `wxt/browser` to import `browser` from [`webextension-polyfill`](https://github.com/mozilla/webextension-polyfill) instead of using the regular `chrome`/`browser` globals WXT normally provides. + +## Usage + +```sh +pnpm i @wxt-dev/webextension-polyfill webextension-polyfill +``` + +Then add the module to your config: + +```ts +// wxt.config.ts +export default defineConfig({ + modules: ['@wxt-dev/webextension-polyfill'], +}); +``` diff --git a/packages/webextension-polyfill/build.config.ts b/packages/webextension-polyfill/build.config.ts new file mode 100644 index 00000000..88809d20 --- /dev/null +++ b/packages/webextension-polyfill/build.config.ts @@ -0,0 +1,15 @@ +import { defineBuildConfig } from 'unbuild'; +import { resolve } from 'node:path'; + +export default defineBuildConfig({ + rootDir: 'modules', + outDir: resolve(__dirname, 'dist'), + entries: [ + { input: 'webextension-polyfill/index.ts', name: 'index' }, + { input: 'webextension-polyfill/browser.ts', name: 'browser' }, + ], + replace: { + 'process.env.NPM': 'true', + }, + declaration: true, +}); diff --git a/packages/webextension-polyfill/entrypoints/content/index.ts b/packages/webextension-polyfill/entrypoints/content/index.ts new file mode 100644 index 00000000..87ad9f39 --- /dev/null +++ b/packages/webextension-polyfill/entrypoints/content/index.ts @@ -0,0 +1,6 @@ +export default defineContentScript({ + matches: ['*://*/*'], + async main() { + console.log(browser.runtime.id); + }, +}); diff --git a/packages/webextension-polyfill/entrypoints/popup/index.html b/packages/webextension-polyfill/entrypoints/popup/index.html new file mode 100644 index 00000000..a6d6644f --- /dev/null +++ b/packages/webextension-polyfill/entrypoints/popup/index.html @@ -0,0 +1,12 @@ + + + + + + Document + + +
+ + + diff --git a/packages/webextension-polyfill/entrypoints/popup/main.ts b/packages/webextension-polyfill/entrypoints/popup/main.ts new file mode 100644 index 00000000..3677c7ed --- /dev/null +++ b/packages/webextension-polyfill/entrypoints/popup/main.ts @@ -0,0 +1,3 @@ +const root = document.getElementById('app')!; + +root.textContent = browser.runtime.id; diff --git a/packages/webextension-polyfill/modules/webextension-polyfill/browser.ts b/packages/webextension-polyfill/modules/webextension-polyfill/browser.ts new file mode 100644 index 00000000..c86e9ce3 --- /dev/null +++ b/packages/webextension-polyfill/modules/webextension-polyfill/browser.ts @@ -0,0 +1 @@ +export { default as browser } from 'webextension-polyfill'; diff --git a/packages/webextension-polyfill/modules/webextension-polyfill/index.ts b/packages/webextension-polyfill/modules/webextension-polyfill/index.ts new file mode 100644 index 00000000..6114cad1 --- /dev/null +++ b/packages/webextension-polyfill/modules/webextension-polyfill/index.ts @@ -0,0 +1,18 @@ +import 'wxt'; +import { addViteConfig, defineWxtModule } from 'wxt/modules'; +import { resolve } from 'node:path'; + +export default defineWxtModule({ + name: '@wxt-dev/webextension-polyfill', + setup(wxt) { + addViteConfig(wxt, () => ({ + resolve: { + alias: { + 'wxt/browser': process.env.NPM + ? '@wxt-dev/webextension-polyfill/browser' + : resolve(__dirname, 'browser.ts'), + }, + }, + })); + }, +}); diff --git a/packages/webextension-polyfill/package.json b/packages/webextension-polyfill/package.json new file mode 100644 index 00000000..871325c1 --- /dev/null +++ b/packages/webextension-polyfill/package.json @@ -0,0 +1,56 @@ +{ + "name": "@wxt-dev/webextension-polyfill", + "description": "Use webextension-polyfill with WXT", + "repository": { + "type": "git", + "url": "git+https://github.com/wxt-dev/wxt.git", + "directory": "packages/webextension-polyfill" + }, + "homepage": "https://github.com/wxt-dev/wxt/blob/main/packages/webextension-polyfill/README.md", + "keywords": [ + "wxt", + "module", + "webextension-polyfill" + ], + "author": { + "name": "Aaron Klinker", + "email": "aaronklinker1+wxt@gmail.com" + }, + "license": "MIT", + "version": "1.0.0", + "type": "module", + "main": "./dist/index.mjs", + "types": "./dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.mts", + "default": "./dist/index.mjs" + }, + "./browser": { + "types": "./dist/browser.d.mts", + "default": "./dist/browser.mjs" + } + }, + "files": [ + "dist" + ], + "scripts": { + "dev": "wxt", + "check": "pnpm build && check", + "build": "buildc -- unbuild", + "prepare": "buildc --deps-only -- wxt prepare" + }, + "peerDependencies": { + "webextension-polyfill": "*", + "wxt": ">=0.20.0" + }, + "devDependencies": { + "@aklinker1/check": "^1.4.5", + "@types/webextension-polyfill": "^0.12.1", + "publint": "^0.2.12", + "typescript": "^5.6.3", + "unbuild": "^2.0.0", + "webextension-polyfill": "^0.12.0", + "wxt": "workspace:*" + } +} diff --git a/packages/webextension-polyfill/public/.keep b/packages/webextension-polyfill/public/.keep new file mode 100644 index 00000000..e69de29b diff --git a/packages/webextension-polyfill/tsconfig.json b/packages/webextension-polyfill/tsconfig.json new file mode 100644 index 00000000..cde6e0a8 --- /dev/null +++ b/packages/webextension-polyfill/tsconfig.json @@ -0,0 +1,4 @@ +{ + "extends": ["../../tsconfig.base.json", "./.wxt/tsconfig.json"], + "exclude": ["node_modules/**", "dist/**"] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 38e8a9dc..4e2fc856 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -331,6 +331,30 @@ importers: specifier: workspace:* version: link:../wxt + packages/webextension-polyfill: + devDependencies: + '@aklinker1/check': + specifier: ^1.4.5 + version: 1.4.5(typescript@5.6.3) + '@types/webextension-polyfill': + specifier: ^0.12.1 + version: 0.12.1 + publint: + specifier: ^0.2.12 + version: 0.2.12 + typescript: + specifier: ^5.6.3 + version: 5.6.3 + unbuild: + specifier: ^2.0.0 + version: 2.0.0(sass@1.80.7)(typescript@5.6.3) + webextension-polyfill: + specifier: ^0.12.0 + version: 0.12.0 + wxt: + specifier: workspace:* + version: link:../wxt + packages/wxt: dependencies: '@1natsu/wait-element': @@ -665,10 +689,6 @@ packages: resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} engines: {node: '>=6.9.0'} - '@babel/code-frame@7.25.7': - resolution: {integrity: sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==} - engines: {node: '>=6.9.0'} - '@babel/code-frame@7.26.2': resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} engines: {node: '>=6.9.0'} @@ -809,10 +829,6 @@ packages: resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} engines: {node: '>=6.9.0'} - '@babel/highlight@7.25.7': - resolution: {integrity: sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==} - engines: {node: '>=6.9.0'} - '@babel/parser@7.24.7': resolution: {integrity: sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==} engines: {node: '>=6.0.0'} @@ -1746,15 +1762,6 @@ packages: rollup: optional: true - '@rollup/pluginutils@5.1.0': - resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - '@rollup/pluginutils@5.1.2': resolution: {integrity: sha512-/FIdS3PyZ39bjZlwqFnWqCOVnW7o963LtKMwQOD0NhQqw22gSr2YY1afu3FxRip4ZCZNsD5jq6Aaz6QV3D/Njw==} engines: {node: '>=14.0.0'} @@ -1999,6 +2006,9 @@ packages: '@types/web-bluetooth@0.0.20': resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} + '@types/webextension-polyfill@0.12.1': + resolution: {integrity: sha512-xPTFWwQ8BxPevPF2IKsf4hpZNss4LxaOLZXypQH4E63BDLmcwX/RMGdI4tB4VO4Nb6xDBH3F/p4gz4wvof1o9w==} + '@types/yauzl@2.10.3': resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} @@ -3578,9 +3588,6 @@ packages: lunr@2.3.9: resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==} - magic-string@0.30.10: - resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} - magic-string@0.30.11: resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==} @@ -4010,9 +4017,6 @@ packages: engines: {node: '>=0.10'} hasBin: true - pkg-types@1.1.3: - resolution: {integrity: sha512-+JrgthZG6m3ckicaOB74TwQ+tBWsFl3qVQg7mN8ulwSOElJ7gBhKzj2VkCPnZ4NlF6kEquYU+RIYNVAvzd54UA==} - pkg-types@1.2.0: resolution: {integrity: sha512-+ifYuSSqOQ8CqP4MbZA5hDpb97n3E8SVWdJe+Wms9kj745lmd3b7EZJiqvmLwAlmRfjrI7Hi5z3kdBJ93lFNPA==} @@ -4191,10 +4195,6 @@ packages: postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - postcss@8.4.39: - resolution: {integrity: sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==} - engines: {node: ^10 || ^12 || >=14} - postcss@8.4.47: resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} engines: {node: ^10 || ^12 || >=14} @@ -4421,11 +4421,6 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.6.2: - resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} - engines: {node: '>=10'} - hasBin: true - semver@7.6.3: resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} engines: {node: '>=10'} @@ -4778,9 +4773,6 @@ packages: engines: {node: '>=14.17'} hasBin: true - ufo@1.5.3: - resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} - ufo@1.5.4: resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} @@ -5047,6 +5039,9 @@ packages: resolution: {integrity: sha512-5D11VcjdGkA1/xax5UWL0YeAbDySKHzWFe6EpsoPNUMw5Uk9tKk9p6GUOfcaI5N7sINKfBMZYNsTBiu5dzJB9A==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} + webextension-polyfill@0.12.0: + resolution: {integrity: sha512-97TBmpoWJEE+3nFBQ4VocyCdLKfw54rFaJ6EVQYLBCXqCIpLSZkwGgASpv4oPt9gdKCJ80RJlcmNzNn008Ag6Q==} + webidl-conversions@7.0.0: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} engines: {node: '>=12'} @@ -5322,11 +5317,6 @@ snapshots: '@babel/highlight': 7.24.7 picocolors: 1.1.1 - '@babel/code-frame@7.25.7': - dependencies: - '@babel/highlight': 7.25.7 - picocolors: 1.1.1 - '@babel/code-frame@7.26.2': dependencies: '@babel/helper-validator-identifier': 7.25.9 @@ -5386,7 +5376,7 @@ snapshots: '@babel/generator@7.25.7': dependencies: - '@babel/types': 7.25.7 + '@babel/types': 7.26.3 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 3.0.2 @@ -5417,16 +5407,16 @@ snapshots: '@babel/helper-environment-visitor@7.24.7': dependencies: - '@babel/types': 7.25.7 + '@babel/types': 7.26.3 '@babel/helper-function-name@7.24.7': dependencies: '@babel/template': 7.25.7 - '@babel/types': 7.25.7 + '@babel/types': 7.26.3 '@babel/helper-hoist-variables@7.24.7': dependencies: - '@babel/types': 7.25.7 + '@babel/types': 7.26.3 '@babel/helper-module-imports@7.18.6': dependencies: @@ -5473,13 +5463,13 @@ snapshots: '@babel/helper-simple-access@7.24.7': dependencies: '@babel/traverse': 7.25.7 - '@babel/types': 7.25.7 + '@babel/types': 7.26.3 transitivePeerDependencies: - supports-color '@babel/helper-split-export-declaration@7.24.7': dependencies: - '@babel/types': 7.25.7 + '@babel/types': 7.26.3 '@babel/helper-string-parser@7.24.7': {} @@ -5516,13 +5506,6 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/highlight@7.25.7': - dependencies: - '@babel/helper-validator-identifier': 7.25.7 - chalk: 2.4.2 - js-tokens: 4.0.0 - picocolors: 1.1.1 - '@babel/parser@7.24.7': dependencies: '@babel/types': 7.25.6 @@ -5568,9 +5551,9 @@ snapshots: '@babel/template@7.25.7': dependencies: - '@babel/code-frame': 7.25.7 + '@babel/code-frame': 7.26.2 '@babel/parser': 7.25.7 - '@babel/types': 7.25.7 + '@babel/types': 7.26.3 '@babel/template@7.25.9': dependencies: @@ -5595,11 +5578,11 @@ snapshots: '@babel/traverse@7.25.7': dependencies: - '@babel/code-frame': 7.25.7 + '@babel/code-frame': 7.26.2 '@babel/generator': 7.25.7 '@babel/parser': 7.25.7 '@babel/template': 7.25.7 - '@babel/types': 7.25.7 + '@babel/types': 7.26.3 debug: 4.3.7 globals: 11.12.0 transitivePeerDependencies: @@ -6171,24 +6154,24 @@ snapshots: '@rollup/plugin-commonjs@25.0.8(rollup@3.29.4)': dependencies: - '@rollup/pluginutils': 5.1.0(rollup@3.29.4) + '@rollup/pluginutils': 5.1.3(rollup@3.29.4) commondir: 1.0.1 estree-walker: 2.0.2 glob: 8.1.0 is-reference: 1.2.1 - magic-string: 0.30.10 + magic-string: 0.30.12 optionalDependencies: rollup: 3.29.4 '@rollup/plugin-json@6.1.0(rollup@3.29.4)': dependencies: - '@rollup/pluginutils': 5.1.0(rollup@3.29.4) + '@rollup/pluginutils': 5.1.3(rollup@3.29.4) optionalDependencies: rollup: 3.29.4 '@rollup/plugin-node-resolve@15.2.3(rollup@3.29.4)': dependencies: - '@rollup/pluginutils': 5.1.0(rollup@3.29.4) + '@rollup/pluginutils': 5.1.3(rollup@3.29.4) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-builtin-module: 3.2.1 @@ -6199,16 +6182,8 @@ snapshots: '@rollup/plugin-replace@5.0.7(rollup@3.29.4)': dependencies: - '@rollup/pluginutils': 5.1.0(rollup@3.29.4) - magic-string: 0.30.10 - optionalDependencies: - rollup: 3.29.4 - - '@rollup/pluginutils@5.1.0(rollup@3.29.4)': - dependencies: - '@types/estree': 1.0.5 - estree-walker: 2.0.2 - picomatch: 2.3.1 + '@rollup/pluginutils': 5.1.3(rollup@3.29.4) + magic-string: 0.30.12 optionalDependencies: rollup: 3.29.4 @@ -6220,6 +6195,14 @@ snapshots: optionalDependencies: rollup: 4.24.0 + '@rollup/pluginutils@5.1.3(rollup@3.29.4)': + dependencies: + '@types/estree': 1.0.6 + estree-walker: 2.0.2 + picomatch: 4.0.2 + optionalDependencies: + rollup: 3.29.4 + '@rollup/pluginutils@5.1.3(rollup@4.24.0)': dependencies: '@types/estree': 1.0.6 @@ -6454,6 +6437,8 @@ snapshots: '@types/web-bluetooth@0.0.20': {} + '@types/webextension-polyfill@0.12.1': {} + '@types/yauzl@2.10.3': dependencies: '@types/node': 20.17.6 @@ -6874,14 +6859,14 @@ snapshots: at-least-node@1.0.0: {} - autoprefixer@10.4.19(postcss@8.4.39): + autoprefixer@10.4.19(postcss@8.4.47): dependencies: - browserslist: 4.23.1 - caniuse-lite: 1.0.30001633 + browserslist: 4.24.0 + caniuse-lite: 1.0.30001666 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 - postcss: 8.4.39 + postcss: 8.4.47 postcss-value-parser: 4.2.0 axobject-query@4.1.0: {} @@ -7046,7 +7031,7 @@ snapshots: caniuse-api@3.0.0: dependencies: browserslist: 4.24.0 - caniuse-lite: 1.0.30001633 + caniuse-lite: 1.0.30001666 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 @@ -7265,9 +7250,9 @@ snapshots: dependencies: type-fest: 1.4.0 - css-declaration-sorter@7.2.0(postcss@8.4.39): + css-declaration-sorter@7.2.0(postcss@8.4.47): dependencies: - postcss: 8.4.39 + postcss: 8.4.47 css-select@5.1.0: dependencies: @@ -7296,49 +7281,49 @@ snapshots: cssesc@3.0.0: {} - cssnano-preset-default@7.0.4(postcss@8.4.39): + cssnano-preset-default@7.0.4(postcss@8.4.47): dependencies: - browserslist: 4.23.1 - css-declaration-sorter: 7.2.0(postcss@8.4.39) - cssnano-utils: 5.0.0(postcss@8.4.39) - postcss: 8.4.39 - postcss-calc: 10.0.0(postcss@8.4.39) - postcss-colormin: 7.0.1(postcss@8.4.39) - postcss-convert-values: 7.0.2(postcss@8.4.39) - postcss-discard-comments: 7.0.1(postcss@8.4.39) - postcss-discard-duplicates: 7.0.0(postcss@8.4.39) - postcss-discard-empty: 7.0.0(postcss@8.4.39) - postcss-discard-overridden: 7.0.0(postcss@8.4.39) - postcss-merge-longhand: 7.0.2(postcss@8.4.39) - postcss-merge-rules: 7.0.2(postcss@8.4.39) - postcss-minify-font-values: 7.0.0(postcss@8.4.39) - postcss-minify-gradients: 7.0.0(postcss@8.4.39) - postcss-minify-params: 7.0.1(postcss@8.4.39) - postcss-minify-selectors: 7.0.2(postcss@8.4.39) - postcss-normalize-charset: 7.0.0(postcss@8.4.39) - postcss-normalize-display-values: 7.0.0(postcss@8.4.39) - postcss-normalize-positions: 7.0.0(postcss@8.4.39) - postcss-normalize-repeat-style: 7.0.0(postcss@8.4.39) - postcss-normalize-string: 7.0.0(postcss@8.4.39) - postcss-normalize-timing-functions: 7.0.0(postcss@8.4.39) - postcss-normalize-unicode: 7.0.1(postcss@8.4.39) - postcss-normalize-url: 7.0.0(postcss@8.4.39) - postcss-normalize-whitespace: 7.0.0(postcss@8.4.39) - postcss-ordered-values: 7.0.1(postcss@8.4.39) - postcss-reduce-initial: 7.0.1(postcss@8.4.39) - postcss-reduce-transforms: 7.0.0(postcss@8.4.39) - postcss-svgo: 7.0.1(postcss@8.4.39) - postcss-unique-selectors: 7.0.1(postcss@8.4.39) + browserslist: 4.24.0 + css-declaration-sorter: 7.2.0(postcss@8.4.47) + cssnano-utils: 5.0.0(postcss@8.4.47) + postcss: 8.4.47 + postcss-calc: 10.0.0(postcss@8.4.47) + postcss-colormin: 7.0.1(postcss@8.4.47) + postcss-convert-values: 7.0.2(postcss@8.4.47) + postcss-discard-comments: 7.0.1(postcss@8.4.47) + postcss-discard-duplicates: 7.0.0(postcss@8.4.47) + postcss-discard-empty: 7.0.0(postcss@8.4.47) + postcss-discard-overridden: 7.0.0(postcss@8.4.47) + postcss-merge-longhand: 7.0.2(postcss@8.4.47) + postcss-merge-rules: 7.0.2(postcss@8.4.47) + postcss-minify-font-values: 7.0.0(postcss@8.4.47) + postcss-minify-gradients: 7.0.0(postcss@8.4.47) + postcss-minify-params: 7.0.1(postcss@8.4.47) + postcss-minify-selectors: 7.0.2(postcss@8.4.47) + postcss-normalize-charset: 7.0.0(postcss@8.4.47) + postcss-normalize-display-values: 7.0.0(postcss@8.4.47) + postcss-normalize-positions: 7.0.0(postcss@8.4.47) + postcss-normalize-repeat-style: 7.0.0(postcss@8.4.47) + postcss-normalize-string: 7.0.0(postcss@8.4.47) + postcss-normalize-timing-functions: 7.0.0(postcss@8.4.47) + postcss-normalize-unicode: 7.0.1(postcss@8.4.47) + postcss-normalize-url: 7.0.0(postcss@8.4.47) + postcss-normalize-whitespace: 7.0.0(postcss@8.4.47) + postcss-ordered-values: 7.0.1(postcss@8.4.47) + postcss-reduce-initial: 7.0.1(postcss@8.4.47) + postcss-reduce-transforms: 7.0.0(postcss@8.4.47) + postcss-svgo: 7.0.1(postcss@8.4.47) + postcss-unique-selectors: 7.0.1(postcss@8.4.47) - cssnano-utils@5.0.0(postcss@8.4.39): + cssnano-utils@5.0.0(postcss@8.4.47): dependencies: - postcss: 8.4.39 + postcss: 8.4.47 - cssnano@7.0.4(postcss@8.4.39): + cssnano@7.0.4(postcss@8.4.47): dependencies: - cssnano-preset-default: 7.0.4(postcss@8.4.39) + cssnano-preset-default: 7.0.4(postcss@8.4.47) lilconfig: 3.1.2 - postcss: 8.4.39 + postcss: 8.4.47 csso@5.0.5: dependencies: @@ -8004,7 +7989,7 @@ snapshots: is-reference@1.2.1: dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 is-reference@3.0.2: dependencies: @@ -8242,10 +8227,6 @@ snapshots: lunr@2.3.9: {} - magic-string@0.30.10: - dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 - magic-string@0.30.11: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 @@ -8389,19 +8370,19 @@ snapshots: mkdist@1.5.4(sass@1.80.7)(typescript@5.6.3): dependencies: - autoprefixer: 10.4.19(postcss@8.4.39) + autoprefixer: 10.4.19(postcss@8.4.47) citty: 0.1.6 - cssnano: 7.0.4(postcss@8.4.39) + cssnano: 7.0.4(postcss@8.4.47) defu: 6.1.4 esbuild: 0.23.0 fast-glob: 3.3.2 jiti: 1.21.6 mlly: 1.7.1 pathe: 1.1.2 - pkg-types: 1.1.3 - postcss: 8.4.39 - postcss-nested: 6.0.1(postcss@8.4.39) - semver: 7.6.2 + pkg-types: 1.2.0 + postcss: 8.4.47 + postcss-nested: 6.0.1(postcss@8.4.47) + semver: 7.6.3 optionalDependencies: sass: 1.80.7 typescript: 5.6.3 @@ -8411,7 +8392,7 @@ snapshots: acorn: 8.12.1 pathe: 1.1.2 pkg-types: 1.2.0 - ufo: 1.5.3 + ufo: 1.5.4 moment@2.29.4: optional: true @@ -8683,159 +8664,153 @@ snapshots: pidtree@0.6.0: {} - pkg-types@1.1.3: - dependencies: - confbox: 0.1.8 - mlly: 1.7.1 - pathe: 1.1.2 - pkg-types@1.2.0: dependencies: confbox: 0.1.8 mlly: 1.7.1 pathe: 1.1.2 - postcss-calc@10.0.0(postcss@8.4.39): + postcss-calc@10.0.0(postcss@8.4.47): dependencies: - postcss: 8.4.39 + postcss: 8.4.47 postcss-selector-parser: 6.1.0 postcss-value-parser: 4.2.0 - postcss-colormin@7.0.1(postcss@8.4.39): + postcss-colormin@7.0.1(postcss@8.4.47): dependencies: - browserslist: 4.23.1 + browserslist: 4.24.0 caniuse-api: 3.0.0 colord: 2.9.3 - postcss: 8.4.39 + postcss: 8.4.47 postcss-value-parser: 4.2.0 - postcss-convert-values@7.0.2(postcss@8.4.39): + postcss-convert-values@7.0.2(postcss@8.4.47): dependencies: - browserslist: 4.23.1 - postcss: 8.4.39 + browserslist: 4.24.0 + postcss: 8.4.47 postcss-value-parser: 4.2.0 - postcss-discard-comments@7.0.1(postcss@8.4.39): + postcss-discard-comments@7.0.1(postcss@8.4.47): dependencies: - postcss: 8.4.39 + postcss: 8.4.47 postcss-selector-parser: 6.1.0 - postcss-discard-duplicates@7.0.0(postcss@8.4.39): + postcss-discard-duplicates@7.0.0(postcss@8.4.47): dependencies: - postcss: 8.4.39 + postcss: 8.4.47 - postcss-discard-empty@7.0.0(postcss@8.4.39): + postcss-discard-empty@7.0.0(postcss@8.4.47): dependencies: - postcss: 8.4.39 + postcss: 8.4.47 - postcss-discard-overridden@7.0.0(postcss@8.4.39): + postcss-discard-overridden@7.0.0(postcss@8.4.47): dependencies: - postcss: 8.4.39 + postcss: 8.4.47 - postcss-merge-longhand@7.0.2(postcss@8.4.39): + postcss-merge-longhand@7.0.2(postcss@8.4.47): dependencies: - postcss: 8.4.39 + postcss: 8.4.47 postcss-value-parser: 4.2.0 - stylehacks: 7.0.2(postcss@8.4.39) + stylehacks: 7.0.2(postcss@8.4.47) - postcss-merge-rules@7.0.2(postcss@8.4.39): + postcss-merge-rules@7.0.2(postcss@8.4.47): dependencies: - browserslist: 4.23.1 + browserslist: 4.24.0 caniuse-api: 3.0.0 - cssnano-utils: 5.0.0(postcss@8.4.39) - postcss: 8.4.39 + cssnano-utils: 5.0.0(postcss@8.4.47) + postcss: 8.4.47 postcss-selector-parser: 6.1.0 - postcss-minify-font-values@7.0.0(postcss@8.4.39): + postcss-minify-font-values@7.0.0(postcss@8.4.47): dependencies: - postcss: 8.4.39 + postcss: 8.4.47 postcss-value-parser: 4.2.0 - postcss-minify-gradients@7.0.0(postcss@8.4.39): + postcss-minify-gradients@7.0.0(postcss@8.4.47): dependencies: colord: 2.9.3 - cssnano-utils: 5.0.0(postcss@8.4.39) - postcss: 8.4.39 + cssnano-utils: 5.0.0(postcss@8.4.47) + postcss: 8.4.47 postcss-value-parser: 4.2.0 - postcss-minify-params@7.0.1(postcss@8.4.39): + postcss-minify-params@7.0.1(postcss@8.4.47): dependencies: - browserslist: 4.23.1 - cssnano-utils: 5.0.0(postcss@8.4.39) - postcss: 8.4.39 + browserslist: 4.24.0 + cssnano-utils: 5.0.0(postcss@8.4.47) + postcss: 8.4.47 postcss-value-parser: 4.2.0 - postcss-minify-selectors@7.0.2(postcss@8.4.39): + postcss-minify-selectors@7.0.2(postcss@8.4.47): dependencies: cssesc: 3.0.0 - postcss: 8.4.39 + postcss: 8.4.47 postcss-selector-parser: 6.1.0 - postcss-nested@6.0.1(postcss@8.4.39): + postcss-nested@6.0.1(postcss@8.4.47): dependencies: - postcss: 8.4.39 + postcss: 8.4.47 postcss-selector-parser: 6.1.0 - postcss-normalize-charset@7.0.0(postcss@8.4.39): + postcss-normalize-charset@7.0.0(postcss@8.4.47): dependencies: - postcss: 8.4.39 + postcss: 8.4.47 - postcss-normalize-display-values@7.0.0(postcss@8.4.39): + postcss-normalize-display-values@7.0.0(postcss@8.4.47): dependencies: - postcss: 8.4.39 + postcss: 8.4.47 postcss-value-parser: 4.2.0 - postcss-normalize-positions@7.0.0(postcss@8.4.39): + postcss-normalize-positions@7.0.0(postcss@8.4.47): dependencies: - postcss: 8.4.39 + postcss: 8.4.47 postcss-value-parser: 4.2.0 - postcss-normalize-repeat-style@7.0.0(postcss@8.4.39): + postcss-normalize-repeat-style@7.0.0(postcss@8.4.47): dependencies: - postcss: 8.4.39 + postcss: 8.4.47 postcss-value-parser: 4.2.0 - postcss-normalize-string@7.0.0(postcss@8.4.39): + postcss-normalize-string@7.0.0(postcss@8.4.47): dependencies: - postcss: 8.4.39 + postcss: 8.4.47 postcss-value-parser: 4.2.0 - postcss-normalize-timing-functions@7.0.0(postcss@8.4.39): + postcss-normalize-timing-functions@7.0.0(postcss@8.4.47): dependencies: - postcss: 8.4.39 + postcss: 8.4.47 postcss-value-parser: 4.2.0 - postcss-normalize-unicode@7.0.1(postcss@8.4.39): + postcss-normalize-unicode@7.0.1(postcss@8.4.47): dependencies: - browserslist: 4.23.1 - postcss: 8.4.39 + browserslist: 4.24.0 + postcss: 8.4.47 postcss-value-parser: 4.2.0 - postcss-normalize-url@7.0.0(postcss@8.4.39): + postcss-normalize-url@7.0.0(postcss@8.4.47): dependencies: - postcss: 8.4.39 + postcss: 8.4.47 postcss-value-parser: 4.2.0 - postcss-normalize-whitespace@7.0.0(postcss@8.4.39): + postcss-normalize-whitespace@7.0.0(postcss@8.4.47): dependencies: - postcss: 8.4.39 + postcss: 8.4.47 postcss-value-parser: 4.2.0 - postcss-ordered-values@7.0.1(postcss@8.4.39): + postcss-ordered-values@7.0.1(postcss@8.4.47): dependencies: - cssnano-utils: 5.0.0(postcss@8.4.39) - postcss: 8.4.39 + cssnano-utils: 5.0.0(postcss@8.4.47) + postcss: 8.4.47 postcss-value-parser: 4.2.0 - postcss-reduce-initial@7.0.1(postcss@8.4.39): + postcss-reduce-initial@7.0.1(postcss@8.4.47): dependencies: - browserslist: 4.23.1 + browserslist: 4.24.0 caniuse-api: 3.0.0 - postcss: 8.4.39 + postcss: 8.4.47 - postcss-reduce-transforms@7.0.0(postcss@8.4.39): + postcss-reduce-transforms@7.0.0(postcss@8.4.47): dependencies: - postcss: 8.4.39 + postcss: 8.4.47 postcss-value-parser: 4.2.0 postcss-selector-parser@6.1.0: @@ -8843,25 +8818,19 @@ snapshots: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-svgo@7.0.1(postcss@8.4.39): + postcss-svgo@7.0.1(postcss@8.4.47): dependencies: - postcss: 8.4.39 + postcss: 8.4.47 postcss-value-parser: 4.2.0 svgo: 3.3.2 - postcss-unique-selectors@7.0.1(postcss@8.4.39): + postcss-unique-selectors@7.0.1(postcss@8.4.47): dependencies: - postcss: 8.4.39 + postcss: 8.4.47 postcss-selector-parser: 6.1.0 postcss-value-parser@4.2.0: {} - postcss@8.4.39: - dependencies: - nanoid: 3.3.7 - picocolors: 1.1.1 - source-map-js: 1.2.0 - postcss@8.4.47: dependencies: nanoid: 3.3.7 @@ -9040,11 +9009,11 @@ snapshots: rollup-plugin-dts@6.1.1(rollup@3.29.4)(typescript@5.6.3): dependencies: - magic-string: 0.30.10 + magic-string: 0.30.12 rollup: 3.29.4 typescript: 5.6.3 optionalDependencies: - '@babel/code-frame': 7.24.7 + '@babel/code-frame': 7.26.2 rollup@3.29.4: optionalDependencies: @@ -9118,8 +9087,6 @@ snapshots: semver@6.3.1: {} - semver@7.6.2: {} - semver@7.6.3: {} seroval-plugins@1.1.0(seroval@1.1.0): @@ -9321,10 +9288,10 @@ snapshots: dependencies: js-tokens: 9.0.0 - stylehacks@7.0.2(postcss@8.4.39): + stylehacks@7.0.2(postcss@8.4.47): dependencies: browserslist: 4.24.0 - postcss: 8.4.39 + postcss: 8.4.47 postcss-selector-parser: 6.1.0 superjson@2.2.1: @@ -9478,8 +9445,6 @@ snapshots: typescript@5.6.3: {} - ufo@1.5.3: {} - ufo@1.5.4: {} uhyphen@0.2.0: {} @@ -9491,7 +9456,7 @@ snapshots: '@rollup/plugin-json': 6.1.0(rollup@3.29.4) '@rollup/plugin-node-resolve': 15.2.3(rollup@3.29.4) '@rollup/plugin-replace': 5.0.7(rollup@3.29.4) - '@rollup/pluginutils': 5.1.0(rollup@3.29.4) + '@rollup/pluginutils': 5.1.3(rollup@3.29.4) chalk: 5.3.0 citty: 0.1.6 consola: 3.2.3 @@ -9500,11 +9465,11 @@ snapshots: globby: 13.2.2 hookable: 5.5.3 jiti: 1.21.6 - magic-string: 0.30.10 + magic-string: 0.30.12 mkdist: 1.5.4(sass@1.80.7)(typescript@5.6.3) mlly: 1.7.1 pathe: 1.1.2 - pkg-types: 1.1.3 + pkg-types: 1.2.0 pretty-bytes: 6.1.1 rollup: 3.29.4 rollup-plugin-dts: 6.1.1(rollup@3.29.4)(typescript@5.6.3) @@ -9617,9 +9582,9 @@ snapshots: untyped@1.4.2: dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.26.0 '@babel/standalone': 7.24.7 - '@babel/types': 7.24.7 + '@babel/types': 7.26.3 defu: 6.1.4 jiti: 1.21.6 mri: 1.2.0 @@ -9878,6 +9843,8 @@ snapshots: - supports-color - utf-8-validate + webextension-polyfill@0.12.0: {} + webidl-conversions@7.0.0: {} webpack-sources@3.2.3: