From ec7263e7decfed4d9ba6cac46d92b4ee9ae90094 Mon Sep 17 00:00:00 2001 From: Aaron Date: Fri, 3 May 2024 17:16:33 -0500 Subject: [PATCH] chore: Refactor repo to a standard monorepo (#646) --- .github/workflows/release.yml | 3 + .github/workflows/validate.yml | 13 +- .npmrc | 1 - demo/package.json | 30 -- docs/.vitepress/plugins/generate-cli-docs.ts | 10 +- docs/guide/manifest.md | 2 +- docs/typedoc.json | 11 +- package.json | 151 +----- packages/wxt-demo/package.json | 31 ++ .../wxt-demo}/src/common/style.css | 0 .../entrypoints/__tests__/background.test.ts | 0 .../wxt-demo}/src/entrypoints/background.ts | 0 .../wxt-demo}/src/entrypoints/example-2.scss | 0 .../src/entrypoints/example-tsx.content.tsx | 0 .../entrypoints/example.sandbox/index.html | 0 .../src/entrypoints/iframe-src/index.html | 0 .../src/entrypoints/iframe-src/main.ts | 0 .../src/entrypoints/iframe.content.ts | 0 .../entrypoints/injected.content/index.css | 0 .../entrypoints/location-change.content.ts | 0 .../src/entrypoints/main-world.content.ts | 0 .../src/entrypoints/options/index.html | 0 .../wxt-demo}/src/entrypoints/options/main.ts | 0 .../src/entrypoints/options/style.css | 0 .../wxt-demo}/src/entrypoints/popup.html | 0 .../wxt-demo}/src/entrypoints/sandbox.html | 0 .../wxt-demo}/src/entrypoints/sidepanel.html | 0 .../src/entrypoints/ui.content/index.ts | 0 .../src/entrypoints/ui.content/style.css | 0 .../wxt-demo}/src/entrypoints/unlisted.ts | 0 .../src/public/_locales/en/messages.json | 0 .../wxt-demo}/src/public/icon/128.png | Bin .../wxt-demo}/src/public/icon/16.png | Bin .../wxt-demo}/src/public/icon/32.png | Bin .../wxt-demo}/src/public/icon/48.png | Bin .../wxt-demo}/src/public/icon/96.png | Bin .../wxt-demo}/src/utils/logger.ts | 0 {demo => packages/wxt-demo}/tsconfig.json | 2 +- {demo => packages/wxt-demo}/vitest.config.ts | 4 +- {demo => packages/wxt-demo}/wxt.config.ts | 0 CHANGELOG.md => packages/wxt/CHANGELOG.md | 0 README.md => packages/wxt/README.md | 0 .../wxt/bin}/wxt-publish-extension.cjs | 0 {bin => packages/wxt/bin}/wxt.mjs | 0 .../wxt/e2e}/tests/analysis.test.ts | 0 .../wxt/e2e}/tests/auto-imports.test.ts | 0 {e2e => packages/wxt/e2e}/tests/hooks.test.ts | 0 {e2e => packages/wxt/e2e}/tests/init.test.ts | 5 +- .../wxt/e2e}/tests/manifest-content.test.ts | 0 .../wxt/e2e}/tests/output-structure.test.ts | 0 {e2e => packages/wxt/e2e}/tests/react.test.ts | 0 .../wxt/e2e}/tests/remote-code.test.ts | 0 .../wxt/e2e}/tests/typescript-project.test.ts | 0 .../wxt/e2e}/tests/user-config.test.ts | 2 +- {e2e => packages/wxt/e2e}/tests/zip.test.ts | 0 {e2e => packages/wxt/e2e}/utils.ts | 20 +- packages/wxt/package.json | 151 ++++++ {scripts => packages/wxt/scripts}/build.ts | 0 .../wxt/src}/__tests__/storage.test.ts | 0 {src => packages/wxt/src}/browser.ts | 0 .../wxt/src}/cli/__tests__/index.test.ts | 0 {src => packages/wxt/src}/cli/cli-utils.ts | 0 {src => packages/wxt/src}/cli/commands.ts | 0 {src => packages/wxt/src}/cli/index.ts | 0 .../content-scripts/content-script-context.ts | 0 .../client/content-scripts/custom-events.ts | 0 .../wxt/src}/client/content-scripts/index.ts | 0 .../content-scripts/location-watcher.ts | 0 .../ui/__tests__/index.test.ts | 0 .../src}/client/content-scripts/ui/index.ts | 0 .../src}/client/content-scripts/ui/types.ts | 0 {src => packages/wxt/src}/client/index.ts | 0 {src => packages/wxt/src}/core/build.ts | 0 .../wxt/src}/core/builders/vite/index.ts | 0 .../__tests__/devHtmlPrerender.test.ts | 0 .../builders/vite/plugins/bundleAnalysis.ts | 1 - .../builders/vite/plugins/cssEntrypoints.ts | 0 .../builders/vite/plugins/defineImportMeta.ts | 0 .../builders/vite/plugins/devHtmlPrerender.ts | 0 .../builders/vite/plugins/devServerGlobals.ts | 0 .../core/builders/vite/plugins/download.ts | 0 .../vite/plugins/entrypointGroupGlobals.ts | 0 .../vite/plugins/excludeBrowserPolyfill.ts | 0 .../core/builders/vite/plugins/globals.ts | 0 .../src}/core/builders/vite/plugins/index.ts | 0 .../builders/vite/plugins/multipageMove.ts | 0 .../builders/vite/plugins/noopBackground.ts | 0 .../vite/plugins/resolveVirtualModules.ts | 0 .../builders/vite/plugins/tsconfigPaths.ts | 0 .../core/builders/vite/plugins/unimport.ts | 0 .../vite/plugins/webextensionPolyfillMock.ts | 0 {src => packages/wxt/src}/core/clean.ts | 0 .../wxt/src}/core/create-server.ts | 0 .../wxt/src}/core/define-config.ts | 0 .../wxt/src}/core/define-runner-config.ts | 0 {src => packages/wxt/src}/core/index.ts | 0 {src => packages/wxt/src}/core/initialize.ts | 0 .../package-managers/__tests__/bun.test.ts | 0 .../__tests__/fixtures/bun-project/bun.lockb | Bin .../fixtures/bun-project/package.json | 0 .../fixtures/npm-project/package-lock.json | 0 .../fixtures/npm-project/package.json | 0 .../fixtures/pnpm-project/package.json | 0 .../fixtures/pnpm-project/pnpm-lock.yaml | 0 .../fixtures/yarn-project/package.json | 0 .../__tests__/fixtures/yarn-project/yarn.lock | 0 .../package-managers/__tests__/npm.test.ts | 0 .../package-managers/__tests__/pnpm.test.ts | 0 .../package-managers/__tests__/yarn.test.ts | 0 .../wxt/src}/core/package-managers/bun.ts | 0 .../wxt/src}/core/package-managers/index.ts | 0 .../wxt/src}/core/package-managers/npm.ts | 0 .../wxt/src}/core/package-managers/pnpm.ts | 0 .../wxt/src}/core/package-managers/types.ts | 0 .../wxt/src}/core/package-managers/yarn.ts | 0 {src => packages/wxt/src}/core/prepare.ts | 0 .../src}/core/runners/__tests__/index.test.ts | 0 .../wxt/src}/core/runners/index.ts | 0 .../wxt/src}/core/runners/manual.ts | 0 .../wxt/src}/core/runners/safari.ts | 0 .../wxt/src}/core/runners/web-ext.ts | 0 {src => packages/wxt/src}/core/runners/wsl.ts | 0 .../src}/core/utils/__tests__/arrays.test.ts | 0 .../utils/__tests__/content-scripts.test.ts | 0 .../__tests__/content-security-policy.test.ts | 0 .../core/utils/__tests__/entrypoints.test.ts | 0 .../core/utils/__tests__/manifest.test.ts | 0 .../src}/core/utils/__tests__/package.test.ts | 4 +- .../src}/core/utils/__tests__/paths.test.ts | 0 .../src}/core/utils/__tests__/strings.test.ts | 0 .../core/utils/__tests__/validation.test.ts | 0 .../utils/__tests__/virtual-modules.test.ts | 0 .../wxt/src}/core/utils/arrays.ts | 0 .../__tests__/detect-dev-changes.test.ts | 0 .../__tests__/find-entrypoints.test.ts | 0 .../__tests__/group-entrypoints.test.ts | 0 .../__tests__/import-entrypoint.test.ts | 12 +- .../__tests__/test-entrypoints/background.ts | 0 .../__tests__/test-entrypoints/content.ts | 0 .../test-entrypoints/imported-option.ts | 0 .../test-entrypoints/no-default-export.ts | 0 .../__tests__/test-entrypoints/react.tsx | 0 .../__tests__/test-entrypoints/unlisted.ts | 0 .../__tests__/test-entrypoints/with-named.ts | 0 .../core/utils/building/build-entrypoints.ts | 0 .../core/utils/building/detect-dev-changes.ts | 0 .../core/utils/building/find-entrypoints.ts | 0 .../core/utils/building/generate-wxt-dir.ts | 0 .../core/utils/building/group-entrypoints.ts | 0 .../core/utils/building/import-entrypoint.ts | 0 .../wxt/src}/core/utils/building/index.ts | 0 .../core/utils/building/internal-build.ts | 0 .../wxt/src}/core/utils/building/rebuild.ts | 0 .../core/utils/building/resolve-config.ts | 0 {src => packages/wxt/src}/core/utils/cache.ts | 0 {src => packages/wxt/src}/core/utils/cli.ts | 0 .../wxt/src}/core/utils/constants.ts | 0 .../wxt/src}/core/utils/content-scripts.ts | 0 .../core/utils/content-security-policy.ts | 0 .../wxt/src}/core/utils/entrypoints.ts | 0 {src => packages/wxt/src}/core/utils/fs.ts | 0 .../wxt/src}/core/utils/globals.ts | 0 {src => packages/wxt/src}/core/utils/i18n.ts | 0 .../wxt/src}/core/utils/log/index.ts | 0 .../src}/core/utils/log/printBuildSummary.ts | 0 .../wxt/src}/core/utils/log/printFileList.ts | 0 .../wxt/src}/core/utils/log/printHeader.ts | 0 .../wxt/src}/core/utils/log/printTable.ts | 0 .../wxt/src}/core/utils/manifest.ts | 0 .../wxt/src}/core/utils/network.ts | 0 .../wxt/src}/core/utils/package.ts | 0 {src => packages/wxt/src}/core/utils/paths.ts | 0 .../wxt/src}/core/utils/strings.ts | 0 .../src}/core/utils/testing/fake-objects.ts | 0 {src => packages/wxt/src}/core/utils/time.ts | 0 {src => packages/wxt/src}/core/utils/types.ts | 0 .../wxt/src}/core/utils/validation.ts | 0 .../wxt/src}/core/utils/virtual-modules.ts | 0 {src => packages/wxt/src}/core/utils/wsl.ts | 0 {src => packages/wxt/src}/core/wxt.ts | 0 {src => packages/wxt/src}/core/zip.ts | 0 {src => packages/wxt/src}/index.ts | 0 .../__tests__/define-background.test.ts | 0 .../__tests__/define-content-script.test.ts | 0 .../__tests__/define-unlisted-script.test.ts | 0 .../wxt/src}/sandbox/define-background.ts | 0 .../wxt/src}/sandbox/define-content-script.ts | 0 .../src}/sandbox/define-unlisted-script.ts | 0 {src => packages/wxt/src}/sandbox/index.ts | 0 .../wxt/src}/sandbox/utils/logger.ts | 0 {src => packages/wxt/src}/storage.ts | 0 .../wxt/src}/testing/fake-browser.ts | 0 {src => packages/wxt/src}/testing/index.ts | 0 .../wxt/src}/testing/wxt-vitest-plugin.ts | 0 {src => packages/wxt/src}/types/globals.d.ts | 0 {src => packages/wxt/src}/types/index.ts | 0 {src => packages/wxt/src}/types/modules.d.ts | 0 .../wxt/src}/types/project-types.d.ts | 0 {src => packages/wxt/src}/version.ts | 0 {src => packages/wxt/src}/virtual/README.md | 0 .../wxt/src}/virtual/background-entrypoint.ts | 0 ...ontent-script-isolated-world-entrypoint.ts | 0 .../content-script-main-world-entrypoint.ts | 0 .../wxt/src}/virtual/mock-browser.ts | 0 .../wxt/src}/virtual/reload-html.ts | 0 .../wxt/src}/virtual/tsconfig.json | 2 +- .../virtual/unlisted-script-entrypoint.ts | 0 .../utils/keep-service-worker-alive.ts | 0 .../virtual/utils/reload-content-scripts.ts | 0 .../src}/virtual/utils/setup-web-socket.ts | 0 .../src}/virtual/virtual-module-globals.d.ts | 0 .../wxt/src}/vite-builder-env.d.ts | 0 packages/wxt/tsconfig.json | 9 + packages/wxt/typedoc.json | 10 + packages/wxt/vitest.config.ts | 27 + .../wxt/vitest.setup.ts | 0 pnpm-lock.yaml | 472 ++++++++---------- pnpm-workspace.yaml | 2 +- scripts/stub.ts | 7 + tsconfig.base.json | 1 + tsconfig.json | 8 +- vitest.workspace.json | 1 + vitest.workspace.ts | 38 -- 223 files changed, 491 insertions(+), 539 deletions(-) delete mode 100644 .npmrc delete mode 100644 demo/package.json create mode 100644 packages/wxt-demo/package.json rename {demo => packages/wxt-demo}/src/common/style.css (100%) rename {demo => packages/wxt-demo}/src/entrypoints/__tests__/background.test.ts (100%) rename {demo => packages/wxt-demo}/src/entrypoints/background.ts (100%) rename {demo => packages/wxt-demo}/src/entrypoints/example-2.scss (100%) rename {demo => packages/wxt-demo}/src/entrypoints/example-tsx.content.tsx (100%) rename {demo => packages/wxt-demo}/src/entrypoints/example.sandbox/index.html (100%) rename {demo => packages/wxt-demo}/src/entrypoints/iframe-src/index.html (100%) rename {demo => packages/wxt-demo}/src/entrypoints/iframe-src/main.ts (100%) rename {demo => packages/wxt-demo}/src/entrypoints/iframe.content.ts (100%) rename {demo => packages/wxt-demo}/src/entrypoints/injected.content/index.css (100%) rename {demo => packages/wxt-demo}/src/entrypoints/location-change.content.ts (100%) rename {demo => packages/wxt-demo}/src/entrypoints/main-world.content.ts (100%) rename {demo => packages/wxt-demo}/src/entrypoints/options/index.html (100%) rename {demo => packages/wxt-demo}/src/entrypoints/options/main.ts (100%) rename {demo => packages/wxt-demo}/src/entrypoints/options/style.css (100%) rename {demo => packages/wxt-demo}/src/entrypoints/popup.html (100%) rename {demo => packages/wxt-demo}/src/entrypoints/sandbox.html (100%) rename {demo => packages/wxt-demo}/src/entrypoints/sidepanel.html (100%) rename {demo => packages/wxt-demo}/src/entrypoints/ui.content/index.ts (100%) rename {demo => packages/wxt-demo}/src/entrypoints/ui.content/style.css (100%) rename {demo => packages/wxt-demo}/src/entrypoints/unlisted.ts (100%) rename {demo => packages/wxt-demo}/src/public/_locales/en/messages.json (100%) rename {demo => packages/wxt-demo}/src/public/icon/128.png (100%) rename {demo => packages/wxt-demo}/src/public/icon/16.png (100%) rename {demo => packages/wxt-demo}/src/public/icon/32.png (100%) rename {demo => packages/wxt-demo}/src/public/icon/48.png (100%) rename {demo => packages/wxt-demo}/src/public/icon/96.png (100%) rename {demo => packages/wxt-demo}/src/utils/logger.ts (100%) rename {demo => packages/wxt-demo}/tsconfig.json (58%) rename {demo => packages/wxt-demo}/vitest.config.ts (62%) rename {demo => packages/wxt-demo}/wxt.config.ts (100%) rename CHANGELOG.md => packages/wxt/CHANGELOG.md (100%) rename README.md => packages/wxt/README.md (100%) rename {bin => packages/wxt/bin}/wxt-publish-extension.cjs (100%) rename {bin => packages/wxt/bin}/wxt.mjs (100%) rename {e2e => packages/wxt/e2e}/tests/analysis.test.ts (100%) rename {e2e => packages/wxt/e2e}/tests/auto-imports.test.ts (100%) rename {e2e => packages/wxt/e2e}/tests/hooks.test.ts (100%) rename {e2e => packages/wxt/e2e}/tests/init.test.ts (91%) rename {e2e => packages/wxt/e2e}/tests/manifest-content.test.ts (100%) rename {e2e => packages/wxt/e2e}/tests/output-structure.test.ts (100%) rename {e2e => packages/wxt/e2e}/tests/react.test.ts (100%) rename {e2e => packages/wxt/e2e}/tests/remote-code.test.ts (100%) rename {e2e => packages/wxt/e2e}/tests/typescript-project.test.ts (100%) rename {e2e => packages/wxt/e2e}/tests/user-config.test.ts (99%) rename {e2e => packages/wxt/e2e}/tests/zip.test.ts (100%) rename {e2e => packages/wxt/e2e}/utils.ts (90%) create mode 100644 packages/wxt/package.json rename {scripts => packages/wxt/scripts}/build.ts (100%) rename {src => packages/wxt/src}/__tests__/storage.test.ts (100%) rename {src => packages/wxt/src}/browser.ts (100%) rename {src => packages/wxt/src}/cli/__tests__/index.test.ts (100%) rename {src => packages/wxt/src}/cli/cli-utils.ts (100%) rename {src => packages/wxt/src}/cli/commands.ts (100%) rename {src => packages/wxt/src}/cli/index.ts (100%) rename {src => packages/wxt/src}/client/content-scripts/content-script-context.ts (100%) rename {src => packages/wxt/src}/client/content-scripts/custom-events.ts (100%) rename {src => packages/wxt/src}/client/content-scripts/index.ts (100%) rename {src => packages/wxt/src}/client/content-scripts/location-watcher.ts (100%) rename {src => packages/wxt/src}/client/content-scripts/ui/__tests__/index.test.ts (100%) rename {src => packages/wxt/src}/client/content-scripts/ui/index.ts (100%) rename {src => packages/wxt/src}/client/content-scripts/ui/types.ts (100%) rename {src => packages/wxt/src}/client/index.ts (100%) rename {src => packages/wxt/src}/core/build.ts (100%) rename {src => packages/wxt/src}/core/builders/vite/index.ts (100%) rename {src => packages/wxt/src}/core/builders/vite/plugins/__tests__/devHtmlPrerender.test.ts (100%) rename {src => packages/wxt/src}/core/builders/vite/plugins/bundleAnalysis.ts (89%) rename {src => packages/wxt/src}/core/builders/vite/plugins/cssEntrypoints.ts (100%) rename {src => packages/wxt/src}/core/builders/vite/plugins/defineImportMeta.ts (100%) rename {src => packages/wxt/src}/core/builders/vite/plugins/devHtmlPrerender.ts (100%) rename {src => packages/wxt/src}/core/builders/vite/plugins/devServerGlobals.ts (100%) rename {src => packages/wxt/src}/core/builders/vite/plugins/download.ts (100%) rename {src => packages/wxt/src}/core/builders/vite/plugins/entrypointGroupGlobals.ts (100%) rename {src => packages/wxt/src}/core/builders/vite/plugins/excludeBrowserPolyfill.ts (100%) rename {src => packages/wxt/src}/core/builders/vite/plugins/globals.ts (100%) rename {src => packages/wxt/src}/core/builders/vite/plugins/index.ts (100%) rename {src => packages/wxt/src}/core/builders/vite/plugins/multipageMove.ts (100%) rename {src => packages/wxt/src}/core/builders/vite/plugins/noopBackground.ts (100%) rename {src => packages/wxt/src}/core/builders/vite/plugins/resolveVirtualModules.ts (100%) rename {src => packages/wxt/src}/core/builders/vite/plugins/tsconfigPaths.ts (100%) rename {src => packages/wxt/src}/core/builders/vite/plugins/unimport.ts (100%) rename {src => packages/wxt/src}/core/builders/vite/plugins/webextensionPolyfillMock.ts (100%) rename {src => packages/wxt/src}/core/clean.ts (100%) rename {src => packages/wxt/src}/core/create-server.ts (100%) rename {src => packages/wxt/src}/core/define-config.ts (100%) rename {src => packages/wxt/src}/core/define-runner-config.ts (100%) rename {src => packages/wxt/src}/core/index.ts (100%) rename {src => packages/wxt/src}/core/initialize.ts (100%) rename {src => packages/wxt/src}/core/package-managers/__tests__/bun.test.ts (100%) rename {src => packages/wxt/src}/core/package-managers/__tests__/fixtures/bun-project/bun.lockb (100%) rename {src => packages/wxt/src}/core/package-managers/__tests__/fixtures/bun-project/package.json (100%) rename {src => packages/wxt/src}/core/package-managers/__tests__/fixtures/npm-project/package-lock.json (100%) rename {src => packages/wxt/src}/core/package-managers/__tests__/fixtures/npm-project/package.json (100%) rename {src => packages/wxt/src}/core/package-managers/__tests__/fixtures/pnpm-project/package.json (100%) rename {src => packages/wxt/src}/core/package-managers/__tests__/fixtures/pnpm-project/pnpm-lock.yaml (100%) rename {src => packages/wxt/src}/core/package-managers/__tests__/fixtures/yarn-project/package.json (100%) rename {src => packages/wxt/src}/core/package-managers/__tests__/fixtures/yarn-project/yarn.lock (100%) rename {src => packages/wxt/src}/core/package-managers/__tests__/npm.test.ts (100%) rename {src => packages/wxt/src}/core/package-managers/__tests__/pnpm.test.ts (100%) rename {src => packages/wxt/src}/core/package-managers/__tests__/yarn.test.ts (100%) rename {src => packages/wxt/src}/core/package-managers/bun.ts (100%) rename {src => packages/wxt/src}/core/package-managers/index.ts (100%) rename {src => packages/wxt/src}/core/package-managers/npm.ts (100%) rename {src => packages/wxt/src}/core/package-managers/pnpm.ts (100%) rename {src => packages/wxt/src}/core/package-managers/types.ts (100%) rename {src => packages/wxt/src}/core/package-managers/yarn.ts (100%) rename {src => packages/wxt/src}/core/prepare.ts (100%) rename {src => packages/wxt/src}/core/runners/__tests__/index.test.ts (100%) rename {src => packages/wxt/src}/core/runners/index.ts (100%) rename {src => packages/wxt/src}/core/runners/manual.ts (100%) rename {src => packages/wxt/src}/core/runners/safari.ts (100%) rename {src => packages/wxt/src}/core/runners/web-ext.ts (100%) rename {src => packages/wxt/src}/core/runners/wsl.ts (100%) rename {src => packages/wxt/src}/core/utils/__tests__/arrays.test.ts (100%) rename {src => packages/wxt/src}/core/utils/__tests__/content-scripts.test.ts (100%) rename {src => packages/wxt/src}/core/utils/__tests__/content-security-policy.test.ts (100%) rename {src => packages/wxt/src}/core/utils/__tests__/entrypoints.test.ts (100%) rename {src => packages/wxt/src}/core/utils/__tests__/manifest.test.ts (100%) rename {src => packages/wxt/src}/core/utils/__tests__/package.test.ts (89%) rename {src => packages/wxt/src}/core/utils/__tests__/paths.test.ts (100%) rename {src => packages/wxt/src}/core/utils/__tests__/strings.test.ts (100%) rename {src => packages/wxt/src}/core/utils/__tests__/validation.test.ts (100%) rename {src => packages/wxt/src}/core/utils/__tests__/virtual-modules.test.ts (100%) rename {src => packages/wxt/src}/core/utils/arrays.ts (100%) rename {src => packages/wxt/src}/core/utils/building/__tests__/detect-dev-changes.test.ts (100%) rename {src => packages/wxt/src}/core/utils/building/__tests__/find-entrypoints.test.ts (100%) rename {src => packages/wxt/src}/core/utils/building/__tests__/group-entrypoints.test.ts (100%) rename {src => packages/wxt/src}/core/utils/building/__tests__/import-entrypoint.test.ts (75%) rename {src/core/utils => packages/wxt/src/core/utils/building}/__tests__/test-entrypoints/background.ts (100%) rename {src/core/utils => packages/wxt/src/core/utils/building}/__tests__/test-entrypoints/content.ts (100%) rename {src/core/utils => packages/wxt/src/core/utils/building}/__tests__/test-entrypoints/imported-option.ts (100%) rename {src/core/utils => packages/wxt/src/core/utils/building}/__tests__/test-entrypoints/no-default-export.ts (100%) rename {src/core/utils => packages/wxt/src/core/utils/building}/__tests__/test-entrypoints/react.tsx (100%) rename {src/core/utils => packages/wxt/src/core/utils/building}/__tests__/test-entrypoints/unlisted.ts (100%) rename {src/core/utils => packages/wxt/src/core/utils/building}/__tests__/test-entrypoints/with-named.ts (100%) rename {src => packages/wxt/src}/core/utils/building/build-entrypoints.ts (100%) rename {src => packages/wxt/src}/core/utils/building/detect-dev-changes.ts (100%) rename {src => packages/wxt/src}/core/utils/building/find-entrypoints.ts (100%) rename {src => packages/wxt/src}/core/utils/building/generate-wxt-dir.ts (100%) rename {src => packages/wxt/src}/core/utils/building/group-entrypoints.ts (100%) rename {src => packages/wxt/src}/core/utils/building/import-entrypoint.ts (100%) rename {src => packages/wxt/src}/core/utils/building/index.ts (100%) rename {src => packages/wxt/src}/core/utils/building/internal-build.ts (100%) rename {src => packages/wxt/src}/core/utils/building/rebuild.ts (100%) rename {src => packages/wxt/src}/core/utils/building/resolve-config.ts (100%) rename {src => packages/wxt/src}/core/utils/cache.ts (100%) rename {src => packages/wxt/src}/core/utils/cli.ts (100%) rename {src => packages/wxt/src}/core/utils/constants.ts (100%) rename {src => packages/wxt/src}/core/utils/content-scripts.ts (100%) rename {src => packages/wxt/src}/core/utils/content-security-policy.ts (100%) rename {src => packages/wxt/src}/core/utils/entrypoints.ts (100%) rename {src => packages/wxt/src}/core/utils/fs.ts (100%) rename {src => packages/wxt/src}/core/utils/globals.ts (100%) rename {src => packages/wxt/src}/core/utils/i18n.ts (100%) rename {src => packages/wxt/src}/core/utils/log/index.ts (100%) rename {src => packages/wxt/src}/core/utils/log/printBuildSummary.ts (100%) rename {src => packages/wxt/src}/core/utils/log/printFileList.ts (100%) rename {src => packages/wxt/src}/core/utils/log/printHeader.ts (100%) rename {src => packages/wxt/src}/core/utils/log/printTable.ts (100%) rename {src => packages/wxt/src}/core/utils/manifest.ts (100%) rename {src => packages/wxt/src}/core/utils/network.ts (100%) rename {src => packages/wxt/src}/core/utils/package.ts (100%) rename {src => packages/wxt/src}/core/utils/paths.ts (100%) rename {src => packages/wxt/src}/core/utils/strings.ts (100%) rename {src => packages/wxt/src}/core/utils/testing/fake-objects.ts (100%) rename {src => packages/wxt/src}/core/utils/time.ts (100%) rename {src => packages/wxt/src}/core/utils/types.ts (100%) rename {src => packages/wxt/src}/core/utils/validation.ts (100%) rename {src => packages/wxt/src}/core/utils/virtual-modules.ts (100%) rename {src => packages/wxt/src}/core/utils/wsl.ts (100%) rename {src => packages/wxt/src}/core/wxt.ts (100%) rename {src => packages/wxt/src}/core/zip.ts (100%) rename {src => packages/wxt/src}/index.ts (100%) rename {src => packages/wxt/src}/sandbox/__tests__/define-background.test.ts (100%) rename {src => packages/wxt/src}/sandbox/__tests__/define-content-script.test.ts (100%) rename {src => packages/wxt/src}/sandbox/__tests__/define-unlisted-script.test.ts (100%) rename {src => packages/wxt/src}/sandbox/define-background.ts (100%) rename {src => packages/wxt/src}/sandbox/define-content-script.ts (100%) rename {src => packages/wxt/src}/sandbox/define-unlisted-script.ts (100%) rename {src => packages/wxt/src}/sandbox/index.ts (100%) rename {src => packages/wxt/src}/sandbox/utils/logger.ts (100%) rename {src => packages/wxt/src}/storage.ts (100%) rename {src => packages/wxt/src}/testing/fake-browser.ts (100%) rename {src => packages/wxt/src}/testing/index.ts (100%) rename {src => packages/wxt/src}/testing/wxt-vitest-plugin.ts (100%) rename {src => packages/wxt/src}/types/globals.d.ts (100%) rename {src => packages/wxt/src}/types/index.ts (100%) rename {src => packages/wxt/src}/types/modules.d.ts (100%) rename {src => packages/wxt/src}/types/project-types.d.ts (100%) rename {src => packages/wxt/src}/version.ts (100%) rename {src => packages/wxt/src}/virtual/README.md (100%) rename {src => packages/wxt/src}/virtual/background-entrypoint.ts (100%) rename {src => packages/wxt/src}/virtual/content-script-isolated-world-entrypoint.ts (100%) rename {src => packages/wxt/src}/virtual/content-script-main-world-entrypoint.ts (100%) rename {src => packages/wxt/src}/virtual/mock-browser.ts (100%) rename {src => packages/wxt/src}/virtual/reload-html.ts (100%) rename {src => packages/wxt/src}/virtual/tsconfig.json (69%) rename {src => packages/wxt/src}/virtual/unlisted-script-entrypoint.ts (100%) rename {src => packages/wxt/src}/virtual/utils/keep-service-worker-alive.ts (100%) rename {src => packages/wxt/src}/virtual/utils/reload-content-scripts.ts (100%) rename {src => packages/wxt/src}/virtual/utils/setup-web-socket.ts (100%) rename {src => packages/wxt/src}/virtual/virtual-module-globals.d.ts (100%) rename {src => packages/wxt/src}/vite-builder-env.d.ts (100%) create mode 100644 packages/wxt/tsconfig.json create mode 100644 packages/wxt/typedoc.json create mode 100644 packages/wxt/vitest.config.ts rename vitest.setup.ts => packages/wxt/vitest.setup.ts (100%) create mode 100644 scripts/stub.ts create mode 100644 vitest.workspace.json delete mode 100644 vitest.workspace.ts diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a5a50a12..9cde4630 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -25,11 +25,14 @@ jobs: pnpx changelogen@latest --release git push git push --tags + working-directory: packages/wxt - name: NPM run: | echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_AUTH_TOKEN }}" > ~/.npmrc pnpm publish + working-directory: packages/wxt - name: GitHub Release run: pnpx changelogen@latest gh release --token ${{ secrets.GITHUB_TOKEN }} + working-directory: packages/wxt diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index d559f5fc..3e66bdc5 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -13,19 +13,15 @@ jobs: - uses: actions/checkout@v4 - uses: ./.github/actions/setup - run: pnpm check - validate-demo: + build-demo: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - uses: ./.github/actions/setup - - run: pnpm tsc --noEmit - working-directory: demo - run: pnpm build:all - working-directory: demo + working-directory: packages/wxt-demo - run: pnpm wxt zip - working-directory: demo - - run: pnpm vitest run - working-directory: demo + working-directory: packages/wxt-demo tests: runs-on: ubuntu-22.04 steps: @@ -57,9 +53,10 @@ jobs: - uses: actions/checkout@v4 - uses: ./.github/actions/setup - run: pnpm pack + working-directory: packages/wxt - run: npm i working-directory: templates/${{ matrix.template }} - - run: npm i -D ../../wxt-*.tgz + - run: npm i -D ../../packages/wxt/wxt-*.tgz working-directory: templates/${{ matrix.template }} - run: pnpm compile if: matrix.template != 'svelte' diff --git a/.npmrc b/.npmrc deleted file mode 100644 index ae90f705..00000000 --- a/.npmrc +++ /dev/null @@ -1 +0,0 @@ -ignore-workspace-root-check=true diff --git a/demo/package.json b/demo/package.json deleted file mode 100644 index 1003494d..00000000 --- a/demo/package.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "demo", - "version": "1.0.0", - "description": "Demo extension for WXT", - "type": "module", - "scripts": { - "dev": "pnpm -w build && wxt", - "build": "pnpm -w build && wxt build", - "build:all": "pnpm -w build && run-s -s 'build:all:*'", - "build:all:chrome-mv3": "wxt build", - "build:all:chrome-mv2": "wxt build --mv2", - "build:all:firefox-mv3": "wxt build -b firefox --mv3", - "build:all:firefox-mv2": "wxt build -b firefox", - "test": "pnpm -w build && vitest", - "zip": "pnpm -w build && wxt zip", - "compile": "pnpm -w build && tsc --noEmit", - "postinstall": "pnpm -w build && wxt prepare" - }, - "dependencies": { - "react": "^18.2.0", - "react-dom": "^18.2.0", - "vitest": "^1.2.2" - }, - "devDependencies": { - "@types/react": "^18.2.34", - "@types/react-dom": "^18.2.14", - "sass": "^1.69.5", - "wxt": "workspace:*" - } -} diff --git a/docs/.vitepress/plugins/generate-cli-docs.ts b/docs/.vitepress/plugins/generate-cli-docs.ts index 6b669927..104807bb 100644 --- a/docs/.vitepress/plugins/generate-cli-docs.ts +++ b/docs/.vitepress/plugins/generate-cli-docs.ts @@ -6,7 +6,7 @@ import { execaCommand } from 'execa'; let hasGenerated = false; -const cliDir = resolve('src/cli/commands'); +const cliDir = resolve('packages/wxt/src/cli/commands'); const cliDirGlob = resolve(cliDir, '**'); const cliTemplatePath = resolve('docs/.vitepress/plugins/cli.tpl.md'); const cliPath = resolve('docs/api/cli.md'); @@ -23,7 +23,9 @@ export function generateCliDocs() { const generateDocs = async () => { consola.info(`Generating ${relative(process.cwd(), cliPath)}`); try { - const res = await execaCommand('pnpm -s wxt --help'); + const res = await execaCommand('pnpm -s wxt --help', { + cwd: 'packages/wxt', + }); const dev = splitInfo(res.stdout); const lines: Array = [ `## \`wxt\``, @@ -34,7 +36,9 @@ export function generateCliDocs() { const commands = await Promise.allSettled( extractCommands(dev.info).map(async (command) => { - const res = await execaCommand(`pnpm -s wxt ${command} --help`); + const res = await execaCommand(`pnpm -s wxt ${command} --help`, { + cwd: 'packages/wxt', + }); const { rest: docs } = splitInfo(res.stdout); return [`## \`wxt ${command}\``, '```sh', docs, '```']; }), diff --git a/docs/guide/manifest.md b/docs/guide/manifest.md index a5c07e85..79569682 100644 --- a/docs/guide/manifest.md +++ b/docs/guide/manifest.md @@ -69,7 +69,7 @@ public/ Icon files need to match the following regex to be automatically included in the manifest. Most design software can output icons in one of these formats -<<< @/../src/core/utils/manifest.ts#snippet +<<< @/../packages/wxt/src/core/utils/manifest.ts#snippet If you prefer to use filenames in a different format, you can add the icons manually in your `wxt.config.ts` file: diff --git a/docs/typedoc.json b/docs/typedoc.json index 52cabaa6..f09aff57 100644 --- a/docs/typedoc.json +++ b/docs/typedoc.json @@ -1,12 +1,7 @@ { - "entryPoints": [ - "../src", - "../src/client", - "../src/browser.ts", - "../src/sandbox", - "../src/storage.ts", - "../src/testing" - ], + "$schema": "https://typedoc.org/schema.json", + "entryPointStrategy": "packages", + "entryPoints": ["../packages/wxt"], "plugin": ["typedoc-plugin-markdown", "typedoc-vitepress-theme"], "out": "./api", "githubPages": false, diff --git a/package.json b/package.json index a878e0a8..0d330260 100644 --- a/package.json +++ b/package.json @@ -1,97 +1,15 @@ { - "name": "wxt", + "private": true, "type": "module", - "version": "0.17.12", - "description": "Next gen framework for developing web extensions", "engines": { "node": ">=18", "pnpm": ">=8" }, - "repository": { - "type": "git", - "url": "https://github.com/wxt-dev/wxt" - }, - "homepage": "https://wxt.dev", - "keywords": [ - "vite", - "chrome", - "web", - "extension", - "browser", - "bundler", - "framework" - ], - "author": { - "name": "Aaron Klinker", - "email": "aaronklinker1+wxt@gmail.com" - }, - "license": "MIT", - "files": [ - "bin", - "dist" - ], - "bin": { - "wxt": "./bin/wxt.mjs", - "wxt-publish-extension": "./bin/wxt-publish-extension.cjs" - }, - "main": "./dist/index.cjs", - "module": "./dist/index.js", - "types": "./dist/index.d.ts", - "exports": { - ".": { - "import": { - "types": "./dist/index.d.ts", - "default": "./dist/index.js" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } - }, - "./client": { - "types": "./dist/client.d.ts", - "import": "./dist/client.js" - }, - "./sandbox": { - "types": "./dist/sandbox.d.ts", - "import": "./dist/sandbox.js" - }, - "./browser": { - "types": "./dist/browser.d.ts", - "import": "./dist/browser.js" - }, - "./testing": { - "import": { - "types": "./dist/testing.d.ts", - "default": "./dist/testing.js" - }, - "require": { - "types": "./dist/testing.d.cts", - "default": "./dist/testing.cjs" - } - }, - "./storage": { - "import": { - "types": "./dist/storage.d.ts", - "default": "./dist/storage.js" - }, - "require": { - "types": "./dist/storage.d.cts", - "default": "./dist/storage.cjs" - } - }, - "./vite-builder-env": { - "types": "./dist/vite-builder-env.d.ts" - } - }, + "packageManager": "pnpm@8.6.3", "scripts": { - "wxt": "tsx src/cli/index.ts", - "build": "tsx scripts/build.ts", - "check": "run-s -c check:*", - "check:default": "check", - "check:tsc-virtual": "tsc --noEmit -p src/virtual", + "check": "pnpm -r run check", "test": "vitest", - "test:coverage": "vitest run --coverage.enabled \"--coverage.include=src/**\" \"--coverage.exclude=src/core/utils/testing/**\" \"--coverage.exclude=**/*.d.ts\"", + "test:coverage": "vitest run --coverage.enabled \"--coverage.include=packages/wxt/src/**\" \"--coverage.exclude=packages/wxt/src/core/utils/testing/**\" \"--coverage.exclude=**/*.d.ts\"", "prepare": "simple-git-hooks", "prepublish": "pnpm -s build", "docs:gen": "typedoc --options docs/typedoc.json", @@ -100,79 +18,26 @@ "docs:preview": "pnpm -s docs:gen && vitepress preview docs", "sync-releases": "pnpx changelogen@latest gh release" }, - "dependencies": { - "@aklinker1/rollup-plugin-visualizer": "5.12.0", - "@types/webextension-polyfill": "^0.10.5", - "@webext-core/fake-browser": "^1.3.1", - "@webext-core/isolated-element": "^1.1.2", - "@webext-core/match-patterns": "^1.0.3", - "async-mutex": "^0.4.0", - "c12": "^1.5.1", - "cac": "^6.7.14", - "chokidar": "^3.5.3", - "ci-info": "^4.0.0", - "consola": "^3.2.3", - "defu": "^6.1.3", - "dequal": "^2.0.3", - "esbuild": "^0.19.5", - "fast-glob": "^3.3.1", - "filesize": "^10.0.8", - "fs-extra": "^11.1.1", - "get-port": "^7.0.0", - "giget": "^1.1.3", - "hookable": "^5.5.3", - "is-wsl": "^3.0.0", - "jiti": "^1.21.0", - "json5": "^2.2.3", - "jszip": "^3.10.1", - "linkedom": "^0.16.1", - "minimatch": "^9.0.3", - "natural-compare": "^1.4.0", - "normalize-path": "^3.0.0", - "nypm": "^0.3.6", - "open": "^10.1.0", - "ora": "^7.0.1", - "picocolors": "^1.0.0", - "prompts": "^2.4.2", - "publish-browser-extension": "^2.1.3", - "unimport": "^3.4.0", - "vite": "^5.2.8", - "web-ext-run": "^0.2.0", - "webextension-polyfill": "^0.10.0" - }, "devDependencies": { "@aklinker1/check": "^1.1.1", - "@faker-js/faker": "^8.3.1", - "@types/fs-extra": "^11.0.4", - "@types/lodash.merge": "^4.6.9", - "@types/natural-compare": "^1.4.3", - "@types/node": "^20.10.3", - "@types/normalize-path": "^3.0.2", - "@types/prompts": "^2.4.9", "@vitest/coverage-v8": "^1.0.1", + "consola": "^3.2.3", "execa": "^8.0.1", - "extract-zip": "^2.0.1", - "happy-dom": "^13.3.8", "lint-staged": "^15.2.0", - "lodash.merge": "^4.6.2", "npm-run-all": "^4.1.5", - "p-map": "^7.0.0", "prettier": "^3.1.0", - "publint": "^0.2.6", "simple-git-hooks": "^2.9.0", - "tsup": "^8.0.1", - "tsx": "^4.6.2", "typedoc": "^0.25.4", "typedoc-plugin-markdown": "4.0.0-next.23", "typedoc-vitepress-theme": "1.0.0-next.3", "typescript": "^5.3.2", "vitepress": "1.0.0-rc.34", - "vitest": "^1.2.2", + "vitest": "^1.5.3", "vitest-mock-extended": "^1.3.1", "vitest-plugin-random-seed": "^1.0.2", - "vue": "^3.3.10" + "vue": "^3.3.10", + "wxt": "workspace:*" }, - "packageManager": "pnpm@8.6.3", "simple-git-hooks": { "pre-commit": "pnpm lint-staged" }, diff --git a/packages/wxt-demo/package.json b/packages/wxt-demo/package.json new file mode 100644 index 00000000..9dcd5765 --- /dev/null +++ b/packages/wxt-demo/package.json @@ -0,0 +1,31 @@ +{ + "name": "wxt-demo", + "version": "1.0.0", + "private": true, + "type": "module", + "scripts": { + "dev": "pnpm build:deps && wxt", + "build:deps": "pnpm --filter wxt build", + "build": "pnpm build:deps && wxt build", + "build:all": "pnpm build:deps && run-s -s 'build:all:*'", + "build:all:chrome-mv3": "wxt build", + "build:all:chrome-mv2": "wxt build --mv2", + "build:all:firefox-mv3": "wxt build -b firefox --mv3", + "build:all:firefox-mv2": "wxt build -b firefox", + "test": "pnpm build:deps && vitest", + "zip": "pnpm build:deps && wxt zip", + "check": "pnpm build:deps && check", + "postinstall": "pnpm build:deps && wxt prepare" + }, + "dependencies": { + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, + "devDependencies": { + "@types/react": "^18.2.34", + "@types/react-dom": "^18.2.14", + "sass": "^1.69.5", + "typescript": "^5.3.2", + "wxt": "workspace:*" + } +} diff --git a/demo/src/common/style.css b/packages/wxt-demo/src/common/style.css similarity index 100% rename from demo/src/common/style.css rename to packages/wxt-demo/src/common/style.css diff --git a/demo/src/entrypoints/__tests__/background.test.ts b/packages/wxt-demo/src/entrypoints/__tests__/background.test.ts similarity index 100% rename from demo/src/entrypoints/__tests__/background.test.ts rename to packages/wxt-demo/src/entrypoints/__tests__/background.test.ts diff --git a/demo/src/entrypoints/background.ts b/packages/wxt-demo/src/entrypoints/background.ts similarity index 100% rename from demo/src/entrypoints/background.ts rename to packages/wxt-demo/src/entrypoints/background.ts diff --git a/demo/src/entrypoints/example-2.scss b/packages/wxt-demo/src/entrypoints/example-2.scss similarity index 100% rename from demo/src/entrypoints/example-2.scss rename to packages/wxt-demo/src/entrypoints/example-2.scss diff --git a/demo/src/entrypoints/example-tsx.content.tsx b/packages/wxt-demo/src/entrypoints/example-tsx.content.tsx similarity index 100% rename from demo/src/entrypoints/example-tsx.content.tsx rename to packages/wxt-demo/src/entrypoints/example-tsx.content.tsx diff --git a/demo/src/entrypoints/example.sandbox/index.html b/packages/wxt-demo/src/entrypoints/example.sandbox/index.html similarity index 100% rename from demo/src/entrypoints/example.sandbox/index.html rename to packages/wxt-demo/src/entrypoints/example.sandbox/index.html diff --git a/demo/src/entrypoints/iframe-src/index.html b/packages/wxt-demo/src/entrypoints/iframe-src/index.html similarity index 100% rename from demo/src/entrypoints/iframe-src/index.html rename to packages/wxt-demo/src/entrypoints/iframe-src/index.html diff --git a/demo/src/entrypoints/iframe-src/main.ts b/packages/wxt-demo/src/entrypoints/iframe-src/main.ts similarity index 100% rename from demo/src/entrypoints/iframe-src/main.ts rename to packages/wxt-demo/src/entrypoints/iframe-src/main.ts diff --git a/demo/src/entrypoints/iframe.content.ts b/packages/wxt-demo/src/entrypoints/iframe.content.ts similarity index 100% rename from demo/src/entrypoints/iframe.content.ts rename to packages/wxt-demo/src/entrypoints/iframe.content.ts diff --git a/demo/src/entrypoints/injected.content/index.css b/packages/wxt-demo/src/entrypoints/injected.content/index.css similarity index 100% rename from demo/src/entrypoints/injected.content/index.css rename to packages/wxt-demo/src/entrypoints/injected.content/index.css diff --git a/demo/src/entrypoints/location-change.content.ts b/packages/wxt-demo/src/entrypoints/location-change.content.ts similarity index 100% rename from demo/src/entrypoints/location-change.content.ts rename to packages/wxt-demo/src/entrypoints/location-change.content.ts diff --git a/demo/src/entrypoints/main-world.content.ts b/packages/wxt-demo/src/entrypoints/main-world.content.ts similarity index 100% rename from demo/src/entrypoints/main-world.content.ts rename to packages/wxt-demo/src/entrypoints/main-world.content.ts diff --git a/demo/src/entrypoints/options/index.html b/packages/wxt-demo/src/entrypoints/options/index.html similarity index 100% rename from demo/src/entrypoints/options/index.html rename to packages/wxt-demo/src/entrypoints/options/index.html diff --git a/demo/src/entrypoints/options/main.ts b/packages/wxt-demo/src/entrypoints/options/main.ts similarity index 100% rename from demo/src/entrypoints/options/main.ts rename to packages/wxt-demo/src/entrypoints/options/main.ts diff --git a/demo/src/entrypoints/options/style.css b/packages/wxt-demo/src/entrypoints/options/style.css similarity index 100% rename from demo/src/entrypoints/options/style.css rename to packages/wxt-demo/src/entrypoints/options/style.css diff --git a/demo/src/entrypoints/popup.html b/packages/wxt-demo/src/entrypoints/popup.html similarity index 100% rename from demo/src/entrypoints/popup.html rename to packages/wxt-demo/src/entrypoints/popup.html diff --git a/demo/src/entrypoints/sandbox.html b/packages/wxt-demo/src/entrypoints/sandbox.html similarity index 100% rename from demo/src/entrypoints/sandbox.html rename to packages/wxt-demo/src/entrypoints/sandbox.html diff --git a/demo/src/entrypoints/sidepanel.html b/packages/wxt-demo/src/entrypoints/sidepanel.html similarity index 100% rename from demo/src/entrypoints/sidepanel.html rename to packages/wxt-demo/src/entrypoints/sidepanel.html diff --git a/demo/src/entrypoints/ui.content/index.ts b/packages/wxt-demo/src/entrypoints/ui.content/index.ts similarity index 100% rename from demo/src/entrypoints/ui.content/index.ts rename to packages/wxt-demo/src/entrypoints/ui.content/index.ts diff --git a/demo/src/entrypoints/ui.content/style.css b/packages/wxt-demo/src/entrypoints/ui.content/style.css similarity index 100% rename from demo/src/entrypoints/ui.content/style.css rename to packages/wxt-demo/src/entrypoints/ui.content/style.css diff --git a/demo/src/entrypoints/unlisted.ts b/packages/wxt-demo/src/entrypoints/unlisted.ts similarity index 100% rename from demo/src/entrypoints/unlisted.ts rename to packages/wxt-demo/src/entrypoints/unlisted.ts diff --git a/demo/src/public/_locales/en/messages.json b/packages/wxt-demo/src/public/_locales/en/messages.json similarity index 100% rename from demo/src/public/_locales/en/messages.json rename to packages/wxt-demo/src/public/_locales/en/messages.json diff --git a/demo/src/public/icon/128.png b/packages/wxt-demo/src/public/icon/128.png similarity index 100% rename from demo/src/public/icon/128.png rename to packages/wxt-demo/src/public/icon/128.png diff --git a/demo/src/public/icon/16.png b/packages/wxt-demo/src/public/icon/16.png similarity index 100% rename from demo/src/public/icon/16.png rename to packages/wxt-demo/src/public/icon/16.png diff --git a/demo/src/public/icon/32.png b/packages/wxt-demo/src/public/icon/32.png similarity index 100% rename from demo/src/public/icon/32.png rename to packages/wxt-demo/src/public/icon/32.png diff --git a/demo/src/public/icon/48.png b/packages/wxt-demo/src/public/icon/48.png similarity index 100% rename from demo/src/public/icon/48.png rename to packages/wxt-demo/src/public/icon/48.png diff --git a/demo/src/public/icon/96.png b/packages/wxt-demo/src/public/icon/96.png similarity index 100% rename from demo/src/public/icon/96.png rename to packages/wxt-demo/src/public/icon/96.png diff --git a/demo/src/utils/logger.ts b/packages/wxt-demo/src/utils/logger.ts similarity index 100% rename from demo/src/utils/logger.ts rename to packages/wxt-demo/src/utils/logger.ts diff --git a/demo/tsconfig.json b/packages/wxt-demo/tsconfig.json similarity index 58% rename from demo/tsconfig.json rename to packages/wxt-demo/tsconfig.json index 68871e35..c29cb6ca 100644 --- a/demo/tsconfig.json +++ b/packages/wxt-demo/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": ["../tsconfig.base.json", "./.wxt/tsconfig.json"], + "extends": ["../../tsconfig.base.json", "./.wxt/tsconfig.json"], "compilerOptions": { "allowImportingTsExtensions": true, "jsx": "react-jsx" diff --git a/demo/vitest.config.ts b/packages/wxt-demo/vitest.config.ts similarity index 62% rename from demo/vitest.config.ts rename to packages/wxt-demo/vitest.config.ts index 5f310c1a..bec0c7c2 100644 --- a/demo/vitest.config.ts +++ b/packages/wxt-demo/vitest.config.ts @@ -1,7 +1,7 @@ -import { defineConfig } from 'vitest/config'; +import { defineProject } from 'vitest/config'; import { WxtVitest } from 'wxt/testing'; -export default defineConfig({ +export default defineProject({ test: { mockReset: true, restoreMocks: true, diff --git a/demo/wxt.config.ts b/packages/wxt-demo/wxt.config.ts similarity index 100% rename from demo/wxt.config.ts rename to packages/wxt-demo/wxt.config.ts diff --git a/CHANGELOG.md b/packages/wxt/CHANGELOG.md similarity index 100% rename from CHANGELOG.md rename to packages/wxt/CHANGELOG.md diff --git a/README.md b/packages/wxt/README.md similarity index 100% rename from README.md rename to packages/wxt/README.md diff --git a/bin/wxt-publish-extension.cjs b/packages/wxt/bin/wxt-publish-extension.cjs similarity index 100% rename from bin/wxt-publish-extension.cjs rename to packages/wxt/bin/wxt-publish-extension.cjs diff --git a/bin/wxt.mjs b/packages/wxt/bin/wxt.mjs similarity index 100% rename from bin/wxt.mjs rename to packages/wxt/bin/wxt.mjs diff --git a/e2e/tests/analysis.test.ts b/packages/wxt/e2e/tests/analysis.test.ts similarity index 100% rename from e2e/tests/analysis.test.ts rename to packages/wxt/e2e/tests/analysis.test.ts diff --git a/e2e/tests/auto-imports.test.ts b/packages/wxt/e2e/tests/auto-imports.test.ts similarity index 100% rename from e2e/tests/auto-imports.test.ts rename to packages/wxt/e2e/tests/auto-imports.test.ts diff --git a/e2e/tests/hooks.test.ts b/packages/wxt/e2e/tests/hooks.test.ts similarity index 100% rename from e2e/tests/hooks.test.ts rename to packages/wxt/e2e/tests/hooks.test.ts diff --git a/e2e/tests/init.test.ts b/packages/wxt/e2e/tests/init.test.ts similarity index 91% rename from e2e/tests/init.test.ts rename to packages/wxt/e2e/tests/init.test.ts index a0bab78d..e9786b87 100644 --- a/e2e/tests/init.test.ts +++ b/packages/wxt/e2e/tests/init.test.ts @@ -3,6 +3,7 @@ import { TestProject } from '../utils'; import { execaCommand } from 'execa'; import glob from 'fast-glob'; import { mkdir, writeJson } from 'fs-extra'; +import { WXT_PACKAGE_DIR } from '../utils'; describe('Init command', () => { it('should download and create a template', async () => { @@ -11,6 +12,7 @@ describe('Init command', () => { await execaCommand(`pnpm -s wxt init ${project.root} -t vue --pm npm`, { env: { ...process.env, CI: 'true' }, stdio: 'ignore', + cwd: WXT_PACKAGE_DIR, }); const files = await glob('**/*', { cwd: project.root, @@ -46,13 +48,14 @@ describe('Init command', () => { it('should throw an error if the directory is not empty', async () => { const project = new TestProject(); - await mkdir(project.root); + await mkdir(project.root, { recursive: true }); await writeJson(project.resolvePath('package.json'), {}); await expect(() => execaCommand(`pnpm -s wxt init ${project.root} -t vue --pm npm`, { env: { ...process.env, CI: 'true' }, stdio: 'ignore', + cwd: WXT_PACKAGE_DIR, }), ).rejects.toThrowError('Command failed with exit code 1:'); }); diff --git a/e2e/tests/manifest-content.test.ts b/packages/wxt/e2e/tests/manifest-content.test.ts similarity index 100% rename from e2e/tests/manifest-content.test.ts rename to packages/wxt/e2e/tests/manifest-content.test.ts diff --git a/e2e/tests/output-structure.test.ts b/packages/wxt/e2e/tests/output-structure.test.ts similarity index 100% rename from e2e/tests/output-structure.test.ts rename to packages/wxt/e2e/tests/output-structure.test.ts diff --git a/e2e/tests/react.test.ts b/packages/wxt/e2e/tests/react.test.ts similarity index 100% rename from e2e/tests/react.test.ts rename to packages/wxt/e2e/tests/react.test.ts diff --git a/e2e/tests/remote-code.test.ts b/packages/wxt/e2e/tests/remote-code.test.ts similarity index 100% rename from e2e/tests/remote-code.test.ts rename to packages/wxt/e2e/tests/remote-code.test.ts diff --git a/e2e/tests/typescript-project.test.ts b/packages/wxt/e2e/tests/typescript-project.test.ts similarity index 100% rename from e2e/tests/typescript-project.test.ts rename to packages/wxt/e2e/tests/typescript-project.test.ts diff --git a/e2e/tests/user-config.test.ts b/packages/wxt/e2e/tests/user-config.test.ts similarity index 99% rename from e2e/tests/user-config.test.ts rename to packages/wxt/e2e/tests/user-config.test.ts index c1f8f826..1a40d1a8 100644 --- a/e2e/tests/user-config.test.ts +++ b/packages/wxt/e2e/tests/user-config.test.ts @@ -119,7 +119,7 @@ describe('User Config', () => { project.addFile( 'test.config.ts', `import { defineConfig } from 'wxt'; - + export default defineConfig({ outDir: ".custom-output", srcDir: "src", diff --git a/e2e/tests/zip.test.ts b/packages/wxt/e2e/tests/zip.test.ts similarity index 100% rename from e2e/tests/zip.test.ts rename to packages/wxt/e2e/tests/zip.test.ts diff --git a/e2e/utils.ts b/packages/wxt/e2e/utils.ts similarity index 90% rename from e2e/utils.ts rename to packages/wxt/e2e/utils.ts index 3a0900f5..d2d91e8e 100644 --- a/e2e/utils.ts +++ b/packages/wxt/e2e/utils.ts @@ -1,5 +1,5 @@ -import { dirname, join, relative, resolve } from 'path'; -import fs from 'fs-extra'; +import { dirname, relative, resolve } from 'path'; +import fs, { mkdir } from 'fs-extra'; import glob from 'fast-glob'; import { execaCommand } from 'execa'; import { @@ -13,6 +13,13 @@ import { import { normalizePath } from '../src/core/utils/paths'; import merge from 'lodash.merge'; +// Run "pnpm wxt" to use the "wxt" dev script, not the "wxt" binary from the +// wxt package. This uses the TS files instead of the compiled JS package +// files. +export const WXT_PACKAGE_DIR = resolve(__dirname, '..'); + +export const E2E_DIR = resolve(WXT_PACKAGE_DIR, 'e2e'); + export class TestProject { files: Array<[string, string]> = []; config: UserConfig | undefined; @@ -23,7 +30,7 @@ export class TestProject { // file is cached and cannot be different between each test. Instead, we add a random ID to the // end to make each test's path unique. const id = Math.random().toString(32).substring(3); - this.root = join('e2e/dist', id); + this.root = resolve(E2E_DIR, 'dist', id); this.files.push([ 'package.json', JSON.stringify( @@ -113,6 +120,9 @@ export class TestProject { await execaCommand('pnpm --ignore-workspace i --ignore-scripts', { cwd: this.root, }); + await mkdir(resolve(this.root, 'public'), { recursive: true }).catch( + () => {}, + ); } /** @@ -131,9 +141,7 @@ export class TestProject { * that can be used in a snapshot. */ serializeWxtDir(): Promise { - return this.serializeDir( - resolve(this.config?.srcDir ?? this.root, '.wxt/types'), - ); + return this.serializeDir(resolve(this.root, '.wxt/types')); } /** diff --git a/packages/wxt/package.json b/packages/wxt/package.json new file mode 100644 index 00000000..0d81b648 --- /dev/null +++ b/packages/wxt/package.json @@ -0,0 +1,151 @@ +{ + "name": "wxt", + "type": "module", + "version": "0.17.12", + "description": "Next gen framework for developing web extensions", + "repository": { + "type": "git", + "url": "https://github.com/wxt-dev/wxt" + }, + "homepage": "https://wxt.dev", + "keywords": [ + "vite", + "chrome", + "web", + "extension", + "browser", + "bundler", + "framework" + ], + "author": { + "name": "Aaron Klinker", + "email": "aaronklinker1+wxt@gmail.com" + }, + "license": "MIT", + "files": [ + "bin", + "dist" + ], + "bin": { + "wxt": "./bin/wxt.mjs", + "wxt-publish-extension": "./bin/wxt-publish-extension.cjs" + }, + "main": "./dist/index.cjs", + "module": "./dist/index.js", + "types": "./dist/index.d.ts", + "exports": { + ".": { + "import": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + }, + "require": { + "types": "./dist/index.d.cts", + "default": "./dist/index.cjs" + } + }, + "./client": { + "types": "./dist/client.d.ts", + "import": "./dist/client.js" + }, + "./sandbox": { + "types": "./dist/sandbox.d.ts", + "import": "./dist/sandbox.js" + }, + "./browser": { + "types": "./dist/browser.d.ts", + "import": "./dist/browser.js" + }, + "./testing": { + "import": { + "types": "./dist/testing.d.ts", + "default": "./dist/testing.js" + }, + "require": { + "types": "./dist/testing.d.cts", + "default": "./dist/testing.cjs" + } + }, + "./storage": { + "import": { + "types": "./dist/storage.d.ts", + "default": "./dist/storage.js" + }, + "require": { + "types": "./dist/storage.d.cts", + "default": "./dist/storage.cjs" + } + }, + "./vite-builder-env": { + "types": "./dist/vite-builder-env.d.ts" + } + }, + "scripts": { + "wxt": "tsx src/cli/index.ts", + "build": "tsx scripts/build.ts", + "check": "run-s -c check:*", + "check:default": "check", + "check:tsc-virtual": "tsc --noEmit -p src/virtual", + "test": "vitest", + "test:e2e": "vitest -r e2e", + "test:e2e:2": "vitest --config e2e/vitest.config.ts" + }, + "dependencies": { + "@aklinker1/rollup-plugin-visualizer": "5.12.0", + "@types/webextension-polyfill": "^0.10.5", + "@webext-core/fake-browser": "^1.3.1", + "@webext-core/isolated-element": "^1.1.2", + "@webext-core/match-patterns": "^1.0.3", + "async-mutex": "^0.4.0", + "c12": "^1.5.1", + "cac": "^6.7.14", + "chokidar": "^3.5.3", + "ci-info": "^4.0.0", + "defu": "^6.1.3", + "dequal": "^2.0.3", + "esbuild": "^0.19.5", + "fast-glob": "^3.3.1", + "filesize": "^10.0.8", + "fs-extra": "^11.1.1", + "get-port": "^7.0.0", + "giget": "^1.1.3", + "hookable": "^5.5.3", + "is-wsl": "^3.0.0", + "jiti": "^1.21.0", + "json5": "^2.2.3", + "jszip": "^3.10.1", + "linkedom": "^0.16.1", + "minimatch": "^9.0.3", + "natural-compare": "^1.4.0", + "normalize-path": "^3.0.0", + "nypm": "^0.3.6", + "open": "^10.1.0", + "ora": "^7.0.1", + "picocolors": "^1.0.0", + "prompts": "^2.4.2", + "publish-browser-extension": "^2.1.3", + "unimport": "^3.4.0", + "vite": "^5.2.8", + "web-ext-run": "^0.2.0", + "webextension-polyfill": "^0.10.0" + }, + "devDependencies": { + "@aklinker1/check": "^1.1.1", + "@faker-js/faker": "^8.3.1", + "@types/fs-extra": "^11.0.4", + "@types/lodash.merge": "^4.6.9", + "@types/natural-compare": "^1.4.3", + "@types/node": "^20.10.3", + "@types/normalize-path": "^3.0.2", + "@types/prompts": "^2.4.9", + "execa": "^8.0.1", + "extract-zip": "^2.0.1", + "happy-dom": "^13.3.8", + "lodash.merge": "^4.6.2", + "p-map": "^7.0.0", + "publint": "^0.2.6", + "tsup": "^8.0.1", + "tsx": "^4.6.2", + "typescript": "^5.3.2" + } +} diff --git a/scripts/build.ts b/packages/wxt/scripts/build.ts similarity index 100% rename from scripts/build.ts rename to packages/wxt/scripts/build.ts diff --git a/src/__tests__/storage.test.ts b/packages/wxt/src/__tests__/storage.test.ts similarity index 100% rename from src/__tests__/storage.test.ts rename to packages/wxt/src/__tests__/storage.test.ts diff --git a/src/browser.ts b/packages/wxt/src/browser.ts similarity index 100% rename from src/browser.ts rename to packages/wxt/src/browser.ts diff --git a/src/cli/__tests__/index.test.ts b/packages/wxt/src/cli/__tests__/index.test.ts similarity index 100% rename from src/cli/__tests__/index.test.ts rename to packages/wxt/src/cli/__tests__/index.test.ts diff --git a/src/cli/cli-utils.ts b/packages/wxt/src/cli/cli-utils.ts similarity index 100% rename from src/cli/cli-utils.ts rename to packages/wxt/src/cli/cli-utils.ts diff --git a/src/cli/commands.ts b/packages/wxt/src/cli/commands.ts similarity index 100% rename from src/cli/commands.ts rename to packages/wxt/src/cli/commands.ts diff --git a/src/cli/index.ts b/packages/wxt/src/cli/index.ts similarity index 100% rename from src/cli/index.ts rename to packages/wxt/src/cli/index.ts diff --git a/src/client/content-scripts/content-script-context.ts b/packages/wxt/src/client/content-scripts/content-script-context.ts similarity index 100% rename from src/client/content-scripts/content-script-context.ts rename to packages/wxt/src/client/content-scripts/content-script-context.ts diff --git a/src/client/content-scripts/custom-events.ts b/packages/wxt/src/client/content-scripts/custom-events.ts similarity index 100% rename from src/client/content-scripts/custom-events.ts rename to packages/wxt/src/client/content-scripts/custom-events.ts diff --git a/src/client/content-scripts/index.ts b/packages/wxt/src/client/content-scripts/index.ts similarity index 100% rename from src/client/content-scripts/index.ts rename to packages/wxt/src/client/content-scripts/index.ts diff --git a/src/client/content-scripts/location-watcher.ts b/packages/wxt/src/client/content-scripts/location-watcher.ts similarity index 100% rename from src/client/content-scripts/location-watcher.ts rename to packages/wxt/src/client/content-scripts/location-watcher.ts diff --git a/src/client/content-scripts/ui/__tests__/index.test.ts b/packages/wxt/src/client/content-scripts/ui/__tests__/index.test.ts similarity index 100% rename from src/client/content-scripts/ui/__tests__/index.test.ts rename to packages/wxt/src/client/content-scripts/ui/__tests__/index.test.ts diff --git a/src/client/content-scripts/ui/index.ts b/packages/wxt/src/client/content-scripts/ui/index.ts similarity index 100% rename from src/client/content-scripts/ui/index.ts rename to packages/wxt/src/client/content-scripts/ui/index.ts diff --git a/src/client/content-scripts/ui/types.ts b/packages/wxt/src/client/content-scripts/ui/types.ts similarity index 100% rename from src/client/content-scripts/ui/types.ts rename to packages/wxt/src/client/content-scripts/ui/types.ts diff --git a/src/client/index.ts b/packages/wxt/src/client/index.ts similarity index 100% rename from src/client/index.ts rename to packages/wxt/src/client/index.ts diff --git a/src/core/build.ts b/packages/wxt/src/core/build.ts similarity index 100% rename from src/core/build.ts rename to packages/wxt/src/core/build.ts diff --git a/src/core/builders/vite/index.ts b/packages/wxt/src/core/builders/vite/index.ts similarity index 100% rename from src/core/builders/vite/index.ts rename to packages/wxt/src/core/builders/vite/index.ts diff --git a/src/core/builders/vite/plugins/__tests__/devHtmlPrerender.test.ts b/packages/wxt/src/core/builders/vite/plugins/__tests__/devHtmlPrerender.test.ts similarity index 100% rename from src/core/builders/vite/plugins/__tests__/devHtmlPrerender.test.ts rename to packages/wxt/src/core/builders/vite/plugins/__tests__/devHtmlPrerender.test.ts diff --git a/src/core/builders/vite/plugins/bundleAnalysis.ts b/packages/wxt/src/core/builders/vite/plugins/bundleAnalysis.ts similarity index 89% rename from src/core/builders/vite/plugins/bundleAnalysis.ts rename to packages/wxt/src/core/builders/vite/plugins/bundleAnalysis.ts index 2c44a9c4..61a31310 100644 --- a/src/core/builders/vite/plugins/bundleAnalysis.ts +++ b/packages/wxt/src/core/builders/vite/plugins/bundleAnalysis.ts @@ -6,7 +6,6 @@ import path from 'node:path'; let increment = 0; export function bundleAnalysis(config: ResolvedConfig): vite.Plugin { - // @ts-expect-error: Vite/Rollup type mismatch, but it's fine. return visualizer({ template: 'raw-data', filename: path.resolve( diff --git a/src/core/builders/vite/plugins/cssEntrypoints.ts b/packages/wxt/src/core/builders/vite/plugins/cssEntrypoints.ts similarity index 100% rename from src/core/builders/vite/plugins/cssEntrypoints.ts rename to packages/wxt/src/core/builders/vite/plugins/cssEntrypoints.ts diff --git a/src/core/builders/vite/plugins/defineImportMeta.ts b/packages/wxt/src/core/builders/vite/plugins/defineImportMeta.ts similarity index 100% rename from src/core/builders/vite/plugins/defineImportMeta.ts rename to packages/wxt/src/core/builders/vite/plugins/defineImportMeta.ts diff --git a/src/core/builders/vite/plugins/devHtmlPrerender.ts b/packages/wxt/src/core/builders/vite/plugins/devHtmlPrerender.ts similarity index 100% rename from src/core/builders/vite/plugins/devHtmlPrerender.ts rename to packages/wxt/src/core/builders/vite/plugins/devHtmlPrerender.ts diff --git a/src/core/builders/vite/plugins/devServerGlobals.ts b/packages/wxt/src/core/builders/vite/plugins/devServerGlobals.ts similarity index 100% rename from src/core/builders/vite/plugins/devServerGlobals.ts rename to packages/wxt/src/core/builders/vite/plugins/devServerGlobals.ts diff --git a/src/core/builders/vite/plugins/download.ts b/packages/wxt/src/core/builders/vite/plugins/download.ts similarity index 100% rename from src/core/builders/vite/plugins/download.ts rename to packages/wxt/src/core/builders/vite/plugins/download.ts diff --git a/src/core/builders/vite/plugins/entrypointGroupGlobals.ts b/packages/wxt/src/core/builders/vite/plugins/entrypointGroupGlobals.ts similarity index 100% rename from src/core/builders/vite/plugins/entrypointGroupGlobals.ts rename to packages/wxt/src/core/builders/vite/plugins/entrypointGroupGlobals.ts diff --git a/src/core/builders/vite/plugins/excludeBrowserPolyfill.ts b/packages/wxt/src/core/builders/vite/plugins/excludeBrowserPolyfill.ts similarity index 100% rename from src/core/builders/vite/plugins/excludeBrowserPolyfill.ts rename to packages/wxt/src/core/builders/vite/plugins/excludeBrowserPolyfill.ts diff --git a/src/core/builders/vite/plugins/globals.ts b/packages/wxt/src/core/builders/vite/plugins/globals.ts similarity index 100% rename from src/core/builders/vite/plugins/globals.ts rename to packages/wxt/src/core/builders/vite/plugins/globals.ts diff --git a/src/core/builders/vite/plugins/index.ts b/packages/wxt/src/core/builders/vite/plugins/index.ts similarity index 100% rename from src/core/builders/vite/plugins/index.ts rename to packages/wxt/src/core/builders/vite/plugins/index.ts diff --git a/src/core/builders/vite/plugins/multipageMove.ts b/packages/wxt/src/core/builders/vite/plugins/multipageMove.ts similarity index 100% rename from src/core/builders/vite/plugins/multipageMove.ts rename to packages/wxt/src/core/builders/vite/plugins/multipageMove.ts diff --git a/src/core/builders/vite/plugins/noopBackground.ts b/packages/wxt/src/core/builders/vite/plugins/noopBackground.ts similarity index 100% rename from src/core/builders/vite/plugins/noopBackground.ts rename to packages/wxt/src/core/builders/vite/plugins/noopBackground.ts diff --git a/src/core/builders/vite/plugins/resolveVirtualModules.ts b/packages/wxt/src/core/builders/vite/plugins/resolveVirtualModules.ts similarity index 100% rename from src/core/builders/vite/plugins/resolveVirtualModules.ts rename to packages/wxt/src/core/builders/vite/plugins/resolveVirtualModules.ts diff --git a/src/core/builders/vite/plugins/tsconfigPaths.ts b/packages/wxt/src/core/builders/vite/plugins/tsconfigPaths.ts similarity index 100% rename from src/core/builders/vite/plugins/tsconfigPaths.ts rename to packages/wxt/src/core/builders/vite/plugins/tsconfigPaths.ts diff --git a/src/core/builders/vite/plugins/unimport.ts b/packages/wxt/src/core/builders/vite/plugins/unimport.ts similarity index 100% rename from src/core/builders/vite/plugins/unimport.ts rename to packages/wxt/src/core/builders/vite/plugins/unimport.ts diff --git a/src/core/builders/vite/plugins/webextensionPolyfillMock.ts b/packages/wxt/src/core/builders/vite/plugins/webextensionPolyfillMock.ts similarity index 100% rename from src/core/builders/vite/plugins/webextensionPolyfillMock.ts rename to packages/wxt/src/core/builders/vite/plugins/webextensionPolyfillMock.ts diff --git a/src/core/clean.ts b/packages/wxt/src/core/clean.ts similarity index 100% rename from src/core/clean.ts rename to packages/wxt/src/core/clean.ts diff --git a/src/core/create-server.ts b/packages/wxt/src/core/create-server.ts similarity index 100% rename from src/core/create-server.ts rename to packages/wxt/src/core/create-server.ts diff --git a/src/core/define-config.ts b/packages/wxt/src/core/define-config.ts similarity index 100% rename from src/core/define-config.ts rename to packages/wxt/src/core/define-config.ts diff --git a/src/core/define-runner-config.ts b/packages/wxt/src/core/define-runner-config.ts similarity index 100% rename from src/core/define-runner-config.ts rename to packages/wxt/src/core/define-runner-config.ts diff --git a/src/core/index.ts b/packages/wxt/src/core/index.ts similarity index 100% rename from src/core/index.ts rename to packages/wxt/src/core/index.ts diff --git a/src/core/initialize.ts b/packages/wxt/src/core/initialize.ts similarity index 100% rename from src/core/initialize.ts rename to packages/wxt/src/core/initialize.ts diff --git a/src/core/package-managers/__tests__/bun.test.ts b/packages/wxt/src/core/package-managers/__tests__/bun.test.ts similarity index 100% rename from src/core/package-managers/__tests__/bun.test.ts rename to packages/wxt/src/core/package-managers/__tests__/bun.test.ts diff --git a/src/core/package-managers/__tests__/fixtures/bun-project/bun.lockb b/packages/wxt/src/core/package-managers/__tests__/fixtures/bun-project/bun.lockb similarity index 100% rename from src/core/package-managers/__tests__/fixtures/bun-project/bun.lockb rename to packages/wxt/src/core/package-managers/__tests__/fixtures/bun-project/bun.lockb diff --git a/src/core/package-managers/__tests__/fixtures/bun-project/package.json b/packages/wxt/src/core/package-managers/__tests__/fixtures/bun-project/package.json similarity index 100% rename from src/core/package-managers/__tests__/fixtures/bun-project/package.json rename to packages/wxt/src/core/package-managers/__tests__/fixtures/bun-project/package.json diff --git a/src/core/package-managers/__tests__/fixtures/npm-project/package-lock.json b/packages/wxt/src/core/package-managers/__tests__/fixtures/npm-project/package-lock.json similarity index 100% rename from src/core/package-managers/__tests__/fixtures/npm-project/package-lock.json rename to packages/wxt/src/core/package-managers/__tests__/fixtures/npm-project/package-lock.json diff --git a/src/core/package-managers/__tests__/fixtures/npm-project/package.json b/packages/wxt/src/core/package-managers/__tests__/fixtures/npm-project/package.json similarity index 100% rename from src/core/package-managers/__tests__/fixtures/npm-project/package.json rename to packages/wxt/src/core/package-managers/__tests__/fixtures/npm-project/package.json diff --git a/src/core/package-managers/__tests__/fixtures/pnpm-project/package.json b/packages/wxt/src/core/package-managers/__tests__/fixtures/pnpm-project/package.json similarity index 100% rename from src/core/package-managers/__tests__/fixtures/pnpm-project/package.json rename to packages/wxt/src/core/package-managers/__tests__/fixtures/pnpm-project/package.json diff --git a/src/core/package-managers/__tests__/fixtures/pnpm-project/pnpm-lock.yaml b/packages/wxt/src/core/package-managers/__tests__/fixtures/pnpm-project/pnpm-lock.yaml similarity index 100% rename from src/core/package-managers/__tests__/fixtures/pnpm-project/pnpm-lock.yaml rename to packages/wxt/src/core/package-managers/__tests__/fixtures/pnpm-project/pnpm-lock.yaml diff --git a/src/core/package-managers/__tests__/fixtures/yarn-project/package.json b/packages/wxt/src/core/package-managers/__tests__/fixtures/yarn-project/package.json similarity index 100% rename from src/core/package-managers/__tests__/fixtures/yarn-project/package.json rename to packages/wxt/src/core/package-managers/__tests__/fixtures/yarn-project/package.json diff --git a/src/core/package-managers/__tests__/fixtures/yarn-project/yarn.lock b/packages/wxt/src/core/package-managers/__tests__/fixtures/yarn-project/yarn.lock similarity index 100% rename from src/core/package-managers/__tests__/fixtures/yarn-project/yarn.lock rename to packages/wxt/src/core/package-managers/__tests__/fixtures/yarn-project/yarn.lock diff --git a/src/core/package-managers/__tests__/npm.test.ts b/packages/wxt/src/core/package-managers/__tests__/npm.test.ts similarity index 100% rename from src/core/package-managers/__tests__/npm.test.ts rename to packages/wxt/src/core/package-managers/__tests__/npm.test.ts diff --git a/src/core/package-managers/__tests__/pnpm.test.ts b/packages/wxt/src/core/package-managers/__tests__/pnpm.test.ts similarity index 100% rename from src/core/package-managers/__tests__/pnpm.test.ts rename to packages/wxt/src/core/package-managers/__tests__/pnpm.test.ts diff --git a/src/core/package-managers/__tests__/yarn.test.ts b/packages/wxt/src/core/package-managers/__tests__/yarn.test.ts similarity index 100% rename from src/core/package-managers/__tests__/yarn.test.ts rename to packages/wxt/src/core/package-managers/__tests__/yarn.test.ts diff --git a/src/core/package-managers/bun.ts b/packages/wxt/src/core/package-managers/bun.ts similarity index 100% rename from src/core/package-managers/bun.ts rename to packages/wxt/src/core/package-managers/bun.ts diff --git a/src/core/package-managers/index.ts b/packages/wxt/src/core/package-managers/index.ts similarity index 100% rename from src/core/package-managers/index.ts rename to packages/wxt/src/core/package-managers/index.ts diff --git a/src/core/package-managers/npm.ts b/packages/wxt/src/core/package-managers/npm.ts similarity index 100% rename from src/core/package-managers/npm.ts rename to packages/wxt/src/core/package-managers/npm.ts diff --git a/src/core/package-managers/pnpm.ts b/packages/wxt/src/core/package-managers/pnpm.ts similarity index 100% rename from src/core/package-managers/pnpm.ts rename to packages/wxt/src/core/package-managers/pnpm.ts diff --git a/src/core/package-managers/types.ts b/packages/wxt/src/core/package-managers/types.ts similarity index 100% rename from src/core/package-managers/types.ts rename to packages/wxt/src/core/package-managers/types.ts diff --git a/src/core/package-managers/yarn.ts b/packages/wxt/src/core/package-managers/yarn.ts similarity index 100% rename from src/core/package-managers/yarn.ts rename to packages/wxt/src/core/package-managers/yarn.ts diff --git a/src/core/prepare.ts b/packages/wxt/src/core/prepare.ts similarity index 100% rename from src/core/prepare.ts rename to packages/wxt/src/core/prepare.ts diff --git a/src/core/runners/__tests__/index.test.ts b/packages/wxt/src/core/runners/__tests__/index.test.ts similarity index 100% rename from src/core/runners/__tests__/index.test.ts rename to packages/wxt/src/core/runners/__tests__/index.test.ts diff --git a/src/core/runners/index.ts b/packages/wxt/src/core/runners/index.ts similarity index 100% rename from src/core/runners/index.ts rename to packages/wxt/src/core/runners/index.ts diff --git a/src/core/runners/manual.ts b/packages/wxt/src/core/runners/manual.ts similarity index 100% rename from src/core/runners/manual.ts rename to packages/wxt/src/core/runners/manual.ts diff --git a/src/core/runners/safari.ts b/packages/wxt/src/core/runners/safari.ts similarity index 100% rename from src/core/runners/safari.ts rename to packages/wxt/src/core/runners/safari.ts diff --git a/src/core/runners/web-ext.ts b/packages/wxt/src/core/runners/web-ext.ts similarity index 100% rename from src/core/runners/web-ext.ts rename to packages/wxt/src/core/runners/web-ext.ts diff --git a/src/core/runners/wsl.ts b/packages/wxt/src/core/runners/wsl.ts similarity index 100% rename from src/core/runners/wsl.ts rename to packages/wxt/src/core/runners/wsl.ts diff --git a/src/core/utils/__tests__/arrays.test.ts b/packages/wxt/src/core/utils/__tests__/arrays.test.ts similarity index 100% rename from src/core/utils/__tests__/arrays.test.ts rename to packages/wxt/src/core/utils/__tests__/arrays.test.ts diff --git a/src/core/utils/__tests__/content-scripts.test.ts b/packages/wxt/src/core/utils/__tests__/content-scripts.test.ts similarity index 100% rename from src/core/utils/__tests__/content-scripts.test.ts rename to packages/wxt/src/core/utils/__tests__/content-scripts.test.ts diff --git a/src/core/utils/__tests__/content-security-policy.test.ts b/packages/wxt/src/core/utils/__tests__/content-security-policy.test.ts similarity index 100% rename from src/core/utils/__tests__/content-security-policy.test.ts rename to packages/wxt/src/core/utils/__tests__/content-security-policy.test.ts diff --git a/src/core/utils/__tests__/entrypoints.test.ts b/packages/wxt/src/core/utils/__tests__/entrypoints.test.ts similarity index 100% rename from src/core/utils/__tests__/entrypoints.test.ts rename to packages/wxt/src/core/utils/__tests__/entrypoints.test.ts diff --git a/src/core/utils/__tests__/manifest.test.ts b/packages/wxt/src/core/utils/__tests__/manifest.test.ts similarity index 100% rename from src/core/utils/__tests__/manifest.test.ts rename to packages/wxt/src/core/utils/__tests__/manifest.test.ts diff --git a/src/core/utils/__tests__/package.test.ts b/packages/wxt/src/core/utils/__tests__/package.test.ts similarity index 89% rename from src/core/utils/__tests__/package.test.ts rename to packages/wxt/src/core/utils/__tests__/package.test.ts index fe1050bd..dae70613 100644 --- a/src/core/utils/__tests__/package.test.ts +++ b/packages/wxt/src/core/utils/__tests__/package.test.ts @@ -3,13 +3,13 @@ import { getPackageJson } from '../package'; import { setFakeWxt } from '../testing/fake-objects'; import { mock } from 'vitest-mock-extended'; import { Logger } from '~/types'; +import { WXT_PACKAGE_DIR } from '../../../../e2e/utils'; describe('Package JSON Utils', () => { describe('getPackageJson', () => { it('should return the package.json inside /package.json', async () => { - const root = process.cwd(); // WXT project directory setFakeWxt({ - config: { root }, + config: { root: WXT_PACKAGE_DIR }, }); const actual = await getPackageJson(); diff --git a/src/core/utils/__tests__/paths.test.ts b/packages/wxt/src/core/utils/__tests__/paths.test.ts similarity index 100% rename from src/core/utils/__tests__/paths.test.ts rename to packages/wxt/src/core/utils/__tests__/paths.test.ts diff --git a/src/core/utils/__tests__/strings.test.ts b/packages/wxt/src/core/utils/__tests__/strings.test.ts similarity index 100% rename from src/core/utils/__tests__/strings.test.ts rename to packages/wxt/src/core/utils/__tests__/strings.test.ts diff --git a/src/core/utils/__tests__/validation.test.ts b/packages/wxt/src/core/utils/__tests__/validation.test.ts similarity index 100% rename from src/core/utils/__tests__/validation.test.ts rename to packages/wxt/src/core/utils/__tests__/validation.test.ts diff --git a/src/core/utils/__tests__/virtual-modules.test.ts b/packages/wxt/src/core/utils/__tests__/virtual-modules.test.ts similarity index 100% rename from src/core/utils/__tests__/virtual-modules.test.ts rename to packages/wxt/src/core/utils/__tests__/virtual-modules.test.ts diff --git a/src/core/utils/arrays.ts b/packages/wxt/src/core/utils/arrays.ts similarity index 100% rename from src/core/utils/arrays.ts rename to packages/wxt/src/core/utils/arrays.ts diff --git a/src/core/utils/building/__tests__/detect-dev-changes.test.ts b/packages/wxt/src/core/utils/building/__tests__/detect-dev-changes.test.ts similarity index 100% rename from src/core/utils/building/__tests__/detect-dev-changes.test.ts rename to packages/wxt/src/core/utils/building/__tests__/detect-dev-changes.test.ts diff --git a/src/core/utils/building/__tests__/find-entrypoints.test.ts b/packages/wxt/src/core/utils/building/__tests__/find-entrypoints.test.ts similarity index 100% rename from src/core/utils/building/__tests__/find-entrypoints.test.ts rename to packages/wxt/src/core/utils/building/__tests__/find-entrypoints.test.ts diff --git a/src/core/utils/building/__tests__/group-entrypoints.test.ts b/packages/wxt/src/core/utils/building/__tests__/group-entrypoints.test.ts similarity index 100% rename from src/core/utils/building/__tests__/group-entrypoints.test.ts rename to packages/wxt/src/core/utils/building/__tests__/group-entrypoints.test.ts diff --git a/src/core/utils/building/__tests__/import-entrypoint.test.ts b/packages/wxt/src/core/utils/building/__tests__/import-entrypoint.test.ts similarity index 75% rename from src/core/utils/building/__tests__/import-entrypoint.test.ts rename to packages/wxt/src/core/utils/building/__tests__/import-entrypoint.test.ts index e72a79aa..529e1708 100644 --- a/src/core/utils/building/__tests__/import-entrypoint.test.ts +++ b/packages/wxt/src/core/utils/building/__tests__/import-entrypoint.test.ts @@ -1,11 +1,10 @@ import { beforeEach, describe, expect, it } from 'vitest'; import { importEntrypointFile } from '~/core/utils/building'; import { resolve } from 'node:path'; -import { unnormalizePath } from '../../paths'; -import { setFakeWxt } from '../../testing/fake-objects'; +import { setFakeWxt } from '~/core/utils/testing/fake-objects'; const entrypointPath = (filename: string) => - resolve('src/core/utils/__tests__/test-entrypoints', filename); + resolve(__dirname, 'test-entrypoints', filename); describe('importEntrypointFile', () => { beforeEach(() => { @@ -44,13 +43,10 @@ describe('importEntrypointFile', () => { }); it('should throw a custom error message when an imported variable is used before main', async () => { - const filePath = unnormalizePath( - '../src/core/utils/__tests__/test-entrypoints/imported-option.ts', - ); await expect(() => importEntrypointFile(entrypointPath('imported-option.ts')), - ).rejects.toThrowErrorMatchingInlineSnapshot( - `[Error: ${filePath}: Cannot use imported variable "faker" outside the main function. See https://wxt.dev/guide/entrypoints.html#side-effects]`, + ).rejects.toThrowError( + `imported-option.ts: Cannot use imported variable "faker" outside the main function.`, ); }); }); diff --git a/src/core/utils/__tests__/test-entrypoints/background.ts b/packages/wxt/src/core/utils/building/__tests__/test-entrypoints/background.ts similarity index 100% rename from src/core/utils/__tests__/test-entrypoints/background.ts rename to packages/wxt/src/core/utils/building/__tests__/test-entrypoints/background.ts diff --git a/src/core/utils/__tests__/test-entrypoints/content.ts b/packages/wxt/src/core/utils/building/__tests__/test-entrypoints/content.ts similarity index 100% rename from src/core/utils/__tests__/test-entrypoints/content.ts rename to packages/wxt/src/core/utils/building/__tests__/test-entrypoints/content.ts diff --git a/src/core/utils/__tests__/test-entrypoints/imported-option.ts b/packages/wxt/src/core/utils/building/__tests__/test-entrypoints/imported-option.ts similarity index 100% rename from src/core/utils/__tests__/test-entrypoints/imported-option.ts rename to packages/wxt/src/core/utils/building/__tests__/test-entrypoints/imported-option.ts diff --git a/src/core/utils/__tests__/test-entrypoints/no-default-export.ts b/packages/wxt/src/core/utils/building/__tests__/test-entrypoints/no-default-export.ts similarity index 100% rename from src/core/utils/__tests__/test-entrypoints/no-default-export.ts rename to packages/wxt/src/core/utils/building/__tests__/test-entrypoints/no-default-export.ts diff --git a/src/core/utils/__tests__/test-entrypoints/react.tsx b/packages/wxt/src/core/utils/building/__tests__/test-entrypoints/react.tsx similarity index 100% rename from src/core/utils/__tests__/test-entrypoints/react.tsx rename to packages/wxt/src/core/utils/building/__tests__/test-entrypoints/react.tsx diff --git a/src/core/utils/__tests__/test-entrypoints/unlisted.ts b/packages/wxt/src/core/utils/building/__tests__/test-entrypoints/unlisted.ts similarity index 100% rename from src/core/utils/__tests__/test-entrypoints/unlisted.ts rename to packages/wxt/src/core/utils/building/__tests__/test-entrypoints/unlisted.ts diff --git a/src/core/utils/__tests__/test-entrypoints/with-named.ts b/packages/wxt/src/core/utils/building/__tests__/test-entrypoints/with-named.ts similarity index 100% rename from src/core/utils/__tests__/test-entrypoints/with-named.ts rename to packages/wxt/src/core/utils/building/__tests__/test-entrypoints/with-named.ts diff --git a/src/core/utils/building/build-entrypoints.ts b/packages/wxt/src/core/utils/building/build-entrypoints.ts similarity index 100% rename from src/core/utils/building/build-entrypoints.ts rename to packages/wxt/src/core/utils/building/build-entrypoints.ts diff --git a/src/core/utils/building/detect-dev-changes.ts b/packages/wxt/src/core/utils/building/detect-dev-changes.ts similarity index 100% rename from src/core/utils/building/detect-dev-changes.ts rename to packages/wxt/src/core/utils/building/detect-dev-changes.ts diff --git a/src/core/utils/building/find-entrypoints.ts b/packages/wxt/src/core/utils/building/find-entrypoints.ts similarity index 100% rename from src/core/utils/building/find-entrypoints.ts rename to packages/wxt/src/core/utils/building/find-entrypoints.ts diff --git a/src/core/utils/building/generate-wxt-dir.ts b/packages/wxt/src/core/utils/building/generate-wxt-dir.ts similarity index 100% rename from src/core/utils/building/generate-wxt-dir.ts rename to packages/wxt/src/core/utils/building/generate-wxt-dir.ts diff --git a/src/core/utils/building/group-entrypoints.ts b/packages/wxt/src/core/utils/building/group-entrypoints.ts similarity index 100% rename from src/core/utils/building/group-entrypoints.ts rename to packages/wxt/src/core/utils/building/group-entrypoints.ts diff --git a/src/core/utils/building/import-entrypoint.ts b/packages/wxt/src/core/utils/building/import-entrypoint.ts similarity index 100% rename from src/core/utils/building/import-entrypoint.ts rename to packages/wxt/src/core/utils/building/import-entrypoint.ts diff --git a/src/core/utils/building/index.ts b/packages/wxt/src/core/utils/building/index.ts similarity index 100% rename from src/core/utils/building/index.ts rename to packages/wxt/src/core/utils/building/index.ts diff --git a/src/core/utils/building/internal-build.ts b/packages/wxt/src/core/utils/building/internal-build.ts similarity index 100% rename from src/core/utils/building/internal-build.ts rename to packages/wxt/src/core/utils/building/internal-build.ts diff --git a/src/core/utils/building/rebuild.ts b/packages/wxt/src/core/utils/building/rebuild.ts similarity index 100% rename from src/core/utils/building/rebuild.ts rename to packages/wxt/src/core/utils/building/rebuild.ts diff --git a/src/core/utils/building/resolve-config.ts b/packages/wxt/src/core/utils/building/resolve-config.ts similarity index 100% rename from src/core/utils/building/resolve-config.ts rename to packages/wxt/src/core/utils/building/resolve-config.ts diff --git a/src/core/utils/cache.ts b/packages/wxt/src/core/utils/cache.ts similarity index 100% rename from src/core/utils/cache.ts rename to packages/wxt/src/core/utils/cache.ts diff --git a/src/core/utils/cli.ts b/packages/wxt/src/core/utils/cli.ts similarity index 100% rename from src/core/utils/cli.ts rename to packages/wxt/src/core/utils/cli.ts diff --git a/src/core/utils/constants.ts b/packages/wxt/src/core/utils/constants.ts similarity index 100% rename from src/core/utils/constants.ts rename to packages/wxt/src/core/utils/constants.ts diff --git a/src/core/utils/content-scripts.ts b/packages/wxt/src/core/utils/content-scripts.ts similarity index 100% rename from src/core/utils/content-scripts.ts rename to packages/wxt/src/core/utils/content-scripts.ts diff --git a/src/core/utils/content-security-policy.ts b/packages/wxt/src/core/utils/content-security-policy.ts similarity index 100% rename from src/core/utils/content-security-policy.ts rename to packages/wxt/src/core/utils/content-security-policy.ts diff --git a/src/core/utils/entrypoints.ts b/packages/wxt/src/core/utils/entrypoints.ts similarity index 100% rename from src/core/utils/entrypoints.ts rename to packages/wxt/src/core/utils/entrypoints.ts diff --git a/src/core/utils/fs.ts b/packages/wxt/src/core/utils/fs.ts similarity index 100% rename from src/core/utils/fs.ts rename to packages/wxt/src/core/utils/fs.ts diff --git a/src/core/utils/globals.ts b/packages/wxt/src/core/utils/globals.ts similarity index 100% rename from src/core/utils/globals.ts rename to packages/wxt/src/core/utils/globals.ts diff --git a/src/core/utils/i18n.ts b/packages/wxt/src/core/utils/i18n.ts similarity index 100% rename from src/core/utils/i18n.ts rename to packages/wxt/src/core/utils/i18n.ts diff --git a/src/core/utils/log/index.ts b/packages/wxt/src/core/utils/log/index.ts similarity index 100% rename from src/core/utils/log/index.ts rename to packages/wxt/src/core/utils/log/index.ts diff --git a/src/core/utils/log/printBuildSummary.ts b/packages/wxt/src/core/utils/log/printBuildSummary.ts similarity index 100% rename from src/core/utils/log/printBuildSummary.ts rename to packages/wxt/src/core/utils/log/printBuildSummary.ts diff --git a/src/core/utils/log/printFileList.ts b/packages/wxt/src/core/utils/log/printFileList.ts similarity index 100% rename from src/core/utils/log/printFileList.ts rename to packages/wxt/src/core/utils/log/printFileList.ts diff --git a/src/core/utils/log/printHeader.ts b/packages/wxt/src/core/utils/log/printHeader.ts similarity index 100% rename from src/core/utils/log/printHeader.ts rename to packages/wxt/src/core/utils/log/printHeader.ts diff --git a/src/core/utils/log/printTable.ts b/packages/wxt/src/core/utils/log/printTable.ts similarity index 100% rename from src/core/utils/log/printTable.ts rename to packages/wxt/src/core/utils/log/printTable.ts diff --git a/src/core/utils/manifest.ts b/packages/wxt/src/core/utils/manifest.ts similarity index 100% rename from src/core/utils/manifest.ts rename to packages/wxt/src/core/utils/manifest.ts diff --git a/src/core/utils/network.ts b/packages/wxt/src/core/utils/network.ts similarity index 100% rename from src/core/utils/network.ts rename to packages/wxt/src/core/utils/network.ts diff --git a/src/core/utils/package.ts b/packages/wxt/src/core/utils/package.ts similarity index 100% rename from src/core/utils/package.ts rename to packages/wxt/src/core/utils/package.ts diff --git a/src/core/utils/paths.ts b/packages/wxt/src/core/utils/paths.ts similarity index 100% rename from src/core/utils/paths.ts rename to packages/wxt/src/core/utils/paths.ts diff --git a/src/core/utils/strings.ts b/packages/wxt/src/core/utils/strings.ts similarity index 100% rename from src/core/utils/strings.ts rename to packages/wxt/src/core/utils/strings.ts diff --git a/src/core/utils/testing/fake-objects.ts b/packages/wxt/src/core/utils/testing/fake-objects.ts similarity index 100% rename from src/core/utils/testing/fake-objects.ts rename to packages/wxt/src/core/utils/testing/fake-objects.ts diff --git a/src/core/utils/time.ts b/packages/wxt/src/core/utils/time.ts similarity index 100% rename from src/core/utils/time.ts rename to packages/wxt/src/core/utils/time.ts diff --git a/src/core/utils/types.ts b/packages/wxt/src/core/utils/types.ts similarity index 100% rename from src/core/utils/types.ts rename to packages/wxt/src/core/utils/types.ts diff --git a/src/core/utils/validation.ts b/packages/wxt/src/core/utils/validation.ts similarity index 100% rename from src/core/utils/validation.ts rename to packages/wxt/src/core/utils/validation.ts diff --git a/src/core/utils/virtual-modules.ts b/packages/wxt/src/core/utils/virtual-modules.ts similarity index 100% rename from src/core/utils/virtual-modules.ts rename to packages/wxt/src/core/utils/virtual-modules.ts diff --git a/src/core/utils/wsl.ts b/packages/wxt/src/core/utils/wsl.ts similarity index 100% rename from src/core/utils/wsl.ts rename to packages/wxt/src/core/utils/wsl.ts diff --git a/src/core/wxt.ts b/packages/wxt/src/core/wxt.ts similarity index 100% rename from src/core/wxt.ts rename to packages/wxt/src/core/wxt.ts diff --git a/src/core/zip.ts b/packages/wxt/src/core/zip.ts similarity index 100% rename from src/core/zip.ts rename to packages/wxt/src/core/zip.ts diff --git a/src/index.ts b/packages/wxt/src/index.ts similarity index 100% rename from src/index.ts rename to packages/wxt/src/index.ts diff --git a/src/sandbox/__tests__/define-background.test.ts b/packages/wxt/src/sandbox/__tests__/define-background.test.ts similarity index 100% rename from src/sandbox/__tests__/define-background.test.ts rename to packages/wxt/src/sandbox/__tests__/define-background.test.ts diff --git a/src/sandbox/__tests__/define-content-script.test.ts b/packages/wxt/src/sandbox/__tests__/define-content-script.test.ts similarity index 100% rename from src/sandbox/__tests__/define-content-script.test.ts rename to packages/wxt/src/sandbox/__tests__/define-content-script.test.ts diff --git a/src/sandbox/__tests__/define-unlisted-script.test.ts b/packages/wxt/src/sandbox/__tests__/define-unlisted-script.test.ts similarity index 100% rename from src/sandbox/__tests__/define-unlisted-script.test.ts rename to packages/wxt/src/sandbox/__tests__/define-unlisted-script.test.ts diff --git a/src/sandbox/define-background.ts b/packages/wxt/src/sandbox/define-background.ts similarity index 100% rename from src/sandbox/define-background.ts rename to packages/wxt/src/sandbox/define-background.ts diff --git a/src/sandbox/define-content-script.ts b/packages/wxt/src/sandbox/define-content-script.ts similarity index 100% rename from src/sandbox/define-content-script.ts rename to packages/wxt/src/sandbox/define-content-script.ts diff --git a/src/sandbox/define-unlisted-script.ts b/packages/wxt/src/sandbox/define-unlisted-script.ts similarity index 100% rename from src/sandbox/define-unlisted-script.ts rename to packages/wxt/src/sandbox/define-unlisted-script.ts diff --git a/src/sandbox/index.ts b/packages/wxt/src/sandbox/index.ts similarity index 100% rename from src/sandbox/index.ts rename to packages/wxt/src/sandbox/index.ts diff --git a/src/sandbox/utils/logger.ts b/packages/wxt/src/sandbox/utils/logger.ts similarity index 100% rename from src/sandbox/utils/logger.ts rename to packages/wxt/src/sandbox/utils/logger.ts diff --git a/src/storage.ts b/packages/wxt/src/storage.ts similarity index 100% rename from src/storage.ts rename to packages/wxt/src/storage.ts diff --git a/src/testing/fake-browser.ts b/packages/wxt/src/testing/fake-browser.ts similarity index 100% rename from src/testing/fake-browser.ts rename to packages/wxt/src/testing/fake-browser.ts diff --git a/src/testing/index.ts b/packages/wxt/src/testing/index.ts similarity index 100% rename from src/testing/index.ts rename to packages/wxt/src/testing/index.ts diff --git a/src/testing/wxt-vitest-plugin.ts b/packages/wxt/src/testing/wxt-vitest-plugin.ts similarity index 100% rename from src/testing/wxt-vitest-plugin.ts rename to packages/wxt/src/testing/wxt-vitest-plugin.ts diff --git a/src/types/globals.d.ts b/packages/wxt/src/types/globals.d.ts similarity index 100% rename from src/types/globals.d.ts rename to packages/wxt/src/types/globals.d.ts diff --git a/src/types/index.ts b/packages/wxt/src/types/index.ts similarity index 100% rename from src/types/index.ts rename to packages/wxt/src/types/index.ts diff --git a/src/types/modules.d.ts b/packages/wxt/src/types/modules.d.ts similarity index 100% rename from src/types/modules.d.ts rename to packages/wxt/src/types/modules.d.ts diff --git a/src/types/project-types.d.ts b/packages/wxt/src/types/project-types.d.ts similarity index 100% rename from src/types/project-types.d.ts rename to packages/wxt/src/types/project-types.d.ts diff --git a/src/version.ts b/packages/wxt/src/version.ts similarity index 100% rename from src/version.ts rename to packages/wxt/src/version.ts diff --git a/src/virtual/README.md b/packages/wxt/src/virtual/README.md similarity index 100% rename from src/virtual/README.md rename to packages/wxt/src/virtual/README.md diff --git a/src/virtual/background-entrypoint.ts b/packages/wxt/src/virtual/background-entrypoint.ts similarity index 100% rename from src/virtual/background-entrypoint.ts rename to packages/wxt/src/virtual/background-entrypoint.ts diff --git a/src/virtual/content-script-isolated-world-entrypoint.ts b/packages/wxt/src/virtual/content-script-isolated-world-entrypoint.ts similarity index 100% rename from src/virtual/content-script-isolated-world-entrypoint.ts rename to packages/wxt/src/virtual/content-script-isolated-world-entrypoint.ts diff --git a/src/virtual/content-script-main-world-entrypoint.ts b/packages/wxt/src/virtual/content-script-main-world-entrypoint.ts similarity index 100% rename from src/virtual/content-script-main-world-entrypoint.ts rename to packages/wxt/src/virtual/content-script-main-world-entrypoint.ts diff --git a/src/virtual/mock-browser.ts b/packages/wxt/src/virtual/mock-browser.ts similarity index 100% rename from src/virtual/mock-browser.ts rename to packages/wxt/src/virtual/mock-browser.ts diff --git a/src/virtual/reload-html.ts b/packages/wxt/src/virtual/reload-html.ts similarity index 100% rename from src/virtual/reload-html.ts rename to packages/wxt/src/virtual/reload-html.ts diff --git a/src/virtual/tsconfig.json b/packages/wxt/src/virtual/tsconfig.json similarity index 69% rename from src/virtual/tsconfig.json rename to packages/wxt/src/virtual/tsconfig.json index 929d30b6..19d51126 100644 --- a/src/virtual/tsconfig.json +++ b/packages/wxt/src/virtual/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.base.json", + "extends": "../../../../tsconfig.base.json", "compilerOptions": { "types": ["vite/client", "../types/globals.d.ts"] }, diff --git a/src/virtual/unlisted-script-entrypoint.ts b/packages/wxt/src/virtual/unlisted-script-entrypoint.ts similarity index 100% rename from src/virtual/unlisted-script-entrypoint.ts rename to packages/wxt/src/virtual/unlisted-script-entrypoint.ts diff --git a/src/virtual/utils/keep-service-worker-alive.ts b/packages/wxt/src/virtual/utils/keep-service-worker-alive.ts similarity index 100% rename from src/virtual/utils/keep-service-worker-alive.ts rename to packages/wxt/src/virtual/utils/keep-service-worker-alive.ts diff --git a/src/virtual/utils/reload-content-scripts.ts b/packages/wxt/src/virtual/utils/reload-content-scripts.ts similarity index 100% rename from src/virtual/utils/reload-content-scripts.ts rename to packages/wxt/src/virtual/utils/reload-content-scripts.ts diff --git a/src/virtual/utils/setup-web-socket.ts b/packages/wxt/src/virtual/utils/setup-web-socket.ts similarity index 100% rename from src/virtual/utils/setup-web-socket.ts rename to packages/wxt/src/virtual/utils/setup-web-socket.ts diff --git a/src/virtual/virtual-module-globals.d.ts b/packages/wxt/src/virtual/virtual-module-globals.d.ts similarity index 100% rename from src/virtual/virtual-module-globals.d.ts rename to packages/wxt/src/virtual/virtual-module-globals.d.ts diff --git a/src/vite-builder-env.d.ts b/packages/wxt/src/vite-builder-env.d.ts similarity index 100% rename from src/vite-builder-env.d.ts rename to packages/wxt/src/vite-builder-env.d.ts diff --git a/packages/wxt/tsconfig.json b/packages/wxt/tsconfig.json new file mode 100644 index 00000000..5f5543bd --- /dev/null +++ b/packages/wxt/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "paths": { + "~/*": ["./src/*"] + } + }, + "exclude": ["node_modules", "src/virtual", "e2e/dist"] +} diff --git a/packages/wxt/typedoc.json b/packages/wxt/typedoc.json new file mode 100644 index 00000000..c1cfe796 --- /dev/null +++ b/packages/wxt/typedoc.json @@ -0,0 +1,10 @@ +{ + "entryPoints": [ + "src/client/index.ts", + "src/testing/index.ts", + "src/sandbox/index.ts", + "src/browser.ts", + "src/index.ts", + "src/storage.ts" + ] +} diff --git a/packages/wxt/vitest.config.ts b/packages/wxt/vitest.config.ts new file mode 100644 index 00000000..1aa9b1db --- /dev/null +++ b/packages/wxt/vitest.config.ts @@ -0,0 +1,27 @@ +import { defineProject } from 'vitest/config'; +import path from 'node:path'; +import RandomSeed from 'vitest-plugin-random-seed'; +import fs from 'fs-extra'; + +// Clear e2e test projects +await fs.rm(path.resolve(__dirname, 'e2e/dist'), { + recursive: true, + force: true, +}); + +export default defineProject({ + test: { + mockReset: true, + restoreMocks: true, + setupFiles: ['vitest.setup.ts'], + testTimeout: 120e3, + }, + plugins: [RandomSeed()], + resolve: { + alias: { + '~': path.resolve(__dirname, 'src'), + 'wxt/testing': path.resolve('src/testing'), + 'webextension-polyfill': path.resolve('src/virtual/mock-browser'), + }, + }, +}); diff --git a/vitest.setup.ts b/packages/wxt/vitest.setup.ts similarity index 100% rename from vitest.setup.ts rename to packages/wxt/vitest.setup.ts diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index abaf2856..fd9087bb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,6 +7,63 @@ settings: importers: .: + devDependencies: + '@aklinker1/check': + specifier: ^1.1.1 + version: 1.2.0(typescript@5.3.3) + '@vitest/coverage-v8': + specifier: ^1.0.1 + version: 1.2.2(vitest@1.5.3) + consola: + specifier: ^3.2.3 + version: 3.2.3 + execa: + specifier: ^8.0.1 + version: 8.0.1 + lint-staged: + specifier: ^15.2.0 + version: 15.2.2 + npm-run-all: + specifier: ^4.1.5 + version: 4.1.5 + prettier: + specifier: ^3.1.0 + version: 3.1.1 + simple-git-hooks: + specifier: ^2.9.0 + version: 2.11.1 + typedoc: + specifier: ^0.25.4 + version: 0.25.4(typescript@5.3.3) + typedoc-plugin-markdown: + specifier: 4.0.0-next.23 + version: 4.0.0-next.23(typedoc@0.25.4) + typedoc-vitepress-theme: + specifier: 1.0.0-next.3 + version: 1.0.0-next.3(typedoc-plugin-markdown@4.0.0-next.23) + typescript: + specifier: ^5.3.2 + version: 5.3.3 + vitepress: + specifier: 1.0.0-rc.34 + version: 1.0.0-rc.34(typescript@5.3.3) + vitest: + specifier: ^1.5.3 + version: 1.5.3 + vitest-mock-extended: + specifier: ^1.3.1 + version: 1.3.1(typescript@5.3.3)(vitest@1.5.3) + vitest-plugin-random-seed: + specifier: ^1.0.2 + version: 1.0.2(vite@5.2.8) + vue: + specifier: ^3.3.10 + version: 3.4.21(typescript@5.3.3) + wxt: + specifier: workspace:* + version: link:packages/wxt + + packages/wxt: dependencies: '@aklinker1/rollup-plugin-visualizer': specifier: 5.12.0 @@ -38,9 +95,6 @@ importers: ci-info: specifier: ^4.0.0 version: 4.0.0 - consola: - specifier: ^3.2.3 - version: 3.2.3 defu: specifier: ^6.1.3 version: 6.1.4 @@ -115,7 +169,7 @@ importers: version: 3.4.0 vite: specifier: ^5.2.8 - version: 5.2.8(@types/node@20.10.3)(sass@1.69.5) + version: 5.2.8(@types/node@20.10.3) web-ext-run: specifier: ^0.2.0 version: 0.2.0 @@ -147,9 +201,6 @@ importers: '@types/prompts': specifier: ^2.4.9 version: 2.4.9 - '@vitest/coverage-v8': - specifier: ^1.0.1 - version: 1.2.2(vitest@1.2.2) execa: specifier: ^8.0.1 version: 8.0.1 @@ -159,62 +210,26 @@ importers: happy-dom: specifier: ^13.3.8 version: 13.3.8 - lint-staged: - specifier: ^15.2.0 - version: 15.2.2 lodash.merge: specifier: ^4.6.2 version: 4.6.2 - npm-run-all: - specifier: ^4.1.5 - version: 4.1.5 p-map: specifier: ^7.0.0 version: 7.0.1 - prettier: - specifier: ^3.1.0 - version: 3.1.1 publint: specifier: ^0.2.6 version: 0.2.7 - simple-git-hooks: - specifier: ^2.9.0 - version: 2.11.1 tsup: specifier: ^8.0.1 version: 8.0.1(typescript@5.3.3) tsx: specifier: ^4.6.2 version: 4.7.0 - typedoc: - specifier: ^0.25.4 - version: 0.25.4(typescript@5.3.3) - typedoc-plugin-markdown: - specifier: 4.0.0-next.23 - version: 4.0.0-next.23(typedoc@0.25.4) - typedoc-vitepress-theme: - specifier: 1.0.0-next.3 - version: 1.0.0-next.3(typedoc-plugin-markdown@4.0.0-next.23) typescript: specifier: ^5.3.2 version: 5.3.3 - vitepress: - specifier: 1.0.0-rc.34 - version: 1.0.0-rc.34(@types/node@20.10.3)(typescript@5.3.3) - vitest: - specifier: ^1.2.2 - version: 1.2.2(@types/node@20.10.3)(happy-dom@13.3.8)(sass@1.69.5) - vitest-mock-extended: - specifier: ^1.3.1 - version: 1.3.1(typescript@5.3.3)(vitest@1.2.2) - vitest-plugin-random-seed: - specifier: ^1.0.2 - version: 1.0.2(vite@5.2.8) - vue: - specifier: ^3.3.10 - version: 3.4.21(typescript@5.3.3) - demo: + packages/wxt-demo: dependencies: react: specifier: ^18.2.0 @@ -222,9 +237,6 @@ importers: react-dom: specifier: ^18.2.0 version: 18.2.0(react@18.2.0) - vitest: - specifier: ^1.2.2 - version: 1.2.2(@types/node@20.10.3)(happy-dom@13.3.8)(sass@1.69.5) devDependencies: '@types/react': specifier: ^18.2.34 @@ -235,9 +247,12 @@ importers: sass: specifier: ^1.69.5 version: 1.69.5 + typescript: + specifier: ^5.3.2 + version: 5.3.3 wxt: specifier: workspace:* - version: link:.. + version: link:../wxt packages: @@ -574,6 +589,7 @@ packages: cpu: [arm64] os: [android] requiresBuild: true + dev: false optional: true /@esbuild/android-arm64@0.20.2: @@ -599,6 +615,7 @@ packages: cpu: [arm] os: [android] requiresBuild: true + dev: false optional: true /@esbuild/android-arm@0.20.2: @@ -624,6 +641,7 @@ packages: cpu: [x64] os: [android] requiresBuild: true + dev: false optional: true /@esbuild/android-x64@0.20.2: @@ -649,6 +667,7 @@ packages: cpu: [arm64] os: [darwin] requiresBuild: true + dev: false optional: true /@esbuild/darwin-arm64@0.20.2: @@ -674,6 +693,7 @@ packages: cpu: [x64] os: [darwin] requiresBuild: true + dev: false optional: true /@esbuild/darwin-x64@0.20.2: @@ -699,6 +719,7 @@ packages: cpu: [arm64] os: [freebsd] requiresBuild: true + dev: false optional: true /@esbuild/freebsd-arm64@0.20.2: @@ -724,6 +745,7 @@ packages: cpu: [x64] os: [freebsd] requiresBuild: true + dev: false optional: true /@esbuild/freebsd-x64@0.20.2: @@ -749,6 +771,7 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true + dev: false optional: true /@esbuild/linux-arm64@0.20.2: @@ -774,6 +797,7 @@ packages: cpu: [arm] os: [linux] requiresBuild: true + dev: false optional: true /@esbuild/linux-arm@0.20.2: @@ -799,6 +823,7 @@ packages: cpu: [ia32] os: [linux] requiresBuild: true + dev: false optional: true /@esbuild/linux-ia32@0.20.2: @@ -824,6 +849,7 @@ packages: cpu: [loong64] os: [linux] requiresBuild: true + dev: false optional: true /@esbuild/linux-loong64@0.20.2: @@ -849,6 +875,7 @@ packages: cpu: [mips64el] os: [linux] requiresBuild: true + dev: false optional: true /@esbuild/linux-mips64el@0.20.2: @@ -874,6 +901,7 @@ packages: cpu: [ppc64] os: [linux] requiresBuild: true + dev: false optional: true /@esbuild/linux-ppc64@0.20.2: @@ -899,6 +927,7 @@ packages: cpu: [riscv64] os: [linux] requiresBuild: true + dev: false optional: true /@esbuild/linux-riscv64@0.20.2: @@ -924,6 +953,7 @@ packages: cpu: [s390x] os: [linux] requiresBuild: true + dev: false optional: true /@esbuild/linux-s390x@0.20.2: @@ -949,6 +979,7 @@ packages: cpu: [x64] os: [linux] requiresBuild: true + dev: false optional: true /@esbuild/linux-x64@0.20.2: @@ -974,6 +1005,7 @@ packages: cpu: [x64] os: [netbsd] requiresBuild: true + dev: false optional: true /@esbuild/netbsd-x64@0.20.2: @@ -999,6 +1031,7 @@ packages: cpu: [x64] os: [openbsd] requiresBuild: true + dev: false optional: true /@esbuild/openbsd-x64@0.20.2: @@ -1024,6 +1057,7 @@ packages: cpu: [x64] os: [sunos] requiresBuild: true + dev: false optional: true /@esbuild/sunos-x64@0.20.2: @@ -1049,6 +1083,7 @@ packages: cpu: [arm64] os: [win32] requiresBuild: true + dev: false optional: true /@esbuild/win32-arm64@0.20.2: @@ -1074,6 +1109,7 @@ packages: cpu: [ia32] os: [win32] requiresBuild: true + dev: false optional: true /@esbuild/win32-ia32@0.20.2: @@ -1099,6 +1135,7 @@ packages: cpu: [x64] os: [win32] requiresBuild: true + dev: false optional: true /@esbuild/win32-x64@0.20.2: @@ -1124,6 +1161,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@sinclair/typebox': 0.27.8 + dev: true /@jridgewell/gen-mapping@0.3.3: resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} @@ -1206,7 +1244,7 @@ packages: rollup: optional: true dependencies: - '@types/estree': 1.0.4 + '@types/estree': 1.0.5 estree-walker: 2.0.2 picomatch: 2.3.1 dev: false @@ -1218,14 +1256,6 @@ packages: requiresBuild: true optional: true - /@rollup/rollup-android-arm-eabi@4.6.1: - resolution: {integrity: sha512-0WQ0ouLejaUCRsL93GD4uft3rOmB8qoQMU05Kb8CmMtMBe7XUDLAltxVZI1q6byNqEtU7N1ZX1Vw5lIpgulLQA==} - cpu: [arm] - os: [android] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-android-arm64@4.14.0: resolution: {integrity: sha512-fI9nduZhCccjzlsA/OuAwtFGWocxA4gqXGTLvOyiF8d+8o0fZUeSztixkYjcGq1fGZY3Tkq4yRvHPFxU+jdZ9Q==} cpu: [arm64] @@ -1233,14 +1263,6 @@ packages: requiresBuild: true optional: true - /@rollup/rollup-android-arm64@4.6.1: - resolution: {integrity: sha512-1TKm25Rn20vr5aTGGZqo6E4mzPicCUD79k17EgTLAsXc1zysyi4xXKACfUbwyANEPAEIxkzwue6JZ+stYzWUTA==} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-darwin-arm64@4.14.0: resolution: {integrity: sha512-BcnSPRM76/cD2gQC+rQNGBN6GStBs2pl/FpweW8JYuz5J/IEa0Fr4AtrPv766DB/6b2MZ/AfSIOSGw3nEIP8SA==} cpu: [arm64] @@ -1248,14 +1270,6 @@ packages: requiresBuild: true optional: true - /@rollup/rollup-darwin-arm64@4.6.1: - resolution: {integrity: sha512-cEXJQY/ZqMACb+nxzDeX9IPLAg7S94xouJJCNVE5BJM8JUEP4HeTF+ti3cmxWeSJo+5D+o8Tc0UAWUkfENdeyw==} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-darwin-x64@4.14.0: resolution: {integrity: sha512-LDyFB9GRolGN7XI6955aFeI3wCdCUszFWumWU0deHA8VpR3nWRrjG6GtGjBrQxQKFevnUTHKCfPR4IvrW3kCgQ==} cpu: [x64] @@ -1263,14 +1277,6 @@ packages: requiresBuild: true optional: true - /@rollup/rollup-darwin-x64@4.6.1: - resolution: {integrity: sha512-LoSU9Xu56isrkV2jLldcKspJ7sSXmZWkAxg7sW/RfF7GS4F5/v4EiqKSMCFbZtDu2Nc1gxxFdQdKwkKS4rwxNg==} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.14.0: resolution: {integrity: sha512-ygrGVhQP47mRh0AAD0zl6QqCbNsf0eTo+vgwkY6LunBcg0f2Jv365GXlDUECIyoXp1kKwL5WW6rsO429DBY/bA==} cpu: [arm] @@ -1278,14 +1284,6 @@ packages: requiresBuild: true optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.6.1: - resolution: {integrity: sha512-EfI3hzYAy5vFNDqpXsNxXcgRDcFHUWSx5nnRSCKwXuQlI5J9dD84g2Usw81n3FLBNsGCegKGwwTVsSKK9cooSQ==} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-linux-arm64-gnu@4.14.0: resolution: {integrity: sha512-x+uJ6MAYRlHGe9wi4HQjxpaKHPM3d3JjqqCkeC5gpnnI6OWovLdXTpfa8trjxPLnWKyBsSi5kne+146GAxFt4A==} cpu: [arm64] @@ -1293,14 +1291,6 @@ packages: requiresBuild: true optional: true - /@rollup/rollup-linux-arm64-gnu@4.6.1: - resolution: {integrity: sha512-9lhc4UZstsegbNLhH0Zu6TqvDfmhGzuCWtcTFXY10VjLLUe4Mr0Ye2L3rrtHaDd/J5+tFMEuo5LTCSCMXWfUKw==} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-linux-arm64-musl@4.14.0: resolution: {integrity: sha512-nrRw8ZTQKg6+Lttwqo6a2VxR9tOroa2m91XbdQ2sUUzHoedXlsyvY1fN4xWdqz8PKmf4orDwejxXHjh7YBGUCA==} cpu: [arm64] @@ -1308,14 +1298,6 @@ packages: requiresBuild: true optional: true - /@rollup/rollup-linux-arm64-musl@4.6.1: - resolution: {integrity: sha512-FfoOK1yP5ksX3wwZ4Zk1NgyGHZyuRhf99j64I5oEmirV8EFT7+OhUZEnP+x17lcP/QHJNWGsoJwrz4PJ9fBEXw==} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-linux-powerpc64le-gnu@4.14.0: resolution: {integrity: sha512-xV0d5jDb4aFu84XKr+lcUJ9y3qpIWhttO3Qev97z8DKLXR62LC3cXT/bMZXrjLF9X+P5oSmJTzAhqwUbY96PnA==} cpu: [ppc64le] @@ -1344,14 +1326,6 @@ packages: requiresBuild: true optional: true - /@rollup/rollup-linux-x64-gnu@4.6.1: - resolution: {integrity: sha512-DNGZvZDO5YF7jN5fX8ZqmGLjZEXIJRdJEdTFMhiyXqyXubBa0WVLDWSNlQ5JR2PNgDbEV1VQowhVRUh+74D+RA==} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-linux-x64-musl@4.14.0: resolution: {integrity: sha512-i0QwbHYfnOMYsBEyjxcwGu5SMIi9sImDVjDg087hpzXqhBSosxkE7gyIYFHgfFl4mr7RrXksIBZ4DoLoP4FhJg==} cpu: [x64] @@ -1359,14 +1333,6 @@ packages: requiresBuild: true optional: true - /@rollup/rollup-linux-x64-musl@4.6.1: - resolution: {integrity: sha512-RkJVNVRM+piYy87HrKmhbexCHg3A6Z6MU0W9GHnJwBQNBeyhCJG9KDce4SAMdicQnpURggSvtbGo9xAWOfSvIQ==} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-win32-arm64-msvc@4.14.0: resolution: {integrity: sha512-Fq52EYb0riNHLBTAcL0cun+rRwyZ10S9vKzhGKKgeD+XbwunszSY0rVMco5KbOsTlwovP2rTOkiII/fQ4ih/zQ==} cpu: [arm64] @@ -1374,14 +1340,6 @@ packages: requiresBuild: true optional: true - /@rollup/rollup-win32-arm64-msvc@4.6.1: - resolution: {integrity: sha512-v2FVT6xfnnmTe3W9bJXl6r5KwJglMK/iRlkKiIFfO6ysKs0rDgz7Cwwf3tjldxQUrHL9INT/1r4VA0n9L/F1vQ==} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-win32-ia32-msvc@4.14.0: resolution: {integrity: sha512-e/PBHxPdJ00O9p5Ui43+vixSgVf4NlLsmV6QneGERJ3lnjIua/kim6PRFe3iDueT1rQcgSkYP8ZBBXa/h4iPvw==} cpu: [ia32] @@ -1389,14 +1347,6 @@ packages: requiresBuild: true optional: true - /@rollup/rollup-win32-ia32-msvc@4.6.1: - resolution: {integrity: sha512-YEeOjxRyEjqcWphH9dyLbzgkF8wZSKAKUkldRY6dgNR5oKs2LZazqGB41cWJ4Iqqcy9/zqYgmzBkRoVz3Q9MLw==} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-win32-x64-msvc@4.14.0: resolution: {integrity: sha512-aGg7iToJjdklmxlUlJh/PaPNa4PmqHfyRMLunbL3eaMO0gp656+q1zOKkpJ/CVe9CryJv6tAN1HDoR8cNGzkag==} cpu: [x64] @@ -1404,16 +1354,9 @@ packages: requiresBuild: true optional: true - /@rollup/rollup-win32-x64-msvc@4.6.1: - resolution: {integrity: sha512-0zfTlFAIhgz8V2G8STq8toAjsYYA6eci1hnXuyOTUFnymrtJwnS6uGKiv3v5UrPZkBlamLvrLV2iiaeqCKzb0A==} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - /@sinclair/typebox@0.27.8: resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + dev: true /@sindresorhus/is@5.4.1: resolution: {integrity: sha512-axlrvsHlHlFmKKMEg4VyvMzFr93JWJj4eIfXY1STVuO2fsImCa7ncaiG5gC8HKOX590AW5RtRsC41/B+OfrSqw==} @@ -1427,9 +1370,6 @@ packages: defer-to-connect: 2.0.1 dev: false - /@types/estree@1.0.4: - resolution: {integrity: sha512-2JwWnHK9H+wUZNorf2Zr6ves96WHoWDJIftkcxPKsS7Djta6Zu519LarhRNljPXkpsZR2ZMwNCPeW7omW07BJw==} - /@types/estree@1.0.5: resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} @@ -1518,7 +1458,7 @@ packages: dependencies: '@types/prop-types': 15.7.9 '@types/scheduler': 0.16.5 - csstype: 3.1.2 + csstype: 3.1.3 dev: true /@types/react@18.3.1: @@ -1554,11 +1494,11 @@ packages: vite: ^5.0.0 vue: ^3.2.25 dependencies: - vite: 5.2.8(@types/node@20.10.3)(sass@1.69.5) + vite: 5.2.8(@types/node@20.10.3) vue: 3.4.21(typescript@5.3.3) dev: true - /@vitest/coverage-v8@1.2.2(vitest@1.2.2): + /@vitest/coverage-v8@1.2.2(vitest@1.5.3): resolution: {integrity: sha512-IHyKnDz18SFclIEEAHb9Y4Uxx0sPKC2VO1kdDCs1BF6Ip4S8rQprs971zIsooLUn7Afs71GRxWMWpkCGZpRMhw==} peerDependencies: vitest: ^1.0.0 @@ -1570,50 +1510,55 @@ packages: istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 4.0.1 istanbul-reports: 3.1.6 - magic-string: 0.30.5 + magic-string: 0.30.8 magicast: 0.3.3 picocolors: 1.0.0 std-env: 3.6.0 test-exclude: 6.0.0 v8-to-istanbul: 9.2.0 - vitest: 1.2.2(@types/node@20.10.3)(happy-dom@13.3.8)(sass@1.69.5) + vitest: 1.5.3 transitivePeerDependencies: - supports-color dev: true - /@vitest/expect@1.2.2: - resolution: {integrity: sha512-3jpcdPAD7LwHUUiT2pZTj2U82I2Tcgg2oVPvKxhn6mDI2On6tfvPQTjAI4628GUGDZrCm4Zna9iQHm5cEexOAg==} + /@vitest/expect@1.5.3: + resolution: {integrity: sha512-y+waPz31pOFr3rD7vWTbwiLe5+MgsMm40jTZbQE8p8/qXyBX3CQsIXRx9XK12IbY7q/t5a5aM/ckt33b4PxK2g==} dependencies: - '@vitest/spy': 1.2.2 - '@vitest/utils': 1.2.2 + '@vitest/spy': 1.5.3 + '@vitest/utils': 1.5.3 chai: 4.3.10 + dev: true - /@vitest/runner@1.2.2: - resolution: {integrity: sha512-JctG7QZ4LSDXr5CsUweFgcpEvrcxOV1Gft7uHrvkQ+fsAVylmWQvnaAr/HDp3LAH1fztGMQZugIheTWjaGzYIg==} + /@vitest/runner@1.5.3: + resolution: {integrity: sha512-7PlfuReN8692IKQIdCxwir1AOaP5THfNkp0Uc4BKr2na+9lALNit7ub9l3/R7MP8aV61+mHKRGiqEKRIwu6iiQ==} dependencies: - '@vitest/utils': 1.2.2 + '@vitest/utils': 1.5.3 p-limit: 5.0.0 pathe: 1.1.2 + dev: true - /@vitest/snapshot@1.2.2: - resolution: {integrity: sha512-SmGY4saEw1+bwE1th6S/cZmPxz/Q4JWsl7LvbQIky2tKE35US4gd0Mjzqfr84/4OD0tikGWaWdMja/nWL5NIPA==} + /@vitest/snapshot@1.5.3: + resolution: {integrity: sha512-K3mvIsjyKYBhNIDujMD2gfQEzddLe51nNOAf45yKRt/QFJcUIeTQd2trRvv6M6oCBHNVnZwFWbQ4yj96ibiDsA==} dependencies: magic-string: 0.30.8 pathe: 1.1.2 pretty-format: 29.7.0 + dev: true - /@vitest/spy@1.2.2: - resolution: {integrity: sha512-k9Gcahssw8d7X3pSLq3e3XEu/0L78mUkCjivUqCQeXJm9clfXR/Td8+AP+VC1O6fKPIDLcHDTAmBOINVuv6+7g==} + /@vitest/spy@1.5.3: + resolution: {integrity: sha512-Llj7Jgs6lbnL55WoshJUUacdJfjU2honvGcAJBxhra5TPEzTJH8ZuhI3p/JwqqfnTr4PmP7nDmOXP53MS7GJlg==} dependencies: tinyspy: 2.2.0 + dev: true - /@vitest/utils@1.2.2: - resolution: {integrity: sha512-WKITBHLsBHlpjnDQahr+XK6RE7MiAsgrIkr0pGhQ9ygoxBfUeG0lUG5iLlzqjmKSlBv3+j5EGsriBzh+C3Tq9g==} + /@vitest/utils@1.5.3: + resolution: {integrity: sha512-rE9DTN1BRhzkzqNQO+kw8ZgfeEBCLXiHJwetk668shmNBpSagQxneT5eSqEBLP+cqSiAeecvQmbpFfdMyLcIQA==} dependencies: diff-sequences: 29.6.3 estree-walker: 3.0.3 loupe: 2.3.7 pretty-format: 29.7.0 + dev: true /@vue/compiler-core@3.4.21: resolution: {integrity: sha512-MjXawxZf2SbZszLPYxaFCjxfibYrzr3eYbKxwpLR9EQN+oaziSu3qKVbwBERj1IFIB8OLUewxB5m/BFzi613og==} @@ -1642,8 +1587,8 @@ packages: '@vue/shared': 3.4.21 estree-walker: 2.0.2 magic-string: 0.30.8 - postcss: 8.4.35 - source-map-js: 1.0.2 + postcss: 8.4.38 + source-map-js: 1.2.0 dev: true /@vue/compiler-ssr@3.4.21: @@ -1786,6 +1731,7 @@ packages: /acorn-walk@8.3.2: resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} engines: {node: '>=0.4.0'} + dev: true /acorn@8.11.3: resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} @@ -1866,6 +1812,7 @@ packages: /ansi-styles@5.2.0: resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} engines: {node: '>=10'} + dev: true /ansi-styles@6.2.1: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} @@ -1905,6 +1852,7 @@ packages: /assertion-error@1.1.0: resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + dev: true /async-mutex@0.4.0: resolution: {integrity: sha512-eJFZ1YhRR8UN8eBLoNzcDPcy/jqjsg6I1AP+KvWQX80BqOSW1oJPJXDylPUEeMr2ZQvHgnQ//Lp6f3RQ1zI7HA==} @@ -2024,13 +1972,13 @@ packages: run-applescript: 7.0.0 dev: false - /bundle-require@4.0.1(esbuild@0.19.8): + /bundle-require@4.0.1(esbuild@0.19.11): resolution: {integrity: sha512-9NQkRHlNdNpDBGmLpngF3EFDcwodhMUuLz9PaWYciVcQF9SE4LFjM2DB/xV1Li5JiuDMv7ZUWuC3rGbqR0MAXQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} peerDependencies: esbuild: '>=0.17' dependencies: - esbuild: 0.19.8 + esbuild: 0.19.11 load-tsconfig: 0.2.5 dev: true @@ -2107,6 +2055,7 @@ packages: loupe: 2.3.7 pathval: 1.1.1 type-detect: 4.0.8 + dev: true /chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} @@ -2132,6 +2081,7 @@ packages: resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} dependencies: get-func-name: 2.0.2 + dev: true /chokidar@3.6.0: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} @@ -2373,10 +2323,6 @@ packages: resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} dev: false - /csstype@3.1.2: - resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} - dev: true - /csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} dev: true @@ -2419,6 +2365,7 @@ packages: engines: {node: '>=6'} dependencies: type-detect: 4.0.8 + dev: true /deep-extend@0.6.0: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} @@ -2501,6 +2448,7 @@ packages: /diff-sequences@29.6.3: resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true /dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} @@ -2543,11 +2491,6 @@ packages: is-obj: 2.0.0 dev: false - /dotenv@16.3.1: - resolution: {integrity: sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==} - engines: {node: '>=12'} - dev: false - /dotenv@16.4.5: resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} engines: {node: '>=12'} @@ -2712,6 +2655,7 @@ packages: '@esbuild/win32-arm64': 0.19.8 '@esbuild/win32-ia32': 0.19.8 '@esbuild/win32-x64': 0.19.8 + dev: false /esbuild@0.20.2: resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} @@ -2773,7 +2717,8 @@ packages: /estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} dependencies: - '@types/estree': 1.0.4 + '@types/estree': 1.0.5 + dev: true /eventemitter3@5.0.1: resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} @@ -2989,6 +2934,7 @@ packages: /get-func-name@2.0.2: resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} + dev: true /get-intrinsic@1.2.1: resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} @@ -3040,8 +2986,8 @@ packages: defu: 6.1.4 https-proxy-agent: 7.0.2 mri: 1.2.0 - node-fetch-native: 1.4.1 - pathe: 1.1.1 + node-fetch-native: 1.6.4 + pathe: 1.1.2 tar: 6.2.0 transitivePeerDependencies: - supports-color @@ -3175,6 +3121,7 @@ packages: entities: 4.5.0 webidl-conversions: 7.0.0 whatwg-mimetype: 3.0.0 + dev: true /has-bigints@1.0.2: resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} @@ -3309,6 +3256,7 @@ packages: /immutable@4.3.4: resolution: {integrity: sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==} + dev: true /import-lazy@4.0.0: resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} @@ -3664,6 +3612,10 @@ packages: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} dev: false + /js-tokens@9.0.0: + resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==} + dev: true + /json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} dev: false @@ -3833,6 +3785,7 @@ packages: dependencies: mlly: 1.6.1 pkg-types: 1.0.3 + dev: true /lodash.camelcase@4.3.0: resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} @@ -3882,6 +3835,7 @@ packages: resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} dependencies: get-func-name: 2.0.2 + dev: true /lowercase-keys@3.0.0: resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==} @@ -3898,12 +3852,6 @@ packages: resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==} dev: true - /magic-string@0.30.5: - resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} - engines: {node: '>=12'} - dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 - /magic-string@0.30.8: resolution: {integrity: sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==} engines: {node: '>=12'} @@ -3915,7 +3863,7 @@ packages: dependencies: '@babel/parser': 7.24.1 '@babel/types': 7.23.9 - source-map-js: 1.0.2 + source-map-js: 1.2.0 dev: true /make-dir@4.0.0: @@ -4041,15 +3989,6 @@ packages: hasBin: true dev: false - /mlly@1.4.2: - resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==} - dependencies: - acorn: 8.11.3 - pathe: 1.1.2 - pkg-types: 1.0.3 - ufo: 1.4.0 - dev: false - /mlly@1.6.1: resolution: {integrity: sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA==} dependencies: @@ -4134,10 +4073,6 @@ packages: resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} dev: true - /node-fetch-native@1.4.1: - resolution: {integrity: sha512-NsXBU0UgBxo2rQLOeWNZqS3fvflWePMECr8CoSWoSTqCqGbVVsvl9vZu1HfQicYN0g5piV9Gh8RTEvo/uP752w==} - dev: false - /node-fetch-native@1.6.4: resolution: {integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==} dev: false @@ -4382,6 +4317,7 @@ packages: engines: {node: '>=18'} dependencies: yocto-queue: 1.0.0 + dev: true /p-map@7.0.1: resolution: {integrity: sha512-2wnaR0XL/FDOj+TgpDuRb2KTjLnu3Fma6b1ZUwGY7LcqenMcvP/YFpjpbPKY6WVGsbuJZRuoUz8iPrt8ORnAFw==} @@ -4468,14 +4404,12 @@ packages: engines: {node: '>=8'} dev: true - /pathe@1.1.1: - resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==} - /pathe@1.1.2: resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} /pathval@1.1.1: resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + dev: true /pend@1.2.0: resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} @@ -4536,15 +4470,6 @@ packages: yaml: 2.3.4 dev: true - /postcss@8.4.35: - resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==} - engines: {node: ^10 || ^12 || >=14} - dependencies: - nanoid: 3.3.7 - picocolors: 1.0.0 - source-map-js: 1.2.0 - dev: true - /postcss@8.4.38: resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} engines: {node: ^10 || ^12 || >=14} @@ -4570,6 +4495,7 @@ packages: '@jest/schemas': 29.6.3 ansi-styles: 5.2.0 react-is: 18.2.0 + dev: true /process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} @@ -4612,7 +4538,7 @@ packages: cac: 6.7.14 cli-highlight: 2.1.11 consola: 3.2.3 - dotenv: 16.3.1 + dotenv: 16.4.5 extract-zip: 2.0.1 formdata-node: 6.0.3 listr2: 8.0.2 @@ -4684,6 +4610,7 @@ packages: /react-is@18.2.0: resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} + dev: true /react@18.2.0: resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} @@ -4843,26 +4770,6 @@ packages: '@rollup/rollup-win32-x64-msvc': 4.14.0 fsevents: 2.3.3 - /rollup@4.6.1: - resolution: {integrity: sha512-jZHaZotEHQaHLgKr8JnQiDT1rmatjgKlMekyksz+yk9jt/8z9quNjnKNRoaM0wd9DC2QKXjmWWuDYtM3jfF8pQ==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.6.1 - '@rollup/rollup-android-arm64': 4.6.1 - '@rollup/rollup-darwin-arm64': 4.6.1 - '@rollup/rollup-darwin-x64': 4.6.1 - '@rollup/rollup-linux-arm-gnueabihf': 4.6.1 - '@rollup/rollup-linux-arm64-gnu': 4.6.1 - '@rollup/rollup-linux-arm64-musl': 4.6.1 - '@rollup/rollup-linux-x64-gnu': 4.6.1 - '@rollup/rollup-linux-x64-musl': 4.6.1 - '@rollup/rollup-win32-arm64-msvc': 4.6.1 - '@rollup/rollup-win32-ia32-msvc': 4.6.1 - '@rollup/rollup-win32-x64-msvc': 4.6.1 - fsevents: 2.3.3 - dev: true - /run-applescript@5.0.0: resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==} engines: {node: '>=12'} @@ -4912,7 +4819,8 @@ packages: dependencies: chokidar: 3.6.0 immutable: 4.3.4 - source-map-js: 1.0.2 + source-map-js: 1.2.0 + dev: true /sax@1.2.4: resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} @@ -5028,6 +4936,7 @@ packages: /siginfo@2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + dev: true /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} @@ -5065,10 +4974,6 @@ packages: ansi-styles: 6.2.1 is-fullwidth-code-point: 5.0.0 - /source-map-js@1.0.2: - resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} - engines: {node: '>=0.10.0'} - /source-map-js@1.2.0: resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} engines: {node: '>=0.10.0'} @@ -5134,9 +5039,11 @@ packages: /stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + dev: true /std-env@3.6.0: resolution: {integrity: sha512-aFZ19IgVmhdB2uX599ve2kE6BIE3YMnQ6Gp6BURhW/oIzpXGKr878TQfAQZn1+i0Flcc/UKUy1gOlcfaUBCryg==} + dev: true /stdin-discarder@0.1.0: resolution: {integrity: sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==} @@ -5270,6 +5177,13 @@ packages: resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} dependencies: acorn: 8.11.3 + dev: false + + /strip-literal@2.1.0: + resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==} + dependencies: + js-tokens: 9.0.0 + dev: true /sucrase@3.32.0: resolution: {integrity: sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ==} @@ -5344,14 +5258,17 @@ packages: /tinybench@2.5.1: resolution: {integrity: sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==} + dev: true - /tinypool@0.8.2: - resolution: {integrity: sha512-SUszKYe5wgsxnNOVlBYO6IC+8VGWdVGZWAqUxp3UErNBtptZvWbwyUOyzNL59zigz2rCA92QiL3wvG+JDSdJdQ==} + /tinypool@0.8.4: + resolution: {integrity: sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==} engines: {node: '>=14.0.0'} + dev: true /tinyspy@2.2.0: resolution: {integrity: sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==} engines: {node: '>=14.0.0'} + dev: true /titleize@3.0.0: resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==} @@ -5422,17 +5339,17 @@ packages: typescript: optional: true dependencies: - bundle-require: 4.0.1(esbuild@0.19.8) + bundle-require: 4.0.1(esbuild@0.19.11) cac: 6.7.14 chokidar: 3.6.0 debug: 4.3.4 - esbuild: 0.19.8 + esbuild: 0.19.11 execa: 5.1.1 globby: 11.1.0 joycon: 3.1.1 postcss-load-config: 4.0.1 resolve-from: 5.0.0 - rollup: 4.6.1 + rollup: 4.14.0 source-map: 0.8.0-beta.0 sucrase: 3.32.0 tree-kill: 1.2.2 @@ -5456,6 +5373,7 @@ packages: /type-detect@4.0.8: resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} engines: {node: '>=4'} + dev: true /type-fest@1.4.0: resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} @@ -5551,9 +5469,9 @@ packages: escape-string-regexp: 5.0.0 fast-glob: 3.3.2 local-pkg: 0.4.3 - magic-string: 0.30.5 - mlly: 1.4.2 - pathe: 1.1.1 + magic-string: 0.30.8 + mlly: 1.6.1 + pathe: 1.1.2 pkg-types: 1.0.3 scule: 1.0.0 strip-literal: 1.3.0 @@ -5638,8 +5556,8 @@ packages: spdx-expression-parse: 3.0.1 dev: true - /vite-node@1.2.2(@types/node@20.10.3)(sass@1.69.5): - resolution: {integrity: sha512-1as4rDTgVWJO3n1uHmUYqq7nsFgINQ9u+mRcXpjeOMJUmviqNKjcZB7UfRZrlM7MjYXMKpuWp5oGkjaFLnjawg==} + /vite-node@1.5.3: + resolution: {integrity: sha512-axFo00qiCpU/JLd8N1gu9iEYL3xTbMbMrbe5nDp9GL0nb6gurIdZLkkFogZXWnE8Oyy5kfSLwNVIcVsnhE7lgQ==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true dependencies: @@ -5647,7 +5565,7 @@ packages: debug: 4.3.4 pathe: 1.1.2 picocolors: 1.0.0 - vite: 5.2.8(@types/node@20.10.3)(sass@1.69.5) + vite: 5.2.8(@types/node@20.10.3) transitivePeerDependencies: - '@types/node' - less @@ -5657,8 +5575,9 @@ packages: - sugarss - supports-color - terser + dev: true - /vite@5.2.8(@types/node@20.10.3)(sass@1.69.5): + /vite@5.2.8(@types/node@20.10.3): resolution: {integrity: sha512-OyZR+c1CE8yeHw5V5t59aXsUPPVTHMDjEZz8MgguLL/Q7NblxhZUlTu9xSPqlsUO/y+X7dlU05jdhvyycD55DA==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true @@ -5690,11 +5609,10 @@ packages: esbuild: 0.20.2 postcss: 8.4.38 rollup: 4.14.0 - sass: 1.69.5 optionalDependencies: fsevents: 2.3.3 - /vitepress@1.0.0-rc.34(@types/node@20.10.3)(typescript@5.3.3): + /vitepress@1.0.0-rc.34(typescript@5.3.3): resolution: {integrity: sha512-TUbTiSdAZFni2XlHlpx61KikgkQ5uG4Wtmw2R0SXhIOG6qGqzDJczAFjkMc4i45I9c3KyatwOYe8oEfCnzVYwQ==} hasBin: true peerDependencies: @@ -5720,7 +5638,7 @@ packages: shikiji: 0.9.16 shikiji-core: 0.9.16 shikiji-transformers: 0.9.16 - vite: 5.2.8(@types/node@20.10.3)(sass@1.69.5) + vite: 5.2.8(@types/node@20.10.3) vue: 3.4.21(typescript@5.3.3) transitivePeerDependencies: - '@algolia/client-search' @@ -5750,7 +5668,7 @@ packages: - universal-cookie dev: true - /vitest-mock-extended@1.3.1(typescript@5.3.3)(vitest@1.2.2): + /vitest-mock-extended@1.3.1(typescript@5.3.3)(vitest@1.5.3): resolution: {integrity: sha512-OpghYjh4BDuQ/Mzs3lFMQ1QRk9D8/2O9T47MLUA5eLn7K4RWIy+MfIivYOWEyxjTENjsBnzgMihDjyNalN/K0Q==} peerDependencies: typescript: 3.x || 4.x || 5.x @@ -5758,7 +5676,7 @@ packages: dependencies: ts-essentials: 9.3.2(typescript@5.3.3) typescript: 5.3.3 - vitest: 1.2.2(@types/node@20.10.3)(happy-dom@13.3.8)(sass@1.69.5) + vitest: 1.5.3 dev: true /vitest-plugin-random-seed@1.0.2(vite@5.2.8): @@ -5766,18 +5684,18 @@ packages: peerDependencies: vite: ^4.0.0 || ^5.0.0 dependencies: - vite: 5.2.8(@types/node@20.10.3)(sass@1.69.5) + vite: 5.2.8(@types/node@20.10.3) dev: true - /vitest@1.2.2(@types/node@20.10.3)(happy-dom@13.3.8)(sass@1.69.5): - resolution: {integrity: sha512-d5Ouvrnms3GD9USIK36KG8OZ5bEvKEkITFtnGv56HFaSlbItJuYr7hv2Lkn903+AvRAgSixiamozUVfORUekjw==} + /vitest@1.5.3: + resolution: {integrity: sha512-2oM7nLXylw3mQlW6GXnRriw+7YvZFk/YNV8AxIC3Z3MfFbuziLGWP9GPxxu/7nRlXhqyxBikpamr+lEEj1sUEw==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': ^1.0.0 - '@vitest/ui': ^1.0.0 + '@vitest/browser': 1.5.3 + '@vitest/ui': 1.5.3 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -5794,28 +5712,25 @@ packages: jsdom: optional: true dependencies: - '@types/node': 20.10.3 - '@vitest/expect': 1.2.2 - '@vitest/runner': 1.2.2 - '@vitest/snapshot': 1.2.2 - '@vitest/spy': 1.2.2 - '@vitest/utils': 1.2.2 + '@vitest/expect': 1.5.3 + '@vitest/runner': 1.5.3 + '@vitest/snapshot': 1.5.3 + '@vitest/spy': 1.5.3 + '@vitest/utils': 1.5.3 acorn-walk: 8.3.2 - cac: 6.7.14 chai: 4.3.10 debug: 4.3.4 execa: 8.0.1 - happy-dom: 13.3.8 local-pkg: 0.5.0 - magic-string: 0.30.5 - pathe: 1.1.1 + magic-string: 0.30.8 + pathe: 1.1.2 picocolors: 1.0.0 std-env: 3.6.0 - strip-literal: 1.3.0 + strip-literal: 2.1.0 tinybench: 2.5.1 - tinypool: 0.8.2 - vite: 5.2.8(@types/node@20.10.3)(sass@1.69.5) - vite-node: 1.2.2(@types/node@20.10.3)(sass@1.69.5) + tinypool: 0.8.4 + vite: 5.2.8(@types/node@20.10.3) + vite-node: 1.5.3 why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -5825,6 +5740,7 @@ packages: - sugarss - supports-color - terser + dev: true /vscode-oniguruma@1.7.0: resolution: {integrity: sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==} @@ -5924,6 +5840,7 @@ packages: /webidl-conversions@7.0.0: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} engines: {node: '>=12'} + dev: true /webpack-sources@3.2.3: resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} @@ -5937,6 +5854,7 @@ packages: /whatwg-mimetype@3.0.0: resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} engines: {node: '>=12'} + dev: true /whatwg-url@7.1.0: resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} @@ -6001,6 +5919,7 @@ packages: dependencies: siginfo: 2.0.0 stackback: 0.0.2 + dev: true /widest-line@4.0.1: resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} @@ -6140,6 +6059,7 @@ packages: /yocto-queue@1.0.0: resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} engines: {node: '>=12.20'} + dev: true /zip-dir@2.0.0: resolution: {integrity: sha512-uhlsJZWz26FLYXOD6WVuq+fIcZ3aBPGo/cFdiLlv3KNwpa52IF3ISV8fLhQLiqVu5No3VhlqlgthN6gehil1Dg==} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 3161b9a1..196993a9 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,3 +1,3 @@ packages: - docs - - demo + - packages/* diff --git a/scripts/stub.ts b/scripts/stub.ts new file mode 100644 index 00000000..ee575f0b --- /dev/null +++ b/scripts/stub.ts @@ -0,0 +1,7 @@ +// This file is a stub just so netlify doesn't throw an error when building +// docs. Once another TS file apart of the root project is added, this can be +// removed. +// If the website deploys on a PR branch with this file removed, you can safely +// delete it. + +export {}; diff --git a/tsconfig.base.json b/tsconfig.base.json index 1dbd78cf..8d979e11 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -10,6 +10,7 @@ /* Type Checking */ "strict": true, "lib": ["DOM", "WebWorker", "ESNext"], + "types": ["vitest-plugin-random-seed/types"], /* Linting */ "noUnusedLocals": true, diff --git a/tsconfig.json b/tsconfig.json index 6361cc9f..a732592a 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,10 +1,4 @@ { "extends": "./tsconfig.base.json", - "compilerOptions": { - "types": ["vitest-plugin-random-seed/types"], - "paths": { - "~/*": ["./src/*"] - } - }, - "exclude": ["dist", "demo", "e2e/dist", "templates", "src/virtual"] + "exclude": ["packages", "templates", "node_modules"] } diff --git a/vitest.workspace.json b/vitest.workspace.json new file mode 100644 index 00000000..6ad17000 --- /dev/null +++ b/vitest.workspace.json @@ -0,0 +1 @@ +["packages/*"] diff --git a/vitest.workspace.ts b/vitest.workspace.ts deleted file mode 100644 index aafb85fc..00000000 --- a/vitest.workspace.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { defineWorkspace } from 'vitest/config'; -import fs from 'fs-extra'; -import path from 'node:path'; -import RandomSeed from 'vitest-plugin-random-seed'; - -const resolve = { - alias: { - '~': path.resolve('src'), - 'webextension-polyfill': path.resolve('src/virtual/mock-browser'), - 'wxt/testing': path.resolve('src/testing'), - }, -}; - -// Clear e2e test projects -await fs.rm('e2e/dist', { recursive: true, force: true }); - -export default defineWorkspace([ - { - test: { - name: 'unit', - dir: 'src', - mockReset: true, - restoreMocks: true, - setupFiles: 'vitest.setup.ts', - }, - plugins: [RandomSeed()], - resolve, - }, - { - test: { - name: 'e2e', - dir: 'e2e', - testTimeout: 120e3, - }, - plugins: [RandomSeed()], - resolve, - }, -]);