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.
Files changed (278) hide show
  1. package/dist/browser.d.mts +20 -0
  2. package/dist/browser.mjs +18 -3
  3. package/dist/builtin-modules/index.mjs +7 -2
  4. package/dist/builtin-modules/unimport.mjs +69 -75
  5. package/dist/cli/cli-utils.mjs +52 -50
  6. package/dist/cli/commands.mjs +77 -103
  7. package/dist/cli/index.d.mts +1 -0
  8. package/dist/cli/index.mjs +9 -4
  9. package/dist/core/{build.d.ts → build.d.mts} +6 -2
  10. package/dist/core/build.mjs +23 -4
  11. package/dist/core/builders/vite/index.mjs +292 -343
  12. package/dist/core/builders/vite/plugins/bundleAnalysis.mjs +11 -12
  13. package/dist/core/builders/vite/plugins/cssEntrypoints.mjs +27 -20
  14. package/dist/core/builders/vite/plugins/defineImportMeta.mjs +17 -12
  15. package/dist/core/builders/vite/plugins/devHtmlPrerender.mjs +104 -136
  16. package/dist/core/builders/vite/plugins/devServerGlobals.mjs +15 -14
  17. package/dist/core/builders/vite/plugins/download.mjs +23 -12
  18. package/dist/core/builders/vite/plugins/entrypointGroupGlobals.mjs +18 -14
  19. package/dist/core/builders/vite/plugins/extensionApiMock.mjs +31 -33
  20. package/dist/core/builders/vite/plugins/globals.mjs +14 -13
  21. package/dist/core/builders/vite/plugins/iifeFooter.mjs +17 -11
  22. package/dist/core/builders/vite/plugins/index.mjs +18 -16
  23. package/dist/core/builders/vite/plugins/noopBackground.mjs +21 -15
  24. package/dist/core/builders/vite/plugins/removeEntrypointMainFunction.mjs +25 -23
  25. package/dist/core/builders/vite/plugins/resolveAppConfig.mjs +25 -23
  26. package/dist/core/builders/vite/plugins/resolveVirtualModules.mjs +27 -26
  27. package/dist/core/builders/vite/plugins/tsconfigPaths.mjs +11 -11
  28. package/dist/core/builders/vite/plugins/wxtPluginLoader.mjs +41 -47
  29. package/dist/core/{clean.d.ts → clean.d.mts} +7 -3
  30. package/dist/core/clean.mjs +38 -35
  31. package/dist/core/{create-server.d.ts → create-server.d.mts} +6 -2
  32. package/dist/core/create-server.mjs +236 -247
  33. package/dist/core/define-config.d.mts +6 -0
  34. package/dist/core/define-config.mjs +6 -2
  35. package/dist/core/define-web-ext-config.d.mts +13 -0
  36. package/dist/core/define-web-ext-config.mjs +16 -7
  37. package/dist/core/generate-wxt-dir.mjs +109 -148
  38. package/dist/core/index.d.mts +8 -0
  39. package/dist/core/index.mjs +10 -8
  40. package/dist/core/initialize.d.mts +8 -0
  41. package/dist/core/initialize.mjs +110 -124
  42. package/dist/core/keyboard-shortcuts.mjs +30 -28
  43. package/dist/core/package-managers/bun.mjs +18 -16
  44. package/dist/core/package-managers/deno.mjs +12 -8
  45. package/dist/core/package-managers/index.mjs +52 -60
  46. package/dist/core/package-managers/npm.mjs +51 -52
  47. package/dist/core/package-managers/pnpm.mjs +21 -18
  48. package/dist/core/package-managers/yarn.mjs +31 -28
  49. package/dist/core/prepare.d.mts +6 -0
  50. package/dist/core/prepare.mjs +12 -7
  51. package/dist/core/resolve-config.mjs +393 -462
  52. package/dist/core/runners/index.mjs +11 -6
  53. package/dist/core/runners/manual.mjs +16 -14
  54. package/dist/core/runners/safari.mjs +16 -14
  55. package/dist/core/runners/web-ext.mjs +62 -83
  56. package/dist/core/runners/wsl.mjs +16 -14
  57. package/dist/core/utils/arrays.mjs +23 -12
  58. package/dist/core/utils/building/build-entrypoints.mjs +44 -40
  59. package/dist/core/utils/building/detect-dev-changes.mjs +84 -105
  60. package/dist/core/utils/building/find-entrypoints.mjs +275 -359
  61. package/dist/core/utils/building/group-entrypoints.mjs +42 -35
  62. package/dist/core/utils/building/index.mjs +8 -6
  63. package/dist/core/utils/building/internal-build.mjs +87 -102
  64. package/dist/core/utils/building/rebuild.mjs +50 -30
  65. package/dist/core/utils/cache.mjs +29 -18
  66. package/dist/core/utils/constants.mjs +9 -1
  67. package/dist/core/utils/content-scripts.mjs +56 -54
  68. package/dist/core/utils/content-security-policy.mjs +36 -39
  69. package/dist/core/utils/entrypoints.mjs +51 -28
  70. package/dist/core/utils/env.mjs +22 -17
  71. package/dist/core/utils/environments/browser-environment.mjs +13 -12
  72. package/dist/core/utils/environments/environment.mjs +36 -33
  73. package/dist/core/utils/environments/extension-environment.mjs +15 -10
  74. package/dist/core/utils/environments/index.mjs +4 -2
  75. package/dist/core/utils/eslint.mjs +11 -10
  76. package/dist/core/utils/fs.mjs +23 -11
  77. package/dist/core/utils/globals.mjs +53 -51
  78. package/dist/core/utils/i18n.mjs +41 -32
  79. package/dist/core/utils/log/index.mjs +6 -4
  80. package/dist/core/utils/log/printBuildSummary.mjs +20 -25
  81. package/dist/core/utils/log/printFileList.mjs +30 -33
  82. package/dist/core/utils/log/printHeader.mjs +10 -5
  83. package/dist/core/utils/log/printTable.mjs +19 -21
  84. package/dist/core/utils/manifest.mjs +364 -479
  85. package/dist/core/utils/minimatch-multiple.mjs +26 -15
  86. package/dist/core/utils/network.mjs +30 -33
  87. package/dist/core/utils/number.mjs +7 -3
  88. package/dist/core/utils/package.mjs +20 -13
  89. package/dist/core/utils/paths.mjs +26 -7
  90. package/dist/core/utils/strings.mjs +19 -14
  91. package/dist/core/utils/syntax-errors.mjs +14 -16
  92. package/dist/core/utils/time.mjs +19 -15
  93. package/dist/core/utils/transform.mjs +129 -160
  94. package/dist/core/utils/types.d.mts +6 -0
  95. package/dist/core/utils/validation.mjs +43 -50
  96. package/dist/core/utils/virtual-modules.mjs +20 -12
  97. package/dist/core/utils/wsl.mjs +10 -3
  98. package/dist/core/wxt.mjs +66 -60
  99. package/dist/core/{zip.d.ts → zip.d.mts} +6 -2
  100. package/dist/core/zip.mjs +116 -140
  101. package/dist/index.d.mts +12 -0
  102. package/dist/index.mjs +12 -3
  103. package/dist/{modules.d.ts → modules.d.mts} +14 -16
  104. package/dist/modules.mjs +181 -51
  105. package/dist/testing/fake-browser.d.mts +2 -0
  106. package/dist/testing/fake-browser.mjs +3 -1
  107. package/dist/testing/index.d.mts +3 -0
  108. package/dist/testing/index.mjs +4 -2
  109. package/dist/testing/{wxt-vitest-plugin.d.ts → wxt-vitest-plugin.d.mts} +7 -9
  110. package/dist/testing/wxt-vitest-plugin.mjs +38 -19
  111. package/dist/types.d.mts +1453 -0
  112. package/dist/utils/app-config.d.mts +6 -0
  113. package/dist/utils/app-config.mjs +8 -2
  114. package/dist/utils/content-script-context.d.mts +137 -0
  115. package/dist/utils/content-script-context.mjs +192 -175
  116. package/dist/utils/content-script-ui/iframe.d.mts +42 -0
  117. package/dist/utils/content-script-ui/iframe.mjs +42 -27
  118. package/dist/utils/content-script-ui/integrated.d.mts +37 -0
  119. package/dist/utils/content-script-ui/integrated.mjs +36 -29
  120. package/dist/utils/content-script-ui/shadow-root.d.mts +80 -0
  121. package/dist/utils/content-script-ui/shadow-root.mjs +75 -82
  122. package/dist/utils/content-script-ui/shared.mjs +117 -150
  123. package/dist/utils/content-script-ui/types.d.mts +107 -0
  124. package/dist/utils/content-script-ui/types.mjs +1 -0
  125. package/dist/utils/{define-app-config.d.ts → define-app-config.d.mts} +5 -3
  126. package/dist/utils/define-app-config.mjs +22 -2
  127. package/dist/utils/define-background.d.mts +7 -0
  128. package/dist/utils/define-background.mjs +7 -3
  129. package/dist/utils/define-content-script.d.mts +6 -0
  130. package/dist/utils/define-content-script.mjs +6 -2
  131. package/dist/utils/define-unlisted-script.d.mts +7 -0
  132. package/dist/utils/define-unlisted-script.mjs +7 -3
  133. package/dist/utils/define-wxt-plugin.d.mts +6 -0
  134. package/dist/utils/define-wxt-plugin.mjs +6 -2
  135. package/dist/utils/inject-script.d.mts +41 -0
  136. package/dist/utils/inject-script.mjs +44 -34
  137. package/dist/utils/internal/custom-events.d.mts +9 -0
  138. package/dist/utils/internal/custom-events.mjs +18 -10
  139. package/dist/utils/internal/location-watcher.mjs +23 -20
  140. package/dist/utils/internal/logger.mjs +15 -12
  141. package/dist/utils/match-patterns.d.mts +1 -0
  142. package/dist/utils/match-patterns.mjs +3 -1
  143. package/dist/utils/{split-shadow-root-css.d.ts → split-shadow-root-css.d.mts} +6 -3
  144. package/dist/utils/split-shadow-root-css.mjs +16 -7
  145. package/dist/utils/storage.d.mts +1 -0
  146. package/dist/utils/storage.mjs +3 -1
  147. package/dist/version.d.mts +4 -0
  148. package/dist/version.mjs +5 -1
  149. package/dist/virtual/background-entrypoint.d.mts +4 -0
  150. package/dist/virtual/background-entrypoint.mjs +146 -161
  151. package/dist/virtual/content-script-isolated-world-entrypoint.d.mts +4 -0
  152. package/dist/virtual/content-script-isolated-world-entrypoint.mjs +26 -27
  153. package/dist/virtual/content-script-main-world-entrypoint.d.mts +4 -0
  154. package/dist/virtual/content-script-main-world-entrypoint.mjs +24 -24
  155. package/dist/virtual/mock-browser.d.mts +6 -0
  156. package/dist/virtual/mock-browser.mjs +5 -3
  157. package/dist/virtual/reload-html.d.mts +1 -0
  158. package/dist/virtual/reload-html.mjs +60 -53
  159. package/dist/virtual/unlisted-script-entrypoint.d.mts +4 -0
  160. package/dist/virtual/unlisted-script-entrypoint.mjs +35 -43
  161. package/package.json +47 -49
  162. package/dist/browser.d.ts +0 -30
  163. package/dist/builtin-modules/index.d.ts +0 -2
  164. package/dist/builtin-modules/unimport.d.ts +0 -5
  165. package/dist/cli/cli-utils.d.ts +0 -25
  166. package/dist/cli/commands.d.ts +0 -2
  167. package/dist/cli/index.d.ts +0 -1
  168. package/dist/core/builders/vite/index.d.ts +0 -7
  169. package/dist/core/builders/vite/plugins/bundleAnalysis.d.ts +0 -7
  170. package/dist/core/builders/vite/plugins/cssEntrypoints.d.ts +0 -13
  171. package/dist/core/builders/vite/plugins/defineImportMeta.d.ts +0 -14
  172. package/dist/core/builders/vite/plugins/devHtmlPrerender.d.ts +0 -7
  173. package/dist/core/builders/vite/plugins/devServerGlobals.d.ts +0 -6
  174. package/dist/core/builders/vite/plugins/download.d.ts +0 -10
  175. package/dist/core/builders/vite/plugins/entrypointGroupGlobals.d.ts +0 -6
  176. package/dist/core/builders/vite/plugins/extensionApiMock.d.ts +0 -6
  177. package/dist/core/builders/vite/plugins/globals.d.ts +0 -3
  178. package/dist/core/builders/vite/plugins/iifeFooter.d.ts +0 -8
  179. package/dist/core/builders/vite/plugins/index.d.ts +0 -16
  180. package/dist/core/builders/vite/plugins/noopBackground.d.ts +0 -6
  181. package/dist/core/builders/vite/plugins/removeEntrypointMainFunction.d.ts +0 -6
  182. package/dist/core/builders/vite/plugins/resolveAppConfig.d.ts +0 -6
  183. package/dist/core/builders/vite/plugins/resolveVirtualModules.d.ts +0 -6
  184. package/dist/core/builders/vite/plugins/tsconfigPaths.d.ts +0 -3
  185. package/dist/core/builders/vite/plugins/wxtPluginLoader.d.ts +0 -6
  186. package/dist/core/define-config.d.ts +0 -2
  187. package/dist/core/define-web-ext-config.d.ts +0 -9
  188. package/dist/core/generate-wxt-dir.d.ts +0 -5
  189. package/dist/core/index.d.ts +0 -8
  190. package/dist/core/initialize.d.ts +0 -5
  191. package/dist/core/keyboard-shortcuts.d.ts +0 -12
  192. package/dist/core/package-managers/bun.d.ts +0 -2
  193. package/dist/core/package-managers/deno.d.ts +0 -2
  194. package/dist/core/package-managers/index.d.ts +0 -2
  195. package/dist/core/package-managers/npm.d.ts +0 -17
  196. package/dist/core/package-managers/pnpm.d.ts +0 -2
  197. package/dist/core/package-managers/types.d.ts +0 -2
  198. package/dist/core/package-managers/types.mjs +0 -0
  199. package/dist/core/package-managers/yarn.d.ts +0 -2
  200. package/dist/core/prepare.d.ts +0 -2
  201. package/dist/core/resolve-config.d.ts +0 -11
  202. package/dist/core/runners/index.d.ts +0 -2
  203. package/dist/core/runners/manual.d.ts +0 -5
  204. package/dist/core/runners/safari.d.ts +0 -5
  205. package/dist/core/runners/web-ext.d.ts +0 -5
  206. package/dist/core/runners/wsl.d.ts +0 -5
  207. package/dist/core/utils/arrays.d.ts +0 -13
  208. package/dist/core/utils/building/build-entrypoints.d.ts +0 -3
  209. package/dist/core/utils/building/detect-dev-changes.d.ts +0 -61
  210. package/dist/core/utils/building/find-entrypoints.d.ts +0 -5
  211. package/dist/core/utils/building/group-entrypoints.d.ts +0 -8
  212. package/dist/core/utils/building/index.d.ts +0 -6
  213. package/dist/core/utils/building/internal-build.d.ts +0 -12
  214. package/dist/core/utils/building/rebuild.d.ts +0 -23
  215. package/dist/core/utils/cache.d.ts +0 -8
  216. package/dist/core/utils/cli.d.ts +0 -3
  217. package/dist/core/utils/cli.mjs +0 -26
  218. package/dist/core/utils/constants.d.ts +0 -5
  219. package/dist/core/utils/content-scripts.d.ts +0 -12
  220. package/dist/core/utils/content-security-policy.d.ts +0 -14
  221. package/dist/core/utils/entrypoints.d.ts +0 -31
  222. package/dist/core/utils/env.d.ts +0 -5
  223. package/dist/core/utils/environments/browser-environment.d.ts +0 -3
  224. package/dist/core/utils/environments/environment.d.ts +0 -8
  225. package/dist/core/utils/environments/extension-environment.d.ts +0 -6
  226. package/dist/core/utils/environments/index.d.ts +0 -2
  227. package/dist/core/utils/eslint.d.ts +0 -1
  228. package/dist/core/utils/fs.d.ts +0 -13
  229. package/dist/core/utils/globals.d.ts +0 -11
  230. package/dist/core/utils/i18n.d.ts +0 -11
  231. package/dist/core/utils/log/index.d.ts +0 -4
  232. package/dist/core/utils/log/printBuildSummary.d.ts +0 -2
  233. package/dist/core/utils/log/printFileList.d.ts +0 -1
  234. package/dist/core/utils/log/printHeader.d.ts +0 -1
  235. package/dist/core/utils/log/printTable.d.ts +0 -1
  236. package/dist/core/utils/manifest.d.ts +0 -40
  237. package/dist/core/utils/minimatch-multiple.d.ts +0 -15
  238. package/dist/core/utils/network.d.ts +0 -7
  239. package/dist/core/utils/number.d.ts +0 -1
  240. package/dist/core/utils/package.d.ts +0 -6
  241. package/dist/core/utils/paths.d.ts +0 -11
  242. package/dist/core/utils/strings.d.ts +0 -14
  243. package/dist/core/utils/syntax-errors.d.ts +0 -11
  244. package/dist/core/utils/testing/fake-objects.d.ts +0 -11665
  245. package/dist/core/utils/testing/fake-objects.mjs +0 -326
  246. package/dist/core/utils/time.d.ts +0 -9
  247. package/dist/core/utils/transform.d.ts +0 -11
  248. package/dist/core/utils/types.d.ts +0 -13
  249. package/dist/core/utils/types.mjs +0 -0
  250. package/dist/core/utils/validation.d.ts +0 -15
  251. package/dist/core/utils/virtual-modules.d.ts +0 -22
  252. package/dist/core/utils/wsl.d.ts +0 -4
  253. package/dist/core/wxt.d.ts +0 -24
  254. package/dist/index.d.ts +0 -11
  255. package/dist/testing/fake-browser.d.ts +0 -10
  256. package/dist/testing/index.d.ts +0 -10
  257. package/dist/types.d.ts +0 -1459
  258. package/dist/types.mjs +0 -0
  259. package/dist/utils/app-config.d.ts +0 -2
  260. package/dist/utils/content-script-context.d.ts +0 -134
  261. package/dist/utils/content-script-ui/iframe.d.ts +0 -32
  262. package/dist/utils/content-script-ui/integrated.d.ts +0 -34
  263. package/dist/utils/content-script-ui/shadow-root.d.ts +0 -76
  264. package/dist/utils/content-script-ui/shared.d.ts +0 -5
  265. package/dist/utils/content-script-ui/types.d.ts +0 -104
  266. package/dist/utils/define-background.d.ts +0 -4
  267. package/dist/utils/define-content-script.d.ts +0 -3
  268. package/dist/utils/define-unlisted-script.d.ts +0 -4
  269. package/dist/utils/define-wxt-plugin.d.ts +0 -3
  270. package/dist/utils/inject-script.d.ts +0 -36
  271. package/dist/utils/internal/custom-events.d.ts +0 -10
  272. package/dist/utils/internal/dev-server-websocket.d.ts +0 -21
  273. package/dist/utils/internal/dev-server-websocket.mjs +0 -37
  274. package/dist/utils/internal/location-watcher.d.ts +0 -12
  275. package/dist/utils/internal/logger.d.ts +0 -9
  276. package/dist/utils/match-patterns.d.ts +0 -5
  277. package/dist/utils/storage.d.ts +0 -5
  278. 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
- export function createKeyboardShortcuts(server) {
5
- let rl;
6
- const handleInput = (line) => {
7
- if (line.trim() === "o") {
8
- server.restartBrowser();
9
- }
10
- };
11
- return {
12
- start() {
13
- rl ??= readline.createInterface({
14
- input: process.stdin,
15
- terminal: false
16
- // Don't intercept ctrl+C, ctrl+Z, etc
17
- });
18
- rl.on("line", handleInput);
19
- },
20
- stop() {
21
- rl?.removeListener("line", handleInput);
22
- },
23
- printHelp(flags) {
24
- if (flags.canReopenBrowser) {
25
- wxt.logger.info(
26
- `${pc.dim("Press")} ${pc.bold("o + enter")} ${pc.dim("to reopen the browser")}`
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
- export const bun = {
4
- overridesKey: "overrides",
5
- // But also supports "resolutions"
6
- downloadDependency(...args) {
7
- return npm.downloadDependency(...args);
8
- },
9
- async listDependencies(options) {
10
- const args = ["pm", "ls"];
11
- if (options?.all) {
12
- args.push("--all");
13
- }
14
- const res = await spawn("bun", args, { cwd: options?.cwd });
15
- return dedupeDependencies(
16
- res.stdout.split("\n").slice(1).map((line) => line.trim()).map((line) => /.* (@?\S+)@(\S+)$/.exec(line)).filter((match) => !!match).map(([_, name, version]) => ({ name, version }))
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
- export const deno = {
2
- overridesKey: "na",
3
- downloadDependency() {
4
- throw Error("Deno not supported");
5
- },
6
- listDependencies() {
7
- throw Error("Deno not supported");
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
- export async function createWxtPackageManager(root) {
15
- const pm = await detectPackageManager(root, {
16
- includeParentDirs: true
17
- });
18
- const requirePm = (cb) => {
19
- if (pm == null) throw Error("Could not detect package manager");
20
- return cb(pm);
21
- };
22
- return {
23
- get name() {
24
- return requirePm((pm2) => pm2.name);
25
- },
26
- get command() {
27
- return requirePm((pm2) => pm2.command);
28
- },
29
- get version() {
30
- return requirePm((pm2) => pm2.version);
31
- },
32
- get majorVersion() {
33
- return requirePm((pm2) => pm2.majorVersion);
34
- },
35
- get lockFile() {
36
- return requirePm((pm2) => pm2.lockFile);
37
- },
38
- get files() {
39
- return requirePm((pm2) => pm2.files);
40
- },
41
- addDependency,
42
- addDevDependency,
43
- ensureDependencyInstalled,
44
- installDependencies,
45
- removeDependency,
46
- get overridesKey() {
47
- return requirePm((pm2) => packageManagers[pm2.name].overridesKey);
48
- },
49
- downloadDependency(...args) {
50
- return requirePm(
51
- (pm2) => packageManagers[pm2.name].downloadDependency(...args)
52
- );
53
- },
54
- listDependencies(...args) {
55
- return requirePm(
56
- (pm2) => packageManagers[pm2.name].listDependencies(...args)
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
- npm,
63
- pnpm,
64
- bun,
65
- yarn,
66
- deno
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
- export const npm = {
5
- overridesKey: "overrides",
6
- async downloadDependency(id, downloadDir) {
7
- await ensureDir(downloadDir);
8
- const res = await spawn("npm", ["pack", id, "--json"], {
9
- cwd: downloadDir
10
- });
11
- const packed = JSON.parse(res.stdout);
12
- return path.resolve(downloadDir, packed[0].filename);
13
- },
14
- async listDependencies(options) {
15
- const args = ["ls", "--json"];
16
- if (options?.all) {
17
- args.push("--depth", "Infinity");
18
- }
19
- const res = await spawn("npm", args, { cwd: options?.cwd });
20
- const project = JSON.parse(res.stdout);
21
- return flattenNpmListOutput([project]);
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
- export function flattenNpmListOutput(projects) {
25
- const queue = projects.flatMap(
26
- (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
- );
33
- const dependencies = [];
34
- while (queue.length > 0) {
35
- Object.entries(queue.pop()).forEach(([name, meta]) => {
36
- dependencies.push({
37
- name,
38
- version: meta.version
39
- });
40
- if (meta.dependencies) queue.push(meta.dependencies);
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
- export function dedupeDependencies(dependencies) {
47
- const hashes = /* @__PURE__ */ new Set();
48
- return dependencies.filter((dep) => {
49
- const hash = `${dep.name}@${dep.version}`;
50
- if (hashes.has(hash)) {
51
- return false;
52
- } else {
53
- hashes.add(hash);
54
- return true;
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
- export const pnpm = {
4
- overridesKey: "resolutions",
5
- // "pnpm.overrides" has a higher priority, but I don't want to deal with nesting
6
- downloadDependency(...args) {
7
- return npm.downloadDependency(...args);
8
- },
9
- async listDependencies(options) {
10
- const args = ["ls", "-r", "--json"];
11
- if (options?.all) {
12
- args.push("--depth", "Infinity");
13
- }
14
- if (typeof process !== "undefined" && process.env.WXT_PNPM_IGNORE_WORKSPACE === "true") {
15
- args.push("--ignore-workspace");
16
- }
17
- const res = await spawn("pnpm", args, { cwd: options?.cwd });
18
- const projects = JSON.parse(res.stdout);
19
- return flattenNpmListOutput(projects);
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
- export const yarn = {
4
- overridesKey: "resolutions",
5
- downloadDependency(...args) {
6
- return npm.downloadDependency(...args);
7
- },
8
- async listDependencies(options) {
9
- const args = ["list", "--json"];
10
- if (options?.all) {
11
- args.push("--depth", "Infinity");
12
- }
13
- const res = await spawn("yarn", args, { cwd: options?.cwd });
14
- const tree = res.stdout.split("\n").map((line) => JSON.parse(line)).find((line) => line.type === "tree")?.data;
15
- if (tree == null) throw Error("'yarn list --json' did not output a tree");
16
- const queue = [...tree.trees];
17
- const dependencies = [];
18
- while (queue.length > 0) {
19
- const { name: treeName, children } = queue.pop();
20
- const match = /(@?\S+)@(\S+)$/.exec(treeName);
21
- if (match) {
22
- const [_, name, version] = match;
23
- dependencies.push({ name, version });
24
- }
25
- if (children != null) {
26
- queue.push(...children);
27
- }
28
- }
29
- return dedupeDependencies(dependencies);
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 };
@@ -0,0 +1,6 @@
1
+ import { InlineConfig } from "../types.mjs";
2
+
3
+ //#region src/core/prepare.d.ts
4
+ declare function prepare(config: InlineConfig): Promise<void>;
5
+ //#endregion
6
+ export { prepare };
@@ -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
- export async function prepare(config) {
5
- await registerWxt("build", config);
6
- wxt.logger.info("Generating types...");
7
- const entrypoints = await findEntrypoints();
8
- await generateWxtDir(entrypoints);
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 };