@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.
- package/README.md +7 -18
- package/dist/SimulatorAPI.cjs +38 -46
- package/dist/SimulatorAPI.cjs.map +1 -1
- package/dist/SimulatorAPI.d.cts +18 -0
- package/dist/SimulatorAPI.d.ts +16 -10
- package/dist/SimulatorAPI.js +37 -46
- package/dist/SimulatorAPI.js.map +1 -1
- package/dist/SimulatorClient.cjs +41 -51
- package/dist/SimulatorClient.cjs.map +1 -1
- package/dist/SimulatorClient.d.cts +16 -0
- package/dist/SimulatorClient.d.ts +15 -9
- package/dist/SimulatorClient.js +40 -51
- package/dist/SimulatorClient.js.map +1 -1
- package/dist/channel/ChannelEmitter.cjs +112 -143
- package/dist/channel/ChannelEmitter.cjs.map +1 -1
- package/dist/channel/ChannelEmitter.d.cts +38 -0
- package/dist/channel/ChannelEmitter.d.ts +36 -36
- package/dist/channel/ChannelEmitter.js +110 -141
- package/dist/channel/ChannelEmitter.js.map +1 -1
- package/dist/channel/ChannelNetwork.cjs +81 -109
- package/dist/channel/ChannelNetwork.cjs.map +1 -1
- package/dist/channel/ChannelNetwork.d.cts +28 -0
- package/dist/channel/ChannelNetwork.d.ts +25 -21
- package/dist/channel/ChannelNetwork.js +81 -109
- package/dist/channel/ChannelNetwork.js.map +1 -1
- package/dist/channel/ChannelReceiver.cjs +69 -92
- package/dist/channel/ChannelReceiver.cjs.map +1 -1
- package/dist/channel/ChannelReceiver.d.cts +20 -0
- package/dist/channel/ChannelReceiver.d.ts +18 -18
- package/dist/channel/ChannelReceiver.js +67 -90
- package/dist/channel/ChannelReceiver.js.map +1 -1
- package/dist/channel/errors.cjs +41 -46
- package/dist/channel/errors.cjs.map +1 -1
- package/dist/channel/errors.d.cts +28 -0
- package/dist/channel/errors.d.ts +22 -19
- package/dist/channel/errors.js +40 -52
- package/dist/channel/errors.js.map +1 -1
- package/dist/channel/messages.cjs +48 -43
- package/dist/channel/messages.cjs.map +1 -1
- package/dist/channel/messages.d.cts +12 -0
- package/dist/channel/messages.d.ts +12 -10
- package/dist/channel/messages.js +50 -53
- package/dist/channel/messages.js.map +1 -1
- package/dist/channel/types.cjs +15 -11
- package/dist/channel/types.cjs.map +1 -1
- package/dist/channel/types.d.cts +53 -0
- package/dist/channel/types.d.ts +42 -50
- package/dist/channel/types.js +13 -13
- package/dist/channel/types.js.map +1 -1
- package/dist/globalExtensions.d.cts +15 -0
- package/dist/globalExtensions.d.ts +13 -10
- package/dist/index.cjs +24 -33
- package/dist/index.d.cts +10 -0
- package/dist/index.d.ts +10 -8
- package/dist/index.js +5 -25
- package/dist/kit/SimulatorManager.cjs +106 -137
- package/dist/kit/SimulatorManager.cjs.map +1 -1
- package/dist/kit/SimulatorManager.d.cts +19 -0
- package/dist/kit/SimulatorManager.d.ts +16 -12
- package/dist/kit/SimulatorManager.js +103 -134
- package/dist/kit/SimulatorManager.js.map +1 -1
- package/dist/kit/State.cjs +82 -80
- package/dist/kit/State.cjs.map +1 -1
- package/dist/kit/State.d.cts +29 -0
- package/dist/kit/State.d.ts +26 -22
- package/dist/kit/State.js +80 -78
- package/dist/kit/State.js.map +1 -1
- package/dist/kit/domHelpers.cjs +25 -37
- package/dist/kit/domHelpers.cjs.map +1 -1
- package/dist/kit/domHelpers.d.cts +11 -0
- package/dist/kit/domHelpers.d.ts +10 -8
- package/dist/kit/domHelpers.js +25 -43
- package/dist/kit/domHelpers.js.map +1 -1
- package/dist/kit/eventHandlers.cjs +11 -9
- package/dist/kit/eventHandlers.cjs.map +1 -1
- package/dist/kit/eventHandlers.d.cts +8 -0
- package/dist/kit/eventHandlers.d.ts +7 -3
- package/dist/kit/eventHandlers.js +11 -11
- package/dist/kit/eventHandlers.js.map +1 -1
- package/dist/kit/getDefault.cjs +9 -7
- package/dist/kit/getDefault.cjs.map +1 -1
- package/dist/kit/getDefault.d.cts +10 -0
- package/dist/kit/getDefault.d.ts +10 -8
- package/dist/kit/getDefault.js +9 -10
- package/dist/kit/getDefault.js.map +1 -1
- package/dist/kit/messages.cjs +8 -22
- package/dist/kit/messages.cjs.map +1 -1
- package/dist/kit/messages.d.cts +5 -0
- package/dist/kit/messages.d.ts +5 -1
- package/dist/kit/messages.js +8 -23
- package/dist/kit/messages.js.map +1 -1
- package/dist/kit/types.cjs +12 -9
- package/dist/kit/types.cjs.map +1 -1
- package/dist/kit/types.d.cts +28 -0
- package/dist/kit/types.d.ts +24 -19
- package/dist/kit/types.js +11 -10
- package/dist/kit/types.js.map +1 -1
- package/dist/kit.cjs +21 -26
- package/dist/kit.d.cts +8 -0
- package/dist/kit.d.ts +8 -0
- package/dist/kit.js +7 -21
- package/dist/lib/EventEmitter.cjs +16 -25
- package/dist/lib/EventEmitter.cjs.map +1 -1
- package/dist/lib/EventEmitter.d.cts +12 -0
- package/dist/lib/EventEmitter.d.ts +11 -9
- package/dist/lib/EventEmitter.js +16 -26
- package/dist/lib/EventEmitter.js.map +1 -1
- package/dist/lib/throttle.cjs +21 -21
- package/dist/lib/throttle.cjs.map +1 -1
- package/dist/lib/throttle.js +21 -22
- package/dist/lib/throttle.js.map +1 -1
- package/dist/types.cjs +18 -14
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +39 -0
- package/dist/types.d.ts +32 -27
- package/dist/types.js +16 -16
- package/dist/types.js.map +1 -1
- package/package.json +27 -68
- package/src/SimulatorAPI.ts +24 -22
- package/src/SimulatorClient.ts +24 -25
- package/src/channel/ChannelEmitter.ts +71 -74
- package/src/channel/ChannelNetwork.ts +53 -55
- package/src/channel/ChannelReceiver.ts +46 -48
- package/src/channel/errors.ts +14 -14
- package/src/channel/index.ts +10 -10
- package/src/channel/messages.ts +39 -31
- package/src/channel/types.ts +40 -40
- package/src/globalExtensions.ts +6 -6
- package/src/index.ts +8 -8
- package/src/kit/SimulatorManager.ts +64 -63
- package/src/kit/State.ts +45 -44
- package/src/kit/domHelpers.ts +24 -24
- package/src/kit/eventHandlers.ts +6 -6
- package/src/kit/getDefault.ts +8 -8
- package/src/kit/index.ts +8 -8
- package/src/kit/messages.ts +5 -5
- package/src/kit/types.ts +13 -13
- package/src/lib/EventEmitter.ts +8 -8
- package/src/lib/__PRODUCTION__.ts +2 -2
- package/src/lib/throttle.ts +12 -12
- package/src/types.ts +20 -20
- package/dist/channel/index.d.ts +0 -10
- package/dist/index.cjs.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/kit/index.d.ts +0 -8
- package/dist/kit.cjs.map +0 -1
- package/dist/kit.js.map +0 -1
- package/dist/lib/__PRODUCTION__.d.ts +0 -7
- package/dist/lib/throttle.d.ts +0 -1
|
@@ -1,24 +1,28 @@
|
|
|
1
|
-
import { ExtractSuccessResponseMessage, RequestMessage, TransactionsHandlers, UnknownRequestMessage, UnknownResponseMessage, UnknownTransaction } from "./types";
|
|
2
|
-
|
|
3
|
-
|
|
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
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
type ChannelNetworkOptions = {
|
|
8
|
+
debug: boolean;
|
|
9
|
+
maximumRequestConcurrency: number;
|
|
10
|
+
defaultTimeout: number;
|
|
11
|
+
requestIDPrefix: string;
|
|
10
12
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
6
|
+
debug: false,
|
|
7
|
+
maximumRequestConcurrency: 20,
|
|
8
|
+
defaultTimeout: 5e3,
|
|
9
|
+
requestIDPrefix: "channel-"
|
|
14
10
|
};
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
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
|
-
|
|
81
|
+
|
|
82
|
+
//#endregion
|
|
83
|
+
export { ChannelNetwork };
|
|
84
|
+
//# sourceMappingURL=ChannelNetwork.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChannelNetwork.js","sources":["
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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
|
-
|
|
15
|
-
|
|
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
|
-
|
|
18
|
-
|
|
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
|
-
|
|
95
|
-
//# sourceMappingURL=ChannelReceiver.cjs.map
|
|
72
|
+
//# sourceMappingURL=ChannelReceiver.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChannelReceiver.cjs","sources":["
|
|
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
|
-
|
|
4
|
-
|
|
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
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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
|