├── packages ├── vite-plugin-docs │ ├── static │ │ ├── .nojekyll │ │ └── img │ │ │ ├── favicon.ico │ │ │ └── docusaurus.png │ ├── docs │ │ ├── getting-started │ │ │ ├── vue │ │ │ │ ├── _category_.yml │ │ │ │ └── assets │ │ │ │ │ ├── start-starter-wide.png │ │ │ │ │ ├── start-initial-files.png │ │ │ │ │ ├── start-starter-narrow.png │ │ │ │ │ └── start-context-menu-inspect.png │ │ │ ├── react │ │ │ │ ├── _category_.yml │ │ │ │ └── assets │ │ │ │ │ ├── start-initial-files.png │ │ │ │ │ ├── start-starter-wide.png │ │ │ │ │ ├── start-starter-narrow.png │ │ │ │ │ └── start-context-menu-inspect.png │ │ │ ├── solid │ │ │ │ ├── _category_.yml │ │ │ │ └── assets │ │ │ │ │ ├── start-initial-files.png │ │ │ │ │ ├── start-starter-wide.png │ │ │ │ │ ├── start-starter-narrow.png │ │ │ │ │ └── start-context-menu-inspect.png │ │ │ ├── vanilla-js │ │ │ │ ├── _category_.yml │ │ │ │ └── assets │ │ │ │ │ ├── image.png │ │ │ │ │ ├── crxjs-vanilla-files.png │ │ │ │ │ ├── crxjs-vanilla-content-1.png │ │ │ │ │ ├── crxjs-vanilla-content-2.png │ │ │ │ │ ├── crxjs-vanilla-content-3.png │ │ │ │ │ ├── crxjs-vanilla-inspect-menu.png │ │ │ │ │ ├── crxjs-vanilla-inspect-raw.png │ │ │ │ │ ├── crxjs-vanilla-inspect-edit-js.png │ │ │ │ │ └── crxjs-vanilla-inspect-edit-css.png │ │ │ ├── _category_.yml │ │ │ ├── index.md │ │ │ ├── assets │ │ │ │ ├── dev-mode-switch-edge.png │ │ │ │ └── dev-mode-switch-chrome.png │ │ │ └── _dev-basics-intro.md │ │ └── concepts │ │ │ └── _category_.yml │ ├── babel.config.js │ ├── tsconfig.json │ └── src │ │ └── components │ │ └── HomepageFeatures │ │ └── styles.module.css ├── rollup-plugin │ ├── __fixtures__ │ │ └── extensions │ │ │ ├── mv2-empty │ │ │ └── manifest.json │ │ │ ├── mv3-empty │ │ │ └── manifest.json │ │ │ ├── mv2-options-ui │ │ │ ├── asset.js │ │ │ ├── imported.js │ │ │ ├── options.css │ │ │ ├── options3.ts │ │ │ ├── options4.tsx │ │ │ ├── popup │ │ │ │ └── popup.js │ │ │ ├── content.css │ │ │ ├── options1.js │ │ │ ├── options2.jsx │ │ │ ├── devtools │ │ │ │ ├── devtools1.ts │ │ │ │ ├── devtools2.js │ │ │ │ └── devtools.html │ │ │ ├── content.js │ │ │ ├── background.js │ │ │ ├── options.jpg │ │ │ ├── options.png │ │ │ ├── images │ │ │ │ ├── favicon.ico │ │ │ │ ├── favicon.png │ │ │ │ ├── icon-main-16.png │ │ │ │ ├── icon-main-48.png │ │ │ │ └── icon-main-128.png │ │ │ └── fonts │ │ │ │ ├── Missaali-Regular.otf │ │ │ │ ├── NotoSans-Black.ttf │ │ │ │ └── NotoSans-Light.ttf │ │ │ ├── mv3-options-ui │ │ │ ├── asset.js │ │ │ ├── imported.js │ │ │ ├── options.css │ │ │ ├── options3.ts │ │ │ ├── options4.tsx │ │ │ ├── popup │ │ │ │ └── popup.js │ │ │ ├── content.css │ │ │ ├── options1.js │ │ │ ├── options2.jsx │ │ │ ├── devtools │ │ │ │ ├── devtools1.ts │ │ │ │ ├── devtools2.js │ │ │ │ └── devtools.html │ │ │ ├── content.js │ │ │ ├── options.jpg │ │ │ ├── options.png │ │ │ ├── service_worker.js │ │ │ ├── images │ │ │ │ ├── favicon.ico │ │ │ │ ├── favicon.png │ │ │ │ ├── icon-main-16.png │ │ │ │ ├── icon-main-48.png │ │ │ │ └── icon-main-128.png │ │ │ └── fonts │ │ │ │ ├── Missaali-Regular.otf │ │ │ │ ├── NotoSans-Black.ttf │ │ │ │ └── NotoSans-Light.ttf │ │ │ ├── mv2-input-array │ │ │ ├── index.js │ │ │ ├── images │ │ │ │ └── icon-main-16.png │ │ │ ├── background.js │ │ │ └── manifest.json │ │ │ ├── mv2-input-object │ │ │ ├── index.js │ │ │ ├── images │ │ │ │ └── icon-main-16.png │ │ │ ├── background.js │ │ │ └── manifest.json │ │ │ ├── mv2-kitchen-sink │ │ │ ├── asset.js │ │ │ ├── imported.js │ │ │ ├── options3.ts │ │ │ ├── options4.tsx │ │ │ ├── popup │ │ │ │ └── popup.js │ │ │ ├── options.css │ │ │ ├── content.css │ │ │ ├── options2.jsx │ │ │ ├── options1.js │ │ │ ├── devtools │ │ │ │ ├── devtools1.ts │ │ │ │ ├── devtools2.js │ │ │ │ └── devtools.html │ │ │ ├── background.js │ │ │ ├── content.js │ │ │ ├── options.jpg │ │ │ ├── options.png │ │ │ ├── images │ │ │ │ ├── favicon.ico │ │ │ │ ├── favicon.png │ │ │ │ ├── icon-main-128.png │ │ │ │ ├── icon-main-16.png │ │ │ │ └── icon-main-48.png │ │ │ ├── fonts │ │ │ │ ├── NotoSans-Black.ttf │ │ │ │ ├── NotoSans-Light.ttf │ │ │ │ └── Missaali-Regular.otf │ │ │ └── _locales │ │ │ │ └── es │ │ │ │ └── messages.json │ │ │ ├── mv3-input-array │ │ │ ├── index.js │ │ │ ├── images │ │ │ │ └── icon-main-16.png │ │ │ ├── service_worker.js │ │ │ └── manifest.json │ │ │ ├── mv3-input-object │ │ │ ├── index.js │ │ │ ├── images │ │ │ │ └── icon-main-16.png │ │ │ ├── service_worker.js │ │ │ └── manifest.json │ │ │ ├── mv3-kitchen-sink │ │ │ ├── asset.js │ │ │ ├── imported.js │ │ │ ├── options3.ts │ │ │ ├── options4.tsx │ │ │ ├── popup │ │ │ │ └── popup.js │ │ │ ├── options.css │ │ │ ├── content.css │ │ │ ├── options2.jsx │ │ │ ├── options1.js │ │ │ ├── devtools │ │ │ │ ├── devtools1.ts │ │ │ │ ├── devtools2.js │ │ │ │ └── devtools.html │ │ │ ├── content.js │ │ │ ├── options.jpg │ │ │ ├── options.png │ │ │ ├── service_worker.js │ │ │ ├── images │ │ │ │ ├── favicon.ico │ │ │ │ ├── favicon.png │ │ │ │ ├── icon-main-128.png │ │ │ │ ├── icon-main-16.png │ │ │ │ └── icon-main-48.png │ │ │ ├── fonts │ │ │ │ ├── NotoSans-Black.ttf │ │ │ │ ├── NotoSans-Light.ttf │ │ │ │ └── Missaali-Regular.otf │ │ │ └── _locales │ │ │ │ └── es │ │ │ │ └── messages.json │ │ │ ├── mv3-basic-js │ │ │ ├── src │ │ │ │ ├── content.js │ │ │ │ ├── service_worker.js │ │ │ │ ├── popup.js │ │ │ │ └── App.js │ │ │ └── babel.config.json │ │ │ ├── mv3-basic-ts │ │ │ └── src │ │ │ │ ├── content.ts │ │ │ │ ├── service_worker.ts │ │ │ │ ├── popup.tsx │ │ │ │ └── App.tsx │ │ │ ├── mv2-browser-polyfill │ │ │ ├── scripts │ │ │ │ ├── shared.js │ │ │ │ ├── content.css │ │ │ │ ├── background.js │ │ │ │ └── content.js │ │ │ ├── options │ │ │ │ ├── options.css │ │ │ │ └── options.js │ │ │ ├── popup │ │ │ │ └── popup.js │ │ │ └── images │ │ │ │ ├── favicon.ico │ │ │ │ ├── favicon.png │ │ │ │ ├── options.jpg │ │ │ │ ├── icon-main-128.png │ │ │ │ ├── icon-main-16.png │ │ │ │ └── icon-main-48.png │ │ │ ├── mv2-chunk-file-names │ │ │ ├── shared │ │ │ │ └── imported.js │ │ │ ├── content │ │ │ │ └── content.js │ │ │ └── background │ │ │ │ └── background.js │ │ │ ├── mv2-extend-manifest-as-object │ │ │ ├── imported.js │ │ │ ├── content.js │ │ │ ├── background.js │ │ │ └── images │ │ │ │ ├── favicon.ico │ │ │ │ ├── favicon.png │ │ │ │ ├── icon-main-16.png │ │ │ │ ├── icon-main-48.png │ │ │ │ └── icon-main-128.png │ │ │ ├── mv2-iife-json-paths-bg-only │ │ │ ├── imported.js │ │ │ ├── background.js │ │ │ └── manifest.json │ │ │ ├── mv2-iife-json-paths-ct-only │ │ │ ├── imported.js │ │ │ └── content.js │ │ │ ├── mv2-locales │ │ │ ├── src │ │ │ │ ├── background.js │ │ │ │ ├── manifest.json │ │ │ │ └── _locales │ │ │ │ │ └── es │ │ │ │ │ └── messages.json │ │ │ └── babel.config.json │ │ │ ├── mv2-not-recommended │ │ │ ├── background.js │ │ │ └── content.css │ │ │ ├── mv3-browser-polyfill │ │ │ ├── scripts │ │ │ │ ├── shared.js │ │ │ │ ├── content.css │ │ │ │ └── content.js │ │ │ ├── options │ │ │ │ ├── options.css │ │ │ │ └── options.js │ │ │ ├── popup │ │ │ │ └── popup.js │ │ │ ├── service_worker.js │ │ │ └── images │ │ │ │ ├── favicon.ico │ │ │ │ ├── favicon.png │ │ │ │ ├── options.jpg │ │ │ │ ├── icon-main-128.png │ │ │ │ ├── icon-main-16.png │ │ │ │ └── icon-main-48.png │ │ │ ├── mv3-chunk-file-names │ │ │ ├── shared │ │ │ │ └── imported.js │ │ │ ├── content │ │ │ │ └── content.js │ │ │ └── service_worker.js │ │ │ ├── mv3-extend-manifest-as-object │ │ │ ├── imported.js │ │ │ ├── content.js │ │ │ ├── service_worker.js │ │ │ └── images │ │ │ │ ├── favicon.ico │ │ │ │ ├── favicon.png │ │ │ │ ├── icon-main-16.png │ │ │ │ ├── icon-main-48.png │ │ │ │ └── icon-main-128.png │ │ │ ├── mv3-iife-json-paths-bg-only │ │ │ ├── imported.js │ │ │ ├── service_worker.js │ │ │ └── manifest.json │ │ │ ├── mv3-iife-json-paths-ct-only │ │ │ ├── imported.js │ │ │ └── content.js │ │ │ ├── mv2-basic-js │ │ │ ├── src │ │ │ │ ├── content │ │ │ │ │ └── index.js │ │ │ │ ├── background │ │ │ │ │ └── index.js │ │ │ │ └── pages │ │ │ │ │ └── popup │ │ │ │ │ ├── index.js │ │ │ │ │ └── App.js │ │ │ └── babel.config.json │ │ │ ├── mv2-basic-ts │ │ │ └── src │ │ │ │ ├── content │ │ │ │ └── index.ts │ │ │ │ ├── background │ │ │ │ └── index.ts │ │ │ │ └── pages │ │ │ │ └── popup │ │ │ │ ├── index.tsx │ │ │ │ └── App.tsx │ │ │ ├── mv2-extend-manifest-as-function │ │ │ ├── imported.js │ │ │ ├── options.css │ │ │ ├── options.js │ │ │ ├── background.js │ │ │ ├── options.png │ │ │ └── images │ │ │ │ ├── favicon.ico │ │ │ │ ├── icon-main-128.png │ │ │ │ ├── icon-main-16.png │ │ │ │ └── icon-main-48.png │ │ │ ├── mv2-external-dependency │ │ │ ├── shared │ │ │ │ └── imported.js │ │ │ ├── content │ │ │ │ └── content.js │ │ │ └── background │ │ │ │ └── background.js │ │ │ ├── mv2-iife-json-paths-bg-multiscript │ │ │ ├── imported.js │ │ │ ├── background1.js │ │ │ └── background2.js │ │ │ ├── mv2-iife-json-paths-both │ │ │ ├── shared │ │ │ │ └── imported.js │ │ │ ├── content │ │ │ │ └── content.js │ │ │ └── background │ │ │ │ └── background.js │ │ │ ├── mv2-iife-json-paths-ct-multiscript │ │ │ ├── imported.js │ │ │ ├── content1.js │ │ │ └── content2.js │ │ │ ├── mv2-iife-json-paths-html │ │ │ ├── shared │ │ │ │ ├── imported1.js │ │ │ │ └── imported2.js │ │ │ ├── background │ │ │ │ └── background.js │ │ │ ├── options │ │ │ │ └── options.js │ │ │ └── content │ │ │ │ └── content.js │ │ │ ├── mv3-extend-manifest-as-function │ │ │ ├── imported.js │ │ │ ├── options.css │ │ │ ├── options.js │ │ │ ├── service_worker.js │ │ │ ├── options.png │ │ │ └── images │ │ │ │ ├── favicon.ico │ │ │ │ ├── icon-main-128.png │ │ │ │ ├── icon-main-16.png │ │ │ │ └── icon-main-48.png │ │ │ ├── mv3-external-dependency │ │ │ ├── shared │ │ │ │ └── imported.js │ │ │ ├── content │ │ │ │ └── content.js │ │ │ └── service_worker.js │ │ │ ├── mv3-iife-json-paths-both │ │ │ ├── shared │ │ │ │ └── imported.js │ │ │ ├── content │ │ │ │ └── content.js │ │ │ └── service_worker.js │ │ │ ├── mv3-iife-json-paths-ct-multiscript │ │ │ ├── imported.js │ │ │ ├── content1.js │ │ │ └── content2.js │ │ │ ├── mv3-iife-json-paths-html │ │ │ ├── shared │ │ │ │ ├── imported1.js │ │ │ │ └── imported2.js │ │ │ ├── service_worker.js │ │ │ ├── options │ │ │ │ └── options.js │ │ │ └── content │ │ │ │ └── content.js │ │ │ ├── mv3-locales │ │ │ ├── src │ │ │ │ ├── service_worker.js │ │ │ │ ├── manifest.json │ │ │ │ └── _locales │ │ │ │ │ └── es │ │ │ │ │ └── messages.json │ │ │ └── babel.config.json │ │ │ ├── mv3-manifest-ts-array-input │ │ │ └── src │ │ │ │ ├── script.ts │ │ │ │ └── content.ts │ │ │ ├── mv3-manifest-ts-object-input │ │ │ └── src │ │ │ │ ├── script.ts │ │ │ │ └── content.ts │ │ │ ├── mv2-iife-json-paths-multi-ct-scripts │ │ │ ├── imported.js │ │ │ ├── content1.js │ │ │ └── content2.js │ │ │ ├── mv3-background-only │ │ │ ├── src │ │ │ │ ├── content │ │ │ │ │ └── index.js │ │ │ │ ├── service_worker.js │ │ │ │ ├── pages │ │ │ │ │ └── popup │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ └── App.js │ │ │ │ └── manifest.json │ │ │ └── babel.config.json │ │ │ ├── mv3-iife-json-paths-multi-ct-scripts │ │ │ ├── imported.js │ │ │ ├── content1.js │ │ │ └── content2.js │ │ │ ├── mv3-content-script-only │ │ │ ├── src │ │ │ │ ├── content │ │ │ │ │ └── index.js │ │ │ │ └── pages │ │ │ │ │ └── popup │ │ │ │ │ ├── index.js │ │ │ │ │ └── App.js │ │ │ └── babel.config.json │ │ │ ├── mv3-manifest-ts-single-input │ │ │ └── src │ │ │ │ ├── content.ts │ │ │ │ ├── service_worker.ts │ │ │ │ ├── popup.tsx │ │ │ │ └── App.tsx │ │ │ ├── mv2-content-script-react-tsx │ │ │ └── src │ │ │ │ ├── background │ │ │ │ └── index.ts │ │ │ │ ├── manifest.json │ │ │ │ ├── pages │ │ │ │ └── popup │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── App.tsx │ │ │ │ └── content │ │ │ │ └── index.tsx │ │ │ ├── mv3-content-script-react-tsx │ │ │ └── src │ │ │ │ ├── service_worker.ts │ │ │ │ ├── pages │ │ │ │ └── popup │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── App.tsx │ │ │ │ └── content │ │ │ │ └── index.tsx │ │ │ ├── mv2-invalid-manifest │ │ │ ├── background.js │ │ │ └── manifest.json │ │ │ ├── mv3-invalid-manifest │ │ │ ├── service_worker.js │ │ │ └── manifest.json │ │ │ ├── mv3-playwright │ │ │ └── src │ │ │ │ └── storage.ts │ │ │ ├── mv2-both-option-types-manifest │ │ │ └── manifest.json │ │ │ ├── mv2-html-only │ │ │ ├── images │ │ │ │ └── icon-main-16.png │ │ │ └── devtools │ │ │ │ └── devtools.html │ │ │ ├── mv2-no-scripts │ │ │ ├── images │ │ │ │ └── icon-main-16.png │ │ │ └── manifest.json │ │ │ ├── mv3-html-only │ │ │ ├── images │ │ │ │ └── icon-main-16.png │ │ │ └── devtools │ │ │ │ └── devtools.html │ │ │ ├── mv3-no-scripts │ │ │ ├── images │ │ │ │ └── icon-main-16.png │ │ │ └── manifest.json │ │ │ ├── mv3-both-option-types-manifest │ │ │ └── manifest.json │ │ │ ├── .eslintrc.js │ │ │ ├── mv2-content-script-react-js │ │ │ ├── babel.config.json │ │ │ └── src │ │ │ │ ├── pages │ │ │ │ └── popup │ │ │ │ │ ├── index.js │ │ │ │ │ └── App.js │ │ │ │ ├── content1 │ │ │ │ └── index.js │ │ │ │ └── content2 │ │ │ │ └── index.jsx │ │ │ └── mv3-content-script-react-js │ │ │ ├── babel.config.json │ │ │ └── src │ │ │ ├── pages │ │ │ └── popup │ │ │ │ ├── index.js │ │ │ │ └── App.js │ │ │ ├── content1 │ │ │ └── index.js │ │ │ └── content2 │ │ │ └── index.jsx │ ├── src │ │ ├── manifest-input │ │ │ ├── browser │ │ │ │ ├── modules.d.ts │ │ │ │ ├── contentScriptWrapper.ts │ │ │ │ ├── delay.ts │ │ │ │ ├── .prettierrc.yaml │ │ │ │ ├── resolvePath.ts │ │ │ │ ├── tsconfig.json │ │ │ │ ├── types.ts │ │ │ │ └── .eslintrc.js │ │ │ └── cloneObject.ts │ │ ├── modules.d.ts │ │ ├── browser-polyfill │ │ │ └── browser │ │ │ │ ├── .prettierrc.yaml │ │ │ │ ├── tsconfig.json │ │ │ │ └── .eslintrc.js │ │ └── validate-names │ │ │ └── __tests__ │ │ │ └── validate__init.test.ts │ ├── __tests__ │ │ └── .prettierrc.yaml │ ├── .eslintignore │ └── tsconfig.json └── vite-plugin │ ├── tests │ ├── out │ │ ├── basic-js │ │ │ ├── src │ │ │ │ ├── content.js │ │ │ │ ├── background.js │ │ │ │ ├── popup.jsx │ │ │ │ └── App.jsx │ │ │ └── build.test.ts │ │ ├── with-public-dir │ │ │ ├── src │ │ │ │ └── popup.js │ │ │ ├── public │ │ │ │ └── icons │ │ │ │ │ ├── action-icon-16.png │ │ │ │ │ ├── action-icon-32.png │ │ │ │ │ ├── action-icon-48.png │ │ │ │ │ ├── action-icon-128.png │ │ │ │ │ ├── manifest-icon-16.png │ │ │ │ │ ├── manifest-icon-32.png │ │ │ │ │ ├── manifest-icon-48.png │ │ │ │ │ └── manifest-icon-128.png │ │ │ └── build.test.ts │ │ ├── with-copied-assets │ │ │ ├── src │ │ │ │ ├── popup.js │ │ │ │ ├── images │ │ │ │ │ ├── image1.png │ │ │ │ │ └── image2.png │ │ │ │ └── icons │ │ │ │ │ ├── action-icon-16.png │ │ │ │ │ ├── action-icon-32.png │ │ │ │ │ ├── action-icon-48.png │ │ │ │ │ ├── action-icon-128.png │ │ │ │ │ ├── manifest-icon-16.png │ │ │ │ │ ├── manifest-icon-32.png │ │ │ │ │ ├── manifest-icon-48.png │ │ │ │ │ └── manifest-icon-128.png │ │ │ ├── _locales │ │ │ │ ├── en │ │ │ │ │ └── messages.json │ │ │ │ └── es │ │ │ │ │ └── messages.json │ │ │ └── build.test.ts │ │ ├── basic-ts │ │ │ ├── src │ │ │ │ ├── content.ts │ │ │ │ ├── background.ts │ │ │ │ ├── popup.tsx │ │ │ │ └── App.tsx │ │ │ └── build.test.ts │ │ ├── with-web-accessible-html │ │ │ ├── src │ │ │ │ ├── welcome.js │ │ │ │ └── sidebar.js │ │ │ ├── public │ │ │ │ ├── public.js │ │ │ │ └── static.js │ │ │ └── build.test.ts │ │ ├── vite-content-script-css-imports │ │ │ ├── src │ │ │ │ ├── styles.css │ │ │ │ └── content.ts │ │ │ ├── build.test.ts │ │ │ └── manifest.json │ │ ├── with-circular-deps │ │ │ ├── src │ │ │ │ ├── vite-env.d.ts │ │ │ │ ├── module.ts │ │ │ │ ├── utils.ts │ │ │ │ └── content.ts │ │ │ └── build.test.ts │ │ ├── dynamic-script │ │ │ ├── src │ │ │ │ ├── dynamic-script.ts │ │ │ │ ├── main-world.ts │ │ │ │ └── declared-script.ts │ │ │ └── build.test.ts │ │ ├── vite-content-script-css-imports-2 │ │ │ ├── src │ │ │ │ ├── content1 │ │ │ │ │ ├── styles.css │ │ │ │ │ └── index.ts │ │ │ │ └── content2 │ │ │ │ │ ├── styles.css │ │ │ │ │ └── index.ts │ │ │ └── build.test.ts │ │ ├── vite-content-script-css-imports-3 │ │ │ ├── src │ │ │ │ ├── content1 │ │ │ │ │ ├── styles.css │ │ │ │ │ └── index.ts │ │ │ │ ├── main │ │ │ │ │ ├── styles.css │ │ │ │ │ └── import.ts │ │ │ │ └── content2 │ │ │ │ │ ├── styles.css │ │ │ │ │ └── index.ts │ │ │ └── build.test.ts │ │ ├── vite-self-directive-in-csp │ │ │ ├── src │ │ │ │ ├── content.ts │ │ │ │ ├── background.ts │ │ │ │ ├── popup.tsx │ │ │ │ └── App.tsx │ │ │ └── build.test.ts │ │ ├── with-sourcemaps │ │ │ ├── src │ │ │ │ ├── background.ts │ │ │ │ ├── content.ts │ │ │ │ ├── popup.tsx │ │ │ │ └── App.tsx │ │ │ └── build.test.ts │ │ ├── vite-declared-script-resources │ │ │ ├── src │ │ │ │ ├── script.ts │ │ │ │ ├── font.otf │ │ │ │ └── image.png │ │ │ ├── build.test.ts │ │ │ └── manifest.json │ │ ├── vite-svelte │ │ │ ├── src │ │ │ │ ├── vite-env.d.ts │ │ │ │ ├── assets │ │ │ │ │ └── svelte.png │ │ │ │ ├── main.js │ │ │ │ └── content.js │ │ │ ├── public │ │ │ │ └── favicon.ico │ │ │ ├── build.test.ts │ │ │ └── serve.test.ts │ │ ├── vite-dynamic-script-resources │ │ │ ├── src │ │ │ │ ├── content2.ts │ │ │ │ ├── content1.ts │ │ │ │ ├── script.ts │ │ │ │ ├── font.otf │ │ │ │ ├── image.png │ │ │ │ └── background.ts │ │ │ └── build.test.ts │ │ ├── vite-dynamic-script-resources-minify │ │ │ ├── src │ │ │ │ ├── content2.ts │ │ │ │ ├── content1.ts │ │ │ │ ├── script.ts │ │ │ │ ├── font.otf │ │ │ │ ├── image.png │ │ │ │ └── background.ts │ │ │ └── build.test.ts │ │ ├── content-script-module-api │ │ │ ├── src │ │ │ │ └── content.js │ │ │ └── build.test.ts │ │ └── vite-react-fast-refresh │ │ │ ├── src │ │ │ ├── popup.tsx │ │ │ ├── App.tsx │ │ │ └── content.tsx │ │ │ └── build.test.ts │ ├── e2e │ │ ├── mv3-vite-vanilla-content-script-module-singleton │ │ │ └── src │ │ │ │ ├── c.ts │ │ │ │ ├── a.ts │ │ │ │ └── b.ts │ │ ├── mv3-vite-vanilla-content-script-seq-hmr │ │ │ ├── src1 │ │ │ │ ├── c1.ts │ │ │ │ ├── c2.ts │ │ │ │ ├── a.ts │ │ │ │ ├── b.ts │ │ │ │ └── root.ts │ │ │ └── src2 │ │ │ │ ├── c1.ts │ │ │ │ ├── c2.ts │ │ │ │ ├── a.ts │ │ │ │ ├── b.ts │ │ │ │ └── root.ts │ │ ├── mv3-vite-dynamic-content-script-hmr │ │ │ ├── src1 │ │ │ │ ├── header.ts │ │ │ │ └── style.css │ │ │ └── src2 │ │ │ │ ├── header.ts │ │ │ │ └── style.css │ │ ├── mv3-vite-vanilla-content-script-hmr │ │ │ ├── src1 │ │ │ │ ├── header.ts │ │ │ │ ├── background.ts │ │ │ │ ├── bg-onload.ts │ │ │ │ └── style.css │ │ │ └── src2 │ │ │ │ ├── header.ts │ │ │ │ ├── bg-onload.ts │ │ │ │ └── style.css │ │ ├── mv3-vite-react-content-script-hmr │ │ │ ├── src1 │ │ │ │ └── background.ts │ │ │ └── manifest.json │ │ ├── mv3-vite-svelte-page │ │ │ ├── src │ │ │ │ ├── background.js │ │ │ │ ├── vite-env.d.ts │ │ │ │ ├── assets │ │ │ │ │ └── svelte.png │ │ │ │ ├── main.js │ │ │ │ └── content.js │ │ │ ├── public │ │ │ │ └── favicon.ico │ │ │ └── __image_snapshots__ │ │ │ │ ├── vite-build-0.png │ │ │ │ ├── vite-serve-0.png │ │ │ │ ├── vite-build-test-ts-crx-runs-from-build-output-1-snap.png │ │ │ │ └── vite-serve-test-ts-crx-runs-from-server-output-1-snap.png │ │ ├── mv3-vite-vue-page │ │ │ ├── src │ │ │ │ ├── background.js │ │ │ │ ├── main.js │ │ │ │ └── assets │ │ │ │ │ └── logo.png │ │ │ ├── public │ │ │ │ └── favicon.ico │ │ │ ├── __image_snapshots__ │ │ │ │ ├── vite-build-0.png │ │ │ │ └── vite-serve-0.png │ │ │ └── manifest.json │ │ ├── mv3-vite-react-new-tab │ │ │ ├── src │ │ │ │ ├── background.ts │ │ │ │ └── main.jsx │ │ │ ├── __image_snapshots__ │ │ │ │ ├── vite-build-0.png │ │ │ │ └── vite-serve-0.png │ │ │ └── manifest.json │ │ ├── mv3-vite-svelte-page-hmr │ │ │ ├── src1 │ │ │ │ ├── background.js │ │ │ │ ├── vite-env.d.ts │ │ │ │ ├── lib │ │ │ │ │ └── stores.js │ │ │ │ ├── main.js │ │ │ │ ├── assets │ │ │ │ │ └── svelte.png │ │ │ │ └── content.js │ │ │ └── public │ │ │ │ └── favicon.ico │ │ ├── mv3-vite-vue-page-hmr │ │ │ ├── src1 │ │ │ │ ├── background.js │ │ │ │ ├── main.js │ │ │ │ └── assets │ │ │ │ │ └── logo.png │ │ │ ├── public │ │ │ │ └── favicon.ico │ │ │ └── manifest.json │ │ ├── mv3-vite-svelte-content-script │ │ │ ├── src │ │ │ │ ├── vite-env.d.ts │ │ │ │ └── assets │ │ │ │ │ └── svelte.png │ │ │ ├── public │ │ │ │ └── favicon.ico │ │ │ └── __image_snapshots__ │ │ │ │ ├── vite-build-0.png │ │ │ │ ├── vite-serve-0.png │ │ │ │ ├── vite-build-test-ts-crx-runs-from-build-output-1-snap.png │ │ │ │ └── vite-serve-test-ts-crx-runs-from-server-output-1-snap.png │ │ ├── mv3-vite-svelte-content-script-hmr │ │ │ ├── src1 │ │ │ │ ├── vite-env.d.ts │ │ │ │ ├── lib │ │ │ │ │ └── stores.js │ │ │ │ └── assets │ │ │ │ │ └── svelte.png │ │ │ └── public │ │ │ │ └── favicon.ico │ │ ├── mv3-crx-iframe │ │ │ └── src │ │ │ │ ├── options.ts │ │ │ │ ├── iframe.ts │ │ │ │ └── background.ts │ │ ├── mv3-messages-esm │ │ │ └── src │ │ │ │ └── storage.ts │ │ ├── mv3-web-accessible-resources │ │ │ ├── src │ │ │ │ ├── script.ts │ │ │ │ ├── font.otf │ │ │ │ └── image.png │ │ │ └── manifest.json │ │ ├── p3__mv3-messages-iife │ │ │ └── src │ │ │ │ └── storage.ts │ │ ├── mv3-dynamic-script │ │ │ └── src │ │ │ │ ├── background.ts │ │ │ │ └── main-world.ts │ │ ├── mv3-vite-react-content-script-seq-hmr │ │ │ ├── src1 │ │ │ │ ├── A.jsx │ │ │ │ ├── B.jsx │ │ │ │ └── App.jsx │ │ │ └── src2 │ │ │ │ ├── A.jsx │ │ │ │ └── B.jsx │ │ ├── mv3-vite-vue-content-script │ │ │ ├── public │ │ │ │ └── favicon.ico │ │ │ ├── src │ │ │ │ ├── assets │ │ │ │ │ └── logo.png │ │ │ │ └── main.js │ │ │ ├── __image_snapshots__ │ │ │ │ ├── vite-build-0.png │ │ │ │ └── vite-serve-0.png │ │ │ └── manifest.json │ │ ├── mv3-vite-vue-content-script-hmr │ │ │ ├── public │ │ │ │ └── favicon.ico │ │ │ ├── src1 │ │ │ │ ├── assets │ │ │ │ │ └── logo.png │ │ │ │ └── main.js │ │ │ └── manifest.json │ │ ├── mv3-vite-react-page │ │ │ ├── __image_snapshots__ │ │ │ │ ├── vite-build-0.png │ │ │ │ └── vite-serve-0.png │ │ │ ├── manifest.json │ │ │ └── src │ │ │ │ └── main.jsx │ │ ├── mv3-vite-react-sandbox │ │ │ ├── __image_snapshots__ │ │ │ │ └── vite-build-0.png │ │ │ ├── src │ │ │ │ ├── background.ts │ │ │ │ └── main.jsx │ │ │ └── manifest.json │ │ ├── mv3-vite-hmr-external-xhr │ │ │ ├── src │ │ │ │ ├── options.tsx │ │ │ │ └── background.ts │ │ │ └── manifest.json │ │ ├── mv3-vite-react-content-script │ │ │ ├── __image_snapshots__ │ │ │ │ ├── vite-build-0.png │ │ │ │ └── vite-serve-0.png │ │ │ └── manifest.json │ │ ├── mv3-vite-react-page-hmr │ │ │ ├── manifest.json │ │ │ └── src1 │ │ │ │ └── main.jsx │ │ └── mv3-vite-hmr-background-define │ │ │ └── manifest.json │ ├── .eslintrc │ ├── templates │ │ └── build.test.ts │ └── plugin-testOptionsProvider.ts │ ├── .eslintignore │ ├── src │ └── node │ │ ├── index.cjs.ts │ │ └── path.ts │ ├── banner-github.png │ └── tsconfig-types.json ├── banner-github.png ├── .changeset ├── bright-peaches-wink.md ├── lucky-cows-tan.md ├── swift-years-kick.md ├── tidy-shrimps-cross.md ├── fair-flies-admire.md ├── wet-hornets-run.md ├── breezy-plums-study.md ├── fresh-suns-do.md ├── strong-jobs-try.md ├── young-terms-tickle.md ├── eleven-planes-tease.md ├── perfect-doors-exercise.md ├── sixty-mirrors-promise.md ├── beige-snails-kiss.md ├── fluffy-geckos-flash.md ├── fluffy-numbers-brake.md ├── gold-spies-occur.md ├── happy-carpets-boil.md ├── stupid-years-whisper.md ├── eight-stingrays-provide.md ├── grumpy-comics-explain.md ├── rotten-snakes-brush.md ├── six-cobras-flash.md ├── fair-eggs-change.md ├── moody-ligers-exercise.md ├── grumpy-brooms-exist.md ├── small-phones-beam.md ├── eleven-buttons-dream.md ├── tiny-planes-float.md ├── unlucky-goats-exist.md ├── late-paws-change.md ├── wicked-moose-listen.md ├── kind-donkeys-cry.md ├── yellow-paws-search.md └── config.json ├── design └── logo │ ├── banner.png │ ├── banner.xcf │ ├── crxjs-logos.jpeg │ ├── crxjs-logos.png │ ├── banner-github.png │ ├── banner-github.xcf │ ├── banner-twitter.png │ ├── banner-twitter.xcf │ ├── crxjs-logos_black.png │ ├── crxjs-logos_white.png │ └── crxjs-logos_transparent.png ├── pnpm-workspace.yaml ├── .prettierignore ├── .prettierrc.yaml ├── .github └── ISSUE_TEMPLATE │ └── config.yml └── renovate.json /packages/vite-plugin-docs/static/.nojekyll: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-empty/manifest.json: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-empty/manifest.json: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/basic-js/src/content.js: -------------------------------------------------------------------------------- 1 | console.log('content script') 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/src/manifest-input/browser/modules.d.ts: -------------------------------------------------------------------------------- 1 | declare module '%PATH%' {} 2 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/with-public-dir/src/popup.js: -------------------------------------------------------------------------------- 1 | console.log('popup script') 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-options-ui/asset.js: -------------------------------------------------------------------------------- 1 | console.log('asset.js') 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-options-ui/imported.js: -------------------------------------------------------------------------------- 1 | export const x = 'x' 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-options-ui/asset.js: -------------------------------------------------------------------------------- 1 | console.log('asset.js') 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-options-ui/imported.js: -------------------------------------------------------------------------------- 1 | export const x = 'x' 2 | -------------------------------------------------------------------------------- /packages/vite-plugin-docs/docs/getting-started/vue/_category_.yml: -------------------------------------------------------------------------------- 1 | position: 2.2 2 | label: Vue 3 | -------------------------------------------------------------------------------- /packages/vite-plugin/.eslintignore: -------------------------------------------------------------------------------- 1 | dist 2 | node_modules 3 | tests/**/dist-* 4 | index.cjs 5 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/basic-js/src/background.js: -------------------------------------------------------------------------------- 1 | console.log('service_worker.js') 2 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/with-copied-assets/src/popup.js: -------------------------------------------------------------------------------- 1 | console.log('popup script') 2 | -------------------------------------------------------------------------------- /banner-github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/banner-github.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-input-array/index.js: -------------------------------------------------------------------------------- 1 | console.log('index.js') 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-input-object/index.js: -------------------------------------------------------------------------------- 1 | console.log('index.js') 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-kitchen-sink/asset.js: -------------------------------------------------------------------------------- 1 | console.log('asset.js') 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-kitchen-sink/imported.js: -------------------------------------------------------------------------------- 1 | export const x = 'x' 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-input-array/index.js: -------------------------------------------------------------------------------- 1 | console.log('index.js') 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-input-object/index.js: -------------------------------------------------------------------------------- 1 | console.log('index.js') 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-kitchen-sink/asset.js: -------------------------------------------------------------------------------- 1 | console.log('asset.js') 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-kitchen-sink/imported.js: -------------------------------------------------------------------------------- 1 | export const x = 'x' 2 | -------------------------------------------------------------------------------- /packages/vite-plugin-docs/docs/getting-started/react/_category_.yml: -------------------------------------------------------------------------------- 1 | position: 2.1 2 | label: React 3 | -------------------------------------------------------------------------------- /packages/vite-plugin-docs/docs/getting-started/solid/_category_.yml: -------------------------------------------------------------------------------- 1 | position: 2.1 2 | label: Solid 3 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/basic-ts/src/content.ts: -------------------------------------------------------------------------------- 1 | console.log('content script') 2 | export {} 3 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/with-web-accessible-html/src/welcome.js: -------------------------------------------------------------------------------- 1 | console.log('welcome page') 2 | -------------------------------------------------------------------------------- /.changeset/bright-peaches-wink.md: -------------------------------------------------------------------------------- 1 | --- 2 | "@crxjs/vite-plugin": patch 3 | --- 4 | 5 | fix: hmr error 6 | -------------------------------------------------------------------------------- /.changeset/lucky-cows-tan.md: -------------------------------------------------------------------------------- 1 | --- 2 | '@crxjs/vite-plugin': minor 3 | --- 4 | 5 | Add Svelte support 6 | -------------------------------------------------------------------------------- /.changeset/swift-years-kick.md: -------------------------------------------------------------------------------- 1 | --- 2 | "@crxjs/vite-plugin": patch 3 | --- 4 | 5 | Fix commonjs export 6 | -------------------------------------------------------------------------------- /.changeset/tidy-shrimps-cross.md: -------------------------------------------------------------------------------- 1 | --- 2 | "@crxjs/vite-plugin": patch 3 | --- 4 | 5 | Hotfix background 6 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-kitchen-sink/options3.ts: -------------------------------------------------------------------------------- 1 | console.log('options3.ts') 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-kitchen-sink/options4.tsx: -------------------------------------------------------------------------------- 1 | console.log('options4.tsx') 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-kitchen-sink/popup/popup.js: -------------------------------------------------------------------------------- 1 | console.log('popup.js') 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-options-ui/options.css: -------------------------------------------------------------------------------- 1 | body { 2 | color: red; 3 | } 4 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-options-ui/options3.ts: -------------------------------------------------------------------------------- 1 | console.log('options3.ts') 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-options-ui/options4.tsx: -------------------------------------------------------------------------------- 1 | console.log('options4.tsx') 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-options-ui/popup/popup.js: -------------------------------------------------------------------------------- 1 | console.log('popup.js') 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-basic-js/src/content.js: -------------------------------------------------------------------------------- 1 | console.log('content script') 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-basic-ts/src/content.ts: -------------------------------------------------------------------------------- 1 | console.log('content script') 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-kitchen-sink/options3.ts: -------------------------------------------------------------------------------- 1 | console.log('options3.ts') 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-kitchen-sink/options4.tsx: -------------------------------------------------------------------------------- 1 | console.log('options4.tsx') 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-kitchen-sink/popup/popup.js: -------------------------------------------------------------------------------- 1 | console.log('popup.js') 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-options-ui/options.css: -------------------------------------------------------------------------------- 1 | body { 2 | color: red; 3 | } 4 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-options-ui/options3.ts: -------------------------------------------------------------------------------- 1 | console.log('options3.ts') 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-options-ui/options4.tsx: -------------------------------------------------------------------------------- 1 | console.log('options4.tsx') 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-options-ui/popup/popup.js: -------------------------------------------------------------------------------- 1 | console.log('popup.js') 2 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/with-web-accessible-html/public/public.js: -------------------------------------------------------------------------------- 1 | console.log('static script') 2 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/with-web-accessible-html/public/static.js: -------------------------------------------------------------------------------- 1 | console.log('static script') 2 | -------------------------------------------------------------------------------- /.changeset/fair-flies-admire.md: -------------------------------------------------------------------------------- 1 | --- 2 | "@crxjs/vite-plugin": patch 3 | --- 4 | 5 | Delete invalid changeset 6 | -------------------------------------------------------------------------------- /.changeset/wet-hornets-run.md: -------------------------------------------------------------------------------- 1 | --- 2 | "@crxjs/vite-plugin": patch 3 | --- 4 | 5 | Fix content scripts hmr 6 | -------------------------------------------------------------------------------- /design/logo/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/design/logo/banner.png -------------------------------------------------------------------------------- /design/logo/banner.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/design/logo/banner.xcf -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-browser-polyfill/scripts/shared.js: -------------------------------------------------------------------------------- 1 | export const x = 'x' 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-chunk-file-names/shared/imported.js: -------------------------------------------------------------------------------- 1 | export const x = 'x' 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-extend-manifest-as-object/imported.js: -------------------------------------------------------------------------------- 1 | export const x = 'x' 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-iife-json-paths-bg-only/imported.js: -------------------------------------------------------------------------------- 1 | export const x = 'x' 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-iife-json-paths-ct-only/imported.js: -------------------------------------------------------------------------------- 1 | export const x = 'x' 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-kitchen-sink/options.css: -------------------------------------------------------------------------------- 1 | body { 2 | color: red; 3 | } 4 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-locales/src/background.js: -------------------------------------------------------------------------------- 1 | console.log('background script') 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-not-recommended/background.js: -------------------------------------------------------------------------------- 1 | console.log('background.js') 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-not-recommended/content.css: -------------------------------------------------------------------------------- 1 | body { 2 | color: red; 3 | } 4 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-browser-polyfill/scripts/shared.js: -------------------------------------------------------------------------------- 1 | export const x = 'x' 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-chunk-file-names/shared/imported.js: -------------------------------------------------------------------------------- 1 | export const x = 'x' 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-extend-manifest-as-object/imported.js: -------------------------------------------------------------------------------- 1 | export const x = 'x' 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-iife-json-paths-bg-only/imported.js: -------------------------------------------------------------------------------- 1 | export const x = 'x' 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-iife-json-paths-ct-only/imported.js: -------------------------------------------------------------------------------- 1 | export const x = 'x' 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-kitchen-sink/options.css: -------------------------------------------------------------------------------- 1 | body { 2 | color: red; 3 | } 4 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-vanilla-content-script-module-singleton/src/c.ts: -------------------------------------------------------------------------------- 1 | export const c = {} 2 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-vanilla-content-script-seq-hmr/src1/c1.ts: -------------------------------------------------------------------------------- 1 | export const c1 = 'c1-0' 2 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-vanilla-content-script-seq-hmr/src1/c2.ts: -------------------------------------------------------------------------------- 1 | export const c2 = 'c2-0' 2 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-vanilla-content-script-seq-hmr/src2/c1.ts: -------------------------------------------------------------------------------- 1 | export const c1 = 'c1-1' 2 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-vanilla-content-script-seq-hmr/src2/c2.ts: -------------------------------------------------------------------------------- 1 | export const c2 = 'c2-1' 2 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/basic-ts/src/background.ts: -------------------------------------------------------------------------------- 1 | console.log('service_worker.ts') 2 | 3 | export {} 4 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/vite-content-script-css-imports/src/styles.css: -------------------------------------------------------------------------------- 1 | body { 2 | color: red; 3 | } 4 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/with-circular-deps/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/with-web-accessible-html/src/sidebar.js: -------------------------------------------------------------------------------- 1 | console.log('content script sidebar') 2 | -------------------------------------------------------------------------------- /.changeset/breezy-plums-study.md: -------------------------------------------------------------------------------- 1 | --- 2 | "@crxjs/vite-plugin": patch 3 | --- 4 | 5 | WIP: fix HMR singleton issue 6 | -------------------------------------------------------------------------------- /.changeset/fresh-suns-do.md: -------------------------------------------------------------------------------- 1 | --- 2 | "@crxjs/vite-plugin": patch 3 | --- 4 | 5 | chore: move rxjs to package.deps 6 | -------------------------------------------------------------------------------- /.changeset/strong-jobs-try.md: -------------------------------------------------------------------------------- 1 | --- 2 | "@crxjs/vite-plugin": patch 3 | --- 4 | 5 | Add content script module API 6 | -------------------------------------------------------------------------------- /.changeset/young-terms-tickle.md: -------------------------------------------------------------------------------- 1 | --- 2 | "@crxjs/vite-plugin": patch 3 | --- 4 | 5 | React conflicts with preact 6 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-basic-js/src/content/index.js: -------------------------------------------------------------------------------- 1 | console.log('content script') 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-basic-ts/src/content/index.ts: -------------------------------------------------------------------------------- 1 | console.log('content script') 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-extend-manifest-as-function/imported.js: -------------------------------------------------------------------------------- 1 | export const x = 'x' 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-external-dependency/shared/imported.js: -------------------------------------------------------------------------------- 1 | export const x = 'x' 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-iife-json-paths-bg-multiscript/imported.js: -------------------------------------------------------------------------------- 1 | export const x = 'x' 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-iife-json-paths-both/shared/imported.js: -------------------------------------------------------------------------------- 1 | export const x = 'x' 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-iife-json-paths-ct-multiscript/imported.js: -------------------------------------------------------------------------------- 1 | export const x = 'x' 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-iife-json-paths-html/shared/imported1.js: -------------------------------------------------------------------------------- 1 | export const x = 'x' 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-iife-json-paths-html/shared/imported2.js: -------------------------------------------------------------------------------- 1 | export const y = 'y' 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-kitchen-sink/content.css: -------------------------------------------------------------------------------- 1 | body { 2 | color: blueviolet; 3 | } 4 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-options-ui/content.css: -------------------------------------------------------------------------------- 1 | body { 2 | color: blueviolet; 3 | } 4 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-basic-js/src/service_worker.js: -------------------------------------------------------------------------------- 1 | console.log('service_worker.js') 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-basic-ts/src/service_worker.ts: -------------------------------------------------------------------------------- 1 | console.log('service_worker.ts') 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-extend-manifest-as-function/imported.js: -------------------------------------------------------------------------------- 1 | export const x = 'x' 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-external-dependency/shared/imported.js: -------------------------------------------------------------------------------- 1 | export const x = 'x' 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-iife-json-paths-both/shared/imported.js: -------------------------------------------------------------------------------- 1 | export const x = 'x' 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-iife-json-paths-ct-multiscript/imported.js: -------------------------------------------------------------------------------- 1 | export const x = 'x' 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-iife-json-paths-html/shared/imported1.js: -------------------------------------------------------------------------------- 1 | export const x = 'x' 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-iife-json-paths-html/shared/imported2.js: -------------------------------------------------------------------------------- 1 | export const y = 'y' 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-kitchen-sink/content.css: -------------------------------------------------------------------------------- 1 | body { 2 | color: blueviolet; 3 | } 4 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-locales/src/service_worker.js: -------------------------------------------------------------------------------- 1 | console.log('service_worker.js') 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-manifest-ts-array-input/src/script.ts: -------------------------------------------------------------------------------- 1 | console.log('script') 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-manifest-ts-object-input/src/script.ts: -------------------------------------------------------------------------------- 1 | console.log('script') 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-options-ui/content.css: -------------------------------------------------------------------------------- 1 | body { 2 | color: blueviolet; 3 | } 4 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/dynamic-script/src/dynamic-script.ts: -------------------------------------------------------------------------------- 1 | console.log('dynamic script') 2 | export {} 3 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/dynamic-script/src/main-world.ts: -------------------------------------------------------------------------------- 1 | console.log('main world script') 2 | export {} 3 | -------------------------------------------------------------------------------- /design/logo/crxjs-logos.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/design/logo/crxjs-logos.jpeg -------------------------------------------------------------------------------- /design/logo/crxjs-logos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/design/logo/crxjs-logos.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-basic-js/src/background/index.js: -------------------------------------------------------------------------------- 1 | console.log('background script') 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-basic-ts/src/background/index.ts: -------------------------------------------------------------------------------- 1 | console.log('background script') 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-browser-polyfill/options/options.css: -------------------------------------------------------------------------------- 1 | body { 2 | color: red; 3 | } 4 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-iife-json-paths-multi-ct-scripts/imported.js: -------------------------------------------------------------------------------- 1 | export const x = 'x' 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-background-only/src/content/index.js: -------------------------------------------------------------------------------- 1 | console.log('content script') 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-browser-polyfill/options/options.css: -------------------------------------------------------------------------------- 1 | body { 2 | color: red; 3 | } 4 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-iife-json-paths-multi-ct-scripts/imported.js: -------------------------------------------------------------------------------- 1 | export const x = 'x' 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-manifest-ts-array-input/src/content.ts: -------------------------------------------------------------------------------- 1 | console.log('content script') 2 | -------------------------------------------------------------------------------- /packages/vite-plugin-docs/docs/getting-started/vanilla-js/_category_.yml: -------------------------------------------------------------------------------- 1 | position: 2.1 2 | label: Vanilla JavaScript 3 | -------------------------------------------------------------------------------- /packages/vite-plugin/src/node/index.cjs.ts: -------------------------------------------------------------------------------- 1 | export { defineDynamicResource, defineManifest } from './defineManifest' 2 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-dynamic-content-script-hmr/src1/header.ts: -------------------------------------------------------------------------------- 1 | export const header = 'Hello Vite!' 2 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-vanilla-content-script-hmr/src1/header.ts: -------------------------------------------------------------------------------- 1 | export const header = 'Hello Vite!' 2 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/vite-content-script-css-imports-2/src/content1/styles.css: -------------------------------------------------------------------------------- 1 | body { 2 | color: red; 3 | } 4 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/vite-content-script-css-imports-3/src/content1/styles.css: -------------------------------------------------------------------------------- 1 | body { 2 | color: red; 3 | } 4 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/vite-content-script-css-imports-3/src/main/styles.css: -------------------------------------------------------------------------------- 1 | h1 { 2 | color: green; 3 | } 4 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/vite-self-directive-in-csp/src/content.ts: -------------------------------------------------------------------------------- 1 | console.log('content script') 2 | export {} 3 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/with-circular-deps/src/module.ts: -------------------------------------------------------------------------------- 1 | import { sharedUtil } from "./utils"; 2 | 3 | sharedUtil(); -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/with-sourcemaps/src/background.ts: -------------------------------------------------------------------------------- 1 | console.log('service_worker.ts') 2 | 3 | export {} 4 | -------------------------------------------------------------------------------- /.changeset/eleven-planes-tease.md: -------------------------------------------------------------------------------- 1 | --- 2 | "@crxjs/vite-plugin": patch 3 | --- 4 | 5 | fix(package): update cjs export path 6 | -------------------------------------------------------------------------------- /.changeset/perfect-doors-exercise.md: -------------------------------------------------------------------------------- 1 | --- 2 | "@crxjs/vite-plugin": patch 3 | --- 4 | 5 | temporary fix for dynamic imports 6 | -------------------------------------------------------------------------------- /.changeset/sixty-mirrors-promise.md: -------------------------------------------------------------------------------- 1 | --- 2 | "@crxjs/vite-plugin": patch 3 | --- 4 | 5 | Remove peerDeps, optDeps, engines 6 | -------------------------------------------------------------------------------- /design/logo/banner-github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/design/logo/banner-github.png -------------------------------------------------------------------------------- /design/logo/banner-github.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/design/logo/banner-github.xcf -------------------------------------------------------------------------------- /design/logo/banner-twitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/design/logo/banner-twitter.png -------------------------------------------------------------------------------- /design/logo/banner-twitter.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/design/logo/banner-twitter.xcf -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-extend-manifest-as-function/options.css: -------------------------------------------------------------------------------- 1 | body { 2 | color: red; 3 | } 4 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-background-only/src/service_worker.js: -------------------------------------------------------------------------------- 1 | console.log('service_worker.js') 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-content-script-only/src/content/index.js: -------------------------------------------------------------------------------- 1 | console.log('content script') 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-extend-manifest-as-function/options.css: -------------------------------------------------------------------------------- 1 | body { 2 | color: red; 3 | } 4 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-manifest-ts-object-input/src/content.ts: -------------------------------------------------------------------------------- 1 | console.log('content script') 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-manifest-ts-single-input/src/content.ts: -------------------------------------------------------------------------------- 1 | console.log('content script') 2 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-dynamic-content-script-hmr/src2/header.ts: -------------------------------------------------------------------------------- 1 | export const header = 'Hello Vite + CRX!' 2 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-vanilla-content-script-hmr/src2/header.ts: -------------------------------------------------------------------------------- 1 | export const header = 'Hello Vite + CRX!' 2 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/vite-content-script-css-imports-2/src/content2/styles.css: -------------------------------------------------------------------------------- 1 | body { 2 | color: blue; 3 | } 4 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/vite-content-script-css-imports-3/src/content2/styles.css: -------------------------------------------------------------------------------- 1 | body { 2 | color: blue; 3 | } 4 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/vite-declared-script-resources/src/script.ts: -------------------------------------------------------------------------------- 1 | console.log('main world script') 2 | export {} 3 | -------------------------------------------------------------------------------- /.changeset/beige-snails-kiss.md: -------------------------------------------------------------------------------- 1 | --- 2 | "vite-plugin-docs": patch 3 | --- 4 | 5 | Add type module warning to Vite plugin docs. 6 | -------------------------------------------------------------------------------- /.changeset/fluffy-geckos-flash.md: -------------------------------------------------------------------------------- 1 | --- 2 | "@crxjs/vite-plugin": patch 3 | --- 4 | 5 | fix: background scripts for firefox build 6 | -------------------------------------------------------------------------------- /.changeset/fluffy-numbers-brake.md: -------------------------------------------------------------------------------- 1 | --- 2 | "@crxjs/vite-plugin": patch 3 | --- 4 | 5 | fix: maintain ; and , during minification 6 | -------------------------------------------------------------------------------- /.changeset/gold-spies-occur.md: -------------------------------------------------------------------------------- 1 | --- 2 | "@crxjs/vite-plugin": patch 3 | --- 4 | 5 | fix: avoid waiting for fileReady when serving 6 | -------------------------------------------------------------------------------- /.changeset/happy-carpets-boil.md: -------------------------------------------------------------------------------- 1 | --- 2 | "@crxjs/vite-plugin": patch 3 | --- 4 | 5 | feat: add compatibility mode for Firefox 6 | -------------------------------------------------------------------------------- /.changeset/stupid-years-whisper.md: -------------------------------------------------------------------------------- 1 | --- 2 | "@crxjs/vite-plugin": patch 3 | --- 4 | 5 | fix: pass war through a set to dedupe 6 | -------------------------------------------------------------------------------- /design/logo/crxjs-logos_black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/design/logo/crxjs-logos_black.png -------------------------------------------------------------------------------- /design/logo/crxjs-logos_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/design/logo/crxjs-logos_white.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-browser-polyfill/scripts/content.css: -------------------------------------------------------------------------------- 1 | body { 2 | color: blueviolet; 3 | } 4 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-browser-polyfill/scripts/content.css: -------------------------------------------------------------------------------- 1 | body { 2 | color: blueviolet; 3 | } 4 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/vite-self-directive-in-csp/src/background.ts: -------------------------------------------------------------------------------- 1 | console.log('service_worker.ts') 2 | 3 | export {} 4 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/with-circular-deps/src/utils.ts: -------------------------------------------------------------------------------- 1 | export const sharedUtil = () => { 2 | console.log('util'); 3 | }; -------------------------------------------------------------------------------- /.changeset/eight-stingrays-provide.md: -------------------------------------------------------------------------------- 1 | --- 2 | "@crxjs/vite-plugin": patch 3 | --- 4 | 5 | Fix/web accessible resources script modules 6 | -------------------------------------------------------------------------------- /.changeset/grumpy-comics-explain.md: -------------------------------------------------------------------------------- 1 | --- 2 | "@crxjs/vite-plugin": patch 3 | --- 4 | 5 | fix: filter out vite serve plugin context 6 | -------------------------------------------------------------------------------- /.changeset/rotten-snakes-brush.md: -------------------------------------------------------------------------------- 1 | --- 2 | "@crxjs/vite-plugin": patch 3 | --- 4 | 5 | Add inline sourcemap support to content scripts 6 | -------------------------------------------------------------------------------- /.changeset/six-cobras-flash.md: -------------------------------------------------------------------------------- 1 | --- 2 | "@crxjs/vite-plugin": patch 3 | --- 4 | 5 | Test: infinite recursion on circular dependency 6 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-content-script-react-tsx/src/background/index.ts: -------------------------------------------------------------------------------- 1 | console.log('background script') 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-content-script-react-tsx/src/service_worker.ts: -------------------------------------------------------------------------------- 1 | console.log('service_worker.ts') 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-manifest-ts-single-input/src/service_worker.ts: -------------------------------------------------------------------------------- 1 | console.log('service_worker.ts') 2 | -------------------------------------------------------------------------------- /packages/rollup-plugin/src/manifest-input/cloneObject.ts: -------------------------------------------------------------------------------- 1 | export const cloneObject = (obj: T): T => JSON.parse(JSON.stringify(obj)) 2 | -------------------------------------------------------------------------------- /packages/vite-plugin-docs/docs/concepts/_category_.yml: -------------------------------------------------------------------------------- 1 | position: 3 2 | label: Concepts 3 | collapsible: false 4 | collapsed: false 5 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-react-content-script-hmr/src1/background.ts: -------------------------------------------------------------------------------- 1 | chrome.runtime.openOptionsPage() 2 | export {} 3 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/vite-content-script-css-imports/src/content.ts: -------------------------------------------------------------------------------- 1 | import './styles.css' 2 | 3 | console.log('content.ts') 4 | -------------------------------------------------------------------------------- /.changeset/fair-eggs-change.md: -------------------------------------------------------------------------------- 1 | --- 2 | "@crxjs/vite-plugin": patch 3 | --- 4 | 5 | Add newline to generated manifest.json (issue #668) 6 | -------------------------------------------------------------------------------- /.changeset/moody-ligers-exercise.md: -------------------------------------------------------------------------------- 1 | --- 2 | "@crxjs/vite-plugin": patch 3 | --- 4 | 5 | fix: infinite recursion on circular dependency 6 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-kitchen-sink/options2.jsx: -------------------------------------------------------------------------------- 1 | console.log('options2.jsx') 2 | 3 | chrome.cookies.getAll() 4 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-options-ui/options1.js: -------------------------------------------------------------------------------- 1 | console.log('options1.js') 2 | 3 | chrome.bookmarks.get('main') 4 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-options-ui/options2.jsx: -------------------------------------------------------------------------------- 1 | console.log('options2.jsx') 2 | 3 | chrome.cookies.getAll() 4 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-kitchen-sink/options2.jsx: -------------------------------------------------------------------------------- 1 | console.log('options2.jsx') 2 | 3 | chrome.cookies.getAll() 4 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-options-ui/options1.js: -------------------------------------------------------------------------------- 1 | console.log('options1.js') 2 | 3 | chrome.bookmarks.get('main') 4 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-options-ui/options2.jsx: -------------------------------------------------------------------------------- 1 | console.log('options2.jsx') 2 | 3 | chrome.cookies.getAll() 4 | -------------------------------------------------------------------------------- /packages/rollup-plugin/src/modules.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'code *' { 2 | export const code: string 3 | } 4 | 5 | declare module '%PATH%' {} 6 | -------------------------------------------------------------------------------- /packages/vite-plugin-docs/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [require.resolve('@docusaurus/core/lib/babel/preset')], 3 | } 4 | -------------------------------------------------------------------------------- /packages/vite-plugin/banner-github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/banner-github.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-svelte-page/src/background.js: -------------------------------------------------------------------------------- 1 | console.log('background ready.') 2 | chrome.runtime.openOptionsPage() 3 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-vue-page/src/background.js: -------------------------------------------------------------------------------- 1 | console.log('background ready.') 2 | chrome.runtime.openOptionsPage() 3 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/vite-svelte/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /.changeset/grumpy-brooms-exist.md: -------------------------------------------------------------------------------- 1 | --- 2 | "@crxjs/vite-plugin": patch 3 | --- 4 | 5 | fix: reset contentScripts when main plugin is initialized 6 | -------------------------------------------------------------------------------- /design/logo/crxjs-logos_transparent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/design/logo/crxjs-logos_transparent.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-kitchen-sink/options1.js: -------------------------------------------------------------------------------- 1 | console.log('options1.js') 2 | 3 | chrome.bookmarks.get('main') 4 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-kitchen-sink/options1.js: -------------------------------------------------------------------------------- 1 | console.log('options1.js') 2 | 3 | chrome.bookmarks.get('main') 4 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-react-new-tab/src/background.ts: -------------------------------------------------------------------------------- 1 | // this should open a new tab 2 | chrome.tabs.create({}) 3 | export {} 4 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-svelte-page-hmr/src1/background.js: -------------------------------------------------------------------------------- 1 | console.log('background ready.') 2 | chrome.runtime.openOptionsPage() 3 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-svelte-page/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-vanilla-content-script-module-singleton/src/a.ts: -------------------------------------------------------------------------------- 1 | import { c } from './c' 2 | 3 | export const a = c 4 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-vanilla-content-script-module-singleton/src/b.ts: -------------------------------------------------------------------------------- 1 | import { c } from './c' 2 | 3 | export const b = c 4 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-vue-page-hmr/src1/background.js: -------------------------------------------------------------------------------- 1 | console.log('background ready.') 2 | chrome.runtime.openOptionsPage() 3 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/vite-content-script-css-imports-2/src/content1/index.ts: -------------------------------------------------------------------------------- 1 | import './styles.css' 2 | 3 | console.log('content1') 4 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/vite-content-script-css-imports-2/src/content2/index.ts: -------------------------------------------------------------------------------- 1 | import './styles.css' 2 | 3 | console.log('content2') 4 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/vite-content-script-css-imports-3/src/main/import.ts: -------------------------------------------------------------------------------- 1 | import './styles.css' 2 | 3 | console.log('imported file') 4 | -------------------------------------------------------------------------------- /.changeset/small-phones-beam.md: -------------------------------------------------------------------------------- 1 | --- 2 | "vite-plugin-docs": patch 3 | "@crxjs/vite-plugin": patch 4 | --- 5 | 6 | React v18 ReactDOM.render changes 7 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-invalid-manifest/background.js: -------------------------------------------------------------------------------- 1 | console.log('background.js') 2 | 3 | chrome.storage.local.clear() 4 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-kitchen-sink/devtools/devtools1.ts: -------------------------------------------------------------------------------- 1 | export const message = 'devtools.ts' 2 | console.log(message) 3 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-options-ui/devtools/devtools1.ts: -------------------------------------------------------------------------------- 1 | export const message1 = 'devtools.ts' 2 | console.log(message1) 3 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-kitchen-sink/devtools/devtools1.ts: -------------------------------------------------------------------------------- 1 | export const message = 'devtools.ts' 2 | console.log(message) 3 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-options-ui/devtools/devtools1.ts: -------------------------------------------------------------------------------- 1 | export const message1 = 'devtools.ts' 2 | console.log(message1) 3 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-svelte-page-hmr/src1/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/with-circular-deps/src/content.ts: -------------------------------------------------------------------------------- 1 | import { sharedUtil } from "./utils"; 2 | 3 | sharedUtil(); 4 | 5 | import('./module'); -------------------------------------------------------------------------------- /.changeset/eleven-buttons-dream.md: -------------------------------------------------------------------------------- 1 | --- 2 | "vite-plugin-docs": patch 3 | "@crxjs/vite-plugin": patch 4 | --- 5 | 6 | Add tip `type: module` to vue page 7 | -------------------------------------------------------------------------------- /.changeset/tiny-planes-float.md: -------------------------------------------------------------------------------- 1 | --- 2 | "@crxjs/vite-plugin": patch 3 | --- 4 | 5 | fix: build is broken when using minify with dynamic modules (#573) 6 | -------------------------------------------------------------------------------- /.changeset/unlucky-goats-exist.md: -------------------------------------------------------------------------------- 1 | --- 2 | "rollup-plugin-chrome-extension": patch 3 | --- 4 | 5 | Add match_origin_as_fallback to manifest-v3.schema.json 6 | -------------------------------------------------------------------------------- /packages/vite-plugin-docs/docs/getting-started/_category_.yml: -------------------------------------------------------------------------------- 1 | position: 2 2 | label: Get Started in 90 Seconds 3 | collapsible: false 4 | collapsed: false 5 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-svelte-content-script/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /.changeset/late-paws-change.md: -------------------------------------------------------------------------------- 1 | --- 2 | 'rollup-plugin-chrome-extension': patch 3 | --- 4 | 5 | Allows match in manifest.json within rollup package 6 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-browser-polyfill/popup/popup.js: -------------------------------------------------------------------------------- 1 | import { x } from '../scripts/shared' 2 | 3 | console.log('popup.js', x) 4 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-browser-polyfill/popup/popup.js: -------------------------------------------------------------------------------- 1 | import { x } from '../scripts/shared' 2 | 3 | console.log('popup.js', x) 4 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-invalid-manifest/service_worker.js: -------------------------------------------------------------------------------- 1 | console.log('service_worker.js') 2 | 3 | chrome.storage.local.clear() 4 | -------------------------------------------------------------------------------- /packages/vite-plugin-docs/static/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin-docs/static/img/favicon.ico -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-svelte-content-script-hmr/src1/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/vite-dynamic-script-resources/src/content2.ts: -------------------------------------------------------------------------------- 1 | import font from './font.otf?url' 2 | 3 | console.log('content2.ts', { font }) 4 | -------------------------------------------------------------------------------- /.changeset/wicked-moose-listen.md: -------------------------------------------------------------------------------- 1 | --- 2 | "rollup-plugin-chrome-extension": patch 3 | "@crxjs/vite-plugin": patch 4 | --- 5 | 6 | fix: schema of input_components 7 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-vue-page/src/main.js: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue' 2 | import App from './App.vue' 3 | 4 | createApp(App).mount('#app') 5 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/vite-dynamic-script-resources-minify/src/content2.ts: -------------------------------------------------------------------------------- 1 | import font from './font.otf?url' 2 | 3 | console.log('content2.ts', { font }) 4 | -------------------------------------------------------------------------------- /.changeset/kind-donkeys-cry.md: -------------------------------------------------------------------------------- 1 | --- 2 | "vite-plugin-docs": patch 3 | "@crxjs/vite-plugin": patch 4 | --- 5 | 6 | fix: add new screenshot and remove the redudant code 7 | -------------------------------------------------------------------------------- /packages/rollup-plugin/src/manifest-input/browser/contentScriptWrapper.ts: -------------------------------------------------------------------------------- 1 | import { importPath } from './placeholders' 2 | 3 | import(chrome.runtime.getURL(importPath)) 4 | -------------------------------------------------------------------------------- /packages/vite-plugin-docs/static/img/docusaurus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin-docs/static/img/docusaurus.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-vue-page-hmr/src1/main.js: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue' 2 | import App from './App.vue' 3 | 4 | createApp(App).mount('#app') 5 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/vite-content-script-css-imports-3/src/content1/index.ts: -------------------------------------------------------------------------------- 1 | import '../main/import' 2 | import './styles.css' 3 | 4 | console.log('content1') 5 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/vite-content-script-css-imports-3/src/content2/index.ts: -------------------------------------------------------------------------------- 1 | import '../main/import' 2 | import './styles.css' 3 | 4 | console.log('content2') 5 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-locales/src/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "background": { "scripts": ["background/index.js"] }, 3 | "default_locale": "en" 4 | } 5 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/content-script-module-api/src/content.js: -------------------------------------------------------------------------------- 1 | console.log('content script') 2 | export function onExecute() { 3 | console.log('onExecute') 4 | } 5 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/vite-dynamic-script-resources/src/content1.ts: -------------------------------------------------------------------------------- 1 | import script from './script.ts?script&module' 2 | 3 | console.log('content.ts', { script }) 4 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/vite-dynamic-script-resources/src/script.ts: -------------------------------------------------------------------------------- 1 | import icon from './image.png' 2 | 3 | console.log('main world script', { icon }) 4 | export {} 5 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/with-sourcemaps/src/content.ts: -------------------------------------------------------------------------------- 1 | type Log = 'content script' 2 | const message: Log = 'content script' 3 | console.log(message) 4 | export {} 5 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "jest": true, 4 | "webextensions": true, 5 | "serviceworker": true, 6 | "browser": true 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-vanilla-content-script-hmr/src1/background.ts: -------------------------------------------------------------------------------- 1 | import { onLoad } from './bg-onload' 2 | 3 | chrome.runtime.onMessage.addListener(onLoad) 4 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/vite-dynamic-script-resources-minify/src/content1.ts: -------------------------------------------------------------------------------- 1 | import script from './script.ts?script&module' 2 | 3 | console.log('content.ts', { script }) 4 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/vite-dynamic-script-resources-minify/src/script.ts: -------------------------------------------------------------------------------- 1 | import icon from './image.png' 2 | 3 | console.log('main world script', { icon }) 4 | export {} 5 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-vanilla-content-script-hmr/src2/bg-onload.ts: -------------------------------------------------------------------------------- 1 | export const onLoad = () => { 2 | console.log('post runtime reload') 3 | } 4 | 5 | export {} 6 | -------------------------------------------------------------------------------- /packages/rollup-plugin/src/manifest-input/browser/delay.ts: -------------------------------------------------------------------------------- 1 | export function delay(ms: number) { 2 | return new Promise((resolve) => { 3 | setTimeout(resolve, ms) 4 | }) 5 | } 6 | -------------------------------------------------------------------------------- /packages/vite-plugin-docs/docs/getting-started/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Get Started in 90 Seconds 3 | --- 4 | 5 | import GetStarted from '../\_tip-getting-started.md' 6 | 7 | 8 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-crx-iframe/src/options.ts: -------------------------------------------------------------------------------- 1 | const iframe = document.createElement('iframe') 2 | iframe.src = './iframe.html' 3 | document.body.append(iframe) 4 | export {} 5 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/vite-svelte/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/out/vite-svelte/public/favicon.ico -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/vite-svelte/src/assets/svelte.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/out/vite-svelte/src/assets/svelte.png -------------------------------------------------------------------------------- /pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | packages: 2 | # all packages in subdirs of packages/ and components/ 3 | - 'packages/**' 4 | # exclude packages that are inside test directories 5 | - '!**/test/**' 6 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-extend-manifest-as-function/options.js: -------------------------------------------------------------------------------- 1 | import { x } from './imported' 2 | 3 | console.log('options.js', x) 4 | 5 | chrome.bookmarks.get('main') 6 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-extend-manifest-as-function/options.js: -------------------------------------------------------------------------------- 1 | import { x } from './imported' 2 | 3 | console.log('options.js', x) 4 | 5 | chrome.bookmarks.get('main') 6 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-messages-esm/src/storage.ts: -------------------------------------------------------------------------------- 1 | import { getBucket } from '@extend-chrome/storage' 2 | 3 | export const tabIds = getBucket<{ id: chrome.tabs.Tab['id'] }>('tabIds') 4 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-svelte-page-hmr/src1/lib/stores.js: -------------------------------------------------------------------------------- 1 | // An extremely simple external store 2 | import { writable } from "svelte/store"; 3 | export const count = writable(0); 4 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-vanilla-content-script-seq-hmr/src1/a.ts: -------------------------------------------------------------------------------- 1 | import { b, c } from './b' 2 | 3 | export const a = ` 4 |

${b}

5 |
${JSON.stringify(c)}
6 | ` 7 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-vanilla-content-script-seq-hmr/src2/a.ts: -------------------------------------------------------------------------------- 1 | import { b, c } from './b' 2 | 3 | export const a = ` 4 |

${b}

5 |
${JSON.stringify(c)}
6 | ` 7 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-vue-page/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/e2e/mv3-vite-vue-page/public/favicon.ico -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-vue-page/src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/e2e/mv3-vite-vue-page/src/assets/logo.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-web-accessible-resources/src/script.ts: -------------------------------------------------------------------------------- 1 | console.log('script.ts') 2 | 3 | document.querySelector('div.container > .tags')!.classList.add('script') 4 | 5 | export {} 6 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/vite-svelte/src/main.js: -------------------------------------------------------------------------------- 1 | import App from './App.svelte' 2 | 3 | const app = new App({ 4 | target: document.getElementById('app') 5 | }) 6 | 7 | export default app 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-browser-polyfill/options/options.js: -------------------------------------------------------------------------------- 1 | import { x } from '../scripts/shared' 2 | 3 | console.log('options1.js', x) 4 | 5 | chrome.bookmarks.get('main') 6 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-options-ui/content.js: -------------------------------------------------------------------------------- 1 | import { x } from './imported' 2 | 3 | console.log(x) 4 | 5 | console.log('content.js') 6 | 7 | chrome.contextMenus.removeAll() 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-browser-polyfill/options/options.js: -------------------------------------------------------------------------------- 1 | import { x } from '../scripts/shared' 2 | 3 | console.log('options1.js', x) 4 | 5 | chrome.bookmarks.get('main') 6 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-options-ui/content.js: -------------------------------------------------------------------------------- 1 | import { x } from './imported' 2 | 3 | console.log(x) 4 | 5 | console.log('content.js') 6 | 7 | chrome.contextMenus.removeAll() 8 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-svelte-page/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/e2e/mv3-vite-svelte-page/public/favicon.ico -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/p3__mv3-messages-iife/src/storage.ts: -------------------------------------------------------------------------------- 1 | import { getBucket } from '@extend-chrome/storage' 2 | 3 | export const tabIds = getBucket<{ id: chrome.tabs.Tab['id'] }>('tabIds') 4 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | tests/artifacts 3 | tests/**/.vite 4 | tests/**/dist-* 5 | dist 6 | schema 7 | *-lock.* 8 | .github/**/*.yaml 9 | .github/**/*.yml 10 | packages/vite-plugin/src/client/iife -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-kitchen-sink/background.js: -------------------------------------------------------------------------------- 1 | import { x } from './imported' 2 | 3 | console.log(x) 4 | 5 | console.log('background.js') 6 | 7 | chrome.storage.local.clear() 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-kitchen-sink/content.js: -------------------------------------------------------------------------------- 1 | import { x } from './imported' 2 | 3 | console.log(x) 4 | 5 | console.log('content.js') 6 | 7 | chrome.contextMenus.removeAll() 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-options-ui/background.js: -------------------------------------------------------------------------------- 1 | import { x } from './imported' 2 | 3 | console.log(x) 4 | 5 | console.log('background.js') 6 | 7 | chrome.storage.local.clear() 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-options-ui/options.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv2-options-ui/options.jpg -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-options-ui/options.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv2-options-ui/options.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-kitchen-sink/content.js: -------------------------------------------------------------------------------- 1 | import { x } from './imported' 2 | 3 | console.log(x) 4 | 5 | console.log('content.js') 6 | 7 | chrome.contextMenus.removeAll() 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-locales/src/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "background": { "service_worker": "service-worker.js" }, 3 | "default_locale": "en", 4 | "manifest_version": 3 5 | } 6 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-options-ui/options.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv3-options-ui/options.jpg -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-options-ui/options.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv3-options-ui/options.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-playwright/src/storage.ts: -------------------------------------------------------------------------------- 1 | import { getBucket } from '@extend-chrome/storage' 2 | 3 | export const tabIds = getBucket<{ id: chrome.tabs.Tab['id'] }>('tabIds') 4 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-crx-iframe/src/iframe.ts: -------------------------------------------------------------------------------- 1 | console.log('iframe') 2 | 3 | const h1 = document.createElement('h1') 4 | h1.innerText = 'iframe' 5 | document.body.append(h1) 6 | 7 | export {} 8 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-svelte-content-script-hmr/src1/lib/stores.js: -------------------------------------------------------------------------------- 1 | // An extremely simple external store 2 | import { writable } from "svelte/store"; 3 | export const count = writable(0); 4 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-svelte-page/src/assets/svelte.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/e2e/mv3-vite-svelte-page/src/assets/svelte.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-svelte-page/src/main.js: -------------------------------------------------------------------------------- 1 | import App from './App.svelte' 2 | 3 | const app = new App({ 4 | target: document.getElementById('app') 5 | }) 6 | 7 | export default app 8 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-vue-page-hmr/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/e2e/mv3-vite-vue-page-hmr/public/favicon.ico -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-vue-page-hmr/src1/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/e2e/mv3-vite-vue-page-hmr/src1/assets/logo.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-web-accessible-resources/src/font.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/e2e/mv3-web-accessible-resources/src/font.otf -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-web-accessible-resources/src/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/e2e/mv3-web-accessible-resources/src/image.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/vite-dynamic-script-resources/src/font.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/out/vite-dynamic-script-resources/src/font.otf -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/with-copied-assets/src/images/image1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/out/with-copied-assets/src/images/image1.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/with-copied-assets/src/images/image2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/out/with-copied-assets/src/images/image2.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-kitchen-sink/options.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv2-kitchen-sink/options.jpg -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-kitchen-sink/options.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv2-kitchen-sink/options.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-kitchen-sink/options.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv3-kitchen-sink/options.jpg -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-kitchen-sink/options.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv3-kitchen-sink/options.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-options-ui/service_worker.js: -------------------------------------------------------------------------------- 1 | import { x } from './imported' 2 | 3 | console.log(x) 4 | 5 | console.log('service_worker.js') 6 | 7 | chrome.storage.local.clear() 8 | -------------------------------------------------------------------------------- /packages/vite-plugin-docs/docs/getting-started/vanilla-js/assets/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin-docs/docs/getting-started/vanilla-js/assets/image.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-svelte-page-hmr/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/e2e/mv3-vite-svelte-page-hmr/public/favicon.ico -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-svelte-page-hmr/src1/main.js: -------------------------------------------------------------------------------- 1 | import App from './App.svelte' 2 | 3 | const app = new App({ 4 | target: document.getElementById('app') 5 | }) 6 | 7 | export default app 8 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/vite-declared-script-resources/src/font.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/out/vite-declared-script-resources/src/font.otf -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/vite-declared-script-resources/src/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/out/vite-declared-script-resources/src/image.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/vite-dynamic-script-resources/src/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/out/vite-dynamic-script-resources/src/image.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-browser-polyfill/scripts/background.js: -------------------------------------------------------------------------------- 1 | import { x } from './shared' 2 | 3 | console.log(x) 4 | 5 | console.log('background.js') 6 | 7 | chrome.storage.local.clear() 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-browser-polyfill/scripts/content.js: -------------------------------------------------------------------------------- 1 | import { x } from './shared' 2 | 3 | console.log(x) 4 | 5 | console.log('content.js') 6 | 7 | chrome.contextMenus.removeAll() 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-extend-manifest-as-object/content.js: -------------------------------------------------------------------------------- 1 | import { x } from './imported' 2 | 3 | console.log(x) 4 | 5 | console.log('content.js') 6 | 7 | chrome.contextMenus.removeAll() 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-iife-json-paths-bg-only/background.js: -------------------------------------------------------------------------------- 1 | import { x } from './imported' 2 | 3 | console.log(x) 4 | 5 | console.log('background.js') 6 | 7 | chrome.storage.local.clear() 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-iife-json-paths-ct-only/content.js: -------------------------------------------------------------------------------- 1 | import { x } from './imported' 2 | 3 | console.log(x) 4 | 5 | console.log('content.js') 6 | 7 | chrome.contextMenus.removeAll() 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-kitchen-sink/devtools/devtools2.js: -------------------------------------------------------------------------------- 1 | import { x } from '../imported' 2 | 3 | console.log(x) 4 | 5 | console.log('background.js') 6 | 7 | chrome.storage.local.clear() 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-options-ui/devtools/devtools2.js: -------------------------------------------------------------------------------- 1 | import { x } from '../imported' 2 | 3 | console.log(x) 4 | 5 | console.log('background.js') 6 | 7 | chrome.storage.local.clear() 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-browser-polyfill/scripts/content.js: -------------------------------------------------------------------------------- 1 | import { x } from './shared' 2 | 3 | console.log(x) 4 | 5 | console.log('content.js') 6 | 7 | chrome.contextMenus.removeAll() 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-browser-polyfill/service_worker.js: -------------------------------------------------------------------------------- 1 | import { x } from './shared' 2 | 3 | console.log(x) 4 | 5 | console.log('service_worker.js') 6 | 7 | chrome.storage.local.clear() 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-extend-manifest-as-object/content.js: -------------------------------------------------------------------------------- 1 | import { x } from './imported' 2 | 3 | console.log(x) 4 | 5 | console.log('content.js') 6 | 7 | chrome.contextMenus.removeAll() 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-iife-json-paths-ct-only/content.js: -------------------------------------------------------------------------------- 1 | import { x } from './imported' 2 | 3 | console.log(x) 4 | 5 | console.log('content.js') 6 | 7 | chrome.contextMenus.removeAll() 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-kitchen-sink/service_worker.js: -------------------------------------------------------------------------------- 1 | import { x } from './imported' 2 | 3 | console.log(x) 4 | 5 | console.log('service_worker.js') 6 | 7 | chrome.storage.local.clear() 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-options-ui/devtools/devtools2.js: -------------------------------------------------------------------------------- 1 | import { x } from '../imported' 2 | 3 | console.log(x) 4 | 5 | console.log('service_worker.js') 6 | 7 | chrome.storage.local.clear() 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__tests__/.prettierrc.yaml: -------------------------------------------------------------------------------- 1 | semi: false 2 | tabWidth: 2 3 | trailingComma: 'all' 4 | jsxSingleQuote: true 5 | printWidth: 120 6 | singleQuote: true 7 | arrowParens: 'always' 8 | proseWrap: 'always' 9 | -------------------------------------------------------------------------------- /packages/vite-plugin-docs/docs/getting-started/assets/dev-mode-switch-edge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin-docs/docs/getting-started/assets/dev-mode-switch-edge.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-dynamic-script/src/background.ts: -------------------------------------------------------------------------------- 1 | // This fixes `self`'s type. 2 | declare const self: ServiceWorkerGlobalScope 3 | export {} 4 | self.skipWaiting() 5 | chrome.runtime.openOptionsPage() 6 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-react-content-script-seq-hmr/src1/A.jsx: -------------------------------------------------------------------------------- 1 | import { C } from './C' 2 | 3 | export const A = () => ( 4 |
5 |

a-0

6 | 7 |
8 | ) 9 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-react-content-script-seq-hmr/src1/B.jsx: -------------------------------------------------------------------------------- 1 | import { C } from './C' 2 | 3 | export const B = () => ( 4 |
5 |

b-0

6 | 7 |
8 | ) 9 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-react-content-script-seq-hmr/src2/A.jsx: -------------------------------------------------------------------------------- 1 | import { C } from './C' 2 | 3 | export const A = () => ( 4 |
5 |

a-1

6 | 7 |
8 | ) 9 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-react-content-script-seq-hmr/src2/B.jsx: -------------------------------------------------------------------------------- 1 | import { C } from './C' 2 | 3 | export const B = () => ( 4 |
5 |

b-1

6 | 7 |
8 | ) 9 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-svelte-page-hmr/src1/assets/svelte.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/e2e/mv3-vite-svelte-page-hmr/src1/assets/svelte.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-vanilla-content-script-hmr/src1/bg-onload.ts: -------------------------------------------------------------------------------- 1 | export const onLoad = () => { 2 | chrome.runtime.openOptionsPage() 3 | console.log('opened options page') 4 | } 5 | 6 | export {} 7 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-vue-content-script/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/e2e/mv3-vite-vue-content-script/public/favicon.ico -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-vue-content-script/src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/e2e/mv3-vite-vue-content-script/src/assets/logo.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/with-copied-assets/src/icons/action-icon-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/out/with-copied-assets/src/icons/action-icon-16.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/with-copied-assets/src/icons/action-icon-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/out/with-copied-assets/src/icons/action-icon-32.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/with-copied-assets/src/icons/action-icon-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/out/with-copied-assets/src/icons/action-icon-48.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/with-public-dir/public/icons/action-icon-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/out/with-public-dir/public/icons/action-icon-16.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/with-public-dir/public/icons/action-icon-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/out/with-public-dir/public/icons/action-icon-32.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/with-public-dir/public/icons/action-icon-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/out/with-public-dir/public/icons/action-icon-48.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-extend-manifest-as-function/background.js: -------------------------------------------------------------------------------- 1 | import { x } from './imported' 2 | 3 | console.log(x) 4 | 5 | console.log('background.js') 6 | 7 | chrome.storage.local.clear() 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-extend-manifest-as-object/background.js: -------------------------------------------------------------------------------- 1 | import { x } from './imported' 2 | 3 | console.log(x) 4 | 5 | console.log('background.js') 6 | 7 | chrome.storage.local.clear() 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-options-ui/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv2-options-ui/images/favicon.ico -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-options-ui/images/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv2-options-ui/images/favicon.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-kitchen-sink/devtools/devtools2.js: -------------------------------------------------------------------------------- 1 | import { x } from '../imported' 2 | 3 | console.log(x) 4 | 5 | console.log('service_worker.js') 6 | 7 | chrome.storage.local.clear() 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-options-ui/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv3-options-ui/images/favicon.ico -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-options-ui/images/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv3-options-ui/images/favicon.png -------------------------------------------------------------------------------- /packages/vite-plugin-docs/docs/getting-started/assets/dev-mode-switch-chrome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin-docs/docs/getting-started/assets/dev-mode-switch-chrome.png -------------------------------------------------------------------------------- /packages/vite-plugin-docs/docs/getting-started/vue/assets/start-starter-wide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin-docs/docs/getting-started/vue/assets/start-starter-wide.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-svelte-content-script/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/e2e/mv3-vite-svelte-content-script/public/favicon.ico -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/vite-dynamic-script-resources-minify/src/font.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/out/vite-dynamic-script-resources-minify/src/font.otf -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/with-copied-assets/src/icons/action-icon-128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/out/with-copied-assets/src/icons/action-icon-128.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/with-copied-assets/src/icons/manifest-icon-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/out/with-copied-assets/src/icons/manifest-icon-16.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/with-copied-assets/src/icons/manifest-icon-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/out/with-copied-assets/src/icons/manifest-icon-32.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/with-copied-assets/src/icons/manifest-icon-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/out/with-copied-assets/src/icons/manifest-icon-48.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/with-public-dir/public/icons/action-icon-128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/out/with-public-dir/public/icons/action-icon-128.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/with-public-dir/public/icons/manifest-icon-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/out/with-public-dir/public/icons/manifest-icon-16.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/with-public-dir/public/icons/manifest-icon-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/out/with-public-dir/public/icons/manifest-icon-32.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/with-public-dir/public/icons/manifest-icon-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/out/with-public-dir/public/icons/manifest-icon-48.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-both-option-types-manifest/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "options_ui": { 3 | "page": "options.html", 4 | "open_in_tab": false 5 | }, 6 | "options_page": "options.html" 7 | } 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-chunk-file-names/content/content.js: -------------------------------------------------------------------------------- 1 | import { x } from '../shared/imported' 2 | 3 | console.log(x) 4 | 5 | console.log('content.js') 6 | 7 | chrome.contextMenus.removeAll() 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-external-dependency/content/content.js: -------------------------------------------------------------------------------- 1 | import { x } from '../shared/imported' 2 | 3 | console.log(x) 4 | 5 | console.log('content.js') 6 | 7 | chrome.contextMenus.removeAll() 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-iife-json-paths-bg-multiscript/background1.js: -------------------------------------------------------------------------------- 1 | import { x } from './imported' 2 | 3 | console.log(x) 4 | 5 | console.log('background1.js') 6 | 7 | chrome.storage.local.clear() 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-iife-json-paths-bg-multiscript/background2.js: -------------------------------------------------------------------------------- 1 | import { x } from './imported' 2 | 3 | console.log(x) 4 | 5 | console.log('background2.js') 6 | 7 | chrome.storage.local.clear() 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-iife-json-paths-both/content/content.js: -------------------------------------------------------------------------------- 1 | import { x } from '../shared/imported' 2 | 3 | console.log(x) 4 | 5 | console.log('content.js') 6 | 7 | chrome.contextMenus.removeAll() 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-iife-json-paths-ct-multiscript/content1.js: -------------------------------------------------------------------------------- 1 | import { x } from './imported' 2 | 3 | console.log(x) 4 | 5 | console.log('content1.js') 6 | 7 | chrome.contextMenus.removeAll() 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-iife-json-paths-ct-multiscript/content2.js: -------------------------------------------------------------------------------- 1 | import { x } from './imported' 2 | 3 | console.log(x) 4 | 5 | console.log('content2.js') 6 | 7 | chrome.contextMenus.removeAll() 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-iife-json-paths-multi-ct-scripts/content1.js: -------------------------------------------------------------------------------- 1 | import { x } from './imported' 2 | 3 | console.log(x) 4 | 5 | console.log('content1.js') 6 | 7 | chrome.contextMenus.removeAll() 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-iife-json-paths-multi-ct-scripts/content2.js: -------------------------------------------------------------------------------- 1 | import { x } from './imported' 2 | 3 | console.log(x) 4 | 5 | console.log('content2.js') 6 | 7 | chrome.contextMenus.removeAll() 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-kitchen-sink/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv2-kitchen-sink/images/favicon.ico -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-kitchen-sink/images/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv2-kitchen-sink/images/favicon.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-chunk-file-names/content/content.js: -------------------------------------------------------------------------------- 1 | import { x } from '../shared/imported' 2 | 3 | console.log(x) 4 | 5 | console.log('content.js') 6 | 7 | chrome.contextMenus.removeAll() 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-chunk-file-names/service_worker.js: -------------------------------------------------------------------------------- 1 | import { x } from '../shared/imported' 2 | 3 | console.log(x) 4 | 5 | console.log('service_worker.js') 6 | 7 | chrome.storage.local.clear() 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-extend-manifest-as-object/service_worker.js: -------------------------------------------------------------------------------- 1 | import { x } from './imported' 2 | 3 | console.log(x) 4 | 5 | console.log('service_worker.js') 6 | 7 | chrome.storage.local.clear() 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-external-dependency/content/content.js: -------------------------------------------------------------------------------- 1 | import { x } from '../shared/imported' 2 | 3 | console.log(x) 4 | 5 | console.log('content.js') 6 | 7 | chrome.contextMenus.removeAll() 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-iife-json-paths-bg-only/service_worker.js: -------------------------------------------------------------------------------- 1 | import { x } from './imported' 2 | 3 | console.log(x) 4 | 5 | console.log('service_worker.js') 6 | 7 | chrome.storage.local.clear() 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-iife-json-paths-both/content/content.js: -------------------------------------------------------------------------------- 1 | import { x } from '../shared/imported' 2 | 3 | console.log(x) 4 | 5 | console.log('content.js') 6 | 7 | chrome.contextMenus.removeAll() 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-iife-json-paths-ct-multiscript/content1.js: -------------------------------------------------------------------------------- 1 | import { x } from './imported' 2 | 3 | console.log(x) 4 | 5 | console.log('content1.js') 6 | 7 | chrome.contextMenus.removeAll() 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-iife-json-paths-ct-multiscript/content2.js: -------------------------------------------------------------------------------- 1 | import { x } from './imported' 2 | 3 | console.log(x) 4 | 5 | console.log('content2.js') 6 | 7 | chrome.contextMenus.removeAll() 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-iife-json-paths-multi-ct-scripts/content1.js: -------------------------------------------------------------------------------- 1 | import { x } from './imported' 2 | 3 | console.log(x) 4 | 5 | console.log('content1.js') 6 | 7 | chrome.contextMenus.removeAll() 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-iife-json-paths-multi-ct-scripts/content2.js: -------------------------------------------------------------------------------- 1 | import { x } from './imported' 2 | 3 | console.log(x) 4 | 5 | console.log('content2.js') 6 | 7 | chrome.contextMenus.removeAll() 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-kitchen-sink/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv3-kitchen-sink/images/favicon.ico -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-kitchen-sink/images/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv3-kitchen-sink/images/favicon.png -------------------------------------------------------------------------------- /packages/vite-plugin-docs/docs/getting-started/react/assets/start-initial-files.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin-docs/docs/getting-started/react/assets/start-initial-files.png -------------------------------------------------------------------------------- /packages/vite-plugin-docs/docs/getting-started/react/assets/start-starter-wide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin-docs/docs/getting-started/react/assets/start-starter-wide.png -------------------------------------------------------------------------------- /packages/vite-plugin-docs/docs/getting-started/solid/assets/start-initial-files.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin-docs/docs/getting-started/solid/assets/start-initial-files.png -------------------------------------------------------------------------------- /packages/vite-plugin-docs/docs/getting-started/solid/assets/start-starter-wide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin-docs/docs/getting-started/solid/assets/start-starter-wide.png -------------------------------------------------------------------------------- /packages/vite-plugin-docs/docs/getting-started/vue/assets/start-initial-files.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin-docs/docs/getting-started/vue/assets/start-initial-files.png -------------------------------------------------------------------------------- /packages/vite-plugin-docs/docs/getting-started/vue/assets/start-starter-narrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin-docs/docs/getting-started/vue/assets/start-starter-narrow.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-svelte-content-script/src/assets/svelte.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/e2e/mv3-vite-svelte-content-script/src/assets/svelte.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-vue-content-script-hmr/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/e2e/mv3-vite-vue-content-script-hmr/public/favicon.ico -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-vue-content-script-hmr/src1/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/e2e/mv3-vite-vue-content-script-hmr/src1/assets/logo.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/vite-dynamic-script-resources-minify/src/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/out/vite-dynamic-script-resources-minify/src/image.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/with-copied-assets/src/icons/manifest-icon-128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/out/with-copied-assets/src/icons/manifest-icon-128.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/with-public-dir/public/icons/manifest-icon-128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/out/with-public-dir/public/icons/manifest-icon-128.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/templates/build.test.ts: -------------------------------------------------------------------------------- 1 | import { build, testOutput } from 'tests/runners' 2 | 3 | test('build fs output', async () => { 4 | const result = await build(__dirname) 5 | await testOutput(result) 6 | }) 7 | -------------------------------------------------------------------------------- /.prettierrc.yaml: -------------------------------------------------------------------------------- 1 | semi: false 2 | tabWidth: 2 3 | trailingComma: all 4 | jsxSingleQuote: true 5 | singleQuote: true 6 | arrowParens: always 7 | proseWrap: always 8 | plugins: 9 | - './node_modules/prettier-plugin-jsdoc' 10 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-chunk-file-names/background/background.js: -------------------------------------------------------------------------------- 1 | import { x } from '../shared/imported' 2 | 3 | console.log(x) 4 | 5 | console.log('background.js') 6 | 7 | chrome.storage.local.clear() 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-html-only/images/icon-main-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv2-html-only/images/icon-main-16.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-no-scripts/images/icon-main-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv2-no-scripts/images/icon-main-16.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-options-ui/images/icon-main-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv2-options-ui/images/icon-main-16.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-options-ui/images/icon-main-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv2-options-ui/images/icon-main-48.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-extend-manifest-as-function/service_worker.js: -------------------------------------------------------------------------------- 1 | import { x } from './imported' 2 | 3 | console.log(x) 4 | 5 | console.log('service_worker.js') 6 | 7 | chrome.storage.local.clear() 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-html-only/images/icon-main-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv3-html-only/images/icon-main-16.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-iife-json-paths-both/service_worker.js: -------------------------------------------------------------------------------- 1 | import { x } from '../shared/imported' 2 | 3 | console.log(x) 4 | 5 | console.log('service_worker.js') 6 | 7 | chrome.storage.local.clear() 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-iife-json-paths-html/service_worker.js: -------------------------------------------------------------------------------- 1 | import { x } from '../shared/imported1' 2 | 3 | console.log(x) 4 | 5 | console.log('service_worker.js') 6 | 7 | chrome.storage.local.clear() 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-no-scripts/images/icon-main-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv3-no-scripts/images/icon-main-16.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-options-ui/images/icon-main-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv3-options-ui/images/icon-main-16.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-options-ui/images/icon-main-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv3-options-ui/images/icon-main-48.png -------------------------------------------------------------------------------- /packages/vite-plugin-docs/docs/getting-started/react/assets/start-starter-narrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin-docs/docs/getting-started/react/assets/start-starter-narrow.png -------------------------------------------------------------------------------- /packages/vite-plugin-docs/docs/getting-started/solid/assets/start-starter-narrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin-docs/docs/getting-started/solid/assets/start-starter-narrow.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-svelte-content-script-hmr/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/e2e/mv3-vite-svelte-content-script-hmr/public/favicon.ico -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-vanilla-content-script-seq-hmr/src1/b.ts: -------------------------------------------------------------------------------- 1 | import { c1 } from './c1' 2 | import { c2 } from './c2' 3 | 4 | export const b = 'first' 5 | 6 | export const c = { 7 | c1, 8 | c2, 9 | } 10 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-vue-page/__image_snapshots__/vite-build-0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/e2e/mv3-vite-vue-page/__image_snapshots__/vite-build-0.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-vue-page/__image_snapshots__/vite-serve-0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/e2e/mv3-vite-vue-page/__image_snapshots__/vite-serve-0.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-browser-polyfill/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv2-browser-polyfill/images/favicon.ico -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-browser-polyfill/images/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv2-browser-polyfill/images/favicon.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-browser-polyfill/images/options.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv2-browser-polyfill/images/options.jpg -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-iife-json-paths-both/background/background.js: -------------------------------------------------------------------------------- 1 | import { x } from '../shared/imported' 2 | 3 | console.log(x) 4 | 5 | console.log('background.js') 6 | 7 | chrome.storage.local.clear() 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-iife-json-paths-html/background/background.js: -------------------------------------------------------------------------------- 1 | import { x } from '../shared/imported1' 2 | 3 | console.log(x) 4 | 5 | console.log('background.js') 6 | 7 | chrome.storage.local.clear() 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-iife-json-paths-html/options/options.js: -------------------------------------------------------------------------------- 1 | import { x } from '../shared/imported1' 2 | import { y } from '../shared/imported2' 3 | 4 | console.log('🚀: x', x) 5 | console.log('🚀: y', y) 6 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-input-array/images/icon-main-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv2-input-array/images/icon-main-16.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-input-object/images/icon-main-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv2-input-object/images/icon-main-16.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-kitchen-sink/fonts/NotoSans-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv2-kitchen-sink/fonts/NotoSans-Black.ttf -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-kitchen-sink/fonts/NotoSans-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv2-kitchen-sink/fonts/NotoSans-Light.ttf -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-kitchen-sink/images/icon-main-128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv2-kitchen-sink/images/icon-main-128.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-kitchen-sink/images/icon-main-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv2-kitchen-sink/images/icon-main-16.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-kitchen-sink/images/icon-main-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv2-kitchen-sink/images/icon-main-48.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-options-ui/fonts/Missaali-Regular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv2-options-ui/fonts/Missaali-Regular.otf -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-options-ui/fonts/NotoSans-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv2-options-ui/fonts/NotoSans-Black.ttf -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-options-ui/fonts/NotoSans-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv2-options-ui/fonts/NotoSans-Light.ttf -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-options-ui/images/icon-main-128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv2-options-ui/images/icon-main-128.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-browser-polyfill/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv3-browser-polyfill/images/favicon.ico -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-browser-polyfill/images/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv3-browser-polyfill/images/favicon.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-browser-polyfill/images/options.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv3-browser-polyfill/images/options.jpg -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-iife-json-paths-html/options/options.js: -------------------------------------------------------------------------------- 1 | import { x } from '../shared/imported1' 2 | import { y } from '../shared/imported2' 3 | 4 | console.log('🚀: x', x) 5 | console.log('🚀: y', y) 6 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-input-array/images/icon-main-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv3-input-array/images/icon-main-16.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-input-object/images/icon-main-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv3-input-object/images/icon-main-16.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-kitchen-sink/fonts/NotoSans-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv3-kitchen-sink/fonts/NotoSans-Black.ttf -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-kitchen-sink/fonts/NotoSans-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv3-kitchen-sink/fonts/NotoSans-Light.ttf -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-kitchen-sink/images/icon-main-128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv3-kitchen-sink/images/icon-main-128.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-kitchen-sink/images/icon-main-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv3-kitchen-sink/images/icon-main-16.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-kitchen-sink/images/icon-main-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv3-kitchen-sink/images/icon-main-48.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-options-ui/fonts/Missaali-Regular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv3-options-ui/fonts/Missaali-Regular.otf -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-options-ui/fonts/NotoSans-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv3-options-ui/fonts/NotoSans-Black.ttf -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-options-ui/fonts/NotoSans-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv3-options-ui/fonts/NotoSans-Light.ttf -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-options-ui/images/icon-main-128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv3-options-ui/images/icon-main-128.png -------------------------------------------------------------------------------- /packages/rollup-plugin/src/browser-polyfill/browser/.prettierrc.yaml: -------------------------------------------------------------------------------- 1 | semi: false 2 | tabWidth: 2 3 | trailingComma: 'all' 4 | jsxSingleQuote: true 5 | printWidth: 120 6 | singleQuote: true 7 | arrowParens: 'always' 8 | proseWrap: 'always' 9 | -------------------------------------------------------------------------------- /packages/rollup-plugin/src/manifest-input/browser/.prettierrc.yaml: -------------------------------------------------------------------------------- 1 | semi: false 2 | tabWidth: 2 3 | trailingComma: 'all' 4 | jsxSingleQuote: true 5 | printWidth: 120 6 | singleQuote: true 7 | arrowParens: 'always' 8 | proseWrap: 'always' 9 | -------------------------------------------------------------------------------- /packages/vite-plugin-docs/docs/getting-started/vanilla-js/assets/crxjs-vanilla-files.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin-docs/docs/getting-started/vanilla-js/assets/crxjs-vanilla-files.png -------------------------------------------------------------------------------- /packages/vite-plugin-docs/docs/getting-started/vue/assets/start-context-menu-inspect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin-docs/docs/getting-started/vue/assets/start-context-menu-inspect.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-dynamic-script/src/main-world.ts: -------------------------------------------------------------------------------- 1 | console.log('main-world.ts') 2 | 3 | const p = document.createElement('p') 4 | p.className = 'ok' 5 | p.innerText = 'ok' 6 | document.body.append(p) 7 | 8 | export {} 9 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-react-page/__image_snapshots__/vite-build-0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/e2e/mv3-vite-react-page/__image_snapshots__/vite-build-0.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-react-page/__image_snapshots__/vite-serve-0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/e2e/mv3-vite-react-page/__image_snapshots__/vite-serve-0.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-svelte-content-script-hmr/src1/assets/svelte.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/e2e/mv3-vite-svelte-content-script-hmr/src1/assets/svelte.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-svelte-page/__image_snapshots__/vite-build-0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/e2e/mv3-vite-svelte-page/__image_snapshots__/vite-build-0.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-svelte-page/__image_snapshots__/vite-serve-0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/e2e/mv3-vite-svelte-page/__image_snapshots__/vite-serve-0.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-vanilla-content-script-seq-hmr/src2/b.ts: -------------------------------------------------------------------------------- 1 | import { c1 } from './c1' 2 | import { c2 } from './c2' 3 | 4 | export const b = 'second' 5 | 6 | export const c = { 7 | c1, 8 | c2, 9 | } 10 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-extend-manifest-as-function/options.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv2-extend-manifest-as-function/options.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-html-only/devtools/devtools.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Title 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-kitchen-sink/_locales/es/messages.json: -------------------------------------------------------------------------------- 1 | { 2 | "extName": { "message": "MV3 con todo" }, 3 | "extDescription": { 4 | "message": "MV3 Chrome Extension con todo los opciones" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-kitchen-sink/devtools/devtools.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-kitchen-sink/fonts/Missaali-Regular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv2-kitchen-sink/fonts/Missaali-Regular.otf -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-locales/src/_locales/es/messages.json: -------------------------------------------------------------------------------- 1 | { 2 | "extName": { "message": "MV3 con todo" }, 3 | "extDescription": { 4 | "message": "MV3 Chrome Extension con todo los opciones" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-options-ui/devtools/devtools.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-extend-manifest-as-function/options.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv3-extend-manifest-as-function/options.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-html-only/devtools/devtools.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Title 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-kitchen-sink/_locales/es/messages.json: -------------------------------------------------------------------------------- 1 | { 2 | "extName": { "message": "MV3 con todo" }, 3 | "extDescription": { 4 | "message": "MV3 Chrome Extension con todo los opciones" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-kitchen-sink/devtools/devtools.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-kitchen-sink/fonts/Missaali-Regular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv3-kitchen-sink/fonts/Missaali-Regular.otf -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-locales/src/_locales/es/messages.json: -------------------------------------------------------------------------------- 1 | { 2 | "extName": { "message": "MV3 con todo" }, 3 | "extDescription": { 4 | "message": "MV3 Chrome Extension con todo los opciones" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-options-ui/devtools/devtools.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /packages/vite-plugin-docs/docs/getting-started/react/assets/start-context-menu-inspect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin-docs/docs/getting-started/react/assets/start-context-menu-inspect.png -------------------------------------------------------------------------------- /packages/vite-plugin-docs/docs/getting-started/solid/assets/start-context-menu-inspect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin-docs/docs/getting-started/solid/assets/start-context-menu-inspect.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-react-new-tab/__image_snapshots__/vite-build-0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/e2e/mv3-vite-react-new-tab/__image_snapshots__/vite-build-0.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-react-new-tab/__image_snapshots__/vite-serve-0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/e2e/mv3-vite-react-new-tab/__image_snapshots__/vite-serve-0.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-react-sandbox/__image_snapshots__/vite-build-0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/e2e/mv3-vite-react-sandbox/__image_snapshots__/vite-build-0.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/with-copied-assets/_locales/en/messages.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": { 3 | "message": "Message text, with optional placeholders.", 4 | "description": "Translator-aimed description of the message." 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/plugin-testOptionsProvider.ts: -------------------------------------------------------------------------------- 1 | export { pluginOptionsProvider as crx } from '../src/node/plugin-optionsProvider' 2 | export { 3 | defineManifest, 4 | defineDynamicResource, 5 | } from '../src/node/defineManifest' 6 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-browser-polyfill/images/icon-main-128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv2-browser-polyfill/images/icon-main-128.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-browser-polyfill/images/icon-main-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv2-browser-polyfill/images/icon-main-16.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-browser-polyfill/images/icon-main-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv2-browser-polyfill/images/icon-main-48.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-browser-polyfill/images/icon-main-128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv3-browser-polyfill/images/icon-main-128.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-browser-polyfill/images/icon-main-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv3-browser-polyfill/images/icon-main-16.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-browser-polyfill/images/icon-main-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv3-browser-polyfill/images/icon-main-48.png -------------------------------------------------------------------------------- /packages/vite-plugin-docs/docs/getting-started/vanilla-js/assets/crxjs-vanilla-content-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin-docs/docs/getting-started/vanilla-js/assets/crxjs-vanilla-content-1.png -------------------------------------------------------------------------------- /packages/vite-plugin-docs/docs/getting-started/vanilla-js/assets/crxjs-vanilla-content-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin-docs/docs/getting-started/vanilla-js/assets/crxjs-vanilla-content-2.png -------------------------------------------------------------------------------- /packages/vite-plugin-docs/docs/getting-started/vanilla-js/assets/crxjs-vanilla-content-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin-docs/docs/getting-started/vanilla-js/assets/crxjs-vanilla-content-3.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-hmr-external-xhr/src/options.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { render } from 'react-dom' 3 | import App from './App' 4 | 5 | const root = document.querySelector('#root') 6 | render(, root) 7 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-react-sandbox/src/background.ts: -------------------------------------------------------------------------------- 1 | // this should open a new tab 2 | setTimeout(() => { 3 | const url = chrome.runtime.getURL('src/sandbox.html') 4 | chrome.tabs.create({ url }) 5 | }, 1000) 6 | export {} 7 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-extend-manifest-as-object/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv2-extend-manifest-as-object/images/favicon.ico -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-extend-manifest-as-object/images/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv2-extend-manifest-as-object/images/favicon.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-input-array/background.js: -------------------------------------------------------------------------------- 1 | console.log('background.js') 2 | 3 | chrome.runtime.onInstalled.addListener(() => { 4 | chrome.tabs.create({ 5 | url: chrome.runtime.getURL('index.html'), 6 | }) 7 | }) 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-extend-manifest-as-object/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv3-extend-manifest-as-object/images/favicon.ico -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-extend-manifest-as-object/images/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv3-extend-manifest-as-object/images/favicon.png -------------------------------------------------------------------------------- /packages/rollup-plugin/src/manifest-input/browser/resolvePath.ts: -------------------------------------------------------------------------------- 1 | export function resolvePath(object: Record, path: string, defaultValue?: T) { 2 | return path.split('.').reduce((o, p) => (o ? o[p] : defaultValue), object) as T 3 | } 4 | -------------------------------------------------------------------------------- /packages/vite-plugin-docs/docs/getting-started/vanilla-js/assets/crxjs-vanilla-inspect-menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin-docs/docs/getting-started/vanilla-js/assets/crxjs-vanilla-inspect-menu.png -------------------------------------------------------------------------------- /packages/vite-plugin-docs/docs/getting-started/vanilla-js/assets/crxjs-vanilla-inspect-raw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin-docs/docs/getting-started/vanilla-js/assets/crxjs-vanilla-inspect-raw.png -------------------------------------------------------------------------------- /packages/vite-plugin-docs/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | // This file is not used in compilation. It is here just for a nice editor experience. 3 | "extends": "@tsconfig/docusaurus/tsconfig.json", 4 | "compilerOptions": { 5 | "baseUrl": "." 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-vue-content-script/__image_snapshots__/vite-build-0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/e2e/mv3-vite-vue-content-script/__image_snapshots__/vite-build-0.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-vue-content-script/__image_snapshots__/vite-serve-0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/e2e/mv3-vite-vue-content-script/__image_snapshots__/vite-serve-0.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/vite-react-fast-refresh/src/popup.tsx: -------------------------------------------------------------------------------- 1 | import { render } from 'react-dom' 2 | import App from './App' 3 | 4 | console.log('popup script') 5 | 6 | const root = document.querySelector('#root') 7 | 8 | render(, root) 9 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: RPCE Community Support 4 | url: https://github.com/crxjs/rollup-plugin-chrome-extension/discussions/new 5 | about: Need help? Start a community discussion! 6 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-extend-manifest-as-function/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv2-extend-manifest-as-function/images/favicon.ico -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-input-object/background.js: -------------------------------------------------------------------------------- 1 | console.log('background.js') 2 | 3 | chrome.runtime.onInstalled.addListener(() => { 4 | chrome.tabs.create({ 5 | url: chrome.runtime.getURL('index.html'), 6 | }) 7 | }) 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-both-option-types-manifest/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest_version": 3, 3 | "options_page": "options.html", 4 | "options_ui": { 5 | "open_in_tab": false, 6 | "page": "options.html" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-extend-manifest-as-function/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv3-extend-manifest-as-function/images/favicon.ico -------------------------------------------------------------------------------- /packages/vite-plugin-docs/docs/getting-started/vanilla-js/assets/crxjs-vanilla-inspect-edit-js.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin-docs/docs/getting-started/vanilla-js/assets/crxjs-vanilla-inspect-edit-js.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-react-content-script/__image_snapshots__/vite-build-0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/e2e/mv3-vite-react-content-script/__image_snapshots__/vite-build-0.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-react-content-script/__image_snapshots__/vite-serve-0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/e2e/mv3-vite-react-content-script/__image_snapshots__/vite-serve-0.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-svelte-content-script/__image_snapshots__/vite-build-0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/e2e/mv3-vite-svelte-content-script/__image_snapshots__/vite-build-0.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-svelte-content-script/__image_snapshots__/vite-serve-0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/e2e/mv3-vite-svelte-content-script/__image_snapshots__/vite-serve-0.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-extend-manifest-as-object/images/icon-main-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv2-extend-manifest-as-object/images/icon-main-16.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-extend-manifest-as-object/images/icon-main-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv2-extend-manifest-as-object/images/icon-main-48.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-extend-manifest-as-object/images/icon-main-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv3-extend-manifest-as-object/images/icon-main-16.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-extend-manifest-as-object/images/icon-main-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv3-extend-manifest-as-object/images/icon-main-48.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-input-array/service_worker.js: -------------------------------------------------------------------------------- 1 | console.log('service_worker.js') 2 | 3 | chrome.runtime.onInstalled.addListener(() => { 4 | chrome.tabs.create({ 5 | url: chrome.runtime.getURL('index.html'), 6 | }) 7 | }) 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-input-object/service_worker.js: -------------------------------------------------------------------------------- 1 | console.log('service_worker.js') 2 | 3 | chrome.runtime.onInstalled.addListener(() => { 4 | chrome.tabs.create({ 5 | url: chrome.runtime.getURL('index.html'), 6 | }) 7 | }) 8 | -------------------------------------------------------------------------------- /packages/vite-plugin-docs/docs/getting-started/vanilla-js/assets/crxjs-vanilla-inspect-edit-css.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin-docs/docs/getting-started/vanilla-js/assets/crxjs-vanilla-inspect-edit-css.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-vue-content-script/src/main.js: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue' 2 | import App from './App.vue' 3 | 4 | const app = document.createElement('div') 5 | app.id = 'app' 6 | document.body.append(app) 7 | createApp(App).mount(app) 8 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/with-copied-assets/_locales/es/messages.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": { 3 | "message": "Texto del mensaje, con marcadores de posición opcionales.", 4 | "description": "Descripción del mensaje orientada al traductor." 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /.changeset/yellow-paws-search.md: -------------------------------------------------------------------------------- 1 | --- 2 | '@crxjs/vite-plugin': patch 3 | --- 4 | 5 | Vite 5 moved vite manifest from 'manifest.json' to '.vite/manifest.json'. 6 | This change updates the plugin to use the new location if Vite major version is >4, old location otherwise. -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-basic-js/babel.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | ["@babel/preset-env", { "targets": { "chrome": 80 } }], 4 | "@babel/preset-react" 5 | ], 6 | "plugins": ["@babel/plugin-proposal-class-properties"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-extend-manifest-as-function/images/icon-main-128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv2-extend-manifest-as-function/images/icon-main-128.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-extend-manifest-as-function/images/icon-main-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv2-extend-manifest-as-function/images/icon-main-16.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-extend-manifest-as-function/images/icon-main-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv2-extend-manifest-as-function/images/icon-main-48.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-extend-manifest-as-object/images/icon-main-128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv2-extend-manifest-as-object/images/icon-main-128.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-locales/babel.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | ["@babel/preset-env", { "targets": { "chrome": 80 } }], 4 | "@babel/preset-react" 5 | ], 6 | "plugins": ["@babel/plugin-proposal-class-properties"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-basic-js/babel.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | ["@babel/preset-env", { "targets": { "chrome": 80 } }], 4 | "@babel/preset-react" 5 | ], 6 | "plugins": ["@babel/plugin-proposal-class-properties"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-extend-manifest-as-function/images/icon-main-128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv3-extend-manifest-as-function/images/icon-main-128.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-extend-manifest-as-function/images/icon-main-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv3-extend-manifest-as-function/images/icon-main-16.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-extend-manifest-as-function/images/icon-main-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv3-extend-manifest-as-function/images/icon-main-48.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-extend-manifest-as-object/images/icon-main-128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/rollup-plugin/__fixtures__/extensions/mv3-extend-manifest-as-object/images/icon-main-128.png -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-locales/babel.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | ["@babel/preset-env", { "targets": { "chrome": 80 } }], 4 | "@babel/preset-react" 5 | ], 6 | "plugins": ["@babel/plugin-proposal-class-properties"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/src/manifest-input/browser/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | // Manifest Inputs Browser Config 3 | "extends": "../../../tsconfigs/tsconfig-base.json", 4 | "compilerOptions": { 5 | "lib": ["es2017", "dom"] 6 | }, 7 | "include": ["./**/*.ts"] 8 | } 9 | -------------------------------------------------------------------------------- /packages/vite-plugin-docs/src/components/HomepageFeatures/styles.module.css: -------------------------------------------------------------------------------- 1 | .features { 2 | display: flex; 3 | align-items: center; 4 | padding: 2rem 0; 5 | width: 100%; 6 | } 7 | 8 | .featureSvg { 9 | height: 200px; 10 | width: 200px; 11 | } 12 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-hmr-external-xhr/src/background.ts: -------------------------------------------------------------------------------- 1 | // This fixes `self`'s type. 2 | declare const self: ServiceWorkerGlobalScope 3 | export {} 4 | 5 | chrome.runtime.onInstalled.addListener(() => { 6 | chrome.runtime.openOptionsPage() 7 | }) 8 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-vue-content-script-hmr/src1/main.js: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue' 2 | import App from './App.vue' 3 | 4 | const app = document.createElement('div') 5 | app.id = 'app' 6 | document.body.append(app) 7 | createApp(App).mount(app) 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/src/browser-polyfill/browser/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | // Manifest Inputs Browser Config 3 | "extends": "../../../tsconfigs/tsconfig-base.json", 4 | "compilerOptions": { 5 | "lib": ["es2017", "dom"] 6 | }, 7 | "include": ["./**/*.ts"] 8 | } 9 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-background-only/babel.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | ["@babel/preset-env", { "targets": { "chrome": 80 } }], 4 | "@babel/preset-react" 5 | ], 6 | "plugins": ["@babel/plugin-proposal-class-properties"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-content-script-only/babel.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | ["@babel/preset-env", { "targets": { "chrome": 80 } }], 4 | "@babel/preset-react" 5 | ], 6 | "plugins": ["@babel/plugin-proposal-class-properties"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/vite-plugin-docs/docs/getting-started/_dev-basics-intro.md: -------------------------------------------------------------------------------- 1 | Now that you've [setup your project](create-project), it's time to give it a 2 | test run in the browser. 3 | 4 | If you haven't started Vite in the terminal, do so now: 5 | 6 | ```sh 7 | npm run dev 8 | ``` 9 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/basic-ts/src/popup.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { render } from 'react-dom' 3 | import App from './App' 4 | 5 | console.log('popup script') 6 | 7 | const root = document.querySelector('#root') 8 | 9 | render(, root) 10 | -------------------------------------------------------------------------------- /packages/rollup-plugin/.eslintignore: -------------------------------------------------------------------------------- 1 | /node_modules 2 | /lib 3 | /types 4 | /coverage 5 | **/*.js 6 | 7 | rollup.config.js 8 | jest.config.js 9 | __fixtures__ 10 | 11 | # *.jpg 12 | # *.json 13 | # *.html 14 | # *.png 15 | # *.css 16 | # *.ico 17 | # *.ttf 18 | # *.otf 19 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | env: { 3 | browser: true, 4 | webextensions: true, 5 | }, 6 | globals: { 7 | chrome: true, 8 | }, 9 | extends: ['eslint:recommended', 'plugin:react/recommended'], 10 | } 11 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-content-script-react-js/babel.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | ["@babel/preset-env", { "targets": { "chrome": 80 } }], 4 | "@babel/preset-react" 5 | ], 6 | "plugins": ["@babel/plugin-proposal-class-properties"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-content-script-react-js/babel.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | ["@babel/preset-env", { "targets": { "chrome": 80 } }], 4 | "@babel/preset-react" 5 | ], 6 | "plugins": ["@babel/plugin-proposal-class-properties"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/src/manifest-input/browser/types.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable @typescript-eslint/ban-types */ 2 | export type ChromeEvent = chrome.events.Event & { 3 | __isCapturedEvent: boolean 4 | } 5 | 6 | export type LastError = chrome.runtime.LastError | undefined 7 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-vue-page/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest_version": 3, 3 | "options_page": "src/index.html", 4 | "background": { 5 | "service_worker": "src/background.js" 6 | }, 7 | "name": "Vite Vue Page", 8 | "version": "0.0.1" 9 | } 10 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/vite-dynamic-script-resources/src/background.ts: -------------------------------------------------------------------------------- 1 | import content1 from './content1.ts?script' 2 | import content2 from './content2.ts?script' 3 | 4 | chrome.scripting.executeScript({ 5 | files: [content1, content2], 6 | target: { tabId: 1 }, 7 | }) 8 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-vue-page-hmr/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest_version": 3, 3 | "options_page": "src/index.html", 4 | "background": { 5 | "service_worker": "src/background.js" 6 | }, 7 | "name": "Vite Vue Page", 8 | "version": "0.0.1" 9 | } 10 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/basic-js/src/popup.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom' 3 | import App from './App' 4 | 5 | console.log('popup script') 6 | 7 | const root = document.querySelector('#root') 8 | 9 | ReactDOM.render(, root) 10 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/vite-dynamic-script-resources-minify/src/background.ts: -------------------------------------------------------------------------------- 1 | import content1 from './content1.ts?script' 2 | import content2 from './content2.ts?script' 3 | 4 | chrome.scripting.executeScript({ 5 | files: [content1, content2], 6 | target: { tabId: 1 }, 7 | }) 8 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/with-sourcemaps/src/popup.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { render } from 'react-dom' 3 | import App from './App' 4 | 5 | console.log('popup script') 6 | 7 | const root = document.querySelector('#root') 8 | 9 | render(, root) 10 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/basic-js/src/App.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | 3 | const App = () => { 4 | return ( 5 |
6 |

Popup Page

7 |

If you are seeing this, React is working!

8 |
9 | ) 10 | } 11 | 12 | export default App 13 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-input-array/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "input-array", 3 | "description": "input-array chrome extension", 4 | "manifest_version": 2, 5 | "version": "0.1.0", 6 | "background": { 7 | "scripts": ["background.js"] 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-input-object/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "input-array", 3 | "description": "input-array chrome extension", 4 | "manifest_version": 2, 5 | "version": "0.1.0", 6 | "background": { 7 | "scripts": ["background.js"] 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-invalid-manifest/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "invalid-manifest", 3 | "description": "invalid-manifest chrome extension", 4 | "manifest_version": "B", 5 | "versionNumber": "0.1.0", 6 | "background": { "scripts": ["background.js"] } 7 | } 8 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-basic-ts/src/popup.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { render } from 'react-dom' 3 | import App from './App' 4 | 5 | console.log('popup script') 6 | 7 | const root = document.querySelector('#root') 8 | 9 | render(, root) 10 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-vanilla-content-script-seq-hmr/src1/root.ts: -------------------------------------------------------------------------------- 1 | import { a } from './a' 2 | 3 | const root = new DOMParser().parseFromString( 4 | `
${a}
`, 5 | 'text/html', 6 | ).body.firstElementChild as HTMLDivElement 7 | 8 | document.body.append(root) 9 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/vite-self-directive-in-csp/src/popup.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { render } from 'react-dom' 3 | import App from './App' 4 | 5 | console.log('popup script') 6 | 7 | const root = document.querySelector('#root') 8 | 9 | render(, root) 10 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-basic-js/src/popup.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom' 3 | import App from './App' 4 | 5 | console.log('popup script') 6 | 7 | const root = document.querySelector('#root') 8 | 9 | ReactDOM.render(, root) 10 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-react-content-script-seq-hmr/src1/App.jsx: -------------------------------------------------------------------------------- 1 | import { A } from './A' 2 | import { B } from './B' 3 | 4 | function App() { 5 | return ( 6 | 10 | ) 11 | } 12 | 13 | export default App 14 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/basic-js/build.test.ts: -------------------------------------------------------------------------------- 1 | import { build } from 'tests/runners' 2 | import { testOutput } from 'tests/testOutput' 3 | import { test } from 'vitest' 4 | 5 | test('build fs output', async () => { 6 | const result = await build(__dirname) 7 | await testOutput(result) 8 | }) 9 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/basic-ts/build.test.ts: -------------------------------------------------------------------------------- 1 | import { build } from 'tests/runners' 2 | import { testOutput } from 'tests/testOutput' 3 | import { test } from 'vitest' 4 | 5 | test('build fs output', async () => { 6 | const result = await build(__dirname) 7 | await testOutput(result) 8 | }) 9 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/basic-ts/src/App.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | 3 | const App: React.FC = () => { 4 | return ( 5 |
6 |

Popup Page

7 |

If you are seeing this, React is working!

8 |
9 | ) 10 | } 11 | 12 | export default App 13 | -------------------------------------------------------------------------------- /packages/vite-plugin/tsconfig-types.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "declaration": true, 5 | "declarationDir": "dist", 6 | "emitDeclarationOnly": true, 7 | "noEmit": false 8 | }, 9 | "include": ["src/node", "modules.d.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-input-array/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "background": { 3 | "service_worker": "service_worker.js" 4 | }, 5 | "description": "input-array chrome extension", 6 | "manifest_version": 3, 7 | "name": "input-array", 8 | "version": "0.1.0" 9 | } 10 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-dynamic-content-script-hmr/src1/style.css: -------------------------------------------------------------------------------- 1 | #app { 2 | font-family: Avenir, Helvetica, Arial, sans-serif; 3 | -webkit-font-smoothing: antialiased; 4 | -moz-osx-font-smoothing: grayscale; 5 | text-align: center; 6 | color: #2c3e50; 7 | margin-top: 60px; 8 | } 9 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-vanilla-content-script-hmr/src1/style.css: -------------------------------------------------------------------------------- 1 | #app { 2 | font-family: Avenir, Helvetica, Arial, sans-serif; 3 | -webkit-font-smoothing: antialiased; 4 | -moz-osx-font-smoothing: grayscale; 5 | text-align: center; 6 | color: #2c3e50; 7 | margin-top: 60px; 8 | } 9 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/vite-svelte/build.test.ts: -------------------------------------------------------------------------------- 1 | import { build } from '../../runners' 2 | import { testOutput } from '../../testOutput' 3 | import { test } from 'vitest' 4 | 5 | test('build fs output', async () => { 6 | const result = await build(__dirname) 7 | await testOutput(result) 8 | }) 9 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/vite-svelte/serve.test.ts: -------------------------------------------------------------------------------- 1 | import { serve } from '../../runners' 2 | import { testOutput } from '../../testOutput' 3 | import { test } from 'vitest' 4 | 5 | test('serve fs output', async () => { 6 | const result = await serve(__dirname) 7 | await testOutput(result) 8 | }) 9 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-basic-ts/src/pages/popup/index.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { render } from 'react-dom' 3 | import App from './App' 4 | 5 | console.log('popup script') 6 | 7 | const root = document.querySelector('#root') 8 | 9 | render(, root) 10 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-iife-json-paths-html/content/content.js: -------------------------------------------------------------------------------- 1 | import { x } from '../shared/imported1' 2 | import { y } from '../shared/imported2' 3 | 4 | console.log(x) 5 | console.log('🚀: y', y) 6 | 7 | console.log('content.js') 8 | 9 | chrome.contextMenus.removeAll() 10 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-basic-js/src/App.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | 3 | const App = () => { 4 | return ( 5 |
6 |

Popup Page

7 |

If you are seeing this, React is working!

8 |
9 | ) 10 | } 11 | 12 | export default App 13 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-iife-json-paths-html/content/content.js: -------------------------------------------------------------------------------- 1 | import { x } from '../shared/imported1' 2 | import { y } from '../shared/imported2' 3 | 4 | console.log(x) 5 | console.log('🚀: y', y) 6 | 7 | console.log('content.js') 8 | 9 | chrome.contextMenus.removeAll() 10 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-input-object/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "background": { 3 | "service_worker": "service_worker.js" 4 | }, 5 | "description": "input-object chrome extension", 6 | "manifest_version": 3, 7 | "name": "input-object", 8 | "version": "0.1.0" 9 | } 10 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-manifest-ts-single-input/src/popup.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { render } from 'react-dom' 3 | import App from './App' 4 | 5 | console.log('popup script') 6 | 7 | const root = document.querySelector('#root') 8 | 9 | render(, root) 10 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/dynamic-script/build.test.ts: -------------------------------------------------------------------------------- 1 | import { build } from 'tests/runners' 2 | import { testOutput } from 'tests/testOutput' 3 | import { test } from 'vitest' 4 | 5 | test('build fs output', async () => { 6 | const result = await build(__dirname) 7 | await testOutput(result) 8 | }) 9 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/with-circular-deps/build.test.ts: -------------------------------------------------------------------------------- 1 | import { build } from 'tests/runners' 2 | import { testOutput } from 'tests/testOutput' 3 | import { test } from 'vitest' 4 | 5 | test('build fs output', async () => { 6 | const result = await build(__dirname) 7 | await testOutput(result) 8 | }) 9 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/with-copied-assets/build.test.ts: -------------------------------------------------------------------------------- 1 | import { build } from 'tests/runners' 2 | import { testOutput } from 'tests/testOutput' 3 | import { test } from 'vitest' 4 | 5 | test('build fs output', async () => { 6 | const result = await build(__dirname) 7 | await testOutput(result) 8 | }) 9 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/with-public-dir/build.test.ts: -------------------------------------------------------------------------------- 1 | import { build } from 'tests/runners' 2 | import { testOutput } from 'tests/testOutput' 3 | import { test } from 'vitest' 4 | 5 | test('build fs output', async () => { 6 | const result = await build(__dirname) 7 | await testOutput(result) 8 | }) 9 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/with-sourcemaps/build.test.ts: -------------------------------------------------------------------------------- 1 | import { build } from 'tests/runners' 2 | import { testOutput } from 'tests/testOutput' 3 | import { test } from 'vitest' 4 | 5 | test('build fs output', async () => { 6 | const result = await build(__dirname) 7 | await testOutput(result) 8 | }) 9 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/with-sourcemaps/src/App.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | 3 | const App: React.FC = () => { 4 | return ( 5 |
6 |

Popup Page

7 |

If you are seeing this, React is working!

8 |
9 | ) 10 | } 11 | 12 | export default App 13 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-basic-js/src/pages/popup/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom' 3 | import App from './App' 4 | 5 | console.log('popup script') 6 | 7 | const root = document.querySelector('#root') 8 | 9 | ReactDOM.render(, root) 10 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-iife-json-paths-bg-only/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "iife-json-paths-bg-only", 3 | "description": "iife json paths bg only", 4 | "manifest_version": 2, 5 | "version": "1.0.0", 6 | "background": { 7 | "scripts": ["background.js"] 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-svelte-page/__image_snapshots__/vite-build-test-ts-crx-runs-from-build-output-1-snap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/e2e/mv3-vite-svelte-page/__image_snapshots__/vite-build-test-ts-crx-runs-from-build-output-1-snap.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-vue-content-script-hmr/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest_version": 3, 3 | "content_scripts": [ 4 | { 5 | "matches": ["https://example.com/*"], 6 | "js": ["src/main.js"] 7 | } 8 | ], 9 | "name": "Vite Vue Page", 10 | "version": "0.0.1" 11 | } 12 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-web-accessible-resources/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "content_scripts": [ 3 | { 4 | "js": ["src/content.ts"], 5 | "matches": ["https://example.com/*"] 6 | } 7 | ], 8 | "manifest_version": 3, 9 | "name": "test extension", 10 | "version": "0.1.0" 11 | } 12 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/vite-react-fast-refresh/build.test.ts: -------------------------------------------------------------------------------- 1 | import { build } from 'tests/runners' 2 | import { testOutput } from 'tests/testOutput' 3 | import { test } from 'vitest' 4 | 5 | test('build fs output', async () => { 6 | const result = await build(__dirname) 7 | await testOutput(result) 8 | }) 9 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/vite-react-fast-refresh/src/App.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | 3 | const App: React.FC = () => { 4 | return ( 5 |
6 |

Popup Page

7 |

If you are seeing this, React is working!

8 |
9 | ) 10 | } 11 | 12 | export default App 13 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/vite-react-fast-refresh/src/content.tsx: -------------------------------------------------------------------------------- 1 | import { render } from 'react-dom' 2 | import App from './App' 3 | 4 | console.log('content script') 5 | 6 | const root = document.createElement('div') 7 | root.id = 'root' 8 | document.body.append(root) 9 | 10 | render(, root) 11 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-no-scripts/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "no-scripts", 3 | "description": "no-scripts chrome extension", 4 | "manifest_version": 2, 5 | "version": "0.1.0", 6 | "browser_action": { 7 | "default_icon": { "16": "images/icon-main-16.png" } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-background-only/src/pages/popup/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom' 3 | import App from './App' 4 | 5 | console.log('popup script') 6 | 7 | const root = document.querySelector('#root') 8 | 9 | ReactDOM.render(, root) 10 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-basic-ts/src/App.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | 3 | const App: React.FC = () => { 4 | return ( 5 |
6 |

Popup Page

7 |

If you are seeing this, React is working!

8 |
9 | ) 10 | } 11 | 12 | export default App 13 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-svelte-page/__image_snapshots__/vite-serve-test-ts-crx-runs-from-server-output-1-snap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/e2e/mv3-vite-svelte-page/__image_snapshots__/vite-serve-test-ts-crx-runs-from-server-output-1-snap.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/content-script-module-api/build.test.ts: -------------------------------------------------------------------------------- 1 | import { build } from 'tests/runners' 2 | import { testOutput } from 'tests/testOutput' 3 | import { test } from 'vitest' 4 | 5 | test('build fs output', async () => { 6 | const result = await build(__dirname) 7 | await testOutput(result) 8 | }) 9 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/vite-self-directive-in-csp/src/App.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | 3 | const App: React.FC = () => { 4 | return ( 5 |
6 |

Popup Page

7 |

If you are seeing this, React is working!

8 |
9 | ) 10 | } 11 | 12 | export default App 13 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/with-web-accessible-html/build.test.ts: -------------------------------------------------------------------------------- 1 | import { build } from 'tests/runners' 2 | import { testOutput } from 'tests/testOutput' 3 | import { test } from 'vitest' 4 | 5 | test('build fs output', async () => { 6 | const result = await build(__dirname) 7 | await testOutput(result) 8 | }) 9 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-basic-js/src/pages/popup/App.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | 3 | const App = () => { 4 | return ( 5 |
6 |

Popup Page

7 |

If you are seeing this, React is working!

8 |
9 | ) 10 | } 11 | 12 | export default App 13 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-content-script-react-tsx/src/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "content_scripts": [ 3 | { 4 | "js": ["content/index.tsx"], 5 | "matches": ["https://*/*", "http://*/*"] 6 | } 7 | ], 8 | "browser_action": { "default_popup": "pages/popup/index.html" } 9 | } 10 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-content-script-react-tsx/src/pages/popup/index.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { render } from 'react-dom' 3 | import App from './App' 4 | 5 | console.log('popup script') 6 | 7 | const root = document.querySelector('#root') 8 | 9 | render(, root) 10 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-content-script-only/src/pages/popup/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom' 3 | import App from './App' 4 | 5 | console.log('popup script') 6 | 7 | const root = document.querySelector('#root') 8 | 9 | ReactDOM.render(, root) 10 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-content-script-react-tsx/src/pages/popup/index.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { render } from 'react-dom' 3 | import App from './App' 4 | 5 | console.log('popup script') 6 | 7 | const root = document.querySelector('#root') 8 | 9 | render(, root) 10 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-iife-json-paths-bg-only/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "background": { 3 | "service_worker": "service_worker.js" 4 | }, 5 | "description": "iife json paths bg only", 6 | "manifest_version": 3, 7 | "name": "iife-json-paths-bg-only", 8 | "version": "1.0.0" 9 | } 10 | -------------------------------------------------------------------------------- /packages/vite-plugin/src/node/path.ts: -------------------------------------------------------------------------------- 1 | import { posix } from 'path' 2 | 3 | export const { 4 | basename, 5 | dirname, 6 | extname, 7 | delimiter, 8 | format, 9 | isAbsolute, 10 | join, 11 | normalize, 12 | parse, 13 | relative, 14 | resolve, 15 | toNamespacedPath, 16 | sep, 17 | } = posix 18 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-react-page/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "background": { 3 | "service_worker": "src/background.ts" 4 | }, 5 | "description": "test extension", 6 | "manifest_version": 3, 7 | "name": "test extension", 8 | "options_page": "src/options.html", 9 | "version": "1.0.0" 10 | } 11 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/dynamic-script/src/declared-script.ts: -------------------------------------------------------------------------------- 1 | import fileName from './main-world?script&module' 2 | 3 | console.log('declared script') 4 | 5 | const script = document.createElement('script') 6 | script.src = chrome.runtime.getURL(fileName) 7 | script.type = 'module' 8 | document.head.prepend(script) 9 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/vite-content-script-css-imports-2/build.test.ts: -------------------------------------------------------------------------------- 1 | import { build } from 'tests/runners' 2 | import { testOutput } from 'tests/testOutput' 3 | import { test } from 'vitest' 4 | 5 | test('build fs output', async () => { 6 | const result = await build(__dirname) 7 | await testOutput(result) 8 | }) 9 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/vite-content-script-css-imports-3/build.test.ts: -------------------------------------------------------------------------------- 1 | import { build } from 'tests/runners' 2 | import { testOutput } from 'tests/testOutput' 3 | import { test } from 'vitest' 4 | 5 | test('build fs output', async () => { 6 | const result = await build(__dirname) 7 | await testOutput(result) 8 | }) 9 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/vite-content-script-css-imports/build.test.ts: -------------------------------------------------------------------------------- 1 | import { build } from 'tests/runners' 2 | import { testOutput } from 'tests/testOutput' 3 | import { test } from 'vitest' 4 | 5 | test('build fs output', async () => { 6 | const result = await build(__dirname) 7 | await testOutput(result) 8 | }) 9 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/vite-content-script-css-imports/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest_version": 3, 3 | "content_scripts": [ 4 | { 5 | "matches": ["http://*/*", "https://*/*"], 6 | "js": ["src/content.ts"] 7 | } 8 | ], 9 | "name": "test extension", 10 | "version": "0.1.0" 11 | } 12 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/vite-declared-script-resources/build.test.ts: -------------------------------------------------------------------------------- 1 | import { build } from 'tests/runners' 2 | import { testOutput } from 'tests/testOutput' 3 | import { test } from 'vitest' 4 | 5 | test('build fs output', async () => { 6 | const result = await build(__dirname) 7 | await testOutput(result) 8 | }) 9 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/vite-dynamic-script-resources/build.test.ts: -------------------------------------------------------------------------------- 1 | import { build } from 'tests/runners' 2 | import { testOutput } from 'tests/testOutput' 3 | import { test } from 'vitest' 4 | 5 | test('build fs output', async () => { 6 | const result = await build(__dirname) 7 | await testOutput(result) 8 | }) 9 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-content-script-react-js/src/pages/popup/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom' 3 | import App from './App' 4 | 5 | console.log('popup script') 6 | 7 | const root = document.querySelector('#root') 8 | 9 | ReactDOM.render(, root) 10 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-background-only/src/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "background": { 3 | "service_worker": "service_worker.js" 4 | }, 5 | "manifest_version": 3, 6 | "name": "mv3-background-only", 7 | "version": "1.0.0", 8 | "description": "Background Only MV3 Chrome Extension" 9 | } 10 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-background-only/src/pages/popup/App.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | 3 | const App = () => { 4 | return ( 5 |
6 |

Popup Page

7 |

If you are seeing this, React is working!

8 |
9 | ) 10 | } 11 | 12 | export default App 13 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-content-script-react-js/src/pages/popup/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom' 3 | import App from './App' 4 | 5 | console.log('popup script') 6 | 7 | const root = document.querySelector('#root') 8 | 9 | ReactDOM.render(, root) 10 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-invalid-manifest/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "background": { 3 | "service_worker": "service_worker.js" 4 | }, 5 | "description": "invalid-manifest chrome extension", 6 | "manifest_version": "b", 7 | "name": "invalid-manifest", 8 | "versionNumber": "0.1.0" 9 | } 10 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-no-scripts/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "action": { 3 | "default_icon": { 4 | "16": "images/icon-main-16.png" 5 | } 6 | }, 7 | "description": "no-scripts chrome extension", 8 | "manifest_version": 3, 9 | "name": "no-scripts", 10 | "version": "0.1.0" 11 | } 12 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-hmr-external-xhr/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "background": { 3 | "service_worker": "src/background.ts" 4 | }, 5 | "options_page": "src/options.html", 6 | "manifest_version": 3, 7 | "name": "test extension", 8 | "version": "1.0.0", 9 | "description": "test extension" 10 | } 11 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-react-page-hmr/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "background": { 3 | "service_worker": "src/background.ts" 4 | }, 5 | "description": "test extension", 6 | "manifest_version": 3, 7 | "name": "test extension", 8 | "options_page": "src/options.html", 9 | "version": "1.0.0" 10 | } 11 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/vite-dynamic-script-resources-minify/build.test.ts: -------------------------------------------------------------------------------- 1 | import { build } from 'tests/runners' 2 | import { testOutput } from 'tests/testOutput' 3 | import { test } from 'vitest' 4 | 5 | test('build fs output', async () => { 6 | const result = await build(__dirname) 7 | await testOutput(result) 8 | }) 9 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/vite-self-directive-in-csp/build.test.ts: -------------------------------------------------------------------------------- 1 | import { build } from 'tests/runners' 2 | import { testOutput } from 'tests/testOutput' 3 | import { test } from 'vitest' 4 | 5 | test("works with 'self' directive", async () => { 6 | const result = await build(__dirname) 7 | await testOutput(result) 8 | }) 9 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-basic-ts/src/pages/popup/App.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | 3 | const App: React.FC = () => { 4 | return ( 5 |
6 |

Popup Page

7 |

If you are seeing this, React is working!

8 |
9 | ) 10 | } 11 | 12 | export default App 13 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-content-script-only/src/pages/popup/App.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | 3 | const App = () => { 4 | return ( 5 |
6 |

Popup Page

7 |

If you are seeing this, React is working!

8 |
9 | ) 10 | } 11 | 12 | export default App 13 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-hmr-background-define/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest_version": 3, 3 | "description": "test extension", 4 | "name": "test extension", 5 | "options_page": "src/options.html", 6 | "version": "1.0.0", 7 | "background": { 8 | "service_worker": "src/background.ts" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-svelte-content-script/__image_snapshots__/vite-build-test-ts-crx-runs-from-build-output-1-snap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/e2e/mv3-vite-svelte-content-script/__image_snapshots__/vite-build-test-ts-crx-runs-from-build-output-1-snap.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-svelte-page/src/content.js: -------------------------------------------------------------------------------- 1 | import App from './App.svelte' 2 | 3 | const html = `
` 4 | const target = new DOMParser().parseFromString(html).body.firstElementChild 5 | document.body.append(target) 6 | 7 | const app = new App({ target }) 8 | 9 | export default app 10 | -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["config:base"], 3 | "timezone": "America/Chicago", 4 | "schedule": ["every weekend"], 5 | "packageRules": [ 6 | { 7 | "matchPackageNames": ["@types/"], 8 | "groupName": "types" 9 | }, 10 | { "matchPackageNames": ["eslint"], "groupName": "eslint" } 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-content-script-react-js/src/pages/popup/App.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | 3 | const App = () => { 4 | return ( 5 |
6 |

Popup Page

7 |

If you are seeing this, React is working!

8 |
9 | ) 10 | } 11 | 12 | export default App 13 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-content-script-react-js/src/pages/popup/App.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | 3 | const App = () => { 4 | return ( 5 |
6 |

Popup Page

7 |

If you are seeing this, React is working!

8 |
9 | ) 10 | } 11 | 12 | export default App 13 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-manifest-ts-single-input/src/App.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | 3 | const App: React.FC = () => { 4 | return ( 5 |
6 |

Popup Page

7 |

If you are seeing this, React is working!

8 |
9 | ) 10 | } 11 | 12 | export default App 13 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-react-sandbox/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "background": { 3 | "service_worker": "src/background.ts" 4 | }, 5 | "description": "test extension", 6 | "manifest_version": 3, 7 | "name": "test extension", 8 | "sandbox": { "pages": ["src/sandbox.html"] }, 9 | "version": "1.0.0" 10 | } 11 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-svelte-content-script/__image_snapshots__/vite-serve-test-ts-crx-runs-from-server-output-1-snap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZainChen/chrome-extension-tools/main/packages/vite-plugin/tests/e2e/mv3-vite-svelte-content-script/__image_snapshots__/vite-serve-test-ts-crx-runs-from-server-output-1-snap.png -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-svelte-page-hmr/src1/content.js: -------------------------------------------------------------------------------- 1 | import App from './App.svelte' 2 | 3 | const html = `
` 4 | const target = new DOMParser().parseFromString(html).body.firstElementChild 5 | document.body.append(target) 6 | 7 | const app = new App({ target }) 8 | 9 | export default app 10 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/vite-declared-script-resources/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "content_scripts": [ 3 | { 4 | "js": ["src/content.ts"], 5 | "matches": ["https://google.com/search*", "*://a.com/*"] 6 | } 7 | ], 8 | "manifest_version": 3, 9 | "name": "test extension", 10 | "version": "0.1.0" 11 | } 12 | -------------------------------------------------------------------------------- /.changeset/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://unpkg.com/@changesets/config@2.0.0/schema.json", 3 | "changelog": "@changesets/cli/changelog", 4 | "commit": false, 5 | "fixed": [], 6 | "linked": [], 7 | "access": "public", 8 | "baseBranch": "main", 9 | "updateInternalDependencies": "patch", 10 | "ignore": [] 11 | } 12 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-dynamic-content-script-hmr/src2/style.css: -------------------------------------------------------------------------------- 1 | #app { 2 | font-family: Avenir, Helvetica, Arial, sans-serif; 3 | -webkit-font-smoothing: antialiased; 4 | -moz-osx-font-smoothing: grayscale; 5 | text-align: center; 6 | color: #2c3e50; 7 | margin-top: 60px; 8 | background-color: red; 9 | } 10 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-vanilla-content-script-hmr/src2/style.css: -------------------------------------------------------------------------------- 1 | #app { 2 | font-family: Avenir, Helvetica, Arial, sans-serif; 3 | -webkit-font-smoothing: antialiased; 4 | -moz-osx-font-smoothing: grayscale; 5 | text-align: center; 6 | color: #2c3e50; 7 | margin-top: 60px; 8 | background-color: red; 9 | } 10 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-vanilla-content-script-seq-hmr/src2/root.ts: -------------------------------------------------------------------------------- 1 | import { a } from './a' 2 | 3 | console.log('updated root') 4 | 5 | const root = new DOMParser().parseFromString( 6 | `
${a}
`, 7 | 'text/html', 8 | ).body.firstElementChild as HTMLDivElement 9 | 10 | document.body.append(root) 11 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-content-script-react-tsx/src/pages/popup/App.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | 3 | const App: React.FC = () => { 4 | return ( 5 |
6 |

Popup Page

7 |

If you are seeing this, React is working!

8 |
9 | ) 10 | } 11 | 12 | export default App 13 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-content-script-react-tsx/src/pages/popup/App.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | 3 | const App: React.FC = () => { 4 | return ( 5 |
6 |

Popup Page

7 |

If you are seeing this, React is working!

8 |
9 | ) 10 | } 11 | 12 | export default App 13 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-react-new-tab/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "background": { 3 | "service_worker": "src/background.ts" 4 | }, 5 | "description": "test extension", 6 | "manifest_version": 3, 7 | "name": "test extension", 8 | "chrome_url_overrides": { "newtab": "src/newtab.html" }, 9 | "version": "1.0.0" 10 | } 11 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-vue-content-script/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "test extension", 3 | "manifest_version": 3, 4 | "name": "test extension", 5 | "content_scripts": [ 6 | { 7 | "matches": ["https://example.com/*"], 8 | "js": ["src/main.js"] 9 | } 10 | ], 11 | "version": "1.0.0" 12 | } 13 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/out/vite-svelte/src/content.js: -------------------------------------------------------------------------------- 1 | import App from './App.svelte' 2 | 3 | const html = `
` 4 | const target = new DOMParser().parseFromString(html, 'text/html').body 5 | .firstElementChild 6 | document.body.append(target) 7 | 8 | const app = new App({ target }) 9 | 10 | export default app 11 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-external-dependency/background/background.js: -------------------------------------------------------------------------------- 1 | import { x } from '../shared/imported' 2 | import path from 'path' 3 | 4 | console.log(x) 5 | 6 | console.log('background.js') 7 | 8 | chrome.storage.local.clear() 9 | 10 | const joined = path.join('a', 'b') 11 | 12 | console.log('joined', joined) 13 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-external-dependency/service_worker.js: -------------------------------------------------------------------------------- 1 | import { x } from '../shared/imported' 2 | import path from 'path' 3 | 4 | console.log(x) 5 | 6 | console.log('service_worker.js') 7 | 8 | chrome.storage.local.clear() 9 | 10 | const joined = path.join('a', 'b') 11 | 12 | console.log('joined', joined) 13 | -------------------------------------------------------------------------------- /packages/rollup-plugin/src/browser-polyfill/browser/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | env: { 3 | browser: true, 4 | webextensions: true, 5 | node: false, 6 | }, 7 | parserOptions: { 8 | ecmaVersion: 2018, 9 | sourceType: 'module', 10 | project: './tsconfig.json', 11 | tsconfigRootDir: __dirname, 12 | }, 13 | } 14 | -------------------------------------------------------------------------------- /packages/rollup-plugin/src/manifest-input/browser/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | env: { 3 | browser: true, 4 | webextensions: true, 5 | node: false, 6 | }, 7 | parserOptions: { 8 | ecmaVersion: 2018, 9 | sourceType: 'module', 10 | project: './tsconfig.json', 11 | tsconfigRootDir: __dirname, 12 | }, 13 | } 14 | -------------------------------------------------------------------------------- /packages/rollup-plugin/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfigs/tsconfig-base.json", 3 | "include": [ 4 | "src/**/*", 5 | "__fixtures__/**/*", 6 | "__tests__/**/*", 7 | "jest.setup.ts", 8 | "examples/**/*.ts" 9 | ], 10 | "exclude": ["src/manifest-input/browser"], 11 | "typeAcquisition": { "enable": true } 12 | } 13 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-crx-iframe/src/background.ts: -------------------------------------------------------------------------------- 1 | // This fixes `self`'s type. 2 | declare const self: ServiceWorkerGlobalScope 3 | export {} 4 | 5 | chrome.runtime.onInstalled.addListener(async () => { 6 | await self.skipWaiting() 7 | await new Promise((r) => setTimeout(r, 100)) 8 | chrome.runtime.openOptionsPage() 9 | }) 10 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-react-content-script/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "test extension", 3 | "manifest_version": 3, 4 | "name": "test extension", 5 | "content_scripts": [ 6 | { 7 | "matches": ["https://example.com/*"], 8 | "js": ["src/main.jsx"] 9 | } 10 | ], 11 | "version": "1.0.0" 12 | } 13 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-react-page/src/main.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom' 3 | import './index.css' 4 | import App from './App' 5 | 6 | const root = document.getElementById('root') 7 | 8 | ReactDOM.render( 9 | 10 | 11 | , 12 | root, 13 | ) 14 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-content-script-react-js/src/content1/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { render } from 'react-dom' 3 | 4 | console.log('content script') 5 | 6 | const root = document.createElement('div') 7 | root.id = 'root' 8 | document.body.append(root) 9 | 10 | render(

Hello World!

, root) 11 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-content-script-react-js/src/content2/index.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { render } from 'react-dom' 3 | 4 | console.log('content script') 5 | 6 | const root = document.createElement('div') 7 | root.id = 'root' 8 | document.body.append(root) 9 | 10 | render(

Hello World!

, root) 11 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv2-content-script-react-tsx/src/content/index.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { render } from 'react-dom' 3 | 4 | console.log('content script') 5 | 6 | const root = document.createElement('div') 7 | root.id = 'root' 8 | document.body.append(root) 9 | 10 | render(

Hello World!

, root) 11 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-content-script-react-js/src/content1/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { render } from 'react-dom' 3 | 4 | console.log('content script') 5 | 6 | const root = document.createElement('div') 7 | root.id = 'root' 8 | document.body.append(root) 9 | 10 | render(

Hello World!

, root) 11 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-content-script-react-js/src/content2/index.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { render } from 'react-dom' 3 | 4 | console.log('content script') 5 | 6 | const root = document.createElement('div') 7 | root.id = 'root' 8 | document.body.append(root) 9 | 10 | render(

Hello World!

, root) 11 | -------------------------------------------------------------------------------- /packages/rollup-plugin/__fixtures__/extensions/mv3-content-script-react-tsx/src/content/index.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { render } from 'react-dom' 3 | 4 | console.log('content script') 5 | 6 | const root = document.createElement('div') 7 | root.id = 'root' 8 | document.body.append(root) 9 | 10 | render(

Hello World!

, root) 11 | -------------------------------------------------------------------------------- /packages/rollup-plugin/src/validate-names/__tests__/validate__init.test.ts: -------------------------------------------------------------------------------- 1 | import { validateNames } from '../index' 2 | 3 | test('returns object with name & generatedBundle', () => { 4 | const plugin = validateNames() 5 | 6 | expect(plugin).toEqual({ 7 | name: 'validate-names', 8 | generateBundle: expect.any(Function), 9 | }) 10 | }) 11 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-react-content-script-hmr/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "test extension", 3 | "manifest_version": 3, 4 | "name": "test extension", 5 | "content_scripts": [ 6 | { 7 | "matches": ["https://example.com/*"], 8 | "js": ["src/main.jsx"] 9 | } 10 | ], 11 | "version": "1.0.0" 12 | } 13 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-react-new-tab/src/main.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom' 3 | import './index.css' 4 | import App from './App' 5 | 6 | const root = document.getElementById('root') 7 | 8 | ReactDOM.render( 9 | 10 | 11 | , 12 | root, 13 | ) 14 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-react-page-hmr/src1/main.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom' 3 | import './index.css' 4 | import App from './App' 5 | 6 | const root = document.getElementById('root') 7 | 8 | ReactDOM.render( 9 | 10 | 11 | , 12 | root, 13 | ) 14 | -------------------------------------------------------------------------------- /packages/vite-plugin/tests/e2e/mv3-vite-react-sandbox/src/main.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom' 3 | import './index.css' 4 | import App from './App' 5 | 6 | const root = document.getElementById('root') 7 | 8 | ReactDOM.render( 9 | 10 | 11 | , 12 | root, 13 | ) 14 | --------------------------------------------------------------------------------