adnbn 0.2.2 → 0.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/dist/{AbstractBuilder-CKgY_Bta.d.ts → AbstractBuilder-BN4TmNJG.d.ts} +3 -3
  2. package/dist/{AbstractBuilder-Ce5zNRXr.d.mts → AbstractBuilder-C81kWZzQ.d.mts} +3 -3
  3. package/dist/{BaseTransport-C7uEgfUu.d.mts → BaseTransport-DNZ28gFF.d.mts} +1 -1
  4. package/dist/{BaseTransport-BdFTZfP0.d.ts → BaseTransport-Ecy2Kzti.d.ts} +1 -1
  5. package/dist/{Builder-FwJAxWos.d.ts → Builder-BOLvGGqp.d.ts} +2 -2
  6. package/dist/{Builder-rW3fzusy.d.mts → Builder-BP8SDHO1.d.mts} +2 -2
  7. package/dist/{Builder-7pbnGvHK.d.ts → Builder-Bc8US0PY.d.ts} +1 -1
  8. package/dist/{Builder-CCyBD4hF.d.mts → Builder-Df1LUO_f.d.mts} +1 -1
  9. package/dist/{Message-1cYgMdsu.d.mts → Message-Bnritk3D.d.mts} +1 -1
  10. package/dist/{Message-DAhczRx9.d.ts → Message-DFDaS7mV.d.ts} +1 -1
  11. package/dist/{MountBuilder-DjnAmTI0.d.ts → MountBuilder-BTltgVF2.d.mts} +26 -7
  12. package/dist/{MountBuilder-CjvMOcmn.d.mts → MountBuilder-C9Q-7PeI.d.ts} +26 -7
  13. package/dist/{ProxyRelay-Ce-szh9p.d.ts → ProxyRelay-DDOSZE3h.d.ts} +3 -3
  14. package/dist/{ProxyRelay-BOBEhRET.d.mts → ProxyRelay-Uel0ATcx.d.mts} +3 -3
  15. package/dist/{ProxyTransport-BTVUbDxE.d.mts → ProxyTransport-35rU8xqa.d.mts} +3 -3
  16. package/dist/{ProxyTransport-BW63K6SU.d.ts → ProxyTransport-D4jv5SFh.d.ts} +3 -3
  17. package/dist/{RegisterOffscreen-BukckdvS.d.mts → RegisterOffscreen-DT0gN5xN.d.mts} +2 -2
  18. package/dist/{RegisterOffscreen-DmlpLqjW.d.ts → RegisterOffscreen-df3W5HqA.d.ts} +2 -2
  19. package/dist/{RegisterRelay-MEVSR1sP.d.mts → RegisterRelay-DCVZ2_NI.d.mts} +2 -2
  20. package/dist/{RegisterRelay-BaIET78I.d.ts → RegisterRelay-PFT2ac4v.d.ts} +2 -2
  21. package/dist/{TransportMessage-Bk0wg4rF.d.mts → TransportMessage-CIKrv3DG.d.mts} +8 -4
  22. package/dist/{TransportMessage-BqMzXWZR.d.ts → TransportMessage-CsObvTPq.d.ts} +8 -4
  23. package/dist/{background-Zjiqg60g.d.ts → background-CpVjDFHQ.d.ts} +1 -1
  24. package/dist/{background-CyGGjmBx.d.mts → background-cxLBji1Q.d.mts} +1 -1
  25. package/dist/cli/index.cjs +52 -21
  26. package/dist/cli/index.cjs.map +1 -1
  27. package/dist/{command-BFsdm7Bx.d.mts → command-S2dcqx6Q.d.mts} +4 -3
  28. package/dist/{command-3i_5d__K.d.ts → command-TJ2JUrVd.d.ts} +4 -3
  29. package/dist/{content-sdYF4W-A.d.ts → content-B0znLIjr.d.ts} +37 -4
  30. package/dist/{content-BYoXVO6V.d.mts → content-DrrPH4ri.d.mts} +37 -4
  31. package/dist/entry/background/index.d.mts +2 -2
  32. package/dist/entry/background/index.d.ts +2 -2
  33. package/dist/entry/command/index.d.mts +3 -3
  34. package/dist/entry/command/index.d.ts +3 -3
  35. package/dist/entry/content/index.d.mts +2 -2
  36. package/dist/entry/content/index.d.ts +2 -2
  37. package/dist/entry/content/react/index.cjs +104 -18
  38. package/dist/entry/content/react/index.cjs.map +1 -1
  39. package/dist/entry/content/react/index.d.mts +4 -4
  40. package/dist/entry/content/react/index.d.ts +4 -4
  41. package/dist/entry/content/react/index.js +104 -18
  42. package/dist/entry/content/react/index.js.map +1 -1
  43. package/dist/entry/content/vanilla/index.cjs +108 -18
  44. package/dist/entry/content/vanilla/index.cjs.map +1 -1
  45. package/dist/entry/content/vanilla/index.d.mts +4 -4
  46. package/dist/entry/content/vanilla/index.d.ts +4 -4
  47. package/dist/entry/content/vanilla/index.js +108 -18
  48. package/dist/entry/content/vanilla/index.js.map +1 -1
  49. package/dist/entry/offscreen/index.cjs +27 -4
  50. package/dist/entry/offscreen/index.cjs.map +1 -1
  51. package/dist/entry/offscreen/index.d.mts +11 -9
  52. package/dist/entry/offscreen/index.d.ts +11 -9
  53. package/dist/entry/offscreen/index.js +27 -4
  54. package/dist/entry/offscreen/index.js.map +1 -1
  55. package/dist/entry/relay/index.d.mts +9 -8
  56. package/dist/entry/relay/index.d.ts +9 -8
  57. package/dist/entry/service/index.cjs +31 -10
  58. package/dist/entry/service/index.cjs.map +1 -1
  59. package/dist/entry/service/index.d.mts +5 -4
  60. package/dist/entry/service/index.d.ts +5 -4
  61. package/dist/entry/service/index.js +31 -10
  62. package/dist/entry/service/index.js.map +1 -1
  63. package/dist/entry/transport/index.d.mts +8 -7
  64. package/dist/entry/transport/index.d.ts +8 -7
  65. package/dist/entry/view/index.d.mts +2 -2
  66. package/dist/entry/view/index.d.ts +2 -2
  67. package/dist/entry/view/react/index.d.mts +4 -4
  68. package/dist/entry/view/react/index.d.ts +4 -4
  69. package/dist/entry/view/vanilla/index.d.mts +4 -4
  70. package/dist/entry/view/vanilla/index.d.ts +4 -4
  71. package/dist/{helpers-DnV3N7fU.d.mts → helpers-YDFORuZz.d.mts} +2 -2
  72. package/dist/{helpers-DnV3N7fU.d.ts → helpers-YDFORuZz.d.ts} +2 -2
  73. package/dist/index.cjs +11 -1
  74. package/dist/index.cjs.map +1 -1
  75. package/dist/index.d.mts +63 -22
  76. package/dist/index.d.ts +63 -22
  77. package/dist/index.js +11 -2
  78. package/dist/index.js.map +1 -1
  79. package/dist/message/index.cjs.map +1 -1
  80. package/dist/message/index.d.mts +4 -3
  81. package/dist/message/index.d.ts +4 -3
  82. package/dist/message/index.js.map +1 -1
  83. package/dist/message/react/index.cjs.map +1 -1
  84. package/dist/message/react/index.d.mts +1 -1
  85. package/dist/message/react/index.d.ts +1 -1
  86. package/dist/message/react/index.js.map +1 -1
  87. package/dist/{message-55r-wFjc.d.mts → message-jsmkeGHC.d.mts} +5 -1
  88. package/dist/{message-55r-wFjc.d.ts → message-jsmkeGHC.d.ts} +5 -1
  89. package/dist/offscreen/index.cjs +30 -5
  90. package/dist/offscreen/index.cjs.map +1 -1
  91. package/dist/offscreen/index.d.mts +10 -9
  92. package/dist/offscreen/index.d.ts +10 -9
  93. package/dist/offscreen/index.js +30 -5
  94. package/dist/offscreen/index.js.map +1 -1
  95. package/dist/{offscreen-B9GiglgN.d.mts → offscreen-2EP-rRfx.d.mts} +3 -3
  96. package/dist/{offscreen-BG5Abe8V.d.ts → offscreen-aHdkogKj.d.ts} +3 -3
  97. package/dist/relay/index.d.mts +8 -7
  98. package/dist/relay/index.d.ts +8 -7
  99. package/dist/{relay-DymeeDe7.d.ts → relay-DT46Ltms.d.ts} +3 -3
  100. package/dist/{relay-BYeTCwKO.d.mts → relay-vaJ5R2iC.d.mts} +3 -3
  101. package/dist/service/index.cjs +27 -4
  102. package/dist/service/index.cjs.map +1 -1
  103. package/dist/service/index.d.mts +8 -6
  104. package/dist/service/index.d.ts +8 -6
  105. package/dist/service/index.js +27 -4
  106. package/dist/service/index.js.map +1 -1
  107. package/dist/{service-BhJhIk-O.d.ts → service-6FdoYGNC.d.ts} +3 -3
  108. package/dist/{service-DsivypLQ.d.mts → service-C9HbDQPE.d.mts} +3 -3
  109. package/dist/{transport-B_uYwoGi.d.mts → transport-BrbirhXv.d.mts} +3 -2
  110. package/dist/{transport-BPmSUoEU.d.ts → transport-Co9Oxp0-.d.ts} +3 -2
  111. package/dist/{view-QDP2Maev.d.mts → view-Bs26Jcvi.d.mts} +1 -1
  112. package/dist/{view-D4dquvKl.d.ts → view-u9w7nMgw.d.ts} +1 -1
  113. package/package.json +1 -2
@@ -1,12 +1,13 @@
1
- import { b as RelayOptions, c as RelayUnresolvedDefinition, R as RelayDefinition } from '../../relay-DymeeDe7.js';
2
- import { e as TransportType, T as TransportName } from '../../transport-BPmSUoEU.js';
3
- import { e as export_default$2 } from '../../AbstractBuilder-CKgY_Bta.js';
4
- import { e as export_default$3 } from '../../RegisterRelay-BaIET78I.js';
5
- import { e as export_default$4 } from '../../Builder-7pbnGvHK.js';
6
- import { f as ContentScriptBuilder } from '../../content-sdYF4W-A.js';
7
- import '../../helpers-DnV3N7fU.js';
1
+ import { b as RelayOptions, c as RelayUnresolvedDefinition, R as RelayDefinition } from '../../relay-DT46Ltms.js';
2
+ import { e as TransportType, T as TransportName } from '../../transport-Co9Oxp0-.js';
3
+ import { e as export_default$2 } from '../../AbstractBuilder-BN4TmNJG.js';
4
+ import { e as export_default$3 } from '../../RegisterRelay-PFT2ac4v.js';
5
+ import { e as export_default$4 } from '../../Builder-Bc8US0PY.js';
6
+ import { f as ContentScriptBuilder } from '../../content-B0znLIjr.js';
7
+ import '../../helpers-YDFORuZz.js';
8
8
  import 'utility-types';
9
- import '../../BaseTransport-BdFTZfP0.js';
9
+ import '../../message-jsmkeGHC.js';
10
+ import '../../BaseTransport-Ecy2Kzti.js';
10
11
  import 'react';
11
12
 
12
13
  declare class export_default$1<T extends TransportType = TransportType> extends export_default$2<RelayOptions, T> {
@@ -88,6 +88,11 @@ var BaseTransport_default = class {
88
88
  }
89
89
  };
90
90
 
91
+ // src/types/message.ts
92
+ var MessageGlobalKey = "adnbnMessage";
93
+ var MessageTypeSeparator = ":";
94
+ var MessageSenderProperty = "_sender";
95
+
91
96
  // src/transport/RegisterTransport.ts
92
97
  var RegisterTransport_default = class extends BaseTransport_default {
93
98
  constructor(name, init) {
@@ -100,23 +105,45 @@ var RegisterTransport_default = class extends BaseTransport_default {
100
105
  }
101
106
  const instance = this.init(...args);
102
107
  this.manager().add(this.name, instance);
103
- this.message().watch(async ({ path, args: args2 }) => {
108
+ this.message().watch(async ({ path, args: args2 }, sender) => {
104
109
  try {
110
+ this.injectSender(instance, sender);
105
111
  const property = path == null ? instance : get__default.default(instance, path);
106
112
  if (property === void 0) {
107
113
  throw new Error(`Property not found at path "${path}" in "${this.name}"`);
108
114
  }
115
+ let result;
109
116
  if (typeof property === "function") {
110
- return await property.apply(instance, args2);
117
+ result = await property.apply(instance, args2);
118
+ } else {
119
+ result = property;
111
120
  }
112
- return property;
121
+ this.clearSender(instance);
122
+ return result;
113
123
  } catch (error) {
114
- console.error("register() error", error);
124
+ console.error(`Error during message handler registration for transport "${this.name}"`, error);
125
+ this.clearSender(instance);
115
126
  throw error;
116
127
  }
117
128
  });
118
129
  return instance;
119
130
  }
131
+ injectSender(instance, sender) {
132
+ if (!Object.getOwnPropertyDescriptor(instance, MessageSenderProperty)) {
133
+ Object.defineProperty(instance, MessageSenderProperty, {
134
+ configurable: true,
135
+ enumerable: false,
136
+ writable: true,
137
+ value: void 0
138
+ });
139
+ }
140
+ instance[MessageSenderProperty] = sender;
141
+ }
142
+ clearSender(instance) {
143
+ if (Object.getOwnPropertyDescriptor(instance, MessageSenderProperty)) {
144
+ instance[MessageSenderProperty] = void 0;
145
+ }
146
+ }
120
147
  };
121
148
  var AbstractMessage = class {
122
149
  buildMessage(type, data) {
@@ -128,12 +155,6 @@ var AbstractMessage = class {
128
155
  };
129
156
  }
130
157
  };
131
-
132
- // src/types/message.ts
133
- var MessageGlobalKey = "adnbnMessage";
134
- var MessageTypeSeparator = ":";
135
-
136
- // src/message/MessageManager.ts
137
158
  var MessageManager = class _MessageManager {
138
159
  handlers = /* @__PURE__ */ new Set();
139
160
  unsubscribe = null;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/entry/core/Builder.ts","../../../src/entry/transport/resolvers/definition.ts","../../../src/entry/transport/AbstractBuilder.ts","../../../src/transport/BaseTransport.ts","../../../src/transport/RegisterTransport.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/transport/TransportManager.ts","../../../src/types/service.ts","../../../src/service/ServiceManager.ts","../../../src/service/providers/RegisterService.ts","../../../src/entry/service/Builder.ts","../../../src/entry/service/index.ts"],"names":["args","get","nanoid","onMessage","sendTabMessage","sendMessage","isBackground","Builder_default"],"mappings":"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","file":"index.cjs","sourcesContent":["import {EntrypointBuilder, EntrypointConstructorParameter} from \"@typing/entrypoint\";\n\nexport default abstract class implements EntrypointBuilder {\n public abstract build(): Promise<void>;\n\n public abstract destroy(): Promise<void>;\n\n public static resolver<T extends new (definition: any) => EntrypointBuilder>(this: T) {\n return (definition: EntrypointConstructorParameter<T>): void => {\n new this(definition).build().catch(e => {\n console.error(\"Failed to build entrypoint:\", e);\n });\n };\n }\n}\n","import {\n TransportDefinition,\n TransportInitGetter,\n TransportMainHandler,\n TransportOptions,\n TransportType,\n} from \"@typing/transport\";\nimport {RelayDefinition, RelayMainHandler} from \"@typing/relay\";\nimport {OffscreenDefinition, OffscreenMainHandler} from \"@typing/offscreen\";\n\nexport const isValidTransportDefinition = <O extends TransportOptions, T extends TransportType>(\n definition: any\n): definition is TransportDefinition<O, T> & RelayDefinition<T> & OffscreenDefinition<T> => {\n return definition && typeof definition === \"object\" && definition.constructor === Object;\n};\n\nexport const isValidTransportInitFunction = <O extends TransportOptions, T extends TransportType>(\n init: any\n): init is TransportInitGetter<O, T> => {\n return init && typeof init === \"function\";\n};\n\nexport const isValidTransportMainFunction = <O extends TransportOptions, T extends TransportType>(\n main: any\n): main is TransportMainHandler<O, T> & RelayMainHandler<T> & OffscreenMainHandler<T> => {\n return main && typeof main === \"function\";\n};\n\nexport const isValidTransportName = (name: any): name is string => {\n return name && typeof name === \"string\" && name.trim().length > 0;\n};\n","import Builder from \"@entry/core/Builder\";\n\nimport {isValidTransportInitFunction, isValidTransportMainFunction, isValidTransportName} from \"./resolvers\";\n\nimport {\n TransportOptions,\n TransportRegister,\n TransportResolvedDefinition,\n TransportType,\n TransportUnresolvedDefinition,\n} from \"@typing/transport\";\nimport {EntrypointBuilder} from \"@typing/entrypoint\";\n\n// prettier-ignore\nexport default abstract class<\n O extends TransportOptions,\n T extends TransportType = TransportType\n> extends Builder implements EntrypointBuilder {\n protected readonly definition: TransportResolvedDefinition<O, T>;\n\n protected instance?: TransportRegister<T, [O]>;\n\n protected abstract transport(): TransportRegister<T, [O]>;\n\n protected constructor(definition: TransportUnresolvedDefinition<O, T>) {\n super();\n\n const {name, init} = definition;\n\n if (!isValidTransportInitFunction(init)) {\n throw new Error(\"The transport entrypoint must export a init function\");\n }\n\n if (!isValidTransportName(name)) {\n throw new Error(\"The transport entrypoint must export a name string\");\n }\n\n this.definition = {\n ...definition,\n name,\n init,\n };\n }\n\n public get(): T {\n if (!this.instance) {\n throw new Error(\"Before using get function run build() method\");\n }\n\n return this.instance.get();\n }\n\n public async build(): Promise<void> {\n await this.destroy();\n\n const {name, init, main, ...definition} = this.definition;\n\n const options: TransportOptions = {\n name,\n ...definition,\n };\n\n this.instance = this.transport();\n\n this.instance.register(options as O);\n\n if (isValidTransportMainFunction(main)) {\n await main(this.instance.get(), options);\n }\n }\n\n public async destroy(): Promise<void> {\n this.instance?.destroy();\n\n this.instance = undefined;\n }\n}\n","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 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 {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 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 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 AbstractBuilder from \"@entry/transport/AbstractBuilder\";\n\nimport RegisterService from \"@service/providers/RegisterService\";\n\nimport {ServiceOptions, ServiceUnresolvedDefinition} from \"@typing/service\";\nimport {TransportName, TransportType} from \"@typing/transport\";\n\nexport default class<T extends TransportType = TransportType> extends AbstractBuilder<ServiceOptions, T> {\n constructor(definition: ServiceUnresolvedDefinition<T>) {\n super(definition);\n }\n\n protected transport(): RegisterService<TransportName, T, [ServiceOptions]> {\n const {name, init} = this.definition;\n\n return new RegisterService(name, init);\n }\n}\n","import Builder from \"./Builder\";\n\nexport default Builder.resolver();\n"]}
1
+ {"version":3,"sources":["../../../src/entry/core/Builder.ts","../../../src/entry/transport/resolvers/definition.ts","../../../src/entry/transport/AbstractBuilder.ts","../../../src/transport/BaseTransport.ts","../../../src/types/message.ts","../../../src/transport/RegisterTransport.ts","../../../src/message/providers/AbstractMessage.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/transport/TransportManager.ts","../../../src/types/service.ts","../../../src/service/ServiceManager.ts","../../../src/service/providers/RegisterService.ts","../../../src/entry/service/Builder.ts","../../../src/entry/service/index.ts"],"names":["args","get","nanoid","onMessage","sendTabMessage","sendMessage","isBackground","Builder_default"],"mappings":"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","file":"index.cjs","sourcesContent":["import {EntrypointBuilder, EntrypointConstructorParameter} from \"@typing/entrypoint\";\n\nexport default abstract class implements EntrypointBuilder {\n public abstract build(): Promise<void>;\n\n public abstract destroy(): Promise<void>;\n\n public static resolver<T extends new (definition: any) => EntrypointBuilder>(this: T) {\n return (definition: EntrypointConstructorParameter<T>): void => {\n new this(definition).build().catch(e => {\n console.error(\"Failed to build entrypoint:\", e);\n });\n };\n }\n}\n","import {\n TransportDefinition,\n TransportInitGetter,\n TransportMainHandler,\n TransportOptions,\n TransportType,\n} from \"@typing/transport\";\nimport {RelayDefinition, RelayMainHandler} from \"@typing/relay\";\nimport {OffscreenDefinition, OffscreenMainHandler} from \"@typing/offscreen\";\n\nexport const isValidTransportDefinition = <O extends TransportOptions, T extends TransportType>(\n definition: any\n): definition is TransportDefinition<O, T> & RelayDefinition<T> & OffscreenDefinition<T> => {\n return definition && typeof definition === \"object\" && definition.constructor === Object;\n};\n\nexport const isValidTransportInitFunction = <O extends TransportOptions, T extends TransportType>(\n init: any\n): init is TransportInitGetter<O, T> => {\n return init && typeof init === \"function\";\n};\n\nexport const isValidTransportMainFunction = <O extends TransportOptions, T extends TransportType>(\n main: any\n): main is TransportMainHandler<O, T> & RelayMainHandler<T> & OffscreenMainHandler<T> => {\n return main && typeof main === \"function\";\n};\n\nexport const isValidTransportName = (name: any): name is string => {\n return name && typeof name === \"string\" && name.trim().length > 0;\n};\n","import Builder from \"@entry/core/Builder\";\n\nimport {isValidTransportInitFunction, isValidTransportMainFunction, isValidTransportName} from \"./resolvers\";\n\nimport {\n TransportOptions,\n TransportRegister,\n TransportResolvedDefinition,\n TransportType,\n TransportUnresolvedDefinition,\n} from \"@typing/transport\";\nimport {EntrypointBuilder} from \"@typing/entrypoint\";\n\n// prettier-ignore\nexport default abstract class<\n O extends TransportOptions,\n T extends TransportType = TransportType\n> extends Builder implements EntrypointBuilder {\n protected readonly definition: TransportResolvedDefinition<O, T>;\n\n protected instance?: TransportRegister<T, [O]>;\n\n protected abstract transport(): TransportRegister<T, [O]>;\n\n protected constructor(definition: TransportUnresolvedDefinition<O, T>) {\n super();\n\n const {name, init} = definition;\n\n if (!isValidTransportInitFunction(init)) {\n throw new Error(\"The transport entrypoint must export a init function\");\n }\n\n if (!isValidTransportName(name)) {\n throw new Error(\"The transport entrypoint must export a name string\");\n }\n\n this.definition = {\n ...definition,\n name,\n init,\n };\n }\n\n public get(): T {\n if (!this.instance) {\n throw new Error(\"Before using get function run build() method\");\n }\n\n return this.instance.get();\n }\n\n public async build(): Promise<void> {\n await this.destroy();\n\n const {name, init, main, ...definition} = this.definition;\n\n const options: TransportOptions = {\n name,\n ...definition,\n };\n\n this.instance = this.transport();\n\n this.instance.register(options as O);\n\n if (isValidTransportMainFunction(main)) {\n await main(this.instance.get(), options);\n }\n }\n\n public async destroy(): Promise<void> {\n this.instance?.destroy();\n\n this.instance = undefined;\n }\n}\n","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","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 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 {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","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 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 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 AbstractBuilder from \"@entry/transport/AbstractBuilder\";\n\nimport RegisterService from \"@service/providers/RegisterService\";\n\nimport {ServiceOptions, ServiceUnresolvedDefinition} from \"@typing/service\";\nimport {TransportName, TransportType} from \"@typing/transport\";\n\nexport default class<T extends TransportType = TransportType> extends AbstractBuilder<ServiceOptions, T> {\n constructor(definition: ServiceUnresolvedDefinition<T>) {\n super(definition);\n }\n\n protected transport(): RegisterService<TransportName, T, [ServiceOptions]> {\n const {name, init} = this.definition;\n\n return new RegisterService(name, init);\n }\n}\n","import Builder from \"./Builder\";\n\nexport default Builder.resolver();\n"]}
@@ -1,8 +1,9 @@
1
- import { S as ServiceDefinition } from '../../service-DsivypLQ.mjs';
2
- import { e as TransportType } from '../../transport-B_uYwoGi.mjs';
3
- import '../../background-CyGGjmBx.mjs';
4
- import '../../helpers-DnV3N7fU.mjs';
1
+ import { S as ServiceDefinition } from '../../service-C9HbDQPE.mjs';
2
+ import { e as TransportType } from '../../transport-BrbirhXv.mjs';
3
+ import '../../background-cxLBji1Q.mjs';
4
+ import '../../helpers-YDFORuZz.mjs';
5
5
  import 'utility-types';
6
+ import '../../message-jsmkeGHC.mjs';
6
7
 
7
8
  declare const _default: (definition: Partial<ServiceDefinition<TransportType>>) => void;
8
9
 
@@ -1,8 +1,9 @@
1
- import { S as ServiceDefinition } from '../../service-BhJhIk-O.js';
2
- import { e as TransportType } from '../../transport-BPmSUoEU.js';
3
- import '../../background-Zjiqg60g.js';
4
- import '../../helpers-DnV3N7fU.js';
1
+ import { S as ServiceDefinition } from '../../service-6FdoYGNC.js';
2
+ import { e as TransportType } from '../../transport-Co9Oxp0-.js';
3
+ import '../../background-CpVjDFHQ.js';
4
+ import '../../helpers-YDFORuZz.js';
5
5
  import 'utility-types';
6
+ import '../../message-jsmkeGHC.js';
6
7
 
7
8
  declare const _default: (definition: Partial<ServiceDefinition<TransportType>>) => void;
8
9
 
@@ -82,6 +82,11 @@ var BaseTransport_default = class {
82
82
  }
83
83
  };
84
84
 
85
+ // src/types/message.ts
86
+ var MessageGlobalKey = "adnbnMessage";
87
+ var MessageTypeSeparator = ":";
88
+ var MessageSenderProperty = "_sender";
89
+
85
90
  // src/transport/RegisterTransport.ts
86
91
  var RegisterTransport_default = class extends BaseTransport_default {
87
92
  constructor(name, init) {
@@ -94,23 +99,45 @@ var RegisterTransport_default = class extends BaseTransport_default {
94
99
  }
95
100
  const instance = this.init(...args);
96
101
  this.manager().add(this.name, instance);
97
- this.message().watch(async ({ path, args: args2 }) => {
102
+ this.message().watch(async ({ path, args: args2 }, sender) => {
98
103
  try {
104
+ this.injectSender(instance, sender);
99
105
  const property = path == null ? instance : get(instance, path);
100
106
  if (property === void 0) {
101
107
  throw new Error(`Property not found at path "${path}" in "${this.name}"`);
102
108
  }
109
+ let result;
103
110
  if (typeof property === "function") {
104
- return await property.apply(instance, args2);
111
+ result = await property.apply(instance, args2);
112
+ } else {
113
+ result = property;
105
114
  }
106
- return property;
115
+ this.clearSender(instance);
116
+ return result;
107
117
  } catch (error) {
108
- console.error("register() error", error);
118
+ console.error(`Error during message handler registration for transport "${this.name}"`, error);
119
+ this.clearSender(instance);
109
120
  throw error;
110
121
  }
111
122
  });
112
123
  return instance;
113
124
  }
125
+ injectSender(instance, sender) {
126
+ if (!Object.getOwnPropertyDescriptor(instance, MessageSenderProperty)) {
127
+ Object.defineProperty(instance, MessageSenderProperty, {
128
+ configurable: true,
129
+ enumerable: false,
130
+ writable: true,
131
+ value: void 0
132
+ });
133
+ }
134
+ instance[MessageSenderProperty] = sender;
135
+ }
136
+ clearSender(instance) {
137
+ if (Object.getOwnPropertyDescriptor(instance, MessageSenderProperty)) {
138
+ instance[MessageSenderProperty] = void 0;
139
+ }
140
+ }
114
141
  };
115
142
  var AbstractMessage = class {
116
143
  buildMessage(type, data) {
@@ -122,12 +149,6 @@ var AbstractMessage = class {
122
149
  };
123
150
  }
124
151
  };
125
-
126
- // src/types/message.ts
127
- var MessageGlobalKey = "adnbnMessage";
128
- var MessageTypeSeparator = ":";
129
-
130
- // src/message/MessageManager.ts
131
152
  var MessageManager = class _MessageManager {
132
153
  handlers = /* @__PURE__ */ new Set();
133
154
  unsubscribe = null;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/entry/core/Builder.ts","../../../src/entry/transport/resolvers/definition.ts","../../../src/entry/transport/AbstractBuilder.ts","../../../src/transport/BaseTransport.ts","../../../src/transport/RegisterTransport.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/transport/TransportManager.ts","../../../src/types/service.ts","../../../src/service/ServiceManager.ts","../../../src/service/providers/RegisterService.ts","../../../src/entry/service/Builder.ts","../../../src/entry/service/index.ts"],"names":["args","Builder_default"],"mappings":"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","file":"index.js","sourcesContent":["import {EntrypointBuilder, EntrypointConstructorParameter} from \"@typing/entrypoint\";\n\nexport default abstract class implements EntrypointBuilder {\n public abstract build(): Promise<void>;\n\n public abstract destroy(): Promise<void>;\n\n public static resolver<T extends new (definition: any) => EntrypointBuilder>(this: T) {\n return (definition: EntrypointConstructorParameter<T>): void => {\n new this(definition).build().catch(e => {\n console.error(\"Failed to build entrypoint:\", e);\n });\n };\n }\n}\n","import {\n TransportDefinition,\n TransportInitGetter,\n TransportMainHandler,\n TransportOptions,\n TransportType,\n} from \"@typing/transport\";\nimport {RelayDefinition, RelayMainHandler} from \"@typing/relay\";\nimport {OffscreenDefinition, OffscreenMainHandler} from \"@typing/offscreen\";\n\nexport const isValidTransportDefinition = <O extends TransportOptions, T extends TransportType>(\n definition: any\n): definition is TransportDefinition<O, T> & RelayDefinition<T> & OffscreenDefinition<T> => {\n return definition && typeof definition === \"object\" && definition.constructor === Object;\n};\n\nexport const isValidTransportInitFunction = <O extends TransportOptions, T extends TransportType>(\n init: any\n): init is TransportInitGetter<O, T> => {\n return init && typeof init === \"function\";\n};\n\nexport const isValidTransportMainFunction = <O extends TransportOptions, T extends TransportType>(\n main: any\n): main is TransportMainHandler<O, T> & RelayMainHandler<T> & OffscreenMainHandler<T> => {\n return main && typeof main === \"function\";\n};\n\nexport const isValidTransportName = (name: any): name is string => {\n return name && typeof name === \"string\" && name.trim().length > 0;\n};\n","import Builder from \"@entry/core/Builder\";\n\nimport {isValidTransportInitFunction, isValidTransportMainFunction, isValidTransportName} from \"./resolvers\";\n\nimport {\n TransportOptions,\n TransportRegister,\n TransportResolvedDefinition,\n TransportType,\n TransportUnresolvedDefinition,\n} from \"@typing/transport\";\nimport {EntrypointBuilder} from \"@typing/entrypoint\";\n\n// prettier-ignore\nexport default abstract class<\n O extends TransportOptions,\n T extends TransportType = TransportType\n> extends Builder implements EntrypointBuilder {\n protected readonly definition: TransportResolvedDefinition<O, T>;\n\n protected instance?: TransportRegister<T, [O]>;\n\n protected abstract transport(): TransportRegister<T, [O]>;\n\n protected constructor(definition: TransportUnresolvedDefinition<O, T>) {\n super();\n\n const {name, init} = definition;\n\n if (!isValidTransportInitFunction(init)) {\n throw new Error(\"The transport entrypoint must export a init function\");\n }\n\n if (!isValidTransportName(name)) {\n throw new Error(\"The transport entrypoint must export a name string\");\n }\n\n this.definition = {\n ...definition,\n name,\n init,\n };\n }\n\n public get(): T {\n if (!this.instance) {\n throw new Error(\"Before using get function run build() method\");\n }\n\n return this.instance.get();\n }\n\n public async build(): Promise<void> {\n await this.destroy();\n\n const {name, init, main, ...definition} = this.definition;\n\n const options: TransportOptions = {\n name,\n ...definition,\n };\n\n this.instance = this.transport();\n\n this.instance.register(options as O);\n\n if (isValidTransportMainFunction(main)) {\n await main(this.instance.get(), options);\n }\n }\n\n public async destroy(): Promise<void> {\n this.instance?.destroy();\n\n this.instance = undefined;\n }\n}\n","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 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 {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 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 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 AbstractBuilder from \"@entry/transport/AbstractBuilder\";\n\nimport RegisterService from \"@service/providers/RegisterService\";\n\nimport {ServiceOptions, ServiceUnresolvedDefinition} from \"@typing/service\";\nimport {TransportName, TransportType} from \"@typing/transport\";\n\nexport default class<T extends TransportType = TransportType> extends AbstractBuilder<ServiceOptions, T> {\n constructor(definition: ServiceUnresolvedDefinition<T>) {\n super(definition);\n }\n\n protected transport(): RegisterService<TransportName, T, [ServiceOptions]> {\n const {name, init} = this.definition;\n\n return new RegisterService(name, init);\n }\n}\n","import Builder from \"./Builder\";\n\nexport default Builder.resolver();\n"]}
1
+ {"version":3,"sources":["../../../src/entry/core/Builder.ts","../../../src/entry/transport/resolvers/definition.ts","../../../src/entry/transport/AbstractBuilder.ts","../../../src/transport/BaseTransport.ts","../../../src/types/message.ts","../../../src/transport/RegisterTransport.ts","../../../src/message/providers/AbstractMessage.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/transport/TransportManager.ts","../../../src/types/service.ts","../../../src/service/ServiceManager.ts","../../../src/service/providers/RegisterService.ts","../../../src/entry/service/Builder.ts","../../../src/entry/service/index.ts"],"names":["args","Builder_default"],"mappings":";;;;;AAEA,IAAO,kBAAP,MAA2D;AAAA,EAKvD,OAAc,QAAwE,GAAA;AAClF,IAAA,OAAO,CAAC,UAAwD,KAAA;AAC5D,MAAA,IAAI,KAAK,UAAU,CAAA,CAAE,KAAM,EAAA,CAAE,MAAM,CAAK,CAAA,KAAA;AACpC,QAAQ,OAAA,CAAA,KAAA,CAAM,+BAA+B,CAAC,CAAA;AAAA,OACjD,CAAA;AAAA,KACL;AAAA;AAER,CAAA;;;ACEO,IAAM,4BAAA,GAA+B,CACxC,IACoC,KAAA;AACpC,EAAO,OAAA,IAAA,IAAQ,OAAO,IAAS,KAAA,UAAA;AACnC,CAAA;AAEO,IAAM,4BAAA,GAA+B,CACxC,IACqF,KAAA;AACrF,EAAO,OAAA,IAAA,IAAQ,OAAO,IAAS,KAAA,UAAA;AACnC,CAAA;AAEO,IAAM,oBAAA,GAAuB,CAAC,IAA8B,KAAA;AAC/D,EAAA,OAAO,QAAQ,OAAO,IAAA,KAAS,YAAY,IAAK,CAAA,IAAA,GAAO,MAAS,GAAA,CAAA;AACpE,CAAA;;;AChBA,IAAO,uBAAA,GAAP,cAGU,eAAqC,CAAA;AAAA,EACxB,UAAA;AAAA,EAET,QAAA;AAAA,EAIA,YAAY,UAAiD,EAAA;AACnE,IAAM,KAAA,EAAA;AAEN,IAAM,MAAA,EAAC,IAAM,EAAA,IAAA,EAAQ,GAAA,UAAA;AAErB,IAAI,IAAA,CAAC,4BAA6B,CAAA,IAAI,CAAG,EAAA;AACrC,MAAM,MAAA,IAAI,MAAM,sDAAsD,CAAA;AAAA;AAG1E,IAAI,IAAA,CAAC,oBAAqB,CAAA,IAAI,CAAG,EAAA;AAC7B,MAAM,MAAA,IAAI,MAAM,oDAAoD,CAAA;AAAA;AAGxE,IAAA,IAAA,CAAK,UAAa,GAAA;AAAA,MACd,GAAG,UAAA;AAAA,MACH,IAAA;AAAA,MACA;AAAA,KACJ;AAAA;AACJ,EAEO,GAAS,GAAA;AACZ,IAAI,IAAA,CAAC,KAAK,QAAU,EAAA;AAChB,MAAM,MAAA,IAAI,MAAM,8CAA8C,CAAA;AAAA;AAGlE,IAAO,OAAA,IAAA,CAAK,SAAS,GAAI,EAAA;AAAA;AAC7B,EAEA,MAAa,KAAuB,GAAA;AAChC,IAAA,MAAM,KAAK,OAAQ,EAAA;AAEnB,IAAA,MAAM,EAAC,IAAM,EAAA,IAAA,EAAM,MAAM,GAAG,UAAA,KAAc,IAAK,CAAA,UAAA;AAE/C,IAAA,MAAM,OAA4B,GAAA;AAAA,MAC9B,IAAA;AAAA,MACA,GAAG;AAAA,KACP;AAEA,IAAK,IAAA,CAAA,QAAA,GAAW,KAAK,SAAU,EAAA;AAE/B,IAAK,IAAA,CAAA,QAAA,CAAS,SAAS,OAAY,CAAA;AAEnC,IAAI,IAAA,4BAAA,CAA6B,IAAI,CAAG,EAAA;AACpC,MAAA,MAAM,IAAK,CAAA,IAAA,CAAK,QAAS,CAAA,GAAA,IAAO,OAAO,CAAA;AAAA;AAC3C;AACJ,EAEA,MAAa,OAAyB,GAAA;AAvE1C,IAAA,IAAA,EAAA;AAwEQ,IAAA,CAAA,EAAA,GAAA,IAAA,CAAK,aAAL,IAAe,GAAA,MAAA,GAAA,EAAA,CAAA,OAAA,EAAA;AAEf,IAAA,IAAA,CAAK,QAAW,GAAA,MAAA;AAAA;AAExB,CAAA;;;AC1EA,IAAO,wBAAP,MAAmF;AAAA,EACrE,YAA+B,IAAS,EAAA;AAAT,IAAA,IAAA,CAAA,IAAA,GAAA,IAAA;AAAA;AAAU,EAI5C,GAAS,GAAA;AACZ,IAAA,OAAO,IAAK,CAAA,OAAA,EAAU,CAAA,GAAA,CAAI,KAAK,IAAI,CAAA;AAAA;AACvC,EAEO,OAAgB,GAAA;AACnB,IAAA,IAAA,CAAK,OAAQ,EAAA,CAAE,MAAO,CAAA,IAAA,CAAK,IAAI,CAAA;AAAA;AAEvC,CAAA;;;ACdO,IAAM,gBAAmB,GAAA,cAAA;AAEzB,IAAM,oBAAuB,GAAA,GAAA;AAE7B,IAAM,qBAAwB,GAAA,SAAA;;;ACIrC,IAAO,yBAAA,GAAP,cAIU,qBAAuD,CAAA;AAAA,EACnD,WAAA,CACN,MACmB,IACrB,EAAA;AACE,IAAA,KAAA,CAAM,IAAI,CAAA;AAFS,IAAA,IAAA,CAAA,IAAA,GAAA,IAAA;AAAA;AAGvB,EAIO,YAAY,IAAS,EAAA;AACxB,IAAA,IAAI,KAAK,OAAQ,EAAA,CAAE,GAAI,CAAA,IAAA,CAAK,IAAI,CAAG,EAAA;AAC/B,MAAA,MAAM,IAAI,KAAA,CAAM,CAAyB,sBAAA,EAAA,IAAA,CAAK,IAAI,CAA4C,0CAAA,CAAA,CAAA;AAAA;AAGlG,IAAA,MAAM,QAAW,GAAA,IAAA,CAAK,IAAK,CAAA,GAAG,IAAI,CAAA;AAElC,IAAA,IAAA,CAAK,OAAQ,EAAA,CAAE,GAAI,CAAA,IAAA,CAAK,MAAM,QAAQ,CAAA;AAEtC,IAAK,IAAA,CAAA,OAAA,GAAU,KAAM,CAAA,OAAO,EAAC,IAAM,EAAA,IAAA,EAAAA,KAAI,EAAA,EAAG,MAAW,KAAA;AACjD,MAAI,IAAA;AACA,QAAK,IAAA,CAAA,YAAA,CAAa,UAAU,MAAM,CAAA;AAElC,QAAA,MAAM,WAAW,IAAQ,IAAA,IAAA,GAAO,QAAW,GAAA,GAAA,CAAI,UAAU,IAAI,CAAA;AAE7D,QAAA,IAAI,aAAa,KAAW,CAAA,EAAA;AACxB,UAAA,MAAM,IAAI,KAAM,CAAA,CAAA,4BAAA,EAA+B,IAAI,CAAS,MAAA,EAAA,IAAA,CAAK,IAAI,CAAG,CAAA,CAAA,CAAA;AAAA;AAG5E,QAAI,IAAA,MAAA;AAEJ,QAAI,IAAA,OAAO,aAAa,UAAY,EAAA;AAChC,UAAA,MAAA,GAAS,MAAM,QAAA,CAAS,KAAM,CAAA,QAAA,EAAUA,KAAI,CAAA;AAAA,SACzC,MAAA;AACH,UAAS,MAAA,GAAA,QAAA;AAAA;AAGb,QAAA,IAAA,CAAK,YAAY,QAAQ,CAAA;AAEzB,QAAO,OAAA,MAAA;AAAA,eACF,KAAO,EAAA;AACZ,QAAA,OAAA,CAAQ,KAAM,CAAA,CAAA,yDAAA,EAA4D,IAAK,CAAA,IAAI,KAAK,KAAK,CAAA;AAE7F,QAAA,IAAA,CAAK,YAAY,QAAQ,CAAA;AAEzB,QAAM,MAAA,KAAA;AAAA;AACV,KACH,CAAA;AAED,IAAO,OAAA,QAAA;AAAA;AACX,EAEQ,YAAA,CAAa,UAAa,MAA6B,EAAA;AAC3D,IAAA,IAAI,CAAC,MAAA,CAAO,wBAAyB,CAAA,QAAA,EAAU,qBAAqB,CAAG,EAAA;AACnE,MAAO,MAAA,CAAA,cAAA,CAAe,UAAU,qBAAuB,EAAA;AAAA,QACnD,YAAc,EAAA,IAAA;AAAA,QACd,UAAY,EAAA,KAAA;AAAA,QACZ,QAAU,EAAA,IAAA;AAAA,QACV,KAAO,EAAA;AAAA,OACV,CAAA;AAAA;AAGL,IAAC,QAAA,CAAiB,qBAAqB,CAAI,GAAA,MAAA;AAAA;AAC/C,EAEQ,YAAY,QAAmB,EAAA;AACnC,IAAA,IAAI,MAAO,CAAA,wBAAA,CAAyB,QAAU,EAAA,qBAAqB,CAAG,EAAA;AAClE,MAAC,QAAA,CAAiB,qBAAqB,CAAI,GAAA,MAAA;AAAA;AAC/C;AAER,CAAA;ACrEA,IAA8B,kBAA9B,MAEA;AAAA,EAac,YAAA,CAAuC,MAAS,IAA4C,EAAA;AAClG,IAAO,OAAA;AAAA,MACH,IAAI,MAAO,EAAA;AAAA,MACX,IAAA;AAAA,MACA,IAAA;AAAA,MACA,SAAA,EAAW,KAAK,GAAI;AAAA,KACxB;AAAA;AAER,CAAA;ACzBA,IAAqB,cAAA,GAArB,MAAqB,eAA4C,CAAA;AAAA,EACrD,QAAA,uBAAuC,GAAI,EAAA;AAAA,EAC3C,WAAmC,GAAA,IAAA;AAAA,EAE3C,OAAc,WAA8D,GAAA;AAfhF,IAAA,IAAA,EAAA;AAgBQ,IAAA,OAAQ,UAAW,CAAA,EAAA,GAAA,gBAAA,CAAA,KAAX,UAAiC,CAAA,EAAA,CAAA,GAAA,IAAI,eAAkB,EAAA,CAAA;AAAA;AACnE,EAEA,WAAc,GAAA;AACV,IAAA,IAAA,CAAK,QAAW,GAAA,IAAA,CAAK,QAAS,CAAA,IAAA,CAAK,IAAI,CAAA;AAAA;AAC3C,EAEO,IAAI,OAA4B,EAAA;AACnC,IAAK,IAAA,CAAA,QAAA,CAAS,IAAI,OAAO,CAAA;AACzB,IAAA,IAAA,CAAK,cAAe,EAAA;AAAA;AACxB,EAEO,OAAO,OAA4B,EAAA;AACtC,IAAK,IAAA,CAAA,QAAA,CAAS,OAAO,OAAO,CAAA;AAC5B,IAAA,IAAA,CAAK,cAAe,EAAA;AAAA;AACxB,EAEO,KAAQ,GAAA;AACX,IAAK,IAAA,CAAA,QAAA,uBAAe,GAAI,EAAA;AACxB,IAAA,IAAA,CAAK,cAAe,EAAA;AAAA;AACxB,EAEQ,cAAiB,GAAA;AACrB,IAAA,IAAI,KAAK,QAAS,CAAA,IAAA,GAAO,CAAK,IAAA,CAAC,KAAK,WAAa,EAAA;AAC7C,MAAK,IAAA,CAAA,WAAA,GAAc,SAAU,CAAA,IAAA,CAAK,QAAQ,CAAA;AAAA,eACnC,IAAK,CAAA,QAAA,CAAS,IAAS,KAAA,CAAA,IAAK,KAAK,WAAa,EAAA;AACrD,MAAA,IAAA,CAAK,WAAY,EAAA;AACjB,MAAA,IAAA,CAAK,WAAc,GAAA,IAAA;AAAA;AACvB;AACJ,EAEQ,QAAA,CACJ,OACA,EAAA,MAAA,EACA,YACc,EAAA;AACd,IAAA,IAAI,CAAC,OAAW,IAAA,OAAO,YAAY,QAAY,IAAA,CAAC,QAAQ,IAAM,EAAA;AAE9D,IAAA,MAAM,UAA0B,EAAC;AAEjC,IAAW,KAAA,MAAA,OAAA,IAAW,KAAK,QAAU,EAAA;AACjC,MAAI,IAAA;AACA,QAAA,MAAM,SAAS,OAAQ,CAAA,GAAA,CAAI,QAAQ,IAAM,EAAA,OAAA,CAAQ,MAAM,MAAM,CAAA;AAC7D,QAAA,IAAI,WAAW,KAAW,CAAA,EAAA;AACtB,UAAA,OAAA,CAAQ,IAAK,CAAA,OAAA,CAAQ,OAAQ,CAAA,MAAM,CAAC,CAAA;AAAA;AACxC,eACK,GAAK,EAAA;AACV,QAAQ,OAAA,CAAA,KAAA,CAAM,0BAA0B,GAAG,CAAA;AAAA;AAC/C;AAGJ,IAAI,IAAA,OAAA,CAAQ,SAAS,CAAG,EAAA;AACpB,MAAA,MAAM,IAAI,KAAA;AAAA,QACN,CAAA,cAAA,EAAiB,QAAQ,IAAI,CAAA,2EAAA;AAAA,OACjC;AAAA;AAGJ,IAAI,IAAA,OAAA,CAAQ,WAAW,CAAG,EAAA;AACtB,MAAQ,OAAA,CAAA,CAAC,CAAE,CAAA,IAAA,CAAK,YAAY,CAAA;AAC5B,MAAO,OAAA,IAAA;AAAA;AACX;AAER,CAAA;;;ACrEA,IAA8B,kBAA9B,MAAwG;AAMxG,CAAA;;;ACLA,IAAqB,aAAA,GAArB,cAAwE,eAAmB,CAAA;AAAA,EACvF,WAAA,CACY,aACA,OACV,EAAA;AACE,IAAM,KAAA,EAAA;AAHE,IAAA,IAAA,CAAA,WAAA,GAAA,WAAA;AACA,IAAA,IAAA,CAAA,OAAA,GAAA,OAAA;AAAA;AAGZ,EAEO,GAAA,CACH,IACA,EAAA,IAAA,EACA,MAC8C,EAAA;AAC9C,IAAI,IAAA,IAAA,KAAS,KAAK,WAAa,EAAA;AAC3B,MAAO,OAAA,IAAA,CAAK,OAAQ,CAAA,IAAA,EAAM,MAAM,CAAA;AAAA;AACpC;AAER,CAAA;;;ACjBA,IAAqB,UAAA,GAArB,cAAqE,eAAmB,CAAA;AAAA,EACpF,YAAoB,GAA2B,EAAA;AAC3C,IAAM,KAAA,EAAA;AADU,IAAA,IAAA,CAAA,GAAA,GAAA,GAAA;AAAA;AAEpB,EAEO,GAAA,CACH,IACA,EAAA,IAAA,EACA,MAC8C,EAAA;AAC9C,IAAM,MAAA,OAAA,GAAU,IAAK,CAAA,GAAA,CAAI,IAAI,CAAA;AAC7B,IAAA,IAAI,OAAS,EAAA;AACT,MAAI,IAAA,OAAO,YAAY,UAAY,EAAA;AAC/B,QAAO,OAAA,OAAA,CAAQ,MAAM,MAAM,CAAA;AAAA,OACxB,MAAA;AACH,QAAA,MAAM,IAAI,KAAA,CAAM,CAAqB,kBAAA,EAAA,IAAI,CAA4C,0CAAA,CAAA,CAAA;AAAA;AACzF;AACJ;AAER,CAAA;;;ACnBA,IAAqB,cAAA,GAArB,cAAmG,eAAmB,CAAA;AAAA,EAClH,YAAoB,cAA6C,EAAA;AAC7D,IAAM,KAAA,EAAA;AADU,IAAA,IAAA,CAAA,cAAA,GAAA,cAAA;AAAA;AAEpB,EAEO,GAAA,CACH,IACA,EAAA,IAAA,EACA,MAC8C,EAAA;AAC9C,IAAA,OAAO,IAAK,CAAA,cAAA,CAAe,IAAM,EAAA,IAAA,EAAM,MAAM,CAAA;AAAA;AAErD,CAAA;;;ACFA,IAAqB,OAAA,GAArB,MAAqB,QAAA,SAA6C,eAAuC,CAAA;AAAA,EACrG,OAAe,QAA8C,GAAA,IAAA;AAAA,EAE7D,OAAc,WAA2C,GAAA;AACrD,IAAA,OAAQ,IAAK,CAAA,QAAA,KAAL,IAAK,CAAA,QAAA,GAAa,IAAI,QAAW,EAAA,CAAA;AAAA;AAC7C,EAEA,IAAc,OAA6B,GAAA;AACvC,IAAA,OAAO,eAAe,WAAe,EAAA;AAAA;AACzC,EAEO,IAAA,CACH,IACA,EAAA,IAAA,EACA,OAC8B,EAAA;AAC9B,IAAA,MAAM,OAAU,GAAA,IAAA,CAAK,YAAa,CAAA,IAAA,EAAM,IAAI,CAAA;AAE5C,IAAA,IAAI,OAAS,EAAA;AACT,MAAI,IAAA,OAAO,YAAY,QAAU,EAAA;AAC7B,QAAO,OAAA,cAAA,CAAe,SAAS,OAAO,CAAA;AAAA;AAG1C,MAAA,MAAM,EAAC,KAAA,EAAO,GAAG,KAAA,EAAS,GAAA,OAAA;AAE1B,MAAO,OAAA,cAAA,CAAe,KAAO,EAAA,OAAA,EAAS,KAAK,CAAA;AAAA;AAG/C,IAAA,OAAO,YAAY,OAAO,CAAA;AAAA;AAC9B,EAEO,KAAA,CACH,MACA,IACU,EAAA;AACV,IAAI,IAAA,OAAA;AAEJ,IAAI,IAAA,OAAO,SAAS,UAAY,EAAA;AAC5B,MAAU,OAAA,GAAA,IAAI,eAAqB,IAAI,CAAA;AAAA,KAChC,MAAA,IAAA,OAAO,IAAS,KAAA,QAAA,IAAY,SAAS,MAAW,EAAA;AACvD,MAAU,OAAA,GAAA,IAAI,WAAc,IAAI,CAAA;AAAA,KACzB,MAAA,IAAA,OAAO,IAAS,KAAA,QAAA,IAAY,IAAM,EAAA;AACzC,MAAU,OAAA,GAAA,IAAI,aAAiB,CAAA,IAAA,EAAM,IAAI,CAAA;AAAA,KACtC,MAAA;AACH,MAAM,MAAA,IAAI,MAAM,qCAAqC,CAAA;AAAA;AAGzD,IAAK,IAAA,CAAA,OAAA,CAAQ,IAAI,OAAO,CAAA;AAExB,IAAA,OAAO,MAAM,IAAA,CAAK,OAAQ,CAAA,MAAA,CAAO,OAAO,CAAA;AAAA;AAEhD,CAAA;;;AClEA,IAA8B,mBAA9B,MAAmF;AAAA,EACrE,OAAA,GAAkE,IAAI,OAAQ,EAAA;AAAA,EAIxF,MAAa,KAAK,IAA4B,EAAA;AAC1C,IAAA,OAAO,IAAK,CAAA,OAAA,CAAQ,IAAK,CAAA,IAAA,CAAK,KAAK,IAAI,CAAA;AAAA;AAC3C,EAEO,MAAM,OAA2E,EAAA;AACpF,IAAA,IAAA,CAAK,OAAQ,CAAA,KAAA,CAAM,IAAK,CAAA,GAAA,EAAK,OAAO,CAAA;AAAA;AAE5C,CAAA;;;ACbA,IAAqB,cAAA,GAArB,cAA4C,gBAAiB,CAAA;AAAA,EACtC,GAAA;AAAA,EAEnB,YAAY,IAAc,EAAA;AACtB,IAAM,KAAA,EAAA;AACN,IAAA,IAAA,CAAK,GAAM,GAAA,CAAA,OAAA,EAAU,oBAAoB,CAAA,EAAG,IAAI,CAAA,CAAA;AAAA;AAExD,CAAA;;;ACTA,IAA8B,mBAA9B,MAAmF;AAAA,EACvE,KAAA,uBAAY,GAAuD,EAAA;AAAA,EAEpE,GAAA,CAA6B,MAAS,QAAwC,EAAA;AACjF,IAAK,IAAA,CAAA,KAAA,CAAM,GAAI,CAAA,IAAA,EAAM,QAAQ,CAAA;AAE7B,IAAO,OAAA,IAAA;AAAA;AACX,EAEO,IAA6B,IAA6C,EAAA;AAC7E,IAAO,OAAA,IAAA,CAAK,KAAM,CAAA,GAAA,CAAI,IAAI,CAAA;AAAA;AAC9B,EAEO,IAAI,IAA8B,EAAA;AACrC,IAAO,OAAA,IAAA,CAAK,KAAM,CAAA,GAAA,CAAI,IAAI,CAAA;AAAA;AAC9B,EAEO,OAAgC,IAA6C,EAAA;AAChF,IAAM,MAAA,OAAA,GAAU,IAAK,CAAA,GAAA,CAAI,IAAI,CAAA;AAE7B,IAAK,IAAA,CAAA,KAAA,CAAM,OAAO,IAAI,CAAA;AAEtB,IAAO,OAAA,OAAA;AAAA;AACX,EAEO,KAAc,GAAA;AACjB,IAAA,IAAA,CAAK,MAAM,KAAM,EAAA;AAEjB,IAAO,OAAA,IAAA;AAAA;AAEf,CAAA;;;AC5BO,IAAM,gBAAmB,GAAA,cAAA;;;ACEhC,IAAqB,cAAA,GAArB,MAAqB,eAAA,SAAuB,gBAAiB,CAAA;AAAA,EACzD,OAAc,WAAwC,GAAA;AAP1D,IAAA,IAAA,EAAA;AAQQ,IAAA,OAAQ,UAAW,CAAA,EAAA,GAAA,gBAAA,CAAA,KAAX,UAAiC,CAAA,EAAA,CAAA,GAAA,IAAI,eAAe,EAAA,CAAA;AAAA;AAEpE,CAAA;;;ACDA,IAAO,uBAAA,GAAP,cAIU,yBAA2B,CAAA;AAAA,EACjC,WAAA,CACI,MACmB,IACrB,EAAA;AACE,IAAA,KAAA,CAAM,MAAM,IAAI,CAAA;AAFG,IAAA,IAAA,CAAA,IAAA,GAAA,IAAA;AAAA;AAGvB,EAEU,OAAU,GAAA;AAChB,IAAO,OAAA,IAAI,cAAe,CAAA,IAAA,CAAK,IAAI,CAAA;AAAA;AACvC,EAEU,OAAU,GAAA;AAChB,IAAA,OAAO,eAAe,WAAY,EAAA;AAAA;AACtC,EAEO,GAAS,GAAA;AACZ,IAAI,IAAA,CAAC,cAAgB,EAAA;AACjB,MAAA,MAAM,IAAI,KAAA,CAAM,CAAY,SAAA,EAAA,IAAA,CAAK,IAAI,CAAgD,8CAAA,CAAA,CAAA;AAAA;AAGzF,IAAA,OAAO,MAAM,GAAI,EAAA;AAAA;AAEzB,CAAA;;;AC7BA,IAAOC,gBAAAA,GAAP,cAAsE,uBAAmC,CAAA;AAAA,EACrG,YAAY,UAA4C,EAAA;AACpD,IAAA,KAAA,CAAM,UAAU,CAAA;AAAA;AACpB,EAEU,SAAiE,GAAA;AACvE,IAAA,MAAM,EAAC,IAAA,EAAM,IAAI,EAAA,GAAI,IAAK,CAAA,UAAA;AAE1B,IAAO,OAAA,IAAI,uBAAgB,CAAA,IAAA,EAAM,IAAI,CAAA;AAAA;AAE7C,CAAA;;;ACfO,IAAA,eAAA,GAAQA,iBAAQ,QAAS","file":"index.js","sourcesContent":["import {EntrypointBuilder, EntrypointConstructorParameter} from \"@typing/entrypoint\";\n\nexport default abstract class implements EntrypointBuilder {\n public abstract build(): Promise<void>;\n\n public abstract destroy(): Promise<void>;\n\n public static resolver<T extends new (definition: any) => EntrypointBuilder>(this: T) {\n return (definition: EntrypointConstructorParameter<T>): void => {\n new this(definition).build().catch(e => {\n console.error(\"Failed to build entrypoint:\", e);\n });\n };\n }\n}\n","import {\n TransportDefinition,\n TransportInitGetter,\n TransportMainHandler,\n TransportOptions,\n TransportType,\n} from \"@typing/transport\";\nimport {RelayDefinition, RelayMainHandler} from \"@typing/relay\";\nimport {OffscreenDefinition, OffscreenMainHandler} from \"@typing/offscreen\";\n\nexport const isValidTransportDefinition = <O extends TransportOptions, T extends TransportType>(\n definition: any\n): definition is TransportDefinition<O, T> & RelayDefinition<T> & OffscreenDefinition<T> => {\n return definition && typeof definition === \"object\" && definition.constructor === Object;\n};\n\nexport const isValidTransportInitFunction = <O extends TransportOptions, T extends TransportType>(\n init: any\n): init is TransportInitGetter<O, T> => {\n return init && typeof init === \"function\";\n};\n\nexport const isValidTransportMainFunction = <O extends TransportOptions, T extends TransportType>(\n main: any\n): main is TransportMainHandler<O, T> & RelayMainHandler<T> & OffscreenMainHandler<T> => {\n return main && typeof main === \"function\";\n};\n\nexport const isValidTransportName = (name: any): name is string => {\n return name && typeof name === \"string\" && name.trim().length > 0;\n};\n","import Builder from \"@entry/core/Builder\";\n\nimport {isValidTransportInitFunction, isValidTransportMainFunction, isValidTransportName} from \"./resolvers\";\n\nimport {\n TransportOptions,\n TransportRegister,\n TransportResolvedDefinition,\n TransportType,\n TransportUnresolvedDefinition,\n} from \"@typing/transport\";\nimport {EntrypointBuilder} from \"@typing/entrypoint\";\n\n// prettier-ignore\nexport default abstract class<\n O extends TransportOptions,\n T extends TransportType = TransportType\n> extends Builder implements EntrypointBuilder {\n protected readonly definition: TransportResolvedDefinition<O, T>;\n\n protected instance?: TransportRegister<T, [O]>;\n\n protected abstract transport(): TransportRegister<T, [O]>;\n\n protected constructor(definition: TransportUnresolvedDefinition<O, T>) {\n super();\n\n const {name, init} = definition;\n\n if (!isValidTransportInitFunction(init)) {\n throw new Error(\"The transport entrypoint must export a init function\");\n }\n\n if (!isValidTransportName(name)) {\n throw new Error(\"The transport entrypoint must export a name string\");\n }\n\n this.definition = {\n ...definition,\n name,\n init,\n };\n }\n\n public get(): T {\n if (!this.instance) {\n throw new Error(\"Before using get function run build() method\");\n }\n\n return this.instance.get();\n }\n\n public async build(): Promise<void> {\n await this.destroy();\n\n const {name, init, main, ...definition} = this.definition;\n\n const options: TransportOptions = {\n name,\n ...definition,\n };\n\n this.instance = this.transport();\n\n this.instance.register(options as O);\n\n if (isValidTransportMainFunction(main)) {\n await main(this.instance.get(), options);\n }\n }\n\n public async destroy(): Promise<void> {\n this.instance?.destroy();\n\n this.instance = undefined;\n }\n}\n","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","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 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 {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","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 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 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 AbstractBuilder from \"@entry/transport/AbstractBuilder\";\n\nimport RegisterService from \"@service/providers/RegisterService\";\n\nimport {ServiceOptions, ServiceUnresolvedDefinition} from \"@typing/service\";\nimport {TransportName, TransportType} from \"@typing/transport\";\n\nexport default class<T extends TransportType = TransportType> extends AbstractBuilder<ServiceOptions, T> {\n constructor(definition: ServiceUnresolvedDefinition<T>) {\n super(definition);\n }\n\n protected transport(): RegisterService<TransportName, T, [ServiceOptions]> {\n const {name, init} = this.definition;\n\n return new RegisterService(name, init);\n }\n}\n","import Builder from \"./Builder\";\n\nexport default Builder.resolver();\n"]}
@@ -1,12 +1,13 @@
1
- import { h as TransportOptions, e as TransportType, f as TransportDefinition, i as TransportInitGetter, j as TransportMainHandler } from '../../transport-B_uYwoGi.mjs';
2
- export { T as TransportName, k as TransportResolvedDefinition, l as TransportUnresolvedDefinition } from '../../transport-B_uYwoGi.mjs';
3
- import { R as RelayDefinition, a as RelayMainHandler } from '../../relay-BYeTCwKO.mjs';
4
- import { O as OffscreenDefinition, a as OffscreenMainHandler } from '../../offscreen-B9GiglgN.mjs';
1
+ import { h as TransportOptions, e as TransportType, f as TransportDefinition, i as TransportInitGetter, j as TransportMainHandler } from '../../transport-BrbirhXv.mjs';
2
+ export { T as TransportName, k as TransportResolvedDefinition, l as TransportUnresolvedDefinition } from '../../transport-BrbirhXv.mjs';
3
+ import { R as RelayDefinition, a as RelayMainHandler } from '../../relay-vaJ5R2iC.mjs';
4
+ import { O as OffscreenDefinition, a as OffscreenMainHandler } from '../../offscreen-2EP-rRfx.mjs';
5
5
  import 'utility-types';
6
- import '../../helpers-DnV3N7fU.mjs';
7
- import '../../content-BYoXVO6V.mjs';
6
+ import '../../helpers-YDFORuZz.mjs';
7
+ import '../../message-jsmkeGHC.mjs';
8
+ import '../../content-DrrPH4ri.mjs';
8
9
  import 'react';
9
- import '../../view-QDP2Maev.mjs';
10
+ import '../../view-Bs26Jcvi.mjs';
10
11
  import 'html-rspack-tags-plugin';
11
12
 
12
13
  declare const isValidTransportDefinition: <O extends TransportOptions, T extends TransportType>(definition: any) => definition is TransportDefinition<O, T> & RelayDefinition<T> & OffscreenDefinition<T>;
@@ -1,12 +1,13 @@
1
- import { h as TransportOptions, e as TransportType, f as TransportDefinition, i as TransportInitGetter, j as TransportMainHandler } from '../../transport-BPmSUoEU.js';
2
- export { T as TransportName, k as TransportResolvedDefinition, l as TransportUnresolvedDefinition } from '../../transport-BPmSUoEU.js';
3
- import { R as RelayDefinition, a as RelayMainHandler } from '../../relay-DymeeDe7.js';
4
- import { O as OffscreenDefinition, a as OffscreenMainHandler } from '../../offscreen-BG5Abe8V.js';
1
+ import { h as TransportOptions, e as TransportType, f as TransportDefinition, i as TransportInitGetter, j as TransportMainHandler } from '../../transport-Co9Oxp0-.js';
2
+ export { T as TransportName, k as TransportResolvedDefinition, l as TransportUnresolvedDefinition } from '../../transport-Co9Oxp0-.js';
3
+ import { R as RelayDefinition, a as RelayMainHandler } from '../../relay-DT46Ltms.js';
4
+ import { O as OffscreenDefinition, a as OffscreenMainHandler } from '../../offscreen-aHdkogKj.js';
5
5
  import 'utility-types';
6
- import '../../helpers-DnV3N7fU.js';
7
- import '../../content-sdYF4W-A.js';
6
+ import '../../helpers-YDFORuZz.js';
7
+ import '../../message-jsmkeGHC.js';
8
+ import '../../content-B0znLIjr.js';
8
9
  import 'react';
9
- import '../../view-D4dquvKl.js';
10
+ import '../../view-u9w7nMgw.js';
10
11
  import 'html-rspack-tags-plugin';
11
12
 
12
13
  declare const isValidTransportDefinition: <O extends TransportOptions, T extends TransportType>(definition: any) => definition is TransportDefinition<O, T> & RelayDefinition<T> & OffscreenDefinition<T>;
@@ -1,8 +1,8 @@
1
- import { a as ViewConfig, b as ViewDefinition, c as ViewRenderValue, d as ViewRenderHandler } from '../../view-QDP2Maev.mjs';
1
+ import { a as ViewConfig, b as ViewDefinition, c as ViewRenderValue, d as ViewRenderHandler } from '../../view-Bs26Jcvi.mjs';
2
2
  import 'react';
3
3
  import 'utility-types';
4
4
  import 'html-rspack-tags-plugin';
5
- import '../../helpers-DnV3N7fU.mjs';
5
+ import '../../helpers-YDFORuZz.mjs';
6
6
 
7
7
  declare const isViewDefinition: <T extends ViewConfig = ViewConfig>(definition: any) => definition is ViewDefinition<T>;
8
8
  declare const isValidViewDefinitionRenderValue: <T extends ViewConfig = ViewConfig>(definition: any) => definition is ViewRenderValue<T> | ViewRenderHandler<T>;
@@ -1,8 +1,8 @@
1
- import { a as ViewConfig, b as ViewDefinition, c as ViewRenderValue, d as ViewRenderHandler } from '../../view-D4dquvKl.js';
1
+ import { a as ViewConfig, b as ViewDefinition, c as ViewRenderValue, d as ViewRenderHandler } from '../../view-u9w7nMgw.js';
2
2
  import 'react';
3
3
  import 'utility-types';
4
4
  import 'html-rspack-tags-plugin';
5
- import '../../helpers-DnV3N7fU.js';
5
+ import '../../helpers-YDFORuZz.js';
6
6
 
7
7
  declare const isViewDefinition: <T extends ViewConfig = ViewConfig>(definition: any) => definition is ViewDefinition<T>;
8
8
  declare const isValidViewDefinitionRenderValue: <T extends ViewConfig = ViewConfig>(definition: any) => definition is ViewRenderValue<T> | ViewRenderHandler<T>;