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
package/dist/types.mjs DELETED
File without changes
@@ -1,2 +0,0 @@
1
- import type { WxtAppConfig } from './define-app-config';
2
- export declare function useAppConfig(): WxtAppConfig;
@@ -1,134 +0,0 @@
1
- /** @module wxt/utils/content-script-context */
2
- import { ContentScriptDefinition } from '../types';
3
- import { WxtLocationChangeEvent } from './internal/custom-events';
4
- /**
5
- * Implements [`AbortController`](https://developer.mozilla.org/en-US/docs/Web/API/AbortController).
6
- * Used to detect and stop content script code when the script is invalidated.
7
- *
8
- * It also provides several utilities like `ctx.setTimeout` and `ctx.setInterval` that should be used in
9
- * content scripts instead of `window.setTimeout` or `window.setInterval`.
10
- *
11
- * To create context for testing, you can use the class's constructor:
12
- *
13
- * ```ts
14
- * import { ContentScriptContext } from 'wxt/utils/content-scripts-context';
15
- *
16
- * test("storage listener should be removed when context is invalidated", () => {
17
- * const ctx = new ContentScriptContext('test');
18
- * const item = storage.defineItem("local:count", { defaultValue: 0 });
19
- * const watcher = vi.fn();
20
- *
21
- * const unwatch = item.watch(watcher);
22
- * ctx.onInvalidated(unwatch); // Listen for invalidate here
23
- *
24
- * await item.setValue(1);
25
- * expect(watcher).toBeCalledTimes(1);
26
- * expect(watcher).toBeCalledWith(1, 0);
27
- *
28
- * ctx.notifyInvalidated(); // Use this function to invalidate the context
29
- * await item.setValue(2);
30
- * expect(watcher).toBeCalledTimes(1);
31
- * });
32
- * ```
33
- */
34
- export declare class ContentScriptContext implements AbortController {
35
- private readonly contentScriptName;
36
- readonly options?: Omit<ContentScriptDefinition, "main"> | undefined;
37
- private static SCRIPT_STARTED_MESSAGE_TYPE;
38
- private isTopFrame;
39
- private abortController;
40
- private locationWatcher;
41
- private receivedMessageIds;
42
- constructor(contentScriptName: string, options?: Omit<ContentScriptDefinition, "main"> | undefined);
43
- get signal(): AbortSignal;
44
- abort(reason?: any): void;
45
- get isInvalid(): boolean;
46
- get isValid(): boolean;
47
- /**
48
- * Add a listener that is called when the content script's context is invalidated.
49
- *
50
- * @returns A function to remove the listener.
51
- *
52
- * @example
53
- * browser.runtime.onMessage.addListener(cb);
54
- * const removeInvalidatedListener = ctx.onInvalidated(() => {
55
- * browser.runtime.onMessage.removeListener(cb);
56
- * })
57
- * // ...
58
- * removeInvalidatedListener();
59
- */
60
- onInvalidated(cb: () => void): () => void;
61
- /**
62
- * Return a promise that never resolves. Useful if you have an async function that shouldn't run
63
- * after the context is expired.
64
- *
65
- * @example
66
- * const getValueFromStorage = async () => {
67
- * if (ctx.isInvalid) return ctx.block();
68
- *
69
- * // ...
70
- * }
71
- */
72
- block<T>(): Promise<T>;
73
- /**
74
- * Wrapper around `window.setInterval` that automatically clears the interval when invalidated.
75
- *
76
- * Intervals can be cleared by calling the normal `clearInterval` function.
77
- */
78
- setInterval(handler: () => void, timeout?: number): number;
79
- /**
80
- * Wrapper around `window.setTimeout` that automatically clears the interval when invalidated.
81
- *
82
- * Timeouts can be cleared by calling the normal `setTimeout` function.
83
- */
84
- setTimeout(handler: () => void, timeout?: number): number;
85
- /**
86
- * Wrapper around `window.requestAnimationFrame` that automatically cancels the request when
87
- * invalidated.
88
- *
89
- * Callbacks can be canceled by calling the normal `cancelAnimationFrame` function.
90
- */
91
- requestAnimationFrame(callback: FrameRequestCallback): number;
92
- /**
93
- * Wrapper around `window.requestIdleCallback` that automatically cancels the request when
94
- * invalidated.
95
- *
96
- * Callbacks can be canceled by calling the normal `cancelIdleCallback` function.
97
- */
98
- requestIdleCallback(callback: IdleRequestCallback, options?: IdleRequestOptions): number;
99
- /**
100
- * Call `target.addEventListener` and remove the event listener when the context is invalidated.
101
- *
102
- * Listeners can be canceled by calling the normal `removeEventListener` function.
103
- *
104
- * Includes additional events useful for content scripts:
105
- *
106
- * - `"wxt:locationchange"` - Triggered when HTML5 history mode is used to change URL. Content
107
- * scripts are not reloaded when navigating this way, so this can be used to reset the content
108
- * script state on URL change, or run custom code.
109
- *
110
- * @example
111
- * ctx.addEventListener(document, "visibilitychange", () => {
112
- * // ...
113
- * });
114
- * ctx.addEventListener(window, "wxt:locationchange", () => {
115
- * // ...
116
- * });
117
- */
118
- addEventListener<TType extends keyof WxtWindowEventMap>(target: Window, type: TType, handler: (event: WxtWindowEventMap[TType]) => void, options?: AddEventListenerOptions): void;
119
- addEventListener<TType extends keyof DocumentEventMap>(target: Document, type: TType, handler: (event: DocumentEventMap[TType]) => void, options?: AddEventListenerOptions): void;
120
- addEventListener<TTarget extends EventTarget>(target: TTarget, ...params: Parameters<TTarget['addEventListener']>): void;
121
- /**
122
- * @internal
123
- * Abort the abort controller and execute all `onInvalidated` listeners.
124
- */
125
- notifyInvalidated(): void;
126
- stopOldScripts(): void;
127
- verifyScriptStartedEvent(event: MessageEvent): boolean;
128
- listenForNewerScripts(options?: {
129
- ignoreFirstEvent?: boolean;
130
- }): void;
131
- }
132
- export interface WxtWindowEventMap extends WindowEventMap {
133
- 'wxt:locationchange': WxtLocationChangeEvent;
134
- }
@@ -1,32 +0,0 @@
1
- import { ContentScriptContext } from '../content-script-context';
2
- import type { ContentScriptUi, ContentScriptUiOptions } from './types';
3
- /**
4
- * Create a content script UI using an iframe.
5
- *
6
- * @see https://wxt.dev/guide/essentials/content-scripts.html#iframe
7
- */
8
- export declare function createIframeUi<TMounted>(ctx: ContentScriptContext, options: IframeContentScriptUiOptions<TMounted>): IframeContentScriptUi<TMounted>;
9
- export interface IframeContentScriptUi<TMounted> extends ContentScriptUi<TMounted> {
10
- /**
11
- * The iframe added to the DOM.
12
- */
13
- iframe: HTMLIFrameElement;
14
- /**
15
- * A wrapper div that assists in positioning.
16
- */
17
- wrapper: HTMLDivElement;
18
- }
19
- export type IframeContentScriptUiOptions<TMounted> = ContentScriptUiOptions<TMounted> & {
20
- /**
21
- * The path to the HTML page that will be shown in the iframe. This string is passed into
22
- * `browser.runtime.getURL`.
23
- */
24
- page: import('wxt/browser').HtmlPublicPath;
25
- /**
26
- * Callback executed when mounting the UI. Use this function to customize the iframe or wrapper
27
- * element's appearance. It is called every time `ui.mount()` is called.
28
- *
29
- * Optionally return a value that can be accessed at `ui.mounted` or in the `onRemove` callback.
30
- */
31
- onMount?: (wrapper: HTMLElement, iframe: HTMLIFrameElement) => TMounted;
32
- };
@@ -1,34 +0,0 @@
1
- /** @module wxt/utils/content-script-ui/integrated */
2
- import { ContentScriptContext } from '../content-script-context';
3
- import type { ContentScriptUi, ContentScriptUiOptions } from './types';
4
- /**
5
- * Create a content script UI without any isolation.
6
- *
7
- * @see https://wxt.dev/guide/essentials/content-scripts.html#integrated
8
- */
9
- export declare function createIntegratedUi<TMounted>(ctx: ContentScriptContext, options: IntegratedContentScriptUiOptions<TMounted>): IntegratedContentScriptUi<TMounted>;
10
- /**
11
- * Shared types for the different `wxt/utils/content-script-ui/*` modules.
12
- * @module wxt/utils/content-script-ui/types
13
- */
14
- export interface IntegratedContentScriptUi<TMounted> extends ContentScriptUi<TMounted> {
15
- /**
16
- * A wrapper div that assists in positioning.
17
- */
18
- wrapper: HTMLElement;
19
- }
20
- export type IntegratedContentScriptUiOptions<TMounted> = ContentScriptUiOptions<TMounted> & {
21
- /**
22
- * Tag used to create the wrapper element.
23
- *
24
- * @default "div"
25
- */
26
- tag?: string;
27
- /**
28
- * Callback executed when mounting the UI. This function should create and append the UI to the
29
- * `wrapper` element. It is called every time `ui.mount()` is called.
30
- *
31
- * Optionally return a value that can be accessed at `ui.mounted` or in the `onRemove` callback.
32
- */
33
- onMount: (wrapper: HTMLElement) => TMounted;
34
- };
@@ -1,76 +0,0 @@
1
- import { ContentScriptContext } from '../content-script-context';
2
- import type { ContentScriptUi, ContentScriptUiOptions } from './types';
3
- /**
4
- * Create a content script UI inside a [`ShadowRoot`](https://developer.mozilla.org/en-US/docs/Web/API/ShadowRoot).
5
- *
6
- * > This function is async because it has to load the CSS via a network call.
7
- *
8
- * @see https://wxt.dev/guide/essentials/content-scripts.html#shadow-root
9
- */
10
- export declare function createShadowRootUi<TMounted>(ctx: ContentScriptContext, options: ShadowRootContentScriptUiOptions<TMounted>): Promise<ShadowRootContentScriptUi<TMounted>>;
11
- export interface ShadowRootContentScriptUi<TMounted> extends ContentScriptUi<TMounted> {
12
- /**
13
- * The `HTMLElement` hosting the shadow root used to isolate the UI's styles. This is the element
14
- * that get's added to the DOM. This element's style is not isolated from the webpage.
15
- */
16
- shadowHost: HTMLElement;
17
- /**
18
- * The container element inside the `ShadowRoot` whose styles are isolated. The UI is mounted
19
- * inside this `HTMLElement`.
20
- */
21
- uiContainer: HTMLElement;
22
- /**
23
- * The shadow root performing the isolation.
24
- */
25
- shadow: ShadowRoot;
26
- }
27
- export type ShadowRootContentScriptUiOptions<TMounted> = ContentScriptUiOptions<TMounted> & {
28
- /**
29
- * The name of the custom component used to host the ShadowRoot. Must be kebab-case.
30
- */
31
- name: string;
32
- /**
33
- * Custom CSS text to apply to the UI. If your content script imports/generates CSS and you've
34
- * set `cssInjectionMode: "ui"`, the imported CSS will be included automatically. You do not need
35
- * to pass those styles in here. This is for any additional styles not in the imported CSS.
36
- */
37
- css?: string;
38
- /**
39
- * ShadowRoot's mode.
40
- *
41
- * @see https://developer.mozilla.org/en-US/docs/Web/API/ShadowRoot/mode
42
- * @default "open"
43
- */
44
- mode?: 'open' | 'closed';
45
- /**
46
- * When enabled, `event.stopPropagation` will be called on events trying to bubble out of the
47
- * shadow root.
48
- *
49
- * - Set to `true` to stop the propagation of a default set of events,
50
- * `["keyup", "keydown", "keypress"]`
51
- * - Set to an array of event names to stop the propagation of a custom list of events
52
- */
53
- isolateEvents?: boolean | string[];
54
- /**
55
- * By default, WXT adds `all: initial` to the shadow root before the rest of
56
- * your CSS. This resets any inheritable CSS styles that
57
- * [normally pierce the Shadow DOM](https://open-wc.org/guides/knowledge/styling/styles-piercing-shadow-dom/).
58
- *
59
- * WXT resets everything but:
60
- * - **`rem` Units**: they continue to scale based off the webpage's HTML `font-size`.
61
- * - **CSS Variables/Custom Properties**: CSS variables defined outside the shadow root can be accessed inside it.
62
- * - **`@font-face` Definitions**: Fonts defined outside the shadow root can be used inside it.
63
- *
64
- * To disable this behavior and inherit styles from the webpage, set `inheritStyles: true`.
65
- *
66
- * @default false
67
- */
68
- inheritStyles?: boolean;
69
- /**
70
- * Callback executed when mounting the UI. This function should create and append the UI to the
71
- * `uiContainer` element. It is called every time `ui.mount()` is called.
72
- *
73
- * Optionally return a value that can be accessed at `ui.mounted` or in the `onRemove` callback.
74
- */
75
- onMount: (uiContainer: HTMLElement, shadow: ShadowRoot, shadowHost: HTMLElement) => TMounted;
76
- };
@@ -1,5 +0,0 @@
1
- import type { ContentScriptAnchoredOptions, ContentScriptPositioningOptions, BaseMountFunctions, ContentScriptUiOptions, MountFunctions } from './types';
2
- export declare function applyPosition(root: HTMLElement, positionedElement: HTMLElement | undefined | null, options: ContentScriptPositioningOptions): void;
3
- export declare function getAnchor(options: ContentScriptAnchoredOptions): Element | undefined;
4
- export declare function mountUi(root: HTMLElement, options: ContentScriptAnchoredOptions): void;
5
- export declare function createMountFunctions<TMounted>(baseFunctions: BaseMountFunctions, options: ContentScriptUiOptions<TMounted>): MountFunctions;
@@ -1,104 +0,0 @@
1
- /** @module wxt/utils/content-script-ui/types */
2
- export interface ContentScriptUi<TMounted> extends MountFunctions {
3
- mounted: TMounted | undefined;
4
- }
5
- export type ContentScriptUiOptions<TMounted> = ContentScriptPositioningOptions & ContentScriptAnchoredOptions & {
6
- /**
7
- * Callback called before the UI is removed from the webpage. Use to cleanup your UI, like
8
- * unmounting your Vue or React apps.
9
- *
10
- * Note that this callback is called only when `ui.remove` is called - that means it is
11
- * not called automatically when the anchor is removed, unless you use `autoMount`.
12
- */
13
- onRemove?: (mounted: TMounted | undefined) => void;
14
- };
15
- export type ContentScriptOverlayAlignment = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
16
- /**
17
- * ![Visualization of different append modes](https://wxt.dev/content-script-ui-append.png)
18
- */
19
- export type ContentScriptAppendMode = 'last' | 'first' | 'replace' | 'before' | 'after' | ((anchor: Element, ui: Element) => void);
20
- export interface ContentScriptInlinePositioningOptions {
21
- position: 'inline';
22
- }
23
- export interface ContentScriptOverlayPositioningOptions {
24
- position: 'overlay';
25
- /**
26
- * The `z-index` used on the `wrapper` element. Set to a positive number to show your UI over website
27
- * content.
28
- */
29
- zIndex?: number;
30
- /**
31
- * When using `type: "overlay"`, the mounted element is 0px by 0px in size. Alignment specifies
32
- * which corner is aligned with that 0x0 pixel space.
33
- *
34
- * ![Visualization of alignment options](https://wxt.dev/content-script-ui-alignment.png)
35
- *
36
- * @default "top-left"
37
- */
38
- alignment?: ContentScriptOverlayAlignment;
39
- }
40
- export interface ContentScriptModalPositioningOptions {
41
- position: 'modal';
42
- /**
43
- * The `z-index` used on the `shadowHost`. Set to a positive number to show your UI over website
44
- * content.
45
- */
46
- zIndex?: number;
47
- }
48
- /**
49
- * Choose between `"inline"`, `"overlay"`, or `"modal"` positions.
50
- *
51
- * ![Visualization of different types](https://wxt.dev/content-script-ui-position.png)
52
- */
53
- export type ContentScriptPositioningOptions = ContentScriptInlinePositioningOptions | ContentScriptOverlayPositioningOptions | ContentScriptModalPositioningOptions;
54
- export interface ContentScriptAnchoredOptions {
55
- /**
56
- * A CSS selector, XPath expression, element, or function that returns one of the three. Along with `append`, the
57
- * `anchor` dictates where in the page the UI will be added.
58
- */
59
- anchor?: string | Element | null | undefined | (() => string | Element | null | undefined);
60
- /**
61
- * In combination with `anchor`, decide how to add the UI to the DOM.
62
- *
63
- * - `"last"` (default) - Add the UI as the last child of the `anchor` element
64
- * - `"first"` - Add the UI as the first child of the `anchor` element
65
- * - `"replace"` - Replace the `anchor` element with the UI.
66
- * - `"before"` - Add the UI as the sibling before the `anchor` element
67
- * - `"after"` - Add the UI as the sibling after the `anchor` element
68
- * - `(anchor, ui) => void` - Customizable function that let's you add the UI to the DOM
69
- */
70
- append?: ContentScriptAppendMode | ((anchor: Element, ui: Element) => void);
71
- }
72
- export interface BaseMountFunctions {
73
- /**
74
- * Function that mounts or remounts the UI on the page.
75
- */
76
- mount: () => void;
77
- /**
78
- * Function that removes the UI from the webpage.
79
- */
80
- remove: () => void;
81
- }
82
- export interface MountFunctions extends BaseMountFunctions {
83
- /**
84
- * Call `ui.autoMount()` to automatically mount and remove the UI as the anchor is dynamically added/removed by the webpage.
85
- */
86
- autoMount: (options?: AutoMountOptions) => void;
87
- }
88
- export type AutoMountOptions = {
89
- /**
90
- * When true, only mount and unmount a UI once.
91
- */
92
- once?: boolean;
93
- /**
94
- * The callback triggered when `StopAutoMount` is called.
95
- */
96
- onStop?: () => void;
97
- };
98
- export type StopAutoMount = () => void;
99
- export interface AutoMount {
100
- /**
101
- * Stop watching the anchor element for changes, but keep the UI mounted.
102
- */
103
- stopAutoMount: StopAutoMount;
104
- }
@@ -1,4 +0,0 @@
1
- /** @module wxt/utils/define-background */
2
- import type { BackgroundDefinition } from '../types';
3
- export declare function defineBackground(main: () => void): BackgroundDefinition;
4
- export declare function defineBackground(definition: BackgroundDefinition): BackgroundDefinition;
@@ -1,3 +0,0 @@
1
- /** @module wxt/utils/define-content-script */
2
- import type { ContentScriptDefinition } from '../types';
3
- export declare function defineContentScript(definition: ContentScriptDefinition): ContentScriptDefinition;
@@ -1,4 +0,0 @@
1
- /** @module wxt/utils/define-unlisted-script */
2
- import type { UnlistedScriptDefinition } from '../types';
3
- export declare function defineUnlistedScript(main: () => void): UnlistedScriptDefinition;
4
- export declare function defineUnlistedScript(definition: UnlistedScriptDefinition): UnlistedScriptDefinition;
@@ -1,3 +0,0 @@
1
- /** @module wxt/utils/define-wxt-plugin */
2
- import type { WxtPlugin } from '../types';
3
- export declare function defineWxtPlugin(plugin: WxtPlugin): WxtPlugin;
@@ -1,36 +0,0 @@
1
- export type ScriptPublicPath = Extract<import('wxt/browser').PublicPath, `${string}.js`>;
2
- /**
3
- * This function can only be called inside content scripts.
4
- *
5
- * Inject an unlisted script into the page. Scripts are added to the `<head>`
6
- * element or `document.documentElement` if there is no head.
7
- *
8
- * Make sure to add the injected script to your manifest's
9
- * `web_accessible_resources`.
10
- *
11
- * @returns A result object containing the created script element.
12
- */
13
- export declare function injectScript(path: ScriptPublicPath, options?: InjectScriptOptions): Promise<InjectScriptResult>;
14
- export interface InjectScriptOptions {
15
- /**
16
- * By default, the injected script is removed from the DOM after being
17
- * injected. To disable this behavior, set this flag to true.
18
- */
19
- keepInDom?: boolean;
20
- /**
21
- * Modify the script element just before it is added to the DOM.
22
- *
23
- * It can be used to e.g. modify `script.async`/`script.defer`, add event
24
- * listeners to the element, or pass data to the script via `script.dataset`
25
- * (which can be accessed by the script via `document.currentScript`).
26
- */
27
- modifyScript?: (script: HTMLScriptElement) => Promise<void> | void;
28
- }
29
- export interface InjectScriptResult {
30
- /**
31
- * The created script element. It can be used to e.g. send messages to the
32
- * script in the form of custom events. The script can add an event listener
33
- * for them via `document.currentScript`.
34
- */
35
- script: HTMLScriptElement;
36
- }
@@ -1,10 +0,0 @@
1
- export declare class WxtLocationChangeEvent extends Event {
2
- readonly newUrl: URL;
3
- readonly oldUrl: URL;
4
- static EVENT_NAME: string;
5
- constructor(newUrl: URL, oldUrl: URL);
6
- }
7
- /**
8
- * Returns an event name unique to the extension and content script that's running.
9
- */
10
- export declare function getUniqueEventName(eventName: string): string;
@@ -1,21 +0,0 @@
1
- export interface WxtWebSocket extends WebSocket {
2
- addWxtEventListener(type: 'wxt:reload-extension', callback: (event: CustomEvent<undefined>) => void, options?: AddEventListenerOptions | boolean): void;
3
- addWxtEventListener(type: 'wxt:reload-content-script', callback?: (event: CustomEvent<ReloadContentScriptPayload>) => void, options?: AddEventListenerOptions | boolean): void;
4
- addWxtEventListener(type: 'wxt:reload-page', callback?: (event: CustomEvent<string>) => void, options?: AddEventListenerOptions | boolean): void;
5
- sendCustom(event: string, payload?: any): void;
6
- }
7
- /**
8
- * Connect to the websocket and listen for messages.
9
- *
10
- * @param onMessage Optional callback that is called when a message is recieved and we've verified
11
- * it's structure is what we expect.
12
- */
13
- export declare function getDevServerWebSocket(): WxtWebSocket;
14
- export interface ReloadContentScriptPayload {
15
- registration?: 'manifest' | 'runtime';
16
- contentScript: {
17
- matches: string[];
18
- js?: string[];
19
- css?: string[];
20
- };
21
- }
@@ -1,37 +0,0 @@
1
- import { logger } from "./logger.mjs";
2
- let ws;
3
- export function getDevServerWebSocket() {
4
- if (import.meta.env.COMMAND !== "serve")
5
- throw Error(
6
- "Must be running WXT dev command to connect to call getDevServerWebSocket()"
7
- );
8
- if (ws == null) {
9
- const serverUrl = __DEV_SERVER_ORIGIN__;
10
- logger.debug("Connecting to dev server @", serverUrl);
11
- ws = new WebSocket(serverUrl, "vite-hmr");
12
- ws.addWxtEventListener = ws.addEventListener.bind(ws);
13
- ws.sendCustom = (event, payload) => ws?.send(JSON.stringify({ type: "custom", event, payload }));
14
- ws.addEventListener("open", () => {
15
- logger.debug("Connected to dev server");
16
- });
17
- ws.addEventListener("close", () => {
18
- logger.debug("Disconnected from dev server");
19
- });
20
- ws.addEventListener("error", (event) => {
21
- logger.error("Failed to connect to dev server", event);
22
- });
23
- ws.addEventListener("message", (e) => {
24
- try {
25
- const message = JSON.parse(e.data);
26
- if (message.type === "custom") {
27
- ws?.dispatchEvent(
28
- new CustomEvent(message.event, { detail: message.data })
29
- );
30
- }
31
- } catch (err) {
32
- logger.error("Failed to handle message", err);
33
- }
34
- });
35
- }
36
- return ws;
37
- }
@@ -1,12 +0,0 @@
1
- import { ContentScriptContext } from '../content-script-context';
2
- /**
3
- * Create a util that watches for URL changes, dispatching the custom event when detected. Stops
4
- * watching when content script is invalidated.
5
- */
6
- export declare function createLocationWatcher(ctx: ContentScriptContext): {
7
- /**
8
- * Ensure the location watcher is actively looking for URL changes. If it's already watching,
9
- * this is a noop.
10
- */
11
- run(): void;
12
- };
@@ -1,9 +0,0 @@
1
- /**
2
- * Wrapper around `console` with a "[wxt]" prefix
3
- */
4
- export declare const logger: {
5
- debug: (...args: any[]) => void;
6
- log: (...args: any[]) => void;
7
- warn: (...args: any[]) => void;
8
- error: (...args: any[]) => void;
9
- };
@@ -1,5 +0,0 @@
1
- /**
2
- * Re-export the [`@webext-core/match-patterns` package](https://www.npmjs.com/package/@webext-core/match-patterns).
3
- * @module wxt/utils/match-patterns
4
- */
5
- export * from '@webext-core/match-patterns';
@@ -1,5 +0,0 @@
1
- /**
2
- * Re-export the [`@wxt-dev/storage` package](https://www.npmjs.com/package/@wxt-dev/storage).
3
- * @module wxt/utils/storage
4
- */
5
- export * from '@wxt-dev/storage';
package/dist/version.d.ts DELETED
@@ -1 +0,0 @@
1
- export declare const version = "{{version}}";