@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,95 +1,72 @@
|
|
|
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 { InternalReceiverRequestType, InternalEmitterRequestType } from "./types.js";
|
|
8
1
|
import { NotReadyError } from "./errors.js";
|
|
2
|
+
import { createErrorResponseMessage, createSuccessResponseMessage, isRequestMessage, validateMessage } from "./messages.js";
|
|
9
3
|
import { ChannelNetwork } from "./ChannelNetwork.js";
|
|
10
|
-
import {
|
|
4
|
+
import { InternalEmitterRequestType, InternalReceiverRequestType } from "./types.js";
|
|
5
|
+
|
|
6
|
+
//#region src/channel/ChannelReceiver.ts
|
|
11
7
|
const channelReceiverDefaultOptions = {
|
|
12
|
-
|
|
13
|
-
|
|
8
|
+
readyTimeout: 2e4,
|
|
9
|
+
requestIDPrefix: "receiver-"
|
|
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
|
-
if (!this._ready) {
|
|
73
|
-
this.onMessage(event);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
} catch (error) {
|
|
77
|
-
if (error instanceof TypeError)
|
|
78
|
-
;
|
|
79
|
-
else {
|
|
80
|
-
throw error;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
postFormattedRequest(type, data, options = {}) {
|
|
85
|
-
if (!this._ready) {
|
|
86
|
-
throw new NotReadyError("Receiver is not ready, use `ChannelReceiver.ready()` first");
|
|
87
|
-
}
|
|
88
|
-
return this.postRequest(this.createRequestMessage(type, data), void 0, options);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
export {
|
|
92
|
-
ChannelReceiver,
|
|
93
|
-
channelReceiverDefaultOptions
|
|
11
|
+
var ChannelReceiver = class extends 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(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 = validateMessage(event.data);
|
|
37
|
+
if (isRequestMessage(message)) {
|
|
38
|
+
if (this.options.debug) console.debug(event.data);
|
|
39
|
+
switch (message.type) {
|
|
40
|
+
case 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 = createSuccessResponseMessage(message.requestID, void 0);
|
|
51
|
+
this.postResponse(response);
|
|
52
|
+
break;
|
|
53
|
+
default:
|
|
54
|
+
this.postResponse(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 NotReadyError("Receiver is not ready, use `ChannelReceiver.ready()` first");
|
|
66
|
+
return this.postRequest(this.createRequestMessage(type, data), void 0, options);
|
|
67
|
+
}
|
|
94
68
|
};
|
|
95
|
-
|
|
69
|
+
|
|
70
|
+
//#endregion
|
|
71
|
+
export { ChannelReceiver };
|
|
72
|
+
//# sourceMappingURL=ChannelReceiver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChannelReceiver.js","sources":["
|
|
1
|
+
{"version":3,"file":"ChannelReceiver.js","names":["request","response"],"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,cAMU,eAGR;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,qBACpB,4BAA4B,OAC5B,OACA;EAED,MAAM,WAAW,MAAM,KAAK,YAI3B,UACC,cAAY;AACZ,UAAO,OAAO,YAAYA,WAAS,IAAI;KAExC,EACC,SAAS,KAAK,QAAQ,cACtB,CACD;AAED,OAAK,SAAS;AAEd,SAAO;;;CAIR,AAAQ,iBAAiB,OAAoC;AAC5D,MAAI;GACH,MAAM,UAAU,gBAAgB,MAAM,KAAK;AAE3C,OAAI,iBAAiB,QAAQ,EAAE;AAC9B,QAAI,KAAK,QAAQ,MAEhB,SAAQ,MAAM,MAAM,KAAK;AAG1B,YAAQ,QAAQ,MAAhB;KACC,KAAK,2BAA2B;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,WAAW,6BAChB,QAAQ,WACR,OACA;AAED,WAAK,aAAa,SAAS;AAC3B;KAED;AACC,WAAK,aACJ,2BAA2B,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,IAAI,cACT,6DACA;AAGF,SAAO,KAAK,YACX,KAAK,qBAAqB,MAAM,KAAK,EACrC,QACA,QACA"}
|
package/dist/channel/errors.cjs
CHANGED
|
@@ -1,49 +1,44 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
|
|
2
|
+
//#region src/channel/errors.ts
|
|
3
|
+
var ResponseError = class extends Error {
|
|
4
|
+
response;
|
|
5
|
+
constructor(errorResponse) {
|
|
6
|
+
super(errorResponse.msg);
|
|
7
|
+
this.response = errorResponse;
|
|
8
|
+
}
|
|
7
9
|
};
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
}
|
|
28
|
-
class
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
class ChannelNotSetError extends Error {
|
|
43
|
-
constructor() {
|
|
44
|
-
super("Channel is not set");
|
|
45
|
-
}
|
|
46
|
-
}
|
|
10
|
+
var ConnectionTimeoutError = class extends Error {
|
|
11
|
+
constructor() {
|
|
12
|
+
super("Connection timed out");
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
var TooManyConcurrentRequestsError = class extends Error {
|
|
16
|
+
request;
|
|
17
|
+
constructor(request) {
|
|
18
|
+
super(`Too many concurrent requests`);
|
|
19
|
+
this.request = request;
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
var RequestTimeoutError = class extends Error {
|
|
23
|
+
request;
|
|
24
|
+
constructor(request) {
|
|
25
|
+
super(`Request \`${request.requestID}\` timed out`);
|
|
26
|
+
this.request = request;
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
var NotReadyError = class extends Error {};
|
|
30
|
+
var PortNotSetError = class extends Error {
|
|
31
|
+
constructor() {
|
|
32
|
+
super("Port is not set");
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
var ChannelNotSetError = class extends Error {
|
|
36
|
+
constructor() {
|
|
37
|
+
super("Channel is not set");
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
//#endregion
|
|
47
42
|
exports.ChannelNotSetError = ChannelNotSetError;
|
|
48
43
|
exports.ConnectionTimeoutError = ConnectionTimeoutError;
|
|
49
44
|
exports.NotReadyError = NotReadyError;
|
|
@@ -51,4 +46,4 @@ exports.PortNotSetError = PortNotSetError;
|
|
|
51
46
|
exports.RequestTimeoutError = RequestTimeoutError;
|
|
52
47
|
exports.ResponseError = ResponseError;
|
|
53
48
|
exports.TooManyConcurrentRequestsError = TooManyConcurrentRequestsError;
|
|
54
|
-
//# sourceMappingURL=errors.cjs.map
|
|
49
|
+
//# sourceMappingURL=errors.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.cjs","sources":["
|
|
1
|
+
{"version":3,"file":"errors.cjs","names":[],"sources":["../../src/channel/errors.ts"],"sourcesContent":["import type { UnknownErrorResponseMessage } from \".\"\n\nimport type { UnknownRequestMessage } from \"./types\"\n\nexport class ResponseError<\n\tTErrorResponse extends UnknownErrorResponseMessage,\n> extends Error {\n\tpublic response: TErrorResponse\n\n\tconstructor(errorResponse: TErrorResponse) {\n\t\tsuper(errorResponse.msg)\n\n\t\tthis.response = errorResponse\n\t}\n}\n\nexport class ConnectionTimeoutError extends Error {\n\tconstructor() {\n\t\tsuper(\"Connection timed out\")\n\t}\n}\nexport class TooManyConcurrentRequestsError extends Error {\n\tpublic request: UnknownRequestMessage\n\n\tconstructor(request: UnknownRequestMessage) {\n\t\tsuper(`Too many concurrent requests`)\n\n\t\tthis.request = request\n\t}\n}\nexport class RequestTimeoutError<\n\tTRequest extends UnknownRequestMessage,\n> extends Error {\n\tpublic request: UnknownRequestMessage\n\n\tconstructor(request: TRequest) {\n\t\tsuper(`Request \\`${request.requestID}\\` timed out`)\n\n\t\tthis.request = request\n\t}\n}\n\nexport class NotReadyError extends Error {}\nexport class PortNotSetError extends Error {\n\tconstructor() {\n\t\tsuper(\"Port is not set\")\n\t}\n}\nexport class ChannelNotSetError extends Error {\n\tconstructor() {\n\t\tsuper(\"Channel is not set\")\n\t}\n}\n"],"mappings":";;AAIA,IAAa,gBAAb,cAEU,MAAM;CACf,AAAO;CAEP,YAAY,eAA+B;AAC1C,QAAM,cAAc,IAAI;AAExB,OAAK,WAAW;;;AAIlB,IAAa,yBAAb,cAA4C,MAAM;CACjD,cAAc;AACb,QAAM,uBAAuB;;;AAG/B,IAAa,iCAAb,cAAoD,MAAM;CACzD,AAAO;CAEP,YAAY,SAAgC;AAC3C,QAAM,+BAA+B;AAErC,OAAK,UAAU;;;AAGjB,IAAa,sBAAb,cAEU,MAAM;CACf,AAAO;CAEP,YAAY,SAAmB;AAC9B,QAAM,aAAa,QAAQ,UAAU,cAAc;AAEnD,OAAK,UAAU;;;AAIjB,IAAa,gBAAb,cAAmC,MAAM;AACzC,IAAa,kBAAb,cAAqC,MAAM;CAC1C,cAAc;AACb,QAAM,kBAAkB;;;AAG1B,IAAa,qBAAb,cAAwC,MAAM;CAC7C,cAAc;AACb,QAAM,qBAAqB"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { UnknownErrorResponseMessage, UnknownRequestMessage } from "./types.cjs";
|
|
2
|
+
|
|
3
|
+
//#region src/channel/errors.d.ts
|
|
4
|
+
declare class ResponseError<TErrorResponse extends UnknownErrorResponseMessage> extends Error {
|
|
5
|
+
response: TErrorResponse;
|
|
6
|
+
constructor(errorResponse: TErrorResponse);
|
|
7
|
+
}
|
|
8
|
+
declare class ConnectionTimeoutError extends Error {
|
|
9
|
+
constructor();
|
|
10
|
+
}
|
|
11
|
+
declare class TooManyConcurrentRequestsError extends Error {
|
|
12
|
+
request: UnknownRequestMessage;
|
|
13
|
+
constructor(request: UnknownRequestMessage);
|
|
14
|
+
}
|
|
15
|
+
declare class RequestTimeoutError<TRequest extends UnknownRequestMessage> extends Error {
|
|
16
|
+
request: UnknownRequestMessage;
|
|
17
|
+
constructor(request: TRequest);
|
|
18
|
+
}
|
|
19
|
+
declare class NotReadyError extends Error {}
|
|
20
|
+
declare class PortNotSetError extends Error {
|
|
21
|
+
constructor();
|
|
22
|
+
}
|
|
23
|
+
declare class ChannelNotSetError extends Error {
|
|
24
|
+
constructor();
|
|
25
|
+
}
|
|
26
|
+
//#endregion
|
|
27
|
+
export { ChannelNotSetError, ConnectionTimeoutError, NotReadyError, PortNotSetError, RequestTimeoutError, ResponseError, TooManyConcurrentRequestsError };
|
|
28
|
+
//# sourceMappingURL=errors.d.cts.map
|
package/dist/channel/errors.d.ts
CHANGED
|
@@ -1,25 +1,28 @@
|
|
|
1
|
-
import { UnknownErrorResponseMessage } from ".";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { UnknownErrorResponseMessage, UnknownRequestMessage } from "./types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/channel/errors.d.ts
|
|
4
|
+
declare class ResponseError<TErrorResponse extends UnknownErrorResponseMessage> extends Error {
|
|
5
|
+
response: TErrorResponse;
|
|
6
|
+
constructor(errorResponse: TErrorResponse);
|
|
6
7
|
}
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
declare class ConnectionTimeoutError extends Error {
|
|
9
|
+
constructor();
|
|
9
10
|
}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
declare class TooManyConcurrentRequestsError extends Error {
|
|
12
|
+
request: UnknownRequestMessage;
|
|
13
|
+
constructor(request: UnknownRequestMessage);
|
|
13
14
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
declare class RequestTimeoutError<TRequest extends UnknownRequestMessage> extends Error {
|
|
16
|
+
request: UnknownRequestMessage;
|
|
17
|
+
constructor(request: TRequest);
|
|
17
18
|
}
|
|
18
|
-
|
|
19
|
+
declare class NotReadyError extends Error {}
|
|
20
|
+
declare class PortNotSetError extends Error {
|
|
21
|
+
constructor();
|
|
19
22
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}
|
|
23
|
-
export declare class ChannelNotSetError extends Error {
|
|
24
|
-
constructor();
|
|
23
|
+
declare class ChannelNotSetError extends Error {
|
|
24
|
+
constructor();
|
|
25
25
|
}
|
|
26
|
+
//#endregion
|
|
27
|
+
export { ChannelNotSetError, ConnectionTimeoutError, NotReadyError, PortNotSetError, RequestTimeoutError, ResponseError, TooManyConcurrentRequestsError };
|
|
28
|
+
//# sourceMappingURL=errors.d.ts.map
|
package/dist/channel/errors.js
CHANGED
|
@@ -1,54 +1,42 @@
|
|
|
1
|
-
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
//#region src/channel/errors.ts
|
|
2
|
+
var ResponseError = class extends Error {
|
|
3
|
+
response;
|
|
4
|
+
constructor(errorResponse) {
|
|
5
|
+
super(errorResponse.msg);
|
|
6
|
+
this.response = errorResponse;
|
|
7
|
+
}
|
|
6
8
|
};
|
|
7
|
-
class
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
this.response = errorResponse;
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
class ConnectionTimeoutError extends Error {
|
|
15
|
-
constructor() {
|
|
16
|
-
super("Connection timed out");
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
class TooManyConcurrentRequestsError extends Error {
|
|
20
|
-
constructor(request) {
|
|
21
|
-
super(`Too many concurrent requests`);
|
|
22
|
-
__publicField(this, "request");
|
|
23
|
-
this.request = request;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
class RequestTimeoutError extends Error {
|
|
27
|
-
constructor(request) {
|
|
28
|
-
super(`Request \`${request.requestID}\` timed out`);
|
|
29
|
-
__publicField(this, "request");
|
|
30
|
-
this.request = request;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
class NotReadyError extends Error {
|
|
34
|
-
}
|
|
35
|
-
class PortNotSetError extends Error {
|
|
36
|
-
constructor() {
|
|
37
|
-
super("Port is not set");
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
class ChannelNotSetError extends Error {
|
|
41
|
-
constructor() {
|
|
42
|
-
super("Channel is not set");
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
export {
|
|
46
|
-
ChannelNotSetError,
|
|
47
|
-
ConnectionTimeoutError,
|
|
48
|
-
NotReadyError,
|
|
49
|
-
PortNotSetError,
|
|
50
|
-
RequestTimeoutError,
|
|
51
|
-
ResponseError,
|
|
52
|
-
TooManyConcurrentRequestsError
|
|
9
|
+
var ConnectionTimeoutError = class extends Error {
|
|
10
|
+
constructor() {
|
|
11
|
+
super("Connection timed out");
|
|
12
|
+
}
|
|
53
13
|
};
|
|
54
|
-
|
|
14
|
+
var TooManyConcurrentRequestsError = class extends Error {
|
|
15
|
+
request;
|
|
16
|
+
constructor(request) {
|
|
17
|
+
super(`Too many concurrent requests`);
|
|
18
|
+
this.request = request;
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
var RequestTimeoutError = class extends Error {
|
|
22
|
+
request;
|
|
23
|
+
constructor(request) {
|
|
24
|
+
super(`Request \`${request.requestID}\` timed out`);
|
|
25
|
+
this.request = request;
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
var NotReadyError = class extends Error {};
|
|
29
|
+
var PortNotSetError = class extends Error {
|
|
30
|
+
constructor() {
|
|
31
|
+
super("Port is not set");
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
var ChannelNotSetError = class extends Error {
|
|
35
|
+
constructor() {
|
|
36
|
+
super("Channel is not set");
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
//#endregion
|
|
41
|
+
export { ChannelNotSetError, ConnectionTimeoutError, NotReadyError, PortNotSetError, RequestTimeoutError, ResponseError, TooManyConcurrentRequestsError };
|
|
42
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sources":["
|
|
1
|
+
{"version":3,"file":"errors.js","names":[],"sources":["../../src/channel/errors.ts"],"sourcesContent":["import type { UnknownErrorResponseMessage } from \".\"\n\nimport type { UnknownRequestMessage } from \"./types\"\n\nexport class ResponseError<\n\tTErrorResponse extends UnknownErrorResponseMessage,\n> extends Error {\n\tpublic response: TErrorResponse\n\n\tconstructor(errorResponse: TErrorResponse) {\n\t\tsuper(errorResponse.msg)\n\n\t\tthis.response = errorResponse\n\t}\n}\n\nexport class ConnectionTimeoutError extends Error {\n\tconstructor() {\n\t\tsuper(\"Connection timed out\")\n\t}\n}\nexport class TooManyConcurrentRequestsError extends Error {\n\tpublic request: UnknownRequestMessage\n\n\tconstructor(request: UnknownRequestMessage) {\n\t\tsuper(`Too many concurrent requests`)\n\n\t\tthis.request = request\n\t}\n}\nexport class RequestTimeoutError<\n\tTRequest extends UnknownRequestMessage,\n> extends Error {\n\tpublic request: UnknownRequestMessage\n\n\tconstructor(request: TRequest) {\n\t\tsuper(`Request \\`${request.requestID}\\` timed out`)\n\n\t\tthis.request = request\n\t}\n}\n\nexport class NotReadyError extends Error {}\nexport class PortNotSetError extends Error {\n\tconstructor() {\n\t\tsuper(\"Port is not set\")\n\t}\n}\nexport class ChannelNotSetError extends Error {\n\tconstructor() {\n\t\tsuper(\"Channel is not set\")\n\t}\n}\n"],"mappings":";AAIA,IAAa,gBAAb,cAEU,MAAM;CACf,AAAO;CAEP,YAAY,eAA+B;AAC1C,QAAM,cAAc,IAAI;AAExB,OAAK,WAAW;;;AAIlB,IAAa,yBAAb,cAA4C,MAAM;CACjD,cAAc;AACb,QAAM,uBAAuB;;;AAG/B,IAAa,iCAAb,cAAoD,MAAM;CACzD,AAAO;CAEP,YAAY,SAAgC;AAC3C,QAAM,+BAA+B;AAErC,OAAK,UAAU;;;AAGjB,IAAa,sBAAb,cAEU,MAAM;CACf,AAAO;CAEP,YAAY,SAAmB;AAC9B,QAAM,aAAa,QAAQ,UAAU,cAAc;AAEnD,OAAK,UAAU;;;AAIjB,IAAa,gBAAb,cAAmC,MAAM;AACzC,IAAa,kBAAb,cAAqC,MAAM;CAC1C,cAAc;AACb,QAAM,kBAAkB;;;AAG1B,IAAa,qBAAb,cAAwC,MAAM;CAC7C,cAAc;AACb,QAAM,qBAAqB"}
|
|
@@ -1,60 +1,65 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
const statuses =
|
|
1
|
+
|
|
2
|
+
//#region src/channel/messages.ts
|
|
3
|
+
const statuses = {
|
|
4
|
+
200: "ok",
|
|
5
|
+
201: "created",
|
|
6
|
+
400: "bad request",
|
|
7
|
+
500: "internal server error",
|
|
8
|
+
501: "not implemented"
|
|
9
|
+
};
|
|
4
10
|
let requestID = 0;
|
|
5
11
|
const createRequestMessage = (type, data, prefix = "") => {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
12
|
+
return {
|
|
13
|
+
requestID: `${prefix}${requestID++}`,
|
|
14
|
+
type,
|
|
15
|
+
data
|
|
16
|
+
};
|
|
11
17
|
};
|
|
12
|
-
const createSuccessResponseMessage = (
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
msg: ((_a = statuses.message[status]) == null ? void 0 : _a.replace(/\.$/, "").toLowerCase()) ?? "",
|
|
21
|
-
data
|
|
22
|
-
};
|
|
18
|
+
const createSuccessResponseMessage = (requestID$1, data, status = 200) => {
|
|
19
|
+
if (status >= 400) throw new TypeError(`Invalid success status code, expected status to be within \`[100;400[\`, got \`${status}\``);
|
|
20
|
+
return {
|
|
21
|
+
requestID: requestID$1,
|
|
22
|
+
status,
|
|
23
|
+
msg: statuses[status] ?? "",
|
|
24
|
+
data
|
|
25
|
+
};
|
|
23
26
|
};
|
|
24
|
-
const createErrorResponseMessage = (
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
msg: ((_a = statuses.message[status]) == null ? void 0 : _a.replace(/\.$/, "").toLowerCase()) ?? "",
|
|
33
|
-
error
|
|
34
|
-
};
|
|
27
|
+
const createErrorResponseMessage = (requestID$1, error, status = 400) => {
|
|
28
|
+
if (status < 400) throw new TypeError(`Invalid error status code, expected status to be within \`[400;600[\`, got \`${status}\``);
|
|
29
|
+
return {
|
|
30
|
+
requestID: requestID$1,
|
|
31
|
+
status,
|
|
32
|
+
msg: statuses[status] ?? "",
|
|
33
|
+
error
|
|
34
|
+
};
|
|
35
35
|
};
|
|
36
36
|
const validateMessage = (message) => {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
37
|
+
if (typeof message !== "object" || message === null) throw new TypeError(`Invalid message received, expected message to be of type \`object\`, got \`${typeof message}\``);
|
|
38
|
+
else if (!Object.keys(message).every((key) => [
|
|
39
|
+
"requestID",
|
|
40
|
+
"type",
|
|
41
|
+
"data",
|
|
42
|
+
"status",
|
|
43
|
+
"msg",
|
|
44
|
+
"error"
|
|
45
|
+
].includes(key))) throw new TypeError(`Invalid message received: ${JSON.stringify(message)}`);
|
|
46
|
+
else if (typeof message.requestID !== "string") throw new TypeError(`Invalid message received, expected \`message.requestID\` to be of type \`string\`, got \`${typeof message.id}\``);
|
|
47
|
+
return message;
|
|
45
48
|
};
|
|
46
49
|
const isRequestMessage = (message) => {
|
|
47
|
-
|
|
50
|
+
return "type" in message;
|
|
48
51
|
};
|
|
49
52
|
const isResponseMessage = (message) => {
|
|
50
|
-
|
|
53
|
+
return !("type" in message);
|
|
51
54
|
};
|
|
52
55
|
const isSuccessResponseMessage = (message) => {
|
|
53
|
-
|
|
56
|
+
return isResponseMessage(message) && !("error" in message);
|
|
54
57
|
};
|
|
55
58
|
const isErrorResponseMessage = (message) => {
|
|
56
|
-
|
|
59
|
+
return isResponseMessage(message) && !("data" in message);
|
|
57
60
|
};
|
|
61
|
+
|
|
62
|
+
//#endregion
|
|
58
63
|
exports.createErrorResponseMessage = createErrorResponseMessage;
|
|
59
64
|
exports.createRequestMessage = createRequestMessage;
|
|
60
65
|
exports.createSuccessResponseMessage = createSuccessResponseMessage;
|
|
@@ -63,4 +68,4 @@ exports.isRequestMessage = isRequestMessage;
|
|
|
63
68
|
exports.isResponseMessage = isResponseMessage;
|
|
64
69
|
exports.isSuccessResponseMessage = isSuccessResponseMessage;
|
|
65
70
|
exports.validateMessage = validateMessage;
|
|
66
|
-
//# sourceMappingURL=messages.cjs.map
|
|
71
|
+
//# sourceMappingURL=messages.cjs.map
|