adnbn 0.2.1 → 0.2.3
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/{AbstractBuilder-CKgY_Bta.d.ts → AbstractBuilder-BN4TmNJG.d.ts} +3 -3
- package/dist/{AbstractBuilder-Ce5zNRXr.d.mts → AbstractBuilder-C81kWZzQ.d.mts} +3 -3
- package/dist/{BaseTransport-C7uEgfUu.d.mts → BaseTransport-DNZ28gFF.d.mts} +1 -1
- package/dist/{BaseTransport-BdFTZfP0.d.ts → BaseTransport-Ecy2Kzti.d.ts} +1 -1
- package/dist/{Builder-FwJAxWos.d.ts → Builder-BOLvGGqp.d.ts} +2 -2
- package/dist/{Builder-rW3fzusy.d.mts → Builder-BP8SDHO1.d.mts} +2 -2
- package/dist/{Builder-7pbnGvHK.d.ts → Builder-Bc8US0PY.d.ts} +1 -1
- package/dist/{Builder-CCyBD4hF.d.mts → Builder-Df1LUO_f.d.mts} +1 -1
- package/dist/{Message-1cYgMdsu.d.mts → Message-Bnritk3D.d.mts} +1 -1
- package/dist/{Message-DAhczRx9.d.ts → Message-DFDaS7mV.d.ts} +1 -1
- package/dist/{MountBuilder-DjnAmTI0.d.ts → MountBuilder-BTltgVF2.d.mts} +26 -7
- package/dist/{MountBuilder-CjvMOcmn.d.mts → MountBuilder-C9Q-7PeI.d.ts} +26 -7
- package/dist/{ProxyRelay-Ce-szh9p.d.ts → ProxyRelay-DDOSZE3h.d.ts} +3 -3
- package/dist/{ProxyRelay-BOBEhRET.d.mts → ProxyRelay-Uel0ATcx.d.mts} +3 -3
- package/dist/{ProxyTransport-BTVUbDxE.d.mts → ProxyTransport-35rU8xqa.d.mts} +3 -3
- package/dist/{ProxyTransport-BW63K6SU.d.ts → ProxyTransport-D4jv5SFh.d.ts} +3 -3
- package/dist/{RegisterOffscreen-BukckdvS.d.mts → RegisterOffscreen-DT0gN5xN.d.mts} +2 -2
- package/dist/{RegisterOffscreen-DmlpLqjW.d.ts → RegisterOffscreen-df3W5HqA.d.ts} +2 -2
- package/dist/{RegisterRelay-MEVSR1sP.d.mts → RegisterRelay-DCVZ2_NI.d.mts} +2 -2
- package/dist/{RegisterRelay-BaIET78I.d.ts → RegisterRelay-PFT2ac4v.d.ts} +2 -2
- package/dist/{TransportMessage-Bk0wg4rF.d.mts → TransportMessage-CIKrv3DG.d.mts} +8 -4
- package/dist/{TransportMessage-BqMzXWZR.d.ts → TransportMessage-CsObvTPq.d.ts} +8 -4
- package/dist/{background-Zjiqg60g.d.ts → background-CpVjDFHQ.d.ts} +1 -1
- package/dist/{background-CyGGjmBx.d.mts → background-cxLBji1Q.d.mts} +1 -1
- package/dist/cli/index.cjs +46 -15
- package/dist/cli/index.cjs.map +1 -1
- package/dist/{command-BFsdm7Bx.d.mts → command-S2dcqx6Q.d.mts} +4 -3
- package/dist/{command-3i_5d__K.d.ts → command-TJ2JUrVd.d.ts} +4 -3
- package/dist/{content-sdYF4W-A.d.ts → content-B0znLIjr.d.ts} +37 -4
- package/dist/{content-BYoXVO6V.d.mts → content-DrrPH4ri.d.mts} +37 -4
- package/dist/entry/background/index.d.mts +2 -2
- package/dist/entry/background/index.d.ts +2 -2
- package/dist/entry/command/index.d.mts +3 -3
- package/dist/entry/command/index.d.ts +3 -3
- package/dist/entry/content/index.d.mts +2 -2
- package/dist/entry/content/index.d.ts +2 -2
- package/dist/entry/content/react/index.cjs +104 -18
- package/dist/entry/content/react/index.cjs.map +1 -1
- package/dist/entry/content/react/index.d.mts +4 -4
- package/dist/entry/content/react/index.d.ts +4 -4
- package/dist/entry/content/react/index.js +104 -18
- package/dist/entry/content/react/index.js.map +1 -1
- package/dist/entry/content/vanilla/index.cjs +108 -18
- package/dist/entry/content/vanilla/index.cjs.map +1 -1
- package/dist/entry/content/vanilla/index.d.mts +4 -4
- package/dist/entry/content/vanilla/index.d.ts +4 -4
- package/dist/entry/content/vanilla/index.js +108 -18
- package/dist/entry/content/vanilla/index.js.map +1 -1
- package/dist/entry/offscreen/index.cjs +27 -4
- package/dist/entry/offscreen/index.cjs.map +1 -1
- package/dist/entry/offscreen/index.d.mts +11 -9
- package/dist/entry/offscreen/index.d.ts +11 -9
- package/dist/entry/offscreen/index.js +27 -4
- package/dist/entry/offscreen/index.js.map +1 -1
- package/dist/entry/relay/index.d.mts +9 -8
- package/dist/entry/relay/index.d.ts +9 -8
- package/dist/entry/service/index.cjs +31 -10
- package/dist/entry/service/index.cjs.map +1 -1
- package/dist/entry/service/index.d.mts +5 -4
- package/dist/entry/service/index.d.ts +5 -4
- package/dist/entry/service/index.js +31 -10
- package/dist/entry/service/index.js.map +1 -1
- package/dist/entry/transport/index.d.mts +8 -7
- package/dist/entry/transport/index.d.ts +8 -7
- package/dist/entry/view/index.d.mts +2 -2
- package/dist/entry/view/index.d.ts +2 -2
- package/dist/entry/view/react/index.d.mts +4 -4
- package/dist/entry/view/react/index.d.ts +4 -4
- package/dist/entry/view/vanilla/index.d.mts +4 -4
- package/dist/entry/view/vanilla/index.d.ts +4 -4
- package/dist/{helpers-DnV3N7fU.d.mts → helpers-YDFORuZz.d.mts} +2 -2
- package/dist/{helpers-DnV3N7fU.d.ts → helpers-YDFORuZz.d.ts} +2 -2
- package/dist/index.cjs +11 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.mts +63 -22
- package/dist/index.d.ts +63 -22
- package/dist/index.js +11 -2
- package/dist/index.js.map +1 -1
- package/dist/message/index.cjs.map +1 -1
- package/dist/message/index.d.mts +4 -3
- package/dist/message/index.d.ts +4 -3
- package/dist/message/index.js.map +1 -1
- package/dist/message/react/index.cjs.map +1 -1
- package/dist/message/react/index.d.mts +1 -1
- package/dist/message/react/index.d.ts +1 -1
- package/dist/message/react/index.js.map +1 -1
- package/dist/{message-55r-wFjc.d.mts → message-jsmkeGHC.d.mts} +5 -1
- package/dist/{message-55r-wFjc.d.ts → message-jsmkeGHC.d.ts} +5 -1
- package/dist/offscreen/index.cjs +30 -5
- package/dist/offscreen/index.cjs.map +1 -1
- package/dist/offscreen/index.d.mts +10 -9
- package/dist/offscreen/index.d.ts +10 -9
- package/dist/offscreen/index.js +30 -5
- package/dist/offscreen/index.js.map +1 -1
- package/dist/{offscreen-B9GiglgN.d.mts → offscreen-2EP-rRfx.d.mts} +3 -3
- package/dist/{offscreen-BG5Abe8V.d.ts → offscreen-aHdkogKj.d.ts} +3 -3
- package/dist/relay/index.d.mts +8 -7
- package/dist/relay/index.d.ts +8 -7
- package/dist/{relay-DymeeDe7.d.ts → relay-DT46Ltms.d.ts} +3 -3
- package/dist/{relay-BYeTCwKO.d.mts → relay-vaJ5R2iC.d.mts} +3 -3
- package/dist/service/index.cjs +27 -4
- package/dist/service/index.cjs.map +1 -1
- package/dist/service/index.d.mts +8 -6
- package/dist/service/index.d.ts +8 -6
- package/dist/service/index.js +27 -4
- package/dist/service/index.js.map +1 -1
- package/dist/{service-BhJhIk-O.d.ts → service-6FdoYGNC.d.ts} +3 -3
- package/dist/{service-DsivypLQ.d.mts → service-C9HbDQPE.d.mts} +3 -3
- package/dist/{transport-B_uYwoGi.d.mts → transport-BrbirhXv.d.mts} +3 -2
- package/dist/{transport-BPmSUoEU.d.ts → transport-Co9Oxp0-.d.ts} +3 -2
- package/dist/{view-QDP2Maev.d.mts → view-Bs26Jcvi.d.mts} +1 -1
- package/dist/{view-D4dquvKl.d.ts → view-u9w7nMgw.d.ts} +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/transport/BaseTransport.ts","../../src/transport/TransportManager.ts","../../src/types/service.ts","../../src/service/ServiceManager.ts","../../src/service/providers/Service.ts","../../src/transport/ProxyTransport.ts","../../src/message/providers/AbstractMessage.ts","../../src/types/message.ts","../../src/message/MessageManager.ts","../../src/message/handlers/AbstractHandler.ts","../../src/message/handlers/SingleHandler.ts","../../src/message/handlers/MapHandler.ts","../../src/message/handlers/GeneralHandler.ts","../../src/message/providers/Message.ts","../../src/transport/TransportMessage.ts","../../src/service/ServiceMessage.ts","../../src/service/providers/ProxyService.ts","../../src/transport/RegisterTransport.ts","../../src/service/providers/RegisterService.ts","../../src/service/index.ts"],"names":["isBackground","nanoid","onMessage","sendTabMessage","sendMessage","args","get"],"mappings":"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","file":"index.cjs","sourcesContent":["import type {TransportDictionary, TransportManager, TransportName} from \"@typing/transport\";\n\nexport default abstract class<N extends TransportName, T = TransportDictionary[N]> {\n protected constructor(protected readonly name: N) {}\n\n protected abstract manager(): TransportManager;\n\n public get(): T {\n return this.manager().get(this.name);\n }\n\n public destroy(): void {\n this.manager().remove(this.name);\n }\n}\n","import type {TransportDictionary, TransportManager as TransportManagerContract, TransportName} from \"@typing/transport\";\n\nexport default abstract class TransportManager implements TransportManagerContract {\n private items = new Map<TransportName, TransportDictionary[TransportName]>();\n\n public add<K extends TransportName>(name: K, instance: TransportDictionary[K]): this {\n this.items.set(name, instance);\n\n return this;\n }\n\n public get<K extends TransportName>(name: K): TransportDictionary[K] | undefined {\n return this.items.get(name) as TransportDictionary[K] | undefined;\n }\n\n public has(name: TransportName): boolean {\n return this.items.has(name);\n }\n\n public remove<K extends TransportName>(name: K): TransportDictionary[K] | undefined {\n const service = this.get(name);\n\n this.items.delete(name);\n\n return service;\n }\n\n public clear(): this {\n this.items.clear();\n\n return this;\n }\n}\n","import {BackgroundConfig} from \"@typing/background\";\nimport {EntrypointOptions} from \"@typing/entrypoint\";\nimport {TransportConfig, TransportDefinition, TransportType} from \"@typing/transport\";\n\nexport const ServiceGlobalKey = \"adnbnService\";\n\nexport type ServiceConfig = TransportConfig & BackgroundConfig;\n\nexport type ServiceOptions = ServiceConfig & EntrypointOptions;\n\nexport type ServiceEntrypointOptions = Partial<ServiceOptions>;\n\nexport type ServiceDefinition<T extends TransportType> = TransportDefinition<ServiceOptions, T> &\n ServiceEntrypointOptions;\n\nexport type ServiceUnresolvedDefinition<T extends TransportType> = Partial<ServiceDefinition<T>>;\n","import TransportManager from \"@transport/TransportManager\";\n\nimport {ServiceGlobalKey} from \"@typing/service\";\n\nimport type {TransportManager as TransportManagerContract} from \"@typing/transport\";\n\nexport default class ServiceManager extends TransportManager {\n public static getInstance(): TransportManagerContract {\n return (globalThis[ServiceGlobalKey] ??= new ServiceManager());\n }\n}\n","import {isBackground} from \"@adnbn/browser\";\n\nimport BaseTransport from \"@transport/BaseTransport\";\n\nimport ServiceManager from \"../ServiceManager\";\n\nimport type {TransportDictionary, TransportManager, TransportName} from \"@typing/transport\";\n\nexport default class<N extends TransportName, T = TransportDictionary[N]> extends BaseTransport<N, T> {\n constructor(name: N) {\n super(name);\n }\n\n protected manager(): TransportManager {\n return ServiceManager.getInstance();\n }\n\n public get(): T {\n if (!isBackground()) {\n throw new Error(`Service \"${this.name}\" can be getting only from background context.`);\n }\n\n return super.get();\n }\n}\n","import BaseTransport from \"./BaseTransport\";\n\nimport type {DeepAsyncProxy} from \"@typing/helpers\";\nimport type {TransportDictionary, TransportName} from \"@typing/transport\";\n\nexport default abstract class<\n N extends TransportName,\n T = DeepAsyncProxy<TransportDictionary[N]>,\n> extends BaseTransport<N, T> {\n protected abstract apply(args: any[], path?: string): any;\n\n protected createProxy(path?: string): T {\n const wrapped = () => {};\n\n const proxy = new Proxy(wrapped, {\n apply: async (_target, _thisArg, args) => this.apply(args, path),\n\n get: (_target, propertyName, receiver) => {\n if (propertyName === \"__proxy\" || typeof propertyName !== \"string\") {\n return Reflect.get(wrapped, propertyName, receiver);\n }\n\n const newPath = path == null ? propertyName : `${path}.${String(propertyName)}`;\n\n return this.createProxy(newPath);\n },\n });\n\n // @ts-expect-error — Adding a hidden property\n proxy.__proxy = true;\n\n return proxy as unknown as T;\n }\n\n public get(): T {\n return this.createProxy();\n }\n}\n","import {nanoid} from \"nanoid\";\nimport {\n MessageBody,\n MessageData,\n MessageDictionary,\n MessageGeneralHandler,\n MessageMapHandler,\n MessageProvider,\n MessageResponse,\n MessageTargetHandler,\n MessageType,\n} from \"@typing/message\";\n\nexport default abstract class AbstractMessage<T extends MessageDictionary, TOptions>\n implements MessageProvider<T, TOptions>\n{\n public abstract send<K extends MessageType<T>>(\n type: K,\n data: MessageData<T, K>,\n options?: TOptions\n ): Promise<MessageResponse<T, K>>;\n\n public abstract watch<K extends MessageType<T>>(type: K, handler: MessageTargetHandler<T, K>): () => void;\n\n public abstract watch(map: MessageMapHandler<T>): () => void;\n\n public abstract watch<K extends MessageType<T>>(general: MessageGeneralHandler<T, K>): () => void;\n\n protected buildMessage<K extends MessageType<T>>(type: K, data: MessageData<T, K>): MessageBody<T, K> {\n return {\n id: nanoid(),\n type,\n data,\n timestamp: Date.now(),\n };\n }\n}\n","export const MessageGlobalKey = \"adnbnMessage\";\n\nexport const MessageTypeSeparator = \":\";\n\nexport type MessageSender = chrome.runtime.MessageSender;\n\nexport interface MessageDictionary {\n [key: string]: (data: any) => any;\n}\n\nexport type MessageType<T extends MessageDictionary> = Extract<keyof T, string>;\nexport type MessageData<T extends MessageDictionary, K extends MessageType<T>> = Parameters<T[K]>[0];\nexport type MessageResponse<T extends MessageDictionary, K extends MessageType<T>> = ReturnType<T[K]>;\n\nexport type MessageTargetHandler<T extends MessageDictionary, K extends MessageType<T>> = (\n data: MessageData<T, K>,\n sender: MessageSender\n) => MessageResponse<T, K>;\nexport type MessageMapHandler<T extends MessageDictionary> = {[K in MessageType<T>]?: MessageTargetHandler<T, K>};\nexport type MessageGeneralHandler<T extends MessageDictionary, K extends MessageType<T>> = (\n type: K,\n data: MessageData<T, K>,\n sender: MessageSender\n) => any;\n\nexport interface MessageBody<T extends MessageDictionary, K extends MessageType<T>> {\n id: string;\n type: K;\n data: MessageData<T, K>;\n timestamp: number;\n}\n\nexport interface MessageProvider<T extends MessageDictionary, TOptions = void> {\n send<K extends MessageType<T>>(\n type: K,\n data: MessageData<T, K>,\n options?: TOptions\n ): Promise<MessageResponse<T, K>>;\n\n watch<K extends MessageType<T>>(type: K, handler: MessageTargetHandler<T, K>): () => void;\n\n watch(map: MessageMapHandler<T>): () => void;\n\n watch<K extends MessageType<T>>(general: MessageGeneralHandler<T, K>): () => void;\n}\n\nexport interface MessageHandler<T extends MessageDictionary> {\n run(\n type: MessageType<T>,\n data: MessageData<T, MessageType<T>>,\n sender: MessageSender\n ): MessageResponse<T, MessageType<T>> | undefined;\n}\n","import {onMessage} from \"@adnbn/browser\";\n\nimport {\n MessageBody,\n MessageDictionary,\n MessageGlobalKey,\n MessageHandler,\n MessageSender,\n MessageType,\n} from \"@typing/message\";\n\nexport default class MessageManager<T extends MessageDictionary> {\n private handlers: Set<MessageHandler<T>> = new Set();\n private unsubscribe: (() => void) | null = null;\n\n public static getInstance<T extends MessageDictionary>(): MessageManager<T> {\n return (globalThis[MessageGlobalKey] ??= new MessageManager<T>());\n }\n\n constructor() {\n this.listener = this.listener.bind(this);\n }\n\n public add(handler: MessageHandler<T>) {\n this.handlers.add(handler);\n this.updateListener();\n }\n\n public remove(handler: MessageHandler<T>) {\n this.handlers.delete(handler);\n this.updateListener();\n }\n\n public clear() {\n this.handlers = new Set();\n this.updateListener();\n }\n\n private updateListener() {\n if (this.handlers.size > 0 && !this.unsubscribe) {\n this.unsubscribe = onMessage(this.listener);\n } else if (this.handlers.size === 0 && this.unsubscribe) {\n this.unsubscribe();\n this.unsubscribe = null;\n }\n }\n\n private listener<K extends MessageType<T>>(\n message: MessageBody<T, K>,\n sender: MessageSender,\n sendResponse: (response?: any) => void\n ): boolean | void {\n if (!message || typeof message !== \"object\" || !message.type) return;\n\n const results: Promise<any>[] = [];\n\n for (const handler of this.handlers) {\n try {\n const result = handler.run(message.type, message.data, sender);\n if (result !== undefined) {\n results.push(Promise.resolve(result));\n }\n } catch (err) {\n console.error(\"Message handler error:\", err);\n }\n }\n\n if (results.length > 1) {\n throw new Error(\n `Message type \"${message.type}\" has multiple handlers returning a response. Only one response is allowed.`\n );\n }\n\n if (results.length === 1) {\n results[0].then(sendResponse);\n return true;\n }\n }\n}\n","import {\n MessageData,\n MessageDictionary,\n MessageHandler,\n MessageResponse,\n MessageSender,\n MessageType,\n} from \"@typing/message\";\n\nexport default abstract class AbstractHandler<T extends MessageDictionary> implements MessageHandler<T> {\n public abstract run(\n type: MessageType<T>,\n data: MessageData<T, MessageType<T>>,\n sender: MessageSender\n ): MessageResponse<T, MessageType<T>> | undefined;\n}\n","import AbstractHandler from \"./AbstractHandler\";\nimport {\n MessageData,\n MessageDictionary,\n MessageResponse,\n MessageSender,\n MessageTargetHandler,\n MessageType,\n} from \"@typing/message\";\n\nexport default class SingleHandler<T extends MessageDictionary> extends AbstractHandler<T> {\n constructor(\n private messageType: MessageType<T>,\n private handler: MessageTargetHandler<T, MessageType<T>>\n ) {\n super();\n }\n\n public run(\n type: MessageType<T>,\n data: MessageData<T, MessageType<T>>,\n sender: MessageSender\n ): MessageResponse<T, MessageType<T>> | undefined {\n if (type === this.messageType) {\n return this.handler(data, sender);\n }\n }\n}\n","import AbstractHandler from \"./AbstractHandler\";\nimport {\n MessageData,\n MessageDictionary,\n MessageMapHandler,\n MessageResponse,\n MessageSender,\n MessageType,\n} from \"@typing/message\";\n\nexport default class MapHandler<T extends MessageDictionary> extends AbstractHandler<T> {\n constructor(private map: MessageMapHandler<T>) {\n super();\n }\n\n public run(\n type: MessageType<T>,\n data: MessageData<T, MessageType<T>>,\n sender: MessageSender\n ): MessageResponse<T, MessageType<T>> | undefined {\n const handler = this.map[type];\n if (handler) {\n if (typeof handler === \"function\") {\n return handler(data, sender);\n } else {\n throw new Error(`Handler for type \"${type}\" in object of handlers must be a function`);\n }\n }\n }\n}\n","import AbstractHandler from \"./AbstractHandler\";\nimport {\n MessageData,\n MessageDictionary,\n MessageGeneralHandler,\n MessageResponse,\n MessageSender,\n MessageType,\n} from \"@typing/message\";\n\nexport default class GeneralHandler<T extends MessageDictionary, K extends MessageType<T>> extends AbstractHandler<T> {\n constructor(private generalHandler: MessageGeneralHandler<T, K>) {\n super();\n }\n\n public run(\n type: K,\n data: MessageData<T, MessageType<T>>,\n sender: MessageSender\n ): MessageResponse<T, MessageType<T>> | undefined {\n return this.generalHandler(type, data, sender);\n }\n}\n","import {sendMessage, sendTabMessage} from \"@adnbn/browser\";\n\nimport {\n MessageData,\n MessageDictionary,\n MessageGeneralHandler,\n MessageHandler,\n MessageMapHandler,\n MessageResponse,\n MessageTargetHandler,\n MessageType,\n} from \"@typing/message\";\n\nimport AbstractMessage from \"./AbstractMessage\";\nimport MessageManager from \"../MessageManager\";\n\nimport {GeneralHandler, MapHandler, SingleHandler} from \"../handlers\";\n\nexport type MessageSendOptions = number | {tabId: number; frameId?: number; documentId?: string};\n\nexport default class Message<T extends MessageDictionary> extends AbstractMessage<T, MessageSendOptions> {\n private static instance: Message<MessageDictionary> | null = null;\n\n public static getInstance<T extends MessageDictionary>() {\n return (this.instance ??= new Message<T>());\n }\n\n protected get manager(): MessageManager<T> {\n return MessageManager.getInstance<T>();\n }\n\n public send<K extends MessageType<T>>(\n type: K,\n data: MessageData<T, K>,\n options?: MessageSendOptions\n ): Promise<MessageResponse<T, K>> {\n const message = this.buildMessage(type, data);\n\n if (options) {\n if (typeof options === \"number\") {\n return sendTabMessage(options, message);\n }\n\n const {tabId, ...other} = options;\n\n return sendTabMessage(tabId, message, other);\n }\n\n return sendMessage(message);\n }\n\n public watch<K extends MessageType<T>>(\n arg1: K | MessageMapHandler<T> | MessageGeneralHandler<T, K>,\n arg2?: MessageTargetHandler<T, K>\n ): () => void {\n let handler: MessageHandler<T>;\n\n if (typeof arg1 === \"function\") {\n handler = new GeneralHandler<T, K>(arg1);\n } else if (typeof arg1 === \"object\" && arg2 === undefined) {\n handler = new MapHandler<T>(arg1);\n } else if (typeof arg1 === \"string\" && arg2) {\n handler = new SingleHandler<T>(arg1, arg2);\n } else {\n throw new Error(\"Invalid arguments passed to watch()\");\n }\n\n this.manager.add(handler);\n\n return () => this.manager.remove(handler);\n }\n}\n","import {Message, MessageSendOptions} from \"@message/providers\";\n\nimport type {MessageDictionary, MessageProvider} from \"@typing/message\";\nimport type {TransportMessage as TransportMessageContract, TransportMessageData} from \"@typing/transport\";\n\nexport default abstract class TransportMessage implements TransportMessageContract {\n private message: MessageProvider<MessageDictionary, MessageSendOptions> = new Message();\n\n protected abstract readonly key: string;\n\n public async send(data: TransportMessageData) {\n return this.message.send(this.key, data);\n }\n\n public watch(handler: (data: TransportMessageData) => any): void {\n this.message.watch(this.key, handler);\n }\n}\n","import TransportMessage from \"@transport/TransportMessage\";\n\nimport {MessageTypeSeparator} from \"@typing/message\";\n\nexport default class ServiceMessage extends TransportMessage {\n protected readonly key: string;\n\n constructor(name: string) {\n super();\n this.key = `service${MessageTypeSeparator}${name}`;\n }\n}\n","import {isBackground} from \"@adnbn/browser\";\n\nimport ProxyTransport from \"@transport/ProxyTransport\";\n\nimport ServiceManager from \"../ServiceManager\";\nimport ServiceMessage from \"../ServiceMessage\";\n\nimport type {DeepAsyncProxy} from \"@typing/helpers\";\nimport type {TransportDictionary, TransportManager, TransportMessage, TransportName} from \"@typing/transport\";\n\nexport default class<N extends TransportName, T = DeepAsyncProxy<TransportDictionary[N]>> extends ProxyTransport<N, T> {\n protected message: TransportMessage;\n\n constructor(name: N) {\n super(name);\n this.message = new ServiceMessage(name);\n }\n\n protected manager(): TransportManager {\n return ServiceManager.getInstance();\n }\n\n protected async apply(args: any[], path?: string): Promise<any> {\n return this.message.send({path, args});\n }\n\n public get(): T {\n if (isBackground()) {\n throw new Error(\n `You are trying to get proxy service \"${this.name}\" from background. You can get original service instead`\n );\n }\n\n return super.get();\n }\n}\n","import get from \"get-value\";\n\nimport BaseTransport from \"./BaseTransport\";\n\nimport type {TransportDictionary, TransportMessage, TransportName, TransportRegister} from \"@typing/transport\";\n\n// prettier-ignore\nexport default abstract class<\n N extends TransportName,\n T extends object = TransportDictionary[N],\n A extends any[] = []\n> extends BaseTransport<N, T> implements TransportRegister<T, A> {\n protected constructor(\n name: N,\n protected readonly init: (...args: A) => T\n ) {\n super(name);\n }\n\n protected abstract message(): TransportMessage;\n\n public register(...args: A) {\n if (this.manager().has(this.name)) {\n throw new Error(`A instance with name \"${this.name}\" already exists. The name must be unique.`);\n }\n\n const instance = this.init(...args);\n\n this.manager().add(this.name, instance);\n\n this.message().watch(async ({path, args}) => {\n try {\n const property = path == null ? instance : get(instance, path);\n\n if (property === undefined) {\n throw new Error(`Property not found at path \"${path}\" in \"${this.name}\"`);\n }\n\n if (typeof property === \"function\") {\n return await property.apply(instance, args);\n }\n\n return property;\n } catch (error) {\n console.error(\"register() error\", error);\n\n throw error;\n }\n });\n\n return instance;\n }\n}\n","import {isBackground} from \"@adnbn/browser\";\n\nimport RegisterTransport from \"@transport/RegisterTransport\";\n\nimport ServiceMessage from \"../ServiceMessage\";\nimport ServiceManager from \"../ServiceManager\";\n\nimport type {TransportDictionary, TransportName} from \"@typing/transport\";\n\nexport default class<\n N extends TransportName,\n T extends object = TransportDictionary[N],\n A extends any[] = [],\n> extends RegisterTransport<N, T, A> {\n constructor(\n name: N,\n protected readonly init: (...args: A) => T\n ) {\n super(name, init);\n }\n\n protected message() {\n return new ServiceMessage(this.name);\n }\n\n protected manager() {\n return ServiceManager.getInstance();\n }\n\n public get(): T {\n if (!isBackground()) {\n throw new Error(`Service \"${this.name}\" can be getting only from background context.`);\n }\n\n return super.get();\n }\n}\n","import {ProxyService, RegisterService, Service} from \"./providers\";\n\nimport type {\n TransportDictionary,\n TransportName,\n TransportProxyTarget as ServiceProxyTarget,\n TransportTarget as ServiceTarget,\n} from \"@typing/transport\";\n\nexport {type ServiceTarget, type ServiceProxyTarget, ProxyService, RegisterService};\n\nexport const getService = <N extends TransportName>(name: N): TransportDictionary[N] => {\n return new Service<N>(name).get();\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/transport/BaseTransport.ts","../../src/transport/TransportManager.ts","../../src/types/service.ts","../../src/service/ServiceManager.ts","../../src/service/providers/Service.ts","../../src/transport/ProxyTransport.ts","../../src/message/providers/AbstractMessage.ts","../../src/types/message.ts","../../src/message/MessageManager.ts","../../src/message/handlers/AbstractHandler.ts","../../src/message/handlers/SingleHandler.ts","../../src/message/handlers/MapHandler.ts","../../src/message/handlers/GeneralHandler.ts","../../src/message/providers/Message.ts","../../src/transport/TransportMessage.ts","../../src/service/ServiceMessage.ts","../../src/service/providers/ProxyService.ts","../../src/transport/RegisterTransport.ts","../../src/service/providers/RegisterService.ts","../../src/service/index.ts"],"names":["isBackground","nanoid","onMessage","sendTabMessage","sendMessage","args","get"],"mappings":"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","file":"index.cjs","sourcesContent":["import type {TransportDictionary, TransportManager, TransportName} from \"@typing/transport\";\n\nexport default abstract class<N extends TransportName, T = TransportDictionary[N]> {\n protected constructor(protected readonly name: N) {}\n\n protected abstract manager(): TransportManager;\n\n public get(): T {\n return this.manager().get(this.name);\n }\n\n public destroy(): void {\n this.manager().remove(this.name);\n }\n}\n","import type {TransportDictionary, TransportManager as TransportManagerContract, TransportName} from \"@typing/transport\";\n\nexport default abstract class TransportManager implements TransportManagerContract {\n private items = new Map<TransportName, TransportDictionary[TransportName]>();\n\n public add<K extends TransportName>(name: K, instance: TransportDictionary[K]): this {\n this.items.set(name, instance);\n\n return this;\n }\n\n public get<K extends TransportName>(name: K): TransportDictionary[K] | undefined {\n return this.items.get(name) as TransportDictionary[K] | undefined;\n }\n\n public has(name: TransportName): boolean {\n return this.items.has(name);\n }\n\n public remove<K extends TransportName>(name: K): TransportDictionary[K] | undefined {\n const service = this.get(name);\n\n this.items.delete(name);\n\n return service;\n }\n\n public clear(): this {\n this.items.clear();\n\n return this;\n }\n}\n","import {BackgroundConfig} from \"@typing/background\";\nimport {EntrypointOptions} from \"@typing/entrypoint\";\nimport {TransportConfig, TransportDefinition, TransportType} from \"@typing/transport\";\n\nexport const ServiceGlobalKey = \"adnbnService\";\n\nexport type ServiceConfig = TransportConfig & BackgroundConfig;\n\nexport type ServiceOptions = ServiceConfig & EntrypointOptions;\n\nexport type ServiceEntrypointOptions = Partial<ServiceOptions>;\n\nexport type ServiceDefinition<T extends TransportType> = TransportDefinition<ServiceOptions, T> &\n ServiceEntrypointOptions;\n\nexport type ServiceUnresolvedDefinition<T extends TransportType> = Partial<ServiceDefinition<T>>;\n","import TransportManager from \"@transport/TransportManager\";\n\nimport {ServiceGlobalKey} from \"@typing/service\";\n\nimport type {TransportManager as TransportManagerContract} from \"@typing/transport\";\n\nexport default class ServiceManager extends TransportManager {\n public static getInstance(): TransportManagerContract {\n return (globalThis[ServiceGlobalKey] ??= new ServiceManager());\n }\n}\n","import {isBackground} from \"@adnbn/browser\";\n\nimport BaseTransport from \"@transport/BaseTransport\";\n\nimport ServiceManager from \"../ServiceManager\";\n\nimport type {TransportDictionary, TransportManager, TransportName} from \"@typing/transport\";\n\nexport default class<N extends TransportName, T = TransportDictionary[N]> extends BaseTransport<N, T> {\n constructor(name: N) {\n super(name);\n }\n\n protected manager(): TransportManager {\n return ServiceManager.getInstance();\n }\n\n public get(): T {\n if (!isBackground()) {\n throw new Error(`Service \"${this.name}\" can be getting only from background context.`);\n }\n\n return super.get();\n }\n}\n","import BaseTransport from \"./BaseTransport\";\n\nimport type {DeepAsyncProxy} from \"@typing/helpers\";\nimport type {TransportDictionary, TransportName} from \"@typing/transport\";\n\nexport default abstract class<\n N extends TransportName,\n T = DeepAsyncProxy<TransportDictionary[N]>,\n> extends BaseTransport<N, T> {\n protected abstract apply(args: any[], path?: string): any;\n\n protected createProxy(path?: string): T {\n const wrapped = () => {};\n\n const proxy = new Proxy(wrapped, {\n apply: async (_target, _thisArg, args) => this.apply(args, path),\n\n get: (_target, propertyName, receiver) => {\n if (propertyName === \"__proxy\" || typeof propertyName !== \"string\") {\n return Reflect.get(wrapped, propertyName, receiver);\n }\n\n const newPath = path == null ? propertyName : `${path}.${String(propertyName)}`;\n\n return this.createProxy(newPath);\n },\n });\n\n // @ts-expect-error — Adding a hidden property\n proxy.__proxy = true;\n\n return proxy as unknown as T;\n }\n\n public get(): T {\n return this.createProxy();\n }\n}\n","import {nanoid} from \"nanoid\";\nimport {\n MessageBody,\n MessageData,\n MessageDictionary,\n MessageGeneralHandler,\n MessageMapHandler,\n MessageProvider,\n MessageResponse,\n MessageTargetHandler,\n MessageType,\n} from \"@typing/message\";\n\nexport default abstract class AbstractMessage<T extends MessageDictionary, TOptions>\n implements MessageProvider<T, TOptions>\n{\n public abstract send<K extends MessageType<T>>(\n type: K,\n data: MessageData<T, K>,\n options?: TOptions\n ): Promise<MessageResponse<T, K>>;\n\n public abstract watch<K extends MessageType<T>>(type: K, handler: MessageTargetHandler<T, K>): () => void;\n\n public abstract watch(map: MessageMapHandler<T>): () => void;\n\n public abstract watch<K extends MessageType<T>>(general: MessageGeneralHandler<T, K>): () => void;\n\n protected buildMessage<K extends MessageType<T>>(type: K, data: MessageData<T, K>): MessageBody<T, K> {\n return {\n id: nanoid(),\n type,\n data,\n timestamp: Date.now(),\n };\n }\n}\n","export const MessageGlobalKey = \"adnbnMessage\";\n\nexport const MessageTypeSeparator = \":\";\n\nexport const MessageSenderProperty = \"_sender\";\n\nexport type MessageSender = chrome.runtime.MessageSender;\n\nexport interface MessageDictionary {\n [key: string]: (data: any) => any;\n}\n\nexport interface MessageSenderAware {\n [MessageSenderProperty]?: MessageSender;\n}\n\nexport type MessageType<T extends MessageDictionary> = Extract<keyof T, string>;\nexport type MessageData<T extends MessageDictionary, K extends MessageType<T>> = Parameters<T[K]>[0];\nexport type MessageResponse<T extends MessageDictionary, K extends MessageType<T>> = ReturnType<T[K]>;\n\nexport type MessageTargetHandler<T extends MessageDictionary, K extends MessageType<T>> = (\n data: MessageData<T, K>,\n sender: MessageSender\n) => MessageResponse<T, K>;\nexport type MessageMapHandler<T extends MessageDictionary> = {[K in MessageType<T>]?: MessageTargetHandler<T, K>};\nexport type MessageGeneralHandler<T extends MessageDictionary, K extends MessageType<T>> = (\n type: K,\n data: MessageData<T, K>,\n sender: MessageSender\n) => any;\n\nexport interface MessageBody<T extends MessageDictionary, K extends MessageType<T>> {\n id: string;\n type: K;\n data: MessageData<T, K>;\n timestamp: number;\n}\n\nexport interface MessageProvider<T extends MessageDictionary, TOptions = void> {\n send<K extends MessageType<T>>(\n type: K,\n data: MessageData<T, K>,\n options?: TOptions\n ): Promise<MessageResponse<T, K>>;\n\n watch<K extends MessageType<T>>(type: K, handler: MessageTargetHandler<T, K>): () => void;\n\n watch(map: MessageMapHandler<T>): () => void;\n\n watch<K extends MessageType<T>>(general: MessageGeneralHandler<T, K>): () => void;\n}\n\nexport interface MessageHandler<T extends MessageDictionary> {\n run(\n type: MessageType<T>,\n data: MessageData<T, MessageType<T>>,\n sender: MessageSender\n ): MessageResponse<T, MessageType<T>> | undefined;\n}\n","import {onMessage} from \"@adnbn/browser\";\n\nimport {\n MessageBody,\n MessageDictionary,\n MessageGlobalKey,\n MessageHandler,\n MessageSender,\n MessageType,\n} from \"@typing/message\";\n\nexport default class MessageManager<T extends MessageDictionary> {\n private handlers: Set<MessageHandler<T>> = new Set();\n private unsubscribe: (() => void) | null = null;\n\n public static getInstance<T extends MessageDictionary>(): MessageManager<T> {\n return (globalThis[MessageGlobalKey] ??= new MessageManager<T>());\n }\n\n constructor() {\n this.listener = this.listener.bind(this);\n }\n\n public add(handler: MessageHandler<T>) {\n this.handlers.add(handler);\n this.updateListener();\n }\n\n public remove(handler: MessageHandler<T>) {\n this.handlers.delete(handler);\n this.updateListener();\n }\n\n public clear() {\n this.handlers = new Set();\n this.updateListener();\n }\n\n private updateListener() {\n if (this.handlers.size > 0 && !this.unsubscribe) {\n this.unsubscribe = onMessage(this.listener);\n } else if (this.handlers.size === 0 && this.unsubscribe) {\n this.unsubscribe();\n this.unsubscribe = null;\n }\n }\n\n private listener<K extends MessageType<T>>(\n message: MessageBody<T, K>,\n sender: MessageSender,\n sendResponse: (response?: any) => void\n ): boolean | void {\n if (!message || typeof message !== \"object\" || !message.type) return;\n\n const results: Promise<any>[] = [];\n\n for (const handler of this.handlers) {\n try {\n const result = handler.run(message.type, message.data, sender);\n if (result !== undefined) {\n results.push(Promise.resolve(result));\n }\n } catch (err) {\n console.error(\"Message handler error:\", err);\n }\n }\n\n if (results.length > 1) {\n throw new Error(\n `Message type \"${message.type}\" has multiple handlers returning a response. Only one response is allowed.`\n );\n }\n\n if (results.length === 1) {\n results[0].then(sendResponse);\n return true;\n }\n }\n}\n","import {\n MessageData,\n MessageDictionary,\n MessageHandler,\n MessageResponse,\n MessageSender,\n MessageType,\n} from \"@typing/message\";\n\nexport default abstract class AbstractHandler<T extends MessageDictionary> implements MessageHandler<T> {\n public abstract run(\n type: MessageType<T>,\n data: MessageData<T, MessageType<T>>,\n sender: MessageSender\n ): MessageResponse<T, MessageType<T>> | undefined;\n}\n","import AbstractHandler from \"./AbstractHandler\";\nimport {\n MessageData,\n MessageDictionary,\n MessageResponse,\n MessageSender,\n MessageTargetHandler,\n MessageType,\n} from \"@typing/message\";\n\nexport default class SingleHandler<T extends MessageDictionary> extends AbstractHandler<T> {\n constructor(\n private messageType: MessageType<T>,\n private handler: MessageTargetHandler<T, MessageType<T>>\n ) {\n super();\n }\n\n public run(\n type: MessageType<T>,\n data: MessageData<T, MessageType<T>>,\n sender: MessageSender\n ): MessageResponse<T, MessageType<T>> | undefined {\n if (type === this.messageType) {\n return this.handler(data, sender);\n }\n }\n}\n","import AbstractHandler from \"./AbstractHandler\";\nimport {\n MessageData,\n MessageDictionary,\n MessageMapHandler,\n MessageResponse,\n MessageSender,\n MessageType,\n} from \"@typing/message\";\n\nexport default class MapHandler<T extends MessageDictionary> extends AbstractHandler<T> {\n constructor(private map: MessageMapHandler<T>) {\n super();\n }\n\n public run(\n type: MessageType<T>,\n data: MessageData<T, MessageType<T>>,\n sender: MessageSender\n ): MessageResponse<T, MessageType<T>> | undefined {\n const handler = this.map[type];\n if (handler) {\n if (typeof handler === \"function\") {\n return handler(data, sender);\n } else {\n throw new Error(`Handler for type \"${type}\" in object of handlers must be a function`);\n }\n }\n }\n}\n","import AbstractHandler from \"./AbstractHandler\";\nimport {\n MessageData,\n MessageDictionary,\n MessageGeneralHandler,\n MessageResponse,\n MessageSender,\n MessageType,\n} from \"@typing/message\";\n\nexport default class GeneralHandler<T extends MessageDictionary, K extends MessageType<T>> extends AbstractHandler<T> {\n constructor(private generalHandler: MessageGeneralHandler<T, K>) {\n super();\n }\n\n public run(\n type: K,\n data: MessageData<T, MessageType<T>>,\n sender: MessageSender\n ): MessageResponse<T, MessageType<T>> | undefined {\n return this.generalHandler(type, data, sender);\n }\n}\n","import {sendMessage, sendTabMessage} from \"@adnbn/browser\";\n\nimport {\n MessageData,\n MessageDictionary,\n MessageGeneralHandler,\n MessageHandler,\n MessageMapHandler,\n MessageResponse,\n MessageTargetHandler,\n MessageType,\n} from \"@typing/message\";\n\nimport AbstractMessage from \"./AbstractMessage\";\nimport MessageManager from \"../MessageManager\";\n\nimport {GeneralHandler, MapHandler, SingleHandler} from \"../handlers\";\n\nexport type MessageSendOptions = number | {tabId: number; frameId?: number; documentId?: string};\n\nexport default class Message<T extends MessageDictionary> extends AbstractMessage<T, MessageSendOptions> {\n private static instance: Message<MessageDictionary> | null = null;\n\n public static getInstance<T extends MessageDictionary>() {\n return (this.instance ??= new Message<T>());\n }\n\n protected get manager(): MessageManager<T> {\n return MessageManager.getInstance<T>();\n }\n\n public send<K extends MessageType<T>>(\n type: K,\n data: MessageData<T, K>,\n options?: MessageSendOptions\n ): Promise<MessageResponse<T, K>> {\n const message = this.buildMessage(type, data);\n\n if (options) {\n if (typeof options === \"number\") {\n return sendTabMessage(options, message);\n }\n\n const {tabId, ...other} = options;\n\n return sendTabMessage(tabId, message, other);\n }\n\n return sendMessage(message);\n }\n\n public watch<K extends MessageType<T>>(\n arg1: K | MessageMapHandler<T> | MessageGeneralHandler<T, K>,\n arg2?: MessageTargetHandler<T, K>\n ): () => void {\n let handler: MessageHandler<T>;\n\n if (typeof arg1 === \"function\") {\n handler = new GeneralHandler<T, K>(arg1);\n } else if (typeof arg1 === \"object\" && arg2 === undefined) {\n handler = new MapHandler<T>(arg1);\n } else if (typeof arg1 === \"string\" && arg2) {\n handler = new SingleHandler<T>(arg1, arg2);\n } else {\n throw new Error(\"Invalid arguments passed to watch()\");\n }\n\n this.manager.add(handler);\n\n return () => this.manager.remove(handler);\n }\n}\n","import {Message, MessageSendOptions} from \"@message/providers\";\n\nimport {MessageDictionary, MessageProvider, MessageSender} from \"@typing/message\";\nimport type {TransportMessage as TransportMessageContract, TransportMessageData} from \"@typing/transport\";\n\nexport default abstract class TransportMessage implements TransportMessageContract {\n protected message: MessageProvider<MessageDictionary, MessageSendOptions> = new Message();\n\n protected abstract readonly key: string;\n\n public async send(data: TransportMessageData) {\n return this.message.send(this.key, data);\n }\n\n public watch(handler: (data: TransportMessageData, sender: MessageSender) => any): void {\n this.message.watch(this.key, handler);\n }\n}\n","import TransportMessage from \"@transport/TransportMessage\";\n\nimport {MessageTypeSeparator} from \"@typing/message\";\n\nexport default class ServiceMessage extends TransportMessage {\n protected readonly key: string;\n\n constructor(name: string) {\n super();\n this.key = `service${MessageTypeSeparator}${name}`;\n }\n}\n","import {isBackground} from \"@adnbn/browser\";\n\nimport ProxyTransport from \"@transport/ProxyTransport\";\n\nimport ServiceManager from \"../ServiceManager\";\nimport ServiceMessage from \"../ServiceMessage\";\n\nimport type {DeepAsyncProxy} from \"@typing/helpers\";\nimport type {TransportDictionary, TransportManager, TransportMessage, TransportName} from \"@typing/transport\";\n\nexport default class<N extends TransportName, T = DeepAsyncProxy<TransportDictionary[N]>> extends ProxyTransport<N, T> {\n protected message: TransportMessage;\n\n constructor(name: N) {\n super(name);\n this.message = new ServiceMessage(name);\n }\n\n protected manager(): TransportManager {\n return ServiceManager.getInstance();\n }\n\n protected async apply(args: any[], path?: string): Promise<any> {\n return this.message.send({path, args});\n }\n\n public get(): T {\n if (isBackground()) {\n throw new Error(\n `You are trying to get proxy service \"${this.name}\" from background. You can get original service instead`\n );\n }\n\n return super.get();\n }\n}\n","import get from \"get-value\";\n\nimport BaseTransport from \"./BaseTransport\";\n\nimport {TransportDictionary, TransportMessage, TransportName, TransportRegister} from \"@typing/transport\";\nimport {MessageSender, MessageSenderProperty} from \"@typing/message\";\n\n// prettier-ignore\nexport default abstract class<\n N extends TransportName,\n T extends object = TransportDictionary[N],\n A extends any[] = []\n> extends BaseTransport<N, T> implements TransportRegister<T, A> {\n protected constructor(\n name: N,\n protected readonly init: (...args: A) => T\n ) {\n super(name);\n }\n\n protected abstract message(): TransportMessage;\n\n public register(...args: A) {\n if (this.manager().has(this.name)) {\n throw new Error(`A instance with name \"${this.name}\" already exists. The name must be unique.`);\n }\n\n const instance = this.init(...args);\n\n this.manager().add(this.name, instance);\n\n this.message().watch(async ({path, args}, sender) => {\n try {\n this.injectSender(instance, sender);\n\n const property = path == null ? instance : get(instance, path);\n\n if (property === undefined) {\n throw new Error(`Property not found at path \"${path}\" in \"${this.name}\"`);\n }\n\n let result: any;\n\n if (typeof property === \"function\") {\n result = await property.apply(instance, args);\n } else {\n result = property;\n }\n\n this.clearSender(instance);\n\n return result;\n } catch (error) {\n console.error(`Error during message handler registration for transport \"${this.name}\"`, error);\n\n this.clearSender(instance);\n\n throw error;\n }\n });\n\n return instance;\n }\n\n private injectSender(instance: T, sender: MessageSender): void {\n if (!Object.getOwnPropertyDescriptor(instance, MessageSenderProperty)) {\n Object.defineProperty(instance, MessageSenderProperty, {\n configurable: true,\n enumerable: false,\n writable: true,\n value: undefined,\n });\n }\n\n (instance as any)[MessageSenderProperty] = sender;\n }\n\n private clearSender(instance: T): void {\n if (Object.getOwnPropertyDescriptor(instance, MessageSenderProperty)) {\n (instance as any)[MessageSenderProperty] = undefined;\n }\n }\n}\n","import {isBackground} from \"@adnbn/browser\";\n\nimport RegisterTransport from \"@transport/RegisterTransport\";\n\nimport ServiceMessage from \"../ServiceMessage\";\nimport ServiceManager from \"../ServiceManager\";\n\nimport type {TransportDictionary, TransportName} from \"@typing/transport\";\n\nexport default class<\n N extends TransportName,\n T extends object = TransportDictionary[N],\n A extends any[] = [],\n> extends RegisterTransport<N, T, A> {\n constructor(\n name: N,\n protected readonly init: (...args: A) => T\n ) {\n super(name, init);\n }\n\n protected message() {\n return new ServiceMessage(this.name);\n }\n\n protected manager() {\n return ServiceManager.getInstance();\n }\n\n public get(): T {\n if (!isBackground()) {\n throw new Error(`Service \"${this.name}\" can be getting only from background context.`);\n }\n\n return super.get();\n }\n}\n","import {ProxyService, RegisterService, Service} from \"./providers\";\n\nimport type {\n TransportDictionary,\n TransportName,\n TransportProxyTarget as ServiceProxyTarget,\n TransportTarget as ServiceTarget,\n} from \"@typing/transport\";\n\nexport {type ServiceTarget, type ServiceProxyTarget, ProxyService, RegisterService};\n\nexport const getService = <N extends TransportName>(name: N): TransportDictionary[N] => {\n return new Service<N>(name).get();\n};\n"]}
|
package/dist/service/index.d.mts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import { T as TransportName, a as TransportDictionary, n as TransportMessage, d as TransportManager } from '../transport-
|
|
2
|
-
export { c as ServiceProxyTarget, b as ServiceTarget } from '../transport-
|
|
3
|
-
import { e as export_default$2 } from '../ProxyTransport-
|
|
4
|
-
import { D as DeepAsyncProxy } from '../helpers-
|
|
5
|
-
import { T as TransportMessage$1, e as export_default$3 } from '../TransportMessage-
|
|
1
|
+
import { T as TransportName, a as TransportDictionary, n as TransportMessage, d as TransportManager } from '../transport-BrbirhXv.mjs';
|
|
2
|
+
export { c as ServiceProxyTarget, b as ServiceTarget } from '../transport-BrbirhXv.mjs';
|
|
3
|
+
import { e as export_default$2 } from '../ProxyTransport-35rU8xqa.mjs';
|
|
4
|
+
import { D as DeepAsyncProxy } from '../helpers-YDFORuZz.mjs';
|
|
5
|
+
import { T as TransportMessage$1, e as export_default$3 } from '../TransportMessage-CIKrv3DG.mjs';
|
|
6
6
|
import 'utility-types';
|
|
7
|
-
import '../
|
|
7
|
+
import '../message-jsmkeGHC.mjs';
|
|
8
|
+
import '../BaseTransport-DNZ28gFF.mjs';
|
|
9
|
+
import '../Message-Bnritk3D.mjs';
|
|
8
10
|
|
|
9
11
|
declare class export_default$1<N extends TransportName, T = DeepAsyncProxy<TransportDictionary[N]>> extends export_default$2<N, T> {
|
|
10
12
|
protected message: TransportMessage;
|
package/dist/service/index.d.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import { T as TransportName, a as TransportDictionary, n as TransportMessage, d as TransportManager } from '../transport-
|
|
2
|
-
export { c as ServiceProxyTarget, b as ServiceTarget } from '../transport-
|
|
3
|
-
import { e as export_default$2 } from '../ProxyTransport-
|
|
4
|
-
import { D as DeepAsyncProxy } from '../helpers-
|
|
5
|
-
import { T as TransportMessage$1, e as export_default$3 } from '../TransportMessage-
|
|
1
|
+
import { T as TransportName, a as TransportDictionary, n as TransportMessage, d as TransportManager } from '../transport-Co9Oxp0-.js';
|
|
2
|
+
export { c as ServiceProxyTarget, b as ServiceTarget } from '../transport-Co9Oxp0-.js';
|
|
3
|
+
import { e as export_default$2 } from '../ProxyTransport-D4jv5SFh.js';
|
|
4
|
+
import { D as DeepAsyncProxy } from '../helpers-YDFORuZz.js';
|
|
5
|
+
import { T as TransportMessage$1, e as export_default$3 } from '../TransportMessage-CsObvTPq.js';
|
|
6
6
|
import 'utility-types';
|
|
7
|
-
import '../
|
|
7
|
+
import '../message-jsmkeGHC.js';
|
|
8
|
+
import '../BaseTransport-Ecy2Kzti.js';
|
|
9
|
+
import '../Message-DFDaS7mV.js';
|
|
8
10
|
|
|
9
11
|
declare class export_default$1<N extends TransportName, T = DeepAsyncProxy<TransportDictionary[N]>> extends export_default$2<N, T> {
|
|
10
12
|
protected message: TransportMessage;
|
package/dist/service/index.js
CHANGED
|
@@ -104,6 +104,7 @@ var AbstractMessage = class {
|
|
|
104
104
|
// src/types/message.ts
|
|
105
105
|
var MessageGlobalKey = "adnbnMessage";
|
|
106
106
|
var MessageTypeSeparator = ":";
|
|
107
|
+
var MessageSenderProperty = "_sender";
|
|
107
108
|
|
|
108
109
|
// src/message/MessageManager.ts
|
|
109
110
|
var MessageManager = class _MessageManager {
|
|
@@ -297,23 +298,45 @@ var RegisterTransport_default = class extends BaseTransport_default {
|
|
|
297
298
|
}
|
|
298
299
|
const instance = this.init(...args);
|
|
299
300
|
this.manager().add(this.name, instance);
|
|
300
|
-
this.message().watch(async ({ path, args: args2 }) => {
|
|
301
|
+
this.message().watch(async ({ path, args: args2 }, sender) => {
|
|
301
302
|
try {
|
|
303
|
+
this.injectSender(instance, sender);
|
|
302
304
|
const property = path == null ? instance : get(instance, path);
|
|
303
305
|
if (property === void 0) {
|
|
304
306
|
throw new Error(`Property not found at path "${path}" in "${this.name}"`);
|
|
305
307
|
}
|
|
308
|
+
let result;
|
|
306
309
|
if (typeof property === "function") {
|
|
307
|
-
|
|
310
|
+
result = await property.apply(instance, args2);
|
|
311
|
+
} else {
|
|
312
|
+
result = property;
|
|
308
313
|
}
|
|
309
|
-
|
|
314
|
+
this.clearSender(instance);
|
|
315
|
+
return result;
|
|
310
316
|
} catch (error) {
|
|
311
|
-
console.error(
|
|
317
|
+
console.error(`Error during message handler registration for transport "${this.name}"`, error);
|
|
318
|
+
this.clearSender(instance);
|
|
312
319
|
throw error;
|
|
313
320
|
}
|
|
314
321
|
});
|
|
315
322
|
return instance;
|
|
316
323
|
}
|
|
324
|
+
injectSender(instance, sender) {
|
|
325
|
+
if (!Object.getOwnPropertyDescriptor(instance, MessageSenderProperty)) {
|
|
326
|
+
Object.defineProperty(instance, MessageSenderProperty, {
|
|
327
|
+
configurable: true,
|
|
328
|
+
enumerable: false,
|
|
329
|
+
writable: true,
|
|
330
|
+
value: void 0
|
|
331
|
+
});
|
|
332
|
+
}
|
|
333
|
+
instance[MessageSenderProperty] = sender;
|
|
334
|
+
}
|
|
335
|
+
clearSender(instance) {
|
|
336
|
+
if (Object.getOwnPropertyDescriptor(instance, MessageSenderProperty)) {
|
|
337
|
+
instance[MessageSenderProperty] = void 0;
|
|
338
|
+
}
|
|
339
|
+
}
|
|
317
340
|
};
|
|
318
341
|
|
|
319
342
|
// src/service/providers/RegisterService.ts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/transport/BaseTransport.ts","../../src/transport/TransportManager.ts","../../src/types/service.ts","../../src/service/ServiceManager.ts","../../src/service/providers/Service.ts","../../src/transport/ProxyTransport.ts","../../src/message/providers/AbstractMessage.ts","../../src/types/message.ts","../../src/message/MessageManager.ts","../../src/message/handlers/AbstractHandler.ts","../../src/message/handlers/SingleHandler.ts","../../src/message/handlers/MapHandler.ts","../../src/message/handlers/GeneralHandler.ts","../../src/message/providers/Message.ts","../../src/transport/TransportMessage.ts","../../src/service/ServiceMessage.ts","../../src/service/providers/ProxyService.ts","../../src/transport/RegisterTransport.ts","../../src/service/providers/RegisterService.ts","../../src/service/index.ts"],"names":["isBackground","args"],"mappings":"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","file":"index.js","sourcesContent":["import type {TransportDictionary, TransportManager, TransportName} from \"@typing/transport\";\n\nexport default abstract class<N extends TransportName, T = TransportDictionary[N]> {\n protected constructor(protected readonly name: N) {}\n\n protected abstract manager(): TransportManager;\n\n public get(): T {\n return this.manager().get(this.name);\n }\n\n public destroy(): void {\n this.manager().remove(this.name);\n }\n}\n","import type {TransportDictionary, TransportManager as TransportManagerContract, TransportName} from \"@typing/transport\";\n\nexport default abstract class TransportManager implements TransportManagerContract {\n private items = new Map<TransportName, TransportDictionary[TransportName]>();\n\n public add<K extends TransportName>(name: K, instance: TransportDictionary[K]): this {\n this.items.set(name, instance);\n\n return this;\n }\n\n public get<K extends TransportName>(name: K): TransportDictionary[K] | undefined {\n return this.items.get(name) as TransportDictionary[K] | undefined;\n }\n\n public has(name: TransportName): boolean {\n return this.items.has(name);\n }\n\n public remove<K extends TransportName>(name: K): TransportDictionary[K] | undefined {\n const service = this.get(name);\n\n this.items.delete(name);\n\n return service;\n }\n\n public clear(): this {\n this.items.clear();\n\n return this;\n }\n}\n","import {BackgroundConfig} from \"@typing/background\";\nimport {EntrypointOptions} from \"@typing/entrypoint\";\nimport {TransportConfig, TransportDefinition, TransportType} from \"@typing/transport\";\n\nexport const ServiceGlobalKey = \"adnbnService\";\n\nexport type ServiceConfig = TransportConfig & BackgroundConfig;\n\nexport type ServiceOptions = ServiceConfig & EntrypointOptions;\n\nexport type ServiceEntrypointOptions = Partial<ServiceOptions>;\n\nexport type ServiceDefinition<T extends TransportType> = TransportDefinition<ServiceOptions, T> &\n ServiceEntrypointOptions;\n\nexport type ServiceUnresolvedDefinition<T extends TransportType> = Partial<ServiceDefinition<T>>;\n","import TransportManager from \"@transport/TransportManager\";\n\nimport {ServiceGlobalKey} from \"@typing/service\";\n\nimport type {TransportManager as TransportManagerContract} from \"@typing/transport\";\n\nexport default class ServiceManager extends TransportManager {\n public static getInstance(): TransportManagerContract {\n return (globalThis[ServiceGlobalKey] ??= new ServiceManager());\n }\n}\n","import {isBackground} from \"@adnbn/browser\";\n\nimport BaseTransport from \"@transport/BaseTransport\";\n\nimport ServiceManager from \"../ServiceManager\";\n\nimport type {TransportDictionary, TransportManager, TransportName} from \"@typing/transport\";\n\nexport default class<N extends TransportName, T = TransportDictionary[N]> extends BaseTransport<N, T> {\n constructor(name: N) {\n super(name);\n }\n\n protected manager(): TransportManager {\n return ServiceManager.getInstance();\n }\n\n public get(): T {\n if (!isBackground()) {\n throw new Error(`Service \"${this.name}\" can be getting only from background context.`);\n }\n\n return super.get();\n }\n}\n","import BaseTransport from \"./BaseTransport\";\n\nimport type {DeepAsyncProxy} from \"@typing/helpers\";\nimport type {TransportDictionary, TransportName} from \"@typing/transport\";\n\nexport default abstract class<\n N extends TransportName,\n T = DeepAsyncProxy<TransportDictionary[N]>,\n> extends BaseTransport<N, T> {\n protected abstract apply(args: any[], path?: string): any;\n\n protected createProxy(path?: string): T {\n const wrapped = () => {};\n\n const proxy = new Proxy(wrapped, {\n apply: async (_target, _thisArg, args) => this.apply(args, path),\n\n get: (_target, propertyName, receiver) => {\n if (propertyName === \"__proxy\" || typeof propertyName !== \"string\") {\n return Reflect.get(wrapped, propertyName, receiver);\n }\n\n const newPath = path == null ? propertyName : `${path}.${String(propertyName)}`;\n\n return this.createProxy(newPath);\n },\n });\n\n // @ts-expect-error — Adding a hidden property\n proxy.__proxy = true;\n\n return proxy as unknown as T;\n }\n\n public get(): T {\n return this.createProxy();\n }\n}\n","import {nanoid} from \"nanoid\";\nimport {\n MessageBody,\n MessageData,\n MessageDictionary,\n MessageGeneralHandler,\n MessageMapHandler,\n MessageProvider,\n MessageResponse,\n MessageTargetHandler,\n MessageType,\n} from \"@typing/message\";\n\nexport default abstract class AbstractMessage<T extends MessageDictionary, TOptions>\n implements MessageProvider<T, TOptions>\n{\n public abstract send<K extends MessageType<T>>(\n type: K,\n data: MessageData<T, K>,\n options?: TOptions\n ): Promise<MessageResponse<T, K>>;\n\n public abstract watch<K extends MessageType<T>>(type: K, handler: MessageTargetHandler<T, K>): () => void;\n\n public abstract watch(map: MessageMapHandler<T>): () => void;\n\n public abstract watch<K extends MessageType<T>>(general: MessageGeneralHandler<T, K>): () => void;\n\n protected buildMessage<K extends MessageType<T>>(type: K, data: MessageData<T, K>): MessageBody<T, K> {\n return {\n id: nanoid(),\n type,\n data,\n timestamp: Date.now(),\n };\n }\n}\n","export const MessageGlobalKey = \"adnbnMessage\";\n\nexport const MessageTypeSeparator = \":\";\n\nexport type MessageSender = chrome.runtime.MessageSender;\n\nexport interface MessageDictionary {\n [key: string]: (data: any) => any;\n}\n\nexport type MessageType<T extends MessageDictionary> = Extract<keyof T, string>;\nexport type MessageData<T extends MessageDictionary, K extends MessageType<T>> = Parameters<T[K]>[0];\nexport type MessageResponse<T extends MessageDictionary, K extends MessageType<T>> = ReturnType<T[K]>;\n\nexport type MessageTargetHandler<T extends MessageDictionary, K extends MessageType<T>> = (\n data: MessageData<T, K>,\n sender: MessageSender\n) => MessageResponse<T, K>;\nexport type MessageMapHandler<T extends MessageDictionary> = {[K in MessageType<T>]?: MessageTargetHandler<T, K>};\nexport type MessageGeneralHandler<T extends MessageDictionary, K extends MessageType<T>> = (\n type: K,\n data: MessageData<T, K>,\n sender: MessageSender\n) => any;\n\nexport interface MessageBody<T extends MessageDictionary, K extends MessageType<T>> {\n id: string;\n type: K;\n data: MessageData<T, K>;\n timestamp: number;\n}\n\nexport interface MessageProvider<T extends MessageDictionary, TOptions = void> {\n send<K extends MessageType<T>>(\n type: K,\n data: MessageData<T, K>,\n options?: TOptions\n ): Promise<MessageResponse<T, K>>;\n\n watch<K extends MessageType<T>>(type: K, handler: MessageTargetHandler<T, K>): () => void;\n\n watch(map: MessageMapHandler<T>): () => void;\n\n watch<K extends MessageType<T>>(general: MessageGeneralHandler<T, K>): () => void;\n}\n\nexport interface MessageHandler<T extends MessageDictionary> {\n run(\n type: MessageType<T>,\n data: MessageData<T, MessageType<T>>,\n sender: MessageSender\n ): MessageResponse<T, MessageType<T>> | undefined;\n}\n","import {onMessage} from \"@adnbn/browser\";\n\nimport {\n MessageBody,\n MessageDictionary,\n MessageGlobalKey,\n MessageHandler,\n MessageSender,\n MessageType,\n} from \"@typing/message\";\n\nexport default class MessageManager<T extends MessageDictionary> {\n private handlers: Set<MessageHandler<T>> = new Set();\n private unsubscribe: (() => void) | null = null;\n\n public static getInstance<T extends MessageDictionary>(): MessageManager<T> {\n return (globalThis[MessageGlobalKey] ??= new MessageManager<T>());\n }\n\n constructor() {\n this.listener = this.listener.bind(this);\n }\n\n public add(handler: MessageHandler<T>) {\n this.handlers.add(handler);\n this.updateListener();\n }\n\n public remove(handler: MessageHandler<T>) {\n this.handlers.delete(handler);\n this.updateListener();\n }\n\n public clear() {\n this.handlers = new Set();\n this.updateListener();\n }\n\n private updateListener() {\n if (this.handlers.size > 0 && !this.unsubscribe) {\n this.unsubscribe = onMessage(this.listener);\n } else if (this.handlers.size === 0 && this.unsubscribe) {\n this.unsubscribe();\n this.unsubscribe = null;\n }\n }\n\n private listener<K extends MessageType<T>>(\n message: MessageBody<T, K>,\n sender: MessageSender,\n sendResponse: (response?: any) => void\n ): boolean | void {\n if (!message || typeof message !== \"object\" || !message.type) return;\n\n const results: Promise<any>[] = [];\n\n for (const handler of this.handlers) {\n try {\n const result = handler.run(message.type, message.data, sender);\n if (result !== undefined) {\n results.push(Promise.resolve(result));\n }\n } catch (err) {\n console.error(\"Message handler error:\", err);\n }\n }\n\n if (results.length > 1) {\n throw new Error(\n `Message type \"${message.type}\" has multiple handlers returning a response. Only one response is allowed.`\n );\n }\n\n if (results.length === 1) {\n results[0].then(sendResponse);\n return true;\n }\n }\n}\n","import {\n MessageData,\n MessageDictionary,\n MessageHandler,\n MessageResponse,\n MessageSender,\n MessageType,\n} from \"@typing/message\";\n\nexport default abstract class AbstractHandler<T extends MessageDictionary> implements MessageHandler<T> {\n public abstract run(\n type: MessageType<T>,\n data: MessageData<T, MessageType<T>>,\n sender: MessageSender\n ): MessageResponse<T, MessageType<T>> | undefined;\n}\n","import AbstractHandler from \"./AbstractHandler\";\nimport {\n MessageData,\n MessageDictionary,\n MessageResponse,\n MessageSender,\n MessageTargetHandler,\n MessageType,\n} from \"@typing/message\";\n\nexport default class SingleHandler<T extends MessageDictionary> extends AbstractHandler<T> {\n constructor(\n private messageType: MessageType<T>,\n private handler: MessageTargetHandler<T, MessageType<T>>\n ) {\n super();\n }\n\n public run(\n type: MessageType<T>,\n data: MessageData<T, MessageType<T>>,\n sender: MessageSender\n ): MessageResponse<T, MessageType<T>> | undefined {\n if (type === this.messageType) {\n return this.handler(data, sender);\n }\n }\n}\n","import AbstractHandler from \"./AbstractHandler\";\nimport {\n MessageData,\n MessageDictionary,\n MessageMapHandler,\n MessageResponse,\n MessageSender,\n MessageType,\n} from \"@typing/message\";\n\nexport default class MapHandler<T extends MessageDictionary> extends AbstractHandler<T> {\n constructor(private map: MessageMapHandler<T>) {\n super();\n }\n\n public run(\n type: MessageType<T>,\n data: MessageData<T, MessageType<T>>,\n sender: MessageSender\n ): MessageResponse<T, MessageType<T>> | undefined {\n const handler = this.map[type];\n if (handler) {\n if (typeof handler === \"function\") {\n return handler(data, sender);\n } else {\n throw new Error(`Handler for type \"${type}\" in object of handlers must be a function`);\n }\n }\n }\n}\n","import AbstractHandler from \"./AbstractHandler\";\nimport {\n MessageData,\n MessageDictionary,\n MessageGeneralHandler,\n MessageResponse,\n MessageSender,\n MessageType,\n} from \"@typing/message\";\n\nexport default class GeneralHandler<T extends MessageDictionary, K extends MessageType<T>> extends AbstractHandler<T> {\n constructor(private generalHandler: MessageGeneralHandler<T, K>) {\n super();\n }\n\n public run(\n type: K,\n data: MessageData<T, MessageType<T>>,\n sender: MessageSender\n ): MessageResponse<T, MessageType<T>> | undefined {\n return this.generalHandler(type, data, sender);\n }\n}\n","import {sendMessage, sendTabMessage} from \"@adnbn/browser\";\n\nimport {\n MessageData,\n MessageDictionary,\n MessageGeneralHandler,\n MessageHandler,\n MessageMapHandler,\n MessageResponse,\n MessageTargetHandler,\n MessageType,\n} from \"@typing/message\";\n\nimport AbstractMessage from \"./AbstractMessage\";\nimport MessageManager from \"../MessageManager\";\n\nimport {GeneralHandler, MapHandler, SingleHandler} from \"../handlers\";\n\nexport type MessageSendOptions = number | {tabId: number; frameId?: number; documentId?: string};\n\nexport default class Message<T extends MessageDictionary> extends AbstractMessage<T, MessageSendOptions> {\n private static instance: Message<MessageDictionary> | null = null;\n\n public static getInstance<T extends MessageDictionary>() {\n return (this.instance ??= new Message<T>());\n }\n\n protected get manager(): MessageManager<T> {\n return MessageManager.getInstance<T>();\n }\n\n public send<K extends MessageType<T>>(\n type: K,\n data: MessageData<T, K>,\n options?: MessageSendOptions\n ): Promise<MessageResponse<T, K>> {\n const message = this.buildMessage(type, data);\n\n if (options) {\n if (typeof options === \"number\") {\n return sendTabMessage(options, message);\n }\n\n const {tabId, ...other} = options;\n\n return sendTabMessage(tabId, message, other);\n }\n\n return sendMessage(message);\n }\n\n public watch<K extends MessageType<T>>(\n arg1: K | MessageMapHandler<T> | MessageGeneralHandler<T, K>,\n arg2?: MessageTargetHandler<T, K>\n ): () => void {\n let handler: MessageHandler<T>;\n\n if (typeof arg1 === \"function\") {\n handler = new GeneralHandler<T, K>(arg1);\n } else if (typeof arg1 === \"object\" && arg2 === undefined) {\n handler = new MapHandler<T>(arg1);\n } else if (typeof arg1 === \"string\" && arg2) {\n handler = new SingleHandler<T>(arg1, arg2);\n } else {\n throw new Error(\"Invalid arguments passed to watch()\");\n }\n\n this.manager.add(handler);\n\n return () => this.manager.remove(handler);\n }\n}\n","import {Message, MessageSendOptions} from \"@message/providers\";\n\nimport type {MessageDictionary, MessageProvider} from \"@typing/message\";\nimport type {TransportMessage as TransportMessageContract, TransportMessageData} from \"@typing/transport\";\n\nexport default abstract class TransportMessage implements TransportMessageContract {\n private message: MessageProvider<MessageDictionary, MessageSendOptions> = new Message();\n\n protected abstract readonly key: string;\n\n public async send(data: TransportMessageData) {\n return this.message.send(this.key, data);\n }\n\n public watch(handler: (data: TransportMessageData) => any): void {\n this.message.watch(this.key, handler);\n }\n}\n","import TransportMessage from \"@transport/TransportMessage\";\n\nimport {MessageTypeSeparator} from \"@typing/message\";\n\nexport default class ServiceMessage extends TransportMessage {\n protected readonly key: string;\n\n constructor(name: string) {\n super();\n this.key = `service${MessageTypeSeparator}${name}`;\n }\n}\n","import {isBackground} from \"@adnbn/browser\";\n\nimport ProxyTransport from \"@transport/ProxyTransport\";\n\nimport ServiceManager from \"../ServiceManager\";\nimport ServiceMessage from \"../ServiceMessage\";\n\nimport type {DeepAsyncProxy} from \"@typing/helpers\";\nimport type {TransportDictionary, TransportManager, TransportMessage, TransportName} from \"@typing/transport\";\n\nexport default class<N extends TransportName, T = DeepAsyncProxy<TransportDictionary[N]>> extends ProxyTransport<N, T> {\n protected message: TransportMessage;\n\n constructor(name: N) {\n super(name);\n this.message = new ServiceMessage(name);\n }\n\n protected manager(): TransportManager {\n return ServiceManager.getInstance();\n }\n\n protected async apply(args: any[], path?: string): Promise<any> {\n return this.message.send({path, args});\n }\n\n public get(): T {\n if (isBackground()) {\n throw new Error(\n `You are trying to get proxy service \"${this.name}\" from background. You can get original service instead`\n );\n }\n\n return super.get();\n }\n}\n","import get from \"get-value\";\n\nimport BaseTransport from \"./BaseTransport\";\n\nimport type {TransportDictionary, TransportMessage, TransportName, TransportRegister} from \"@typing/transport\";\n\n// prettier-ignore\nexport default abstract class<\n N extends TransportName,\n T extends object = TransportDictionary[N],\n A extends any[] = []\n> extends BaseTransport<N, T> implements TransportRegister<T, A> {\n protected constructor(\n name: N,\n protected readonly init: (...args: A) => T\n ) {\n super(name);\n }\n\n protected abstract message(): TransportMessage;\n\n public register(...args: A) {\n if (this.manager().has(this.name)) {\n throw new Error(`A instance with name \"${this.name}\" already exists. The name must be unique.`);\n }\n\n const instance = this.init(...args);\n\n this.manager().add(this.name, instance);\n\n this.message().watch(async ({path, args}) => {\n try {\n const property = path == null ? instance : get(instance, path);\n\n if (property === undefined) {\n throw new Error(`Property not found at path \"${path}\" in \"${this.name}\"`);\n }\n\n if (typeof property === \"function\") {\n return await property.apply(instance, args);\n }\n\n return property;\n } catch (error) {\n console.error(\"register() error\", error);\n\n throw error;\n }\n });\n\n return instance;\n }\n}\n","import {isBackground} from \"@adnbn/browser\";\n\nimport RegisterTransport from \"@transport/RegisterTransport\";\n\nimport ServiceMessage from \"../ServiceMessage\";\nimport ServiceManager from \"../ServiceManager\";\n\nimport type {TransportDictionary, TransportName} from \"@typing/transport\";\n\nexport default class<\n N extends TransportName,\n T extends object = TransportDictionary[N],\n A extends any[] = [],\n> extends RegisterTransport<N, T, A> {\n constructor(\n name: N,\n protected readonly init: (...args: A) => T\n ) {\n super(name, init);\n }\n\n protected message() {\n return new ServiceMessage(this.name);\n }\n\n protected manager() {\n return ServiceManager.getInstance();\n }\n\n public get(): T {\n if (!isBackground()) {\n throw new Error(`Service \"${this.name}\" can be getting only from background context.`);\n }\n\n return super.get();\n }\n}\n","import {ProxyService, RegisterService, Service} from \"./providers\";\n\nimport type {\n TransportDictionary,\n TransportName,\n TransportProxyTarget as ServiceProxyTarget,\n TransportTarget as ServiceTarget,\n} from \"@typing/transport\";\n\nexport {type ServiceTarget, type ServiceProxyTarget, ProxyService, RegisterService};\n\nexport const getService = <N extends TransportName>(name: N): TransportDictionary[N] => {\n return new Service<N>(name).get();\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/transport/BaseTransport.ts","../../src/transport/TransportManager.ts","../../src/types/service.ts","../../src/service/ServiceManager.ts","../../src/service/providers/Service.ts","../../src/transport/ProxyTransport.ts","../../src/message/providers/AbstractMessage.ts","../../src/types/message.ts","../../src/message/MessageManager.ts","../../src/message/handlers/AbstractHandler.ts","../../src/message/handlers/SingleHandler.ts","../../src/message/handlers/MapHandler.ts","../../src/message/handlers/GeneralHandler.ts","../../src/message/providers/Message.ts","../../src/transport/TransportMessage.ts","../../src/service/ServiceMessage.ts","../../src/service/providers/ProxyService.ts","../../src/transport/RegisterTransport.ts","../../src/service/providers/RegisterService.ts","../../src/service/index.ts"],"names":["isBackground","args"],"mappings":"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","file":"index.js","sourcesContent":["import type {TransportDictionary, TransportManager, TransportName} from \"@typing/transport\";\n\nexport default abstract class<N extends TransportName, T = TransportDictionary[N]> {\n protected constructor(protected readonly name: N) {}\n\n protected abstract manager(): TransportManager;\n\n public get(): T {\n return this.manager().get(this.name);\n }\n\n public destroy(): void {\n this.manager().remove(this.name);\n }\n}\n","import type {TransportDictionary, TransportManager as TransportManagerContract, TransportName} from \"@typing/transport\";\n\nexport default abstract class TransportManager implements TransportManagerContract {\n private items = new Map<TransportName, TransportDictionary[TransportName]>();\n\n public add<K extends TransportName>(name: K, instance: TransportDictionary[K]): this {\n this.items.set(name, instance);\n\n return this;\n }\n\n public get<K extends TransportName>(name: K): TransportDictionary[K] | undefined {\n return this.items.get(name) as TransportDictionary[K] | undefined;\n }\n\n public has(name: TransportName): boolean {\n return this.items.has(name);\n }\n\n public remove<K extends TransportName>(name: K): TransportDictionary[K] | undefined {\n const service = this.get(name);\n\n this.items.delete(name);\n\n return service;\n }\n\n public clear(): this {\n this.items.clear();\n\n return this;\n }\n}\n","import {BackgroundConfig} from \"@typing/background\";\nimport {EntrypointOptions} from \"@typing/entrypoint\";\nimport {TransportConfig, TransportDefinition, TransportType} from \"@typing/transport\";\n\nexport const ServiceGlobalKey = \"adnbnService\";\n\nexport type ServiceConfig = TransportConfig & BackgroundConfig;\n\nexport type ServiceOptions = ServiceConfig & EntrypointOptions;\n\nexport type ServiceEntrypointOptions = Partial<ServiceOptions>;\n\nexport type ServiceDefinition<T extends TransportType> = TransportDefinition<ServiceOptions, T> &\n ServiceEntrypointOptions;\n\nexport type ServiceUnresolvedDefinition<T extends TransportType> = Partial<ServiceDefinition<T>>;\n","import TransportManager from \"@transport/TransportManager\";\n\nimport {ServiceGlobalKey} from \"@typing/service\";\n\nimport type {TransportManager as TransportManagerContract} from \"@typing/transport\";\n\nexport default class ServiceManager extends TransportManager {\n public static getInstance(): TransportManagerContract {\n return (globalThis[ServiceGlobalKey] ??= new ServiceManager());\n }\n}\n","import {isBackground} from \"@adnbn/browser\";\n\nimport BaseTransport from \"@transport/BaseTransport\";\n\nimport ServiceManager from \"../ServiceManager\";\n\nimport type {TransportDictionary, TransportManager, TransportName} from \"@typing/transport\";\n\nexport default class<N extends TransportName, T = TransportDictionary[N]> extends BaseTransport<N, T> {\n constructor(name: N) {\n super(name);\n }\n\n protected manager(): TransportManager {\n return ServiceManager.getInstance();\n }\n\n public get(): T {\n if (!isBackground()) {\n throw new Error(`Service \"${this.name}\" can be getting only from background context.`);\n }\n\n return super.get();\n }\n}\n","import BaseTransport from \"./BaseTransport\";\n\nimport type {DeepAsyncProxy} from \"@typing/helpers\";\nimport type {TransportDictionary, TransportName} from \"@typing/transport\";\n\nexport default abstract class<\n N extends TransportName,\n T = DeepAsyncProxy<TransportDictionary[N]>,\n> extends BaseTransport<N, T> {\n protected abstract apply(args: any[], path?: string): any;\n\n protected createProxy(path?: string): T {\n const wrapped = () => {};\n\n const proxy = new Proxy(wrapped, {\n apply: async (_target, _thisArg, args) => this.apply(args, path),\n\n get: (_target, propertyName, receiver) => {\n if (propertyName === \"__proxy\" || typeof propertyName !== \"string\") {\n return Reflect.get(wrapped, propertyName, receiver);\n }\n\n const newPath = path == null ? propertyName : `${path}.${String(propertyName)}`;\n\n return this.createProxy(newPath);\n },\n });\n\n // @ts-expect-error — Adding a hidden property\n proxy.__proxy = true;\n\n return proxy as unknown as T;\n }\n\n public get(): T {\n return this.createProxy();\n }\n}\n","import {nanoid} from \"nanoid\";\nimport {\n MessageBody,\n MessageData,\n MessageDictionary,\n MessageGeneralHandler,\n MessageMapHandler,\n MessageProvider,\n MessageResponse,\n MessageTargetHandler,\n MessageType,\n} from \"@typing/message\";\n\nexport default abstract class AbstractMessage<T extends MessageDictionary, TOptions>\n implements MessageProvider<T, TOptions>\n{\n public abstract send<K extends MessageType<T>>(\n type: K,\n data: MessageData<T, K>,\n options?: TOptions\n ): Promise<MessageResponse<T, K>>;\n\n public abstract watch<K extends MessageType<T>>(type: K, handler: MessageTargetHandler<T, K>): () => void;\n\n public abstract watch(map: MessageMapHandler<T>): () => void;\n\n public abstract watch<K extends MessageType<T>>(general: MessageGeneralHandler<T, K>): () => void;\n\n protected buildMessage<K extends MessageType<T>>(type: K, data: MessageData<T, K>): MessageBody<T, K> {\n return {\n id: nanoid(),\n type,\n data,\n timestamp: Date.now(),\n };\n }\n}\n","export const MessageGlobalKey = \"adnbnMessage\";\n\nexport const MessageTypeSeparator = \":\";\n\nexport const MessageSenderProperty = \"_sender\";\n\nexport type MessageSender = chrome.runtime.MessageSender;\n\nexport interface MessageDictionary {\n [key: string]: (data: any) => any;\n}\n\nexport interface MessageSenderAware {\n [MessageSenderProperty]?: MessageSender;\n}\n\nexport type MessageType<T extends MessageDictionary> = Extract<keyof T, string>;\nexport type MessageData<T extends MessageDictionary, K extends MessageType<T>> = Parameters<T[K]>[0];\nexport type MessageResponse<T extends MessageDictionary, K extends MessageType<T>> = ReturnType<T[K]>;\n\nexport type MessageTargetHandler<T extends MessageDictionary, K extends MessageType<T>> = (\n data: MessageData<T, K>,\n sender: MessageSender\n) => MessageResponse<T, K>;\nexport type MessageMapHandler<T extends MessageDictionary> = {[K in MessageType<T>]?: MessageTargetHandler<T, K>};\nexport type MessageGeneralHandler<T extends MessageDictionary, K extends MessageType<T>> = (\n type: K,\n data: MessageData<T, K>,\n sender: MessageSender\n) => any;\n\nexport interface MessageBody<T extends MessageDictionary, K extends MessageType<T>> {\n id: string;\n type: K;\n data: MessageData<T, K>;\n timestamp: number;\n}\n\nexport interface MessageProvider<T extends MessageDictionary, TOptions = void> {\n send<K extends MessageType<T>>(\n type: K,\n data: MessageData<T, K>,\n options?: TOptions\n ): Promise<MessageResponse<T, K>>;\n\n watch<K extends MessageType<T>>(type: K, handler: MessageTargetHandler<T, K>): () => void;\n\n watch(map: MessageMapHandler<T>): () => void;\n\n watch<K extends MessageType<T>>(general: MessageGeneralHandler<T, K>): () => void;\n}\n\nexport interface MessageHandler<T extends MessageDictionary> {\n run(\n type: MessageType<T>,\n data: MessageData<T, MessageType<T>>,\n sender: MessageSender\n ): MessageResponse<T, MessageType<T>> | undefined;\n}\n","import {onMessage} from \"@adnbn/browser\";\n\nimport {\n MessageBody,\n MessageDictionary,\n MessageGlobalKey,\n MessageHandler,\n MessageSender,\n MessageType,\n} from \"@typing/message\";\n\nexport default class MessageManager<T extends MessageDictionary> {\n private handlers: Set<MessageHandler<T>> = new Set();\n private unsubscribe: (() => void) | null = null;\n\n public static getInstance<T extends MessageDictionary>(): MessageManager<T> {\n return (globalThis[MessageGlobalKey] ??= new MessageManager<T>());\n }\n\n constructor() {\n this.listener = this.listener.bind(this);\n }\n\n public add(handler: MessageHandler<T>) {\n this.handlers.add(handler);\n this.updateListener();\n }\n\n public remove(handler: MessageHandler<T>) {\n this.handlers.delete(handler);\n this.updateListener();\n }\n\n public clear() {\n this.handlers = new Set();\n this.updateListener();\n }\n\n private updateListener() {\n if (this.handlers.size > 0 && !this.unsubscribe) {\n this.unsubscribe = onMessage(this.listener);\n } else if (this.handlers.size === 0 && this.unsubscribe) {\n this.unsubscribe();\n this.unsubscribe = null;\n }\n }\n\n private listener<K extends MessageType<T>>(\n message: MessageBody<T, K>,\n sender: MessageSender,\n sendResponse: (response?: any) => void\n ): boolean | void {\n if (!message || typeof message !== \"object\" || !message.type) return;\n\n const results: Promise<any>[] = [];\n\n for (const handler of this.handlers) {\n try {\n const result = handler.run(message.type, message.data, sender);\n if (result !== undefined) {\n results.push(Promise.resolve(result));\n }\n } catch (err) {\n console.error(\"Message handler error:\", err);\n }\n }\n\n if (results.length > 1) {\n throw new Error(\n `Message type \"${message.type}\" has multiple handlers returning a response. Only one response is allowed.`\n );\n }\n\n if (results.length === 1) {\n results[0].then(sendResponse);\n return true;\n }\n }\n}\n","import {\n MessageData,\n MessageDictionary,\n MessageHandler,\n MessageResponse,\n MessageSender,\n MessageType,\n} from \"@typing/message\";\n\nexport default abstract class AbstractHandler<T extends MessageDictionary> implements MessageHandler<T> {\n public abstract run(\n type: MessageType<T>,\n data: MessageData<T, MessageType<T>>,\n sender: MessageSender\n ): MessageResponse<T, MessageType<T>> | undefined;\n}\n","import AbstractHandler from \"./AbstractHandler\";\nimport {\n MessageData,\n MessageDictionary,\n MessageResponse,\n MessageSender,\n MessageTargetHandler,\n MessageType,\n} from \"@typing/message\";\n\nexport default class SingleHandler<T extends MessageDictionary> extends AbstractHandler<T> {\n constructor(\n private messageType: MessageType<T>,\n private handler: MessageTargetHandler<T, MessageType<T>>\n ) {\n super();\n }\n\n public run(\n type: MessageType<T>,\n data: MessageData<T, MessageType<T>>,\n sender: MessageSender\n ): MessageResponse<T, MessageType<T>> | undefined {\n if (type === this.messageType) {\n return this.handler(data, sender);\n }\n }\n}\n","import AbstractHandler from \"./AbstractHandler\";\nimport {\n MessageData,\n MessageDictionary,\n MessageMapHandler,\n MessageResponse,\n MessageSender,\n MessageType,\n} from \"@typing/message\";\n\nexport default class MapHandler<T extends MessageDictionary> extends AbstractHandler<T> {\n constructor(private map: MessageMapHandler<T>) {\n super();\n }\n\n public run(\n type: MessageType<T>,\n data: MessageData<T, MessageType<T>>,\n sender: MessageSender\n ): MessageResponse<T, MessageType<T>> | undefined {\n const handler = this.map[type];\n if (handler) {\n if (typeof handler === \"function\") {\n return handler(data, sender);\n } else {\n throw new Error(`Handler for type \"${type}\" in object of handlers must be a function`);\n }\n }\n }\n}\n","import AbstractHandler from \"./AbstractHandler\";\nimport {\n MessageData,\n MessageDictionary,\n MessageGeneralHandler,\n MessageResponse,\n MessageSender,\n MessageType,\n} from \"@typing/message\";\n\nexport default class GeneralHandler<T extends MessageDictionary, K extends MessageType<T>> extends AbstractHandler<T> {\n constructor(private generalHandler: MessageGeneralHandler<T, K>) {\n super();\n }\n\n public run(\n type: K,\n data: MessageData<T, MessageType<T>>,\n sender: MessageSender\n ): MessageResponse<T, MessageType<T>> | undefined {\n return this.generalHandler(type, data, sender);\n }\n}\n","import {sendMessage, sendTabMessage} from \"@adnbn/browser\";\n\nimport {\n MessageData,\n MessageDictionary,\n MessageGeneralHandler,\n MessageHandler,\n MessageMapHandler,\n MessageResponse,\n MessageTargetHandler,\n MessageType,\n} from \"@typing/message\";\n\nimport AbstractMessage from \"./AbstractMessage\";\nimport MessageManager from \"../MessageManager\";\n\nimport {GeneralHandler, MapHandler, SingleHandler} from \"../handlers\";\n\nexport type MessageSendOptions = number | {tabId: number; frameId?: number; documentId?: string};\n\nexport default class Message<T extends MessageDictionary> extends AbstractMessage<T, MessageSendOptions> {\n private static instance: Message<MessageDictionary> | null = null;\n\n public static getInstance<T extends MessageDictionary>() {\n return (this.instance ??= new Message<T>());\n }\n\n protected get manager(): MessageManager<T> {\n return MessageManager.getInstance<T>();\n }\n\n public send<K extends MessageType<T>>(\n type: K,\n data: MessageData<T, K>,\n options?: MessageSendOptions\n ): Promise<MessageResponse<T, K>> {\n const message = this.buildMessage(type, data);\n\n if (options) {\n if (typeof options === \"number\") {\n return sendTabMessage(options, message);\n }\n\n const {tabId, ...other} = options;\n\n return sendTabMessage(tabId, message, other);\n }\n\n return sendMessage(message);\n }\n\n public watch<K extends MessageType<T>>(\n arg1: K | MessageMapHandler<T> | MessageGeneralHandler<T, K>,\n arg2?: MessageTargetHandler<T, K>\n ): () => void {\n let handler: MessageHandler<T>;\n\n if (typeof arg1 === \"function\") {\n handler = new GeneralHandler<T, K>(arg1);\n } else if (typeof arg1 === \"object\" && arg2 === undefined) {\n handler = new MapHandler<T>(arg1);\n } else if (typeof arg1 === \"string\" && arg2) {\n handler = new SingleHandler<T>(arg1, arg2);\n } else {\n throw new Error(\"Invalid arguments passed to watch()\");\n }\n\n this.manager.add(handler);\n\n return () => this.manager.remove(handler);\n }\n}\n","import {Message, MessageSendOptions} from \"@message/providers\";\n\nimport {MessageDictionary, MessageProvider, MessageSender} from \"@typing/message\";\nimport type {TransportMessage as TransportMessageContract, TransportMessageData} from \"@typing/transport\";\n\nexport default abstract class TransportMessage implements TransportMessageContract {\n protected message: MessageProvider<MessageDictionary, MessageSendOptions> = new Message();\n\n protected abstract readonly key: string;\n\n public async send(data: TransportMessageData) {\n return this.message.send(this.key, data);\n }\n\n public watch(handler: (data: TransportMessageData, sender: MessageSender) => any): void {\n this.message.watch(this.key, handler);\n }\n}\n","import TransportMessage from \"@transport/TransportMessage\";\n\nimport {MessageTypeSeparator} from \"@typing/message\";\n\nexport default class ServiceMessage extends TransportMessage {\n protected readonly key: string;\n\n constructor(name: string) {\n super();\n this.key = `service${MessageTypeSeparator}${name}`;\n }\n}\n","import {isBackground} from \"@adnbn/browser\";\n\nimport ProxyTransport from \"@transport/ProxyTransport\";\n\nimport ServiceManager from \"../ServiceManager\";\nimport ServiceMessage from \"../ServiceMessage\";\n\nimport type {DeepAsyncProxy} from \"@typing/helpers\";\nimport type {TransportDictionary, TransportManager, TransportMessage, TransportName} from \"@typing/transport\";\n\nexport default class<N extends TransportName, T = DeepAsyncProxy<TransportDictionary[N]>> extends ProxyTransport<N, T> {\n protected message: TransportMessage;\n\n constructor(name: N) {\n super(name);\n this.message = new ServiceMessage(name);\n }\n\n protected manager(): TransportManager {\n return ServiceManager.getInstance();\n }\n\n protected async apply(args: any[], path?: string): Promise<any> {\n return this.message.send({path, args});\n }\n\n public get(): T {\n if (isBackground()) {\n throw new Error(\n `You are trying to get proxy service \"${this.name}\" from background. You can get original service instead`\n );\n }\n\n return super.get();\n }\n}\n","import get from \"get-value\";\n\nimport BaseTransport from \"./BaseTransport\";\n\nimport {TransportDictionary, TransportMessage, TransportName, TransportRegister} from \"@typing/transport\";\nimport {MessageSender, MessageSenderProperty} from \"@typing/message\";\n\n// prettier-ignore\nexport default abstract class<\n N extends TransportName,\n T extends object = TransportDictionary[N],\n A extends any[] = []\n> extends BaseTransport<N, T> implements TransportRegister<T, A> {\n protected constructor(\n name: N,\n protected readonly init: (...args: A) => T\n ) {\n super(name);\n }\n\n protected abstract message(): TransportMessage;\n\n public register(...args: A) {\n if (this.manager().has(this.name)) {\n throw new Error(`A instance with name \"${this.name}\" already exists. The name must be unique.`);\n }\n\n const instance = this.init(...args);\n\n this.manager().add(this.name, instance);\n\n this.message().watch(async ({path, args}, sender) => {\n try {\n this.injectSender(instance, sender);\n\n const property = path == null ? instance : get(instance, path);\n\n if (property === undefined) {\n throw new Error(`Property not found at path \"${path}\" in \"${this.name}\"`);\n }\n\n let result: any;\n\n if (typeof property === \"function\") {\n result = await property.apply(instance, args);\n } else {\n result = property;\n }\n\n this.clearSender(instance);\n\n return result;\n } catch (error) {\n console.error(`Error during message handler registration for transport \"${this.name}\"`, error);\n\n this.clearSender(instance);\n\n throw error;\n }\n });\n\n return instance;\n }\n\n private injectSender(instance: T, sender: MessageSender): void {\n if (!Object.getOwnPropertyDescriptor(instance, MessageSenderProperty)) {\n Object.defineProperty(instance, MessageSenderProperty, {\n configurable: true,\n enumerable: false,\n writable: true,\n value: undefined,\n });\n }\n\n (instance as any)[MessageSenderProperty] = sender;\n }\n\n private clearSender(instance: T): void {\n if (Object.getOwnPropertyDescriptor(instance, MessageSenderProperty)) {\n (instance as any)[MessageSenderProperty] = undefined;\n }\n }\n}\n","import {isBackground} from \"@adnbn/browser\";\n\nimport RegisterTransport from \"@transport/RegisterTransport\";\n\nimport ServiceMessage from \"../ServiceMessage\";\nimport ServiceManager from \"../ServiceManager\";\n\nimport type {TransportDictionary, TransportName} from \"@typing/transport\";\n\nexport default class<\n N extends TransportName,\n T extends object = TransportDictionary[N],\n A extends any[] = [],\n> extends RegisterTransport<N, T, A> {\n constructor(\n name: N,\n protected readonly init: (...args: A) => T\n ) {\n super(name, init);\n }\n\n protected message() {\n return new ServiceMessage(this.name);\n }\n\n protected manager() {\n return ServiceManager.getInstance();\n }\n\n public get(): T {\n if (!isBackground()) {\n throw new Error(`Service \"${this.name}\" can be getting only from background context.`);\n }\n\n return super.get();\n }\n}\n","import {ProxyService, RegisterService, Service} from \"./providers\";\n\nimport type {\n TransportDictionary,\n TransportName,\n TransportProxyTarget as ServiceProxyTarget,\n TransportTarget as ServiceTarget,\n} from \"@typing/transport\";\n\nexport {type ServiceTarget, type ServiceProxyTarget, ProxyService, RegisterService};\n\nexport const getService = <N extends TransportName>(name: N): TransportDictionary[N] => {\n return new Service<N>(name).get();\n};\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { B as BackgroundConfig } from './background-
|
|
2
|
-
import { E as EntrypointOptions } from './helpers-
|
|
3
|
-
import { e as TransportType, f as TransportDefinition, g as TransportConfig } from './transport-
|
|
1
|
+
import { B as BackgroundConfig } from './background-CpVjDFHQ.js';
|
|
2
|
+
import { E as EntrypointOptions } from './helpers-YDFORuZz.js';
|
|
3
|
+
import { e as TransportType, f as TransportDefinition, g as TransportConfig } from './transport-Co9Oxp0-.js';
|
|
4
4
|
|
|
5
5
|
type ServiceConfig = TransportConfig & BackgroundConfig;
|
|
6
6
|
type ServiceOptions = ServiceConfig & EntrypointOptions;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { B as BackgroundConfig } from './background-
|
|
2
|
-
import { E as EntrypointOptions } from './helpers-
|
|
3
|
-
import { e as TransportType, f as TransportDefinition, g as TransportConfig } from './transport-
|
|
1
|
+
import { B as BackgroundConfig } from './background-cxLBji1Q.mjs';
|
|
2
|
+
import { E as EntrypointOptions } from './helpers-YDFORuZz.mjs';
|
|
3
|
+
import { e as TransportType, f as TransportDefinition, g as TransportConfig } from './transport-BrbirhXv.mjs';
|
|
4
4
|
|
|
5
5
|
type ServiceConfig = TransportConfig & BackgroundConfig;
|
|
6
6
|
type ServiceOptions = ServiceConfig & EntrypointOptions;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Required } from 'utility-types';
|
|
2
|
-
import { E as EntrypointOptions, A as Awaiter, D as DeepAsyncProxy } from './helpers-
|
|
2
|
+
import { E as EntrypointOptions, A as Awaiter, D as DeepAsyncProxy } from './helpers-YDFORuZz.mjs';
|
|
3
|
+
import { h as MessageSender } from './message-jsmkeGHC.mjs';
|
|
3
4
|
|
|
4
5
|
type TransportType = ((...args: any[]) => Promise<any>) | {
|
|
5
6
|
[key: string]: any | TransportType;
|
|
@@ -23,7 +24,7 @@ interface TransportMessageData {
|
|
|
23
24
|
}
|
|
24
25
|
interface TransportMessage {
|
|
25
26
|
send(data: TransportMessageData): any;
|
|
26
|
-
watch(handler: (data: TransportMessageData) => any): void;
|
|
27
|
+
watch(handler: (data: TransportMessageData, sender: MessageSender) => any): void;
|
|
27
28
|
}
|
|
28
29
|
interface TransportProvider<T extends TransportType> {
|
|
29
30
|
get(): T;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Required } from 'utility-types';
|
|
2
|
-
import { E as EntrypointOptions, A as Awaiter, D as DeepAsyncProxy } from './helpers-
|
|
2
|
+
import { E as EntrypointOptions, A as Awaiter, D as DeepAsyncProxy } from './helpers-YDFORuZz.js';
|
|
3
|
+
import { h as MessageSender } from './message-jsmkeGHC.js';
|
|
3
4
|
|
|
4
5
|
type TransportType = ((...args: any[]) => Promise<any>) | {
|
|
5
6
|
[key: string]: any | TransportType;
|
|
@@ -23,7 +24,7 @@ interface TransportMessageData {
|
|
|
23
24
|
}
|
|
24
25
|
interface TransportMessage {
|
|
25
26
|
send(data: TransportMessageData): any;
|
|
26
|
-
watch(handler: (data: TransportMessageData) => any): void;
|
|
27
|
+
watch(handler: (data: TransportMessageData, sender: MessageSender) => any): void;
|
|
27
28
|
}
|
|
28
29
|
interface TransportProvider<T extends TransportType> {
|
|
29
30
|
get(): T;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ReactNode, FC } from 'react';
|
|
2
2
|
import { Optional } from 'utility-types';
|
|
3
3
|
import { Options } from 'html-rspack-tags-plugin';
|
|
4
|
-
import { E as EntrypointOptions, c as ExcludeFunctionsFromProperties, A as Awaiter, P as PickNonFunctionProperties, a as EntrypointBuilder } from './helpers-
|
|
4
|
+
import { E as EntrypointOptions, c as ExcludeFunctionsFromProperties, A as Awaiter, P as PickNonFunctionProperties, a as EntrypointBuilder } from './helpers-YDFORuZz.mjs';
|
|
5
5
|
|
|
6
6
|
interface ViewConfig {
|
|
7
7
|
as?: string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ReactNode, FC } from 'react';
|
|
2
2
|
import { Optional } from 'utility-types';
|
|
3
3
|
import { Options } from 'html-rspack-tags-plugin';
|
|
4
|
-
import { E as EntrypointOptions, c as ExcludeFunctionsFromProperties, A as Awaiter, P as PickNonFunctionProperties, a as EntrypointBuilder } from './helpers-
|
|
4
|
+
import { E as EntrypointOptions, c as ExcludeFunctionsFromProperties, A as Awaiter, P as PickNonFunctionProperties, a as EntrypointBuilder } from './helpers-YDFORuZz.js';
|
|
5
5
|
|
|
6
6
|
interface ViewConfig {
|
|
7
7
|
as?: string;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "adnbn",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.3",
|
|
4
4
|
"description": "Addon 💀 Bone - Cross-browser web extension framework with shared code base",
|
|
5
5
|
"homepage": "https://github.com/addonbone/addonbone",
|
|
6
6
|
"repository": {
|
|
@@ -143,8 +143,8 @@
|
|
|
143
143
|
"utility-types": "^3.11.0"
|
|
144
144
|
},
|
|
145
145
|
"dependencies": {
|
|
146
|
-
"@adnbn/browser": "^0.1.
|
|
147
|
-
"@adnbn/inject-script": "^0.2.
|
|
146
|
+
"@adnbn/browser": "^0.1.7",
|
|
147
|
+
"@adnbn/inject-script": "^0.2.1",
|
|
148
148
|
"@rsdoctor/rspack-plugin": "^1.0.2",
|
|
149
149
|
"@rspack/cli": "^1.3.8",
|
|
150
150
|
"@rspack/core": "^1.3.8",
|