wxt 0.20.13 → 0.20.15

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 (280) 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 +54 -50
  6. package/dist/cli/commands.mjs +78 -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 +293 -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 +105 -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 +26 -23
  25. package/dist/core/builders/vite/plugins/resolveAppConfig.mjs +26 -24
  26. package/dist/core/builders/vite/plugins/resolveVirtualModules.mjs +28 -26
  27. package/dist/core/builders/vite/plugins/tsconfigPaths.mjs +11 -11
  28. package/dist/core/builders/vite/plugins/wxtPluginLoader.mjs +42 -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 +110 -148
  38. package/dist/core/index.d.mts +9 -0
  39. package/dist/core/index.mjs +12 -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 +15 -10
  53. package/dist/core/runners/manual.mjs +13 -14
  54. package/dist/core/runners/safari.mjs +13 -14
  55. package/dist/core/runners/web-ext.mjs +62 -83
  56. package/dist/core/runners/wsl.mjs +13 -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 +278 -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 +86 -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/index.mjs +3 -0
  80. package/dist/core/utils/log/index.mjs +6 -4
  81. package/dist/core/utils/log/printBuildSummary.mjs +20 -25
  82. package/dist/core/utils/log/printFileList.mjs +30 -33
  83. package/dist/core/utils/log/printHeader.mjs +9 -5
  84. package/dist/core/utils/log/printTable.mjs +19 -21
  85. package/dist/core/utils/manifest.mjs +366 -479
  86. package/dist/core/utils/minimatch-multiple.mjs +26 -15
  87. package/dist/core/utils/network.mjs +27 -33
  88. package/dist/core/utils/number.mjs +7 -3
  89. package/dist/core/utils/package.mjs +20 -13
  90. package/dist/core/utils/paths.d.mts +8 -0
  91. package/dist/core/utils/paths.mjs +26 -7
  92. package/dist/core/utils/strings.mjs +19 -14
  93. package/dist/core/utils/syntax-errors.mjs +14 -16
  94. package/dist/core/utils/time.mjs +19 -15
  95. package/dist/core/utils/transform.mjs +129 -160
  96. package/dist/core/utils/types.d.mts +6 -0
  97. package/dist/core/utils/validation.mjs +43 -50
  98. package/dist/core/utils/virtual-modules.mjs +20 -12
  99. package/dist/core/utils/wsl.mjs +11 -3
  100. package/dist/core/wxt.mjs +65 -60
  101. package/dist/core/{zip.d.ts → zip.d.mts} +6 -2
  102. package/dist/core/zip.mjs +118 -140
  103. package/dist/index.d.mts +13 -0
  104. package/dist/index.mjs +13 -3
  105. package/dist/{modules.d.ts → modules.d.mts} +14 -16
  106. package/dist/modules.mjs +179 -51
  107. package/dist/testing/fake-browser.d.mts +2 -0
  108. package/dist/testing/fake-browser.mjs +3 -1
  109. package/dist/testing/index.d.mts +3 -0
  110. package/dist/testing/index.mjs +4 -2
  111. package/dist/testing/{wxt-vitest-plugin.d.ts → wxt-vitest-plugin.d.mts} +7 -9
  112. package/dist/testing/wxt-vitest-plugin.mjs +38 -19
  113. package/dist/types.d.mts +1475 -0
  114. package/dist/utils/app-config.d.mts +6 -0
  115. package/dist/utils/app-config.mjs +8 -2
  116. package/dist/utils/content-script-context.d.mts +134 -0
  117. package/dist/utils/content-script-context.mjs +187 -175
  118. package/dist/utils/content-script-ui/iframe.d.mts +42 -0
  119. package/dist/utils/content-script-ui/iframe.mjs +42 -27
  120. package/dist/utils/content-script-ui/integrated.d.mts +37 -0
  121. package/dist/utils/content-script-ui/integrated.mjs +36 -29
  122. package/dist/utils/content-script-ui/shadow-root.d.mts +80 -0
  123. package/dist/utils/content-script-ui/shadow-root.mjs +75 -82
  124. package/dist/utils/content-script-ui/shared.mjs +115 -150
  125. package/dist/utils/content-script-ui/types.d.mts +107 -0
  126. package/dist/utils/content-script-ui/types.mjs +1 -0
  127. package/dist/utils/{define-app-config.d.ts → define-app-config.d.mts} +5 -3
  128. package/dist/utils/define-app-config.mjs +22 -2
  129. package/dist/utils/define-background.d.mts +7 -0
  130. package/dist/utils/define-background.mjs +7 -3
  131. package/dist/utils/define-content-script.d.mts +6 -0
  132. package/dist/utils/define-content-script.mjs +6 -2
  133. package/dist/utils/define-unlisted-script.d.mts +7 -0
  134. package/dist/utils/define-unlisted-script.mjs +7 -3
  135. package/dist/utils/define-wxt-plugin.d.mts +6 -0
  136. package/dist/utils/define-wxt-plugin.mjs +6 -2
  137. package/dist/utils/inject-script.d.mts +41 -0
  138. package/dist/utils/inject-script.mjs +44 -34
  139. package/dist/utils/internal/custom-events.d.mts +9 -0
  140. package/dist/utils/internal/custom-events.mjs +18 -10
  141. package/dist/utils/internal/location-watcher.mjs +23 -20
  142. package/dist/utils/internal/logger.mjs +15 -12
  143. package/dist/utils/match-patterns.d.mts +1 -0
  144. package/dist/utils/match-patterns.mjs +3 -1
  145. package/dist/utils/{split-shadow-root-css.d.ts → split-shadow-root-css.d.mts} +6 -3
  146. package/dist/utils/split-shadow-root-css.mjs +16 -7
  147. package/dist/utils/storage.d.mts +1 -0
  148. package/dist/utils/storage.mjs +3 -1
  149. package/dist/version.d.mts +4 -0
  150. package/dist/version.mjs +5 -1
  151. package/dist/virtual/background-entrypoint.d.mts +4 -0
  152. package/dist/virtual/background-entrypoint.mjs +143 -161
  153. package/dist/virtual/content-script-isolated-world-entrypoint.d.mts +4 -0
  154. package/dist/virtual/content-script-isolated-world-entrypoint.mjs +26 -27
  155. package/dist/virtual/content-script-main-world-entrypoint.d.mts +4 -0
  156. package/dist/virtual/content-script-main-world-entrypoint.mjs +24 -24
  157. package/dist/virtual/mock-browser.d.mts +6 -0
  158. package/dist/virtual/mock-browser.mjs +5 -3
  159. package/dist/virtual/reload-html.d.mts +1 -0
  160. package/dist/virtual/reload-html.mjs +57 -53
  161. package/dist/virtual/unlisted-script-entrypoint.d.mts +4 -0
  162. package/dist/virtual/unlisted-script-entrypoint.mjs +35 -43
  163. package/package.json +56 -50
  164. package/dist/browser.d.ts +0 -30
  165. package/dist/builtin-modules/index.d.ts +0 -2
  166. package/dist/builtin-modules/unimport.d.ts +0 -5
  167. package/dist/cli/cli-utils.d.ts +0 -25
  168. package/dist/cli/commands.d.ts +0 -2
  169. package/dist/cli/index.d.ts +0 -1
  170. package/dist/core/builders/vite/index.d.ts +0 -7
  171. package/dist/core/builders/vite/plugins/bundleAnalysis.d.ts +0 -7
  172. package/dist/core/builders/vite/plugins/cssEntrypoints.d.ts +0 -13
  173. package/dist/core/builders/vite/plugins/defineImportMeta.d.ts +0 -14
  174. package/dist/core/builders/vite/plugins/devHtmlPrerender.d.ts +0 -7
  175. package/dist/core/builders/vite/plugins/devServerGlobals.d.ts +0 -6
  176. package/dist/core/builders/vite/plugins/download.d.ts +0 -10
  177. package/dist/core/builders/vite/plugins/entrypointGroupGlobals.d.ts +0 -6
  178. package/dist/core/builders/vite/plugins/extensionApiMock.d.ts +0 -6
  179. package/dist/core/builders/vite/plugins/globals.d.ts +0 -3
  180. package/dist/core/builders/vite/plugins/iifeFooter.d.ts +0 -8
  181. package/dist/core/builders/vite/plugins/index.d.ts +0 -16
  182. package/dist/core/builders/vite/plugins/noopBackground.d.ts +0 -6
  183. package/dist/core/builders/vite/plugins/removeEntrypointMainFunction.d.ts +0 -6
  184. package/dist/core/builders/vite/plugins/resolveAppConfig.d.ts +0 -6
  185. package/dist/core/builders/vite/plugins/resolveVirtualModules.d.ts +0 -6
  186. package/dist/core/builders/vite/plugins/tsconfigPaths.d.ts +0 -3
  187. package/dist/core/builders/vite/plugins/wxtPluginLoader.d.ts +0 -6
  188. package/dist/core/define-config.d.ts +0 -2
  189. package/dist/core/define-web-ext-config.d.ts +0 -9
  190. package/dist/core/generate-wxt-dir.d.ts +0 -5
  191. package/dist/core/index.d.ts +0 -8
  192. package/dist/core/initialize.d.ts +0 -5
  193. package/dist/core/keyboard-shortcuts.d.ts +0 -12
  194. package/dist/core/package-managers/bun.d.ts +0 -2
  195. package/dist/core/package-managers/deno.d.ts +0 -2
  196. package/dist/core/package-managers/index.d.ts +0 -2
  197. package/dist/core/package-managers/npm.d.ts +0 -17
  198. package/dist/core/package-managers/pnpm.d.ts +0 -2
  199. package/dist/core/package-managers/types.d.ts +0 -2
  200. package/dist/core/package-managers/types.mjs +0 -0
  201. package/dist/core/package-managers/yarn.d.ts +0 -2
  202. package/dist/core/prepare.d.ts +0 -2
  203. package/dist/core/resolve-config.d.ts +0 -11
  204. package/dist/core/runners/index.d.ts +0 -2
  205. package/dist/core/runners/manual.d.ts +0 -5
  206. package/dist/core/runners/safari.d.ts +0 -5
  207. package/dist/core/runners/web-ext.d.ts +0 -5
  208. package/dist/core/runners/wsl.d.ts +0 -5
  209. package/dist/core/utils/arrays.d.ts +0 -13
  210. package/dist/core/utils/building/build-entrypoints.d.ts +0 -3
  211. package/dist/core/utils/building/detect-dev-changes.d.ts +0 -61
  212. package/dist/core/utils/building/find-entrypoints.d.ts +0 -5
  213. package/dist/core/utils/building/group-entrypoints.d.ts +0 -8
  214. package/dist/core/utils/building/index.d.ts +0 -6
  215. package/dist/core/utils/building/internal-build.d.ts +0 -12
  216. package/dist/core/utils/building/rebuild.d.ts +0 -23
  217. package/dist/core/utils/cache.d.ts +0 -8
  218. package/dist/core/utils/cli.d.ts +0 -3
  219. package/dist/core/utils/cli.mjs +0 -26
  220. package/dist/core/utils/constants.d.ts +0 -5
  221. package/dist/core/utils/content-scripts.d.ts +0 -12
  222. package/dist/core/utils/content-security-policy.d.ts +0 -14
  223. package/dist/core/utils/entrypoints.d.ts +0 -31
  224. package/dist/core/utils/env.d.ts +0 -5
  225. package/dist/core/utils/environments/browser-environment.d.ts +0 -3
  226. package/dist/core/utils/environments/environment.d.ts +0 -8
  227. package/dist/core/utils/environments/extension-environment.d.ts +0 -6
  228. package/dist/core/utils/environments/index.d.ts +0 -2
  229. package/dist/core/utils/eslint.d.ts +0 -1
  230. package/dist/core/utils/fs.d.ts +0 -13
  231. package/dist/core/utils/globals.d.ts +0 -11
  232. package/dist/core/utils/i18n.d.ts +0 -11
  233. package/dist/core/utils/log/index.d.ts +0 -4
  234. package/dist/core/utils/log/printBuildSummary.d.ts +0 -2
  235. package/dist/core/utils/log/printFileList.d.ts +0 -1
  236. package/dist/core/utils/log/printHeader.d.ts +0 -1
  237. package/dist/core/utils/log/printTable.d.ts +0 -1
  238. package/dist/core/utils/manifest.d.ts +0 -40
  239. package/dist/core/utils/minimatch-multiple.d.ts +0 -15
  240. package/dist/core/utils/network.d.ts +0 -7
  241. package/dist/core/utils/number.d.ts +0 -1
  242. package/dist/core/utils/package.d.ts +0 -6
  243. package/dist/core/utils/paths.d.ts +0 -11
  244. package/dist/core/utils/strings.d.ts +0 -14
  245. package/dist/core/utils/syntax-errors.d.ts +0 -11
  246. package/dist/core/utils/testing/fake-objects.d.ts +0 -11665
  247. package/dist/core/utils/testing/fake-objects.mjs +0 -326
  248. package/dist/core/utils/time.d.ts +0 -9
  249. package/dist/core/utils/transform.d.ts +0 -11
  250. package/dist/core/utils/types.d.ts +0 -13
  251. package/dist/core/utils/types.mjs +0 -0
  252. package/dist/core/utils/validation.d.ts +0 -15
  253. package/dist/core/utils/virtual-modules.d.ts +0 -22
  254. package/dist/core/utils/wsl.d.ts +0 -4
  255. package/dist/core/wxt.d.ts +0 -24
  256. package/dist/index.d.ts +0 -11
  257. package/dist/testing/fake-browser.d.ts +0 -10
  258. package/dist/testing/index.d.ts +0 -10
  259. package/dist/types.d.ts +0 -1459
  260. package/dist/types.mjs +0 -0
  261. package/dist/utils/app-config.d.ts +0 -2
  262. package/dist/utils/content-script-context.d.ts +0 -134
  263. package/dist/utils/content-script-ui/iframe.d.ts +0 -32
  264. package/dist/utils/content-script-ui/integrated.d.ts +0 -34
  265. package/dist/utils/content-script-ui/shadow-root.d.ts +0 -76
  266. package/dist/utils/content-script-ui/shared.d.ts +0 -5
  267. package/dist/utils/content-script-ui/types.d.ts +0 -104
  268. package/dist/utils/define-background.d.ts +0 -4
  269. package/dist/utils/define-content-script.d.ts +0 -3
  270. package/dist/utils/define-unlisted-script.d.ts +0 -4
  271. package/dist/utils/define-wxt-plugin.d.ts +0 -3
  272. package/dist/utils/inject-script.d.ts +0 -36
  273. package/dist/utils/internal/custom-events.d.ts +0 -10
  274. package/dist/utils/internal/dev-server-websocket.d.ts +0 -21
  275. package/dist/utils/internal/dev-server-websocket.mjs +0 -37
  276. package/dist/utils/internal/location-watcher.d.ts +0 -12
  277. package/dist/utils/internal/logger.d.ts +0 -9
  278. package/dist/utils/match-patterns.d.ts +0 -5
  279. package/dist/utils/storage.d.ts +0 -5
  280. package/dist/version.d.ts +0 -1
@@ -0,0 +1,107 @@
1
+ //#region src/utils/content-script-ui/types.d.ts
2
+ /** @module wxt/utils/content-script-ui/types */
3
+ interface ContentScriptUi<TMounted> extends MountFunctions {
4
+ mounted: TMounted | undefined;
5
+ }
6
+ type ContentScriptUiOptions<TMounted> = ContentScriptPositioningOptions & ContentScriptAnchoredOptions & {
7
+ /**
8
+ * Callback called before the UI is removed from the webpage. Use to cleanup your UI, like
9
+ * unmounting your Vue or React apps.
10
+ *
11
+ * Note that this callback is called only when `ui.remove` is called - that means it is
12
+ * not called automatically when the anchor is removed, unless you use `autoMount`.
13
+ */
14
+ onRemove?: (mounted: TMounted | undefined) => void;
15
+ };
16
+ type ContentScriptOverlayAlignment = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
17
+ /**
18
+ * ![Visualization of different append modes](https://wxt.dev/content-script-ui-append.png)
19
+ */
20
+ type ContentScriptAppendMode = 'last' | 'first' | 'replace' | 'before' | 'after' | ((anchor: Element, ui: Element) => void);
21
+ interface ContentScriptInlinePositioningOptions {
22
+ position: 'inline';
23
+ }
24
+ interface ContentScriptOverlayPositioningOptions {
25
+ position: 'overlay';
26
+ /**
27
+ * The `z-index` used on the `wrapper` element. Set to a positive number to show your UI over website
28
+ * content.
29
+ */
30
+ zIndex?: number;
31
+ /**
32
+ * When using `type: "overlay"`, the mounted element is 0px by 0px in size. Alignment specifies
33
+ * which corner is aligned with that 0x0 pixel space.
34
+ *
35
+ * ![Visualization of alignment options](https://wxt.dev/content-script-ui-alignment.png)
36
+ *
37
+ * @default "top-left"
38
+ */
39
+ alignment?: ContentScriptOverlayAlignment;
40
+ }
41
+ interface ContentScriptModalPositioningOptions {
42
+ position: 'modal';
43
+ /**
44
+ * The `z-index` used on the `shadowHost`. Set to a positive number to show your UI over website
45
+ * content.
46
+ */
47
+ zIndex?: number;
48
+ }
49
+ /**
50
+ * Choose between `"inline"`, `"overlay"`, or `"modal"` positions.
51
+ *
52
+ * ![Visualization of different types](https://wxt.dev/content-script-ui-position.png)
53
+ */
54
+ type ContentScriptPositioningOptions = ContentScriptInlinePositioningOptions | ContentScriptOverlayPositioningOptions | ContentScriptModalPositioningOptions;
55
+ interface ContentScriptAnchoredOptions {
56
+ /**
57
+ * A CSS selector, XPath expression, element, or function that returns one of the three. Along with `append`, the
58
+ * `anchor` dictates where in the page the UI will be added.
59
+ */
60
+ anchor?: string | Element | null | undefined | (() => string | Element | null | undefined);
61
+ /**
62
+ * In combination with `anchor`, decide how to add the UI to the DOM.
63
+ *
64
+ * - `"last"` (default) - Add the UI as the last child of the `anchor` element
65
+ * - `"first"` - Add the UI as the first child of the `anchor` element
66
+ * - `"replace"` - Replace the `anchor` element with the UI.
67
+ * - `"before"` - Add the UI as the sibling before the `anchor` element
68
+ * - `"after"` - Add the UI as the sibling after the `anchor` element
69
+ * - `(anchor, ui) => void` - Customizable function that let's you add the UI to the DOM
70
+ */
71
+ append?: ContentScriptAppendMode | ((anchor: Element, ui: Element) => void);
72
+ }
73
+ interface BaseMountFunctions {
74
+ /**
75
+ * Function that mounts or remounts the UI on the page.
76
+ */
77
+ mount: () => void;
78
+ /**
79
+ * Function that removes the UI from the webpage.
80
+ */
81
+ remove: () => void;
82
+ }
83
+ interface MountFunctions extends BaseMountFunctions {
84
+ /**
85
+ * Call `ui.autoMount()` to automatically mount and remove the UI as the anchor is dynamically added/removed by the webpage.
86
+ */
87
+ autoMount: (options?: AutoMountOptions) => void;
88
+ }
89
+ type AutoMountOptions = {
90
+ /**
91
+ * When true, only mount and unmount a UI once.
92
+ */
93
+ once?: boolean;
94
+ /**
95
+ * The callback triggered when `StopAutoMount` is called.
96
+ */
97
+ onStop?: () => void;
98
+ };
99
+ type StopAutoMount = () => void;
100
+ interface AutoMount {
101
+ /**
102
+ * Stop watching the anchor element for changes, but keep the UI mounted.
103
+ */
104
+ stopAutoMount: StopAutoMount;
105
+ }
106
+ //#endregion
107
+ export { AutoMount, AutoMountOptions, BaseMountFunctions, ContentScriptAnchoredOptions, ContentScriptAppendMode, ContentScriptInlinePositioningOptions, ContentScriptModalPositioningOptions, ContentScriptOverlayAlignment, ContentScriptOverlayPositioningOptions, ContentScriptPositioningOptions, ContentScriptUi, ContentScriptUiOptions, MountFunctions, StopAutoMount };
@@ -0,0 +1 @@
1
+ export { };
@@ -1,6 +1,6 @@
1
+ //#region src/utils/define-app-config.d.ts
1
2
  /** @module wxt/utils/define-app-config */
2
- export interface WxtAppConfig {
3
- }
3
+ interface WxtAppConfig {}
4
4
  /**
5
5
  * Runtime app config defined in `<srcDir>/app.config.ts`.
6
6
  *
@@ -17,4 +17,6 @@ export interface WxtAppConfig {
17
17
  * }
18
18
  * ```
19
19
  */
20
- export declare function defineAppConfig(config: WxtAppConfig): WxtAppConfig;
20
+ declare function defineAppConfig(config: WxtAppConfig): WxtAppConfig;
21
+ //#endregion
22
+ export { WxtAppConfig, defineAppConfig };
@@ -1,3 +1,23 @@
1
- export function defineAppConfig(config) {
2
- return config;
1
+ //#region src/utils/define-app-config.ts
2
+ /**
3
+ * Runtime app config defined in `<srcDir>/app.config.ts`.
4
+ *
5
+ * You can add fields to this interface via ["Module Augmentation"](https://www.typescriptlang.org/docs/handbook/declaration-merging.html#module-augmentation):
6
+ *
7
+ * ```ts
8
+ * // app.config.ts
9
+ * import 'wxt/utils/define-app-config';
10
+ *
11
+ * declare module "wxt/utils/define-app-config" {
12
+ * export interface WxtAppConfig {
13
+ * analytics: AnalyticsConfig
14
+ * }
15
+ * }
16
+ * ```
17
+ */
18
+ function defineAppConfig(config) {
19
+ return config;
3
20
  }
21
+
22
+ //#endregion
23
+ export { defineAppConfig };
@@ -0,0 +1,7 @@
1
+ import { BackgroundDefinition } from "../types.mjs";
2
+
3
+ //#region src/utils/define-background.d.ts
4
+ declare function defineBackground(main: () => void): BackgroundDefinition;
5
+ declare function defineBackground(definition: BackgroundDefinition): BackgroundDefinition;
6
+ //#endregion
7
+ export { defineBackground };
@@ -1,4 +1,8 @@
1
- export function defineBackground(arg) {
2
- if (arg == null || typeof arg === "function") return { main: arg };
3
- return arg;
1
+ //#region src/utils/define-background.ts
2
+ function defineBackground(arg) {
3
+ if (arg == null || typeof arg === "function") return { main: arg };
4
+ return arg;
4
5
  }
6
+
7
+ //#endregion
8
+ export { defineBackground };
@@ -0,0 +1,6 @@
1
+ import { ContentScriptDefinition } from "../types.mjs";
2
+
3
+ //#region src/utils/define-content-script.d.ts
4
+ declare function defineContentScript(definition: ContentScriptDefinition): ContentScriptDefinition;
5
+ //#endregion
6
+ export { defineContentScript };
@@ -1,3 +1,7 @@
1
- export function defineContentScript(definition) {
2
- return definition;
1
+ //#region src/utils/define-content-script.ts
2
+ function defineContentScript(definition) {
3
+ return definition;
3
4
  }
5
+
6
+ //#endregion
7
+ export { defineContentScript };
@@ -0,0 +1,7 @@
1
+ import { UnlistedScriptDefinition } from "../types.mjs";
2
+
3
+ //#region src/utils/define-unlisted-script.d.ts
4
+ declare function defineUnlistedScript(main: () => void): UnlistedScriptDefinition;
5
+ declare function defineUnlistedScript(definition: UnlistedScriptDefinition): UnlistedScriptDefinition;
6
+ //#endregion
7
+ export { defineUnlistedScript };
@@ -1,4 +1,8 @@
1
- export function defineUnlistedScript(arg) {
2
- if (arg == null || typeof arg === "function") return { main: arg };
3
- return arg;
1
+ //#region src/utils/define-unlisted-script.ts
2
+ function defineUnlistedScript(arg) {
3
+ if (arg == null || typeof arg === "function") return { main: arg };
4
+ return arg;
4
5
  }
6
+
7
+ //#endregion
8
+ export { defineUnlistedScript };
@@ -0,0 +1,6 @@
1
+ import { WxtPlugin } from "../types.mjs";
2
+
3
+ //#region src/utils/define-wxt-plugin.d.ts
4
+ declare function defineWxtPlugin(plugin: WxtPlugin): WxtPlugin;
5
+ //#endregion
6
+ export { defineWxtPlugin };
@@ -1,3 +1,7 @@
1
- export function defineWxtPlugin(plugin) {
2
- return plugin;
1
+ //#region src/utils/define-wxt-plugin.ts
2
+ function defineWxtPlugin(plugin) {
3
+ return plugin;
3
4
  }
5
+
6
+ //#endregion
7
+ export { defineWxtPlugin };
@@ -0,0 +1,41 @@
1
+ import * as wxt_browser0 from "wxt/browser";
2
+
3
+ //#region src/utils/inject-script.d.ts
4
+ type ScriptPublicPath = Extract<wxt_browser0.PublicPath, `${string}.js`>;
5
+ /**
6
+ * This function can only be called inside content scripts.
7
+ *
8
+ * Inject an unlisted script into the page. Scripts are added to the `<head>`
9
+ * element or `document.documentElement` if there is no head.
10
+ *
11
+ * Make sure to add the injected script to your manifest's
12
+ * `web_accessible_resources`.
13
+ *
14
+ * @returns A result object containing the created script element.
15
+ */
16
+ declare function injectScript(path: ScriptPublicPath, options?: InjectScriptOptions): Promise<InjectScriptResult>;
17
+ interface InjectScriptOptions {
18
+ /**
19
+ * By default, the injected script is removed from the DOM after being
20
+ * injected. To disable this behavior, set this flag to true.
21
+ */
22
+ keepInDom?: boolean;
23
+ /**
24
+ * Modify the script element just before it is added to the DOM.
25
+ *
26
+ * It can be used to e.g. modify `script.async`/`script.defer`, add event
27
+ * listeners to the element, or pass data to the script via `script.dataset`
28
+ * (which can be accessed by the script via `document.currentScript`).
29
+ */
30
+ modifyScript?: (script: HTMLScriptElement) => Promise<void> | void;
31
+ }
32
+ interface InjectScriptResult {
33
+ /**
34
+ * The created script element. It can be used to e.g. send messages to the
35
+ * script in the form of custom events. The script can add an event listener
36
+ * for them via `document.currentScript`.
37
+ */
38
+ script: HTMLScriptElement;
39
+ }
40
+ //#endregion
41
+ export { InjectScriptOptions, InjectScriptResult, ScriptPublicPath, injectScript };
@@ -1,38 +1,48 @@
1
1
  import { browser } from "wxt/browser";
2
- export async function injectScript(path, options) {
3
- const url = browser.runtime.getURL(path);
4
- const script = document.createElement("script");
5
- if (browser.runtime.getManifest().manifest_version === 2) {
6
- script.text = await fetch(url).then((res) => res.text());
7
- } else {
8
- script.src = url;
9
- }
10
- const loadedPromise = makeLoadedPromise(script);
11
- await options?.modifyScript?.(script);
12
- (document.head ?? document.documentElement).append(script);
13
- if (!options?.keepInDom) {
14
- script.remove();
15
- }
16
- await loadedPromise;
17
- return {
18
- script
19
- };
2
+
3
+ //#region src/utils/inject-script.ts
4
+ /** @module wxt/utils/inject-script */
5
+ /**
6
+ * This function can only be called inside content scripts.
7
+ *
8
+ * Inject an unlisted script into the page. Scripts are added to the `<head>`
9
+ * element or `document.documentElement` if there is no head.
10
+ *
11
+ * Make sure to add the injected script to your manifest's
12
+ * `web_accessible_resources`.
13
+ *
14
+ * @returns A result object containing the created script element.
15
+ */
16
+ async function injectScript(path, options) {
17
+ const url = browser.runtime.getURL(path);
18
+ const script = document.createElement("script");
19
+ if (browser.runtime.getManifest().manifest_version === 2) script.text = await fetch(url).then((res) => res.text());
20
+ else script.src = url;
21
+ const loadedPromise = makeLoadedPromise(script);
22
+ await options?.modifyScript?.(script);
23
+ (document.head ?? document.documentElement).append(script);
24
+ if (!options?.keepInDom) script.remove();
25
+ await loadedPromise;
26
+ return { script };
20
27
  }
21
28
  function makeLoadedPromise(script) {
22
- return new Promise((resolve, reject) => {
23
- const onload = () => {
24
- resolve();
25
- cleanup();
26
- };
27
- const onerror = () => {
28
- reject(new Error(`Failed to load script: ${script.src}`));
29
- cleanup();
30
- };
31
- const cleanup = () => {
32
- script.removeEventListener("load", onload);
33
- script.removeEventListener("error", onerror);
34
- };
35
- script.addEventListener("load", onload);
36
- script.addEventListener("error", onerror);
37
- });
29
+ return new Promise((resolve, reject) => {
30
+ const onload = () => {
31
+ resolve();
32
+ cleanup();
33
+ };
34
+ const onerror = () => {
35
+ reject(/* @__PURE__ */ new Error(`Failed to load script: ${script.src}`));
36
+ cleanup();
37
+ };
38
+ const cleanup = () => {
39
+ script.removeEventListener("load", onload);
40
+ script.removeEventListener("error", onerror);
41
+ };
42
+ script.addEventListener("load", onload);
43
+ script.addEventListener("error", onerror);
44
+ });
38
45
  }
46
+
47
+ //#endregion
48
+ export { injectScript };
@@ -0,0 +1,9 @@
1
+ //#region src/utils/internal/custom-events.d.ts
2
+ declare class WxtLocationChangeEvent extends Event {
3
+ readonly newUrl: URL;
4
+ readonly oldUrl: URL;
5
+ static EVENT_NAME: string;
6
+ constructor(newUrl: URL, oldUrl: URL);
7
+ }
8
+ //#endregion
9
+ export { WxtLocationChangeEvent };
@@ -1,12 +1,20 @@
1
1
  import { browser } from "wxt/browser";
2
- export class WxtLocationChangeEvent extends Event {
3
- constructor(newUrl, oldUrl) {
4
- super(WxtLocationChangeEvent.EVENT_NAME, {});
5
- this.newUrl = newUrl;
6
- this.oldUrl = oldUrl;
7
- }
8
- static EVENT_NAME = getUniqueEventName("wxt:locationchange");
9
- }
10
- export function getUniqueEventName(eventName) {
11
- return `${browser?.runtime?.id}:${import.meta.env.ENTRYPOINT}:${eventName}`;
2
+
3
+ //#region src/utils/internal/custom-events.ts
4
+ var WxtLocationChangeEvent = class WxtLocationChangeEvent extends Event {
5
+ static EVENT_NAME = getUniqueEventName("wxt:locationchange");
6
+ constructor(newUrl, oldUrl) {
7
+ super(WxtLocationChangeEvent.EVENT_NAME, {});
8
+ this.newUrl = newUrl;
9
+ this.oldUrl = oldUrl;
10
+ }
11
+ };
12
+ /**
13
+ * Returns an event name unique to the extension and content script that's running.
14
+ */
15
+ function getUniqueEventName(eventName) {
16
+ return `${browser?.runtime?.id}:${import.meta.env.ENTRYPOINT}:${eventName}`;
12
17
  }
18
+
19
+ //#endregion
20
+ export { WxtLocationChangeEvent, getUniqueEventName };
@@ -1,22 +1,25 @@
1
1
  import { WxtLocationChangeEvent } from "./custom-events.mjs";
2
- export function createLocationWatcher(ctx) {
3
- let interval;
4
- let oldUrl;
5
- return {
6
- /**
7
- * Ensure the location watcher is actively looking for URL changes. If it's already watching,
8
- * this is a noop.
9
- */
10
- run() {
11
- if (interval != null) return;
12
- oldUrl = new URL(location.href);
13
- interval = ctx.setInterval(() => {
14
- let newUrl = new URL(location.href);
15
- if (newUrl.href !== oldUrl.href) {
16
- window.dispatchEvent(new WxtLocationChangeEvent(newUrl, oldUrl));
17
- oldUrl = newUrl;
18
- }
19
- }, 1e3);
20
- }
21
- };
2
+
3
+ //#region src/utils/internal/location-watcher.ts
4
+ /**
5
+ * Create a util that watches for URL changes, dispatching the custom event when detected. Stops
6
+ * watching when content script is invalidated.
7
+ */
8
+ function createLocationWatcher(ctx) {
9
+ let interval;
10
+ let oldUrl;
11
+ return { run() {
12
+ if (interval != null) return;
13
+ oldUrl = new URL(location.href);
14
+ interval = ctx.setInterval(() => {
15
+ let newUrl = new URL(location.href);
16
+ if (newUrl.href !== oldUrl.href) {
17
+ window.dispatchEvent(new WxtLocationChangeEvent(newUrl, oldUrl));
18
+ oldUrl = newUrl;
19
+ }
20
+ }, 1e3);
21
+ } };
22
22
  }
23
+
24
+ //#endregion
25
+ export { createLocationWatcher };
@@ -1,15 +1,18 @@
1
+ //#region src/utils/internal/logger.ts
1
2
  function print(method, ...args) {
2
- if (import.meta.env.MODE === "production") return;
3
- if (typeof args[0] === "string") {
4
- const message = args.shift();
5
- method(`[wxt] ${message}`, ...args);
6
- } else {
7
- method("[wxt]", ...args);
8
- }
3
+ if (import.meta.env.MODE === "production") return;
4
+ if (typeof args[0] === "string") method(`[wxt] ${args.shift()}`, ...args);
5
+ else method("[wxt]", ...args);
9
6
  }
10
- export const logger = {
11
- debug: (...args) => print(console.debug, ...args),
12
- log: (...args) => print(console.log, ...args),
13
- warn: (...args) => print(console.warn, ...args),
14
- error: (...args) => print(console.error, ...args)
7
+ /**
8
+ * Wrapper around `console` with a "[wxt]" prefix
9
+ */
10
+ const logger = {
11
+ debug: (...args) => print(console.debug, ...args),
12
+ log: (...args) => print(console.log, ...args),
13
+ warn: (...args) => print(console.warn, ...args),
14
+ error: (...args) => print(console.error, ...args)
15
15
  };
16
+
17
+ //#endregion
18
+ export { logger };
@@ -0,0 +1 @@
1
+ export * from "@webext-core/match-patterns";
@@ -1 +1,3 @@
1
- export * from "@webext-core/match-patterns";
1
+ export * from "@webext-core/match-patterns"
2
+
3
+ export { };
@@ -1,3 +1,4 @@
1
+ //#region src/utils/split-shadow-root-css.d.ts
1
2
  /** @module wxt/utils/split-shadow-root-css */
2
3
  /**
3
4
  * Given a CSS string that will be loaded into a shadow root, split it into two parts:
@@ -5,7 +6,9 @@
5
6
  * - `shadowCss`: CSS that needs to be applied to the shadow root
6
7
  * @param css
7
8
  */
8
- export declare function splitShadowRootCss(css: string): {
9
- documentCss: string;
10
- shadowCss: string;
9
+ declare function splitShadowRootCss(css: string): {
10
+ documentCss: string;
11
+ shadowCss: string;
11
12
  };
13
+ //#endregion
14
+ export { splitShadowRootCss };
@@ -1,9 +1,18 @@
1
+ //#region src/utils/split-shadow-root-css.ts
2
+ /** @module wxt/utils/split-shadow-root-css */
1
3
  const AT_RULE_BLOCKS = /(\s*@(property|font-face)[\s\S]*?{[\s\S]*?})/gm;
2
- export function splitShadowRootCss(css) {
3
- const documentCss = Array.from(css.matchAll(AT_RULE_BLOCKS), (m) => m[0]).join("").trim();
4
- const shadowCss = css.replace(AT_RULE_BLOCKS, "").trim();
5
- return {
6
- documentCss,
7
- shadowCss
8
- };
4
+ /**
5
+ * Given a CSS string that will be loaded into a shadow root, split it into two parts:
6
+ * - `documentCss`: CSS that needs to be applied to the document (like `@property`)
7
+ * - `shadowCss`: CSS that needs to be applied to the shadow root
8
+ * @param css
9
+ */
10
+ function splitShadowRootCss(css) {
11
+ return {
12
+ documentCss: Array.from(css.matchAll(AT_RULE_BLOCKS), (m) => m[0]).join("").trim(),
13
+ shadowCss: css.replace(AT_RULE_BLOCKS, "").trim()
14
+ };
9
15
  }
16
+
17
+ //#endregion
18
+ export { splitShadowRootCss };
@@ -0,0 +1 @@
1
+ export * from "@wxt-dev/storage";
@@ -1 +1,3 @@
1
- export * from "@wxt-dev/storage";
1
+ export * from "@wxt-dev/storage"
2
+
3
+ export { };
@@ -0,0 +1,4 @@
1
+ //#region src/version.d.ts
2
+ declare const version = "{{version}}";
3
+ //#endregion
4
+ export { version };
package/dist/version.mjs CHANGED
@@ -1 +1,5 @@
1
- export const version = "0.20.13";
1
+ //#region src/version.ts
2
+ const version = "0.20.15";
3
+
4
+ //#endregion
5
+ export { version };
@@ -0,0 +1,4 @@
1
+ //#region src/virtual/background-entrypoint.d.ts
2
+ declare let result: any;
3
+ //#endregion
4
+ export { result as default };