wxt 0.8.1 → 0.8.2

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.
@@ -24,11 +24,11 @@ import originalBrowser from "webextension-polyfill";
24
24
  var browser = originalBrowser;
25
25
 
26
26
  // src/client/utils/ContentScriptContext.ts
27
- var ContentScriptContext = class _ContentScriptContext extends AbortController {
27
+ var ContentScriptContext = class _ContentScriptContext {
28
28
  constructor(contentScriptName, options) {
29
- super();
30
29
  this.contentScriptName = contentScriptName;
31
30
  this.options = options;
31
+ this.#abortController = new AbortController();
32
32
  if (this.#isTopFrame) {
33
33
  this.#stopOldScripts();
34
34
  }
@@ -38,6 +38,13 @@ var ContentScriptContext = class _ContentScriptContext extends AbortController {
38
38
  }
39
39
  static SCRIPT_STARTED_MESSAGE_TYPE = "wxt:content-script-started";
40
40
  #isTopFrame = window.self === window.top;
41
+ #abortController;
42
+ get signal() {
43
+ return this.#abortController.signal;
44
+ }
45
+ abort(reason) {
46
+ return this.#abortController.abort(reason);
47
+ }
41
48
  get isInvalid() {
42
49
  if (browser.runtime.id == null) {
43
50
  this.notifyInvalidated();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/client/virtual-modules/content-script-entrypoint.ts","../../src/client/utils/logger.ts","../../src/client/browser.ts","../../src/client/utils/ContentScriptContext.ts"],"sourcesContent":["import definition from 'virtual:user-content-script';\nimport { logger } from '../utils/logger';\nimport { ContentScriptContext } from '../utils/ContentScriptContext';\n\n(async () => {\n try {\n const { main, ...options } = definition;\n const ctx = new ContentScriptContext(__ENTRYPOINT__, options);\n\n await main(ctx);\n } catch (err) {\n logger.error(\n `The content script \"${__ENTRYPOINT__}\" crashed on startup!`,\n err,\n );\n }\n})();\n","function print(method: (...args: any[]) => void, ...args: any[]) {\n if (import.meta.env.MODE === 'production') return;\n\n if (typeof args[0] === 'string') {\n const message = args.shift();\n method(`[wxt] ${message}`, ...args);\n } else {\n method('[wxt]', ...args);\n }\n}\n\n/**\n * Wrapper around `console` with a \"[wxt]\" prefix\n */\nexport const logger = {\n debug: (...args: any[]) => print(console.debug, ...args),\n log: (...args: any[]) => print(console.log, ...args),\n warn: (...args: any[]) => print(console.warn, ...args),\n error: (...args: any[]) => print(console.error, ...args),\n};\n","/**\n * @module wxt/browser\n */\nimport originalBrowser, { Browser, Runtime, I18n } from 'webextension-polyfill';\n\nexport interface AugmentedBrowser extends Browser {\n runtime: WxtRuntime;\n i18n: WxtI18n;\n}\n\nexport interface WxtRuntime extends Runtime.Static {\n // Overriden per-project\n}\n\nexport interface WxtI18n extends I18n.Static {\n // Overriden per-project\n}\n\nexport const browser: AugmentedBrowser = originalBrowser;\n","import { ContentScriptDefinition } from '../../core/types';\nimport { browser } from '../browser';\nimport { logger } from './logger';\n\n/**\n * Extends [`AbortController`](https://developer.mozilla.org/en-US/docs/Web/API/AbortController).\n * Used to detect and stop content script code when the script is invalidated.\n *\n * It also provides several utilities like `ctx.setTimeout` and `ctx.setInterval` that should be used in\n * content scripts instead of `window.setTimeout` or `window.setInterval`.\n */\nexport class ContentScriptContext extends AbortController {\n private static SCRIPT_STARTED_MESSAGE_TYPE = 'wxt:content-script-started';\n\n #isTopFrame = window.self === window.top;\n\n constructor(\n private readonly contentScriptName: string,\n public readonly options?: Omit<ContentScriptDefinition, 'main'>,\n ) {\n super();\n\n if (this.#isTopFrame) {\n this.#stopOldScripts();\n }\n this.setTimeout(() => {\n // Run on next tick so the listener it adds isn't triggered by stopOldScript\n this.#listenForNewerScripts();\n });\n }\n\n get isInvalid(): boolean {\n if (browser.runtime.id == null) {\n this.notifyInvalidated(); // Sets `signal.aborted` to true\n }\n return this.signal.aborted;\n }\n\n get isValid(): boolean {\n return !this.isInvalid;\n }\n\n /**\n * Add a listener that is called when the content script's context is invalidated.\n *\n * @returns A function to remove the listener.\n *\n * @example\n * browser.runtime.onMessage.addListener(cb);\n * const removeInvalidatedListener = ctx.onInvalidated(() => {\n * browser.runtime.onMessage.removeListener(cb);\n * })\n * // ...\n * removeInvalidatedListener();\n */\n onInvalidated(cb: () => void): () => void {\n this.signal.addEventListener('abort', cb);\n return () => this.signal.removeEventListener('abort', cb);\n }\n\n /**\n * Return a promise that never resolves. Useful if you have an async function that shouldn't run\n * after the context is expired.\n *\n * @example\n * const getValueFromStorage = async () => {\n * if (ctx.isInvalid) return ctx.block();\n *\n * // ...\n * }\n */\n block<T>(): Promise<T> {\n return new Promise(() => {\n // noop\n });\n }\n\n /**\n * Wrapper around `window.setInterval` that automatically clears the interval when invalidated.\n */\n setInterval(handler: () => void, timeout?: number): number {\n const id = setInterval(() => {\n if (this.isValid) handler();\n }, timeout) as unknown as number;\n this.onInvalidated(() => clearInterval(id));\n return id;\n }\n\n /**\n * Wrapper around `window.setTimeout` that automatically clears the interval when invalidated.\n */\n setTimeout(handler: () => void, timeout?: number): number {\n const id = setTimeout(() => {\n if (this.isValid) handler();\n }, timeout) as unknown as number;\n this.onInvalidated(() => clearTimeout(id));\n return id;\n }\n\n /**\n * Wrapper around `window.requestAnimationFrame` that automatically cancels the request when\n * invalidated.\n */\n requestAnimationFrame(callback: FrameRequestCallback): number {\n const id = requestAnimationFrame((...args) => {\n if (this.isValid) callback(...args);\n });\n\n this.onInvalidated(() => cancelAnimationFrame(id));\n return id;\n }\n\n /**\n * Wrapper around `window.requestIdleCallback` that automatically cancels the request when\n * invalidated.\n */\n requestIdleCallback(\n callback: IdleRequestCallback,\n options?: IdleRequestOptions,\n ): number {\n const id = requestIdleCallback((...args) => {\n if (!this.signal.aborted) callback(...args);\n }, options);\n\n this.onInvalidated(() => cancelIdleCallback(id));\n return id;\n }\n\n /**\n * Call `target.addEventListener` and remove the event listener when the context is invalidated.\n *\n * @example\n * ctx.addEventListener(window, \"mousemove\", () => {\n * // ...\n * });\n * ctx.addEventListener(document, \"visibilitychange\", () => {\n * // ...\n * });\n */\n addEventListener(\n target: any,\n type: string,\n handler: (event: Event) => void,\n options?: AddEventListenerOptions,\n ) {\n target.addEventListener?.(type, handler, options);\n this.onInvalidated(\n () => target.removeEventListener?.(type, handler, options),\n );\n }\n\n /**\n * @internal\n * Abort the abort controller and execute all `onInvalidated` listeners.\n */\n notifyInvalidated() {\n this.abort('Content script context invalidated');\n logger.debug(\n `Content script \"${this.contentScriptName}\" context invalidated`,\n );\n }\n\n #stopOldScripts() {\n // Use postMessage so it get's sent to all the frames of the page.\n window.postMessage(\n {\n event: ContentScriptContext.SCRIPT_STARTED_MESSAGE_TYPE,\n contentScriptName: this.contentScriptName,\n },\n '*',\n );\n }\n\n #listenForNewerScripts() {\n const cb = (event: MessageEvent) => {\n if (\n event.data?.type === ContentScriptContext.SCRIPT_STARTED_MESSAGE_TYPE &&\n event.data?.contentScriptName === this.contentScriptName\n ) {\n this.notifyInvalidated();\n }\n };\n\n addEventListener('message', cb);\n this.onInvalidated(() => removeEventListener('message', cb));\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/client/virtual-modules/content-script-entrypoint.ts","../../src/client/utils/logger.ts","../../src/client/browser.ts","../../src/client/utils/ContentScriptContext.ts"],"sourcesContent":["import definition from 'virtual:user-content-script';\nimport { logger } from '../utils/logger';\nimport { ContentScriptContext } from '../utils/ContentScriptContext';\n\n(async () => {\n try {\n const { main, ...options } = definition;\n const ctx = new ContentScriptContext(__ENTRYPOINT__, options);\n\n await main(ctx);\n } catch (err) {\n logger.error(\n `The content script \"${__ENTRYPOINT__}\" crashed on startup!`,\n err,\n );\n }\n})();\n","function print(method: (...args: any[]) => void, ...args: any[]) {\n if (import.meta.env.MODE === 'production') return;\n\n if (typeof args[0] === 'string') {\n const message = args.shift();\n method(`[wxt] ${message}`, ...args);\n } else {\n method('[wxt]', ...args);\n }\n}\n\n/**\n * Wrapper around `console` with a \"[wxt]\" prefix\n */\nexport const logger = {\n debug: (...args: any[]) => print(console.debug, ...args),\n log: (...args: any[]) => print(console.log, ...args),\n warn: (...args: any[]) => print(console.warn, ...args),\n error: (...args: any[]) => print(console.error, ...args),\n};\n","/**\n * @module wxt/browser\n */\nimport originalBrowser, { Browser, Runtime, I18n } from 'webextension-polyfill';\n\nexport interface AugmentedBrowser extends Browser {\n runtime: WxtRuntime;\n i18n: WxtI18n;\n}\n\nexport interface WxtRuntime extends Runtime.Static {\n // Overriden per-project\n}\n\nexport interface WxtI18n extends I18n.Static {\n // Overriden per-project\n}\n\nexport const browser: AugmentedBrowser = originalBrowser;\n","import { ContentScriptDefinition } from '../../core/types';\nimport { browser } from '../browser';\nimport { logger } from './logger';\n\n/**\n * Implements [`AbortController`](https://developer.mozilla.org/en-US/docs/Web/API/AbortController).\n * Used to detect and stop content script code when the script is invalidated.\n *\n * It also provides several utilities like `ctx.setTimeout` and `ctx.setInterval` that should be used in\n * content scripts instead of `window.setTimeout` or `window.setInterval`.\n */\nexport class ContentScriptContext implements AbortController {\n private static SCRIPT_STARTED_MESSAGE_TYPE = 'wxt:content-script-started';\n\n #isTopFrame = window.self === window.top;\n #abortController: AbortController;\n\n constructor(\n private readonly contentScriptName: string,\n public readonly options?: Omit<ContentScriptDefinition, 'main'>,\n ) {\n this.#abortController = new AbortController();\n if (this.#isTopFrame) {\n this.#stopOldScripts();\n }\n this.setTimeout(() => {\n // Run on next tick so the listener it adds isn't triggered by stopOldScript\n this.#listenForNewerScripts();\n });\n }\n\n get signal() {\n return this.#abortController.signal;\n }\n\n abort(reason?: any): void {\n return this.#abortController.abort(reason);\n }\n\n get isInvalid(): boolean {\n if (browser.runtime.id == null) {\n this.notifyInvalidated(); // Sets `signal.aborted` to true\n }\n return this.signal.aborted;\n }\n\n get isValid(): boolean {\n return !this.isInvalid;\n }\n\n /**\n * Add a listener that is called when the content script's context is invalidated.\n *\n * @returns A function to remove the listener.\n *\n * @example\n * browser.runtime.onMessage.addListener(cb);\n * const removeInvalidatedListener = ctx.onInvalidated(() => {\n * browser.runtime.onMessage.removeListener(cb);\n * })\n * // ...\n * removeInvalidatedListener();\n */\n onInvalidated(cb: () => void): () => void {\n this.signal.addEventListener('abort', cb);\n return () => this.signal.removeEventListener('abort', cb);\n }\n\n /**\n * Return a promise that never resolves. Useful if you have an async function that shouldn't run\n * after the context is expired.\n *\n * @example\n * const getValueFromStorage = async () => {\n * if (ctx.isInvalid) return ctx.block();\n *\n * // ...\n * }\n */\n block<T>(): Promise<T> {\n return new Promise(() => {\n // noop\n });\n }\n\n /**\n * Wrapper around `window.setInterval` that automatically clears the interval when invalidated.\n */\n setInterval(handler: () => void, timeout?: number): number {\n const id = setInterval(() => {\n if (this.isValid) handler();\n }, timeout) as unknown as number;\n this.onInvalidated(() => clearInterval(id));\n return id;\n }\n\n /**\n * Wrapper around `window.setTimeout` that automatically clears the interval when invalidated.\n */\n setTimeout(handler: () => void, timeout?: number): number {\n const id = setTimeout(() => {\n if (this.isValid) handler();\n }, timeout) as unknown as number;\n this.onInvalidated(() => clearTimeout(id));\n return id;\n }\n\n /**\n * Wrapper around `window.requestAnimationFrame` that automatically cancels the request when\n * invalidated.\n */\n requestAnimationFrame(callback: FrameRequestCallback): number {\n const id = requestAnimationFrame((...args) => {\n if (this.isValid) callback(...args);\n });\n\n this.onInvalidated(() => cancelAnimationFrame(id));\n return id;\n }\n\n /**\n * Wrapper around `window.requestIdleCallback` that automatically cancels the request when\n * invalidated.\n */\n requestIdleCallback(\n callback: IdleRequestCallback,\n options?: IdleRequestOptions,\n ): number {\n const id = requestIdleCallback((...args) => {\n if (!this.signal.aborted) callback(...args);\n }, options);\n\n this.onInvalidated(() => cancelIdleCallback(id));\n return id;\n }\n\n /**\n * Call `target.addEventListener` and remove the event listener when the context is invalidated.\n *\n * @example\n * ctx.addEventListener(window, \"mousemove\", () => {\n * // ...\n * });\n * ctx.addEventListener(document, \"visibilitychange\", () => {\n * // ...\n * });\n */\n addEventListener(\n target: any,\n type: string,\n handler: (event: Event) => void,\n options?: AddEventListenerOptions,\n ) {\n target.addEventListener?.(type, handler, options);\n this.onInvalidated(\n () => target.removeEventListener?.(type, handler, options),\n );\n }\n\n /**\n * @internal\n * Abort the abort controller and execute all `onInvalidated` listeners.\n */\n notifyInvalidated() {\n this.abort('Content script context invalidated');\n logger.debug(\n `Content script \"${this.contentScriptName}\" context invalidated`,\n );\n }\n\n #stopOldScripts() {\n // Use postMessage so it get's sent to all the frames of the page.\n window.postMessage(\n {\n event: ContentScriptContext.SCRIPT_STARTED_MESSAGE_TYPE,\n contentScriptName: this.contentScriptName,\n },\n '*',\n );\n }\n\n #listenForNewerScripts() {\n const cb = (event: MessageEvent) => {\n if (\n event.data?.type === ContentScriptContext.SCRIPT_STARTED_MESSAGE_TYPE &&\n event.data?.contentScriptName === this.contentScriptName\n ) {\n this.notifyInvalidated();\n }\n };\n\n addEventListener('message', cb);\n this.onInvalidated(() => removeEventListener('message', cb));\n }\n}\n"],"mappings":"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","names":[]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "wxt",
3
3
  "type": "module",
4
- "version": "0.8.1",
4
+ "version": "0.8.2",
5
5
  "description": "Next gen framework for developing web extensions",
6
6
  "engines": {
7
7
  "node": ">=18",