@addonova/browser 0.0.0-stage → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +693 -2
- package/dist/adapters/chrome/index.d.ts +9 -0
- package/dist/adapters/chrome/index.d.ts.map +1 -0
- package/dist/adapters/chrome/index.js +12 -0
- package/dist/adapters/chrome/index.js.map +1 -0
- package/dist/adapters/chromium/index.d.ts +12 -0
- package/dist/adapters/chromium/index.d.ts.map +1 -0
- package/dist/adapters/chromium/index.js +12 -0
- package/dist/adapters/chromium/index.js.map +1 -0
- package/dist/adapters/edge/index.d.ts +11 -0
- package/dist/adapters/edge/index.d.ts.map +1 -0
- package/dist/adapters/edge/index.js +13 -0
- package/dist/adapters/edge/index.js.map +1 -0
- package/dist/adapters/firefox/index.d.ts +10 -0
- package/dist/adapters/firefox/index.d.ts.map +1 -0
- package/dist/adapters/firefox/index.js +12 -0
- package/dist/adapters/firefox/index.js.map +1 -0
- package/dist/adapters/shared/adapter.d.ts +13 -0
- package/dist/adapters/shared/adapter.d.ts.map +1 -0
- package/dist/adapters/shared/adapter.js +24 -0
- package/dist/adapters/shared/adapter.js.map +1 -0
- package/dist/adapters/shared/namespace.d.ts +4 -0
- package/dist/adapters/shared/namespace.d.ts.map +1 -0
- package/dist/adapters/shared/namespace.js +20 -0
- package/dist/adapters/shared/namespace.js.map +1 -0
- package/dist/adapters/types.d.ts +10 -0
- package/dist/adapters/types.d.ts.map +1 -0
- package/dist/adapters/types.js +2 -0
- package/dist/adapters/types.js.map +1 -0
- package/dist/api/action/index.d.ts +6 -0
- package/dist/api/action/index.d.ts.map +1 -0
- package/dist/api/action/index.js +56 -0
- package/dist/api/action/index.js.map +1 -0
- package/dist/api/alarms/index.d.ts +5 -0
- package/dist/api/alarms/index.d.ts.map +1 -0
- package/dist/api/alarms/index.js +34 -0
- package/dist/api/alarms/index.js.map +1 -0
- package/dist/api/bookmarks/index.d.ts +5 -0
- package/dist/api/bookmarks/index.d.ts.map +1 -0
- package/dist/api/bookmarks/index.js +39 -0
- package/dist/api/bookmarks/index.js.map +1 -0
- package/dist/api/browser.d.ts +3 -0
- package/dist/api/browser.d.ts.map +1 -0
- package/dist/api/browser.js +2 -0
- package/dist/api/browser.js.map +1 -0
- package/dist/api/commands/index.d.ts +5 -0
- package/dist/api/commands/index.d.ts.map +1 -0
- package/dist/api/commands/index.js +12 -0
- package/dist/api/commands/index.js.map +1 -0
- package/dist/api/context-menus/index.d.ts +5 -0
- package/dist/api/context-menus/index.d.ts.map +1 -0
- package/dist/api/context-menus/index.js +21 -0
- package/dist/api/context-menus/index.js.map +1 -0
- package/dist/api/cookies/index.d.ts +5 -0
- package/dist/api/cookies/index.d.ts.map +1 -0
- package/dist/api/cookies/index.js +21 -0
- package/dist/api/cookies/index.js.map +1 -0
- package/dist/api/downloads/index.d.ts +5 -0
- package/dist/api/downloads/index.d.ts.map +1 -0
- package/dist/api/downloads/index.js +20 -0
- package/dist/api/downloads/index.js.map +1 -0
- package/dist/api/helpers.d.ts +17 -0
- package/dist/api/helpers.d.ts.map +1 -0
- package/dist/api/helpers.js +100 -0
- package/dist/api/helpers.js.map +1 -0
- package/dist/api/i18n/index.d.ts +5 -0
- package/dist/api/i18n/index.d.ts.map +1 -0
- package/dist/api/i18n/index.js +17 -0
- package/dist/api/i18n/index.js.map +1 -0
- package/dist/api/lazy-adapter.d.ts +5 -0
- package/dist/api/lazy-adapter.d.ts.map +1 -0
- package/dist/api/lazy-adapter.js +37 -0
- package/dist/api/lazy-adapter.js.map +1 -0
- package/dist/api/notifications/index.d.ts +5 -0
- package/dist/api/notifications/index.d.ts.map +1 -0
- package/dist/api/notifications/index.js +27 -0
- package/dist/api/notifications/index.js.map +1 -0
- package/dist/api/permissions/index.d.ts +5 -0
- package/dist/api/permissions/index.d.ts.map +1 -0
- package/dist/api/permissions/index.js +24 -0
- package/dist/api/permissions/index.js.map +1 -0
- package/dist/api/runtime/index.d.ts +5 -0
- package/dist/api/runtime/index.d.ts.map +1 -0
- package/dist/api/runtime/index.js +38 -0
- package/dist/api/runtime/index.js.map +1 -0
- package/dist/api/scripting/index.d.ts +5 -0
- package/dist/api/scripting/index.d.ts.map +1 -0
- package/dist/api/scripting/index.js +15 -0
- package/dist/api/scripting/index.js.map +1 -0
- package/dist/api/sessions/index.d.ts +5 -0
- package/dist/api/sessions/index.d.ts.map +1 -0
- package/dist/api/sessions/index.js +19 -0
- package/dist/api/sessions/index.js.map +1 -0
- package/dist/api/singletons.d.ts +40 -0
- package/dist/api/singletons.d.ts.map +1 -0
- package/dist/api/singletons.js +60 -0
- package/dist/api/singletons.js.map +1 -0
- package/dist/api/storage/area.d.ts +4 -0
- package/dist/api/storage/area.d.ts.map +1 -0
- package/dist/api/storage/area.js +29 -0
- package/dist/api/storage/area.js.map +1 -0
- package/dist/api/storage/index.d.ts +7 -0
- package/dist/api/storage/index.d.ts.map +1 -0
- package/dist/api/storage/index.js +37 -0
- package/dist/api/storage/index.js.map +1 -0
- package/dist/api/storage/item.d.ts +4 -0
- package/dist/api/storage/item.d.ts.map +1 -0
- package/dist/api/storage/item.js +109 -0
- package/dist/api/storage/item.js.map +1 -0
- package/dist/api/tabs/index.d.ts +5 -0
- package/dist/api/tabs/index.d.ts.map +1 -0
- package/dist/api/tabs/index.js +49 -0
- package/dist/api/tabs/index.js.map +1 -0
- package/dist/api/web-navigation/index.d.ts +5 -0
- package/dist/api/web-navigation/index.d.ts.map +1 -0
- package/dist/api/web-navigation/index.js +30 -0
- package/dist/api/web-navigation/index.js.map +1 -0
- package/dist/api/web-request/index.d.ts +5 -0
- package/dist/api/web-request/index.d.ts.map +1 -0
- package/dist/api/web-request/index.js +27 -0
- package/dist/api/web-request/index.js.map +1 -0
- package/dist/api/windows/index.d.ts +5 -0
- package/dist/api/windows/index.d.ts.map +1 -0
- package/dist/api/windows/index.js +27 -0
- package/dist/api/windows/index.js.map +1 -0
- package/dist/browser/detect.d.ts +19 -0
- package/dist/browser/detect.d.ts.map +1 -0
- package/dist/browser/detect.js +89 -0
- package/dist/browser/detect.js.map +1 -0
- package/dist/browser/info.d.ts +17 -0
- package/dist/browser/info.d.ts.map +1 -0
- package/dist/browser/info.js +77 -0
- package/dist/browser/info.js.map +1 -0
- package/dist/browser/resolve.d.ts +9 -0
- package/dist/browser/resolve.d.ts.map +1 -0
- package/dist/browser/resolve.js +57 -0
- package/dist/browser/resolve.js.map +1 -0
- package/dist/browser/support.d.ts +8 -0
- package/dist/browser/support.d.ts.map +1 -0
- package/dist/browser/support.js +18 -0
- package/dist/browser/support.js.map +1 -0
- package/dist/build/target.d.ts +5 -0
- package/dist/build/target.d.ts.map +1 -0
- package/dist/build/target.js +21 -0
- package/dist/build/target.js.map +1 -0
- package/dist/content/context.d.ts +24 -0
- package/dist/content/context.d.ts.map +1 -0
- package/dist/content/context.js +157 -0
- package/dist/content/context.js.map +1 -0
- package/dist/content/index.d.ts +7 -0
- package/dist/content/index.d.ts.map +1 -0
- package/dist/content/index.js +4 -0
- package/dist/content/index.js.map +1 -0
- package/dist/content/inject-root.d.ts +2 -0
- package/dist/content/inject-root.d.ts.map +1 -0
- package/dist/content/inject-root.js +4 -0
- package/dist/content/inject-root.js.map +1 -0
- package/dist/content/inject-script.d.ts +16 -0
- package/dist/content/inject-script.d.ts.map +1 -0
- package/dist/content/inject-script.js +39 -0
- package/dist/content/inject-script.js.map +1 -0
- package/dist/content/ui.d.ts +50 -0
- package/dist/content/ui.d.ts.map +1 -0
- package/dist/content/ui.js +331 -0
- package/dist/content/ui.js.map +1 -0
- package/dist/entries/chrome.d.ts +52 -0
- package/dist/entries/chrome.d.ts.map +1 -0
- package/dist/entries/chrome.js +101 -0
- package/dist/entries/chrome.js.map +1 -0
- package/dist/entries/chromium.d.ts +52 -0
- package/dist/entries/chromium.d.ts.map +1 -0
- package/dist/entries/chromium.js +102 -0
- package/dist/entries/chromium.js.map +1 -0
- package/dist/entries/edge.d.ts +52 -0
- package/dist/entries/edge.d.ts.map +1 -0
- package/dist/entries/edge.js +101 -0
- package/dist/entries/edge.js.map +1 -0
- package/dist/entries/firefox.d.ts +52 -0
- package/dist/entries/firefox.d.ts.map +1 -0
- package/dist/entries/firefox.js +100 -0
- package/dist/entries/firefox.js.map +1 -0
- package/dist/entries/info.d.ts +5 -0
- package/dist/entries/info.d.ts.map +1 -0
- package/dist/entries/info.js +21 -0
- package/dist/entries/info.js.map +1 -0
- package/dist/entries/shared-exports.d.ts +20 -0
- package/dist/entries/shared-exports.d.ts.map +1 -0
- package/dist/entries/shared-exports.js +10 -0
- package/dist/entries/shared-exports.js.map +1 -0
- package/dist/entries/support.d.ts +6 -0
- package/dist/entries/support.d.ts.map +1 -0
- package/dist/entries/support.js +16 -0
- package/dist/entries/support.js.map +1 -0
- package/dist/entries/utilities.d.ts +6 -0
- package/dist/entries/utilities.d.ts.map +1 -0
- package/dist/entries/utilities.js +7 -0
- package/dist/entries/utilities.js.map +1 -0
- package/dist/i18n/index.d.ts +16 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +52 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/messaging/index.d.ts +22 -0
- package/dist/messaging/index.d.ts.map +1 -0
- package/dist/messaging/index.js +100 -0
- package/dist/messaging/index.js.map +1 -0
- package/dist/messaging/proxy.d.ts +17 -0
- package/dist/messaging/proxy.d.ts.map +1 -0
- package/dist/messaging/proxy.js +61 -0
- package/dist/messaging/proxy.js.map +1 -0
- package/dist/messaging/root.d.ts +4 -0
- package/dist/messaging/root.d.ts.map +1 -0
- package/dist/messaging/root.js +9 -0
- package/dist/messaging/root.js.map +1 -0
- package/dist/shared/capabilities.d.ts +25 -0
- package/dist/shared/capabilities.d.ts.map +1 -0
- package/dist/shared/capabilities.js +41 -0
- package/dist/shared/capabilities.js.map +1 -0
- package/dist/shared/errors.d.ts +18 -0
- package/dist/shared/errors.d.ts.map +1 -0
- package/dist/shared/errors.js +32 -0
- package/dist/shared/errors.js.map +1 -0
- package/dist/shared/events.d.ts +11 -0
- package/dist/shared/events.d.ts.map +1 -0
- package/dist/shared/events.js +19 -0
- package/dist/shared/events.js.map +1 -0
- package/dist/shared/objects.d.ts +4 -0
- package/dist/shared/objects.d.ts.map +1 -0
- package/dist/shared/objects.js +14 -0
- package/dist/shared/objects.js.map +1 -0
- package/dist/shared/promises.d.ts +11 -0
- package/dist/shared/promises.d.ts.map +1 -0
- package/dist/shared/promises.js +70 -0
- package/dist/shared/promises.js.map +1 -0
- package/dist/testing/fake-browser.d.ts +184 -0
- package/dist/testing/fake-browser.d.ts.map +1 -0
- package/dist/testing/fake-browser.js +994 -0
- package/dist/testing/fake-browser.js.map +1 -0
- package/dist/testing/index.d.ts +3 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +2 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/setup.d.ts +2 -0
- package/dist/testing/setup.d.ts.map +1 -0
- package/dist/testing/setup.js +6 -0
- package/dist/testing/setup.js.map +1 -0
- package/dist/types/action.d.ts +35 -0
- package/dist/types/action.d.ts.map +1 -0
- package/dist/types/action.js +2 -0
- package/dist/types/action.js.map +1 -0
- package/dist/types/alarms.d.ts +21 -0
- package/dist/types/alarms.d.ts.map +1 -0
- package/dist/types/alarms.js +2 -0
- package/dist/types/alarms.js.map +1 -0
- package/dist/types/bookmarks.d.ts +57 -0
- package/dist/types/bookmarks.d.ts.map +1 -0
- package/dist/types/bookmarks.js +2 -0
- package/dist/types/bookmarks.js.map +1 -0
- package/dist/types/commands.d.ts +11 -0
- package/dist/types/commands.d.ts.map +1 -0
- package/dist/types/commands.js +2 -0
- package/dist/types/commands.js.map +1 -0
- package/dist/types/context-menus.d.ts +48 -0
- package/dist/types/context-menus.d.ts.map +1 -0
- package/dist/types/context-menus.js +2 -0
- package/dist/types/context-menus.js.map +1 -0
- package/dist/types/cookies.d.ts +54 -0
- package/dist/types/cookies.d.ts.map +1 -0
- package/dist/types/cookies.js +2 -0
- package/dist/types/cookies.js.map +1 -0
- package/dist/types/downloads.d.ts +43 -0
- package/dist/types/downloads.d.ts.map +1 -0
- package/dist/types/downloads.js +2 -0
- package/dist/types/downloads.js.map +1 -0
- package/dist/types/i18n.d.ts +14 -0
- package/dist/types/i18n.d.ts.map +1 -0
- package/dist/types/i18n.js +2 -0
- package/dist/types/i18n.js.map +1 -0
- package/dist/types/index.d.ts +19 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/notifications.d.ts +35 -0
- package/dist/types/notifications.d.ts.map +1 -0
- package/dist/types/notifications.js +2 -0
- package/dist/types/notifications.js.map +1 -0
- package/dist/types/permissions.d.ts +14 -0
- package/dist/types/permissions.d.ts.map +1 -0
- package/dist/types/permissions.js +2 -0
- package/dist/types/permissions.js.map +1 -0
- package/dist/types/runtime.d.ts +58 -0
- package/dist/types/runtime.d.ts.map +1 -0
- package/dist/types/runtime.js +2 -0
- package/dist/types/runtime.js.map +1 -0
- package/dist/types/scripting.d.ts +30 -0
- package/dist/types/scripting.d.ts.map +1 -0
- package/dist/types/scripting.js +2 -0
- package/dist/types/scripting.js.map +1 -0
- package/dist/types/sessions.d.ts +28 -0
- package/dist/types/sessions.d.ts.map +1 -0
- package/dist/types/sessions.js +2 -0
- package/dist/types/sessions.js.map +1 -0
- package/dist/types/storage.d.ts +51 -0
- package/dist/types/storage.d.ts.map +1 -0
- package/dist/types/storage.js +2 -0
- package/dist/types/storage.js.map +1 -0
- package/dist/types/tabs.d.ts +96 -0
- package/dist/types/tabs.d.ts.map +1 -0
- package/dist/types/tabs.js +2 -0
- package/dist/types/tabs.js.map +1 -0
- package/dist/types/web-navigation.d.ts +28 -0
- package/dist/types/web-navigation.d.ts.map +1 -0
- package/dist/types/web-navigation.js +2 -0
- package/dist/types/web-navigation.js.map +1 -0
- package/dist/types/web-request.d.ts +20 -0
- package/dist/types/web-request.d.ts.map +1 -0
- package/dist/types/web-request.js +2 -0
- package/dist/types/web-request.js.map +1 -0
- package/dist/types/windows.d.ts +52 -0
- package/dist/types/windows.d.ts.map +1 -0
- package/dist/types/windows.js +2 -0
- package/dist/types/windows.js.map +1 -0
- package/package.json +97 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/browser/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAMhD,IAAI,aAAgD,CAAC;AAErD,MAAM,UAAU,cAAc,CAC5B,OAAO,GAA0B,EAAE;IAEnC,MAAM,QAAQ,GACZ,OAAO,CAAC,KAAK,KAAK,SAAS;QAC3B,OAAO,CAAC,SAAS,KAAK,SAAS;QAC/B,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC;IAE/B,IAAI,QAAQ,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAC5C,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,MAAM,OAAO,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAE/C,IAAI,QAAQ,EAAE,CAAC;QACb,aAAa,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,aAAa,GAAG,SAAS,CAAC;AAC5B,CAAC;AAED,SAAS,qBAAqB,CAC5B,OAA8B;IAE9B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,gBAAgB,EAAE,CAAC;IACpD,MAAM,SAAS,GAAG,aAAa,CAAC;QAC9B,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;QAChE,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;QAC5E,WAAW,EAAE,MAAM,KAAK,MAAM;KAC/B,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;IAEzD,IAAI,IAAI,KAAK,SAAS,IAAI,SAAS,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,eAAe,GAAG,mBAAmB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC3D,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC;IAC1B,MAAM,aAAa,GAAG,SAAS,CAAC,aAAa,CAAC;IAE9C,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ;YACX,OAAO,mBAAmB,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE,aAAa,EAAE,CAAC,CAAC;QACtE,KAAK,UAAU;YACb,OAAO,qBAAqB,CAAC;gBAC3B,MAAM,EAAE,UAAU;gBAClB,GAAG;gBACH,eAAe;gBACf,aAAa;aACd,CAAC,CAAC;QACL,KAAK,MAAM;YACT,OAAO,iBAAiB,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE,aAAa,EAAE,CAAC,CAAC;QACpE,KAAK,SAAS;YACZ,OAAO,oBAAoB,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE,CAAC,CAAC;QACxD;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { normalizeQuery } from '../shared/capabilities.ts';
|
|
2
|
+
import type { ApiAvailability, CapabilityQuery } from '../shared/capabilities.ts';
|
|
3
|
+
import type { DetectBrowserOptions } from './detect.ts';
|
|
4
|
+
export { normalizeQuery };
|
|
5
|
+
export declare function isBrowserSupported(options?: DetectBrowserOptions): boolean;
|
|
6
|
+
export declare function supports(api: string | CapabilityQuery, options?: DetectBrowserOptions): boolean;
|
|
7
|
+
export declare function getAvailability(api: string | CapabilityQuery, options?: DetectBrowserOptions): ApiAvailability;
|
|
8
|
+
//# sourceMappingURL=support.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"support.d.ts","sourceRoot":"","sources":["../../src/browser/support.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EAEf,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EAChB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGxD,OAAO,EAAE,cAAc,EAAE,CAAC;AAE1B,wBAAgB,kBAAkB,CAChC,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAET;AAED,wBAAgB,QAAQ,CACtB,GAAG,EAAE,MAAM,GAAG,eAAe,EAC7B,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAGT;AAED,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,GAAG,eAAe,EAC7B,OAAO,GAAE,oBAAyB,GACjC,eAAe,CAOjB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { normalizeQuery, unavailableCapability, } from '../shared/capabilities.js';
|
|
2
|
+
import { resolveAdapter } from './resolve.js';
|
|
3
|
+
export { normalizeQuery };
|
|
4
|
+
export function isBrowserSupported(options = {}) {
|
|
5
|
+
return resolveAdapter(options) !== null;
|
|
6
|
+
}
|
|
7
|
+
export function supports(api, options = {}) {
|
|
8
|
+
const adapter = resolveAdapter(options);
|
|
9
|
+
return adapter === null ? false : adapter.supports(normalizeQuery(api));
|
|
10
|
+
}
|
|
11
|
+
export function getAvailability(api, options = {}) {
|
|
12
|
+
const query = normalizeQuery(api);
|
|
13
|
+
const adapter = resolveAdapter(options);
|
|
14
|
+
return adapter === null
|
|
15
|
+
? unavailableCapability(query, 'unsupported-browser')
|
|
16
|
+
: adapter.availability(query);
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=support.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"support.js","sourceRoot":"","sources":["../../src/browser/support.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,qBAAqB,GACtB,MAAM,2BAA2B,CAAC;AAMnC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,CAAC;AAE1B,MAAM,UAAU,kBAAkB,CAChC,OAAO,GAAyB,EAAE;IAElC,OAAO,cAAc,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,QAAQ,CACtB,GAA6B,EAC7B,OAAO,GAAyB,EAAE;IAElC,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACxC,OAAO,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,GAA6B,EAC7B,OAAO,GAAyB,EAAE;IAElC,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAExC,OAAO,OAAO,KAAK,IAAI;QACrB,CAAC,CAAC,qBAAqB,CAAC,KAAK,EAAE,qBAAqB,CAAC;QACrD,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAClC,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { BrowserTarget } from '../shared/capabilities.ts';
|
|
2
|
+
export type CompileTarget = BrowserTarget | 'auto';
|
|
3
|
+
export declare function normalizeCompileTarget(value: unknown): CompileTarget;
|
|
4
|
+
export declare function getCompileTarget(read?: () => unknown): CompileTarget;
|
|
5
|
+
//# sourceMappingURL=target.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"target.d.ts","sourceRoot":"","sources":["../../src/build/target.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/D,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,MAAM,CAAC;AAInD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,CAMpE;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,GAAE,MAAM,OAA2B,GACtC,aAAa,CAMf"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { isBrowserTarget } from '../shared/capabilities.js';
|
|
2
|
+
export function normalizeCompileTarget(value) {
|
|
3
|
+
if (value === 'auto' || value === undefined || value === null || value === '') {
|
|
4
|
+
return 'auto';
|
|
5
|
+
}
|
|
6
|
+
return isBrowserTarget(value) ? value : 'auto';
|
|
7
|
+
}
|
|
8
|
+
export function getCompileTarget(read = readCompileTarget) {
|
|
9
|
+
try {
|
|
10
|
+
return normalizeCompileTarget(read());
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
return 'auto';
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
function readCompileTarget() {
|
|
17
|
+
return typeof __ADDONOVA_BROWSER__ === 'undefined'
|
|
18
|
+
? undefined
|
|
19
|
+
: __ADDONOVA_BROWSER__;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=target.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"target.js","sourceRoot":"","sources":["../../src/build/target.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAO5D,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACnD,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;QAC9E,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,IAAI,GAAkB,iBAAiB;IAEvC,IAAI,CAAC;QACH,OAAO,sBAAsB,CAAC,IAAI,EAAE,CAAC,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC;IAChB,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB;IACxB,OAAO,OAAO,oBAAoB,KAAK,WAAW;QAChD,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,oBAAoB,CAAC;AAC3B,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export type ContentScriptTimer = ReturnType<typeof globalThis.setTimeout>;
|
|
2
|
+
export interface ContentScriptRuntime {
|
|
3
|
+
readonly id?: string;
|
|
4
|
+
}
|
|
5
|
+
export interface ContentScriptContextOptions {
|
|
6
|
+
readonly validateRuntime?: boolean;
|
|
7
|
+
readonly runtime?: ContentScriptRuntime;
|
|
8
|
+
}
|
|
9
|
+
export interface ContentScriptContext {
|
|
10
|
+
readonly isValid: boolean;
|
|
11
|
+
readonly signal: AbortSignal;
|
|
12
|
+
setTimeout(callback: (...args: unknown[]) => void, timeout?: number, ...args: unknown[]): ContentScriptTimer;
|
|
13
|
+
clearTimeout(timer: ContentScriptTimer): void;
|
|
14
|
+
setInterval(callback: (...args: unknown[]) => void, timeout?: number, ...args: unknown[]): ContentScriptTimer;
|
|
15
|
+
clearInterval(timer: ContentScriptTimer): void;
|
|
16
|
+
requestAnimationFrame(callback: FrameRequestCallback): number;
|
|
17
|
+
cancelAnimationFrame(id: number): void;
|
|
18
|
+
addEventListener<Target extends EventTarget>(target: Target, type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): () => void;
|
|
19
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): () => void;
|
|
20
|
+
onInvalidated(callback: () => void): () => void;
|
|
21
|
+
invalidate(): void;
|
|
22
|
+
}
|
|
23
|
+
export declare function createContentScriptContext(options?: ContentScriptContextOptions): ContentScriptContext;
|
|
24
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/content/context.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,kBAAkB,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,UAAU,CAAC,CAAC;AAE1E,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,oBAAoB,CAAC;CACzC;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,UAAU,CACR,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,EACtC,OAAO,CAAC,EAAE,MAAM,EAChB,GAAG,IAAI,EAAE,OAAO,EAAE,GACjB,kBAAkB,CAAC;IACtB,YAAY,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC9C,WAAW,CACT,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,EACtC,OAAO,CAAC,EAAE,MAAM,EAChB,GAAG,IAAI,EAAE,OAAO,EAAE,GACjB,kBAAkB,CAAC;IACtB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC/C,qBAAqB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,MAAM,CAAC;IAC9D,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,gBAAgB,CAAC,MAAM,SAAS,WAAW,EACzC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,kCAAkC,EAC5C,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAC1C,MAAM,IAAI,CAAC;IACd,gBAAgB,CACd,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,kCAAkC,EAC5C,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAC1C,MAAM,IAAI,CAAC;IACd,aAAa,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;IAChD,UAAU,IAAI,IAAI,CAAC;CACpB;AASD,wBAAgB,0BAA0B,CACxC,OAAO,GAAE,2BAAgC,GACxC,oBAAoB,CA2LtB"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import { BrowserApiError } from '../shared/errors.js';
|
|
2
|
+
export function createContentScriptContext(options = {}) {
|
|
3
|
+
const validateRuntime = options.validateRuntime ?? true;
|
|
4
|
+
const runtime = options.runtime ?? getGlobalRuntime();
|
|
5
|
+
const controller = new AbortController();
|
|
6
|
+
const timers = new Set();
|
|
7
|
+
const intervals = new Set();
|
|
8
|
+
const animationFrames = new Set();
|
|
9
|
+
const listeners = new Map();
|
|
10
|
+
const invalidationCallbacks = new Set();
|
|
11
|
+
const isValid = () => {
|
|
12
|
+
if (controller.signal.aborted) {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
if (!validateRuntime) {
|
|
16
|
+
return true;
|
|
17
|
+
}
|
|
18
|
+
try {
|
|
19
|
+
return runtime?.id !== undefined && runtime.id !== '';
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
const context = {
|
|
26
|
+
get isValid() {
|
|
27
|
+
return isValid();
|
|
28
|
+
},
|
|
29
|
+
signal: controller.signal,
|
|
30
|
+
setTimeout(callback, timeout = 0, ...args) {
|
|
31
|
+
const timer = globalThis.setTimeout(() => {
|
|
32
|
+
timers.delete(timer);
|
|
33
|
+
if (!controller.signal.aborted) {
|
|
34
|
+
callback(...args);
|
|
35
|
+
}
|
|
36
|
+
}, timeout);
|
|
37
|
+
timers.add(timer);
|
|
38
|
+
return timer;
|
|
39
|
+
},
|
|
40
|
+
clearTimeout(timer) {
|
|
41
|
+
timers.delete(timer);
|
|
42
|
+
globalThis.clearTimeout(timer);
|
|
43
|
+
},
|
|
44
|
+
setInterval(callback, timeout = 0, ...args) {
|
|
45
|
+
const timer = globalThis.setInterval(() => {
|
|
46
|
+
if (!controller.signal.aborted) {
|
|
47
|
+
callback(...args);
|
|
48
|
+
}
|
|
49
|
+
}, timeout);
|
|
50
|
+
intervals.add(timer);
|
|
51
|
+
return timer;
|
|
52
|
+
},
|
|
53
|
+
clearInterval(timer) {
|
|
54
|
+
intervals.delete(timer);
|
|
55
|
+
globalThis.clearInterval(timer);
|
|
56
|
+
},
|
|
57
|
+
requestAnimationFrame(callback) {
|
|
58
|
+
if (typeof globalThis.requestAnimationFrame !== 'function') {
|
|
59
|
+
throw new BrowserApiError('BROWSER_UNSUPPORTED_API', 'requestAnimationFrame is not available in this environment.');
|
|
60
|
+
}
|
|
61
|
+
const id = globalThis.requestAnimationFrame((time) => {
|
|
62
|
+
animationFrames.delete(id);
|
|
63
|
+
if (!controller.signal.aborted) {
|
|
64
|
+
callback(time);
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
animationFrames.add(id);
|
|
68
|
+
return id;
|
|
69
|
+
},
|
|
70
|
+
cancelAnimationFrame(id) {
|
|
71
|
+
animationFrames.delete(id);
|
|
72
|
+
globalThis.cancelAnimationFrame?.(id);
|
|
73
|
+
},
|
|
74
|
+
addEventListener(targetOrType, typeOrListener, listenerOrOptions, maybeOptions) {
|
|
75
|
+
const hasTarget = typeof targetOrType !== 'string';
|
|
76
|
+
const target = hasTarget
|
|
77
|
+
? targetOrType
|
|
78
|
+
: getDefaultEventTarget();
|
|
79
|
+
const type = hasTarget ? typeOrListener : targetOrType;
|
|
80
|
+
const listener = hasTarget
|
|
81
|
+
? listenerOrOptions
|
|
82
|
+
: typeOrListener;
|
|
83
|
+
const options = hasTarget
|
|
84
|
+
? maybeOptions
|
|
85
|
+
: listenerOrOptions;
|
|
86
|
+
if (target === undefined) {
|
|
87
|
+
throw new BrowserApiError('BROWSER_UNSUPPORTED_ENVIRONMENT', 'No event target is available for the content script context.');
|
|
88
|
+
}
|
|
89
|
+
target.addEventListener(type, listener, options);
|
|
90
|
+
const remove = () => {
|
|
91
|
+
target.removeEventListener(type, listener, options);
|
|
92
|
+
listeners.delete(remove);
|
|
93
|
+
};
|
|
94
|
+
listeners.set(remove, {
|
|
95
|
+
target,
|
|
96
|
+
type,
|
|
97
|
+
listener,
|
|
98
|
+
...(options === undefined ? {} : { options }),
|
|
99
|
+
});
|
|
100
|
+
return remove;
|
|
101
|
+
},
|
|
102
|
+
onInvalidated(callback) {
|
|
103
|
+
if (controller.signal.aborted) {
|
|
104
|
+
callback();
|
|
105
|
+
return () => { };
|
|
106
|
+
}
|
|
107
|
+
invalidationCallbacks.add(callback);
|
|
108
|
+
return () => invalidationCallbacks.delete(callback);
|
|
109
|
+
},
|
|
110
|
+
invalidate() {
|
|
111
|
+
if (controller.signal.aborted) {
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
controller.abort();
|
|
115
|
+
for (const timer of timers) {
|
|
116
|
+
globalThis.clearTimeout(timer);
|
|
117
|
+
}
|
|
118
|
+
timers.clear();
|
|
119
|
+
for (const timer of intervals) {
|
|
120
|
+
globalThis.clearInterval(timer);
|
|
121
|
+
}
|
|
122
|
+
intervals.clear();
|
|
123
|
+
for (const id of animationFrames) {
|
|
124
|
+
globalThis.cancelAnimationFrame?.(id);
|
|
125
|
+
}
|
|
126
|
+
animationFrames.clear();
|
|
127
|
+
for (const remove of [...listeners.keys()]) {
|
|
128
|
+
remove();
|
|
129
|
+
}
|
|
130
|
+
listeners.clear();
|
|
131
|
+
for (const callback of [...invalidationCallbacks]) {
|
|
132
|
+
callback();
|
|
133
|
+
}
|
|
134
|
+
invalidationCallbacks.clear();
|
|
135
|
+
},
|
|
136
|
+
};
|
|
137
|
+
if (typeof window !== 'undefined') {
|
|
138
|
+
context.addEventListener(window, 'pagehide', () => context.invalidate(), {
|
|
139
|
+
once: true,
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
return context;
|
|
143
|
+
}
|
|
144
|
+
function getGlobalRuntime() {
|
|
145
|
+
const global = globalThis;
|
|
146
|
+
return global.browser?.runtime ?? global.chrome?.runtime;
|
|
147
|
+
}
|
|
148
|
+
function getDefaultEventTarget() {
|
|
149
|
+
if (typeof window !== 'undefined') {
|
|
150
|
+
return window;
|
|
151
|
+
}
|
|
152
|
+
if (typeof document !== 'undefined') {
|
|
153
|
+
return document;
|
|
154
|
+
}
|
|
155
|
+
return undefined;
|
|
156
|
+
}
|
|
157
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/content/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { createContentScriptContext, } from './context.ts';
|
|
2
|
+
export type { ContentScriptContext, ContentScriptContextOptions, ContentScriptRuntime, ContentScriptTimer, } from './context.ts';
|
|
3
|
+
export { createInjectScript } from './inject-script.ts';
|
|
4
|
+
export type { InjectScript, InjectScriptApis, InjectScriptOptions, } from './inject-script.ts';
|
|
5
|
+
export { createIframeUi, createIntegratedUi, createShadowRootUi, } from './ui.ts';
|
|
6
|
+
export type { AutoMountOptions, BaseUiOptions, ContentScriptUi, IframeUiOptions, IntegratedUiOptions, ShadowRootContentScriptUi, ShadowRootUiOptions, UiAlignment, UiAnchor, UiAppendMode, UiPosition, } from './ui.ts';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/content/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,GAC3B,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,oBAAoB,EACpB,2BAA2B,EAC3B,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,yBAAyB,EACzB,mBAAmB,EACnB,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,UAAU,GACX,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/content/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,GAC3B,MAAM,cAAc,CAAC;AAOtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAMxD,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inject-root.d.ts","sourceRoot":"","sources":["../../src/content/inject-root.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,YAAY,2CAA0C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inject-root.js","sourceRoot":"","sources":["../../src/content/inject-root.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,CAAC,MAAM,YAAY,GAAG,kBAAkB,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { InjectionResult, ScriptingApi } from '../types/scripting.ts';
|
|
2
|
+
import type { TabsApi } from '../types/tabs.ts';
|
|
3
|
+
export interface InjectScriptOptions {
|
|
4
|
+
readonly tabId?: number;
|
|
5
|
+
readonly frameIds?: readonly number[];
|
|
6
|
+
readonly allFrames?: boolean;
|
|
7
|
+
readonly world?: 'ISOLATED' | 'MAIN' | string;
|
|
8
|
+
readonly injectImmediately?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface InjectScriptApis {
|
|
11
|
+
readonly scripting: Pick<ScriptingApi, 'executeScript'>;
|
|
12
|
+
readonly tabs: Pick<TabsApi, 'query'>;
|
|
13
|
+
}
|
|
14
|
+
export type InjectScript = (path: string | readonly string[], options?: InjectScriptOptions) => Promise<InjectionResult[]>;
|
|
15
|
+
export declare function createInjectScript(apis: InjectScriptApis): InjectScript;
|
|
16
|
+
//# sourceMappingURL=inject-script.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inject-script.d.ts","sourceRoot":"","sources":["../../src/content/inject-script.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EAGf,YAAY,EACb,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAEhD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;IAC9C,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CACtC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;IACxD,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;CACvC;AAED,MAAM,MAAM,YAAY,GAAG,CACzB,IAAI,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,EAChC,OAAO,CAAC,EAAE,mBAAmB,KAC1B,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;AAEhC,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,GAAG,YAAY,CAmDvE"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { BrowserApiError } from '../shared/errors.js';
|
|
2
|
+
export function createInjectScript(apis) {
|
|
3
|
+
const findActiveTabId = async () => {
|
|
4
|
+
const [tab] = await apis.tabs.query({
|
|
5
|
+
active: true,
|
|
6
|
+
currentWindow: true,
|
|
7
|
+
});
|
|
8
|
+
if (tab?.id === undefined) {
|
|
9
|
+
throw new BrowserApiError('BROWSER_API_FAILED', 'Could not resolve an active tab for script injection.', { api: 'tabs.query' });
|
|
10
|
+
}
|
|
11
|
+
return tab.id;
|
|
12
|
+
};
|
|
13
|
+
const resolveTarget = async (options) => {
|
|
14
|
+
const tabId = options.tabId ?? (await findActiveTabId());
|
|
15
|
+
return {
|
|
16
|
+
tabId,
|
|
17
|
+
...(options.frameIds === undefined
|
|
18
|
+
? {}
|
|
19
|
+
: { frameIds: options.frameIds }),
|
|
20
|
+
...(options.allFrames === undefined
|
|
21
|
+
? {}
|
|
22
|
+
: { allFrames: options.allFrames }),
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
return async function injectScript(path, options = {}) {
|
|
26
|
+
const target = await resolveTarget(options);
|
|
27
|
+
const files = typeof path === 'string' ? [path] : [...path];
|
|
28
|
+
const injection = {
|
|
29
|
+
target,
|
|
30
|
+
files,
|
|
31
|
+
...(options.world === undefined ? {} : { world: options.world }),
|
|
32
|
+
...(options.injectImmediately === undefined
|
|
33
|
+
? {}
|
|
34
|
+
: { injectImmediately: options.injectImmediately }),
|
|
35
|
+
};
|
|
36
|
+
return apis.scripting.executeScript(injection);
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=inject-script.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inject-script.js","sourceRoot":"","sources":["../../src/content/inject-script.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AA2BtD,MAAM,UAAU,kBAAkB,CAAC,IAAsB;IACvD,MAAM,eAAe,GAAG,KAAK,IAAqB,EAAE;QAClD,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YAClC,MAAM,EAAE,IAAI;YACZ,aAAa,EAAE,IAAI;SACpB,CAAC,CAAC;QAEH,IAAI,GAAG,EAAE,EAAE,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,IAAI,eAAe,CACvB,oBAAoB,EACpB,uDAAuD,EACvD,EAAE,GAAG,EAAE,YAAY,EAAE,CACtB,CAAC;QACJ,CAAC;QAED,OAAO,GAAG,CAAC,EAAE,CAAC;IAChB,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,KAAK,EACzB,OAA4B,EACF,EAAE;QAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,MAAM,eAAe,EAAE,CAAC,CAAC;QAEzD,OAAO;YACL,KAAK;YACL,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS;gBAChC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;YACnC,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS;gBACjC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;SACtC,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,KAAK,UAAU,YAAY,CAChC,IAAgC,EAChC,OAAO,GAAwB,EAAE;QAEjC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAC5D,MAAM,SAAS,GAAoB;YACjC,MAAM;YACN,KAAK;YACL,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;YAChE,GAAG,CAAC,OAAO,CAAC,iBAAiB,KAAK,SAAS;gBACzC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,EAAE,CAAC;SACtD,CAAC;QAEF,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IACjD,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { ContentScriptContext } from './context.ts';
|
|
2
|
+
export type UiAnchor = string | Element | (() => string | Element | null | undefined) | null;
|
|
3
|
+
export type UiAppendMode = 'first' | 'last' | 'before' | 'after' | 'replace' | ((anchor: Element, ui: HTMLElement) => void);
|
|
4
|
+
export type UiPosition = 'inline' | 'overlay' | 'modal';
|
|
5
|
+
export type UiAlignment = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
|
|
6
|
+
export interface AutoMountOptions {
|
|
7
|
+
readonly once?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface ContentScriptUi<T> {
|
|
10
|
+
readonly mounted: T | undefined;
|
|
11
|
+
readonly element: HTMLElement | undefined;
|
|
12
|
+
readonly isValid: boolean;
|
|
13
|
+
mount(): Promise<T>;
|
|
14
|
+
remove(): void;
|
|
15
|
+
unmount(): void;
|
|
16
|
+
autoMount(options?: AutoMountOptions): () => void;
|
|
17
|
+
}
|
|
18
|
+
export interface BaseUiOptions<T> {
|
|
19
|
+
readonly anchor?: UiAnchor;
|
|
20
|
+
readonly append?: UiAppendMode;
|
|
21
|
+
readonly position?: UiPosition;
|
|
22
|
+
readonly alignment?: UiAlignment;
|
|
23
|
+
readonly zIndex?: number;
|
|
24
|
+
readonly onRemove?: (mounted: T | undefined) => void;
|
|
25
|
+
}
|
|
26
|
+
export interface IntegratedUiOptions<T> extends BaseUiOptions<T> {
|
|
27
|
+
readonly tag?: string;
|
|
28
|
+
readonly onMount?: (container: HTMLElement) => T | Promise<T>;
|
|
29
|
+
}
|
|
30
|
+
export interface ShadowRootUiOptions<T> extends BaseUiOptions<T> {
|
|
31
|
+
readonly tag?: string;
|
|
32
|
+
readonly name?: string;
|
|
33
|
+
readonly css?: string;
|
|
34
|
+
readonly mode?: ShadowRootMode;
|
|
35
|
+
readonly isolateEvents?: boolean;
|
|
36
|
+
readonly onMount?: (container: HTMLElement) => T | Promise<T>;
|
|
37
|
+
}
|
|
38
|
+
export interface IframeUiOptions<T> extends BaseUiOptions<T> {
|
|
39
|
+
readonly page: string;
|
|
40
|
+
readonly tag?: string;
|
|
41
|
+
readonly onMount?: (iframe: HTMLIFrameElement, wrapper: HTMLElement) => T | Promise<T>;
|
|
42
|
+
}
|
|
43
|
+
export interface ShadowRootContentScriptUi<T> extends ContentScriptUi<T> {
|
|
44
|
+
readonly shadow: ShadowRoot | undefined;
|
|
45
|
+
readonly shadowHost: HTMLElement | undefined;
|
|
46
|
+
}
|
|
47
|
+
export declare function createIntegratedUi<T = HTMLElement>(ctx: ContentScriptContext, options?: IntegratedUiOptions<T>): ContentScriptUi<T>;
|
|
48
|
+
export declare function createShadowRootUi<T = HTMLElement>(ctx: ContentScriptContext, options?: ShadowRootUiOptions<T>): ShadowRootContentScriptUi<T>;
|
|
49
|
+
export declare function createIframeUi<T = HTMLIFrameElement>(ctx: ContentScriptContext, options: IframeUiOptions<T>): ContentScriptUi<T>;
|
|
50
|
+
//# sourceMappingURL=ui.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/content/ui.ts"],"names":[],"mappings":"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"}
|