@prismicio/simulator 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/SimulatorAPI.cjs +7 -9
- package/dist/SimulatorAPI.cjs.map +1 -1
- package/dist/SimulatorAPI.d.cts.map +1 -0
- package/dist/SimulatorAPI.d.ts.map +1 -0
- package/dist/SimulatorAPI.js +6 -8
- package/dist/SimulatorAPI.js.map +1 -1
- package/dist/SimulatorClient.cjs +7 -9
- package/dist/SimulatorClient.cjs.map +1 -1
- package/dist/SimulatorClient.d.cts.map +1 -0
- package/dist/SimulatorClient.d.ts.map +1 -0
- package/dist/SimulatorClient.js +6 -8
- package/dist/SimulatorClient.js.map +1 -1
- package/dist/channel/ChannelEmitter.cjs +10 -13
- package/dist/channel/ChannelEmitter.cjs.map +1 -1
- package/dist/channel/ChannelEmitter.d.cts +1 -3
- package/dist/channel/ChannelEmitter.d.cts.map +1 -0
- package/dist/channel/ChannelEmitter.d.ts +1 -3
- package/dist/channel/ChannelEmitter.d.ts.map +1 -0
- package/dist/channel/ChannelEmitter.js +6 -9
- package/dist/channel/ChannelEmitter.js.map +1 -1
- package/dist/channel/ChannelNetwork.cjs +5 -6
- package/dist/channel/ChannelNetwork.cjs.map +1 -1
- package/dist/channel/ChannelNetwork.d.cts.map +1 -0
- package/dist/channel/ChannelNetwork.d.ts.map +1 -0
- package/dist/channel/ChannelNetwork.js +3 -4
- package/dist/channel/ChannelNetwork.js.map +1 -1
- package/dist/channel/ChannelReceiver.cjs +9 -10
- package/dist/channel/ChannelReceiver.cjs.map +1 -1
- package/dist/channel/ChannelReceiver.d.cts.map +1 -0
- package/dist/channel/ChannelReceiver.d.ts.map +1 -0
- package/dist/channel/ChannelReceiver.js +5 -6
- package/dist/channel/ChannelReceiver.js.map +1 -1
- package/dist/channel/errors.cjs +1 -2
- package/dist/channel/errors.cjs.map +1 -1
- package/dist/channel/errors.d.cts.map +1 -0
- package/dist/channel/errors.d.ts.map +1 -0
- package/dist/channel/errors.js +1 -1
- package/dist/channel/errors.js.map +1 -1
- package/dist/channel/messages.cjs +5 -6
- package/dist/channel/messages.cjs.map +1 -1
- package/dist/channel/messages.d.cts +0 -1
- package/dist/channel/messages.d.cts.map +1 -0
- package/dist/channel/messages.d.ts +0 -1
- package/dist/channel/messages.d.ts.map +1 -0
- package/dist/channel/messages.js +5 -5
- package/dist/channel/messages.js.map +1 -1
- package/dist/channel/types.cjs +7 -8
- package/dist/channel/types.cjs.map +1 -1
- package/dist/channel/types.d.cts +1 -1
- package/dist/channel/types.d.cts.map +1 -0
- package/dist/channel/types.d.ts +1 -1
- package/dist/channel/types.d.ts.map +1 -0
- package/dist/channel/types.js +7 -7
- package/dist/channel/types.js.map +1 -1
- package/dist/globalExtensions.d.cts +1 -1
- package/dist/globalExtensions.d.cts.map +1 -0
- package/dist/globalExtensions.d.ts +1 -1
- package/dist/globalExtensions.d.ts.map +1 -0
- package/dist/index.cjs +7 -7
- package/dist/index.d.cts +0 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.js +2 -3
- package/dist/kit/SimulatorManager.cjs +12 -15
- package/dist/kit/SimulatorManager.cjs.map +1 -1
- package/dist/kit/SimulatorManager.d.cts.map +1 -0
- package/dist/kit/SimulatorManager.d.ts.map +1 -0
- package/dist/kit/SimulatorManager.js +7 -10
- package/dist/kit/SimulatorManager.js.map +1 -1
- package/dist/kit/State.cjs +7 -8
- package/dist/kit/State.cjs.map +1 -1
- package/dist/kit/State.d.cts.map +1 -0
- package/dist/kit/State.d.ts.map +1 -0
- package/dist/kit/State.js +4 -5
- package/dist/kit/State.js.map +1 -1
- package/dist/kit/domHelpers.cjs +1 -2
- package/dist/kit/domHelpers.cjs.map +1 -1
- package/dist/kit/domHelpers.d.cts.map +1 -0
- package/dist/kit/domHelpers.d.ts.map +1 -0
- package/dist/kit/domHelpers.js +1 -1
- package/dist/kit/domHelpers.js.map +1 -1
- package/dist/kit/eventHandlers.cjs +1 -2
- package/dist/kit/eventHandlers.cjs.map +1 -1
- package/dist/kit/eventHandlers.d.cts.map +1 -0
- package/dist/kit/eventHandlers.d.ts.map +1 -0
- package/dist/kit/eventHandlers.js +1 -1
- package/dist/kit/eventHandlers.js.map +1 -1
- package/dist/kit/getDefault.cjs +1 -2
- package/dist/kit/getDefault.cjs.map +1 -1
- package/dist/kit/getDefault.d.cts.map +1 -0
- package/dist/kit/getDefault.d.ts.map +1 -0
- package/dist/kit/getDefault.js +1 -1
- package/dist/kit/messages.cjs +3 -6
- package/dist/kit/messages.cjs.map +1 -1
- package/dist/kit/messages.d.cts.map +1 -0
- package/dist/kit/messages.d.ts.map +1 -0
- package/dist/kit/messages.js +3 -5
- package/dist/kit/messages.js.map +1 -1
- package/dist/kit/types.cjs +6 -7
- package/dist/kit/types.cjs.map +1 -1
- package/dist/kit/types.d.cts +1 -1
- package/dist/kit/types.d.cts.map +1 -0
- package/dist/kit/types.d.ts +1 -1
- package/dist/kit/types.d.ts.map +1 -0
- package/dist/kit/types.js +6 -6
- package/dist/kit/types.js.map +1 -1
- package/dist/kit.cjs +9 -9
- package/dist/kit.js +3 -4
- package/dist/lib/EventEmitter.cjs +1 -2
- package/dist/lib/EventEmitter.cjs.map +1 -1
- package/dist/lib/EventEmitter.d.cts.map +1 -0
- package/dist/lib/EventEmitter.d.ts.map +1 -0
- package/dist/lib/EventEmitter.js +1 -1
- package/dist/lib/EventEmitter.js.map +1 -1
- package/dist/lib/throttle.cjs +1 -2
- package/dist/lib/throttle.cjs.map +1 -1
- package/dist/lib/throttle.js +1 -1
- package/dist/types.cjs +10 -11
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +2 -2
- package/dist/types.d.cts.map +1 -0
- package/dist/types.d.ts +2 -2
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +10 -10
- package/dist/types.js.map +1 -1
- package/package.json +33 -35
- package/src/SimulatorAPI.ts +14 -30
- package/src/SimulatorClient.ts +15 -32
- package/src/channel/ChannelEmitter.ts +25 -57
- package/src/channel/ChannelNetwork.ts +36 -61
- package/src/channel/ChannelReceiver.ts +20 -51
- package/src/channel/errors.ts +2 -7
- package/src/channel/index.ts +5 -20
- package/src/channel/messages.ts +4 -13
- package/src/channel/types.ts +15 -31
- package/src/index.ts +2 -10
- package/src/kit/SimulatorManager.ts +7 -20
- package/src/kit/State.ts +4 -9
- package/src/kit/domHelpers.ts +1 -3
- package/src/kit/eventHandlers.ts +2 -7
- package/src/kit/index.ts +1 -5
- package/src/kit/messages.ts +1 -2
- package/src/kit/types.ts +0 -1
- package/src/lib/EventEmitter.ts +3 -9
- package/src/lib/__PRODUCTION__.ts +1 -2
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { PortNotSetError, RequestTimeoutError, ResponseError, TooManyConcurrentRequestsError } from "./errors.js";
|
|
2
2
|
import { createErrorResponseMessage, createRequestMessage, createSuccessResponseMessage, isRequestMessage, isSuccessResponseMessage, validateMessage } from "./messages.js";
|
|
3
|
-
|
|
4
3
|
//#region src/channel/ChannelNetwork.ts
|
|
5
4
|
const channelNetworkDefaultOptions = {
|
|
6
5
|
debug: false,
|
|
@@ -56,7 +55,7 @@ var ChannelNetwork = class {
|
|
|
56
55
|
else throw error;
|
|
57
56
|
}
|
|
58
57
|
}
|
|
59
|
-
postRequest(request, postMessage = (request
|
|
58
|
+
postRequest(request, postMessage = (request) => this.port.postMessage(request), options = {}) {
|
|
60
59
|
if (this.options.debug) console.debug(request);
|
|
61
60
|
if (this._pendingRequests.size >= this.options.maximumRequestConcurrency) throw new TooManyConcurrentRequestsError(request);
|
|
62
61
|
return new Promise((resolve, reject) => {
|
|
@@ -72,13 +71,13 @@ var ChannelNetwork = class {
|
|
|
72
71
|
postMessage(request);
|
|
73
72
|
});
|
|
74
73
|
}
|
|
75
|
-
postResponse(response, postMessage = (response
|
|
74
|
+
postResponse(response, postMessage = (response) => this.port.postMessage(response)) {
|
|
76
75
|
if (this.options.debug) console.debug(response);
|
|
77
76
|
postMessage(response);
|
|
78
77
|
return response;
|
|
79
78
|
}
|
|
80
79
|
};
|
|
81
|
-
|
|
82
80
|
//#endregion
|
|
83
81
|
export { ChannelNetwork };
|
|
82
|
+
|
|
84
83
|
//# sourceMappingURL=ChannelNetwork.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChannelNetwork.js","names":[
|
|
1
|
+
{"version":3,"file":"ChannelNetwork.js","names":[],"sources":["../../src/channel/ChannelNetwork.ts"],"sourcesContent":["import {\n\tPortNotSetError,\n\tRequestTimeoutError,\n\tResponseError,\n\tTooManyConcurrentRequestsError,\n} from \"./errors\"\nimport {\n\tcreateErrorResponseMessage,\n\tcreateRequestMessage,\n\tcreateSuccessResponseMessage,\n\tisRequestMessage,\n\tisSuccessResponseMessage,\n\tvalidateMessage,\n} from \"./messages\"\nimport type {\n\tExtractErrorResponseMessage,\n\tExtractSuccessResponseMessage,\n\tRequestMessage,\n\tTransactionsHandlers,\n\tUnknownRequestMessage,\n\tUnknownResponseMessage,\n\tUnknownTransaction,\n} from \"./types\"\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<string, never>,\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(createErrorResponseMessage(message.requestID, undefined, 501))\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(this, message.requestID) 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(this, message.requestID) 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(createErrorResponseMessage(message.requestID, error, 500))\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(`Unknown request ID received in response: ${JSON.stringify(message)}`)\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>>((resolve, reject) => {\n\t\t\tconst requestTimeout = setTimeout(() => {\n\t\t\t\tif (this._pendingRequests.has(request.requestID)) {\n\t\t\t\t\tthis._pendingRequests.delete(request.requestID)\n\t\t\t\t}\n\t\t\t\treject(new RequestTimeoutError(request))\n\t\t\t}, options.timeout || this.options.defaultTimeout)\n\n\t\t\tthis._pendingRequests.set(request.requestID, (response: TResponse): void => {\n\t\t\t\tclearTimeout(requestTimeout)\n\n\t\t\t\tif (isSuccessResponseMessage(response)) {\n\t\t\t\t\tresolve(response as ExtractSuccessResponseMessage<TResponse>)\n\t\t\t\t} else {\n\t\t\t\t\treject(new ResponseError(response as ExtractErrorResponseMessage<TResponse>))\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tpostMessage(request)\n\t\t})\n\t}\n\n\tprotected postResponse<TResponse extends UnknownResponseMessage>(\n\t\tresponse: TResponse,\n\t\tpostMessage = (response: TResponse): void => this.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":";;;AAmCA,MAAa,+BAAsD;CAClE,OAAO;CACP,2BAA2B;CAC3B,gBAAgB;CAChB,iBAAiB;CACjB;AAED,IAAsB,iBAAtB,MAGE;CACD;CACA;CAEA,QAAoC;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,mCAAiE,IAAI,KAAK;CAE1E,YACC,iBACA,SACC;AACD,OAAK,kBAAkB;AACvB,OAAK,UAAU;GAAE,GAAG;GAA8B,GAAG;GAAS;;CAG/D,qBACC,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,aAAa,2BAA2B,QAAQ,WAAW,KAAA,GAAW,IAAI,CAAC;OAEhF,KAAI;IAEH,MAAM,WAAW,MAAM,KAAK,gBAAgB,QAAQ,MAAM,SAAS;KAClE,SAAS,6BAA6B,KAAK,MAAM,QAAQ,UAAU;KAGnE,OAAO,2BAA2B,KAAK,MAAM,QAAQ,UAAU;KAG/D,CAAC;AAEF,SAAK,aAAa,SAAS;YACnB,OAAO;AACf,SAAK,aAAa,2BAA2B,QAAQ,WAAW,OAAO,IAAI,CAAC;;YAI1E,CAAC,KAAK,iBAAiB,IAAI,QAAQ,UAAU,CAChD,SAAQ,MAAM,4CAA4C,KAAK,UAAU,QAAQ,GAAG;QAC9E;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,YAIC,SACA,eAAe,YAA4B,KAAK,KAAK,YAAY,QAAQ,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,SAAmD,SAAS,WAAW;GACjF,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,IAAI,QAAQ,YAAY,aAA8B;AAC3E,iBAAa,eAAe;AAE5B,QAAI,yBAAyB,SAAS,CACrC,SAAQ,SAAqD;QAE7D,QAAO,IAAI,cAAc,SAAmD,CAAC;KAE7E;AAEF,eAAY,QAAQ;IACnB;;CAGH,aACC,UACA,eAAe,aAA8B,KAAK,KAAK,YAAY,SAAS,EAChE;AACZ,MAAI,KAAK,QAAQ,MAEhB,SAAQ,MAAM,SAAS;AAGxB,cAAY,SAAS;AAErB,SAAO"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
const require_errors = require(
|
|
2
|
-
const require_messages = require(
|
|
3
|
-
const require_ChannelNetwork = require(
|
|
4
|
-
const require_types = require(
|
|
5
|
-
|
|
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");
|
|
6
5
|
//#region src/channel/ChannelReceiver.ts
|
|
7
6
|
const channelReceiverDefaultOptions = {
|
|
8
7
|
readyTimeout: 2e4,
|
|
@@ -24,8 +23,8 @@ var ChannelReceiver = class extends require_ChannelNetwork.ChannelNetwork {
|
|
|
24
23
|
if (window.parent === window) throw new Error("Receiver is currently not embedded as an iframe");
|
|
25
24
|
this._ready = false;
|
|
26
25
|
const request = this.createRequestMessage(require_types.InternalReceiverRequestType.Ready, void 0);
|
|
27
|
-
const response = await this.postRequest(request, (request
|
|
28
|
-
window.parent.postMessage(request
|
|
26
|
+
const response = await this.postRequest(request, (request) => {
|
|
27
|
+
window.parent.postMessage(request, "*");
|
|
29
28
|
}, { timeout: this.options.readyTimeout });
|
|
30
29
|
this._ready = true;
|
|
31
30
|
return response;
|
|
@@ -51,8 +50,8 @@ var ChannelReceiver = class extends require_ChannelNetwork.ChannelNetwork {
|
|
|
51
50
|
this.postResponse(response);
|
|
52
51
|
break;
|
|
53
52
|
default:
|
|
54
|
-
this.postResponse(require_messages.createErrorResponseMessage(message.requestID, void 0), (response
|
|
55
|
-
event.source.postMessage(response
|
|
53
|
+
this.postResponse(require_messages.createErrorResponseMessage(message.requestID, void 0), (response) => {
|
|
54
|
+
event.source.postMessage(response, event.origin);
|
|
56
55
|
});
|
|
57
56
|
break;
|
|
58
57
|
}
|
|
@@ -66,7 +65,7 @@ var ChannelReceiver = class extends require_ChannelNetwork.ChannelNetwork {
|
|
|
66
65
|
return this.postRequest(this.createRequestMessage(type, data), void 0, options);
|
|
67
66
|
}
|
|
68
67
|
};
|
|
69
|
-
|
|
70
68
|
//#endregion
|
|
71
69
|
exports.ChannelReceiver = ChannelReceiver;
|
|
70
|
+
|
|
72
71
|
//# sourceMappingURL=ChannelReceiver.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChannelReceiver.cjs","names":["ChannelNetwork","InternalReceiverRequestType","
|
|
1
|
+
{"version":3,"file":"ChannelReceiver.cjs","names":["ChannelNetwork","InternalReceiverRequestType","validateMessage","isRequestMessage","InternalEmitterRequestType","createSuccessResponseMessage","createErrorResponseMessage","NotReadyError"],"sources":["../../src/channel/ChannelReceiver.ts"],"sourcesContent":["import type { ChannelNetworkOptions, PostRequestOptions } from \"./ChannelNetwork\"\nimport { ChannelNetwork } from \"./ChannelNetwork\"\nimport { NotReadyError } from \"./errors\"\nimport {\n\tcreateErrorResponseMessage,\n\tcreateSuccessResponseMessage,\n\tisRequestMessage,\n\tvalidateMessage,\n} from \"./messages\"\nimport type {\n\tExtractSuccessResponseMessage,\n\tInternalEmitterTransactions,\n\tRequestMessage,\n\tResponseMessage,\n\tSuccessResponseMessage,\n\tTransactionsHandlers,\n\tUnknownRequestMessage,\n\tUnknownResponseMessage,\n\tUnknownTransaction,\n} from \"./types\"\nimport { InternalEmitterRequestType, InternalReceiverRequestType } from \"./types\"\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 & ChannelNetworkOptions\n\nexport abstract class ChannelReceiver<\n\tTEmitterTransactions extends Record<string, UnknownTransaction> = Record<string, never>,\n\tTOptions extends Record<string, unknown> = Record<string, unknown>,\n> extends ChannelNetwork<TEmitterTransactions, ChannelReceiverOptions & TOptions> {\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(InternalReceiverRequestType.Ready, undefined)\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 } = message 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(message.requestID, undefined)\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(response, event.origin)\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(\"Receiver is not ready, use `ChannelReceiver.ready()` first\")\n\t\t}\n\n\t\treturn this.postRequest(this.createRequestMessage(type, data), undefined, options)\n\t}\n}\n"],"mappings":";;;;;AA0BA,MAAa,gCACqB;CACjC,cAAc;CACd,iBAAiB;CACjB;AAID,IAAsB,kBAAtB,cAGUA,uBAAAA,eAAwE;CACjF,SAAiB;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,qBAAqBC,cAAAA,4BAA4B,OAAO,KAAA,EAAU;EAEvF,MAAM,WAAW,MAAM,KAAK,YAI3B,UACC,YAAY;AACZ,UAAO,OAAO,YAAY,SAAS,IAAI;KAExC,EACC,SAAS,KAAK,QAAQ,cACtB,CACD;AAED,OAAK,SAAS;AAEd,SAAO;;;CAIR,iBAAyB,OAAoC;AAC5D,MAAI;GACH,MAAM,UAAUC,iBAAAA,gBAAgB,MAAM,KAAK;AAE3C,OAAIC,iBAAAA,iBAAiB,QAAQ,EAAE;AAC9B,QAAI,KAAK,QAAQ,MAEhB,SAAQ,MAAM,MAAM,KAAK;AAG1B,YAAQ,QAAQ,MAAhB;KACC,KAAKC,cAAAA,2BAA2B;AAE/B,WAAK,OAAO,MAAM,MAAM;MAGxB,MAAM,EAAE,SAAS;AACjB,WAAK,UAAU;OACd,GAAG,KAAK;OACR,GAAG;OAEH,OAAO,KAAK,QAAQ;OACpB,iBAAiB,KAAK,QAAQ;OAC9B,cAAc,KAAK,QAAQ;OAC3B;MAED,MAAM,WAAWC,iBAAAA,6BAA6B,QAAQ,WAAW,KAAA,EAAU;AAE3E,WAAK,aAAa,SAAS;AAC3B;KAED;AACC,WAAK,aACJC,iBAAAA,2BAA2B,QAAQ,WAAW,KAAA,EAAU,GACvD,aAAa;AACX,aAAM,OAAuB,YAAY,UAAU,MAAM,OAAO;QAEnE;AACD;;cAIE,CAAC,KAAK,OACT,MAAK,UAAU,MAAM;WAGf,OAAO;AACf,OAAI,iBAAiB,WAAW,OAI/B,OAAM;;;CAKT,qBAIC,MACA,MACA,UAA8B,EAAE,EACoB;AACpD,MAAI,CAAC,KAAK,OACT,OAAM,IAAIC,eAAAA,cAAc,6DAA6D;AAGtF,SAAO,KAAK,YAAY,KAAK,qBAAqB,MAAM,KAAK,EAAE,KAAA,GAAW,QAAQ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChannelReceiver.d.cts","names":[],"sources":["../../src/channel/ChannelReceiver.ts"],"mappings":";;;;KAsBY,sBAAA;EACX,YAAA;AAAA;AAAA,KASW,yBAAA,GAA4B,sBAAA,GAAyB,qBAAA;AAAA,uBAE3C,eAAA,8BACQ,MAAA,SAAe,kBAAA,IAAsB,MAAA,kCACjD,MAAA,oBAA0B,MAAA,2BAClC,cAAA,CAAe,oBAAA,EAAsB,sBAAA,GAAyB,QAAA;EAAA,QAC/D,MAAA;cAGP,eAAA,EAAiB,oBAAA,CAAqB,oBAAA,GACtC,OAAA,EAAS,OAAA,CAAQ,yBAAA,IAA6B,QAAA;;EAUlC,KAAA,CAAA,GAAS,OAAA,CAAQ,sBAAA;EApBuD;EAAA,QAgD7E,gBAAA;EAAA,UAwDE,oBAAA,kBACQ,qBAAA,oBACC,sBAAA,CAAA,CAElB,IAAA,EAAM,QAAA,UACN,IAAA,GAAO,QAAA,UACP,OAAA,GAAS,kBAAA,GACP,OAAA,CAAQ,6BAAA,CAA8B,SAAA;AAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChannelReceiver.d.ts","names":[],"sources":["../../src/channel/ChannelReceiver.ts"],"mappings":";;;;KAsBY,sBAAA;EACX,YAAA;AAAA;AAAA,KASW,yBAAA,GAA4B,sBAAA,GAAyB,qBAAA;AAAA,uBAE3C,eAAA,8BACQ,MAAA,SAAe,kBAAA,IAAsB,MAAA,kCACjD,MAAA,oBAA0B,MAAA,2BAClC,cAAA,CAAe,oBAAA,EAAsB,sBAAA,GAAyB,QAAA;EAAA,QAC/D,MAAA;cAGP,eAAA,EAAiB,oBAAA,CAAqB,oBAAA,GACtC,OAAA,EAAS,OAAA,CAAQ,yBAAA,IAA6B,QAAA;;EAUlC,KAAA,CAAA,GAAS,OAAA,CAAQ,sBAAA;EApBuD;EAAA,QAgD7E,gBAAA;EAAA,UAwDE,oBAAA,kBACQ,qBAAA,oBACC,sBAAA,CAAA,CAElB,IAAA,EAAM,QAAA,UACN,IAAA,GAAO,QAAA,UACP,OAAA,GAAS,kBAAA,GACP,OAAA,CAAQ,6BAAA,CAA8B,SAAA;AAAA"}
|
|
@@ -2,7 +2,6 @@ import { NotReadyError } from "./errors.js";
|
|
|
2
2
|
import { createErrorResponseMessage, createSuccessResponseMessage, isRequestMessage, validateMessage } from "./messages.js";
|
|
3
3
|
import { ChannelNetwork } from "./ChannelNetwork.js";
|
|
4
4
|
import { InternalEmitterRequestType, InternalReceiverRequestType } from "./types.js";
|
|
5
|
-
|
|
6
5
|
//#region src/channel/ChannelReceiver.ts
|
|
7
6
|
const channelReceiverDefaultOptions = {
|
|
8
7
|
readyTimeout: 2e4,
|
|
@@ -24,8 +23,8 @@ var ChannelReceiver = class extends ChannelNetwork {
|
|
|
24
23
|
if (window.parent === window) throw new Error("Receiver is currently not embedded as an iframe");
|
|
25
24
|
this._ready = false;
|
|
26
25
|
const request = this.createRequestMessage(InternalReceiverRequestType.Ready, void 0);
|
|
27
|
-
const response = await this.postRequest(request, (request
|
|
28
|
-
window.parent.postMessage(request
|
|
26
|
+
const response = await this.postRequest(request, (request) => {
|
|
27
|
+
window.parent.postMessage(request, "*");
|
|
29
28
|
}, { timeout: this.options.readyTimeout });
|
|
30
29
|
this._ready = true;
|
|
31
30
|
return response;
|
|
@@ -51,8 +50,8 @@ var ChannelReceiver = class extends ChannelNetwork {
|
|
|
51
50
|
this.postResponse(response);
|
|
52
51
|
break;
|
|
53
52
|
default:
|
|
54
|
-
this.postResponse(createErrorResponseMessage(message.requestID, void 0), (response
|
|
55
|
-
event.source.postMessage(response
|
|
53
|
+
this.postResponse(createErrorResponseMessage(message.requestID, void 0), (response) => {
|
|
54
|
+
event.source.postMessage(response, event.origin);
|
|
56
55
|
});
|
|
57
56
|
break;
|
|
58
57
|
}
|
|
@@ -66,7 +65,7 @@ var ChannelReceiver = class extends ChannelNetwork {
|
|
|
66
65
|
return this.postRequest(this.createRequestMessage(type, data), void 0, options);
|
|
67
66
|
}
|
|
68
67
|
};
|
|
69
|
-
|
|
70
68
|
//#endregion
|
|
71
69
|
export { ChannelReceiver };
|
|
70
|
+
|
|
72
71
|
//# sourceMappingURL=ChannelReceiver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChannelReceiver.js","names":[
|
|
1
|
+
{"version":3,"file":"ChannelReceiver.js","names":[],"sources":["../../src/channel/ChannelReceiver.ts"],"sourcesContent":["import type { ChannelNetworkOptions, PostRequestOptions } from \"./ChannelNetwork\"\nimport { ChannelNetwork } from \"./ChannelNetwork\"\nimport { NotReadyError } from \"./errors\"\nimport {\n\tcreateErrorResponseMessage,\n\tcreateSuccessResponseMessage,\n\tisRequestMessage,\n\tvalidateMessage,\n} from \"./messages\"\nimport type {\n\tExtractSuccessResponseMessage,\n\tInternalEmitterTransactions,\n\tRequestMessage,\n\tResponseMessage,\n\tSuccessResponseMessage,\n\tTransactionsHandlers,\n\tUnknownRequestMessage,\n\tUnknownResponseMessage,\n\tUnknownTransaction,\n} from \"./types\"\nimport { InternalEmitterRequestType, InternalReceiverRequestType } from \"./types\"\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 & ChannelNetworkOptions\n\nexport abstract class ChannelReceiver<\n\tTEmitterTransactions extends Record<string, UnknownTransaction> = Record<string, never>,\n\tTOptions extends Record<string, unknown> = Record<string, unknown>,\n> extends ChannelNetwork<TEmitterTransactions, ChannelReceiverOptions & TOptions> {\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(InternalReceiverRequestType.Ready, undefined)\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 } = message 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(message.requestID, undefined)\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(response, event.origin)\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(\"Receiver is not ready, use `ChannelReceiver.ready()` first\")\n\t\t}\n\n\t\treturn this.postRequest(this.createRequestMessage(type, data), undefined, options)\n\t}\n}\n"],"mappings":";;;;;AA0BA,MAAa,gCACqB;CACjC,cAAc;CACd,iBAAiB;CACjB;AAID,IAAsB,kBAAtB,cAGU,eAAwE;CACjF,SAAiB;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,qBAAqB,4BAA4B,OAAO,KAAA,EAAU;EAEvF,MAAM,WAAW,MAAM,KAAK,YAI3B,UACC,YAAY;AACZ,UAAO,OAAO,YAAY,SAAS,IAAI;KAExC,EACC,SAAS,KAAK,QAAQ,cACtB,CACD;AAED,OAAK,SAAS;AAEd,SAAO;;;CAIR,iBAAyB,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,SAAS;AACjB,WAAK,UAAU;OACd,GAAG,KAAK;OACR,GAAG;OAEH,OAAO,KAAK,QAAQ;OACpB,iBAAiB,KAAK,QAAQ;OAC9B,cAAc,KAAK,QAAQ;OAC3B;MAED,MAAM,WAAW,6BAA6B,QAAQ,WAAW,KAAA,EAAU;AAE3E,WAAK,aAAa,SAAS;AAC3B;KAED;AACC,WAAK,aACJ,2BAA2B,QAAQ,WAAW,KAAA,EAAU,GACvD,aAAa;AACX,aAAM,OAAuB,YAAY,UAAU,MAAM,OAAO;QAEnE;AACD;;cAIE,CAAC,KAAK,OACT,MAAK,UAAU,MAAM;WAGf,OAAO;AACf,OAAI,iBAAiB,WAAW,OAI/B,OAAM;;;CAKT,qBAIC,MACA,MACA,UAA8B,EAAE,EACoB;AACpD,MAAI,CAAC,KAAK,OACT,OAAM,IAAI,cAAc,6DAA6D;AAGtF,SAAO,KAAK,YAAY,KAAK,qBAAqB,MAAM,KAAK,EAAE,KAAA,GAAW,QAAQ"}
|
package/dist/channel/errors.cjs
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
|
|
2
1
|
//#region src/channel/errors.ts
|
|
3
2
|
var ResponseError = class extends Error {
|
|
4
3
|
response;
|
|
@@ -37,7 +36,6 @@ var ChannelNotSetError = class extends Error {
|
|
|
37
36
|
super("Channel is not set");
|
|
38
37
|
}
|
|
39
38
|
};
|
|
40
|
-
|
|
41
39
|
//#endregion
|
|
42
40
|
exports.ChannelNotSetError = ChannelNotSetError;
|
|
43
41
|
exports.ConnectionTimeoutError = ConnectionTimeoutError;
|
|
@@ -46,4 +44,5 @@ exports.PortNotSetError = PortNotSetError;
|
|
|
46
44
|
exports.RequestTimeoutError = RequestTimeoutError;
|
|
47
45
|
exports.ResponseError = ResponseError;
|
|
48
46
|
exports.TooManyConcurrentRequestsError = TooManyConcurrentRequestsError;
|
|
47
|
+
|
|
49
48
|
//# sourceMappingURL=errors.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.cjs","names":[],"sources":["../../src/channel/errors.ts"],"sourcesContent":["import type { UnknownErrorResponseMessage } from \".\"\
|
|
1
|
+
{"version":3,"file":"errors.cjs","names":[],"sources":["../../src/channel/errors.ts"],"sourcesContent":["import type { UnknownErrorResponseMessage } from \".\"\nimport type { UnknownRequestMessage } from \"./types\"\n\nexport class ResponseError<TErrorResponse extends UnknownErrorResponseMessage> 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<TRequest extends UnknownRequestMessage> 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":";AAGA,IAAa,gBAAb,cAAuF,MAAM;CAC5F;CAEA,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;CAEA,YAAY,SAAgC;AAC3C,QAAM,+BAA+B;AAErC,OAAK,UAAU;;;AAGjB,IAAa,sBAAb,cAAiF,MAAM;CACtF;CAEA,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 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.cts","names":[],"sources":["../../src/channel/errors.ts"],"mappings":";;;cAGa,aAAA,wBAAqC,2BAAA,UAAqC,KAAA;EAC/E,QAAA,EAAU,cAAA;cAEL,aAAA,EAAe,cAAA;AAAA;AAAA,cAOf,sBAAA,SAA+B,KAAA;EAAA,WAAA,CAAA;AAAA;AAAA,cAK/B,8BAAA,SAAuC,KAAA;EAC5C,OAAA,EAAS,qBAAA;cAEJ,OAAA,EAAS,qBAAA;AAAA;AAAA,cAMT,mBAAA,kBAAqC,qBAAA,UAA+B,KAAA;EACzE,OAAA,EAAS,qBAAA;cAEJ,OAAA,EAAS,QAAA;AAAA;AAAA,cAOT,aAAA,SAAsB,KAAA;AAAA,cACtB,eAAA,SAAwB,KAAA;EAAA,WAAA,CAAA;AAAA;AAAA,cAKxB,kBAAA,SAA2B,KAAA;EAAA,WAAA,CAAA;AAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","names":[],"sources":["../../src/channel/errors.ts"],"mappings":";;;cAGa,aAAA,wBAAqC,2BAAA,UAAqC,KAAA;EAC/E,QAAA,EAAU,cAAA;cAEL,aAAA,EAAe,cAAA;AAAA;AAAA,cAOf,sBAAA,SAA+B,KAAA;EAAA,WAAA,CAAA;AAAA;AAAA,cAK/B,8BAAA,SAAuC,KAAA;EAC5C,OAAA,EAAS,qBAAA;cAEJ,OAAA,EAAS,qBAAA;AAAA;AAAA,cAMT,mBAAA,kBAAqC,qBAAA,UAA+B,KAAA;EACzE,OAAA,EAAS,qBAAA;cAEJ,OAAA,EAAS,QAAA;AAAA;AAAA,cAOT,aAAA,SAAsB,KAAA;AAAA,cACtB,eAAA,SAAwB,KAAA;EAAA,WAAA,CAAA;AAAA;AAAA,cAKxB,kBAAA,SAA2B,KAAA;EAAA,WAAA,CAAA;AAAA"}
|
package/dist/channel/errors.js
CHANGED
|
@@ -36,7 +36,7 @@ var ChannelNotSetError = class extends Error {
|
|
|
36
36
|
super("Channel is not set");
|
|
37
37
|
}
|
|
38
38
|
};
|
|
39
|
-
|
|
40
39
|
//#endregion
|
|
41
40
|
export { ChannelNotSetError, ConnectionTimeoutError, NotReadyError, PortNotSetError, RequestTimeoutError, ResponseError, TooManyConcurrentRequestsError };
|
|
41
|
+
|
|
42
42
|
//# sourceMappingURL=errors.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","names":[],"sources":["../../src/channel/errors.ts"],"sourcesContent":["import type { UnknownErrorResponseMessage } from \".\"\
|
|
1
|
+
{"version":3,"file":"errors.js","names":[],"sources":["../../src/channel/errors.ts"],"sourcesContent":["import type { UnknownErrorResponseMessage } from \".\"\nimport type { UnknownRequestMessage } from \"./types\"\n\nexport class ResponseError<TErrorResponse extends UnknownErrorResponseMessage> 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<TRequest extends UnknownRequestMessage> 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":";AAGA,IAAa,gBAAb,cAAuF,MAAM;CAC5F;CAEA,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;CAEA,YAAY,SAAgC;AAC3C,QAAM,+BAA+B;AAErC,OAAK,UAAU;;;AAGjB,IAAa,sBAAb,cAAiF,MAAM;CACtF;CAEA,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,4 +1,3 @@
|
|
|
1
|
-
|
|
2
1
|
//#region src/channel/messages.ts
|
|
3
2
|
const statuses = {
|
|
4
3
|
200: "ok",
|
|
@@ -15,19 +14,19 @@ const createRequestMessage = (type, data, prefix = "") => {
|
|
|
15
14
|
data
|
|
16
15
|
};
|
|
17
16
|
};
|
|
18
|
-
const createSuccessResponseMessage = (requestID
|
|
17
|
+
const createSuccessResponseMessage = (requestID, data, status = 200) => {
|
|
19
18
|
if (status >= 400) throw new TypeError(`Invalid success status code, expected status to be within \`[100;400[\`, got \`${status}\``);
|
|
20
19
|
return {
|
|
21
|
-
requestID
|
|
20
|
+
requestID,
|
|
22
21
|
status,
|
|
23
22
|
msg: statuses[status] ?? "",
|
|
24
23
|
data
|
|
25
24
|
};
|
|
26
25
|
};
|
|
27
|
-
const createErrorResponseMessage = (requestID
|
|
26
|
+
const createErrorResponseMessage = (requestID, error, status = 400) => {
|
|
28
27
|
if (status < 400) throw new TypeError(`Invalid error status code, expected status to be within \`[400;600[\`, got \`${status}\``);
|
|
29
28
|
return {
|
|
30
|
-
requestID
|
|
29
|
+
requestID,
|
|
31
30
|
status,
|
|
32
31
|
msg: statuses[status] ?? "",
|
|
33
32
|
error
|
|
@@ -58,7 +57,6 @@ const isSuccessResponseMessage = (message) => {
|
|
|
58
57
|
const isErrorResponseMessage = (message) => {
|
|
59
58
|
return isResponseMessage(message) && !("data" in message);
|
|
60
59
|
};
|
|
61
|
-
|
|
62
60
|
//#endregion
|
|
63
61
|
exports.createErrorResponseMessage = createErrorResponseMessage;
|
|
64
62
|
exports.createRequestMessage = createRequestMessage;
|
|
@@ -68,4 +66,5 @@ exports.isRequestMessage = isRequestMessage;
|
|
|
68
66
|
exports.isResponseMessage = isResponseMessage;
|
|
69
67
|
exports.isSuccessResponseMessage = isSuccessResponseMessage;
|
|
70
68
|
exports.validateMessage = validateMessage;
|
|
69
|
+
|
|
71
70
|
//# sourceMappingURL=messages.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.cjs","names":[],"sources":["../../src/channel/messages.ts"],"sourcesContent":["import type {\n\tErrorResponseMessage,\n\tRequestMessage,\n\tSuccessResponseMessage,\n\tUnknownErrorResponseMessage,\n\tUnknownMessage,\n\tUnknownRequestMessage,\n\tUnknownResponseMessage,\n\tUnknownSuccessResponseMessage,\n} from \"./types\"\n\n// Adapted from https://github.com/jshttp/statuses/blob/770a97d931c1bb40ebbfefdbb77f0419601890b5/codes.json\nconst statuses = {\n\t200: \"ok\",\n\t201: \"created\",\n\n\t400: \"bad request\",\n\t500: \"internal server error\",\n\t501: \"not implemented\",\n}\n\nlet requestID = 0\n\nexport const createRequestMessage =
|
|
1
|
+
{"version":3,"file":"messages.cjs","names":[],"sources":["../../src/channel/messages.ts"],"sourcesContent":["import type {\n\tErrorResponseMessage,\n\tRequestMessage,\n\tSuccessResponseMessage,\n\tUnknownErrorResponseMessage,\n\tUnknownMessage,\n\tUnknownRequestMessage,\n\tUnknownResponseMessage,\n\tUnknownSuccessResponseMessage,\n} from \"./types\"\n\n// Adapted from https://github.com/jshttp/statuses/blob/770a97d931c1bb40ebbfefdbb77f0419601890b5/codes.json\nconst statuses = {\n\t200: \"ok\",\n\t201: \"created\",\n\n\t400: \"bad request\",\n\t500: \"internal server error\",\n\t501: \"not implemented\",\n}\n\nlet requestID = 0\n\nexport const createRequestMessage = <TType extends string = string, TData = undefined>(\n\ttype: TType,\n\tdata: TData,\n\tprefix = \"\",\n): RequestMessage<TType, TData> => {\n\treturn {\n\t\trequestID: `${prefix}${requestID++}`,\n\t\ttype,\n\t\tdata,\n\t}\n}\n\nexport const createSuccessResponseMessage = <TData = undefined>(\n\trequestID: string,\n\tdata: TData,\n\tstatus: keyof typeof statuses = 200,\n): SuccessResponseMessage<TData> => {\n\tif (status >= 400) {\n\t\tthrow new TypeError(\n\t\t\t`Invalid success status code, expected status to be within \\`[100;400[\\`, got \\`${status}\\``,\n\t\t)\n\t}\n\n\treturn {\n\t\trequestID,\n\t\tstatus,\n\t\tmsg: statuses[status] ?? \"\",\n\t\tdata,\n\t}\n}\n\nexport const createErrorResponseMessage = <TError = undefined>(\n\trequestID: string,\n\terror: TError,\n\tstatus: keyof typeof statuses = 400,\n): ErrorResponseMessage<TError> => {\n\tif (status < 400) {\n\t\tthrow new TypeError(\n\t\t\t`Invalid error status code, expected status to be within \\`[400;600[\\`, got \\`${status}\\``,\n\t\t)\n\t}\n\n\treturn {\n\t\trequestID,\n\t\tstatus,\n\t\tmsg: statuses[status] ?? \"\",\n\t\terror,\n\t}\n}\n\nexport const validateMessage = (message: unknown): UnknownMessage => {\n\tif (typeof message !== \"object\" || message === null) {\n\t\tthrow new TypeError(\n\t\t\t`Invalid message received, expected message to be of type \\`object\\`, got \\`${typeof message}\\``,\n\t\t)\n\t} else if (\n\t\t!Object.keys(message).every((key) =>\n\t\t\t[\"requestID\", \"type\", \"data\", \"status\", \"msg\", \"error\"].includes(key),\n\t\t)\n\t) {\n\t\tthrow new TypeError(`Invalid message received: ${JSON.stringify(message)}`)\n\t} else if (typeof (message as Record<string, unknown>).requestID !== \"string\") {\n\t\tthrow new TypeError(\n\t\t\t`Invalid message received, expected \\`message.requestID\\` to be of type \\`string\\`, got \\`${typeof (\n\t\t\t\tmessage as Record<string, unknown>\n\t\t\t).id}\\``,\n\t\t)\n\t}\n\n\treturn message as UnknownMessage\n}\n\nexport const isRequestMessage = (message: UnknownMessage): message is UnknownRequestMessage => {\n\treturn \"type\" in message\n}\n\nexport const isResponseMessage = (message: UnknownMessage): message is UnknownResponseMessage => {\n\treturn !(\"type\" in message)\n}\n\nexport const isSuccessResponseMessage = (\n\tmessage: UnknownMessage,\n): message is UnknownSuccessResponseMessage => {\n\treturn isResponseMessage(message) && !(\"error\" in message)\n}\n\nexport const isErrorResponseMessage = (\n\tmessage: UnknownMessage,\n): message is UnknownErrorResponseMessage => {\n\treturn isResponseMessage(message) && !(\"data\" in message)\n}\n"],"mappings":";AAYA,MAAM,WAAW;CAChB,KAAK;CACL,KAAK;CAEL,KAAK;CACL,KAAK;CACL,KAAK;CACL;AAED,IAAI,YAAY;AAEhB,MAAa,wBACZ,MACA,MACA,SAAS,OACyB;AAClC,QAAO;EACN,WAAW,GAAG,SAAS;EACvB;EACA;EACA;;AAGF,MAAa,gCACZ,WACA,MACA,SAAgC,QACG;AACnC,KAAI,UAAU,IACb,OAAM,IAAI,UACT,kFAAkF,OAAO,IACzF;AAGF,QAAO;EACN;EACA;EACA,KAAK,SAAS,WAAW;EACzB;EACA;;AAGF,MAAa,8BACZ,WACA,OACA,SAAgC,QACE;AAClC,KAAI,SAAS,IACZ,OAAM,IAAI,UACT,gFAAgF,OAAO,IACvF;AAGF,QAAO;EACN;EACA;EACA,KAAK,SAAS,WAAW;EACzB;EACA;;AAGF,MAAa,mBAAmB,YAAqC;AACpE,KAAI,OAAO,YAAY,YAAY,YAAY,KAC9C,OAAM,IAAI,UACT,8EAA8E,OAAO,QAAQ,IAC7F;UAED,CAAC,OAAO,KAAK,QAAQ,CAAC,OAAO,QAC5B;EAAC;EAAa;EAAQ;EAAQ;EAAU;EAAO;EAAQ,CAAC,SAAS,IAAI,CACrE,CAED,OAAM,IAAI,UAAU,6BAA6B,KAAK,UAAU,QAAQ,GAAG;UACjE,OAAQ,QAAoC,cAAc,SACpE,OAAM,IAAI,UACT,4FAA4F,OAC3F,QACC,GAAG,IACL;AAGF,QAAO;;AAGR,MAAa,oBAAoB,YAA8D;AAC9F,QAAO,UAAU;;AAGlB,MAAa,qBAAqB,YAA+D;AAChG,QAAO,EAAE,UAAU;;AAGpB,MAAa,4BACZ,YAC8C;AAC9C,QAAO,kBAAkB,QAAQ,IAAI,EAAE,WAAW;;AAGnD,MAAa,0BACZ,YAC4C;AAC5C,QAAO,kBAAkB,QAAQ,IAAI,EAAE,UAAU"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { UnknownErrorResponseMessage, UnknownMessage, UnknownRequestMessage, UnknownResponseMessage, UnknownSuccessResponseMessage } from "./types.cjs";
|
|
2
2
|
|
|
3
3
|
//#region src/channel/messages.d.ts
|
|
4
|
-
|
|
5
4
|
declare const validateMessage: (message: unknown) => UnknownMessage;
|
|
6
5
|
declare const isRequestMessage: (message: UnknownMessage) => message is UnknownRequestMessage;
|
|
7
6
|
declare const isResponseMessage: (message: UnknownMessage) => message is UnknownResponseMessage;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.d.cts","names":[],"sources":["../../src/channel/messages.ts"],"mappings":";;;cAyEa,eAAA,GAAmB,OAAA,cAAmB,cAAA;AAAA,cAsBtC,gBAAA,GAAoB,OAAA,EAAS,cAAA,KAAiB,OAAA,IAAW,qBAAA;AAAA,cAIzD,iBAAA,GAAqB,OAAA,EAAS,cAAA,KAAiB,OAAA,IAAW,sBAAA;AAAA,cAI1D,wBAAA,GACZ,OAAA,EAAS,cAAA,KACP,OAAA,IAAW,6BAAA;AAAA,cAID,sBAAA,GACZ,OAAA,EAAS,cAAA,KACP,OAAA,IAAW,2BAAA"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { UnknownErrorResponseMessage, UnknownMessage, UnknownRequestMessage, UnknownResponseMessage, UnknownSuccessResponseMessage } from "./types.js";
|
|
2
2
|
|
|
3
3
|
//#region src/channel/messages.d.ts
|
|
4
|
-
|
|
5
4
|
declare const validateMessage: (message: unknown) => UnknownMessage;
|
|
6
5
|
declare const isRequestMessage: (message: UnknownMessage) => message is UnknownRequestMessage;
|
|
7
6
|
declare const isResponseMessage: (message: UnknownMessage) => message is UnknownResponseMessage;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.d.ts","names":[],"sources":["../../src/channel/messages.ts"],"mappings":";;;cAyEa,eAAA,GAAmB,OAAA,cAAmB,cAAA;AAAA,cAsBtC,gBAAA,GAAoB,OAAA,EAAS,cAAA,KAAiB,OAAA,IAAW,qBAAA;AAAA,cAIzD,iBAAA,GAAqB,OAAA,EAAS,cAAA,KAAiB,OAAA,IAAW,sBAAA;AAAA,cAI1D,wBAAA,GACZ,OAAA,EAAS,cAAA,KACP,OAAA,IAAW,6BAAA;AAAA,cAID,sBAAA,GACZ,OAAA,EAAS,cAAA,KACP,OAAA,IAAW,2BAAA"}
|
package/dist/channel/messages.js
CHANGED
|
@@ -14,19 +14,19 @@ const createRequestMessage = (type, data, prefix = "") => {
|
|
|
14
14
|
data
|
|
15
15
|
};
|
|
16
16
|
};
|
|
17
|
-
const createSuccessResponseMessage = (requestID
|
|
17
|
+
const createSuccessResponseMessage = (requestID, data, status = 200) => {
|
|
18
18
|
if (status >= 400) throw new TypeError(`Invalid success status code, expected status to be within \`[100;400[\`, got \`${status}\``);
|
|
19
19
|
return {
|
|
20
|
-
requestID
|
|
20
|
+
requestID,
|
|
21
21
|
status,
|
|
22
22
|
msg: statuses[status] ?? "",
|
|
23
23
|
data
|
|
24
24
|
};
|
|
25
25
|
};
|
|
26
|
-
const createErrorResponseMessage = (requestID
|
|
26
|
+
const createErrorResponseMessage = (requestID, error, status = 400) => {
|
|
27
27
|
if (status < 400) throw new TypeError(`Invalid error status code, expected status to be within \`[400;600[\`, got \`${status}\``);
|
|
28
28
|
return {
|
|
29
|
-
requestID
|
|
29
|
+
requestID,
|
|
30
30
|
status,
|
|
31
31
|
msg: statuses[status] ?? "",
|
|
32
32
|
error
|
|
@@ -57,7 +57,7 @@ const isSuccessResponseMessage = (message) => {
|
|
|
57
57
|
const isErrorResponseMessage = (message) => {
|
|
58
58
|
return isResponseMessage(message) && !("data" in message);
|
|
59
59
|
};
|
|
60
|
-
|
|
61
60
|
//#endregion
|
|
62
61
|
export { createErrorResponseMessage, createRequestMessage, createSuccessResponseMessage, isErrorResponseMessage, isRequestMessage, isResponseMessage, isSuccessResponseMessage, validateMessage };
|
|
62
|
+
|
|
63
63
|
//# sourceMappingURL=messages.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.js","names":[],"sources":["../../src/channel/messages.ts"],"sourcesContent":["import type {\n\tErrorResponseMessage,\n\tRequestMessage,\n\tSuccessResponseMessage,\n\tUnknownErrorResponseMessage,\n\tUnknownMessage,\n\tUnknownRequestMessage,\n\tUnknownResponseMessage,\n\tUnknownSuccessResponseMessage,\n} from \"./types\"\n\n// Adapted from https://github.com/jshttp/statuses/blob/770a97d931c1bb40ebbfefdbb77f0419601890b5/codes.json\nconst statuses = {\n\t200: \"ok\",\n\t201: \"created\",\n\n\t400: \"bad request\",\n\t500: \"internal server error\",\n\t501: \"not implemented\",\n}\n\nlet requestID = 0\n\nexport const createRequestMessage =
|
|
1
|
+
{"version":3,"file":"messages.js","names":[],"sources":["../../src/channel/messages.ts"],"sourcesContent":["import type {\n\tErrorResponseMessage,\n\tRequestMessage,\n\tSuccessResponseMessage,\n\tUnknownErrorResponseMessage,\n\tUnknownMessage,\n\tUnknownRequestMessage,\n\tUnknownResponseMessage,\n\tUnknownSuccessResponseMessage,\n} from \"./types\"\n\n// Adapted from https://github.com/jshttp/statuses/blob/770a97d931c1bb40ebbfefdbb77f0419601890b5/codes.json\nconst statuses = {\n\t200: \"ok\",\n\t201: \"created\",\n\n\t400: \"bad request\",\n\t500: \"internal server error\",\n\t501: \"not implemented\",\n}\n\nlet requestID = 0\n\nexport const createRequestMessage = <TType extends string = string, TData = undefined>(\n\ttype: TType,\n\tdata: TData,\n\tprefix = \"\",\n): RequestMessage<TType, TData> => {\n\treturn {\n\t\trequestID: `${prefix}${requestID++}`,\n\t\ttype,\n\t\tdata,\n\t}\n}\n\nexport const createSuccessResponseMessage = <TData = undefined>(\n\trequestID: string,\n\tdata: TData,\n\tstatus: keyof typeof statuses = 200,\n): SuccessResponseMessage<TData> => {\n\tif (status >= 400) {\n\t\tthrow new TypeError(\n\t\t\t`Invalid success status code, expected status to be within \\`[100;400[\\`, got \\`${status}\\``,\n\t\t)\n\t}\n\n\treturn {\n\t\trequestID,\n\t\tstatus,\n\t\tmsg: statuses[status] ?? \"\",\n\t\tdata,\n\t}\n}\n\nexport const createErrorResponseMessage = <TError = undefined>(\n\trequestID: string,\n\terror: TError,\n\tstatus: keyof typeof statuses = 400,\n): ErrorResponseMessage<TError> => {\n\tif (status < 400) {\n\t\tthrow new TypeError(\n\t\t\t`Invalid error status code, expected status to be within \\`[400;600[\\`, got \\`${status}\\``,\n\t\t)\n\t}\n\n\treturn {\n\t\trequestID,\n\t\tstatus,\n\t\tmsg: statuses[status] ?? \"\",\n\t\terror,\n\t}\n}\n\nexport const validateMessage = (message: unknown): UnknownMessage => {\n\tif (typeof message !== \"object\" || message === null) {\n\t\tthrow new TypeError(\n\t\t\t`Invalid message received, expected message to be of type \\`object\\`, got \\`${typeof message}\\``,\n\t\t)\n\t} else if (\n\t\t!Object.keys(message).every((key) =>\n\t\t\t[\"requestID\", \"type\", \"data\", \"status\", \"msg\", \"error\"].includes(key),\n\t\t)\n\t) {\n\t\tthrow new TypeError(`Invalid message received: ${JSON.stringify(message)}`)\n\t} else if (typeof (message as Record<string, unknown>).requestID !== \"string\") {\n\t\tthrow new TypeError(\n\t\t\t`Invalid message received, expected \\`message.requestID\\` to be of type \\`string\\`, got \\`${typeof (\n\t\t\t\tmessage as Record<string, unknown>\n\t\t\t).id}\\``,\n\t\t)\n\t}\n\n\treturn message as UnknownMessage\n}\n\nexport const isRequestMessage = (message: UnknownMessage): message is UnknownRequestMessage => {\n\treturn \"type\" in message\n}\n\nexport const isResponseMessage = (message: UnknownMessage): message is UnknownResponseMessage => {\n\treturn !(\"type\" in message)\n}\n\nexport const isSuccessResponseMessage = (\n\tmessage: UnknownMessage,\n): message is UnknownSuccessResponseMessage => {\n\treturn isResponseMessage(message) && !(\"error\" in message)\n}\n\nexport const isErrorResponseMessage = (\n\tmessage: UnknownMessage,\n): message is UnknownErrorResponseMessage => {\n\treturn isResponseMessage(message) && !(\"data\" in message)\n}\n"],"mappings":";AAYA,MAAM,WAAW;CAChB,KAAK;CACL,KAAK;CAEL,KAAK;CACL,KAAK;CACL,KAAK;CACL;AAED,IAAI,YAAY;AAEhB,MAAa,wBACZ,MACA,MACA,SAAS,OACyB;AAClC,QAAO;EACN,WAAW,GAAG,SAAS;EACvB;EACA;EACA;;AAGF,MAAa,gCACZ,WACA,MACA,SAAgC,QACG;AACnC,KAAI,UAAU,IACb,OAAM,IAAI,UACT,kFAAkF,OAAO,IACzF;AAGF,QAAO;EACN;EACA;EACA,KAAK,SAAS,WAAW;EACzB;EACA;;AAGF,MAAa,8BACZ,WACA,OACA,SAAgC,QACE;AAClC,KAAI,SAAS,IACZ,OAAM,IAAI,UACT,gFAAgF,OAAO,IACvF;AAGF,QAAO;EACN;EACA;EACA,KAAK,SAAS,WAAW;EACzB;EACA;;AAGF,MAAa,mBAAmB,YAAqC;AACpE,KAAI,OAAO,YAAY,YAAY,YAAY,KAC9C,OAAM,IAAI,UACT,8EAA8E,OAAO,QAAQ,IAC7F;UAED,CAAC,OAAO,KAAK,QAAQ,CAAC,OAAO,QAC5B;EAAC;EAAa;EAAQ;EAAQ;EAAU;EAAO;EAAQ,CAAC,SAAS,IAAI,CACrE,CAED,OAAM,IAAI,UAAU,6BAA6B,KAAK,UAAU,QAAQ,GAAG;UACjE,OAAQ,QAAoC,cAAc,SACpE,OAAM,IAAI,UACT,4FAA4F,OAC3F,QACC,GAAG,IACL;AAGF,QAAO;;AAGR,MAAa,oBAAoB,YAA8D;AAC9F,QAAO,UAAU;;AAGlB,MAAa,qBAAqB,YAA+D;AAChG,QAAO,EAAE,UAAU;;AAGpB,MAAa,4BACZ,YAC8C;AAC9C,QAAO,kBAAkB,QAAQ,IAAI,EAAE,WAAW;;AAGnD,MAAa,0BACZ,YAC4C;AAC5C,QAAO,kBAAkB,QAAQ,IAAI,EAAE,UAAU"}
|
package/dist/channel/types.cjs
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
|
|
2
1
|
//#region src/channel/types.ts
|
|
3
|
-
let InternalEmitterRequestType = /* @__PURE__ */ function(InternalEmitterRequestType
|
|
4
|
-
InternalEmitterRequestType
|
|
5
|
-
return InternalEmitterRequestType
|
|
2
|
+
let InternalEmitterRequestType = /* @__PURE__ */ function(InternalEmitterRequestType) {
|
|
3
|
+
InternalEmitterRequestType["Connect"] = "connect";
|
|
4
|
+
return InternalEmitterRequestType;
|
|
6
5
|
}({});
|
|
7
|
-
let InternalReceiverRequestType = /* @__PURE__ */ function(InternalReceiverRequestType
|
|
8
|
-
InternalReceiverRequestType
|
|
9
|
-
return InternalReceiverRequestType
|
|
6
|
+
let InternalReceiverRequestType = /* @__PURE__ */ function(InternalReceiverRequestType) {
|
|
7
|
+
InternalReceiverRequestType["Ready"] = "ready";
|
|
8
|
+
return InternalReceiverRequestType;
|
|
10
9
|
}({});
|
|
11
|
-
|
|
12
10
|
//#endregion
|
|
13
11
|
exports.InternalEmitterRequestType = InternalEmitterRequestType;
|
|
14
12
|
exports.InternalReceiverRequestType = InternalReceiverRequestType;
|
|
13
|
+
|
|
15
14
|
//# sourceMappingURL=types.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.cjs","names":[],"sources":["../../src/channel/types.ts"],"sourcesContent":["// Messages\nexport type MessageBase = {\n\trequestID: string\n}\n\nexport type RequestMessage<TType extends string = string, TData = void> = {\n\ttype: TType\n\tdata: TData\n} & MessageBase\n\nexport type ResponseMessageBase = {\n\tstatus: number\n\tmsg: string\n} & MessageBase\n\nexport type SuccessResponseMessage<TData = void> = {\n\tdata: TData\n\terror?: never\n} & ResponseMessageBase\n\nexport type ErrorResponseMessage<TError = unknown> = {\n\tdata?: never\n\terror: unknown | TError\n} & ResponseMessageBase\n\nexport type ResponseMessage<TData = void, TError = unknown> =\n\t| SuccessResponseMessage<TData>\n\t| ErrorResponseMessage<TError>\n\nexport type ExtractSuccessResponseMessage
|
|
1
|
+
{"version":3,"file":"types.cjs","names":[],"sources":["../../src/channel/types.ts"],"sourcesContent":["// Messages\nexport type MessageBase = {\n\trequestID: string\n}\n\nexport type RequestMessage<TType extends string = string, TData = void> = {\n\ttype: TType\n\tdata: TData\n} & MessageBase\n\nexport type ResponseMessageBase = {\n\tstatus: number\n\tmsg: string\n} & MessageBase\n\nexport type SuccessResponseMessage<TData = void> = {\n\tdata: TData\n\terror?: never\n} & ResponseMessageBase\n\nexport type ErrorResponseMessage<TError = unknown> = {\n\tdata?: never\n\terror: unknown | TError\n} & ResponseMessageBase\n\nexport type ResponseMessage<TData = void, TError = unknown> =\n\t| SuccessResponseMessage<TData>\n\t| ErrorResponseMessage<TError>\n\nexport type ExtractSuccessResponseMessage<TResponse extends UnknownResponseMessage> = Extract<\n\tTResponse,\n\t{ error?: never }\n>\n\nexport type ExtractErrorResponseMessage<TResponse extends UnknownResponseMessage> = Extract<\n\tTResponse,\n\t{ data?: never }\n>\n\n// Unknown messages\nexport type UnknownRequestMessage = RequestMessage<string, unknown>\n\nexport type UnknownSuccessResponseMessage = SuccessResponseMessage<unknown>\n\nexport type UnknownErrorResponseMessage = ErrorResponseMessage<unknown>\n\nexport type UnknownResponseMessage = UnknownSuccessResponseMessage | UnknownErrorResponseMessage\n\nexport type UnknownMessage = UnknownRequestMessage | UnknownResponseMessage\n\n// Transactions\nexport type Transaction<\n\tTRequest extends UnknownRequestMessage,\n\tTResponse extends UnknownResponseMessage = ResponseMessage<void>,\n> = {\n\trequest: TRequest\n\tresponse: TResponse\n}\n\nexport type TransactionMethod<\n\tTTransaction extends Transaction<UnknownRequestMessage, UnknownResponseMessage>,\n> = (\n\tdata: TTransaction[\"request\"][\"data\"],\n) => Promise<ExtractSuccessResponseMessage<TTransaction[\"response\"]>>\n\nexport type TransactionHandler<\n\tTTransaction extends Transaction<UnknownRequestMessage, UnknownResponseMessage>,\n> = (\n\trequest: TTransaction[\"request\"],\n\tresponse: {\n\t\tsuccess: (\n\t\t\tdata: ExtractSuccessResponseMessage<TTransaction[\"response\"]>[\"data\"],\n\t\t\tstatus?: number,\n\t\t) => ExtractSuccessResponseMessage<TTransaction[\"response\"]>\n\t\terror: (\n\t\t\terror: ExtractErrorResponseMessage<TTransaction[\"response\"]>[\"error\"],\n\t\t\tstatus?: number,\n\t\t) => ExtractErrorResponseMessage<TTransaction[\"response\"]>\n\t},\n) => Promise<TTransaction[\"response\"]> | TTransaction[\"response\"]\n\nexport type TransactionsMethods<TTransactions extends Record<string, UnknownTransaction>> = {\n\t[Key in keyof TTransactions]: TransactionMethod<TTransactions[Key]>\n}\n\nexport type TransactionsHandlers<TTransactions extends Record<string, UnknownTransaction>> = {\n\t[Key in keyof TTransactions]: TransactionHandler<TTransactions[Key]>\n}\n\n// Unknown transactions\nexport type UnknownTransaction = Transaction<UnknownRequestMessage, UnknownResponseMessage>\n\nexport type UnknownTransactionMethod = TransactionMethod<UnknownTransaction>\n\nexport type UnknownTransactionHandler = TransactionHandler<UnknownTransaction>\n\n// Emitter\nexport enum InternalEmitterRequestType {\n\tConnect = \"connect\",\n}\n\nexport type InternalEmitterTransactions<\n\tTReceiverOptions extends Record<string, unknown> = Record<string, unknown>,\n> = {\n\t[InternalEmitterRequestType.Connect]: Transaction<\n\t\tRequestMessage<\n\t\t\tInternalEmitterRequestType.Connect,\n\t\t\tPartial<Omit<TReceiverOptions, \"debug\" | \"requestIDPrefix\" | \"readyTimeout\">> | undefined\n\t\t>\n\t>\n}\n\n// Receiver\nexport enum InternalReceiverRequestType {\n\tReady = \"ready\",\n}\n\nexport type InternalReceiverTransactions = {\n\t[InternalReceiverRequestType.Ready]: Transaction<\n\t\tRequestMessage<InternalReceiverRequestType.Ready>\n\t>\n}\n"],"mappings":";AAiGA,IAAY,6BAAL,yBAAA,4BAAA;AACN,4BAAA,aAAA;;KACA;AAcD,IAAY,8BAAL,yBAAA,6BAAA;AACN,6BAAA,WAAA;;KACA"}
|
package/dist/channel/types.d.cts
CHANGED
|
@@ -43,7 +43,7 @@ type TransactionsMethods<TTransactions extends Record<string, UnknownTransaction
|
|
|
43
43
|
type TransactionsHandlers<TTransactions extends Record<string, UnknownTransaction>> = { [Key in keyof TTransactions]: TransactionHandler<TTransactions[Key]> };
|
|
44
44
|
type UnknownTransaction = Transaction<UnknownRequestMessage, UnknownResponseMessage>;
|
|
45
45
|
declare enum InternalEmitterRequestType {
|
|
46
|
-
Connect = "connect"
|
|
46
|
+
Connect = "connect"
|
|
47
47
|
}
|
|
48
48
|
type InternalEmitterTransactions<TReceiverOptions extends Record<string, unknown> = Record<string, unknown>> = {
|
|
49
49
|
[InternalEmitterRequestType.Connect]: Transaction<RequestMessage<InternalEmitterRequestType.Connect, Partial<Omit<TReceiverOptions, "debug" | "requestIDPrefix" | "readyTimeout">> | undefined>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.cts","names":[],"sources":["../../src/channel/types.ts"],"mappings":";KACY,WAAA;EACX,SAAA;AAAA;AAAA,KAGW,cAAA;EACX,IAAA,EAAM,KAAA;EACN,IAAA,EAAM,KAAA;AAAA,IACH,WAAA;AAAA,KAEQ,mBAAA;EACX,MAAA;EACA,GAAA;AAAA,IACG,WAAA;AAAA,KAEQ,sBAAA;EACX,IAAA,EAAM,KAAA;EACN,KAAA;AAAA,IACG,mBAAA;AAAA,KAEQ,oBAAA;EACX,IAAA;EACA,KAAA,YAAiB,MAAA;AAAA,IACd,mBAAA;AAAA,KAEQ,eAAA,mCACT,sBAAA,CAAuB,KAAA,IACvB,oBAAA,CAAqB,MAAA;AAAA,KAEZ,6BAAA,mBAAgD,sBAAA,IAA0B,OAAA,CACrF,SAAA;EACE,KAAA;AAAA;AAAA,KAGS,2BAAA,mBAA8C,sBAAA,IAA0B,OAAA,CACnF,SAAA;EACE,IAAA;AAAA;AAAA,KAIS,qBAAA,GAAwB,cAAA;AAAA,KAExB,6BAAA,GAAgC,sBAAA;AAAA,KAEhC,2BAAA,GAA8B,oBAAA;AAAA,KAE9B,sBAAA,GAAyB,6BAAA,GAAgC,2BAAA;AAAA,KAEzD,cAAA,GAAiB,qBAAA,GAAwB,sBAAA;AAAA,KAGzC,WAAA,kBACM,qBAAA,oBACC,sBAAA,GAAyB,eAAA;EAE3C,OAAA,EAAS,QAAA;EACT,QAAA,EAAU,SAAA;AAAA;AAAA,KAGC,iBAAA,sBACU,WAAA,CAAY,qBAAA,EAAuB,sBAAA,MAExD,IAAA,EAAM,YAAA,wBACF,OAAA,CAAQ,6BAAA,CAA8B,YAAA;AAAA,KAE/B,kBAAA,sBACU,WAAA,CAAY,qBAAA,EAAuB,sBAAA,MAExD,OAAA,EAAS,YAAA,aACT,QAAA;EACC,OAAA,GACC,IAAA,EAAM,6BAAA,CAA8B,YAAA,uBACpC,MAAA,cACI,6BAAA,CAA8B,YAAA;EACnC,KAAA,GACC,KAAA,EAAO,2BAAA,CAA4B,YAAA,wBACnC,MAAA,cACI,2BAAA,CAA4B,YAAA;AAAA,MAE9B,OAAA,CAAQ,YAAA,gBAA4B,YAAA;AAAA,KAE7B,mBAAA,uBAA0C,MAAA,SAAe,kBAAA,qBACtD,aAAA,GAAgB,iBAAA,CAAkB,aAAA,CAAc,GAAA;AAAA,KAGnD,oBAAA,uBAA2C,MAAA,SAAe,kBAAA,qBACvD,aAAA,GAAgB,kBAAA,CAAmB,aAAA,CAAc,GAAA;AAAA,KAIpD,kBAAA,GAAqB,WAAA,CAAY,qBAAA,EAAuB,sBAAA;AAAA,aAOxD,0BAAA;EACX,OAAA;AAAA;AAAA,KAGW,2BAAA,0BACc,MAAA,oBAA0B,MAAA;EAAA,CAElD,0BAAA,CAA2B,OAAA,GAAU,WAAA,CACrC,cAAA,CACC,0BAAA,CAA2B,OAAA,EAC3B,OAAA,CAAQ,IAAA,CAAK,gBAAA;AAAA"}
|
package/dist/channel/types.d.ts
CHANGED
|
@@ -43,7 +43,7 @@ type TransactionsMethods<TTransactions extends Record<string, UnknownTransaction
|
|
|
43
43
|
type TransactionsHandlers<TTransactions extends Record<string, UnknownTransaction>> = { [Key in keyof TTransactions]: TransactionHandler<TTransactions[Key]> };
|
|
44
44
|
type UnknownTransaction = Transaction<UnknownRequestMessage, UnknownResponseMessage>;
|
|
45
45
|
declare enum InternalEmitterRequestType {
|
|
46
|
-
Connect = "connect"
|
|
46
|
+
Connect = "connect"
|
|
47
47
|
}
|
|
48
48
|
type InternalEmitterTransactions<TReceiverOptions extends Record<string, unknown> = Record<string, unknown>> = {
|
|
49
49
|
[InternalEmitterRequestType.Connect]: Transaction<RequestMessage<InternalEmitterRequestType.Connect, Partial<Omit<TReceiverOptions, "debug" | "requestIDPrefix" | "readyTimeout">> | undefined>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","names":[],"sources":["../../src/channel/types.ts"],"mappings":";KACY,WAAA;EACX,SAAA;AAAA;AAAA,KAGW,cAAA;EACX,IAAA,EAAM,KAAA;EACN,IAAA,EAAM,KAAA;AAAA,IACH,WAAA;AAAA,KAEQ,mBAAA;EACX,MAAA;EACA,GAAA;AAAA,IACG,WAAA;AAAA,KAEQ,sBAAA;EACX,IAAA,EAAM,KAAA;EACN,KAAA;AAAA,IACG,mBAAA;AAAA,KAEQ,oBAAA;EACX,IAAA;EACA,KAAA,YAAiB,MAAA;AAAA,IACd,mBAAA;AAAA,KAEQ,eAAA,mCACT,sBAAA,CAAuB,KAAA,IACvB,oBAAA,CAAqB,MAAA;AAAA,KAEZ,6BAAA,mBAAgD,sBAAA,IAA0B,OAAA,CACrF,SAAA;EACE,KAAA;AAAA;AAAA,KAGS,2BAAA,mBAA8C,sBAAA,IAA0B,OAAA,CACnF,SAAA;EACE,IAAA;AAAA;AAAA,KAIS,qBAAA,GAAwB,cAAA;AAAA,KAExB,6BAAA,GAAgC,sBAAA;AAAA,KAEhC,2BAAA,GAA8B,oBAAA;AAAA,KAE9B,sBAAA,GAAyB,6BAAA,GAAgC,2BAAA;AAAA,KAEzD,cAAA,GAAiB,qBAAA,GAAwB,sBAAA;AAAA,KAGzC,WAAA,kBACM,qBAAA,oBACC,sBAAA,GAAyB,eAAA;EAE3C,OAAA,EAAS,QAAA;EACT,QAAA,EAAU,SAAA;AAAA;AAAA,KAGC,iBAAA,sBACU,WAAA,CAAY,qBAAA,EAAuB,sBAAA,MAExD,IAAA,EAAM,YAAA,wBACF,OAAA,CAAQ,6BAAA,CAA8B,YAAA;AAAA,KAE/B,kBAAA,sBACU,WAAA,CAAY,qBAAA,EAAuB,sBAAA,MAExD,OAAA,EAAS,YAAA,aACT,QAAA;EACC,OAAA,GACC,IAAA,EAAM,6BAAA,CAA8B,YAAA,uBACpC,MAAA,cACI,6BAAA,CAA8B,YAAA;EACnC,KAAA,GACC,KAAA,EAAO,2BAAA,CAA4B,YAAA,wBACnC,MAAA,cACI,2BAAA,CAA4B,YAAA;AAAA,MAE9B,OAAA,CAAQ,YAAA,gBAA4B,YAAA;AAAA,KAE7B,mBAAA,uBAA0C,MAAA,SAAe,kBAAA,qBACtD,aAAA,GAAgB,iBAAA,CAAkB,aAAA,CAAc,GAAA;AAAA,KAGnD,oBAAA,uBAA2C,MAAA,SAAe,kBAAA,qBACvD,aAAA,GAAgB,kBAAA,CAAmB,aAAA,CAAc,GAAA;AAAA,KAIpD,kBAAA,GAAqB,WAAA,CAAY,qBAAA,EAAuB,sBAAA;AAAA,aAOxD,0BAAA;EACX,OAAA;AAAA;AAAA,KAGW,2BAAA,0BACc,MAAA,oBAA0B,MAAA;EAAA,CAElD,0BAAA,CAA2B,OAAA,GAAU,WAAA,CACrC,cAAA,CACC,0BAAA,CAA2B,OAAA,EAC3B,OAAA,CAAQ,IAAA,CAAK,gBAAA;AAAA"}
|
package/dist/channel/types.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
//#region src/channel/types.ts
|
|
2
|
-
let InternalEmitterRequestType = /* @__PURE__ */ function(InternalEmitterRequestType
|
|
3
|
-
InternalEmitterRequestType
|
|
4
|
-
return InternalEmitterRequestType
|
|
2
|
+
let InternalEmitterRequestType = /* @__PURE__ */ function(InternalEmitterRequestType) {
|
|
3
|
+
InternalEmitterRequestType["Connect"] = "connect";
|
|
4
|
+
return InternalEmitterRequestType;
|
|
5
5
|
}({});
|
|
6
|
-
let InternalReceiverRequestType = /* @__PURE__ */ function(InternalReceiverRequestType
|
|
7
|
-
InternalReceiverRequestType
|
|
8
|
-
return InternalReceiverRequestType
|
|
6
|
+
let InternalReceiverRequestType = /* @__PURE__ */ function(InternalReceiverRequestType) {
|
|
7
|
+
InternalReceiverRequestType["Ready"] = "ready";
|
|
8
|
+
return InternalReceiverRequestType;
|
|
9
9
|
}({});
|
|
10
|
-
|
|
11
10
|
//#endregion
|
|
12
11
|
export { InternalEmitterRequestType, InternalReceiverRequestType };
|
|
12
|
+
|
|
13
13
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../src/channel/types.ts"],"sourcesContent":["// Messages\nexport type MessageBase = {\n\trequestID: string\n}\n\nexport type RequestMessage<TType extends string = string, TData = void> = {\n\ttype: TType\n\tdata: TData\n} & MessageBase\n\nexport type ResponseMessageBase = {\n\tstatus: number\n\tmsg: string\n} & MessageBase\n\nexport type SuccessResponseMessage<TData = void> = {\n\tdata: TData\n\terror?: never\n} & ResponseMessageBase\n\nexport type ErrorResponseMessage<TError = unknown> = {\n\tdata?: never\n\terror: unknown | TError\n} & ResponseMessageBase\n\nexport type ResponseMessage<TData = void, TError = unknown> =\n\t| SuccessResponseMessage<TData>\n\t| ErrorResponseMessage<TError>\n\nexport type ExtractSuccessResponseMessage
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../src/channel/types.ts"],"sourcesContent":["// Messages\nexport type MessageBase = {\n\trequestID: string\n}\n\nexport type RequestMessage<TType extends string = string, TData = void> = {\n\ttype: TType\n\tdata: TData\n} & MessageBase\n\nexport type ResponseMessageBase = {\n\tstatus: number\n\tmsg: string\n} & MessageBase\n\nexport type SuccessResponseMessage<TData = void> = {\n\tdata: TData\n\terror?: never\n} & ResponseMessageBase\n\nexport type ErrorResponseMessage<TError = unknown> = {\n\tdata?: never\n\terror: unknown | TError\n} & ResponseMessageBase\n\nexport type ResponseMessage<TData = void, TError = unknown> =\n\t| SuccessResponseMessage<TData>\n\t| ErrorResponseMessage<TError>\n\nexport type ExtractSuccessResponseMessage<TResponse extends UnknownResponseMessage> = Extract<\n\tTResponse,\n\t{ error?: never }\n>\n\nexport type ExtractErrorResponseMessage<TResponse extends UnknownResponseMessage> = Extract<\n\tTResponse,\n\t{ data?: never }\n>\n\n// Unknown messages\nexport type UnknownRequestMessage = RequestMessage<string, unknown>\n\nexport type UnknownSuccessResponseMessage = SuccessResponseMessage<unknown>\n\nexport type UnknownErrorResponseMessage = ErrorResponseMessage<unknown>\n\nexport type UnknownResponseMessage = UnknownSuccessResponseMessage | UnknownErrorResponseMessage\n\nexport type UnknownMessage = UnknownRequestMessage | UnknownResponseMessage\n\n// Transactions\nexport type Transaction<\n\tTRequest extends UnknownRequestMessage,\n\tTResponse extends UnknownResponseMessage = ResponseMessage<void>,\n> = {\n\trequest: TRequest\n\tresponse: TResponse\n}\n\nexport type TransactionMethod<\n\tTTransaction extends Transaction<UnknownRequestMessage, UnknownResponseMessage>,\n> = (\n\tdata: TTransaction[\"request\"][\"data\"],\n) => Promise<ExtractSuccessResponseMessage<TTransaction[\"response\"]>>\n\nexport type TransactionHandler<\n\tTTransaction extends Transaction<UnknownRequestMessage, UnknownResponseMessage>,\n> = (\n\trequest: TTransaction[\"request\"],\n\tresponse: {\n\t\tsuccess: (\n\t\t\tdata: ExtractSuccessResponseMessage<TTransaction[\"response\"]>[\"data\"],\n\t\t\tstatus?: number,\n\t\t) => ExtractSuccessResponseMessage<TTransaction[\"response\"]>\n\t\terror: (\n\t\t\terror: ExtractErrorResponseMessage<TTransaction[\"response\"]>[\"error\"],\n\t\t\tstatus?: number,\n\t\t) => ExtractErrorResponseMessage<TTransaction[\"response\"]>\n\t},\n) => Promise<TTransaction[\"response\"]> | TTransaction[\"response\"]\n\nexport type TransactionsMethods<TTransactions extends Record<string, UnknownTransaction>> = {\n\t[Key in keyof TTransactions]: TransactionMethod<TTransactions[Key]>\n}\n\nexport type TransactionsHandlers<TTransactions extends Record<string, UnknownTransaction>> = {\n\t[Key in keyof TTransactions]: TransactionHandler<TTransactions[Key]>\n}\n\n// Unknown transactions\nexport type UnknownTransaction = Transaction<UnknownRequestMessage, UnknownResponseMessage>\n\nexport type UnknownTransactionMethod = TransactionMethod<UnknownTransaction>\n\nexport type UnknownTransactionHandler = TransactionHandler<UnknownTransaction>\n\n// Emitter\nexport enum InternalEmitterRequestType {\n\tConnect = \"connect\",\n}\n\nexport type InternalEmitterTransactions<\n\tTReceiverOptions extends Record<string, unknown> = Record<string, unknown>,\n> = {\n\t[InternalEmitterRequestType.Connect]: Transaction<\n\t\tRequestMessage<\n\t\t\tInternalEmitterRequestType.Connect,\n\t\t\tPartial<Omit<TReceiverOptions, \"debug\" | \"requestIDPrefix\" | \"readyTimeout\">> | undefined\n\t\t>\n\t>\n}\n\n// Receiver\nexport enum InternalReceiverRequestType {\n\tReady = \"ready\",\n}\n\nexport type InternalReceiverTransactions = {\n\t[InternalReceiverRequestType.Ready]: Transaction<\n\t\tRequestMessage<InternalReceiverRequestType.Ready>\n\t>\n}\n"],"mappings":";AAiGA,IAAY,6BAAL,yBAAA,4BAAA;AACN,4BAAA,aAAA;;KACA;AAcD,IAAY,8BAAL,yBAAA,6BAAA;AACN,6BAAA,WAAA;;KACA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"globalExtensions.d.cts","names":[],"sources":["../src/globalExtensions.ts"],"mappings":";;;;QAGQ,MAAA;EAAA,UACG,MAAA;IACT,OAAA;MACC,cAAA;QACC,GAAA,GAAM,YAAA;QACN,MAAA,GAAS,eAAA;MAAA;IAAA;EAAA;AAAA"}
|