adnbn 0.0.39 → 0.0.40
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/dist/browser/index.cjs +122 -76
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.d.mts +6 -1
- package/dist/browser/index.d.ts +6 -1
- package/dist/browser/index.js +120 -77
- package/dist/browser/index.js.map +1 -1
- package/dist/cli/index.cjs +39 -32
- package/dist/cli/index.cjs.map +1 -1
- package/dist/entry/command/index.cjs +24 -4
- package/dist/entry/command/index.cjs.map +1 -1
- package/dist/entry/command/index.js +24 -4
- package/dist/entry/command/index.js.map +1 -1
- package/dist/entry/service/index.cjs +77 -40
- package/dist/entry/service/index.cjs.map +1 -1
- package/dist/entry/service/index.js +77 -40
- package/dist/entry/service/index.js.map +1 -1
- package/dist/index.cjs +76 -39
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +76 -39
- package/dist/index.js.map +1 -1
- package/dist/message/index.cjs +75 -37
- package/dist/message/index.cjs.map +1 -1
- package/dist/message/index.d.mts +12 -10
- package/dist/message/index.d.ts +12 -10
- package/dist/message/index.js +75 -38
- package/dist/message/index.js.map +1 -1
- package/dist/message/react.cjs +74 -37
- package/dist/message/react.cjs.map +1 -1
- package/dist/message/react.d.mts +2 -2
- package/dist/message/react.d.ts +2 -2
- package/dist/message/react.js +74 -37
- package/dist/message/react.js.map +1 -1
- package/dist/message-CXzpmlXD.d.mts +28 -0
- package/dist/message-CXzpmlXD.d.ts +28 -0
- package/dist/relay/index.cjs +73 -68
- package/dist/relay/index.cjs.map +1 -1
- package/dist/relay/index.d.mts +34 -20
- package/dist/relay/index.d.ts +34 -20
- package/dist/relay/index.js +72 -66
- package/dist/relay/index.js.map +1 -1
- package/dist/service/index.cjs +77 -40
- package/dist/service/index.cjs.map +1 -1
- package/dist/service/index.d.mts +2 -2
- package/dist/service/index.d.ts +2 -2
- package/dist/service/index.js +77 -40
- package/dist/service/index.js.map +1 -1
- package/dist/storage/index.cjs.map +1 -1
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/react.cjs.map +1 -1
- package/dist/storage/react.js.map +1 -1
- package/package.json +6 -5
- package/dist/message-DO3GF4T9.d.mts +0 -27
- package/dist/message-DO3GF4T9.d.ts +0 -27
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/browser/browser.ts","../../src/browser/runtime.ts","../../src/browser/action.ts","../../src/browser/command.ts","../../src/main/env.ts","../../src/browser/download.ts","../../src/browser/i18n.ts","../../src/browser/management.ts","../../src/browser/notification.ts","../../src/browser/offscreen.ts","../../src/browser/scripting.ts","../../src/browser/tabCapture.ts","../../src/browser/tab.ts","../../src/browser/webNavigation.ts","../../src/cli/utils/string.ts","../../src/browser/webRequest.ts"],"names":["commands","browser","i18n","notificationId","notifications","tabs","window"],"mappings":"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","file":"index.cjs","sourcesContent":["export const browser = (): typeof chrome => {\n return chrome;\n}","import {browser} from \"./browser\";\nimport {ManifestVersion} from \"@typing/manifest\";\n\ntype Manifest = chrome.runtime.Manifest;\ntype PlatformInfo = chrome.runtime.PlatformInfo;\ntype ContextFilter = chrome.runtime.ContextFilter;\ntype ExtensionContext = chrome.runtime.ExtensionContext;\n\nconst runtime = () => browser().runtime;\n\nconst backgroundPaths = [\n '/_generated_background_page.view',\n];\n\nexport const getId = (): string => runtime().id;\n\nexport const getUrl = (path: string) => runtime().getURL(path);\n\nexport const getManifest = (): Manifest => runtime().getManifest();\n\nexport const getManifestVersion = (): ManifestVersion => getManifest().manifest_version;\n\nexport const getRuntimeContexts = (filter: ContextFilter) => new Promise<ExtensionContext[]>((resolve, reject) => {\n runtime().getContexts(filter, contexts => {\n try {\n throwRuntimeError();\n\n resolve(contexts);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const getPlatformInfo = (): Promise<PlatformInfo> => new Promise<PlatformInfo>((resolve, reject) => {\n runtime().getPlatformInfo((platformInfo) => {\n try {\n throwRuntimeError();\n\n resolve(platformInfo);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const isManifestVersion3 = (): boolean => getManifestVersion() === 3;\n\nexport const isBackground = (): boolean => {\n if (!getId()) {\n return false;\n }\n\n const manifest = getManifest();\n\n if (!manifest.background) {\n return false;\n }\n\n if (manifest.manifest_version === 3) {\n return typeof window === \"undefined\";\n }\n\n return window !== undefined && backgroundPaths.includes(location.pathname);\n}\n\nexport const throwRuntimeError = (): void => {\n const error = runtime().lastError;\n\n if (error) {\n throw new Error(error.message);\n }\n}\n\nexport const onRuntimeInstalled = (callback: Parameters<typeof chrome.runtime.onInstalled.addListener>[0]): () => void => {\n runtime().onInstalled.addListener(callback);\n\n return () => runtime().onInstalled.removeListener(callback);\n}\n","import {getManifest, isManifestVersion3, throwRuntimeError} from \"./runtime\";\nimport {browser} from \"./browser\";\n\ntype BadgeBackgroundColorDetails = chrome.browserAction.BadgeBackgroundColorDetails;\ntype BadgeTextDetails = chrome.action.BadgeTextDetails;\ntype BrowserAction = typeof chrome.action;\n\nconst action = () => isManifestVersion3() ? browser().action : browser().browserAction;\n\nexport const setActionBadgeText = (tabId: number, text: string | number) => new Promise<void>((resolve, reject) => {\n const details: BadgeTextDetails = {text: text.toString(), tabId};\n\n action().setBadgeText(details, () => {\n try {\n throwRuntimeError();\n\n resolve();\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const clearActionBadgeText = (tabId: number): Promise<void> => setActionBadgeText(tabId, '');\n\nexport const setActionBadgeBgColor = (tabId: number, color: BadgeBackgroundColorDetails['color']) => new Promise<void>((resolve, reject) => {\n const details: BadgeBackgroundColorDetails = {color, tabId};\n\n action().setBadgeBackgroundColor(details, () => {\n try {\n throwRuntimeError();\n\n resolve();\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const setActionBadgeTextColor = async (\n tabId: number,\n color: BadgeBackgroundColorDetails['color']\n): Promise<void> => {\n if (!isManifestVersion3()) {\n return;\n }\n\n const root = action() as BrowserAction;\n\n await root.setBadgeTextColor({color, tabId});\n};\n\nexport const setActionIcon = (\n tabId: number,\n icon: string | Record<string, string>\n): Promise<void> => new Promise<void>((resolve, reject) => {\n action().setIcon({tabId, path: icon}, () => {\n try {\n throwRuntimeError();\n\n resolve();\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const getActionDefaultPopup = (): string => {\n const manifest = getManifest();\n\n return isManifestVersion3() ? manifest.action.default_popup : manifest.browser_action.default_popup;\n}\n\nexport const onActionClicked = (callback: Parameters<typeof chrome.action.onClicked.addListener>[0]): () => void => {\n action().onClicked.addListener(callback);\n\n return () => action().onClicked.removeListener(callback);\n}","import {browser} from \"./browser\";\nimport {throwRuntimeError} from \"@browser/runtime\";\n\ntype Command = chrome.commands.Command;\n\nconst commands = () => browser().commands;\n\nexport const isSupportCommands = (): boolean => !!commands;\n\nexport const getAllCommands = () => new Promise<Command[]>((resolve, reject) => {\n commands().getAll((commands) => {\n try {\n throwRuntimeError();\n\n resolve(commands);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const onCommand = (callback: Parameters<typeof chrome.commands.onCommand.addListener>[0]): () => void => {\n commands().onCommand.addListener(callback);\n\n return () => commands().onCommand.removeListener(callback);\n}\n","import {Browser} from \"@typing/browser\";\nimport {ManifestVersion} from \"@typing/manifest\";\n\nexport const getEnv: {\n <T extends string>(key: string): T | undefined;\n <T extends string, D>(key: string, defaults: D): T | D;\n} = (key: string, defaults?: string) => {\n const env = process.env;\n\n return (env[key] ?? defaults) as any;\n};\n\nexport const getApp = (): string => {\n const app = getEnv('APP');\n\n if (app === undefined) {\n throw new Error('App is not defined');\n }\n\n return app;\n};\n\nexport const getBrowser = (): Browser => {\n const browser = getEnv<Browser>('BROWSER');\n\n if (browser === undefined) {\n throw new Error('Browser is not defined');\n }\n\n return browser;\n}\n\nexport const isBrowser = (browser: Browser): browser is Browser => {\n return getBrowser() === browser;\n}\n\nexport const getManifestVersion = (): ManifestVersion => {\n const manifestVersion = getEnv('MANIFEST_VERSION', '3');\n\n return parseInt(manifestVersion) as ManifestVersion;\n}","import {browser} from \"./browser\";\nimport {throwRuntimeError} from \"./runtime\";\n\nimport {getBrowser} from \"@main/env\";\n\nimport {Browser} from \"@typing/browser\";\n\ntype DownloadItem = chrome.downloads.DownloadItem;\ntype DownloadQuery = chrome.downloads.DownloadQuery;\ntype DownloadState = chrome.downloads.DownloadState;\ntype DownloadOptions = chrome.downloads.DownloadOptions;\n\nconst downloads = () => browser().downloads;\n\nexport class BlockDownloadError extends Error {\n}\n\nexport const download = (options: DownloadOptions): Promise<number> => new Promise<number>((resolve, reject) => {\n downloads().download({conflictAction: 'uniquify', ...options}, (downloadId) => {\n try {\n throwRuntimeError();\n\n if (typeof downloadId !== \"number\") {\n throw new Error('Download id not created');\n }\n\n setTimeout(() => {\n findDownload(downloadId).then(item => {\n if (!item) {\n throw new BlockDownloadError('Download item not found after created');\n }\n\n const {error, state} = item;\n\n if (state === \"interrupted\") {\n if (error === \"USER_CANCELED\") {\n throw new BlockDownloadError('Requires user permission to upload');\n }\n\n throw new Error(`Download error: ${error}`);\n }\n\n resolve(downloadId);\n }).catch(reject);\n }, 100);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const cancelDownload = (downloadId: number): Promise<void> => new Promise<void>((resolve, reject) => {\n downloads().cancel(downloadId, () => {\n try {\n throwRuntimeError();\n\n resolve();\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const queryDownloads = (query: DownloadQuery): Promise<DownloadItem[]> => new Promise<DownloadItem[]>((resolve, reject) => {\n downloads().search(query, (downloadItems) => {\n try {\n throwRuntimeError();\n\n resolve(downloadItems);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const findDownload = async (downloadId: number): Promise<DownloadItem | undefined> => {\n const items = await queryDownloads({id: downloadId});\n\n return items[0];\n}\n\nexport const isDownloadExists = async (downloadId: number): Promise<boolean | undefined> => {\n const item = await findDownload(downloadId);\n\n return item?.exists;\n}\n\nexport const getDownloadState = async (downloadId?: number): Promise<DownloadState | undefined> => {\n if (downloadId === undefined) {\n return;\n }\n\n const item = await findDownload(downloadId);\n\n return item?.state;\n}\n\nexport const showDownload = async (downloadId: number): Promise<boolean> => {\n if (!await isDownloadExists(downloadId)) {\n return false;\n }\n\n downloads().show(downloadId);\n\n return true;\n}\n\nexport const showDownloadFolder = (): void => downloads().showDefaultFolder();\n\nexport const getSettingsDownloadsUrl = (): string => {\n switch (getBrowser()) {\n case Browser.Firefox:\n return \"about:preferences#general\";\n\n case Browser.Opera:\n return 'opera://settings/downloads';\n\n case Browser.Edge:\n return 'edge://settings/downloads';\n\n case Browser.Chrome:\n default:\n return 'chrome://settings/downloads';\n }\n}\n\nexport const onDownloadsCreated = (callback: Parameters<typeof chrome.downloads.onCreated.addListener>[0]): () => void => {\n downloads().onCreated.addListener(callback);\n\n return () => downloads().onCreated.removeListener(callback);\n}\n\nexport const onDownloadsChanged = (callback: Parameters<typeof chrome.downloads.onChanged.addListener>[0]): () => void => {\n downloads().onChanged.addListener(callback);\n\n return () => downloads().onChanged.removeListener(callback);\n}\n","import {browser} from \"./browser\";\nimport {throwRuntimeError} from \"./runtime\";\n\ntype LanguageDetectionResult = chrome.i18n.LanguageDetectionResult\n\nconst i18n = () => browser().i18n;\n\nexport const canUseNativeI18nMessage = (): boolean => typeof (i18n().getMessage) !== \"undefined\";\n\nexport const getI18nMessage = (key: string): string | undefined => {\n if (!canUseNativeI18nMessage()) {\n return;\n }\n\n return i18n().getMessage(key);\n}\n\nexport const getI18nAcceptLanguages = (): Promise<string[]> => new Promise<string[]>((resolve, reject) => {\n i18n().getAcceptLanguages(locales => {\n try {\n throwRuntimeError();\n\n resolve(locales);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const getI18nUILanguage = (): string | undefined => {\n const i18n = browser().i18n;\n\n if (!i18n['getUILanguage']) {\n return;\n }\n\n return i18n.getUILanguage();\n}\n\nexport const detectI18Language = (text: string): Promise<LanguageDetectionResult> => new Promise<LanguageDetectionResult>((resolve, reject) => {\n i18n().detectLanguage(text, result => {\n try {\n throwRuntimeError();\n\n resolve(result);\n } catch (e) {\n reject(e);\n }\n });\n});\n","import {browser} from \"./browser\";\nimport {throwRuntimeError} from \"./runtime\";\n\ntype UninstallOptions = chrome.management.UninstallOptions;\n\nconst management = () => browser().management;\n\nexport const uninstallManagementSelf = async (options?: UninstallOptions): Promise<void> => new Promise<void>((resolve, reject) => {\n management().uninstallSelf(options || {}, () => {\n try {\n throwRuntimeError();\n\n resolve();\n } catch (e) {\n reject(e);\n }\n });\n});\n","import {browser} from \"./browser\";\nimport {throwRuntimeError} from \"./runtime\";\n\ntype NotificationOptions<T extends boolean = false> = chrome.notifications.NotificationOptions<T>;\n\nconst notifications = () => browser().notifications;\n\nexport const isSupportNotifications = () => !!notifications;\n\nexport const createNotification = (options: NotificationOptions, notificationId?: string) => new Promise<string>((resolve, reject) => {\n const defaultOptions: NotificationOptions<true> = {\n type: 'basic',\n priority: 1,\n title: '',\n message: '',\n iconUrl: '',\n };\n\n if (typeof notificationId !== 'string') {\n notificationId = Date.now().toString();\n }\n\n notifications().create(notificationId, {...defaultOptions, ...options}, (notificationId) => {\n try {\n throwRuntimeError();\n\n resolve(notificationId);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const updateNotification = (options: NotificationOptions, notificationId: string) => new Promise<boolean>((resolve, reject) => {\n notifications().update(notificationId, options, (wasUpdated) => {\n try {\n throwRuntimeError();\n\n resolve(wasUpdated);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const clearNotification = (notificationId: string): Promise<boolean> => new Promise<boolean>((resolve, reject) => {\n notifications().clear(notificationId, (wasCleared) => {\n try {\n throwRuntimeError();\n\n resolve(wasCleared);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const getAllNotification = (): Promise<object> => new Promise<object>((resolve, reject) => {\n notifications().getAll((notifications) => {\n try {\n throwRuntimeError();\n\n resolve(notifications);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const clearAllNotification = async (): Promise<void> => {\n const allNotificationIds = Object.keys((await getAllNotification()));\n\n allNotificationIds.forEach((id: string) => clearNotification(id));\n}\n\nexport const getNotificationPermissionLevel = (): Promise<string> => new Promise<string>((resolve, reject) => {\n notifications().getPermissionLevel((level) => {\n try {\n throwRuntimeError();\n\n resolve(level);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const onNotificationsClicked = (callback: Parameters<typeof chrome.notifications.onClicked.addListener>[0]): () => void => {\n if (!isSupportNotifications()) return () => ({});\n\n notifications().onClicked.addListener(callback);\n\n return () => notifications().onClicked.removeListener(callback);\n}\n\nexport const onNotificationsClosed = (callback: Parameters<typeof chrome.notifications.onClosed.addListener>[0]): () => void => {\n if (!isSupportNotifications()) return () => ({});\n\n notifications().onClosed.addListener(callback);\n\n return () => notifications().onClosed.removeListener(callback);\n}\n\nexport const onNotificationsButtonClicked = (callback: Parameters<typeof chrome.notifications.onButtonClicked.addListener>[0]): () => void => {\n if (!isSupportNotifications()) return () => ({});\n\n notifications().onButtonClicked.addListener(callback);\n\n return () => notifications().onButtonClicked.removeListener(callback);\n}\n\nexport const onNotificationsPermissionLevelChanged = (callback: Parameters<typeof chrome.notifications.onPermissionLevelChanged.addListener>[0]): () => void => {\n if (!isSupportNotifications()) return () => ({});\n\n notifications().onPermissionLevelChanged.addListener(callback);\n\n return () => notifications().onPermissionLevelChanged.removeListener(callback);\n}\n","import {browser} from \"./browser\";\nimport {throwRuntimeError} from \"./runtime\";\n\ntype CreateParameters = chrome.offscreen.CreateParameters;\n\nconst offscreen = () => browser().offscreen;\n\nexport const hasOffscreenDocument = () => new Promise<boolean>((resolve, reject) => {\n offscreen().hasDocument((hasDocument) => {\n try {\n throwRuntimeError();\n\n resolve(hasDocument);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const createOffscreenDocument = (createParameters: CreateParameters): Promise<void> => new Promise<void>((resolve, reject) => {\n offscreen().createDocument(createParameters, () => {\n try {\n throwRuntimeError();\n\n resolve();\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const removeOffscreenDocument = (): Promise<void> => new Promise<void>((resolve, reject) => {\n offscreen().closeDocument(() => {\n try {\n throwRuntimeError();\n\n resolve();\n } catch (e) {\n reject(e);\n }\n });\n});\n","import {browser} from \"./browser\";\nimport {throwRuntimeError} from \"./runtime\";\n\ntype Awaited<T> = chrome.scripting.Awaited<T>;\ntype CSSInjection = chrome.scripting.CSSInjection;\ntype ScriptInjection<Args extends any[], Result> = chrome.scripting.ScriptInjection<Args, Result>;\ntype InjectionResult<T> = chrome.scripting.InjectionResult<T>;\ntype ContentScriptFilter = chrome.scripting.ContentScriptFilter;\ntype RegisteredContentScript = chrome.scripting.RegisteredContentScript;\n\nexport const scripting = () => browser().scripting;\n\nexport const isAvailableScripting = (): boolean => !!scripting()\n\nexport const executeScript = <T = any>(injection: ScriptInjection<any, T>) => new Promise<InjectionResult<Awaited<T>>[]>((resolve, reject) => {\n scripting().executeScript(injection, (result) => {\n try {\n throwRuntimeError();\n\n resolve(result);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const registerContentScripts = (scripts: RegisteredContentScript[]) => new Promise<void>((resolve, reject) => {\n scripting().registerContentScripts(scripts, () => {\n try {\n throwRuntimeError();\n\n resolve();\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const unregisterContentScripts = (filter?: ContentScriptFilter) => new Promise<void>((resolve, reject) => {\n scripting().unregisterContentScripts(filter || {}, () => {\n try {\n throwRuntimeError();\n\n resolve();\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const updateContentScripts = (scripts: RegisteredContentScript[]) => new Promise<void>((resolve, reject) => {\n scripting().updateContentScripts(scripts, () => {\n try {\n throwRuntimeError();\n\n resolve();\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const getRegisteredContentScripts = (filter?: ContentScriptFilter) => new Promise<RegisteredContentScript[]>((resolve, reject) => {\n scripting().getRegisteredContentScripts(filter || {}, (scripts) => {\n try {\n throwRuntimeError();\n\n resolve(scripts);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const insertScriptingCSS = (injection: CSSInjection) => new Promise<void>((resolve, reject) => {\n scripting().insertCSS(injection, () => {\n try {\n throwRuntimeError();\n\n resolve();\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const removeScriptingCSS = (injection: CSSInjection) => new Promise<void>((resolve, reject) => {\n scripting().removeCSS(injection, () => {\n try {\n throwRuntimeError();\n\n resolve();\n } catch (e) {\n reject(e);\n }\n });\n});\n","import {browser} from \"./browser\";\nimport {throwRuntimeError} from \"./runtime\";\n\ntype CaptureInfo = chrome.tabCapture.CaptureInfo;\ntype CaptureOptions = chrome.tabCapture.CaptureOptions;\ntype GetMediaStreamOptions = chrome.tabCapture.GetMediaStreamOptions;\n\nconst tabCapture = () => browser().tabCapture\n\nexport const createTabCapture = (options: CaptureOptions) => new Promise<MediaStream | null>((resolve, reject) => {\n tabCapture().capture(options, stream => {\n try {\n throwRuntimeError();\n\n resolve(stream);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const getCapturedTabs = () => new Promise<CaptureInfo[]>((resolve, reject) => {\n tabCapture().getCapturedTabs(result => {\n try {\n throwRuntimeError();\n\n resolve(result);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const getCaptureMediaStreamId = (options: GetMediaStreamOptions) => new Promise<string>((resolve, reject) => {\n tabCapture().getMediaStreamId(options, streamId => {\n try {\n throwRuntimeError();\n\n resolve(streamId);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const onCaptureStatusChanged = (callback: Parameters<typeof chrome.tabCapture.onStatusChanged.addListener>[0]): () => void => {\n tabCapture().onStatusChanged.addListener(callback);\n\n return () => tabCapture().onStatusChanged.removeListener(callback);\n}\n","import {browser} from \"./browser\";\nimport {throwRuntimeError} from \"./runtime\";\n\ntype Tab = chrome.tabs.Tab;\n\ntype Window = chrome.windows.Window;\n\ntype ZoomSettings = chrome.tabs.ZoomSettings;\ntype InjectDetails = chrome.tabs.InjectDetails;\n\ntype QueryInfo = chrome.tabs.QueryInfo;\ntype HighlightInfo = chrome.tabs.HighlightInfo;\n\ntype GroupOptions = chrome.tabs.GroupOptions;\ntype CaptureVisibleTabOptions = chrome.tabs.CaptureVisibleTabOptions;\n\ntype MoveProperties = chrome.tabs.MoveProperties;\ntype UpdateProperties = chrome.tabs.UpdateProperties;\ntype CreateProperties = chrome.tabs.CreateProperties;\n\nconst tabs = () => browser().tabs;\n\n// =================================\n// ============ METHODS ============\n// =================================\nexport const captureVisibleTab = (windowId: number, options: CaptureVisibleTabOptions) => new Promise<string>((resolve, reject) => {\n tabs().captureVisibleTab(windowId, options, (dataUrl) => {\n try {\n throwRuntimeError();\n\n resolve(dataUrl);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const createTab = (properties: CreateProperties): Promise<Tab> => new Promise<Tab>((resolve, reject) => {\n tabs().create(properties, (tab) => {\n try {\n throwRuntimeError();\n\n resolve(tab);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const detectTabLanguage = (tabId: number) => new Promise<string>((resolve, reject) => {\n // For an unknown/undefined language, und is returned.\n tabs().detectLanguage(tabId, (language) => {\n try {\n throwRuntimeError();\n\n resolve(language);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const discardTab = (tabId: number) => new Promise<Tab>((resolve, reject) => {\n tabs().discard(tabId, (tab) => {\n try {\n throwRuntimeError();\n\n resolve(tab);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const duplicateTab = (tabId: number) => new Promise<Tab | undefined>((resolve, reject) => {\n tabs().duplicate(tabId, (tab) => {\n try {\n throwRuntimeError();\n\n resolve(tab);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const getTab = (tabId: number) => new Promise<Tab>((resolve, reject) => {\n tabs().get(tabId, (tab) => {\n try {\n throwRuntimeError();\n\n resolve(tab);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const getCurrentTab = () => new Promise<Tab | undefined>((resolve, reject) => {\n // Returns undefined if called from a non-tab context (for example, a background view or popup view)\n tabs().getCurrent((tab) => {\n try {\n throwRuntimeError();\n\n resolve(tab);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const getTabZoom = (tabId: number) => new Promise<number>((resolve, reject) => {\n tabs().getZoom(tabId, (zoomFactor) => {\n try {\n throwRuntimeError();\n\n resolve(zoomFactor);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const getTabZoomSettings = (tabId: number) => new Promise<ZoomSettings>((resolve, reject) => {\n tabs().getZoomSettings(tabId, (zoomSettings) => {\n try {\n throwRuntimeError();\n\n resolve(zoomSettings);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const goTabBack = (tabId: number) => new Promise<void>((resolve, reject) => {\n tabs().goBack(tabId, () => {\n try {\n throwRuntimeError();\n\n resolve();\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const goTabForward = (tabId: number) => new Promise<void>((resolve, reject) => {\n tabs().goForward(tabId, () => {\n try {\n throwRuntimeError();\n\n resolve();\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const groupTabs = (options: GroupOptions) => new Promise<number>((resolve, reject) => {\n tabs().group(options, (tabs) => {\n try {\n throwRuntimeError();\n\n resolve(tabs);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const highlightTab = (highlightInfo: HighlightInfo) => new Promise<Window>((resolve, reject) => {\n tabs().highlight(highlightInfo, (window) => {\n try {\n throwRuntimeError();\n\n resolve(window);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const moveTab = (tabId: number, moveProperties: MoveProperties) => new Promise<Tab>((resolve, reject) => {\n tabs().move(tabId, moveProperties, (tab) => {\n try {\n throwRuntimeError();\n\n resolve(tab);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const moveTabs = (tabIds: number[], moveProperties: MoveProperties) => new Promise<Tab[]>((resolve, reject) => {\n tabs().move(tabIds, moveProperties, (tabs) => {\n try {\n throwRuntimeError();\n\n resolve(tabs);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const queryTabs = (queryInfo?: QueryInfo) => new Promise<Tab[]>((resolve, reject) => {\n tabs().query(queryInfo || {}, (tabs) => {\n try {\n throwRuntimeError();\n\n resolve(tabs);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const reloadTab = (tabId: number, bypassCache?: boolean | undefined) => new Promise<void>((resolve, reject) => {\n tabs().reload(tabId, {bypassCache}, () => {\n try {\n throwRuntimeError();\n\n resolve();\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const removeTab = (tabId: number): Promise<void> => new Promise<void>((resolve, reject) => {\n tabs().remove(tabId, () => {\n try {\n throwRuntimeError();\n\n resolve();\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const setTabZoom = (tabId: number, zoomFactor: number) => new Promise<void>((resolve, reject) => {\n tabs().setZoom(tabId, zoomFactor, () => {\n try {\n throwRuntimeError();\n\n resolve();\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const setTabZoomSettings = (tabId: number, zoomSettings: ZoomSettings) => new Promise<void>((resolve, reject) => {\n tabs().setZoomSettings(tabId, zoomSettings, () => {\n try {\n throwRuntimeError();\n\n resolve();\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const ungroupTab = (tabIds: number | number[]) => new Promise<void>((resolve, reject) => {\n tabs().ungroup(tabIds, () => {\n try {\n throwRuntimeError();\n\n resolve();\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const updateTab = (tabId: number, updateProperties: UpdateProperties) => new Promise<Tab | undefined>((resolve, reject) => {\n tabs().update(tabId, updateProperties, (tab) => {\n try {\n throwRuntimeError();\n\n resolve(tab);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const executeScriptTab = (tabId: number, details: InjectDetails) => new Promise<any[]>((resolve, reject) => {\n tabs().executeScript(tabId, details, (result) => {\n try {\n throwRuntimeError();\n\n resolve(result);\n } catch (e) {\n reject(e);\n }\n });\n});\n\n// =================================\n// ======== CUSTOM METHODS =========\n// =================================\nexport const getTabUrl = async (tabId: number): Promise<string> => {\n const tab = await findTabById(tabId);\n\n if (!tab) {\n throw new Error(`Tab id \"${tabId}\" not exist`);\n }\n\n const {url} = tab;\n\n if (!url) {\n throw new Error(`URL not exist by tab id ${tabId}`);\n }\n\n return url;\n}\n\nexport const getActiveTab = async (): Promise<Tab> => {\n const tabs = await queryTabs({active: true, currentWindow: true})\n\n if (!tabs || !tabs[0]) {\n throw new Error('Tab not found');\n }\n\n return tabs[0];\n}\n\nexport const queryTabIds = async (queryInfo?: QueryInfo): Promise<number[]> => (await queryTabs(queryInfo)).reduce((ids, {id}) => {\n if (typeof id === 'number') {\n return [...ids, id];\n }\n\n return ids;\n}, [] as number[]);\n\nexport const findTab = (queryInfo?: QueryInfo): Promise<Tab | undefined> => queryTabs(queryInfo).then(tabs => tabs.length ? tabs[0] : undefined);\n\nexport const findTabById = (tabId: number): Promise<Tab | undefined> => getTab(tabId).then(tab => tab).catch(() => undefined);\n\nexport const updateTabAsSelected = (tabId: number) => updateTab(tabId, {highlighted: true});\n\nexport const updateTabAsActive = (tabId: number) => updateTab(tabId, {active: true});\n\nexport const openOrCreateTab = async (tab: Tab): Promise<void> => {\n const {id, url} = tab;\n\n if (id && url) {\n const existTab = await findTab({url});\n\n if (existTab && id && existTab.id === id) {\n await updateTabAsSelected(id);\n\n return;\n }\n }\n\n await createTab({url});\n}\n\n// =================================\n// ============ EVENTS =============\n// =================================\nexport const onTabActivated = (callback: Parameters<typeof chrome.tabs.onActivated.addListener>[0]): () => void => {\n tabs().onActivated.addListener(callback);\n\n return () => tabs().onActivated.removeListener(callback);\n}\n\nexport const onTabAttached = (callback: Parameters<typeof chrome.tabs.onAttached.addListener>[0]): () => void => {\n tabs().onAttached.addListener(callback);\n\n return () => tabs().onAttached.removeListener(callback);\n}\n\nexport const onTabCreated = (callback: Parameters<typeof chrome.tabs.onCreated.addListener>[0]): () => void => {\n tabs().onCreated.addListener(callback);\n\n return () => tabs().onCreated.removeListener(callback);\n}\n\nexport const onTabDetached = (callback: Parameters<typeof chrome.tabs.onDetached.addListener>[0]): () => void => {\n tabs().onDetached.addListener(callback);\n\n return () => tabs().onDetached.removeListener(callback);\n}\n\nexport const onTabHighlighted = (callback: Parameters<typeof chrome.tabs.onHighlighted.addListener>[0]): () => void => {\n tabs().onHighlighted.addListener(callback);\n\n return () => tabs().onHighlighted.removeListener(callback);\n};\n\nexport const onTabMoved = (callback: Parameters<typeof chrome.tabs.onMoved.addListener>[0]): () => void => {\n tabs().onMoved.addListener(callback);\n\n return () => tabs().onMoved.removeListener(callback);\n}\n\nexport const onTabRemoved = (callback: Parameters<typeof chrome.tabs.onRemoved.addListener>[0]): () => void => {\n tabs().onRemoved.addListener(callback);\n\n return () => tabs().onRemoved.removeListener(callback);\n};\n\nexport const onTabReplaced = (callback: Parameters<typeof chrome.tabs.onReplaced.addListener>[0]): () => void => {\n tabs().onReplaced.addListener(callback);\n\n return () => tabs().onReplaced.removeListener(callback);\n};\n\nexport const onTabUpdated = (callback: Parameters<typeof chrome.tabs.onUpdated.addListener>[0]): () => void => {\n tabs().onUpdated.addListener(callback);\n\n return () => tabs().onUpdated.removeListener(callback);\n}\n\nexport const onTabZoomChange = (callback: Parameters<typeof chrome.tabs.onZoomChange.addListener>[0]): () => void => {\n tabs().onZoomChange.addListener(callback);\n\n return () => tabs().onZoomChange.removeListener(callback);\n}\n","import {browser} from \"./browser\";\nimport {throwRuntimeError} from \"./runtime\";\n\ntype GetFrameDetails = chrome.webNavigation.GetFrameDetails;\ntype GetAllFrameDetails = chrome.webNavigation.GetAllFrameDetails;\ntype GetFrameResultDetails = chrome.webNavigation.GetFrameResultDetails;\ntype GetAllFrameResultDetails = chrome.webNavigation.GetAllFrameResultDetails;\ntype WebNavigationEventFilter = chrome.webNavigation.WebNavigationEventFilter;\n\nconst webNavigation = () => browser().webNavigation;\n\nexport const getWebNavigationFrame = (details: GetFrameDetails): Promise<GetFrameResultDetails> => new Promise((resolve, reject) => {\n webNavigation().getFrame(details, (frame) => {\n try {\n throwRuntimeError();\n\n if (!frame) {\n throw new Error(\"No frame found for the specified tabId\");\n }\n resolve(frame);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const getWebNavigationAllFrames = (details: GetAllFrameDetails): Promise<GetAllFrameResultDetails[]> => new Promise((resolve, reject) => {\n webNavigation().getAllFrames(details, (frames) => {\n try {\n throwRuntimeError();\n\n if (!frames) {\n throw new Error(\"No frames found for the specified tabId\");\n }\n resolve(frames);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const onWebNavigationBeforeNavigate = (\n callback: Parameters<typeof chrome.webNavigation.onBeforeNavigate.addListener>[0],\n filters?: WebNavigationEventFilter,\n): () => void => {\n webNavigation().onBeforeNavigate.addListener(callback, filters);\n\n return () => webNavigation().onBeforeNavigate.removeListener(callback);\n}\n\nexport const onWebNavigationCommitted = (\n callback: Parameters<typeof chrome.webNavigation.onCommitted.addListener>[0],\n filters?: WebNavigationEventFilter,\n): () => void => {\n webNavigation().onCommitted.addListener(callback, filters);\n\n return () => webNavigation().onCommitted.removeListener(callback);\n}\n\nexport const onWebNavigationCompleted = (\n callback: Parameters<typeof chrome.webNavigation.onCompleted.addListener>[0],\n filters?: WebNavigationEventFilter,\n): () => void => {\n webNavigation().onCompleted.addListener(callback, filters);\n\n return () => webNavigation().onCompleted.removeListener(callback);\n}\n\nexport const onWebNavigationCreatedNavigationTarget = (\n callback: Parameters<typeof chrome.webNavigation.onCreatedNavigationTarget.addListener>[0],\n filters?: WebNavigationEventFilter,\n): () => void => {\n webNavigation().onCreatedNavigationTarget.addListener(callback, filters);\n\n return () => webNavigation().onCreatedNavigationTarget.removeListener(callback);\n}\n\nexport const onWebNavigationDOMContentLoaded = (\n callback: Parameters<typeof chrome.webNavigation.onDOMContentLoaded.addListener>[0],\n filters?: WebNavigationEventFilter,\n): () => void => {\n webNavigation().onDOMContentLoaded.addListener(callback, filters);\n\n return () => webNavigation().onDOMContentLoaded.removeListener(callback);\n}\n\nexport const onWebNavigationErrorOccurred = (\n callback: Parameters<typeof chrome.webNavigation.onErrorOccurred.addListener>[0],\n filters?: WebNavigationEventFilter,\n): () => void => {\n webNavigation().onErrorOccurred.addListener(callback, filters);\n\n return () => webNavigation().onErrorOccurred.removeListener(callback);\n}\n\nexport const onWebNavigationHistoryStateUpdated = (\n callback: Parameters<typeof chrome.webNavigation.onHistoryStateUpdated.addListener>[0],\n filters?: WebNavigationEventFilter,\n): () => void => {\n webNavigation().onHistoryStateUpdated.addListener(callback, filters);\n\n return () => webNavigation().onHistoryStateUpdated.removeListener(callback);\n}\n\nexport const onWebNavigationReferenceFragmentUpdated = (\n callback: Parameters<typeof chrome.webNavigation.onReferenceFragmentUpdated.addListener>[0],\n filters?: WebNavigationEventFilter,\n): () => void => {\n webNavigation().onReferenceFragmentUpdated.addListener(callback, filters);\n\n return () => webNavigation().onReferenceFragmentUpdated.removeListener(callback);\n}\n\nexport const onWebNavigationTabReplaced = (callback: Parameters<typeof chrome.webNavigation.onTabReplaced.addListener>[0]): () => void => {\n webNavigation().onTabReplaced.addListener(callback);\n\n return () => webNavigation().onTabReplaced.removeListener(callback);\n}\n","export const removeAllSpaces = (str: string): string => {\n return str.replace(/\\s/g, '');\n};\n\nexport const hasSymbols = (str?: string | number | null): boolean => {\n if (typeof str !== \"string\") {\n return false;\n }\n\n return removeAllSpaces(str).length > 0;\n};\n","import {getTabUrl} from \"./tab\";\nimport {browser} from \"./browser\";\nimport {throwRuntimeError} from \"./runtime\";\n\nimport {isBrowser} from \"@main/env\";\n\nimport {hasSymbols} from \"@cli/utils/string\";\n\nimport {Browser} from \"@typing/browser\";\n\ntype RequestFilter = chrome.webRequest.RequestFilter;\ntype ResourceRequest = chrome.webRequest.ResourceRequest;\n\nconst webRequest = () => browser().webRequest;\n\nexport const getWebRequestInitiatorUrl = async (request: ResourceRequest): Promise<string | undefined> => {\n const {tabId} = request;\n\n let initiatorUrl: string | undefined;\n\n try {\n if (tabId >= 0) {\n initiatorUrl = await getTabUrl(tabId);\n } else if (isBrowser(Browser.Firefox)) {\n // Firefox contains other properties in the details object: https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/webRequest/onBeforeRequest#details_2\n\n // @ts-ignore\n const {originUrl, documentUrl} = request;\n\n initiatorUrl = originUrl || documentUrl;\n\n if (!hasSymbols(initiatorUrl)) {\n initiatorUrl = undefined;\n }\n }\n } catch (e) {\n console.warn(`Request API, getInitiatorUrl, get tab url id = \"${tabId}\" warning`, e);\n }\n\n return initiatorUrl;\n}\n\nexport const handlerWebRequestBehaviorChanged = () => new Promise<void>((resolve, reject) => {\n webRequest().handlerBehaviorChanged(() => {\n try {\n throwRuntimeError();\n\n resolve();\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const onWebRequestAuthRequired = (\n callback: Parameters<typeof chrome.webRequest.onAuthRequired.addListener>[0],\n filter: RequestFilter,\n extraInfoSpec?: Parameters<typeof chrome.webRequest.onAuthRequired.addListener>[2]\n): () => void => {\n webRequest().onAuthRequired.addListener(callback, filter, extraInfoSpec);\n\n return () => webRequest().onAuthRequired.removeListener(callback);\n}\n\nexport const onWebRequestBeforeRedirect = (\n callback: Parameters<typeof chrome.webRequest.onBeforeRedirect.addListener>[0],\n filter: RequestFilter,\n extraInfoSpec?: Parameters<typeof chrome.webRequest.onBeforeRedirect.addListener>[2]\n): () => void => {\n webRequest().onBeforeRedirect.addListener(callback, filter, extraInfoSpec);\n\n return () => webRequest().onBeforeRedirect.removeListener(callback);\n}\n\nexport const onWebRequestBeforeRequest = (\n callback: Parameters<typeof chrome.webRequest.onBeforeRequest.addListener>[0],\n filter: RequestFilter,\n extraInfoSpec?: Parameters<typeof chrome.webRequest.onBeforeRequest.addListener>[2]\n): () => void => {\n webRequest().onBeforeRequest.addListener(callback, filter, extraInfoSpec);\n\n return () => webRequest().onBeforeRequest.removeListener(callback);\n}\n\nexport const onWebRequestBeforeSendHeaders = (\n callback: Parameters<typeof chrome.webRequest.onBeforeSendHeaders.addListener>[0],\n filter: RequestFilter,\n extraInfoSpec?: Parameters<typeof chrome.webRequest.onBeforeSendHeaders.addListener>[2]\n): () => void => {\n webRequest().onBeforeSendHeaders.addListener(callback, filter, extraInfoSpec);\n\n return () => webRequest().onBeforeSendHeaders.removeListener(callback);\n}\n\nexport const onWebRequestCompleted = (\n callback: Parameters<typeof chrome.webRequest.onCompleted.addListener>[0],\n filter: RequestFilter,\n extraInfoSpec?: Parameters<typeof chrome.webRequest.onCompleted.addListener>[2]\n): () => void => {\n webRequest().onCompleted.addListener(callback, filter, extraInfoSpec);\n\n return () => webRequest().onCompleted.removeListener(callback);\n}\n\nexport const onWebRequestErrorOccurred = (\n callback: Parameters<typeof chrome.webRequest.onErrorOccurred.addListener>[0],\n filter: RequestFilter,\n extraInfoSpec?: Parameters<typeof chrome.webRequest.onErrorOccurred.addListener>[2]\n): () => void => {\n webRequest().onErrorOccurred.addListener(callback, filter, extraInfoSpec);\n\n return () => webRequest().onErrorOccurred.removeListener(callback);\n}\n\nexport const onWebRequestHeadersReceived = (\n callback: Parameters<typeof chrome.webRequest.onHeadersReceived.addListener>[0],\n filter: RequestFilter,\n extraInfoSpec?: Parameters<typeof chrome.webRequest.onHeadersReceived.addListener>[2]\n): () => void => {\n webRequest().onHeadersReceived.addListener(callback, filter, extraInfoSpec);\n\n return () => webRequest().onHeadersReceived.removeListener(callback);\n}\n\nexport const onWebRequestResponseStarted = (\n callback: Parameters<typeof chrome.webRequest.onResponseStarted.addListener>[0],\n filter: RequestFilter,\n extraInfoSpec?: Parameters<typeof chrome.webRequest.onResponseStarted.addListener>[2]\n): () => void => {\n webRequest().onResponseStarted.addListener(callback, filter, extraInfoSpec);\n\n return () => webRequest().onResponseStarted.removeListener(callback);\n}\n\nexport const onWebRequestSendHeaders = (\n callback: Parameters<typeof chrome.webRequest.onSendHeaders.addListener>[0],\n filter: RequestFilter,\n extraInfoSpec?: Parameters<typeof chrome.webRequest.onSendHeaders.addListener>[2]\n): () => void => {\n webRequest().onSendHeaders.addListener(callback, filter, extraInfoSpec);\n\n return () => webRequest().onSendHeaders.removeListener(callback);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/browser/browser.ts","../../src/browser/utils.ts","../../src/browser/runtime.ts","../../src/browser/action.ts","../../src/browser/command.ts","../../src/main/env.ts","../../src/browser/download.ts","../../src/browser/i18n.ts","../../src/browser/management.ts","../../src/browser/notification.ts","../../src/browser/offscreen.ts","../../src/browser/scripting.ts","../../src/browser/tabCapture.ts","../../src/browser/tab.ts","../../src/browser/webNavigation.ts","../../src/cli/utils/string.ts","../../src/browser/webRequest.ts"],"names":["commands","browser","i18n","notificationId","notifications","tabs","window"],"mappings":"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","file":"index.cjs","sourcesContent":["export const browser = (): typeof chrome => {\n return chrome;\n}","type Event<T extends Function> = chrome.events.Event<T>\n\nexport function safeListener<T extends (...args: any[]) => any>(listener: T): T {\n return ((...args: Parameters<T>): ReturnType<T> | void => {\n try {\n const result = listener(...args);\n\n if (result instanceof Promise) {\n result.catch(err => {\n console.error('Listener async error:', err);\n });\n }\n\n return result;\n } catch (err) {\n console.error('Listener sync error:', err);\n }\n }) as T;\n}\n\nexport function handleListener<T extends (...args: any[]) => void>(\n target: Event<T>,\n callback: T,\n): () => void {\n const listener = safeListener(callback);\n\n target.addListener(listener);\n\n return () => target.removeListener(listener);\n}","import {browser} from \"./browser\";\nimport {handleListener} from \"./utils\";\n\nimport {ManifestVersion} from \"@typing/manifest\";\nimport {MessageBody, MessageDictionary, MessageResponse, MessageType} from \"@typing/message\";\n\ntype Manifest = chrome.runtime.Manifest;\ntype PlatformInfo = chrome.runtime.PlatformInfo;\ntype ContextFilter = chrome.runtime.ContextFilter;\ntype ExtensionContext = chrome.runtime.ExtensionContext;\n\nconst runtime = () => browser().runtime;\n\nconst backgroundPaths = [\n '/_generated_background_page.view',\n];\n\nexport const getId = (): string => runtime().id;\n\nexport const getUrl = (path: string) => runtime().getURL(path);\n\nexport const getManifest = (): Manifest => runtime().getManifest();\n\nexport const getManifestVersion = (): ManifestVersion => getManifest().manifest_version;\n\nexport const getRuntimeContexts = (filter: ContextFilter) => new Promise<ExtensionContext[]>((resolve, reject) => {\n runtime().getContexts(filter, contexts => {\n try {\n throwRuntimeError();\n\n resolve(contexts);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const getPlatformInfo = (): Promise<PlatformInfo> => new Promise<PlatformInfo>((resolve, reject) => {\n runtime().getPlatformInfo((platformInfo) => {\n try {\n throwRuntimeError();\n\n resolve(platformInfo);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const isManifestVersion3 = (): boolean => getManifestVersion() === 3;\n\nexport const isBackground = (): boolean => {\n if (!getId()) {\n return false;\n }\n\n const manifest = getManifest();\n\n if (!manifest.background) {\n return false;\n }\n\n if (manifest.manifest_version === 3) {\n return typeof window === \"undefined\";\n }\n\n return window !== undefined && backgroundPaths.includes(location.pathname);\n}\n\nexport const throwRuntimeError = (): void => {\n const error = runtime().lastError;\n\n if (error) {\n throw new Error(error.message);\n }\n}\n\nexport const sendMessage = <\n T extends MessageDictionary,\n K extends MessageType<T>\n>(\n message: MessageBody<T, K>\n): Promise<MessageResponse<T, K>> => new Promise<MessageResponse<T, K>>((resolve, reject) => {\n runtime().sendMessage(message, (response) => {\n try {\n throwRuntimeError();\n\n resolve(response);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const onRuntimeInstalled = (callback: Parameters<typeof chrome.runtime.onInstalled.addListener>[0]): () => void => {\n return handleListener(runtime().onInstalled, callback)\n}\n\nexport const onMessage = (callback: Parameters<typeof chrome.runtime.onMessage.addListener>[0]): () => void => {\n return handleListener(runtime().onMessage, callback)\n}\n","import {getManifest, isManifestVersion3, throwRuntimeError} from \"./runtime\";\nimport {browser} from \"./browser\";\nimport {handleListener} from \"./utils\";\n\ntype BadgeBackgroundColorDetails = chrome.browserAction.BadgeBackgroundColorDetails;\ntype BadgeTextDetails = chrome.action.BadgeTextDetails;\ntype BrowserAction = typeof chrome.action;\n\nconst action = () => isManifestVersion3() ? browser().action : browser().browserAction;\n\nexport const setActionBadgeText = (tabId: number, text: string | number) => new Promise<void>((resolve, reject) => {\n const details: BadgeTextDetails = {text: text.toString(), tabId};\n\n action().setBadgeText(details, () => {\n try {\n throwRuntimeError();\n\n resolve();\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const clearActionBadgeText = (tabId: number): Promise<void> => setActionBadgeText(tabId, '');\n\nexport const setActionBadgeBgColor = (tabId: number, color: BadgeBackgroundColorDetails['color']) => new Promise<void>((resolve, reject) => {\n const details: BadgeBackgroundColorDetails = {color, tabId};\n\n action().setBadgeBackgroundColor(details, () => {\n try {\n throwRuntimeError();\n\n resolve();\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const setActionBadgeTextColor = async (\n tabId: number,\n color: BadgeBackgroundColorDetails['color']\n): Promise<void> => {\n if (!isManifestVersion3()) {\n return;\n }\n\n const root = action() as BrowserAction;\n\n await root.setBadgeTextColor({color, tabId});\n};\n\nexport const setActionIcon = (\n tabId: number,\n icon: string | Record<string, string>\n): Promise<void> => new Promise<void>((resolve, reject) => {\n action().setIcon({tabId, path: icon}, () => {\n try {\n throwRuntimeError();\n\n resolve();\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const getActionDefaultPopup = (): string => {\n const manifest = getManifest();\n\n return isManifestVersion3() ? manifest.action.default_popup : manifest.browser_action.default_popup;\n}\n\nexport const onActionClicked = (callback: Parameters<typeof chrome.action.onClicked.addListener>[0]): () => void => {\n return handleListener(action().onClicked, callback)\n}","import {browser} from \"./browser\";\nimport {handleListener} from \"./utils\";\nimport {throwRuntimeError} from \"@browser/runtime\";\n\ntype Command = chrome.commands.Command;\n\nconst commands = () => browser().commands;\n\nexport const isSupportCommands = (): boolean => !!commands;\n\nexport const getAllCommands = () => new Promise<Command[]>((resolve, reject) => {\n commands().getAll((commands) => {\n try {\n throwRuntimeError();\n\n resolve(commands);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const onCommand = (callback: Parameters<typeof chrome.commands.onCommand.addListener>[0]): () => void => {\n return handleListener(commands().onCommand, callback)\n}\n","import {Browser} from \"@typing/browser\";\nimport {ManifestVersion} from \"@typing/manifest\";\n\nexport const getEnv: {\n <T extends string>(key: string): T | undefined;\n <T extends string, D>(key: string, defaults: D): T | D;\n} = (key: string, defaults?: string) => {\n const env = process.env;\n\n return (env[key] ?? defaults) as any;\n};\n\nexport const getApp = (): string => {\n const app = getEnv('APP');\n\n if (app === undefined) {\n throw new Error('App is not defined');\n }\n\n return app;\n};\n\nexport const getBrowser = (): Browser => {\n const browser = getEnv<Browser>('BROWSER');\n\n if (browser === undefined) {\n throw new Error('Browser is not defined');\n }\n\n return browser;\n}\n\nexport const isBrowser = (browser: Browser): browser is Browser => {\n return getBrowser() === browser;\n}\n\nexport const getManifestVersion = (): ManifestVersion => {\n const manifestVersion = getEnv('MANIFEST_VERSION', '3');\n\n return parseInt(manifestVersion) as ManifestVersion;\n}","import {browser} from \"./browser\";\nimport {handleListener} from \"./utils\";\nimport {throwRuntimeError} from \"./runtime\";\n\nimport {getBrowser} from \"@main/env\";\n\nimport {Browser} from \"@typing/browser\";\n\ntype DownloadItem = chrome.downloads.DownloadItem;\ntype DownloadQuery = chrome.downloads.DownloadQuery;\ntype DownloadState = chrome.downloads.DownloadState;\ntype DownloadOptions = chrome.downloads.DownloadOptions;\n\nconst downloads = () => browser().downloads;\n\nexport class BlockDownloadError extends Error {\n}\n\nexport const download = (options: DownloadOptions): Promise<number> => new Promise<number>((resolve, reject) => {\n downloads().download({conflictAction: 'uniquify', ...options}, (downloadId) => {\n try {\n throwRuntimeError();\n\n if (typeof downloadId !== \"number\") {\n throw new Error('Download id not created');\n }\n\n setTimeout(() => {\n findDownload(downloadId).then(item => {\n if (!item) {\n throw new BlockDownloadError('Download item not found after created');\n }\n\n const {error, state} = item;\n\n if (state === \"interrupted\") {\n if (error === \"USER_CANCELED\") {\n throw new BlockDownloadError('Requires user permission to upload');\n }\n\n throw new Error(`Download error: ${error}`);\n }\n\n resolve(downloadId);\n }).catch(reject);\n }, 100);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const cancelDownload = (downloadId: number): Promise<void> => new Promise<void>((resolve, reject) => {\n downloads().cancel(downloadId, () => {\n try {\n throwRuntimeError();\n\n resolve();\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const queryDownloads = (query: DownloadQuery): Promise<DownloadItem[]> => new Promise<DownloadItem[]>((resolve, reject) => {\n downloads().search(query, (downloadItems) => {\n try {\n throwRuntimeError();\n\n resolve(downloadItems);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const findDownload = async (downloadId: number): Promise<DownloadItem | undefined> => {\n const items = await queryDownloads({id: downloadId});\n\n return items[0];\n}\n\nexport const isDownloadExists = async (downloadId: number): Promise<boolean | undefined> => {\n const item = await findDownload(downloadId);\n\n return item?.exists;\n}\n\nexport const getDownloadState = async (downloadId?: number): Promise<DownloadState | undefined> => {\n if (downloadId === undefined) {\n return;\n }\n\n const item = await findDownload(downloadId);\n\n return item?.state;\n}\n\nexport const showDownload = async (downloadId: number): Promise<boolean> => {\n if (!await isDownloadExists(downloadId)) {\n return false;\n }\n\n downloads().show(downloadId);\n\n return true;\n}\n\nexport const showDownloadFolder = (): void => downloads().showDefaultFolder();\n\nexport const getSettingsDownloadsUrl = (): string => {\n switch (getBrowser()) {\n case Browser.Firefox:\n return \"about:preferences#general\";\n\n case Browser.Opera:\n return 'opera://settings/downloads';\n\n case Browser.Edge:\n return 'edge://settings/downloads';\n\n case Browser.Chrome:\n default:\n return 'chrome://settings/downloads';\n }\n}\n\nexport const onDownloadsCreated = (callback: Parameters<typeof chrome.downloads.onCreated.addListener>[0]): () => void => {\n return handleListener(downloads().onCreated, callback)\n}\n\nexport const onDownloadsChanged = (callback: Parameters<typeof chrome.downloads.onChanged.addListener>[0]): () => void => {\n return handleListener(downloads().onChanged, callback)\n}\n","import {browser} from \"./browser\";\nimport {throwRuntimeError} from \"./runtime\";\n\ntype LanguageDetectionResult = chrome.i18n.LanguageDetectionResult\n\nconst i18n = () => browser().i18n;\n\nexport const canUseNativeI18nMessage = (): boolean => typeof (i18n().getMessage) !== \"undefined\";\n\nexport const getI18nMessage = (key: string): string | undefined => {\n if (!canUseNativeI18nMessage()) {\n return;\n }\n\n return i18n().getMessage(key);\n}\n\nexport const getI18nAcceptLanguages = (): Promise<string[]> => new Promise<string[]>((resolve, reject) => {\n i18n().getAcceptLanguages(locales => {\n try {\n throwRuntimeError();\n\n resolve(locales);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const getI18nUILanguage = (): string | undefined => {\n const i18n = browser().i18n;\n\n if (!i18n['getUILanguage']) {\n return;\n }\n\n return i18n.getUILanguage();\n}\n\nexport const detectI18Language = (text: string): Promise<LanguageDetectionResult> => new Promise<LanguageDetectionResult>((resolve, reject) => {\n i18n().detectLanguage(text, result => {\n try {\n throwRuntimeError();\n\n resolve(result);\n } catch (e) {\n reject(e);\n }\n });\n});\n","import {browser} from \"./browser\";\nimport {throwRuntimeError} from \"./runtime\";\n\ntype UninstallOptions = chrome.management.UninstallOptions;\n\nconst management = () => browser().management;\n\nexport const uninstallManagementSelf = async (options?: UninstallOptions): Promise<void> => new Promise<void>((resolve, reject) => {\n management().uninstallSelf(options || {}, () => {\n try {\n throwRuntimeError();\n\n resolve();\n } catch (e) {\n reject(e);\n }\n });\n});\n","import {browser} from \"./browser\";\nimport {handleListener} from \"./utils\";\nimport {throwRuntimeError} from \"./runtime\";\n\ntype NotificationOptions<T extends boolean = false> = chrome.notifications.NotificationOptions<T>;\n\nconst notifications = () => browser().notifications;\n\nexport const isSupportNotifications = () => !!notifications;\n\nexport const createNotification = (options: NotificationOptions, notificationId?: string) => new Promise<string>((resolve, reject) => {\n const defaultOptions: NotificationOptions<true> = {\n type: 'basic',\n priority: 1,\n title: '',\n message: '',\n iconUrl: '',\n };\n\n if (typeof notificationId !== 'string') {\n notificationId = Date.now().toString();\n }\n\n notifications().create(notificationId, {...defaultOptions, ...options}, (notificationId) => {\n try {\n throwRuntimeError();\n\n resolve(notificationId);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const updateNotification = (options: NotificationOptions, notificationId: string) => new Promise<boolean>((resolve, reject) => {\n notifications().update(notificationId, options, (wasUpdated) => {\n try {\n throwRuntimeError();\n\n resolve(wasUpdated);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const clearNotification = (notificationId: string): Promise<boolean> => new Promise<boolean>((resolve, reject) => {\n notifications().clear(notificationId, (wasCleared) => {\n try {\n throwRuntimeError();\n\n resolve(wasCleared);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const getAllNotification = (): Promise<object> => new Promise<object>((resolve, reject) => {\n notifications().getAll((notifications) => {\n try {\n throwRuntimeError();\n\n resolve(notifications);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const clearAllNotification = async (): Promise<void> => {\n const allNotificationIds = Object.keys((await getAllNotification()));\n\n allNotificationIds.forEach((id: string) => clearNotification(id));\n}\n\nexport const getNotificationPermissionLevel = (): Promise<string> => new Promise<string>((resolve, reject) => {\n notifications().getPermissionLevel((level) => {\n try {\n throwRuntimeError();\n\n resolve(level);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const onNotificationsClicked = (callback: Parameters<typeof chrome.notifications.onClicked.addListener>[0]): () => void => {\n if (!isSupportNotifications()) return () => ({});\n\n return handleListener(notifications().onClicked, callback)\n}\n\nexport const onNotificationsClosed = (callback: Parameters<typeof chrome.notifications.onClosed.addListener>[0]): () => void => {\n if (!isSupportNotifications()) return () => ({});\n\n return handleListener(notifications().onClosed, callback)\n}\n\nexport const onNotificationsButtonClicked = (callback: Parameters<typeof chrome.notifications.onButtonClicked.addListener>[0]): () => void => {\n if (!isSupportNotifications()) return () => ({});\n\n return handleListener(notifications().onButtonClicked, callback)\n}\n\nexport const onNotificationsPermissionLevelChanged = (callback: Parameters<typeof chrome.notifications.onPermissionLevelChanged.addListener>[0]): () => void => {\n if (!isSupportNotifications()) return () => ({});\n\n return handleListener(notifications().onPermissionLevelChanged, callback)\n}\n","import {browser} from \"./browser\";\nimport {throwRuntimeError} from \"./runtime\";\n\ntype CreateParameters = chrome.offscreen.CreateParameters;\n\nconst offscreen = () => browser().offscreen;\n\nexport const hasOffscreenDocument = () => new Promise<boolean>((resolve, reject) => {\n offscreen().hasDocument((hasDocument) => {\n try {\n throwRuntimeError();\n\n resolve(hasDocument);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const createOffscreenDocument = (createParameters: CreateParameters): Promise<void> => new Promise<void>((resolve, reject) => {\n offscreen().createDocument(createParameters, () => {\n try {\n throwRuntimeError();\n\n resolve();\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const removeOffscreenDocument = (): Promise<void> => new Promise<void>((resolve, reject) => {\n offscreen().closeDocument(() => {\n try {\n throwRuntimeError();\n\n resolve();\n } catch (e) {\n reject(e);\n }\n });\n});\n","import {browser} from \"./browser\";\nimport {throwRuntimeError} from \"./runtime\";\n\ntype Awaited<T> = chrome.scripting.Awaited<T>;\ntype CSSInjection = chrome.scripting.CSSInjection;\ntype ScriptInjection<Args extends any[], Result> = chrome.scripting.ScriptInjection<Args, Result>;\ntype InjectionResult<T> = chrome.scripting.InjectionResult<T>;\ntype ContentScriptFilter = chrome.scripting.ContentScriptFilter;\ntype RegisteredContentScript = chrome.scripting.RegisteredContentScript;\n\nexport const scripting = () => browser().scripting;\n\nexport const isAvailableScripting = (): boolean => !!scripting()\n\nexport const executeScript = <T = any>(injection: ScriptInjection<any, T>) => new Promise<InjectionResult<Awaited<T>>[]>((resolve, reject) => {\n scripting().executeScript(injection, (result) => {\n try {\n throwRuntimeError();\n\n resolve(result);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const registerContentScripts = (scripts: RegisteredContentScript[]) => new Promise<void>((resolve, reject) => {\n scripting().registerContentScripts(scripts, () => {\n try {\n throwRuntimeError();\n\n resolve();\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const unregisterContentScripts = (filter?: ContentScriptFilter) => new Promise<void>((resolve, reject) => {\n scripting().unregisterContentScripts(filter || {}, () => {\n try {\n throwRuntimeError();\n\n resolve();\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const updateContentScripts = (scripts: RegisteredContentScript[]) => new Promise<void>((resolve, reject) => {\n scripting().updateContentScripts(scripts, () => {\n try {\n throwRuntimeError();\n\n resolve();\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const getRegisteredContentScripts = (filter?: ContentScriptFilter) => new Promise<RegisteredContentScript[]>((resolve, reject) => {\n scripting().getRegisteredContentScripts(filter || {}, (scripts) => {\n try {\n throwRuntimeError();\n\n resolve(scripts);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const insertScriptingCSS = (injection: CSSInjection) => new Promise<void>((resolve, reject) => {\n scripting().insertCSS(injection, () => {\n try {\n throwRuntimeError();\n\n resolve();\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const removeScriptingCSS = (injection: CSSInjection) => new Promise<void>((resolve, reject) => {\n scripting().removeCSS(injection, () => {\n try {\n throwRuntimeError();\n\n resolve();\n } catch (e) {\n reject(e);\n }\n });\n});\n","import {browser} from \"./browser\";\nimport {handleListener} from \"./utils\";\nimport {throwRuntimeError} from \"./runtime\";\n\ntype CaptureInfo = chrome.tabCapture.CaptureInfo;\ntype CaptureOptions = chrome.tabCapture.CaptureOptions;\ntype GetMediaStreamOptions = chrome.tabCapture.GetMediaStreamOptions;\n\nconst tabCapture = () => browser().tabCapture\n\nexport const createTabCapture = (options: CaptureOptions) => new Promise<MediaStream | null>((resolve, reject) => {\n tabCapture().capture(options, stream => {\n try {\n throwRuntimeError();\n\n resolve(stream);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const getCapturedTabs = () => new Promise<CaptureInfo[]>((resolve, reject) => {\n tabCapture().getCapturedTabs(result => {\n try {\n throwRuntimeError();\n\n resolve(result);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const getCaptureMediaStreamId = (options: GetMediaStreamOptions) => new Promise<string>((resolve, reject) => {\n tabCapture().getMediaStreamId(options, streamId => {\n try {\n throwRuntimeError();\n\n resolve(streamId);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const onCaptureStatusChanged = (callback: Parameters<typeof chrome.tabCapture.onStatusChanged.addListener>[0]): () => void => {\n return handleListener(tabCapture().onStatusChanged, callback)\n}\n","import {browser} from \"./browser\";\nimport {handleListener} from \"./utils\";\nimport {throwRuntimeError} from \"./runtime\";\nimport {MessageBody, MessageDictionary, MessageResponse, MessageType} from \"@typing/message\";\n\ntype Tab = chrome.tabs.Tab;\n\ntype Window = chrome.windows.Window;\n\ntype ZoomSettings = chrome.tabs.ZoomSettings;\ntype InjectDetails = chrome.tabs.InjectDetails;\n\ntype QueryInfo = chrome.tabs.QueryInfo;\ntype HighlightInfo = chrome.tabs.HighlightInfo;\n\ntype GroupOptions = chrome.tabs.GroupOptions;\ntype CaptureVisibleTabOptions = chrome.tabs.CaptureVisibleTabOptions;\n\ntype MoveProperties = chrome.tabs.MoveProperties;\ntype UpdateProperties = chrome.tabs.UpdateProperties;\ntype CreateProperties = chrome.tabs.CreateProperties;\n\ntype MessageSendOptions = chrome.tabs.MessageSendOptions;\n\nconst tabs = () => browser().tabs;\n\n// =================================\n// ============ METHODS ============\n// =================================\nexport const captureVisibleTab = (windowId: number, options: CaptureVisibleTabOptions) => new Promise<string>((resolve, reject) => {\n tabs().captureVisibleTab(windowId, options, (dataUrl) => {\n try {\n throwRuntimeError();\n\n resolve(dataUrl);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const createTab = (properties: CreateProperties): Promise<Tab> => new Promise<Tab>((resolve, reject) => {\n tabs().create(properties, (tab) => {\n try {\n throwRuntimeError();\n\n resolve(tab);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const detectTabLanguage = (tabId: number) => new Promise<string>((resolve, reject) => {\n // For an unknown/undefined language, und is returned.\n tabs().detectLanguage(tabId, (language) => {\n try {\n throwRuntimeError();\n\n resolve(language);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const discardTab = (tabId: number) => new Promise<Tab>((resolve, reject) => {\n tabs().discard(tabId, (tab) => {\n try {\n throwRuntimeError();\n\n resolve(tab);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const duplicateTab = (tabId: number) => new Promise<Tab | undefined>((resolve, reject) => {\n tabs().duplicate(tabId, (tab) => {\n try {\n throwRuntimeError();\n\n resolve(tab);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const getTab = (tabId: number) => new Promise<Tab>((resolve, reject) => {\n tabs().get(tabId, (tab) => {\n try {\n throwRuntimeError();\n\n resolve(tab);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const getCurrentTab = () => new Promise<Tab | undefined>((resolve, reject) => {\n // Returns undefined if called from a non-tab context (for example, a background view or popup view)\n tabs().getCurrent((tab) => {\n try {\n throwRuntimeError();\n\n resolve(tab);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const getTabZoom = (tabId: number) => new Promise<number>((resolve, reject) => {\n tabs().getZoom(tabId, (zoomFactor) => {\n try {\n throwRuntimeError();\n\n resolve(zoomFactor);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const getTabZoomSettings = (tabId: number) => new Promise<ZoomSettings>((resolve, reject) => {\n tabs().getZoomSettings(tabId, (zoomSettings) => {\n try {\n throwRuntimeError();\n\n resolve(zoomSettings);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const goTabBack = (tabId: number) => new Promise<void>((resolve, reject) => {\n tabs().goBack(tabId, () => {\n try {\n throwRuntimeError();\n\n resolve();\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const goTabForward = (tabId: number) => new Promise<void>((resolve, reject) => {\n tabs().goForward(tabId, () => {\n try {\n throwRuntimeError();\n\n resolve();\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const groupTabs = (options: GroupOptions) => new Promise<number>((resolve, reject) => {\n tabs().group(options, (tabs) => {\n try {\n throwRuntimeError();\n\n resolve(tabs);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const highlightTab = (highlightInfo: HighlightInfo) => new Promise<Window>((resolve, reject) => {\n tabs().highlight(highlightInfo, (window) => {\n try {\n throwRuntimeError();\n\n resolve(window);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const moveTab = (tabId: number, moveProperties: MoveProperties) => new Promise<Tab>((resolve, reject) => {\n tabs().move(tabId, moveProperties, (tab) => {\n try {\n throwRuntimeError();\n\n resolve(tab);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const moveTabs = (tabIds: number[], moveProperties: MoveProperties) => new Promise<Tab[]>((resolve, reject) => {\n tabs().move(tabIds, moveProperties, (tabs) => {\n try {\n throwRuntimeError();\n\n resolve(tabs);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const queryTabs = (queryInfo?: QueryInfo) => new Promise<Tab[]>((resolve, reject) => {\n tabs().query(queryInfo || {}, (tabs) => {\n try {\n throwRuntimeError();\n\n resolve(tabs);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const reloadTab = (tabId: number, bypassCache?: boolean | undefined) => new Promise<void>((resolve, reject) => {\n tabs().reload(tabId, {bypassCache}, () => {\n try {\n throwRuntimeError();\n\n resolve();\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const removeTab = (tabId: number): Promise<void> => new Promise<void>((resolve, reject) => {\n tabs().remove(tabId, () => {\n try {\n throwRuntimeError();\n\n resolve();\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const setTabZoom = (tabId: number, zoomFactor: number) => new Promise<void>((resolve, reject) => {\n tabs().setZoom(tabId, zoomFactor, () => {\n try {\n throwRuntimeError();\n\n resolve();\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const setTabZoomSettings = (tabId: number, zoomSettings: ZoomSettings) => new Promise<void>((resolve, reject) => {\n tabs().setZoomSettings(tabId, zoomSettings, () => {\n try {\n throwRuntimeError();\n\n resolve();\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const ungroupTab = (tabIds: number | number[]) => new Promise<void>((resolve, reject) => {\n tabs().ungroup(tabIds, () => {\n try {\n throwRuntimeError();\n\n resolve();\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const updateTab = (tabId: number, updateProperties: UpdateProperties) => new Promise<Tab | undefined>((resolve, reject) => {\n tabs().update(tabId, updateProperties, (tab) => {\n try {\n throwRuntimeError();\n\n resolve(tab);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const executeScriptTab = (tabId: number, details: InjectDetails) => new Promise<any[]>((resolve, reject) => {\n tabs().executeScript(tabId, details, (result) => {\n try {\n throwRuntimeError();\n\n resolve(result);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const sendTabMessage = <\n T extends MessageDictionary,\n K extends MessageType<T>\n>(\n tabId: number,\n message: MessageBody<T, K>,\n options: MessageSendOptions = {}\n): Promise<MessageResponse<T, K>> => new Promise<MessageResponse<T, K>>((resolve, reject) => {\n tabs().sendMessage(tabId, message, options, (response) => {\n try {\n throwRuntimeError();\n\n resolve(response);\n } catch (e) {\n reject(e);\n }\n });\n});\n\n// =================================\n// ======== CUSTOM METHODS =========\n// =================================\nexport const getTabUrl = async (tabId: number): Promise<string> => {\n const tab = await findTabById(tabId);\n\n if (!tab) {\n throw new Error(`Tab id \"${tabId}\" not exist`);\n }\n\n const {url} = tab;\n\n if (!url) {\n throw new Error(`URL not exist by tab id ${tabId}`);\n }\n\n return url;\n}\n\nexport const getActiveTab = async (): Promise<Tab> => {\n const tabs = await queryTabs({active: true, currentWindow: true})\n\n if (!tabs || !tabs[0]) {\n throw new Error('Tab not found');\n }\n\n return tabs[0];\n}\n\nexport const queryTabIds = async (queryInfo?: QueryInfo): Promise<number[]> => (await queryTabs(queryInfo)).reduce((ids, {id}) => {\n if (typeof id === 'number') {\n return [...ids, id];\n }\n\n return ids;\n}, [] as number[]);\n\nexport const findTab = (queryInfo?: QueryInfo): Promise<Tab | undefined> => queryTabs(queryInfo).then(tabs => tabs.length ? tabs[0] : undefined);\n\nexport const findTabById = (tabId: number): Promise<Tab | undefined> => getTab(tabId).then(tab => tab).catch(() => undefined);\n\nexport const updateTabAsSelected = (tabId: number) => updateTab(tabId, {highlighted: true});\n\nexport const updateTabAsActive = (tabId: number) => updateTab(tabId, {active: true});\n\nexport const openOrCreateTab = async (tab: Tab): Promise<void> => {\n const {id, url} = tab;\n\n if (id && url) {\n const existTab = await findTab({url});\n\n if (existTab && id && existTab.id === id) {\n await updateTabAsSelected(id);\n\n return;\n }\n }\n\n await createTab({url});\n}\n\n// =================================\n// ============ EVENTS =============\n// =================================\nexport const onTabActivated = (callback: Parameters<typeof chrome.tabs.onActivated.addListener>[0]): () => void => {\n return handleListener(tabs().onActivated, callback)\n}\n\nexport const onTabAttached = (callback: Parameters<typeof chrome.tabs.onAttached.addListener>[0]): () => void => {\n return handleListener(tabs().onAttached, callback)\n}\n\nexport const onTabCreated = (callback: Parameters<typeof chrome.tabs.onCreated.addListener>[0]): () => void => {\n return handleListener(tabs().onCreated, callback)\n}\n\nexport const onTabDetached = (callback: Parameters<typeof chrome.tabs.onDetached.addListener>[0]): () => void => {\n return handleListener(tabs().onDetached, callback)\n}\n\nexport const onTabHighlighted = (callback: Parameters<typeof chrome.tabs.onHighlighted.addListener>[0]): () => void => {\n return handleListener(tabs().onHighlighted, callback)\n};\n\nexport const onTabMoved = (callback: Parameters<typeof chrome.tabs.onMoved.addListener>[0]): () => void => {\n return handleListener(tabs().onMoved, callback)\n}\n\nexport const onTabRemoved = (callback: Parameters<typeof chrome.tabs.onRemoved.addListener>[0]): () => void => {\n return handleListener(tabs().onRemoved, callback)\n};\n\nexport const onTabReplaced = (callback: Parameters<typeof chrome.tabs.onReplaced.addListener>[0]): () => void => {\n return handleListener(tabs().onReplaced, callback)\n};\n\nexport const onTabUpdated = (callback: Parameters<typeof chrome.tabs.onUpdated.addListener>[0]): () => void => {\n return handleListener(tabs().onUpdated, callback)\n}\n\nexport const onTabZoomChange = (callback: Parameters<typeof chrome.tabs.onZoomChange.addListener>[0]): () => void => {\n return handleListener(tabs().onZoomChange, callback)\n}\n","import {browser} from \"./browser\";\nimport {safeListener} from \"./utils\";\nimport {throwRuntimeError} from \"./runtime\";\n\ntype GetFrameDetails = chrome.webNavigation.GetFrameDetails;\ntype GetAllFrameDetails = chrome.webNavigation.GetAllFrameDetails;\ntype GetFrameResultDetails = chrome.webNavigation.GetFrameResultDetails;\ntype GetAllFrameResultDetails = chrome.webNavigation.GetAllFrameResultDetails;\ntype WebNavigationEventFilter = chrome.webNavigation.WebNavigationEventFilter;\n\nconst webNavigation = () => browser().webNavigation;\n\nexport const getWebNavigationFrame = (details: GetFrameDetails): Promise<GetFrameResultDetails> => new Promise((resolve, reject) => {\n webNavigation().getFrame(details, (frame) => {\n try {\n throwRuntimeError();\n\n if (!frame) {\n throw new Error(\"No frame found for the specified tabId\");\n }\n resolve(frame);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const getWebNavigationAllFrames = (details: GetAllFrameDetails): Promise<GetAllFrameResultDetails[]> => new Promise((resolve, reject) => {\n webNavigation().getAllFrames(details, (frames) => {\n try {\n throwRuntimeError();\n\n if (!frames) {\n throw new Error(\"No frames found for the specified tabId\");\n }\n resolve(frames);\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const onWebNavigationBeforeNavigate = (\n callback: Parameters<typeof chrome.webNavigation.onBeforeNavigate.addListener>[0],\n filters?: WebNavigationEventFilter,\n): () => void => {\n const listener = safeListener(callback)\n\n webNavigation().onBeforeNavigate.addListener(listener, filters);\n\n return () => webNavigation().onBeforeNavigate.removeListener(listener);\n}\n\nexport const onWebNavigationCommitted = (\n callback: Parameters<typeof chrome.webNavigation.onCommitted.addListener>[0],\n filters?: WebNavigationEventFilter,\n): () => void => {\n const listener = safeListener(callback)\n\n webNavigation().onCommitted.addListener(listener, filters);\n\n return () => webNavigation().onCommitted.removeListener(listener);\n}\n\nexport const onWebNavigationCompleted = (\n callback: Parameters<typeof chrome.webNavigation.onCompleted.addListener>[0],\n filters?: WebNavigationEventFilter,\n): () => void => {\n const listener = safeListener(callback)\n\n webNavigation().onCompleted.addListener(listener, filters);\n\n return () => webNavigation().onCompleted.removeListener(listener);\n}\n\nexport const onWebNavigationCreatedNavigationTarget = (\n callback: Parameters<typeof chrome.webNavigation.onCreatedNavigationTarget.addListener>[0],\n filters?: WebNavigationEventFilter,\n): () => void => {\n const listener = safeListener(callback)\n\n webNavigation().onCreatedNavigationTarget.addListener(listener, filters);\n\n return () => webNavigation().onCreatedNavigationTarget.removeListener(listener);\n}\n\nexport const onWebNavigationDOMContentLoaded = (\n callback: Parameters<typeof chrome.webNavigation.onDOMContentLoaded.addListener>[0],\n filters?: WebNavigationEventFilter,\n): () => void => {\n const listener = safeListener(callback)\n\n webNavigation().onDOMContentLoaded.addListener(listener, filters);\n\n return () => webNavigation().onDOMContentLoaded.removeListener(listener);\n}\n\nexport const onWebNavigationErrorOccurred = (\n callback: Parameters<typeof chrome.webNavigation.onErrorOccurred.addListener>[0],\n filters?: WebNavigationEventFilter,\n): () => void => {\n const listener = safeListener(callback)\n\n webNavigation().onErrorOccurred.addListener(listener, filters);\n\n return () => webNavigation().onErrorOccurred.removeListener(listener);\n}\n\nexport const onWebNavigationHistoryStateUpdated = (\n callback: Parameters<typeof chrome.webNavigation.onHistoryStateUpdated.addListener>[0],\n filters?: WebNavigationEventFilter,\n): () => void => {\n const listener = safeListener(callback)\n\n webNavigation().onHistoryStateUpdated.addListener(listener, filters);\n\n return () => webNavigation().onHistoryStateUpdated.removeListener(listener);\n}\n\nexport const onWebNavigationReferenceFragmentUpdated = (\n callback: Parameters<typeof chrome.webNavigation.onReferenceFragmentUpdated.addListener>[0],\n filters?: WebNavigationEventFilter,\n): () => void => {\n const listener = safeListener(callback)\n\n webNavigation().onReferenceFragmentUpdated.addListener(listener, filters);\n\n return () => webNavigation().onReferenceFragmentUpdated.removeListener(listener);\n}\n\nexport const onWebNavigationTabReplaced = (callback: Parameters<typeof chrome.webNavigation.onTabReplaced.addListener>[0]): () => void => {\n const listener = safeListener(callback)\n\n webNavigation().onTabReplaced.addListener(listener);\n\n return () => webNavigation().onTabReplaced.removeListener(listener);\n}\n","export const removeAllSpaces = (str: string): string => {\n return str.replace(/\\s/g, '');\n};\n\nexport const hasSymbols = (str?: string | number | null): boolean => {\n if (typeof str !== \"string\") {\n return false;\n }\n\n return removeAllSpaces(str).length > 0;\n};\n","import {getTabUrl} from \"./tab\";\nimport {browser} from \"./browser\";\nimport {safeListener} from \"./utils\";\nimport {throwRuntimeError} from \"./runtime\";\n\nimport {isBrowser} from \"@main/env\";\n\nimport {hasSymbols} from \"@cli/utils/string\";\n\nimport {Browser} from \"@typing/browser\";\n\ntype RequestFilter = chrome.webRequest.RequestFilter;\ntype ResourceRequest = chrome.webRequest.ResourceRequest;\n\nconst webRequest = () => browser().webRequest;\n\nexport const getWebRequestInitiatorUrl = async (request: ResourceRequest): Promise<string | undefined> => {\n const {tabId} = request;\n\n let initiatorUrl: string | undefined;\n\n try {\n if (tabId >= 0) {\n initiatorUrl = await getTabUrl(tabId);\n } else if (isBrowser(Browser.Firefox)) {\n // Firefox contains other properties in the details object: https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/webRequest/onBeforeRequest#details_2\n\n // @ts-ignore\n const {originUrl, documentUrl} = request;\n\n initiatorUrl = originUrl || documentUrl;\n\n if (!hasSymbols(initiatorUrl)) {\n initiatorUrl = undefined;\n }\n }\n } catch (e) {\n console.warn(`Request API, getInitiatorUrl, get tab url id = \"${tabId}\" warning`, e);\n }\n\n return initiatorUrl;\n}\n\nexport const handlerWebRequestBehaviorChanged = () => new Promise<void>((resolve, reject) => {\n webRequest().handlerBehaviorChanged(() => {\n try {\n throwRuntimeError();\n\n resolve();\n } catch (e) {\n reject(e);\n }\n });\n});\n\nexport const onWebRequestAuthRequired = (\n callback: Parameters<typeof chrome.webRequest.onAuthRequired.addListener>[0],\n filter: RequestFilter,\n extraInfoSpec?: Parameters<typeof chrome.webRequest.onAuthRequired.addListener>[2]\n): () => void => {\n const listener = safeListener(callback)\n\n webRequest().onAuthRequired.addListener(listener, filter, extraInfoSpec);\n\n return () => webRequest().onAuthRequired.removeListener(listener);\n}\n\nexport const onWebRequestBeforeRedirect = (\n callback: Parameters<typeof chrome.webRequest.onBeforeRedirect.addListener>[0],\n filter: RequestFilter,\n extraInfoSpec?: Parameters<typeof chrome.webRequest.onBeforeRedirect.addListener>[2]\n): () => void => {\n const listener = safeListener(callback)\n\n webRequest().onBeforeRedirect.addListener(listener, filter, extraInfoSpec);\n\n return () => webRequest().onBeforeRedirect.removeListener(listener);\n}\n\nexport const onWebRequestBeforeRequest = (\n callback: Parameters<typeof chrome.webRequest.onBeforeRequest.addListener>[0],\n filter: RequestFilter,\n extraInfoSpec?: Parameters<typeof chrome.webRequest.onBeforeRequest.addListener>[2]\n): () => void => {\n const listener = safeListener(callback)\n\n webRequest().onBeforeRequest.addListener(listener, filter, extraInfoSpec);\n\n return () => webRequest().onBeforeRequest.removeListener(listener);\n}\n\nexport const onWebRequestBeforeSendHeaders = (\n callback: Parameters<typeof chrome.webRequest.onBeforeSendHeaders.addListener>[0],\n filter: RequestFilter,\n extraInfoSpec?: Parameters<typeof chrome.webRequest.onBeforeSendHeaders.addListener>[2]\n): () => void => {\n const listener = safeListener(callback)\n\n webRequest().onBeforeSendHeaders.addListener(listener, filter, extraInfoSpec);\n\n return () => webRequest().onBeforeSendHeaders.removeListener(listener);\n}\n\nexport const onWebRequestCompleted = (\n callback: Parameters<typeof chrome.webRequest.onCompleted.addListener>[0],\n filter: RequestFilter,\n extraInfoSpec?: Parameters<typeof chrome.webRequest.onCompleted.addListener>[2]\n): () => void => {\n const listener = safeListener(callback)\n\n webRequest().onCompleted.addListener(listener, filter, extraInfoSpec);\n\n return () => webRequest().onCompleted.removeListener(listener);\n}\n\nexport const onWebRequestErrorOccurred = (\n callback: Parameters<typeof chrome.webRequest.onErrorOccurred.addListener>[0],\n filter: RequestFilter,\n extraInfoSpec?: Parameters<typeof chrome.webRequest.onErrorOccurred.addListener>[2]\n): () => void => {\n const listener = safeListener(callback)\n\n webRequest().onErrorOccurred.addListener(listener, filter, extraInfoSpec);\n\n return () => webRequest().onErrorOccurred.removeListener(listener);\n}\n\nexport const onWebRequestHeadersReceived = (\n callback: Parameters<typeof chrome.webRequest.onHeadersReceived.addListener>[0],\n filter: RequestFilter,\n extraInfoSpec?: Parameters<typeof chrome.webRequest.onHeadersReceived.addListener>[2]\n): () => void => {\n const listener = safeListener(callback)\n\n webRequest().onHeadersReceived.addListener(listener, filter, extraInfoSpec);\n\n return () => webRequest().onHeadersReceived.removeListener(listener);\n}\n\nexport const onWebRequestResponseStarted = (\n callback: Parameters<typeof chrome.webRequest.onResponseStarted.addListener>[0],\n filter: RequestFilter,\n extraInfoSpec?: Parameters<typeof chrome.webRequest.onResponseStarted.addListener>[2]\n): () => void => {\n const listener = safeListener(callback)\n\n webRequest().onResponseStarted.addListener(listener, filter, extraInfoSpec);\n\n return () => webRequest().onResponseStarted.removeListener(listener);\n}\n\nexport const onWebRequestSendHeaders = (\n callback: Parameters<typeof chrome.webRequest.onSendHeaders.addListener>[0],\n filter: RequestFilter,\n extraInfoSpec?: Parameters<typeof chrome.webRequest.onSendHeaders.addListener>[2]\n): () => void => {\n const listener = safeListener(callback)\n\n webRequest().onSendHeaders.addListener(listener, filter, extraInfoSpec);\n\n return () => webRequest().onSendHeaders.removeListener(listener);\n}\n"]}
|
package/dist/browser/index.d.mts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { a as ManifestVersion } from '../manifest-BtVC5HMh.mjs';
|
|
2
|
+
import { a as MessageDictionary, M as MessageType, d as MessageBody, e as MessageResponse } from '../message-CXzpmlXD.mjs';
|
|
2
3
|
import '../content-BiaISlC7.mjs';
|
|
3
4
|
import 'react';
|
|
4
5
|
import 'utility-types';
|
|
@@ -81,7 +82,9 @@ declare const getPlatformInfo: () => Promise<PlatformInfo>;
|
|
|
81
82
|
declare const isManifestVersion3: () => boolean;
|
|
82
83
|
declare const isBackground: () => boolean;
|
|
83
84
|
declare const throwRuntimeError: () => void;
|
|
85
|
+
declare const sendMessage: <T extends MessageDictionary, K extends MessageType<T>>(message: MessageBody<T, K>) => Promise<MessageResponse<T, K>>;
|
|
84
86
|
declare const onRuntimeInstalled: (callback: Parameters<typeof chrome.runtime.onInstalled.addListener>[0]) => () => void;
|
|
87
|
+
declare const onMessage: (callback: Parameters<typeof chrome.runtime.onMessage.addListener>[0]) => () => void;
|
|
85
88
|
|
|
86
89
|
type CSSInjection = chrome.scripting.CSSInjection;
|
|
87
90
|
type ScriptInjection<Args extends any[], Result> = chrome.scripting.ScriptInjection<Args, Result>;
|
|
@@ -115,6 +118,7 @@ type CaptureVisibleTabOptions = chrome.tabs.CaptureVisibleTabOptions;
|
|
|
115
118
|
type MoveProperties = chrome.tabs.MoveProperties;
|
|
116
119
|
type UpdateProperties = chrome.tabs.UpdateProperties;
|
|
117
120
|
type CreateProperties = chrome.tabs.CreateProperties;
|
|
121
|
+
type MessageSendOptions = chrome.tabs.MessageSendOptions;
|
|
118
122
|
declare const captureVisibleTab: (windowId: number, options: CaptureVisibleTabOptions) => Promise<string>;
|
|
119
123
|
declare const createTab: (properties: CreateProperties) => Promise<Tab>;
|
|
120
124
|
declare const detectTabLanguage: (tabId: number) => Promise<string>;
|
|
@@ -138,6 +142,7 @@ declare const setTabZoomSettings: (tabId: number, zoomSettings: ZoomSettings) =>
|
|
|
138
142
|
declare const ungroupTab: (tabIds: number | number[]) => Promise<void>;
|
|
139
143
|
declare const updateTab: (tabId: number, updateProperties: UpdateProperties) => Promise<chrome.tabs.Tab | undefined>;
|
|
140
144
|
declare const executeScriptTab: (tabId: number, details: InjectDetails) => Promise<any[]>;
|
|
145
|
+
declare const sendTabMessage: <T extends MessageDictionary, K extends MessageType<T>>(tabId: number, message: MessageBody<T, K>, options?: MessageSendOptions) => Promise<MessageResponse<T, K>>;
|
|
141
146
|
declare const getTabUrl: (tabId: number) => Promise<string>;
|
|
142
147
|
declare const getActiveTab: () => Promise<Tab>;
|
|
143
148
|
declare const queryTabIds: (queryInfo?: QueryInfo) => Promise<number[]>;
|
|
@@ -188,4 +193,4 @@ declare const onWebRequestHeadersReceived: (callback: Parameters<typeof chrome.w
|
|
|
188
193
|
declare const onWebRequestResponseStarted: (callback: Parameters<typeof chrome.webRequest.onResponseStarted.addListener>[0], filter: RequestFilter, extraInfoSpec?: Parameters<typeof chrome.webRequest.onResponseStarted.addListener>[2]) => () => void;
|
|
189
194
|
declare const onWebRequestSendHeaders: (callback: Parameters<typeof chrome.webRequest.onSendHeaders.addListener>[0], filter: RequestFilter, extraInfoSpec?: Parameters<typeof chrome.webRequest.onSendHeaders.addListener>[2]) => () => void;
|
|
190
195
|
|
|
191
|
-
export { BlockDownloadError, browser, canUseNativeI18nMessage, cancelDownload, captureVisibleTab, clearActionBadgeText, clearAllNotification, clearNotification, createNotification, createOffscreenDocument, createTab, createTabCapture, detectI18Language, detectTabLanguage, discardTab, download, duplicateTab, executeScript, executeScriptTab, findDownload, findTab, findTabById, getActionDefaultPopup, getActiveTab, getAllCommands, getAllNotification, getCaptureMediaStreamId, getCapturedTabs, getCurrentTab, getDownloadState, getI18nAcceptLanguages, getI18nMessage, getI18nUILanguage, getId, getManifest, getManifestVersion, getNotificationPermissionLevel, getPlatformInfo, getRegisteredContentScripts, getRuntimeContexts, getSettingsDownloadsUrl, getTab, getTabUrl, getTabZoom, getTabZoomSettings, getUrl, getWebNavigationAllFrames, getWebNavigationFrame, getWebRequestInitiatorUrl, goTabBack, goTabForward, groupTabs, handlerWebRequestBehaviorChanged, hasOffscreenDocument, highlightTab, insertScriptingCSS, isAvailableScripting, isBackground, isDownloadExists, isManifestVersion3, isSupportCommands, isSupportNotifications, moveTab, moveTabs, onActionClicked, onCaptureStatusChanged, onCommand, onDownloadsChanged, onDownloadsCreated, onNotificationsButtonClicked, onNotificationsClicked, onNotificationsClosed, onNotificationsPermissionLevelChanged, onRuntimeInstalled, onTabActivated, onTabAttached, onTabCreated, onTabDetached, onTabHighlighted, onTabMoved, onTabRemoved, onTabReplaced, onTabUpdated, onTabZoomChange, onWebNavigationBeforeNavigate, onWebNavigationCommitted, onWebNavigationCompleted, onWebNavigationCreatedNavigationTarget, onWebNavigationDOMContentLoaded, onWebNavigationErrorOccurred, onWebNavigationHistoryStateUpdated, onWebNavigationReferenceFragmentUpdated, onWebNavigationTabReplaced, onWebRequestAuthRequired, onWebRequestBeforeRedirect, onWebRequestBeforeRequest, onWebRequestBeforeSendHeaders, onWebRequestCompleted, onWebRequestErrorOccurred, onWebRequestHeadersReceived, onWebRequestResponseStarted, onWebRequestSendHeaders, openOrCreateTab, queryDownloads, queryTabIds, queryTabs, registerContentScripts, reloadTab, removeOffscreenDocument, removeScriptingCSS, removeTab, scripting, setActionBadgeBgColor, setActionBadgeText, setActionBadgeTextColor, setActionIcon, setTabZoom, setTabZoomSettings, showDownload, showDownloadFolder, throwRuntimeError, ungroupTab, uninstallManagementSelf, unregisterContentScripts, updateContentScripts, updateNotification, updateTab, updateTabAsActive, updateTabAsSelected };
|
|
196
|
+
export { BlockDownloadError, browser, canUseNativeI18nMessage, cancelDownload, captureVisibleTab, clearActionBadgeText, clearAllNotification, clearNotification, createNotification, createOffscreenDocument, createTab, createTabCapture, detectI18Language, detectTabLanguage, discardTab, download, duplicateTab, executeScript, executeScriptTab, findDownload, findTab, findTabById, getActionDefaultPopup, getActiveTab, getAllCommands, getAllNotification, getCaptureMediaStreamId, getCapturedTabs, getCurrentTab, getDownloadState, getI18nAcceptLanguages, getI18nMessage, getI18nUILanguage, getId, getManifest, getManifestVersion, getNotificationPermissionLevel, getPlatformInfo, getRegisteredContentScripts, getRuntimeContexts, getSettingsDownloadsUrl, getTab, getTabUrl, getTabZoom, getTabZoomSettings, getUrl, getWebNavigationAllFrames, getWebNavigationFrame, getWebRequestInitiatorUrl, goTabBack, goTabForward, groupTabs, handlerWebRequestBehaviorChanged, hasOffscreenDocument, highlightTab, insertScriptingCSS, isAvailableScripting, isBackground, isDownloadExists, isManifestVersion3, isSupportCommands, isSupportNotifications, moveTab, moveTabs, onActionClicked, onCaptureStatusChanged, onCommand, onDownloadsChanged, onDownloadsCreated, onMessage, onNotificationsButtonClicked, onNotificationsClicked, onNotificationsClosed, onNotificationsPermissionLevelChanged, onRuntimeInstalled, onTabActivated, onTabAttached, onTabCreated, onTabDetached, onTabHighlighted, onTabMoved, onTabRemoved, onTabReplaced, onTabUpdated, onTabZoomChange, onWebNavigationBeforeNavigate, onWebNavigationCommitted, onWebNavigationCompleted, onWebNavigationCreatedNavigationTarget, onWebNavigationDOMContentLoaded, onWebNavigationErrorOccurred, onWebNavigationHistoryStateUpdated, onWebNavigationReferenceFragmentUpdated, onWebNavigationTabReplaced, onWebRequestAuthRequired, onWebRequestBeforeRedirect, onWebRequestBeforeRequest, onWebRequestBeforeSendHeaders, onWebRequestCompleted, onWebRequestErrorOccurred, onWebRequestHeadersReceived, onWebRequestResponseStarted, onWebRequestSendHeaders, openOrCreateTab, queryDownloads, queryTabIds, queryTabs, registerContentScripts, reloadTab, removeOffscreenDocument, removeScriptingCSS, removeTab, scripting, sendMessage, sendTabMessage, setActionBadgeBgColor, setActionBadgeText, setActionBadgeTextColor, setActionIcon, setTabZoom, setTabZoomSettings, showDownload, showDownloadFolder, throwRuntimeError, ungroupTab, uninstallManagementSelf, unregisterContentScripts, updateContentScripts, updateNotification, updateTab, updateTabAsActive, updateTabAsSelected };
|
package/dist/browser/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { a as ManifestVersion } from '../manifest-BW07GSzr.js';
|
|
2
|
+
import { a as MessageDictionary, M as MessageType, d as MessageBody, e as MessageResponse } from '../message-CXzpmlXD.js';
|
|
2
3
|
import '../content-BVHUxFJ7.js';
|
|
3
4
|
import 'react';
|
|
4
5
|
import 'utility-types';
|
|
@@ -81,7 +82,9 @@ declare const getPlatformInfo: () => Promise<PlatformInfo>;
|
|
|
81
82
|
declare const isManifestVersion3: () => boolean;
|
|
82
83
|
declare const isBackground: () => boolean;
|
|
83
84
|
declare const throwRuntimeError: () => void;
|
|
85
|
+
declare const sendMessage: <T extends MessageDictionary, K extends MessageType<T>>(message: MessageBody<T, K>) => Promise<MessageResponse<T, K>>;
|
|
84
86
|
declare const onRuntimeInstalled: (callback: Parameters<typeof chrome.runtime.onInstalled.addListener>[0]) => () => void;
|
|
87
|
+
declare const onMessage: (callback: Parameters<typeof chrome.runtime.onMessage.addListener>[0]) => () => void;
|
|
85
88
|
|
|
86
89
|
type CSSInjection = chrome.scripting.CSSInjection;
|
|
87
90
|
type ScriptInjection<Args extends any[], Result> = chrome.scripting.ScriptInjection<Args, Result>;
|
|
@@ -115,6 +118,7 @@ type CaptureVisibleTabOptions = chrome.tabs.CaptureVisibleTabOptions;
|
|
|
115
118
|
type MoveProperties = chrome.tabs.MoveProperties;
|
|
116
119
|
type UpdateProperties = chrome.tabs.UpdateProperties;
|
|
117
120
|
type CreateProperties = chrome.tabs.CreateProperties;
|
|
121
|
+
type MessageSendOptions = chrome.tabs.MessageSendOptions;
|
|
118
122
|
declare const captureVisibleTab: (windowId: number, options: CaptureVisibleTabOptions) => Promise<string>;
|
|
119
123
|
declare const createTab: (properties: CreateProperties) => Promise<Tab>;
|
|
120
124
|
declare const detectTabLanguage: (tabId: number) => Promise<string>;
|
|
@@ -138,6 +142,7 @@ declare const setTabZoomSettings: (tabId: number, zoomSettings: ZoomSettings) =>
|
|
|
138
142
|
declare const ungroupTab: (tabIds: number | number[]) => Promise<void>;
|
|
139
143
|
declare const updateTab: (tabId: number, updateProperties: UpdateProperties) => Promise<chrome.tabs.Tab | undefined>;
|
|
140
144
|
declare const executeScriptTab: (tabId: number, details: InjectDetails) => Promise<any[]>;
|
|
145
|
+
declare const sendTabMessage: <T extends MessageDictionary, K extends MessageType<T>>(tabId: number, message: MessageBody<T, K>, options?: MessageSendOptions) => Promise<MessageResponse<T, K>>;
|
|
141
146
|
declare const getTabUrl: (tabId: number) => Promise<string>;
|
|
142
147
|
declare const getActiveTab: () => Promise<Tab>;
|
|
143
148
|
declare const queryTabIds: (queryInfo?: QueryInfo) => Promise<number[]>;
|
|
@@ -188,4 +193,4 @@ declare const onWebRequestHeadersReceived: (callback: Parameters<typeof chrome.w
|
|
|
188
193
|
declare const onWebRequestResponseStarted: (callback: Parameters<typeof chrome.webRequest.onResponseStarted.addListener>[0], filter: RequestFilter, extraInfoSpec?: Parameters<typeof chrome.webRequest.onResponseStarted.addListener>[2]) => () => void;
|
|
189
194
|
declare const onWebRequestSendHeaders: (callback: Parameters<typeof chrome.webRequest.onSendHeaders.addListener>[0], filter: RequestFilter, extraInfoSpec?: Parameters<typeof chrome.webRequest.onSendHeaders.addListener>[2]) => () => void;
|
|
190
195
|
|
|
191
|
-
export { BlockDownloadError, browser, canUseNativeI18nMessage, cancelDownload, captureVisibleTab, clearActionBadgeText, clearAllNotification, clearNotification, createNotification, createOffscreenDocument, createTab, createTabCapture, detectI18Language, detectTabLanguage, discardTab, download, duplicateTab, executeScript, executeScriptTab, findDownload, findTab, findTabById, getActionDefaultPopup, getActiveTab, getAllCommands, getAllNotification, getCaptureMediaStreamId, getCapturedTabs, getCurrentTab, getDownloadState, getI18nAcceptLanguages, getI18nMessage, getI18nUILanguage, getId, getManifest, getManifestVersion, getNotificationPermissionLevel, getPlatformInfo, getRegisteredContentScripts, getRuntimeContexts, getSettingsDownloadsUrl, getTab, getTabUrl, getTabZoom, getTabZoomSettings, getUrl, getWebNavigationAllFrames, getWebNavigationFrame, getWebRequestInitiatorUrl, goTabBack, goTabForward, groupTabs, handlerWebRequestBehaviorChanged, hasOffscreenDocument, highlightTab, insertScriptingCSS, isAvailableScripting, isBackground, isDownloadExists, isManifestVersion3, isSupportCommands, isSupportNotifications, moveTab, moveTabs, onActionClicked, onCaptureStatusChanged, onCommand, onDownloadsChanged, onDownloadsCreated, onNotificationsButtonClicked, onNotificationsClicked, onNotificationsClosed, onNotificationsPermissionLevelChanged, onRuntimeInstalled, onTabActivated, onTabAttached, onTabCreated, onTabDetached, onTabHighlighted, onTabMoved, onTabRemoved, onTabReplaced, onTabUpdated, onTabZoomChange, onWebNavigationBeforeNavigate, onWebNavigationCommitted, onWebNavigationCompleted, onWebNavigationCreatedNavigationTarget, onWebNavigationDOMContentLoaded, onWebNavigationErrorOccurred, onWebNavigationHistoryStateUpdated, onWebNavigationReferenceFragmentUpdated, onWebNavigationTabReplaced, onWebRequestAuthRequired, onWebRequestBeforeRedirect, onWebRequestBeforeRequest, onWebRequestBeforeSendHeaders, onWebRequestCompleted, onWebRequestErrorOccurred, onWebRequestHeadersReceived, onWebRequestResponseStarted, onWebRequestSendHeaders, openOrCreateTab, queryDownloads, queryTabIds, queryTabs, registerContentScripts, reloadTab, removeOffscreenDocument, removeScriptingCSS, removeTab, scripting, setActionBadgeBgColor, setActionBadgeText, setActionBadgeTextColor, setActionIcon, setTabZoom, setTabZoomSettings, showDownload, showDownloadFolder, throwRuntimeError, ungroupTab, uninstallManagementSelf, unregisterContentScripts, updateContentScripts, updateNotification, updateTab, updateTabAsActive, updateTabAsSelected };
|
|
196
|
+
export { BlockDownloadError, browser, canUseNativeI18nMessage, cancelDownload, captureVisibleTab, clearActionBadgeText, clearAllNotification, clearNotification, createNotification, createOffscreenDocument, createTab, createTabCapture, detectI18Language, detectTabLanguage, discardTab, download, duplicateTab, executeScript, executeScriptTab, findDownload, findTab, findTabById, getActionDefaultPopup, getActiveTab, getAllCommands, getAllNotification, getCaptureMediaStreamId, getCapturedTabs, getCurrentTab, getDownloadState, getI18nAcceptLanguages, getI18nMessage, getI18nUILanguage, getId, getManifest, getManifestVersion, getNotificationPermissionLevel, getPlatformInfo, getRegisteredContentScripts, getRuntimeContexts, getSettingsDownloadsUrl, getTab, getTabUrl, getTabZoom, getTabZoomSettings, getUrl, getWebNavigationAllFrames, getWebNavigationFrame, getWebRequestInitiatorUrl, goTabBack, goTabForward, groupTabs, handlerWebRequestBehaviorChanged, hasOffscreenDocument, highlightTab, insertScriptingCSS, isAvailableScripting, isBackground, isDownloadExists, isManifestVersion3, isSupportCommands, isSupportNotifications, moveTab, moveTabs, onActionClicked, onCaptureStatusChanged, onCommand, onDownloadsChanged, onDownloadsCreated, onMessage, onNotificationsButtonClicked, onNotificationsClicked, onNotificationsClosed, onNotificationsPermissionLevelChanged, onRuntimeInstalled, onTabActivated, onTabAttached, onTabCreated, onTabDetached, onTabHighlighted, onTabMoved, onTabRemoved, onTabReplaced, onTabUpdated, onTabZoomChange, onWebNavigationBeforeNavigate, onWebNavigationCommitted, onWebNavigationCompleted, onWebNavigationCreatedNavigationTarget, onWebNavigationDOMContentLoaded, onWebNavigationErrorOccurred, onWebNavigationHistoryStateUpdated, onWebNavigationReferenceFragmentUpdated, onWebNavigationTabReplaced, onWebRequestAuthRequired, onWebRequestBeforeRedirect, onWebRequestBeforeRequest, onWebRequestBeforeSendHeaders, onWebRequestCompleted, onWebRequestErrorOccurred, onWebRequestHeadersReceived, onWebRequestResponseStarted, onWebRequestSendHeaders, openOrCreateTab, queryDownloads, queryTabIds, queryTabs, registerContentScripts, reloadTab, removeOffscreenDocument, removeScriptingCSS, removeTab, scripting, sendMessage, sendTabMessage, setActionBadgeBgColor, setActionBadgeText, setActionBadgeTextColor, setActionIcon, setTabZoom, setTabZoomSettings, showDownload, showDownloadFolder, throwRuntimeError, ungroupTab, uninstallManagementSelf, unregisterContentScripts, updateContentScripts, updateNotification, updateTab, updateTabAsActive, updateTabAsSelected };
|