wxt 0.20.13 → 0.20.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser.d.mts +20 -0
- package/dist/browser.mjs +18 -3
- package/dist/builtin-modules/index.mjs +7 -2
- package/dist/builtin-modules/unimport.mjs +69 -75
- package/dist/cli/cli-utils.mjs +52 -50
- package/dist/cli/commands.mjs +77 -103
- package/dist/cli/index.d.mts +1 -0
- package/dist/cli/index.mjs +9 -4
- package/dist/core/{build.d.ts → build.d.mts} +6 -2
- package/dist/core/build.mjs +23 -4
- package/dist/core/builders/vite/index.mjs +292 -343
- package/dist/core/builders/vite/plugins/bundleAnalysis.mjs +11 -12
- package/dist/core/builders/vite/plugins/cssEntrypoints.mjs +27 -20
- package/dist/core/builders/vite/plugins/defineImportMeta.mjs +17 -12
- package/dist/core/builders/vite/plugins/devHtmlPrerender.mjs +104 -136
- package/dist/core/builders/vite/plugins/devServerGlobals.mjs +15 -14
- package/dist/core/builders/vite/plugins/download.mjs +23 -12
- package/dist/core/builders/vite/plugins/entrypointGroupGlobals.mjs +18 -14
- package/dist/core/builders/vite/plugins/extensionApiMock.mjs +31 -33
- package/dist/core/builders/vite/plugins/globals.mjs +14 -13
- package/dist/core/builders/vite/plugins/iifeFooter.mjs +17 -11
- package/dist/core/builders/vite/plugins/index.mjs +18 -16
- package/dist/core/builders/vite/plugins/noopBackground.mjs +21 -15
- package/dist/core/builders/vite/plugins/removeEntrypointMainFunction.mjs +25 -23
- package/dist/core/builders/vite/plugins/resolveAppConfig.mjs +25 -23
- package/dist/core/builders/vite/plugins/resolveVirtualModules.mjs +27 -26
- package/dist/core/builders/vite/plugins/tsconfigPaths.mjs +11 -11
- package/dist/core/builders/vite/plugins/wxtPluginLoader.mjs +41 -47
- package/dist/core/{clean.d.ts → clean.d.mts} +7 -3
- package/dist/core/clean.mjs +38 -35
- package/dist/core/{create-server.d.ts → create-server.d.mts} +6 -2
- package/dist/core/create-server.mjs +236 -247
- package/dist/core/define-config.d.mts +6 -0
- package/dist/core/define-config.mjs +6 -2
- package/dist/core/define-web-ext-config.d.mts +13 -0
- package/dist/core/define-web-ext-config.mjs +16 -7
- package/dist/core/generate-wxt-dir.mjs +109 -148
- package/dist/core/index.d.mts +8 -0
- package/dist/core/index.mjs +10 -8
- package/dist/core/initialize.d.mts +8 -0
- package/dist/core/initialize.mjs +110 -124
- package/dist/core/keyboard-shortcuts.mjs +30 -28
- package/dist/core/package-managers/bun.mjs +18 -16
- package/dist/core/package-managers/deno.mjs +12 -8
- package/dist/core/package-managers/index.mjs +52 -60
- package/dist/core/package-managers/npm.mjs +51 -52
- package/dist/core/package-managers/pnpm.mjs +21 -18
- package/dist/core/package-managers/yarn.mjs +31 -28
- package/dist/core/prepare.d.mts +6 -0
- package/dist/core/prepare.mjs +12 -7
- package/dist/core/resolve-config.mjs +393 -462
- package/dist/core/runners/index.mjs +11 -6
- package/dist/core/runners/manual.mjs +16 -14
- package/dist/core/runners/safari.mjs +16 -14
- package/dist/core/runners/web-ext.mjs +62 -83
- package/dist/core/runners/wsl.mjs +16 -14
- package/dist/core/utils/arrays.mjs +23 -12
- package/dist/core/utils/building/build-entrypoints.mjs +44 -40
- package/dist/core/utils/building/detect-dev-changes.mjs +84 -105
- package/dist/core/utils/building/find-entrypoints.mjs +275 -359
- package/dist/core/utils/building/group-entrypoints.mjs +42 -35
- package/dist/core/utils/building/index.mjs +8 -6
- package/dist/core/utils/building/internal-build.mjs +87 -102
- package/dist/core/utils/building/rebuild.mjs +50 -30
- package/dist/core/utils/cache.mjs +29 -18
- package/dist/core/utils/constants.mjs +9 -1
- package/dist/core/utils/content-scripts.mjs +56 -54
- package/dist/core/utils/content-security-policy.mjs +36 -39
- package/dist/core/utils/entrypoints.mjs +51 -28
- package/dist/core/utils/env.mjs +22 -17
- package/dist/core/utils/environments/browser-environment.mjs +13 -12
- package/dist/core/utils/environments/environment.mjs +36 -33
- package/dist/core/utils/environments/extension-environment.mjs +15 -10
- package/dist/core/utils/environments/index.mjs +4 -2
- package/dist/core/utils/eslint.mjs +11 -10
- package/dist/core/utils/fs.mjs +23 -11
- package/dist/core/utils/globals.mjs +53 -51
- package/dist/core/utils/i18n.mjs +41 -32
- package/dist/core/utils/log/index.mjs +6 -4
- package/dist/core/utils/log/printBuildSummary.mjs +20 -25
- package/dist/core/utils/log/printFileList.mjs +30 -33
- package/dist/core/utils/log/printHeader.mjs +10 -5
- package/dist/core/utils/log/printTable.mjs +19 -21
- package/dist/core/utils/manifest.mjs +364 -479
- package/dist/core/utils/minimatch-multiple.mjs +26 -15
- package/dist/core/utils/network.mjs +30 -33
- package/dist/core/utils/number.mjs +7 -3
- package/dist/core/utils/package.mjs +20 -13
- package/dist/core/utils/paths.mjs +26 -7
- package/dist/core/utils/strings.mjs +19 -14
- package/dist/core/utils/syntax-errors.mjs +14 -16
- package/dist/core/utils/time.mjs +19 -15
- package/dist/core/utils/transform.mjs +129 -160
- package/dist/core/utils/types.d.mts +6 -0
- package/dist/core/utils/validation.mjs +43 -50
- package/dist/core/utils/virtual-modules.mjs +20 -12
- package/dist/core/utils/wsl.mjs +10 -3
- package/dist/core/wxt.mjs +66 -60
- package/dist/core/{zip.d.ts → zip.d.mts} +6 -2
- package/dist/core/zip.mjs +116 -140
- package/dist/index.d.mts +12 -0
- package/dist/index.mjs +12 -3
- package/dist/{modules.d.ts → modules.d.mts} +14 -16
- package/dist/modules.mjs +181 -51
- package/dist/testing/fake-browser.d.mts +2 -0
- package/dist/testing/fake-browser.mjs +3 -1
- package/dist/testing/index.d.mts +3 -0
- package/dist/testing/index.mjs +4 -2
- package/dist/testing/{wxt-vitest-plugin.d.ts → wxt-vitest-plugin.d.mts} +7 -9
- package/dist/testing/wxt-vitest-plugin.mjs +38 -19
- package/dist/types.d.mts +1453 -0
- package/dist/utils/app-config.d.mts +6 -0
- package/dist/utils/app-config.mjs +8 -2
- package/dist/utils/content-script-context.d.mts +137 -0
- package/dist/utils/content-script-context.mjs +192 -175
- package/dist/utils/content-script-ui/iframe.d.mts +42 -0
- package/dist/utils/content-script-ui/iframe.mjs +42 -27
- package/dist/utils/content-script-ui/integrated.d.mts +37 -0
- package/dist/utils/content-script-ui/integrated.mjs +36 -29
- package/dist/utils/content-script-ui/shadow-root.d.mts +80 -0
- package/dist/utils/content-script-ui/shadow-root.mjs +75 -82
- package/dist/utils/content-script-ui/shared.mjs +117 -150
- package/dist/utils/content-script-ui/types.d.mts +107 -0
- package/dist/utils/content-script-ui/types.mjs +1 -0
- package/dist/utils/{define-app-config.d.ts → define-app-config.d.mts} +5 -3
- package/dist/utils/define-app-config.mjs +22 -2
- package/dist/utils/define-background.d.mts +7 -0
- package/dist/utils/define-background.mjs +7 -3
- package/dist/utils/define-content-script.d.mts +6 -0
- package/dist/utils/define-content-script.mjs +6 -2
- package/dist/utils/define-unlisted-script.d.mts +7 -0
- package/dist/utils/define-unlisted-script.mjs +7 -3
- package/dist/utils/define-wxt-plugin.d.mts +6 -0
- package/dist/utils/define-wxt-plugin.mjs +6 -2
- package/dist/utils/inject-script.d.mts +41 -0
- package/dist/utils/inject-script.mjs +44 -34
- package/dist/utils/internal/custom-events.d.mts +9 -0
- package/dist/utils/internal/custom-events.mjs +18 -10
- package/dist/utils/internal/location-watcher.mjs +23 -20
- package/dist/utils/internal/logger.mjs +15 -12
- package/dist/utils/match-patterns.d.mts +1 -0
- package/dist/utils/match-patterns.mjs +3 -1
- package/dist/utils/{split-shadow-root-css.d.ts → split-shadow-root-css.d.mts} +6 -3
- package/dist/utils/split-shadow-root-css.mjs +16 -7
- package/dist/utils/storage.d.mts +1 -0
- package/dist/utils/storage.mjs +3 -1
- package/dist/version.d.mts +4 -0
- package/dist/version.mjs +5 -1
- package/dist/virtual/background-entrypoint.d.mts +4 -0
- package/dist/virtual/background-entrypoint.mjs +146 -161
- package/dist/virtual/content-script-isolated-world-entrypoint.d.mts +4 -0
- package/dist/virtual/content-script-isolated-world-entrypoint.mjs +26 -27
- package/dist/virtual/content-script-main-world-entrypoint.d.mts +4 -0
- package/dist/virtual/content-script-main-world-entrypoint.mjs +24 -24
- package/dist/virtual/mock-browser.d.mts +6 -0
- package/dist/virtual/mock-browser.mjs +5 -3
- package/dist/virtual/reload-html.d.mts +1 -0
- package/dist/virtual/reload-html.mjs +60 -53
- package/dist/virtual/unlisted-script-entrypoint.d.mts +4 -0
- package/dist/virtual/unlisted-script-entrypoint.mjs +35 -43
- package/package.json +47 -49
- package/dist/browser.d.ts +0 -30
- package/dist/builtin-modules/index.d.ts +0 -2
- package/dist/builtin-modules/unimport.d.ts +0 -5
- package/dist/cli/cli-utils.d.ts +0 -25
- package/dist/cli/commands.d.ts +0 -2
- package/dist/cli/index.d.ts +0 -1
- package/dist/core/builders/vite/index.d.ts +0 -7
- package/dist/core/builders/vite/plugins/bundleAnalysis.d.ts +0 -7
- package/dist/core/builders/vite/plugins/cssEntrypoints.d.ts +0 -13
- package/dist/core/builders/vite/plugins/defineImportMeta.d.ts +0 -14
- package/dist/core/builders/vite/plugins/devHtmlPrerender.d.ts +0 -7
- package/dist/core/builders/vite/plugins/devServerGlobals.d.ts +0 -6
- package/dist/core/builders/vite/plugins/download.d.ts +0 -10
- package/dist/core/builders/vite/plugins/entrypointGroupGlobals.d.ts +0 -6
- package/dist/core/builders/vite/plugins/extensionApiMock.d.ts +0 -6
- package/dist/core/builders/vite/plugins/globals.d.ts +0 -3
- package/dist/core/builders/vite/plugins/iifeFooter.d.ts +0 -8
- package/dist/core/builders/vite/plugins/index.d.ts +0 -16
- package/dist/core/builders/vite/plugins/noopBackground.d.ts +0 -6
- package/dist/core/builders/vite/plugins/removeEntrypointMainFunction.d.ts +0 -6
- package/dist/core/builders/vite/plugins/resolveAppConfig.d.ts +0 -6
- package/dist/core/builders/vite/plugins/resolveVirtualModules.d.ts +0 -6
- package/dist/core/builders/vite/plugins/tsconfigPaths.d.ts +0 -3
- package/dist/core/builders/vite/plugins/wxtPluginLoader.d.ts +0 -6
- package/dist/core/define-config.d.ts +0 -2
- package/dist/core/define-web-ext-config.d.ts +0 -9
- package/dist/core/generate-wxt-dir.d.ts +0 -5
- package/dist/core/index.d.ts +0 -8
- package/dist/core/initialize.d.ts +0 -5
- package/dist/core/keyboard-shortcuts.d.ts +0 -12
- package/dist/core/package-managers/bun.d.ts +0 -2
- package/dist/core/package-managers/deno.d.ts +0 -2
- package/dist/core/package-managers/index.d.ts +0 -2
- package/dist/core/package-managers/npm.d.ts +0 -17
- package/dist/core/package-managers/pnpm.d.ts +0 -2
- package/dist/core/package-managers/types.d.ts +0 -2
- package/dist/core/package-managers/types.mjs +0 -0
- package/dist/core/package-managers/yarn.d.ts +0 -2
- package/dist/core/prepare.d.ts +0 -2
- package/dist/core/resolve-config.d.ts +0 -11
- package/dist/core/runners/index.d.ts +0 -2
- package/dist/core/runners/manual.d.ts +0 -5
- package/dist/core/runners/safari.d.ts +0 -5
- package/dist/core/runners/web-ext.d.ts +0 -5
- package/dist/core/runners/wsl.d.ts +0 -5
- package/dist/core/utils/arrays.d.ts +0 -13
- package/dist/core/utils/building/build-entrypoints.d.ts +0 -3
- package/dist/core/utils/building/detect-dev-changes.d.ts +0 -61
- package/dist/core/utils/building/find-entrypoints.d.ts +0 -5
- package/dist/core/utils/building/group-entrypoints.d.ts +0 -8
- package/dist/core/utils/building/index.d.ts +0 -6
- package/dist/core/utils/building/internal-build.d.ts +0 -12
- package/dist/core/utils/building/rebuild.d.ts +0 -23
- package/dist/core/utils/cache.d.ts +0 -8
- package/dist/core/utils/cli.d.ts +0 -3
- package/dist/core/utils/cli.mjs +0 -26
- package/dist/core/utils/constants.d.ts +0 -5
- package/dist/core/utils/content-scripts.d.ts +0 -12
- package/dist/core/utils/content-security-policy.d.ts +0 -14
- package/dist/core/utils/entrypoints.d.ts +0 -31
- package/dist/core/utils/env.d.ts +0 -5
- package/dist/core/utils/environments/browser-environment.d.ts +0 -3
- package/dist/core/utils/environments/environment.d.ts +0 -8
- package/dist/core/utils/environments/extension-environment.d.ts +0 -6
- package/dist/core/utils/environments/index.d.ts +0 -2
- package/dist/core/utils/eslint.d.ts +0 -1
- package/dist/core/utils/fs.d.ts +0 -13
- package/dist/core/utils/globals.d.ts +0 -11
- package/dist/core/utils/i18n.d.ts +0 -11
- package/dist/core/utils/log/index.d.ts +0 -4
- package/dist/core/utils/log/printBuildSummary.d.ts +0 -2
- package/dist/core/utils/log/printFileList.d.ts +0 -1
- package/dist/core/utils/log/printHeader.d.ts +0 -1
- package/dist/core/utils/log/printTable.d.ts +0 -1
- package/dist/core/utils/manifest.d.ts +0 -40
- package/dist/core/utils/minimatch-multiple.d.ts +0 -15
- package/dist/core/utils/network.d.ts +0 -7
- package/dist/core/utils/number.d.ts +0 -1
- package/dist/core/utils/package.d.ts +0 -6
- package/dist/core/utils/paths.d.ts +0 -11
- package/dist/core/utils/strings.d.ts +0 -14
- package/dist/core/utils/syntax-errors.d.ts +0 -11
- package/dist/core/utils/testing/fake-objects.d.ts +0 -11665
- package/dist/core/utils/testing/fake-objects.mjs +0 -326
- package/dist/core/utils/time.d.ts +0 -9
- package/dist/core/utils/transform.d.ts +0 -11
- package/dist/core/utils/types.d.ts +0 -13
- package/dist/core/utils/types.mjs +0 -0
- package/dist/core/utils/validation.d.ts +0 -15
- package/dist/core/utils/virtual-modules.d.ts +0 -22
- package/dist/core/utils/wsl.d.ts +0 -4
- package/dist/core/wxt.d.ts +0 -24
- package/dist/index.d.ts +0 -11
- package/dist/testing/fake-browser.d.ts +0 -10
- package/dist/testing/index.d.ts +0 -10
- package/dist/types.d.ts +0 -1459
- package/dist/types.mjs +0 -0
- package/dist/utils/app-config.d.ts +0 -2
- package/dist/utils/content-script-context.d.ts +0 -134
- package/dist/utils/content-script-ui/iframe.d.ts +0 -32
- package/dist/utils/content-script-ui/integrated.d.ts +0 -34
- package/dist/utils/content-script-ui/shadow-root.d.ts +0 -76
- package/dist/utils/content-script-ui/shared.d.ts +0 -5
- package/dist/utils/content-script-ui/types.d.ts +0 -104
- package/dist/utils/define-background.d.ts +0 -4
- package/dist/utils/define-content-script.d.ts +0 -3
- package/dist/utils/define-unlisted-script.d.ts +0 -4
- package/dist/utils/define-wxt-plugin.d.ts +0 -3
- package/dist/utils/inject-script.d.ts +0 -36
- package/dist/utils/internal/custom-events.d.ts +0 -10
- package/dist/utils/internal/dev-server-websocket.d.ts +0 -21
- package/dist/utils/internal/dev-server-websocket.mjs +0 -37
- package/dist/utils/internal/location-watcher.d.ts +0 -12
- package/dist/utils/internal/logger.d.ts +0 -9
- package/dist/utils/match-patterns.d.ts +0 -5
- package/dist/utils/storage.d.ts +0 -5
- package/dist/version.d.ts +0 -1
|
@@ -1,31 +1,33 @@
|
|
|
1
|
-
import readline from "node:readline";
|
|
2
1
|
import { wxt } from "./wxt.mjs";
|
|
3
2
|
import pc from "picocolors";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
3
|
+
import readline from "node:readline";
|
|
4
|
+
|
|
5
|
+
//#region src/core/keyboard-shortcuts.ts
|
|
6
|
+
/**
|
|
7
|
+
* Function that creates a keyboard shortcut handler for the extension.
|
|
8
|
+
*/
|
|
9
|
+
function createKeyboardShortcuts(server) {
|
|
10
|
+
let rl;
|
|
11
|
+
const handleInput = (line) => {
|
|
12
|
+
if (line.trim() === "o") server.restartBrowser();
|
|
13
|
+
};
|
|
14
|
+
return {
|
|
15
|
+
start() {
|
|
16
|
+
this.stop();
|
|
17
|
+
rl ??= readline.createInterface({
|
|
18
|
+
input: process.stdin,
|
|
19
|
+
terminal: false
|
|
20
|
+
});
|
|
21
|
+
rl.on("line", handleInput);
|
|
22
|
+
},
|
|
23
|
+
stop() {
|
|
24
|
+
rl?.removeListener("line", handleInput);
|
|
25
|
+
},
|
|
26
|
+
printHelp(flags) {
|
|
27
|
+
if (flags.canReopenBrowser) wxt.logger.info(`${pc.dim("Press")} ${pc.bold("o + enter")} ${pc.dim("to reopen the browser")}`);
|
|
28
|
+
}
|
|
29
|
+
};
|
|
31
30
|
}
|
|
31
|
+
|
|
32
|
+
//#endregion
|
|
33
|
+
export { createKeyboardShortcuts };
|
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
import { dedupeDependencies, npm } from "./npm.mjs";
|
|
2
2
|
import spawn from "nano-spawn";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}
|
|
3
|
+
|
|
4
|
+
//#region src/core/package-managers/bun.ts
|
|
5
|
+
const bun = {
|
|
6
|
+
overridesKey: "overrides",
|
|
7
|
+
downloadDependency(...args) {
|
|
8
|
+
return npm.downloadDependency(...args);
|
|
9
|
+
},
|
|
10
|
+
async listDependencies(options) {
|
|
11
|
+
const args = ["pm", "ls"];
|
|
12
|
+
if (options?.all) args.push("--all");
|
|
13
|
+
return dedupeDependencies((await spawn("bun", args, { cwd: options?.cwd })).stdout.split("\n").slice(1).map((line) => line.trim()).map((line) => /.* (@?\S+)@(\S+)$/.exec(line)).filter((match) => !!match).map(([_, name, version]) => ({
|
|
14
|
+
name,
|
|
15
|
+
version
|
|
16
|
+
})));
|
|
17
|
+
}
|
|
19
18
|
};
|
|
19
|
+
|
|
20
|
+
//#endregion
|
|
21
|
+
export { bun };
|
|
@@ -1,9 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
//#region src/core/package-managers/deno.ts
|
|
2
|
+
const deno = {
|
|
3
|
+
overridesKey: "na",
|
|
4
|
+
downloadDependency() {
|
|
5
|
+
throw Error("Deno not supported");
|
|
6
|
+
},
|
|
7
|
+
listDependencies() {
|
|
8
|
+
throw Error("Deno not supported");
|
|
9
|
+
}
|
|
9
10
|
};
|
|
11
|
+
|
|
12
|
+
//#endregion
|
|
13
|
+
export { deno };
|
|
@@ -1,67 +1,59 @@
|
|
|
1
|
-
import {
|
|
2
|
-
detectPackageManager,
|
|
3
|
-
addDependency,
|
|
4
|
-
addDevDependency,
|
|
5
|
-
ensureDependencyInstalled,
|
|
6
|
-
installDependencies,
|
|
7
|
-
removeDependency
|
|
8
|
-
} from "nypm";
|
|
1
|
+
import { npm } from "./npm.mjs";
|
|
9
2
|
import { bun } from "./bun.mjs";
|
|
10
3
|
import { yarn } from "./yarn.mjs";
|
|
11
4
|
import { pnpm } from "./pnpm.mjs";
|
|
12
|
-
import { npm } from "./npm.mjs";
|
|
13
5
|
import { deno } from "./deno.mjs";
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
);
|
|
58
|
-
}
|
|
59
|
-
};
|
|
6
|
+
import { addDependency, addDevDependency, detectPackageManager, ensureDependencyInstalled, installDependencies, removeDependency } from "nypm";
|
|
7
|
+
|
|
8
|
+
//#region src/core/package-managers/index.ts
|
|
9
|
+
async function createWxtPackageManager(root) {
|
|
10
|
+
const pm = await detectPackageManager(root, { includeParentDirs: true });
|
|
11
|
+
const requirePm = (cb) => {
|
|
12
|
+
if (pm == null) throw Error("Could not detect package manager");
|
|
13
|
+
return cb(pm);
|
|
14
|
+
};
|
|
15
|
+
return {
|
|
16
|
+
get name() {
|
|
17
|
+
return requirePm((pm) => pm.name);
|
|
18
|
+
},
|
|
19
|
+
get command() {
|
|
20
|
+
return requirePm((pm) => pm.command);
|
|
21
|
+
},
|
|
22
|
+
get version() {
|
|
23
|
+
return requirePm((pm) => pm.version);
|
|
24
|
+
},
|
|
25
|
+
get majorVersion() {
|
|
26
|
+
return requirePm((pm) => pm.majorVersion);
|
|
27
|
+
},
|
|
28
|
+
get lockFile() {
|
|
29
|
+
return requirePm((pm) => pm.lockFile);
|
|
30
|
+
},
|
|
31
|
+
get files() {
|
|
32
|
+
return requirePm((pm) => pm.files);
|
|
33
|
+
},
|
|
34
|
+
addDependency,
|
|
35
|
+
addDevDependency,
|
|
36
|
+
ensureDependencyInstalled,
|
|
37
|
+
installDependencies,
|
|
38
|
+
removeDependency,
|
|
39
|
+
get overridesKey() {
|
|
40
|
+
return requirePm((pm) => packageManagers[pm.name].overridesKey);
|
|
41
|
+
},
|
|
42
|
+
downloadDependency(...args) {
|
|
43
|
+
return requirePm((pm) => packageManagers[pm.name].downloadDependency(...args));
|
|
44
|
+
},
|
|
45
|
+
listDependencies(...args) {
|
|
46
|
+
return requirePm((pm) => packageManagers[pm.name].listDependencies(...args));
|
|
47
|
+
}
|
|
48
|
+
};
|
|
60
49
|
}
|
|
61
50
|
const packageManagers = {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
51
|
+
npm,
|
|
52
|
+
pnpm,
|
|
53
|
+
bun,
|
|
54
|
+
yarn,
|
|
55
|
+
deno
|
|
67
56
|
};
|
|
57
|
+
|
|
58
|
+
//#endregion
|
|
59
|
+
export { createWxtPackageManager };
|
|
@@ -1,57 +1,56 @@
|
|
|
1
|
-
import path from "node:path";
|
|
2
1
|
import { ensureDir } from "fs-extra";
|
|
2
|
+
import path from "node:path";
|
|
3
3
|
import spawn from "nano-spawn";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
4
|
+
|
|
5
|
+
//#region src/core/package-managers/npm.ts
|
|
6
|
+
const npm = {
|
|
7
|
+
overridesKey: "overrides",
|
|
8
|
+
async downloadDependency(id, downloadDir) {
|
|
9
|
+
await ensureDir(downloadDir);
|
|
10
|
+
const res = await spawn("npm", [
|
|
11
|
+
"pack",
|
|
12
|
+
id,
|
|
13
|
+
"--json"
|
|
14
|
+
], { cwd: downloadDir });
|
|
15
|
+
const packed = JSON.parse(res.stdout);
|
|
16
|
+
return path.resolve(downloadDir, packed[0].filename);
|
|
17
|
+
},
|
|
18
|
+
async listDependencies(options) {
|
|
19
|
+
const args = ["ls", "--json"];
|
|
20
|
+
if (options?.all) args.push("--depth", "Infinity");
|
|
21
|
+
const res = await spawn("npm", args, { cwd: options?.cwd });
|
|
22
|
+
return flattenNpmListOutput([JSON.parse(res.stdout)]);
|
|
23
|
+
}
|
|
23
24
|
};
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
if (meta.devDependencies) queue.push(meta.devDependencies);
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
return dedupeDependencies(dependencies);
|
|
25
|
+
function flattenNpmListOutput(projects) {
|
|
26
|
+
const queue = projects.flatMap((project) => {
|
|
27
|
+
const acc = [];
|
|
28
|
+
if (project.dependencies) acc.push(project.dependencies);
|
|
29
|
+
if (project.devDependencies) acc.push(project.devDependencies);
|
|
30
|
+
return acc;
|
|
31
|
+
});
|
|
32
|
+
const dependencies = [];
|
|
33
|
+
while (queue.length > 0) Object.entries(queue.pop()).forEach(([name, meta]) => {
|
|
34
|
+
dependencies.push({
|
|
35
|
+
name,
|
|
36
|
+
version: meta.version
|
|
37
|
+
});
|
|
38
|
+
if (meta.dependencies) queue.push(meta.dependencies);
|
|
39
|
+
if (meta.devDependencies) queue.push(meta.devDependencies);
|
|
40
|
+
});
|
|
41
|
+
return dedupeDependencies(dependencies);
|
|
45
42
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
});
|
|
43
|
+
function dedupeDependencies(dependencies) {
|
|
44
|
+
const hashes = /* @__PURE__ */ new Set();
|
|
45
|
+
return dependencies.filter((dep) => {
|
|
46
|
+
const hash = `${dep.name}@${dep.version}`;
|
|
47
|
+
if (hashes.has(hash)) return false;
|
|
48
|
+
else {
|
|
49
|
+
hashes.add(hash);
|
|
50
|
+
return true;
|
|
51
|
+
}
|
|
52
|
+
});
|
|
57
53
|
}
|
|
54
|
+
|
|
55
|
+
//#endregion
|
|
56
|
+
export { dedupeDependencies, flattenNpmListOutput, npm };
|
|
@@ -1,21 +1,24 @@
|
|
|
1
1
|
import { flattenNpmListOutput, npm } from "./npm.mjs";
|
|
2
2
|
import spawn from "nano-spawn";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
3
|
+
|
|
4
|
+
//#region src/core/package-managers/pnpm.ts
|
|
5
|
+
const pnpm = {
|
|
6
|
+
overridesKey: "resolutions",
|
|
7
|
+
downloadDependency(...args) {
|
|
8
|
+
return npm.downloadDependency(...args);
|
|
9
|
+
},
|
|
10
|
+
async listDependencies(options) {
|
|
11
|
+
const args = [
|
|
12
|
+
"ls",
|
|
13
|
+
"-r",
|
|
14
|
+
"--json"
|
|
15
|
+
];
|
|
16
|
+
if (options?.all) args.push("--depth", "Infinity");
|
|
17
|
+
if (typeof process !== "undefined" && process.env.WXT_PNPM_IGNORE_WORKSPACE === "true") args.push("--ignore-workspace");
|
|
18
|
+
const res = await spawn("pnpm", args, { cwd: options?.cwd });
|
|
19
|
+
return flattenNpmListOutput(JSON.parse(res.stdout));
|
|
20
|
+
}
|
|
21
21
|
};
|
|
22
|
+
|
|
23
|
+
//#endregion
|
|
24
|
+
export { pnpm };
|
|
@@ -1,31 +1,34 @@
|
|
|
1
1
|
import { dedupeDependencies, npm } from "./npm.mjs";
|
|
2
2
|
import spawn from "nano-spawn";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
3
|
+
|
|
4
|
+
//#region src/core/package-managers/yarn.ts
|
|
5
|
+
const yarn = {
|
|
6
|
+
overridesKey: "resolutions",
|
|
7
|
+
downloadDependency(...args) {
|
|
8
|
+
return npm.downloadDependency(...args);
|
|
9
|
+
},
|
|
10
|
+
async listDependencies(options) {
|
|
11
|
+
const args = ["list", "--json"];
|
|
12
|
+
if (options?.all) args.push("--depth", "Infinity");
|
|
13
|
+
const tree = (await spawn("yarn", args, { cwd: options?.cwd })).stdout.split("\n").map((line) => JSON.parse(line)).find((line) => line.type === "tree")?.data;
|
|
14
|
+
if (tree == null) throw Error("'yarn list --json' did not output a tree");
|
|
15
|
+
const queue = [...tree.trees];
|
|
16
|
+
const dependencies = [];
|
|
17
|
+
while (queue.length > 0) {
|
|
18
|
+
const { name: treeName, children } = queue.pop();
|
|
19
|
+
const match = /(@?\S+)@(\S+)$/.exec(treeName);
|
|
20
|
+
if (match) {
|
|
21
|
+
const [_, name, version] = match;
|
|
22
|
+
dependencies.push({
|
|
23
|
+
name,
|
|
24
|
+
version
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
if (children != null) queue.push(...children);
|
|
28
|
+
}
|
|
29
|
+
return dedupeDependencies(dependencies);
|
|
30
|
+
}
|
|
31
31
|
};
|
|
32
|
+
|
|
33
|
+
//#endregion
|
|
34
|
+
export { yarn };
|
package/dist/core/prepare.mjs
CHANGED
|
@@ -1,9 +1,14 @@
|
|
|
1
|
-
import { findEntrypoints } from "./utils/building/index.mjs";
|
|
2
|
-
import { generateWxtDir } from "./generate-wxt-dir.mjs";
|
|
3
1
|
import { registerWxt, wxt } from "./wxt.mjs";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
2
|
+
import { findEntrypoints } from "./utils/building/find-entrypoints.mjs";
|
|
3
|
+
import { generateWxtDir } from "./generate-wxt-dir.mjs";
|
|
4
|
+
import "./utils/building/index.mjs";
|
|
5
|
+
|
|
6
|
+
//#region src/core/prepare.ts
|
|
7
|
+
async function prepare(config) {
|
|
8
|
+
await registerWxt("build", config);
|
|
9
|
+
wxt.logger.info("Generating types...");
|
|
10
|
+
await generateWxtDir(await findEntrypoints());
|
|
9
11
|
}
|
|
12
|
+
|
|
13
|
+
//#endregion
|
|
14
|
+
export { prepare };
|