@prismicio/simulator 0.1.4 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. package/README.md +7 -18
  2. package/dist/SimulatorAPI.cjs +38 -46
  3. package/dist/SimulatorAPI.cjs.map +1 -1
  4. package/dist/SimulatorAPI.d.cts +18 -0
  5. package/dist/SimulatorAPI.d.ts +16 -10
  6. package/dist/SimulatorAPI.js +37 -46
  7. package/dist/SimulatorAPI.js.map +1 -1
  8. package/dist/SimulatorClient.cjs +41 -51
  9. package/dist/SimulatorClient.cjs.map +1 -1
  10. package/dist/SimulatorClient.d.cts +16 -0
  11. package/dist/SimulatorClient.d.ts +15 -9
  12. package/dist/SimulatorClient.js +40 -51
  13. package/dist/SimulatorClient.js.map +1 -1
  14. package/dist/channel/ChannelEmitter.cjs +112 -143
  15. package/dist/channel/ChannelEmitter.cjs.map +1 -1
  16. package/dist/channel/ChannelEmitter.d.cts +38 -0
  17. package/dist/channel/ChannelEmitter.d.ts +36 -36
  18. package/dist/channel/ChannelEmitter.js +110 -141
  19. package/dist/channel/ChannelEmitter.js.map +1 -1
  20. package/dist/channel/ChannelNetwork.cjs +81 -109
  21. package/dist/channel/ChannelNetwork.cjs.map +1 -1
  22. package/dist/channel/ChannelNetwork.d.cts +28 -0
  23. package/dist/channel/ChannelNetwork.d.ts +25 -21
  24. package/dist/channel/ChannelNetwork.js +81 -109
  25. package/dist/channel/ChannelNetwork.js.map +1 -1
  26. package/dist/channel/ChannelReceiver.cjs +69 -92
  27. package/dist/channel/ChannelReceiver.cjs.map +1 -1
  28. package/dist/channel/ChannelReceiver.d.cts +20 -0
  29. package/dist/channel/ChannelReceiver.d.ts +18 -18
  30. package/dist/channel/ChannelReceiver.js +67 -90
  31. package/dist/channel/ChannelReceiver.js.map +1 -1
  32. package/dist/channel/errors.cjs +41 -46
  33. package/dist/channel/errors.cjs.map +1 -1
  34. package/dist/channel/errors.d.cts +28 -0
  35. package/dist/channel/errors.d.ts +22 -19
  36. package/dist/channel/errors.js +40 -52
  37. package/dist/channel/errors.js.map +1 -1
  38. package/dist/channel/messages.cjs +48 -43
  39. package/dist/channel/messages.cjs.map +1 -1
  40. package/dist/channel/messages.d.cts +12 -0
  41. package/dist/channel/messages.d.ts +12 -10
  42. package/dist/channel/messages.js +50 -53
  43. package/dist/channel/messages.js.map +1 -1
  44. package/dist/channel/types.cjs +15 -11
  45. package/dist/channel/types.cjs.map +1 -1
  46. package/dist/channel/types.d.cts +53 -0
  47. package/dist/channel/types.d.ts +42 -50
  48. package/dist/channel/types.js +13 -13
  49. package/dist/channel/types.js.map +1 -1
  50. package/dist/globalExtensions.d.cts +15 -0
  51. package/dist/globalExtensions.d.ts +13 -10
  52. package/dist/index.cjs +24 -33
  53. package/dist/index.d.cts +10 -0
  54. package/dist/index.d.ts +10 -8
  55. package/dist/index.js +5 -25
  56. package/dist/kit/SimulatorManager.cjs +106 -137
  57. package/dist/kit/SimulatorManager.cjs.map +1 -1
  58. package/dist/kit/SimulatorManager.d.cts +19 -0
  59. package/dist/kit/SimulatorManager.d.ts +16 -12
  60. package/dist/kit/SimulatorManager.js +103 -134
  61. package/dist/kit/SimulatorManager.js.map +1 -1
  62. package/dist/kit/State.cjs +82 -80
  63. package/dist/kit/State.cjs.map +1 -1
  64. package/dist/kit/State.d.cts +29 -0
  65. package/dist/kit/State.d.ts +26 -22
  66. package/dist/kit/State.js +80 -78
  67. package/dist/kit/State.js.map +1 -1
  68. package/dist/kit/domHelpers.cjs +25 -37
  69. package/dist/kit/domHelpers.cjs.map +1 -1
  70. package/dist/kit/domHelpers.d.cts +11 -0
  71. package/dist/kit/domHelpers.d.ts +10 -8
  72. package/dist/kit/domHelpers.js +25 -43
  73. package/dist/kit/domHelpers.js.map +1 -1
  74. package/dist/kit/eventHandlers.cjs +11 -9
  75. package/dist/kit/eventHandlers.cjs.map +1 -1
  76. package/dist/kit/eventHandlers.d.cts +8 -0
  77. package/dist/kit/eventHandlers.d.ts +7 -3
  78. package/dist/kit/eventHandlers.js +11 -11
  79. package/dist/kit/eventHandlers.js.map +1 -1
  80. package/dist/kit/getDefault.cjs +9 -7
  81. package/dist/kit/getDefault.cjs.map +1 -1
  82. package/dist/kit/getDefault.d.cts +10 -0
  83. package/dist/kit/getDefault.d.ts +10 -8
  84. package/dist/kit/getDefault.js +9 -10
  85. package/dist/kit/getDefault.js.map +1 -1
  86. package/dist/kit/messages.cjs +8 -22
  87. package/dist/kit/messages.cjs.map +1 -1
  88. package/dist/kit/messages.d.cts +5 -0
  89. package/dist/kit/messages.d.ts +5 -1
  90. package/dist/kit/messages.js +8 -23
  91. package/dist/kit/messages.js.map +1 -1
  92. package/dist/kit/types.cjs +12 -9
  93. package/dist/kit/types.cjs.map +1 -1
  94. package/dist/kit/types.d.cts +28 -0
  95. package/dist/kit/types.d.ts +24 -19
  96. package/dist/kit/types.js +11 -10
  97. package/dist/kit/types.js.map +1 -1
  98. package/dist/kit.cjs +21 -26
  99. package/dist/kit.d.cts +8 -0
  100. package/dist/kit.d.ts +8 -0
  101. package/dist/kit.js +7 -21
  102. package/dist/lib/EventEmitter.cjs +16 -25
  103. package/dist/lib/EventEmitter.cjs.map +1 -1
  104. package/dist/lib/EventEmitter.d.cts +12 -0
  105. package/dist/lib/EventEmitter.d.ts +11 -9
  106. package/dist/lib/EventEmitter.js +16 -26
  107. package/dist/lib/EventEmitter.js.map +1 -1
  108. package/dist/lib/throttle.cjs +21 -21
  109. package/dist/lib/throttle.cjs.map +1 -1
  110. package/dist/lib/throttle.js +21 -22
  111. package/dist/lib/throttle.js.map +1 -1
  112. package/dist/types.cjs +18 -14
  113. package/dist/types.cjs.map +1 -1
  114. package/dist/types.d.cts +39 -0
  115. package/dist/types.d.ts +32 -27
  116. package/dist/types.js +16 -16
  117. package/dist/types.js.map +1 -1
  118. package/package.json +27 -68
  119. package/src/SimulatorAPI.ts +24 -22
  120. package/src/SimulatorClient.ts +24 -25
  121. package/src/channel/ChannelEmitter.ts +71 -74
  122. package/src/channel/ChannelNetwork.ts +53 -55
  123. package/src/channel/ChannelReceiver.ts +46 -48
  124. package/src/channel/errors.ts +14 -14
  125. package/src/channel/index.ts +10 -10
  126. package/src/channel/messages.ts +39 -31
  127. package/src/channel/types.ts +40 -40
  128. package/src/globalExtensions.ts +6 -6
  129. package/src/index.ts +8 -8
  130. package/src/kit/SimulatorManager.ts +64 -63
  131. package/src/kit/State.ts +45 -44
  132. package/src/kit/domHelpers.ts +24 -24
  133. package/src/kit/eventHandlers.ts +6 -6
  134. package/src/kit/getDefault.ts +8 -8
  135. package/src/kit/index.ts +8 -8
  136. package/src/kit/messages.ts +5 -5
  137. package/src/kit/types.ts +13 -13
  138. package/src/lib/EventEmitter.ts +8 -8
  139. package/src/lib/__PRODUCTION__.ts +2 -2
  140. package/src/lib/throttle.ts +12 -12
  141. package/src/types.ts +20 -20
  142. package/dist/channel/index.d.ts +0 -10
  143. package/dist/index.cjs.map +0 -1
  144. package/dist/index.js.map +0 -1
  145. package/dist/kit/index.d.ts +0 -8
  146. package/dist/kit.cjs.map +0 -1
  147. package/dist/kit.js.map +0 -1
  148. package/dist/lib/__PRODUCTION__.d.ts +0 -7
  149. package/dist/lib/throttle.d.ts +0 -1
@@ -1,24 +1,28 @@
1
- import { ExtractSuccessResponseMessage, RequestMessage, TransactionsHandlers, UnknownRequestMessage, UnknownResponseMessage, UnknownTransaction } from "./types";
2
- export type PostRequestOptions = {
3
- timeout?: number;
1
+ import { ExtractSuccessResponseMessage, RequestMessage, TransactionsHandlers, UnknownRequestMessage, UnknownResponseMessage, UnknownTransaction } from "./types.js";
2
+
3
+ //#region src/channel/ChannelNetwork.d.ts
4
+ type PostRequestOptions = {
5
+ timeout?: number;
4
6
  };
5
- export type ChannelNetworkOptions = {
6
- debug: boolean;
7
- maximumRequestConcurrency: number;
8
- defaultTimeout: number;
9
- requestIDPrefix: string;
7
+ type ChannelNetworkOptions = {
8
+ debug: boolean;
9
+ maximumRequestConcurrency: number;
10
+ defaultTimeout: number;
11
+ requestIDPrefix: string;
10
12
  };
11
- export declare const channelNetworkDefaultOptions: ChannelNetworkOptions;
12
- export declare abstract class ChannelNetwork<TPartnerTransactions extends Record<string, UnknownTransaction> = Record<string, never>, TOptions extends Record<string, unknown> = Record<string, unknown>> {
13
- requestHandlers: TransactionsHandlers<TPartnerTransactions>;
14
- options: ChannelNetworkOptions & TOptions;
15
- private _port;
16
- protected get port(): MessagePort;
17
- protected set port(port: MessagePort | null);
18
- private _pendingRequests;
19
- constructor(requestHandlers: TransactionsHandlers<TPartnerTransactions>, options: Partial<ChannelNetworkOptions> & TOptions);
20
- createRequestMessage<TType extends string = string, TData = undefined>(type: TType, data: TData): RequestMessage<TType, TData>;
21
- protected onMessage(event: MessageEvent<unknown>): Promise<void>;
22
- protected postRequest<TRequest extends UnknownRequestMessage, TResponse extends UnknownResponseMessage>(request: TRequest, postMessage?: (request: TRequest) => void, options?: PostRequestOptions): Promise<ExtractSuccessResponseMessage<TResponse>>;
23
- protected postResponse<TResponse extends UnknownResponseMessage>(response: TResponse, postMessage?: (response: TResponse) => void): TResponse;
13
+ declare abstract class ChannelNetwork<TPartnerTransactions extends Record<string, UnknownTransaction> = Record<string, never>, TOptions extends Record<string, unknown> = Record<string, unknown>> {
14
+ requestHandlers: TransactionsHandlers<TPartnerTransactions>;
15
+ options: ChannelNetworkOptions & TOptions;
16
+ private _port;
17
+ protected get port(): MessagePort;
18
+ protected set port(port: MessagePort | null);
19
+ private _pendingRequests;
20
+ constructor(requestHandlers: TransactionsHandlers<TPartnerTransactions>, options: Partial<ChannelNetworkOptions> & TOptions);
21
+ createRequestMessage<TType extends string = string, TData = undefined>(type: TType, data: TData): RequestMessage<TType, TData>;
22
+ protected onMessage(event: MessageEvent<unknown>): Promise<void>;
23
+ protected postRequest<TRequest extends UnknownRequestMessage, TResponse extends UnknownResponseMessage>(request: TRequest, postMessage?: (request: TRequest) => void, options?: PostRequestOptions): Promise<ExtractSuccessResponseMessage<TResponse>>;
24
+ protected postResponse<TResponse extends UnknownResponseMessage>(response: TResponse, postMessage?: (response: TResponse) => void): TResponse;
24
25
  }
26
+ //#endregion
27
+ export { ChannelNetwork, ChannelNetworkOptions, PostRequestOptions };
28
+ //# sourceMappingURL=ChannelNetwork.d.ts.map
@@ -1,112 +1,84 @@
1
- var __defProp = Object.defineProperty;
2
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
- var __publicField = (obj, key, value) => {
4
- __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
- return value;
6
- };
7
- import { PortNotSetError, TooManyConcurrentRequestsError, RequestTimeoutError, ResponseError } from "./errors.js";
8
- import { createRequestMessage, validateMessage, isRequestMessage, createErrorResponseMessage, createSuccessResponseMessage, isSuccessResponseMessage } from "./messages.js";
1
+ import { PortNotSetError, RequestTimeoutError, ResponseError, TooManyConcurrentRequestsError } from "./errors.js";
2
+ import { createErrorResponseMessage, createRequestMessage, createSuccessResponseMessage, isRequestMessage, isSuccessResponseMessage, validateMessage } from "./messages.js";
3
+
4
+ //#region src/channel/ChannelNetwork.ts
9
5
  const channelNetworkDefaultOptions = {
10
- debug: false,
11
- maximumRequestConcurrency: 20,
12
- defaultTimeout: 5e3,
13
- requestIDPrefix: "channel-"
6
+ debug: false,
7
+ maximumRequestConcurrency: 20,
8
+ defaultTimeout: 5e3,
9
+ requestIDPrefix: "channel-"
14
10
  };
15
- class ChannelNetwork {
16
- constructor(requestHandlers, options) {
17
- __publicField(this, "requestHandlers");
18
- __publicField(this, "options");
19
- __publicField(this, "_port", null);
20
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
21
- __publicField(this, "_pendingRequests", /* @__PURE__ */ new Map());
22
- this.requestHandlers = requestHandlers;
23
- this.options = { ...channelNetworkDefaultOptions, ...options };
24
- }
25
- get port() {
26
- if (!this._port) {
27
- throw new PortNotSetError();
28
- }
29
- return this._port;
30
- }
31
- set port(port) {
32
- if (this._port) {
33
- this._port.onmessage = null;
34
- }
35
- this._port = port;
36
- if (this._port) {
37
- this._port.onmessage = this.onMessage.bind(this);
38
- }
39
- }
40
- createRequestMessage(type, data) {
41
- return createRequestMessage(type, data, this.options.requestIDPrefix);
42
- }
43
- async onMessage(event) {
44
- if (this.options.debug) {
45
- console.debug(event.data);
46
- }
47
- try {
48
- const message = validateMessage(event.data);
49
- if (isRequestMessage(message)) {
50
- if (!this.requestHandlers[message.type]) {
51
- this.postResponse(createErrorResponseMessage(message.requestID, void 0, 501));
52
- } else {
53
- try {
54
- const response = await this.requestHandlers[message.type](message, {
55
- success: createSuccessResponseMessage.bind(this, message.requestID),
56
- error: createErrorResponseMessage.bind(this, message.requestID)
57
- });
58
- this.postResponse(response);
59
- } catch (error) {
60
- this.postResponse(createErrorResponseMessage(message.requestID, error, 500));
61
- }
62
- }
63
- } else {
64
- if (!this._pendingRequests.has(message.requestID)) {
65
- console.error(`Unknown request ID received in response: ${JSON.stringify(message)}`);
66
- } else {
67
- this._pendingRequests.get(message.requestID)(message);
68
- this._pendingRequests.delete(message.requestID);
69
- }
70
- }
71
- } catch (error) {
72
- if (error instanceof TypeError) {
73
- console.warn(error.message);
74
- } else {
75
- throw error;
76
- }
77
- }
78
- }
79
- postRequest(request, postMessage = (request2) => this.port.postMessage(request2), options = {}) {
80
- if (this.options.debug) {
81
- console.debug(request);
82
- }
83
- if (this._pendingRequests.size >= this.options.maximumRequestConcurrency) {
84
- throw new TooManyConcurrentRequestsError(request);
85
- }
86
- return new Promise((resolve, reject) => {
87
- const requestTimeout = setTimeout(() => {
88
- if (this._pendingRequests.has(request.requestID)) {
89
- this._pendingRequests.delete(request.requestID);
90
- }
91
- reject(new RequestTimeoutError(request));
92
- }, options.timeout || this.options.defaultTimeout);
93
- this._pendingRequests.set(request.requestID, (response) => {
94
- clearTimeout(requestTimeout);
95
- isSuccessResponseMessage(response) ? resolve(response) : reject(new ResponseError(response));
96
- });
97
- postMessage(request);
98
- });
99
- }
100
- postResponse(response, postMessage = (response2) => this.port.postMessage(response2)) {
101
- if (this.options.debug) {
102
- console.debug(response);
103
- }
104
- postMessage(response);
105
- return response;
106
- }
107
- }
108
- export {
109
- ChannelNetwork,
110
- channelNetworkDefaultOptions
11
+ var ChannelNetwork = class {
12
+ requestHandlers;
13
+ options;
14
+ _port = null;
15
+ get port() {
16
+ if (!this._port) throw new PortNotSetError();
17
+ return this._port;
18
+ }
19
+ set port(port) {
20
+ if (this._port) this._port.onmessage = null;
21
+ this._port = port;
22
+ if (this._port) this._port.onmessage = this.onMessage.bind(this);
23
+ }
24
+ _pendingRequests = /* @__PURE__ */ new Map();
25
+ constructor(requestHandlers, options) {
26
+ this.requestHandlers = requestHandlers;
27
+ this.options = {
28
+ ...channelNetworkDefaultOptions,
29
+ ...options
30
+ };
31
+ }
32
+ createRequestMessage(type, data) {
33
+ return createRequestMessage(type, data, this.options.requestIDPrefix);
34
+ }
35
+ async onMessage(event) {
36
+ if (this.options.debug) console.debug(event.data);
37
+ try {
38
+ const message = validateMessage(event.data);
39
+ if (isRequestMessage(message)) if (!this.requestHandlers[message.type]) this.postResponse(createErrorResponseMessage(message.requestID, void 0, 501));
40
+ else try {
41
+ const response = await this.requestHandlers[message.type](message, {
42
+ success: createSuccessResponseMessage.bind(this, message.requestID),
43
+ error: createErrorResponseMessage.bind(this, message.requestID)
44
+ });
45
+ this.postResponse(response);
46
+ } catch (error) {
47
+ this.postResponse(createErrorResponseMessage(message.requestID, error, 500));
48
+ }
49
+ else if (!this._pendingRequests.has(message.requestID)) console.error(`Unknown request ID received in response: ${JSON.stringify(message)}`);
50
+ else {
51
+ this._pendingRequests.get(message.requestID)(message);
52
+ this._pendingRequests.delete(message.requestID);
53
+ }
54
+ } catch (error) {
55
+ if (error instanceof TypeError) console.warn(error.message);
56
+ else throw error;
57
+ }
58
+ }
59
+ postRequest(request, postMessage = (request$1) => this.port.postMessage(request$1), options = {}) {
60
+ if (this.options.debug) console.debug(request);
61
+ if (this._pendingRequests.size >= this.options.maximumRequestConcurrency) throw new TooManyConcurrentRequestsError(request);
62
+ return new Promise((resolve, reject) => {
63
+ const requestTimeout = setTimeout(() => {
64
+ if (this._pendingRequests.has(request.requestID)) this._pendingRequests.delete(request.requestID);
65
+ reject(new RequestTimeoutError(request));
66
+ }, options.timeout || this.options.defaultTimeout);
67
+ this._pendingRequests.set(request.requestID, (response) => {
68
+ clearTimeout(requestTimeout);
69
+ if (isSuccessResponseMessage(response)) resolve(response);
70
+ else reject(new ResponseError(response));
71
+ });
72
+ postMessage(request);
73
+ });
74
+ }
75
+ postResponse(response, postMessage = (response$1) => this.port.postMessage(response$1)) {
76
+ if (this.options.debug) console.debug(response);
77
+ postMessage(response);
78
+ return response;
79
+ }
111
80
  };
112
- //# sourceMappingURL=ChannelNetwork.js.map
81
+
82
+ //#endregion
83
+ export { ChannelNetwork };
84
+ //# sourceMappingURL=ChannelNetwork.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChannelNetwork.js","sources":["../../../src/channel/ChannelNetwork.ts"],"sourcesContent":["import {\n\tExtractErrorResponseMessage,\n\tExtractSuccessResponseMessage,\n\tRequestMessage,\n\tTransactionsHandlers,\n\tUnknownRequestMessage,\n\tUnknownResponseMessage,\n\tUnknownTransaction,\n} from \"./types\";\n\nimport {\n\tPortNotSetError,\n\tRequestTimeoutError,\n\tResponseError,\n\tTooManyConcurrentRequestsError,\n} from \"./errors\";\n\nimport {\n\tcreateErrorResponseMessage,\n\tcreateRequestMessage,\n\tcreateSuccessResponseMessage,\n\tisRequestMessage,\n\tisSuccessResponseMessage,\n\tvalidateMessage,\n} from \"./messages\";\n\nexport type PostRequestOptions = {\n\ttimeout?: number;\n};\n\nexport type ChannelNetworkOptions = {\n\tdebug: boolean;\n\tmaximumRequestConcurrency: number;\n\tdefaultTimeout: number;\n\trequestIDPrefix: string;\n};\n\nexport const channelNetworkDefaultOptions: ChannelNetworkOptions = {\n\tdebug: false,\n\tmaximumRequestConcurrency: 20,\n\tdefaultTimeout: 5000,\n\trequestIDPrefix: \"channel-\",\n};\n\nexport abstract class ChannelNetwork<\n\tTPartnerTransactions extends Record<string, UnknownTransaction> = Record<\n\t\tstring,\n\t\tnever\n\t>,\n\tTOptions extends Record<string, unknown> = Record<string, unknown>,\n> {\n\tpublic requestHandlers: TransactionsHandlers<TPartnerTransactions>;\n\tpublic options: ChannelNetworkOptions & TOptions;\n\n\tprivate _port: MessagePort | null = null;\n\tprotected get port(): MessagePort {\n\t\tif (!this._port) {\n\t\t\tthrow new PortNotSetError();\n\t\t}\n\n\t\treturn this._port;\n\t}\n\tprotected set port(port: MessagePort | null) {\n\t\t// Destroy old port\n\t\tif (this._port) {\n\t\t\tthis._port.onmessage = null;\n\t\t}\n\n\t\tthis._port = port;\n\t\tif (this._port) {\n\t\t\tthis._port.onmessage = this.onMessage.bind(this);\n\t\t}\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tprivate _pendingRequests: Map<string, (response: any) => void> = new Map();\n\n\tconstructor(\n\t\trequestHandlers: TransactionsHandlers<TPartnerTransactions>,\n\t\toptions: Partial<ChannelNetworkOptions> & TOptions,\n\t) {\n\t\tthis.requestHandlers = requestHandlers;\n\t\tthis.options = { ...channelNetworkDefaultOptions, ...options };\n\t}\n\n\tpublic createRequestMessage<TType extends string = string, TData = undefined>(\n\t\ttype: TType,\n\t\tdata: TData,\n\t): RequestMessage<TType, TData> {\n\t\treturn createRequestMessage(type, data, this.options.requestIDPrefix);\n\t}\n\n\tprotected async onMessage(event: MessageEvent<unknown>): Promise<void> {\n\t\tif (this.options.debug) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.debug(event.data);\n\t\t}\n\n\t\ttry {\n\t\t\tconst message = validateMessage(event.data);\n\n\t\t\tif (isRequestMessage(message)) {\n\t\t\t\tif (!this.requestHandlers[message.type]) {\n\t\t\t\t\tthis.postResponse(\n\t\t\t\t\t\tcreateErrorResponseMessage(message.requestID, undefined, 501),\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t// TODO: Figure out why type cannot be inferred on its own anymore\n\t\t\t\t\t\tconst response = await this.requestHandlers[message.type](message, {\n\t\t\t\t\t\t\tsuccess: createSuccessResponseMessage.bind(\n\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\tmessage.requestID,\n\t\t\t\t\t\t\t) as Parameters<\n\t\t\t\t\t\t\t\t(typeof this.requestHandlers)[string]\n\t\t\t\t\t\t\t>[1][\"success\"],\n\t\t\t\t\t\t\terror: createErrorResponseMessage.bind(\n\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\tmessage.requestID,\n\t\t\t\t\t\t\t) as Parameters<\n\t\t\t\t\t\t\t\t(typeof this.requestHandlers)[string]\n\t\t\t\t\t\t\t>[1][\"error\"],\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tthis.postResponse(response);\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tthis.postResponse(\n\t\t\t\t\t\t\tcreateErrorResponseMessage(message.requestID, error, 500),\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (!this._pendingRequests.has(message.requestID)) {\n\t\t\t\t\tconsole.error(\n\t\t\t\t\t\t`Unknown request ID received in response: ${JSON.stringify(\n\t\t\t\t\t\t\tmessage,\n\t\t\t\t\t\t)}`,\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\t// Pending requests are checked in previous statement\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\t\t\tthis._pendingRequests.get(message.requestID)!(message);\n\t\t\t\t\tthis._pendingRequests.delete(message.requestID);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tif (error instanceof TypeError) {\n\t\t\t\tconsole.warn(error.message);\n\t\t\t} else {\n\t\t\t\t// Should not be possible, but who knows :shrug:\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected postRequest<\n\t\tTRequest extends UnknownRequestMessage,\n\t\tTResponse extends UnknownResponseMessage,\n\t>(\n\t\trequest: TRequest,\n\t\tpostMessage = (request: TRequest): void => this.port.postMessage(request),\n\t\toptions: PostRequestOptions = {},\n\t): Promise<ExtractSuccessResponseMessage<TResponse>> {\n\t\tif (this.options.debug) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.debug(request);\n\t\t}\n\n\t\tif (this._pendingRequests.size >= this.options.maximumRequestConcurrency) {\n\t\t\tthrow new TooManyConcurrentRequestsError(request);\n\t\t}\n\n\t\treturn new Promise<ExtractSuccessResponseMessage<TResponse>>(\n\t\t\t(resolve, reject) => {\n\t\t\t\tconst requestTimeout = setTimeout(() => {\n\t\t\t\t\tif (this._pendingRequests.has(request.requestID)) {\n\t\t\t\t\t\tthis._pendingRequests.delete(request.requestID);\n\t\t\t\t\t}\n\t\t\t\t\treject(new RequestTimeoutError(request));\n\t\t\t\t}, options.timeout || this.options.defaultTimeout);\n\n\t\t\t\tthis._pendingRequests.set(\n\t\t\t\t\trequest.requestID,\n\t\t\t\t\t(response: TResponse): void => {\n\t\t\t\t\t\tclearTimeout(requestTimeout);\n\n\t\t\t\t\t\tisSuccessResponseMessage(response)\n\t\t\t\t\t\t\t? resolve(response as ExtractSuccessResponseMessage<TResponse>)\n\t\t\t\t\t\t\t: reject(\n\t\t\t\t\t\t\t\t\tnew ResponseError(\n\t\t\t\t\t\t\t\t\t\tresponse as ExtractErrorResponseMessage<TResponse>,\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t );\n\t\t\t\t\t},\n\t\t\t\t);\n\n\t\t\t\tpostMessage(request);\n\t\t\t},\n\t\t);\n\t}\n\n\tprotected postResponse<TResponse extends UnknownResponseMessage>(\n\t\tresponse: TResponse,\n\t\tpostMessage = (response: TResponse): void =>\n\t\t\tthis.port.postMessage(response),\n\t): TResponse {\n\t\tif (this.options.debug) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.debug(response);\n\t\t}\n\n\t\tpostMessage(response);\n\n\t\treturn response;\n\t}\n}\n"],"names":["request","response"],"mappings":";;;;;;;;AAqCO,MAAM,+BAAsD;AAAA,EAClE,OAAO;AAAA,EACP,2BAA2B;AAAA,EAC3B,gBAAgB;AAAA,EAChB,iBAAiB;;MAGI,eAAc;AAAA,EAiCnC,YACC,iBACA,SAAkD;AA5B5C;AACA;AAEC,iCAA4B;AAqB5B;AAAA,gEAA6D;AAMpE,SAAK,kBAAkB;AACvB,SAAK,UAAU,EAAE,GAAG,8BAA8B,GAAG,QAAO;AAAA,EAC7D;AAAA,EA5BA,IAAc,OAAI;AACb,QAAA,CAAC,KAAK,OAAO;AAChB,YAAM,IAAI,gBAAe;AAAA,IACzB;AAED,WAAO,KAAK;AAAA,EACb;AAAA,EACA,IAAc,KAAK,MAAwB;AAE1C,QAAI,KAAK,OAAO;AACf,WAAK,MAAM,YAAY;AAAA,IACvB;AAED,SAAK,QAAQ;AACb,QAAI,KAAK,OAAO;AACf,WAAK,MAAM,YAAY,KAAK,UAAU,KAAK,IAAI;AAAA,IAC/C;AAAA,EACF;AAAA,EAaO,qBACN,MACA,MAAW;AAEX,WAAO,qBAAqB,MAAM,MAAM,KAAK,QAAQ,eAAe;AAAA,EACrE;AAAA,EAEU,MAAM,UAAU,OAA4B;AACjD,QAAA,KAAK,QAAQ,OAAO;AAEf,cAAA,MAAM,MAAM,IAAI;AAAA,IACxB;AAEG,QAAA;AACG,YAAA,UAAU,gBAAgB,MAAM,IAAI;AAEtC,UAAA,iBAAiB,OAAO,GAAG;AAC9B,YAAI,CAAC,KAAK,gBAAgB,QAAQ,IAAI,GAAG;AACxC,eAAK,aACJ,2BAA2B,QAAQ,WAAW,QAAW,GAAG,CAAC;AAAA,QAAA,OAExD;AACF,cAAA;AAEH,kBAAM,WAAW,MAAM,KAAK,gBAAgB,QAAQ,IAAI,EAAE,SAAS;AAAA,cAClE,SAAS,6BAA6B,KACrC,MACA,QAAQ,SAAS;AAAA,cAIlB,OAAO,2BAA2B,KACjC,MACA,QAAQ,SAAS;AAAA,YAAA,CAIlB;AAED,iBAAK,aAAa,QAAQ;AAAA,mBAClB;AACR,iBAAK,aACJ,2BAA2B,QAAQ,WAAW,OAAO,GAAG,CAAC;AAAA,UAE1D;AAAA,QACD;AAAA,MAAA,OACK;AACN,YAAI,CAAC,KAAK,iBAAiB,IAAI,QAAQ,SAAS,GAAG;AAClD,kBAAQ,MACP,4CAA4C,KAAK,UAChD,OAAO,GACL;AAAA,QAAA,OAEE;AAGN,eAAK,iBAAiB,IAAI,QAAQ,SAAS,EAAG,OAAO;AAChD,eAAA,iBAAiB,OAAO,QAAQ,SAAS;AAAA,QAC9C;AAAA,MACD;AAAA,aACO;AACR,UAAI,iBAAiB,WAAW;AACvB,gBAAA,KAAK,MAAM,OAAO;AAAA,MAAA,OACpB;AAEA,cAAA;AAAA,MACN;AAAA,IACD;AAAA,EACF;AAAA,EAEU,YAIT,SACA,cAAc,CAACA,aAA4B,KAAK,KAAK,YAAYA,QAAO,GACxE,UAA8B,CAAA,GAAE;AAE5B,QAAA,KAAK,QAAQ,OAAO;AAEvB,cAAQ,MAAM,OAAO;AAAA,IACrB;AAED,QAAI,KAAK,iBAAiB,QAAQ,KAAK,QAAQ,2BAA2B;AACnE,YAAA,IAAI,+BAA+B,OAAO;AAAA,IAChD;AAED,WAAO,IAAI,QACV,CAAC,SAAS,WAAU;AACb,YAAA,iBAAiB,WAAW,MAAK;AACtC,YAAI,KAAK,iBAAiB,IAAI,QAAQ,SAAS,GAAG;AAC5C,eAAA,iBAAiB,OAAO,QAAQ,SAAS;AAAA,QAC9C;AACM,eAAA,IAAI,oBAAoB,OAAO,CAAC;AAAA,MACrC,GAAA,QAAQ,WAAW,KAAK,QAAQ,cAAc;AAEjD,WAAK,iBAAiB,IACrB,QAAQ,WACR,CAAC,aAA6B;AAC7B,qBAAa,cAAc;AAEF,iCAAA,QAAQ,IAC9B,QAAQ,QAAoD,IAC5D,OACA,IAAI,cACH,QAAkD,CAClD;AAAA,MAAA,CAEJ;AAGF,kBAAY,OAAO;AAAA,IAAA,CACnB;AAAA,EAEH;AAAA,EAEU,aACT,UACA,cAAc,CAACC,cACd,KAAK,KAAK,YAAYA,SAAQ,GAAC;AAE5B,QAAA,KAAK,QAAQ,OAAO;AAEvB,cAAQ,MAAM,QAAQ;AAAA,IACtB;AAED,gBAAY,QAAQ;AAEb,WAAA;AAAA,EACR;AACA;"}
1
+ {"version":3,"file":"ChannelNetwork.js","names":["request","response"],"sources":["../../src/channel/ChannelNetwork.ts"],"sourcesContent":["import type {\n\tExtractErrorResponseMessage,\n\tExtractSuccessResponseMessage,\n\tRequestMessage,\n\tTransactionsHandlers,\n\tUnknownRequestMessage,\n\tUnknownResponseMessage,\n\tUnknownTransaction,\n} from \"./types\"\n\nimport {\n\tPortNotSetError,\n\tRequestTimeoutError,\n\tResponseError,\n\tTooManyConcurrentRequestsError,\n} from \"./errors\"\n\nimport {\n\tcreateErrorResponseMessage,\n\tcreateRequestMessage,\n\tcreateSuccessResponseMessage,\n\tisRequestMessage,\n\tisSuccessResponseMessage,\n\tvalidateMessage,\n} from \"./messages\"\n\nexport type PostRequestOptions = {\n\ttimeout?: number\n}\n\nexport type ChannelNetworkOptions = {\n\tdebug: boolean\n\tmaximumRequestConcurrency: number\n\tdefaultTimeout: number\n\trequestIDPrefix: string\n}\n\nexport const channelNetworkDefaultOptions: ChannelNetworkOptions = {\n\tdebug: false,\n\tmaximumRequestConcurrency: 20,\n\tdefaultTimeout: 5000,\n\trequestIDPrefix: \"channel-\",\n}\n\nexport abstract class ChannelNetwork<\n\tTPartnerTransactions extends Record<string, UnknownTransaction> = Record<\n\t\tstring,\n\t\tnever\n\t>,\n\tTOptions extends Record<string, unknown> = Record<string, unknown>,\n> {\n\tpublic requestHandlers: TransactionsHandlers<TPartnerTransactions>\n\tpublic options: ChannelNetworkOptions & TOptions\n\n\tprivate _port: MessagePort | null = null\n\tprotected get port(): MessagePort {\n\t\tif (!this._port) {\n\t\t\tthrow new PortNotSetError()\n\t\t}\n\n\t\treturn this._port\n\t}\n\tprotected set port(port: MessagePort | null) {\n\t\t// Destroy old port\n\t\tif (this._port) {\n\t\t\tthis._port.onmessage = null\n\t\t}\n\n\t\tthis._port = port\n\t\tif (this._port) {\n\t\t\tthis._port.onmessage = this.onMessage.bind(this)\n\t\t}\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tprivate _pendingRequests: Map<string, (response: any) => void> = new Map()\n\n\tconstructor(\n\t\trequestHandlers: TransactionsHandlers<TPartnerTransactions>,\n\t\toptions: Partial<ChannelNetworkOptions> & TOptions,\n\t) {\n\t\tthis.requestHandlers = requestHandlers\n\t\tthis.options = { ...channelNetworkDefaultOptions, ...options }\n\t}\n\n\tpublic createRequestMessage<TType extends string = string, TData = undefined>(\n\t\ttype: TType,\n\t\tdata: TData,\n\t): RequestMessage<TType, TData> {\n\t\treturn createRequestMessage(type, data, this.options.requestIDPrefix)\n\t}\n\n\tprotected async onMessage(event: MessageEvent<unknown>): Promise<void> {\n\t\tif (this.options.debug) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.debug(event.data)\n\t\t}\n\n\t\ttry {\n\t\t\tconst message = validateMessage(event.data)\n\n\t\t\tif (isRequestMessage(message)) {\n\t\t\t\tif (!this.requestHandlers[message.type]) {\n\t\t\t\t\tthis.postResponse(\n\t\t\t\t\t\tcreateErrorResponseMessage(message.requestID, undefined, 501),\n\t\t\t\t\t)\n\t\t\t\t} else {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t// TODO: Figure out why type cannot be inferred on its own anymore\n\t\t\t\t\t\tconst response = await this.requestHandlers[message.type](message, {\n\t\t\t\t\t\t\tsuccess: createSuccessResponseMessage.bind(\n\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\tmessage.requestID,\n\t\t\t\t\t\t\t) as Parameters<\n\t\t\t\t\t\t\t\t(typeof this.requestHandlers)[string]\n\t\t\t\t\t\t\t>[1][\"success\"],\n\t\t\t\t\t\t\terror: createErrorResponseMessage.bind(\n\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\tmessage.requestID,\n\t\t\t\t\t\t\t) as Parameters<\n\t\t\t\t\t\t\t\t(typeof this.requestHandlers)[string]\n\t\t\t\t\t\t\t>[1][\"error\"],\n\t\t\t\t\t\t})\n\n\t\t\t\t\t\tthis.postResponse(response)\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tthis.postResponse(\n\t\t\t\t\t\t\tcreateErrorResponseMessage(message.requestID, error, 500),\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (!this._pendingRequests.has(message.requestID)) {\n\t\t\t\t\tconsole.error(\n\t\t\t\t\t\t`Unknown request ID received in response: ${JSON.stringify(\n\t\t\t\t\t\t\tmessage,\n\t\t\t\t\t\t)}`,\n\t\t\t\t\t)\n\t\t\t\t} else {\n\t\t\t\t\t// Pending requests are checked in previous statement\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\t\t\tthis._pendingRequests.get(message.requestID)!(message)\n\t\t\t\t\tthis._pendingRequests.delete(message.requestID)\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tif (error instanceof TypeError) {\n\t\t\t\tconsole.warn(error.message)\n\t\t\t} else {\n\t\t\t\t// Should not be possible, but who knows :shrug:\n\t\t\t\tthrow error\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected postRequest<\n\t\tTRequest extends UnknownRequestMessage,\n\t\tTResponse extends UnknownResponseMessage,\n\t>(\n\t\trequest: TRequest,\n\t\tpostMessage = (request: TRequest): void => this.port.postMessage(request),\n\t\toptions: PostRequestOptions = {},\n\t): Promise<ExtractSuccessResponseMessage<TResponse>> {\n\t\tif (this.options.debug) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.debug(request)\n\t\t}\n\n\t\tif (this._pendingRequests.size >= this.options.maximumRequestConcurrency) {\n\t\t\tthrow new TooManyConcurrentRequestsError(request)\n\t\t}\n\n\t\treturn new Promise<ExtractSuccessResponseMessage<TResponse>>(\n\t\t\t(resolve, reject) => {\n\t\t\t\tconst requestTimeout = setTimeout(() => {\n\t\t\t\t\tif (this._pendingRequests.has(request.requestID)) {\n\t\t\t\t\t\tthis._pendingRequests.delete(request.requestID)\n\t\t\t\t\t}\n\t\t\t\t\treject(new RequestTimeoutError(request))\n\t\t\t\t}, options.timeout || this.options.defaultTimeout)\n\n\t\t\t\tthis._pendingRequests.set(\n\t\t\t\t\trequest.requestID,\n\t\t\t\t\t(response: TResponse): void => {\n\t\t\t\t\t\tclearTimeout(requestTimeout)\n\n\t\t\t\t\t\tif (isSuccessResponseMessage(response)) {\n\t\t\t\t\t\t\tresolve(response as ExtractSuccessResponseMessage<TResponse>)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treject(new ResponseError(response as ExtractErrorResponseMessage<TResponse>))\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t)\n\n\t\t\t\tpostMessage(request)\n\t\t\t},\n\t\t)\n\t}\n\n\tprotected postResponse<TResponse extends UnknownResponseMessage>(\n\t\tresponse: TResponse,\n\t\tpostMessage = (response: TResponse): void =>\n\t\t\tthis.port.postMessage(response),\n\t): TResponse {\n\t\tif (this.options.debug) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.debug(response)\n\t\t}\n\n\t\tpostMessage(response)\n\n\t\treturn response\n\t}\n}\n"],"mappings":";;;;AAqCA,MAAa,+BAAsD;CAClE,OAAO;CACP,2BAA2B;CAC3B,gBAAgB;CAChB,iBAAiB;CACjB;AAED,IAAsB,iBAAtB,MAME;CACD,AAAO;CACP,AAAO;CAEP,AAAQ,QAA4B;CACpC,IAAc,OAAoB;AACjC,MAAI,CAAC,KAAK,MACT,OAAM,IAAI,iBAAiB;AAG5B,SAAO,KAAK;;CAEb,IAAc,KAAK,MAA0B;AAE5C,MAAI,KAAK,MACR,MAAK,MAAM,YAAY;AAGxB,OAAK,QAAQ;AACb,MAAI,KAAK,MACR,MAAK,MAAM,YAAY,KAAK,UAAU,KAAK,KAAK;;CAKlD,AAAQ,mCAAyD,IAAI,KAAK;CAE1E,YACC,iBACA,SACC;AACD,OAAK,kBAAkB;AACvB,OAAK,UAAU;GAAE,GAAG;GAA8B,GAAG;GAAS;;CAG/D,AAAO,qBACN,MACA,MAC+B;AAC/B,SAAO,qBAAqB,MAAM,MAAM,KAAK,QAAQ,gBAAgB;;CAGtE,MAAgB,UAAU,OAA6C;AACtE,MAAI,KAAK,QAAQ,MAEhB,SAAQ,MAAM,MAAM,KAAK;AAG1B,MAAI;GACH,MAAM,UAAU,gBAAgB,MAAM,KAAK;AAE3C,OAAI,iBAAiB,QAAQ,CAC5B,KAAI,CAAC,KAAK,gBAAgB,QAAQ,MACjC,MAAK,aACJ,2BAA2B,QAAQ,WAAW,QAAW,IAAI,CAC7D;OAED,KAAI;IAEH,MAAM,WAAW,MAAM,KAAK,gBAAgB,QAAQ,MAAM,SAAS;KAClE,SAAS,6BAA6B,KACrC,MACA,QAAQ,UACR;KAGD,OAAO,2BAA2B,KACjC,MACA,QAAQ,UACR;KAGD,CAAC;AAEF,SAAK,aAAa,SAAS;YACnB,OAAO;AACf,SAAK,aACJ,2BAA2B,QAAQ,WAAW,OAAO,IAAI,CACzD;;YAIC,CAAC,KAAK,iBAAiB,IAAI,QAAQ,UAAU,CAChD,SAAQ,MACP,4CAA4C,KAAK,UAChD,QACA,GACD;QACK;AAGN,SAAK,iBAAiB,IAAI,QAAQ,UAAU,CAAE,QAAQ;AACtD,SAAK,iBAAiB,OAAO,QAAQ,UAAU;;WAGzC,OAAO;AACf,OAAI,iBAAiB,UACpB,SAAQ,KAAK,MAAM,QAAQ;OAG3B,OAAM;;;CAKT,AAAU,YAIT,SACA,eAAe,cAA4B,KAAK,KAAK,YAAYA,UAAQ,EACzE,UAA8B,EAAE,EACoB;AACpD,MAAI,KAAK,QAAQ,MAEhB,SAAQ,MAAM,QAAQ;AAGvB,MAAI,KAAK,iBAAiB,QAAQ,KAAK,QAAQ,0BAC9C,OAAM,IAAI,+BAA+B,QAAQ;AAGlD,SAAO,IAAI,SACT,SAAS,WAAW;GACpB,MAAM,iBAAiB,iBAAiB;AACvC,QAAI,KAAK,iBAAiB,IAAI,QAAQ,UAAU,CAC/C,MAAK,iBAAiB,OAAO,QAAQ,UAAU;AAEhD,WAAO,IAAI,oBAAoB,QAAQ,CAAC;MACtC,QAAQ,WAAW,KAAK,QAAQ,eAAe;AAElD,QAAK,iBAAiB,IACrB,QAAQ,YACP,aAA8B;AAC9B,iBAAa,eAAe;AAE5B,QAAI,yBAAyB,SAAS,CACrC,SAAQ,SAAqD;QAE7D,QAAO,IAAI,cAAc,SAAmD,CAAC;KAG/E;AAED,eAAY,QAAQ;IAErB;;CAGF,AAAU,aACT,UACA,eAAe,eACd,KAAK,KAAK,YAAYC,WAAS,EACpB;AACZ,MAAI,KAAK,QAAQ,MAEhB,SAAQ,MAAM,SAAS;AAGxB,cAAY,SAAS;AAErB,SAAO"}
@@ -1,95 +1,72 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4
- var __publicField = (obj, key, value) => {
5
- __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
6
- return value;
7
- };
8
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
9
- const types = require("./types.cjs");
10
- const errors = require("./errors.cjs");
11
- const ChannelNetwork = require("./ChannelNetwork.cjs");
12
- const messages = require("./messages.cjs");
1
+ const require_errors = require('./errors.cjs');
2
+ const require_messages = require('./messages.cjs');
3
+ const require_ChannelNetwork = require('./ChannelNetwork.cjs');
4
+ const require_types = require('./types.cjs');
5
+
6
+ //#region src/channel/ChannelReceiver.ts
13
7
  const channelReceiverDefaultOptions = {
14
- readyTimeout: 2e4,
15
- requestIDPrefix: "receiver-"
8
+ readyTimeout: 2e4,
9
+ requestIDPrefix: "receiver-"
10
+ };
11
+ var ChannelReceiver = class extends require_ChannelNetwork.ChannelNetwork {
12
+ _ready = false;
13
+ constructor(requestHandlers, options) {
14
+ super(requestHandlers, {
15
+ ...channelReceiverDefaultOptions,
16
+ ...options
17
+ });
18
+ window.addEventListener("message", (event) => {
19
+ this._onPublicMessage(event);
20
+ });
21
+ }
22
+ /** Tells the emitter that receiver is ready */
23
+ async ready() {
24
+ if (window.parent === window) throw new Error("Receiver is currently not embedded as an iframe");
25
+ this._ready = false;
26
+ const request = this.createRequestMessage(require_types.InternalReceiverRequestType.Ready, void 0);
27
+ const response = await this.postRequest(request, (request$1) => {
28
+ window.parent.postMessage(request$1, "*");
29
+ }, { timeout: this.options.readyTimeout });
30
+ this._ready = true;
31
+ return response;
32
+ }
33
+ /** Handles public messages */
34
+ _onPublicMessage(event) {
35
+ try {
36
+ const message = require_messages.validateMessage(event.data);
37
+ if (require_messages.isRequestMessage(message)) {
38
+ if (this.options.debug) console.debug(event.data);
39
+ switch (message.type) {
40
+ case require_types.InternalEmitterRequestType.Connect:
41
+ this.port = event.ports[0];
42
+ const { data } = message;
43
+ this.options = {
44
+ ...this.options,
45
+ ...data,
46
+ debug: this.options.debug,
47
+ requestIDPrefix: this.options.requestIDPrefix,
48
+ readyTimeout: this.options.readyTimeout
49
+ };
50
+ const response = require_messages.createSuccessResponseMessage(message.requestID, void 0);
51
+ this.postResponse(response);
52
+ break;
53
+ default:
54
+ this.postResponse(require_messages.createErrorResponseMessage(message.requestID, void 0), (response$1) => {
55
+ event.source.postMessage(response$1, event.origin);
56
+ });
57
+ break;
58
+ }
59
+ } else if (!this._ready) this.onMessage(event);
60
+ } catch (error) {
61
+ if (error instanceof TypeError) {} else throw error;
62
+ }
63
+ }
64
+ postFormattedRequest(type, data, options = {}) {
65
+ if (!this._ready) throw new require_errors.NotReadyError("Receiver is not ready, use `ChannelReceiver.ready()` first");
66
+ return this.postRequest(this.createRequestMessage(type, data), void 0, options);
67
+ }
16
68
  };
17
- class ChannelReceiver extends ChannelNetwork.ChannelNetwork {
18
- constructor(requestHandlers, options) {
19
- super(requestHandlers, { ...channelReceiverDefaultOptions, ...options });
20
- __publicField(this, "_ready", false);
21
- window.addEventListener("message", (event) => {
22
- this._onPublicMessage(event);
23
- });
24
- }
25
- /**
26
- * Tells the emitter that receiver is ready
27
- */
28
- async ready() {
29
- if (window.parent === window) {
30
- throw new Error("Receiver is currently not embedded as an iframe");
31
- }
32
- this._ready = false;
33
- const request = this.createRequestMessage(types.InternalReceiverRequestType.Ready, void 0);
34
- const response = await this.postRequest(request, (request2) => {
35
- window.parent.postMessage(request2, "*");
36
- }, {
37
- timeout: this.options.readyTimeout
38
- });
39
- this._ready = true;
40
- return response;
41
- }
42
- /**
43
- * Handles public messages
44
- */
45
- _onPublicMessage(event) {
46
- try {
47
- const message = messages.validateMessage(event.data);
48
- if (messages.isRequestMessage(message)) {
49
- if (this.options.debug) {
50
- console.debug(event.data);
51
- }
52
- switch (message.type) {
53
- case types.InternalEmitterRequestType.Connect:
54
- this.port = event.ports[0];
55
- const { data } = message;
56
- this.options = {
57
- ...this.options,
58
- ...data,
59
- // Ensure core options remain the same
60
- debug: this.options.debug,
61
- requestIDPrefix: this.options.requestIDPrefix,
62
- readyTimeout: this.options.readyTimeout
63
- };
64
- const response = messages.createSuccessResponseMessage(message.requestID, void 0);
65
- this.postResponse(response);
66
- break;
67
- default:
68
- this.postResponse(messages.createErrorResponseMessage(message.requestID, void 0), (response2) => {
69
- event.source.postMessage(response2, event.origin);
70
- });
71
- break;
72
- }
73
- } else {
74
- if (!this._ready) {
75
- this.onMessage(event);
76
- }
77
- }
78
- } catch (error) {
79
- if (error instanceof TypeError)
80
- ;
81
- else {
82
- throw error;
83
- }
84
- }
85
- }
86
- postFormattedRequest(type, data, options = {}) {
87
- if (!this._ready) {
88
- throw new errors.NotReadyError("Receiver is not ready, use `ChannelReceiver.ready()` first");
89
- }
90
- return this.postRequest(this.createRequestMessage(type, data), void 0, options);
91
- }
92
- }
69
+
70
+ //#endregion
93
71
  exports.ChannelReceiver = ChannelReceiver;
94
- exports.channelReceiverDefaultOptions = channelReceiverDefaultOptions;
95
- //# sourceMappingURL=ChannelReceiver.cjs.map
72
+ //# sourceMappingURL=ChannelReceiver.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChannelReceiver.cjs","sources":["../../../src/channel/ChannelReceiver.ts"],"sourcesContent":["import {\n\tExtractSuccessResponseMessage,\n\tInternalEmitterRequestType,\n\tInternalEmitterTransactions,\n\tInternalReceiverRequestType,\n\tRequestMessage,\n\tResponseMessage,\n\tSuccessResponseMessage,\n\tTransactionsHandlers,\n\tUnknownRequestMessage,\n\tUnknownResponseMessage,\n\tUnknownTransaction,\n} from \"./types\";\n\nimport { NotReadyError } from \"./errors\";\n\nimport {\n\tChannelNetwork,\n\tChannelNetworkOptions,\n\tPostRequestOptions,\n} from \"./ChannelNetwork\";\nimport {\n\tcreateErrorResponseMessage,\n\tcreateSuccessResponseMessage,\n\tisRequestMessage,\n\tvalidateMessage,\n} from \"./messages\";\n\nexport type ChannelReceiverOptions = {\n\treadyTimeout: number;\n};\n\nexport const channelReceiverDefaultOptions: ChannelReceiverOptions &\n\tPartial<ChannelNetworkOptions> = {\n\treadyTimeout: 20000,\n\trequestIDPrefix: \"receiver-\",\n};\n\nexport type AllChannelReceiverOptions = ChannelReceiverOptions &\n\tChannelNetworkOptions;\n\nexport abstract class ChannelReceiver<\n\tTEmitterTransactions extends Record<string, UnknownTransaction> = Record<\n\t\tstring,\n\t\tnever\n\t>,\n\tTOptions extends Record<string, unknown> = Record<string, unknown>,\n> extends ChannelNetwork<\n\tTEmitterTransactions,\n\tChannelReceiverOptions & TOptions\n> {\n\tprivate _ready = false;\n\n\tconstructor(\n\t\trequestHandlers: TransactionsHandlers<TEmitterTransactions>,\n\t\toptions: Partial<AllChannelReceiverOptions> & TOptions,\n\t) {\n\t\tsuper(requestHandlers, { ...channelReceiverDefaultOptions, ...options });\n\n\t\twindow.addEventListener(\"message\", (event) => {\n\t\t\tthis._onPublicMessage(event);\n\t\t});\n\t}\n\n\t/**\n\t * Tells the emitter that receiver is ready\n\t */\n\tpublic async ready(): Promise<SuccessResponseMessage> {\n\t\tif (window.parent === window) {\n\t\t\tthrow new Error(\"Receiver is currently not embedded as an iframe\");\n\t\t}\n\n\t\tthis._ready = false;\n\n\t\tconst request = this.createRequestMessage(\n\t\t\tInternalReceiverRequestType.Ready,\n\t\t\tundefined,\n\t\t);\n\n\t\tconst response = await this.postRequest<\n\t\t\tRequestMessage<InternalReceiverRequestType.Ready>,\n\t\t\tResponseMessage\n\t\t>(\n\t\t\trequest,\n\t\t\t(request) => {\n\t\t\t\twindow.parent.postMessage(request, \"*\");\n\t\t\t},\n\t\t\t{\n\t\t\t\ttimeout: this.options.readyTimeout,\n\t\t\t},\n\t\t);\n\n\t\tthis._ready = true;\n\n\t\treturn response;\n\t}\n\n\t/**\n\t * Handles public messages\n\t */\n\tprivate _onPublicMessage(event: MessageEvent<unknown>): void {\n\t\ttry {\n\t\t\tconst message = validateMessage(event.data);\n\n\t\t\tif (isRequestMessage(message)) {\n\t\t\t\tif (this.options.debug) {\n\t\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\t\tconsole.debug(event.data);\n\t\t\t\t}\n\n\t\t\t\tswitch (message.type) {\n\t\t\t\t\tcase InternalEmitterRequestType.Connect:\n\t\t\t\t\t\t// Set port\n\t\t\t\t\t\tthis.port = event.ports[0];\n\n\t\t\t\t\t\t// Update options\n\t\t\t\t\t\tconst { data } =\n\t\t\t\t\t\t\tmessage as InternalEmitterTransactions[\"connect\"][\"request\"];\n\t\t\t\t\t\tthis.options = {\n\t\t\t\t\t\t\t...this.options,\n\t\t\t\t\t\t\t...data,\n\t\t\t\t\t\t\t// Ensure core options remain the same\n\t\t\t\t\t\t\tdebug: this.options.debug,\n\t\t\t\t\t\t\trequestIDPrefix: this.options.requestIDPrefix,\n\t\t\t\t\t\t\treadyTimeout: this.options.readyTimeout,\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tconst response = createSuccessResponseMessage(\n\t\t\t\t\t\t\tmessage.requestID,\n\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tthis.postResponse(response);\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthis.postResponse(\n\t\t\t\t\t\t\tcreateErrorResponseMessage(message.requestID, undefined),\n\t\t\t\t\t\t\t(response) => {\n\t\t\t\t\t\t\t\t(event.source as WindowProxy).postMessage(\n\t\t\t\t\t\t\t\t\tresponse,\n\t\t\t\t\t\t\t\t\tevent.origin,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Forward response messages to default message handler if necessary\n\t\t\t\tif (!this._ready) {\n\t\t\t\t\tthis.onMessage(event);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tif (error instanceof TypeError) {\n\t\t\t\t// Ignore unknown messages\n\t\t\t} else {\n\t\t\t\t// Should not be possible, but who knows :shrug:\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected postFormattedRequest<\n\t\tTRequest extends UnknownRequestMessage,\n\t\tTResponse extends UnknownResponseMessage,\n\t>(\n\t\ttype: TRequest[\"type\"],\n\t\tdata?: TRequest[\"data\"],\n\t\toptions: PostRequestOptions = {},\n\t): Promise<ExtractSuccessResponseMessage<TResponse>> {\n\t\tif (!this._ready) {\n\t\t\tthrow new NotReadyError(\n\t\t\t\t\"Receiver is not ready, use `ChannelReceiver.ready()` first\",\n\t\t\t);\n\t\t}\n\n\t\treturn this.postRequest(\n\t\t\tthis.createRequestMessage(type, data),\n\t\t\tundefined,\n\t\t\toptions,\n\t\t);\n\t}\n}\n"],"names":["ChannelNetwork","InternalReceiverRequestType","request","validateMessage","isRequestMessage","InternalEmitterRequestType","createSuccessResponseMessage","createErrorResponseMessage","response","NotReadyError"],"mappings":";;;;;;;;;;;;AAgCO,MAAM,gCACqB;AAAA,EACjC,cAAc;AAAA,EACd,iBAAiB;;AAMZ,MAAgB,wBAMZA,eAAAA,eAGT;AAAA,EAGA,YACC,iBACA,SAAsD;AAEtD,UAAM,iBAAiB,EAAE,GAAG,+BAA+B,GAAG,QAAS,CAAA;AANhE,kCAAS;AAQT,WAAA,iBAAiB,WAAW,CAAC,UAAS;AAC5C,WAAK,iBAAiB,KAAK;AAAA,IAAA,CAC3B;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKO,MAAM,QAAK;AACb,QAAA,OAAO,WAAW,QAAQ;AACvB,YAAA,IAAI,MAAM,iDAAiD;AAAA,IACjE;AAED,SAAK,SAAS;AAEd,UAAM,UAAU,KAAK,qBACpBC,MAAA,4BAA4B,OAC5B,MAAS;AAGV,UAAM,WAAW,MAAM,KAAK,YAI3B,SACA,CAACC,aAAW;AACJ,aAAA,OAAO,YAAYA,UAAS,GAAG;AAAA,IAAA,GAEvC;AAAA,MACC,SAAS,KAAK,QAAQ;AAAA,IAAA,CACtB;AAGF,SAAK,SAAS;AAEP,WAAA;AAAA,EACR;AAAA;AAAA;AAAA;AAAA,EAKQ,iBAAiB,OAA4B;AAChD,QAAA;AACG,YAAA,UAAUC,SAAAA,gBAAgB,MAAM,IAAI;AAEtC,UAAAC,SAAAA,iBAAiB,OAAO,GAAG;AAC1B,YAAA,KAAK,QAAQ,OAAO;AAEf,kBAAA,MAAM,MAAM,IAAI;AAAA,QACxB;AAED,gBAAQ,QAAQ,MAAM;AAAA,UACrB,KAAKC,MAA2B,2BAAA;AAE1B,iBAAA,OAAO,MAAM,MAAM,CAAC;AAGnB,kBAAA,EAAE,KACP,IAAA;AACD,iBAAK,UAAU;AAAA,cACd,GAAG,KAAK;AAAA,cACR,GAAG;AAAA;AAAA,cAEH,OAAO,KAAK,QAAQ;AAAA,cACpB,iBAAiB,KAAK,QAAQ;AAAA,cAC9B,cAAc,KAAK,QAAQ;AAAA,YAAA;AAG5B,kBAAM,WAAWC,SAAAA,6BAChB,QAAQ,WACR,MAAS;AAGV,iBAAK,aAAa,QAAQ;AAC1B;AAAA,UAED;AACC,iBAAK,aACJC,SAAAA,2BAA2B,QAAQ,WAAW,MAAS,GACvD,CAACC,cAAY;AACX,oBAAM,OAAuB,YAC7BA,WACA,MAAM,MAAM;AAAA,YAAA,CAEb;AAEF;AAAA,QACD;AAAA,MAAA,OACK;AAEF,YAAA,CAAC,KAAK,QAAQ;AACjB,eAAK,UAAU,KAAK;AAAA,QACpB;AAAA,MACD;AAAA,aACO;AACR,UAAI,iBAAiB;AAAW;AAAA,WAEzB;AAEA,cAAA;AAAA,MACN;AAAA,IACD;AAAA,EACF;AAAA,EAEU,qBAIT,MACA,MACA,UAA8B,CAAA,GAAE;AAE5B,QAAA,CAAC,KAAK,QAAQ;AACX,YAAA,IAAIC,OAAAA,cACT,4DAA4D;AAAA,IAE7D;AAEM,WAAA,KAAK,YACX,KAAK,qBAAqB,MAAM,IAAI,GACpC,QACA,OAAO;AAAA,EAET;AACA;;;"}
1
+ {"version":3,"file":"ChannelReceiver.cjs","names":["ChannelNetwork","InternalReceiverRequestType","request","validateMessage","isRequestMessage","InternalEmitterRequestType","createSuccessResponseMessage","createErrorResponseMessage","response","NotReadyError"],"sources":["../../src/channel/ChannelReceiver.ts"],"sourcesContent":["import type {\n\tExtractSuccessResponseMessage,\n\tInternalEmitterTransactions,\n\tRequestMessage,\n\tResponseMessage,\n\tSuccessResponseMessage,\n\tTransactionsHandlers,\n\tUnknownRequestMessage,\n\tUnknownResponseMessage,\n\tUnknownTransaction} from \"./types\";\nimport {\n\tInternalEmitterRequestType,\n\tInternalReceiverRequestType\n} from \"./types\"\n\nimport { NotReadyError } from \"./errors\"\n\nimport type {\n\tChannelNetworkOptions,\n\tPostRequestOptions} from \"./ChannelNetwork\";\nimport {\n\tChannelNetwork\n} from \"./ChannelNetwork\"\nimport {\n\tcreateErrorResponseMessage,\n\tcreateSuccessResponseMessage,\n\tisRequestMessage,\n\tvalidateMessage,\n} from \"./messages\"\n\nexport type ChannelReceiverOptions = {\n\treadyTimeout: number\n}\n\nexport const channelReceiverDefaultOptions: ChannelReceiverOptions &\n\tPartial<ChannelNetworkOptions> = {\n\treadyTimeout: 20000,\n\trequestIDPrefix: \"receiver-\",\n}\n\nexport type AllChannelReceiverOptions = ChannelReceiverOptions &\n\tChannelNetworkOptions\n\nexport abstract class ChannelReceiver<\n\tTEmitterTransactions extends Record<string, UnknownTransaction> = Record<\n\t\tstring,\n\t\tnever\n\t>,\n\tTOptions extends Record<string, unknown> = Record<string, unknown>,\n> extends ChannelNetwork<\n\tTEmitterTransactions,\n\tChannelReceiverOptions & TOptions\n> {\n\tprivate _ready = false\n\n\tconstructor(\n\t\trequestHandlers: TransactionsHandlers<TEmitterTransactions>,\n\t\toptions: Partial<AllChannelReceiverOptions> & TOptions,\n\t) {\n\t\tsuper(requestHandlers, { ...channelReceiverDefaultOptions, ...options })\n\n\t\twindow.addEventListener(\"message\", (event) => {\n\t\t\tthis._onPublicMessage(event)\n\t\t})\n\t}\n\n\t/** Tells the emitter that receiver is ready */\n\tpublic async ready(): Promise<SuccessResponseMessage> {\n\t\tif (window.parent === window) {\n\t\t\tthrow new Error(\"Receiver is currently not embedded as an iframe\")\n\t\t}\n\n\t\tthis._ready = false\n\n\t\tconst request = this.createRequestMessage(\n\t\t\tInternalReceiverRequestType.Ready,\n\t\t\tundefined,\n\t\t)\n\n\t\tconst response = await this.postRequest<\n\t\t\tRequestMessage<InternalReceiverRequestType.Ready>,\n\t\t\tResponseMessage\n\t\t>(\n\t\t\trequest,\n\t\t\t(request) => {\n\t\t\t\twindow.parent.postMessage(request, \"*\")\n\t\t\t},\n\t\t\t{\n\t\t\t\ttimeout: this.options.readyTimeout,\n\t\t\t},\n\t\t)\n\n\t\tthis._ready = true\n\n\t\treturn response\n\t}\n\n\t/** Handles public messages */\n\tprivate _onPublicMessage(event: MessageEvent<unknown>): void {\n\t\ttry {\n\t\t\tconst message = validateMessage(event.data)\n\n\t\t\tif (isRequestMessage(message)) {\n\t\t\t\tif (this.options.debug) {\n\t\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\t\tconsole.debug(event.data)\n\t\t\t\t}\n\n\t\t\t\tswitch (message.type) {\n\t\t\t\t\tcase InternalEmitterRequestType.Connect:\n\t\t\t\t\t\t// Set port\n\t\t\t\t\t\tthis.port = event.ports[0]\n\n\t\t\t\t\t\t// Update options\n\t\t\t\t\t\tconst { data } =\n\t\t\t\t\t\t\tmessage as InternalEmitterTransactions[\"connect\"][\"request\"]\n\t\t\t\t\t\tthis.options = {\n\t\t\t\t\t\t\t...this.options,\n\t\t\t\t\t\t\t...data,\n\t\t\t\t\t\t\t// Ensure core options remain the same\n\t\t\t\t\t\t\tdebug: this.options.debug,\n\t\t\t\t\t\t\trequestIDPrefix: this.options.requestIDPrefix,\n\t\t\t\t\t\t\treadyTimeout: this.options.readyTimeout,\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst response = createSuccessResponseMessage(\n\t\t\t\t\t\t\tmessage.requestID,\n\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t)\n\n\t\t\t\t\t\tthis.postResponse(response)\n\t\t\t\t\t\tbreak\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthis.postResponse(\n\t\t\t\t\t\t\tcreateErrorResponseMessage(message.requestID, undefined),\n\t\t\t\t\t\t\t(response) => {\n\t\t\t\t\t\t\t\t;(event.source as WindowProxy).postMessage(\n\t\t\t\t\t\t\t\t\tresponse,\n\t\t\t\t\t\t\t\t\tevent.origin,\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t)\n\t\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Forward response messages to default message handler if necessary\n\t\t\t\tif (!this._ready) {\n\t\t\t\t\tthis.onMessage(event)\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tif (error instanceof TypeError) {\n\t\t\t\t// Ignore unknown messages\n\t\t\t} else {\n\t\t\t\t// Should not be possible, but who knows :shrug:\n\t\t\t\tthrow error\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected postFormattedRequest<\n\t\tTRequest extends UnknownRequestMessage,\n\t\tTResponse extends UnknownResponseMessage,\n\t>(\n\t\ttype: TRequest[\"type\"],\n\t\tdata?: TRequest[\"data\"],\n\t\toptions: PostRequestOptions = {},\n\t): Promise<ExtractSuccessResponseMessage<TResponse>> {\n\t\tif (!this._ready) {\n\t\t\tthrow new NotReadyError(\n\t\t\t\t\"Receiver is not ready, use `ChannelReceiver.ready()` first\",\n\t\t\t)\n\t\t}\n\n\t\treturn this.postRequest(\n\t\t\tthis.createRequestMessage(type, data),\n\t\t\tundefined,\n\t\t\toptions,\n\t\t)\n\t}\n}\n"],"mappings":";;;;;;AAkCA,MAAa,gCACqB;CACjC,cAAc;CACd,iBAAiB;CACjB;AAKD,IAAsB,kBAAtB,cAMUA,sCAGR;CACD,AAAQ,SAAS;CAEjB,YACC,iBACA,SACC;AACD,QAAM,iBAAiB;GAAE,GAAG;GAA+B,GAAG;GAAS,CAAC;AAExE,SAAO,iBAAiB,YAAY,UAAU;AAC7C,QAAK,iBAAiB,MAAM;IAC3B;;;CAIH,MAAa,QAAyC;AACrD,MAAI,OAAO,WAAW,OACrB,OAAM,IAAI,MAAM,kDAAkD;AAGnE,OAAK,SAAS;EAEd,MAAM,UAAU,KAAK,qBACpBC,0CAA4B,OAC5B,OACA;EAED,MAAM,WAAW,MAAM,KAAK,YAI3B,UACC,cAAY;AACZ,UAAO,OAAO,YAAYC,WAAS,IAAI;KAExC,EACC,SAAS,KAAK,QAAQ,cACtB,CACD;AAED,OAAK,SAAS;AAEd,SAAO;;;CAIR,AAAQ,iBAAiB,OAAoC;AAC5D,MAAI;GACH,MAAM,UAAUC,iCAAgB,MAAM,KAAK;AAE3C,OAAIC,kCAAiB,QAAQ,EAAE;AAC9B,QAAI,KAAK,QAAQ,MAEhB,SAAQ,MAAM,MAAM,KAAK;AAG1B,YAAQ,QAAQ,MAAhB;KACC,KAAKC,yCAA2B;AAE/B,WAAK,OAAO,MAAM,MAAM;MAGxB,MAAM,EAAE,SACP;AACD,WAAK,UAAU;OACd,GAAG,KAAK;OACR,GAAG;OAEH,OAAO,KAAK,QAAQ;OACpB,iBAAiB,KAAK,QAAQ;OAC9B,cAAc,KAAK,QAAQ;OAC3B;MAED,MAAM,WAAWC,8CAChB,QAAQ,WACR,OACA;AAED,WAAK,aAAa,SAAS;AAC3B;KAED;AACC,WAAK,aACJC,4CAA2B,QAAQ,WAAW,OAAU,GACvD,eAAa;AACZ,OAAC,MAAM,OAAuB,YAC9BC,YACA,MAAM,OACN;QAEF;AACD;;cAIE,CAAC,KAAK,OACT,MAAK,UAAU,MAAM;WAGf,OAAO;AACf,OAAI,iBAAiB,WAAW,OAI/B,OAAM;;;CAKT,AAAU,qBAIT,MACA,MACA,UAA8B,EAAE,EACoB;AACpD,MAAI,CAAC,KAAK,OACT,OAAM,IAAIC,6BACT,6DACA;AAGF,SAAO,KAAK,YACX,KAAK,qBAAqB,MAAM,KAAK,EACrC,QACA,QACA"}
@@ -0,0 +1,20 @@
1
+ import { ExtractSuccessResponseMessage, SuccessResponseMessage, TransactionsHandlers, UnknownRequestMessage, UnknownResponseMessage, UnknownTransaction } from "./types.cjs";
2
+ import { ChannelNetwork, ChannelNetworkOptions, PostRequestOptions } from "./ChannelNetwork.cjs";
3
+
4
+ //#region src/channel/ChannelReceiver.d.ts
5
+ type ChannelReceiverOptions = {
6
+ readyTimeout: number;
7
+ };
8
+ type AllChannelReceiverOptions = ChannelReceiverOptions & ChannelNetworkOptions;
9
+ declare abstract class ChannelReceiver<TEmitterTransactions extends Record<string, UnknownTransaction> = Record<string, never>, TOptions extends Record<string, unknown> = Record<string, unknown>> extends ChannelNetwork<TEmitterTransactions, ChannelReceiverOptions & TOptions> {
10
+ private _ready;
11
+ constructor(requestHandlers: TransactionsHandlers<TEmitterTransactions>, options: Partial<AllChannelReceiverOptions> & TOptions);
12
+ /** Tells the emitter that receiver is ready */
13
+ ready(): Promise<SuccessResponseMessage>;
14
+ /** Handles public messages */
15
+ private _onPublicMessage;
16
+ protected postFormattedRequest<TRequest extends UnknownRequestMessage, TResponse extends UnknownResponseMessage>(type: TRequest["type"], data?: TRequest["data"], options?: PostRequestOptions): Promise<ExtractSuccessResponseMessage<TResponse>>;
17
+ }
18
+ //#endregion
19
+ export { AllChannelReceiverOptions, ChannelReceiver };
20
+ //# sourceMappingURL=ChannelReceiver.d.cts.map
@@ -1,20 +1,20 @@
1
- import { ExtractSuccessResponseMessage, SuccessResponseMessage, TransactionsHandlers, UnknownRequestMessage, UnknownResponseMessage, UnknownTransaction } from "./types";
2
- import { ChannelNetwork, ChannelNetworkOptions, PostRequestOptions } from "./ChannelNetwork";
3
- export type ChannelReceiverOptions = {
4
- readyTimeout: number;
1
+ import { ExtractSuccessResponseMessage, SuccessResponseMessage, TransactionsHandlers, UnknownRequestMessage, UnknownResponseMessage, UnknownTransaction } from "./types.js";
2
+ import { ChannelNetwork, ChannelNetworkOptions, PostRequestOptions } from "./ChannelNetwork.js";
3
+
4
+ //#region src/channel/ChannelReceiver.d.ts
5
+ type ChannelReceiverOptions = {
6
+ readyTimeout: number;
5
7
  };
6
- export declare const channelReceiverDefaultOptions: ChannelReceiverOptions & Partial<ChannelNetworkOptions>;
7
- export type AllChannelReceiverOptions = ChannelReceiverOptions & ChannelNetworkOptions;
8
- export declare abstract class ChannelReceiver<TEmitterTransactions extends Record<string, UnknownTransaction> = Record<string, never>, TOptions extends Record<string, unknown> = Record<string, unknown>> extends ChannelNetwork<TEmitterTransactions, ChannelReceiverOptions & TOptions> {
9
- private _ready;
10
- constructor(requestHandlers: TransactionsHandlers<TEmitterTransactions>, options: Partial<AllChannelReceiverOptions> & TOptions);
11
- /**
12
- * Tells the emitter that receiver is ready
13
- */
14
- ready(): Promise<SuccessResponseMessage>;
15
- /**
16
- * Handles public messages
17
- */
18
- private _onPublicMessage;
19
- protected postFormattedRequest<TRequest extends UnknownRequestMessage, TResponse extends UnknownResponseMessage>(type: TRequest["type"], data?: TRequest["data"], options?: PostRequestOptions): Promise<ExtractSuccessResponseMessage<TResponse>>;
8
+ type AllChannelReceiverOptions = ChannelReceiverOptions & ChannelNetworkOptions;
9
+ declare abstract class ChannelReceiver<TEmitterTransactions extends Record<string, UnknownTransaction> = Record<string, never>, TOptions extends Record<string, unknown> = Record<string, unknown>> extends ChannelNetwork<TEmitterTransactions, ChannelReceiverOptions & TOptions> {
10
+ private _ready;
11
+ constructor(requestHandlers: TransactionsHandlers<TEmitterTransactions>, options: Partial<AllChannelReceiverOptions> & TOptions);
12
+ /** Tells the emitter that receiver is ready */
13
+ ready(): Promise<SuccessResponseMessage>;
14
+ /** Handles public messages */
15
+ private _onPublicMessage;
16
+ protected postFormattedRequest<TRequest extends UnknownRequestMessage, TResponse extends UnknownResponseMessage>(type: TRequest["type"], data?: TRequest["data"], options?: PostRequestOptions): Promise<ExtractSuccessResponseMessage<TResponse>>;
20
17
  }
18
+ //#endregion
19
+ export { AllChannelReceiverOptions, ChannelReceiver };
20
+ //# sourceMappingURL=ChannelReceiver.d.ts.map