@prismicio/simulator 0.1.4 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. package/README.md +7 -18
  2. package/dist/SimulatorAPI.cjs +38 -46
  3. package/dist/SimulatorAPI.cjs.map +1 -1
  4. package/dist/SimulatorAPI.d.cts +18 -0
  5. package/dist/SimulatorAPI.d.ts +16 -10
  6. package/dist/SimulatorAPI.js +37 -46
  7. package/dist/SimulatorAPI.js.map +1 -1
  8. package/dist/SimulatorClient.cjs +41 -51
  9. package/dist/SimulatorClient.cjs.map +1 -1
  10. package/dist/SimulatorClient.d.cts +16 -0
  11. package/dist/SimulatorClient.d.ts +15 -9
  12. package/dist/SimulatorClient.js +40 -51
  13. package/dist/SimulatorClient.js.map +1 -1
  14. package/dist/channel/ChannelEmitter.cjs +112 -143
  15. package/dist/channel/ChannelEmitter.cjs.map +1 -1
  16. package/dist/channel/ChannelEmitter.d.cts +38 -0
  17. package/dist/channel/ChannelEmitter.d.ts +36 -36
  18. package/dist/channel/ChannelEmitter.js +110 -141
  19. package/dist/channel/ChannelEmitter.js.map +1 -1
  20. package/dist/channel/ChannelNetwork.cjs +81 -109
  21. package/dist/channel/ChannelNetwork.cjs.map +1 -1
  22. package/dist/channel/ChannelNetwork.d.cts +28 -0
  23. package/dist/channel/ChannelNetwork.d.ts +25 -21
  24. package/dist/channel/ChannelNetwork.js +81 -109
  25. package/dist/channel/ChannelNetwork.js.map +1 -1
  26. package/dist/channel/ChannelReceiver.cjs +69 -92
  27. package/dist/channel/ChannelReceiver.cjs.map +1 -1
  28. package/dist/channel/ChannelReceiver.d.cts +20 -0
  29. package/dist/channel/ChannelReceiver.d.ts +18 -18
  30. package/dist/channel/ChannelReceiver.js +67 -90
  31. package/dist/channel/ChannelReceiver.js.map +1 -1
  32. package/dist/channel/errors.cjs +41 -46
  33. package/dist/channel/errors.cjs.map +1 -1
  34. package/dist/channel/errors.d.cts +28 -0
  35. package/dist/channel/errors.d.ts +22 -19
  36. package/dist/channel/errors.js +40 -52
  37. package/dist/channel/errors.js.map +1 -1
  38. package/dist/channel/messages.cjs +48 -43
  39. package/dist/channel/messages.cjs.map +1 -1
  40. package/dist/channel/messages.d.cts +12 -0
  41. package/dist/channel/messages.d.ts +12 -10
  42. package/dist/channel/messages.js +50 -53
  43. package/dist/channel/messages.js.map +1 -1
  44. package/dist/channel/types.cjs +15 -11
  45. package/dist/channel/types.cjs.map +1 -1
  46. package/dist/channel/types.d.cts +53 -0
  47. package/dist/channel/types.d.ts +42 -50
  48. package/dist/channel/types.js +13 -13
  49. package/dist/channel/types.js.map +1 -1
  50. package/dist/globalExtensions.d.cts +15 -0
  51. package/dist/globalExtensions.d.ts +13 -10
  52. package/dist/index.cjs +24 -33
  53. package/dist/index.d.cts +10 -0
  54. package/dist/index.d.ts +10 -8
  55. package/dist/index.js +5 -25
  56. package/dist/kit/SimulatorManager.cjs +106 -137
  57. package/dist/kit/SimulatorManager.cjs.map +1 -1
  58. package/dist/kit/SimulatorManager.d.cts +19 -0
  59. package/dist/kit/SimulatorManager.d.ts +16 -12
  60. package/dist/kit/SimulatorManager.js +103 -134
  61. package/dist/kit/SimulatorManager.js.map +1 -1
  62. package/dist/kit/State.cjs +82 -80
  63. package/dist/kit/State.cjs.map +1 -1
  64. package/dist/kit/State.d.cts +29 -0
  65. package/dist/kit/State.d.ts +26 -22
  66. package/dist/kit/State.js +80 -78
  67. package/dist/kit/State.js.map +1 -1
  68. package/dist/kit/domHelpers.cjs +25 -37
  69. package/dist/kit/domHelpers.cjs.map +1 -1
  70. package/dist/kit/domHelpers.d.cts +11 -0
  71. package/dist/kit/domHelpers.d.ts +10 -8
  72. package/dist/kit/domHelpers.js +25 -43
  73. package/dist/kit/domHelpers.js.map +1 -1
  74. package/dist/kit/eventHandlers.cjs +11 -9
  75. package/dist/kit/eventHandlers.cjs.map +1 -1
  76. package/dist/kit/eventHandlers.d.cts +8 -0
  77. package/dist/kit/eventHandlers.d.ts +7 -3
  78. package/dist/kit/eventHandlers.js +11 -11
  79. package/dist/kit/eventHandlers.js.map +1 -1
  80. package/dist/kit/getDefault.cjs +9 -7
  81. package/dist/kit/getDefault.cjs.map +1 -1
  82. package/dist/kit/getDefault.d.cts +10 -0
  83. package/dist/kit/getDefault.d.ts +10 -8
  84. package/dist/kit/getDefault.js +9 -10
  85. package/dist/kit/getDefault.js.map +1 -1
  86. package/dist/kit/messages.cjs +8 -22
  87. package/dist/kit/messages.cjs.map +1 -1
  88. package/dist/kit/messages.d.cts +5 -0
  89. package/dist/kit/messages.d.ts +5 -1
  90. package/dist/kit/messages.js +8 -23
  91. package/dist/kit/messages.js.map +1 -1
  92. package/dist/kit/types.cjs +12 -9
  93. package/dist/kit/types.cjs.map +1 -1
  94. package/dist/kit/types.d.cts +28 -0
  95. package/dist/kit/types.d.ts +24 -19
  96. package/dist/kit/types.js +11 -10
  97. package/dist/kit/types.js.map +1 -1
  98. package/dist/kit.cjs +21 -26
  99. package/dist/kit.d.cts +8 -0
  100. package/dist/kit.d.ts +8 -0
  101. package/dist/kit.js +7 -21
  102. package/dist/lib/EventEmitter.cjs +16 -25
  103. package/dist/lib/EventEmitter.cjs.map +1 -1
  104. package/dist/lib/EventEmitter.d.cts +12 -0
  105. package/dist/lib/EventEmitter.d.ts +11 -9
  106. package/dist/lib/EventEmitter.js +16 -26
  107. package/dist/lib/EventEmitter.js.map +1 -1
  108. package/dist/lib/throttle.cjs +21 -21
  109. package/dist/lib/throttle.cjs.map +1 -1
  110. package/dist/lib/throttle.js +21 -22
  111. package/dist/lib/throttle.js.map +1 -1
  112. package/dist/types.cjs +18 -14
  113. package/dist/types.cjs.map +1 -1
  114. package/dist/types.d.cts +39 -0
  115. package/dist/types.d.ts +32 -27
  116. package/dist/types.js +16 -16
  117. package/dist/types.js.map +1 -1
  118. package/package.json +27 -68
  119. package/src/SimulatorAPI.ts +24 -22
  120. package/src/SimulatorClient.ts +24 -25
  121. package/src/channel/ChannelEmitter.ts +71 -74
  122. package/src/channel/ChannelNetwork.ts +53 -55
  123. package/src/channel/ChannelReceiver.ts +46 -48
  124. package/src/channel/errors.ts +14 -14
  125. package/src/channel/index.ts +10 -10
  126. package/src/channel/messages.ts +39 -31
  127. package/src/channel/types.ts +40 -40
  128. package/src/globalExtensions.ts +6 -6
  129. package/src/index.ts +8 -8
  130. package/src/kit/SimulatorManager.ts +64 -63
  131. package/src/kit/State.ts +45 -44
  132. package/src/kit/domHelpers.ts +24 -24
  133. package/src/kit/eventHandlers.ts +6 -6
  134. package/src/kit/getDefault.ts +8 -8
  135. package/src/kit/index.ts +8 -8
  136. package/src/kit/messages.ts +5 -5
  137. package/src/kit/types.ts +13 -13
  138. package/src/lib/EventEmitter.ts +8 -8
  139. package/src/lib/__PRODUCTION__.ts +2 -2
  140. package/src/lib/throttle.ts +12 -12
  141. package/src/types.ts +20 -20
  142. package/dist/channel/index.d.ts +0 -10
  143. package/dist/index.cjs.map +0 -1
  144. package/dist/index.js.map +0 -1
  145. package/dist/kit/index.d.ts +0 -8
  146. package/dist/kit.cjs.map +0 -1
  147. package/dist/kit.js.map +0 -1
  148. package/dist/lib/__PRODUCTION__.d.ts +0 -7
  149. package/dist/lib/throttle.d.ts +0 -1
@@ -1,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 { validateMessage, isRequestMessage, createErrorResponseMessage, createSuccessResponseMessage } from "./messages.js";
4
+ import { InternalEmitterRequestType, InternalReceiverRequestType } from "./types.js";
5
+
6
+ //#region src/channel/ChannelReceiver.ts
11
7
  const channelReceiverDefaultOptions = {
12
- readyTimeout: 2e4,
13
- requestIDPrefix: "receiver-"
8
+ readyTimeout: 2e4,
9
+ requestIDPrefix: "receiver-"
14
10
  };
15
- class ChannelReceiver extends ChannelNetwork {
16
- constructor(requestHandlers, options) {
17
- super(requestHandlers, { ...channelReceiverDefaultOptions, ...options });
18
- __publicField(this, "_ready", false);
19
- window.addEventListener("message", (event) => {
20
- this._onPublicMessage(event);
21
- });
22
- }
23
- /**
24
- * Tells the emitter that receiver is ready
25
- */
26
- async ready() {
27
- if (window.parent === window) {
28
- throw new Error("Receiver is currently not embedded as an iframe");
29
- }
30
- this._ready = false;
31
- const request = this.createRequestMessage(InternalReceiverRequestType.Ready, void 0);
32
- const response = await this.postRequest(request, (request2) => {
33
- window.parent.postMessage(request2, "*");
34
- }, {
35
- timeout: this.options.readyTimeout
36
- });
37
- this._ready = true;
38
- return response;
39
- }
40
- /**
41
- * Handles public messages
42
- */
43
- _onPublicMessage(event) {
44
- try {
45
- const message = validateMessage(event.data);
46
- if (isRequestMessage(message)) {
47
- if (this.options.debug) {
48
- console.debug(event.data);
49
- }
50
- switch (message.type) {
51
- case InternalEmitterRequestType.Connect:
52
- this.port = event.ports[0];
53
- const { data } = message;
54
- this.options = {
55
- ...this.options,
56
- ...data,
57
- // Ensure core options remain the same
58
- debug: this.options.debug,
59
- requestIDPrefix: this.options.requestIDPrefix,
60
- readyTimeout: this.options.readyTimeout
61
- };
62
- const response = createSuccessResponseMessage(message.requestID, void 0);
63
- this.postResponse(response);
64
- break;
65
- default:
66
- this.postResponse(createErrorResponseMessage(message.requestID, void 0), (response2) => {
67
- event.source.postMessage(response2, event.origin);
68
- });
69
- break;
70
- }
71
- } else {
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
- //# sourceMappingURL=ChannelReceiver.js.map
69
+
70
+ //#endregion
71
+ export { ChannelReceiver };
72
+ //# sourceMappingURL=ChannelReceiver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChannelReceiver.js","sources":["../../../src/channel/ChannelReceiver.ts"],"sourcesContent":["import {\n\tExtractSuccessResponseMessage,\n\tInternalEmitterRequestType,\n\tInternalEmitterTransactions,\n\tInternalReceiverRequestType,\n\tRequestMessage,\n\tResponseMessage,\n\tSuccessResponseMessage,\n\tTransactionsHandlers,\n\tUnknownRequestMessage,\n\tUnknownResponseMessage,\n\tUnknownTransaction,\n} from \"./types\";\n\nimport { NotReadyError } from \"./errors\";\n\nimport {\n\tChannelNetwork,\n\tChannelNetworkOptions,\n\tPostRequestOptions,\n} from \"./ChannelNetwork\";\nimport {\n\tcreateErrorResponseMessage,\n\tcreateSuccessResponseMessage,\n\tisRequestMessage,\n\tvalidateMessage,\n} from \"./messages\";\n\nexport type ChannelReceiverOptions = {\n\treadyTimeout: number;\n};\n\nexport const channelReceiverDefaultOptions: ChannelReceiverOptions &\n\tPartial<ChannelNetworkOptions> = {\n\treadyTimeout: 20000,\n\trequestIDPrefix: \"receiver-\",\n};\n\nexport type AllChannelReceiverOptions = ChannelReceiverOptions &\n\tChannelNetworkOptions;\n\nexport abstract class ChannelReceiver<\n\tTEmitterTransactions extends Record<string, UnknownTransaction> = Record<\n\t\tstring,\n\t\tnever\n\t>,\n\tTOptions extends Record<string, unknown> = Record<string, unknown>,\n> extends ChannelNetwork<\n\tTEmitterTransactions,\n\tChannelReceiverOptions & TOptions\n> {\n\tprivate _ready = false;\n\n\tconstructor(\n\t\trequestHandlers: TransactionsHandlers<TEmitterTransactions>,\n\t\toptions: Partial<AllChannelReceiverOptions> & TOptions,\n\t) {\n\t\tsuper(requestHandlers, { ...channelReceiverDefaultOptions, ...options });\n\n\t\twindow.addEventListener(\"message\", (event) => {\n\t\t\tthis._onPublicMessage(event);\n\t\t});\n\t}\n\n\t/**\n\t * Tells the emitter that receiver is ready\n\t */\n\tpublic async ready(): Promise<SuccessResponseMessage> {\n\t\tif (window.parent === window) {\n\t\t\tthrow new Error(\"Receiver is currently not embedded as an iframe\");\n\t\t}\n\n\t\tthis._ready = false;\n\n\t\tconst request = this.createRequestMessage(\n\t\t\tInternalReceiverRequestType.Ready,\n\t\t\tundefined,\n\t\t);\n\n\t\tconst response = await this.postRequest<\n\t\t\tRequestMessage<InternalReceiverRequestType.Ready>,\n\t\t\tResponseMessage\n\t\t>(\n\t\t\trequest,\n\t\t\t(request) => {\n\t\t\t\twindow.parent.postMessage(request, \"*\");\n\t\t\t},\n\t\t\t{\n\t\t\t\ttimeout: this.options.readyTimeout,\n\t\t\t},\n\t\t);\n\n\t\tthis._ready = true;\n\n\t\treturn response;\n\t}\n\n\t/**\n\t * Handles public messages\n\t */\n\tprivate _onPublicMessage(event: MessageEvent<unknown>): void {\n\t\ttry {\n\t\t\tconst message = validateMessage(event.data);\n\n\t\t\tif (isRequestMessage(message)) {\n\t\t\t\tif (this.options.debug) {\n\t\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\t\tconsole.debug(event.data);\n\t\t\t\t}\n\n\t\t\t\tswitch (message.type) {\n\t\t\t\t\tcase InternalEmitterRequestType.Connect:\n\t\t\t\t\t\t// Set port\n\t\t\t\t\t\tthis.port = event.ports[0];\n\n\t\t\t\t\t\t// Update options\n\t\t\t\t\t\tconst { data } =\n\t\t\t\t\t\t\tmessage as InternalEmitterTransactions[\"connect\"][\"request\"];\n\t\t\t\t\t\tthis.options = {\n\t\t\t\t\t\t\t...this.options,\n\t\t\t\t\t\t\t...data,\n\t\t\t\t\t\t\t// Ensure core options remain the same\n\t\t\t\t\t\t\tdebug: this.options.debug,\n\t\t\t\t\t\t\trequestIDPrefix: this.options.requestIDPrefix,\n\t\t\t\t\t\t\treadyTimeout: this.options.readyTimeout,\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tconst response = createSuccessResponseMessage(\n\t\t\t\t\t\t\tmessage.requestID,\n\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tthis.postResponse(response);\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthis.postResponse(\n\t\t\t\t\t\t\tcreateErrorResponseMessage(message.requestID, undefined),\n\t\t\t\t\t\t\t(response) => {\n\t\t\t\t\t\t\t\t(event.source as WindowProxy).postMessage(\n\t\t\t\t\t\t\t\t\tresponse,\n\t\t\t\t\t\t\t\t\tevent.origin,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Forward response messages to default message handler if necessary\n\t\t\t\tif (!this._ready) {\n\t\t\t\t\tthis.onMessage(event);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tif (error instanceof TypeError) {\n\t\t\t\t// Ignore unknown messages\n\t\t\t} else {\n\t\t\t\t// Should not be possible, but who knows :shrug:\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected postFormattedRequest<\n\t\tTRequest extends UnknownRequestMessage,\n\t\tTResponse extends UnknownResponseMessage,\n\t>(\n\t\ttype: TRequest[\"type\"],\n\t\tdata?: TRequest[\"data\"],\n\t\toptions: PostRequestOptions = {},\n\t): Promise<ExtractSuccessResponseMessage<TResponse>> {\n\t\tif (!this._ready) {\n\t\t\tthrow new NotReadyError(\n\t\t\t\t\"Receiver is not ready, use `ChannelReceiver.ready()` first\",\n\t\t\t);\n\t\t}\n\n\t\treturn this.postRequest(\n\t\t\tthis.createRequestMessage(type, data),\n\t\t\tundefined,\n\t\t\toptions,\n\t\t);\n\t}\n}\n"],"names":["request","response"],"mappings":";;;;;;;;;;AAgCO,MAAM,gCACqB;AAAA,EACjC,cAAc;AAAA,EACd,iBAAiB;;AAMZ,MAAgB,wBAMZ,eAGT;AAAA,EAGA,YACC,iBACA,SAAsD;AAEtD,UAAM,iBAAiB,EAAE,GAAG,+BAA+B,GAAG,QAAS,CAAA;AANhE,kCAAS;AAQT,WAAA,iBAAiB,WAAW,CAAC,UAAS;AAC5C,WAAK,iBAAiB,KAAK;AAAA,IAAA,CAC3B;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKO,MAAM,QAAK;AACb,QAAA,OAAO,WAAW,QAAQ;AACvB,YAAA,IAAI,MAAM,iDAAiD;AAAA,IACjE;AAED,SAAK,SAAS;AAEd,UAAM,UAAU,KAAK,qBACpB,4BAA4B,OAC5B,MAAS;AAGV,UAAM,WAAW,MAAM,KAAK,YAI3B,SACA,CAACA,aAAW;AACJ,aAAA,OAAO,YAAYA,UAAS,GAAG;AAAA,IAAA,GAEvC;AAAA,MACC,SAAS,KAAK,QAAQ;AAAA,IAAA,CACtB;AAGF,SAAK,SAAS;AAEP,WAAA;AAAA,EACR;AAAA;AAAA;AAAA;AAAA,EAKQ,iBAAiB,OAA4B;AAChD,QAAA;AACG,YAAA,UAAU,gBAAgB,MAAM,IAAI;AAEtC,UAAA,iBAAiB,OAAO,GAAG;AAC1B,YAAA,KAAK,QAAQ,OAAO;AAEf,kBAAA,MAAM,MAAM,IAAI;AAAA,QACxB;AAED,gBAAQ,QAAQ,MAAM;AAAA,UACrB,KAAK,2BAA2B;AAE1B,iBAAA,OAAO,MAAM,MAAM,CAAC;AAGnB,kBAAA,EAAE,KACP,IAAA;AACD,iBAAK,UAAU;AAAA,cACd,GAAG,KAAK;AAAA,cACR,GAAG;AAAA;AAAA,cAEH,OAAO,KAAK,QAAQ;AAAA,cACpB,iBAAiB,KAAK,QAAQ;AAAA,cAC9B,cAAc,KAAK,QAAQ;AAAA,YAAA;AAG5B,kBAAM,WAAW,6BAChB,QAAQ,WACR,MAAS;AAGV,iBAAK,aAAa,QAAQ;AAC1B;AAAA,UAED;AACC,iBAAK,aACJ,2BAA2B,QAAQ,WAAW,MAAS,GACvD,CAACC,cAAY;AACX,oBAAM,OAAuB,YAC7BA,WACA,MAAM,MAAM;AAAA,YAAA,CAEb;AAEF;AAAA,QACD;AAAA,MAAA,OACK;AAEF,YAAA,CAAC,KAAK,QAAQ;AACjB,eAAK,UAAU,KAAK;AAAA,QACpB;AAAA,MACD;AAAA,aACO;AACR,UAAI,iBAAiB;AAAW;AAAA,WAEzB;AAEA,cAAA;AAAA,MACN;AAAA,IACD;AAAA,EACF;AAAA,EAEU,qBAIT,MACA,MACA,UAA8B,CAAA,GAAE;AAE5B,QAAA,CAAC,KAAK,QAAQ;AACX,YAAA,IAAI,cACT,4DAA4D;AAAA,IAE7D;AAEM,WAAA,KAAK,YACX,KAAK,qBAAqB,MAAM,IAAI,GACpC,QACA,OAAO;AAAA,EAET;AACA;"}
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"}
@@ -1,49 +1,44 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4
- var __publicField = (obj, key, value) => {
5
- __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
6
- return value;
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
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
9
- class ResponseError extends Error {
10
- constructor(errorResponse) {
11
- super(errorResponse.msg);
12
- __publicField(this, "response");
13
- this.response = errorResponse;
14
- }
15
- }
16
- class ConnectionTimeoutError extends Error {
17
- constructor() {
18
- super("Connection timed out");
19
- }
20
- }
21
- class TooManyConcurrentRequestsError extends Error {
22
- constructor(request) {
23
- super(`Too many concurrent requests`);
24
- __publicField(this, "request");
25
- this.request = request;
26
- }
27
- }
28
- class RequestTimeoutError extends Error {
29
- constructor(request) {
30
- super(`Request \`${request.requestID}\` timed out`);
31
- __publicField(this, "request");
32
- this.request = request;
33
- }
34
- }
35
- class NotReadyError extends Error {
36
- }
37
- class PortNotSetError extends Error {
38
- constructor() {
39
- super("Port is not set");
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":["../../../src/channel/errors.ts"],"sourcesContent":["import { UnknownErrorResponseMessage } from \".\";\n\nimport { 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"],"names":[],"mappings":";;;;;;;;AAIM,MAAO,sBAEH,MAAK;AAAA,EAGd,YAAY,eAA6B;AACxC,UAAM,cAAc,GAAG;AAHjB;AAKN,SAAK,WAAW;AAAA,EACjB;AACA;AAEK,MAAO,+BAA+B,MAAK;AAAA,EAChD,cAAA;AACC,UAAM,sBAAsB;AAAA,EAC7B;AACA;AACK,MAAO,uCAAuC,MAAK;AAAA,EAGxD,YAAY,SAA8B;AACzC,UAAM,8BAA8B;AAH9B;AAKN,SAAK,UAAU;AAAA,EAChB;AACA;AACK,MAAO,4BAEH,MAAK;AAAA,EAGd,YAAY,SAAiB;AACtB,UAAA,aAAa,QAAQ,uBAAuB;AAH5C;AAKN,SAAK,UAAU;AAAA,EAChB;AACA;AAEK,MAAO,sBAAsB,MAAK;AAAG;AACrC,MAAO,wBAAwB,MAAK;AAAA,EACzC,cAAA;AACC,UAAM,iBAAiB;AAAA,EACxB;AACA;AACK,MAAO,2BAA2B,MAAK;AAAA,EAC5C,cAAA;AACC,UAAM,oBAAoB;AAAA,EAC3B;AACA;;;;;;;;"}
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
@@ -1,25 +1,28 @@
1
- import { UnknownErrorResponseMessage } from ".";
2
- import { UnknownRequestMessage } from "./types";
3
- export declare class ResponseError<TErrorResponse extends UnknownErrorResponseMessage> extends Error {
4
- response: TErrorResponse;
5
- constructor(errorResponse: TErrorResponse);
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
- export declare class ConnectionTimeoutError extends Error {
8
- constructor();
8
+ declare class ConnectionTimeoutError extends Error {
9
+ constructor();
9
10
  }
10
- export declare class TooManyConcurrentRequestsError extends Error {
11
- request: UnknownRequestMessage;
12
- constructor(request: UnknownRequestMessage);
11
+ declare class TooManyConcurrentRequestsError extends Error {
12
+ request: UnknownRequestMessage;
13
+ constructor(request: UnknownRequestMessage);
13
14
  }
14
- export declare class RequestTimeoutError<TRequest extends UnknownRequestMessage> extends Error {
15
- request: UnknownRequestMessage;
16
- constructor(request: TRequest);
15
+ declare class RequestTimeoutError<TRequest extends UnknownRequestMessage> extends Error {
16
+ request: UnknownRequestMessage;
17
+ constructor(request: TRequest);
17
18
  }
18
- export declare class NotReadyError extends Error {
19
+ declare class NotReadyError extends Error {}
20
+ declare class PortNotSetError extends Error {
21
+ constructor();
19
22
  }
20
- export declare class PortNotSetError extends Error {
21
- constructor();
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
@@ -1,54 +1,42 @@
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;
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 ResponseError extends Error {
8
- constructor(errorResponse) {
9
- super(errorResponse.msg);
10
- __publicField(this, "response");
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
- //# sourceMappingURL=errors.js.map
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":["../../../src/channel/errors.ts"],"sourcesContent":["import { UnknownErrorResponseMessage } from \".\";\n\nimport { 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"],"names":[],"mappings":";;;;;;AAIM,MAAO,sBAEH,MAAK;AAAA,EAGd,YAAY,eAA6B;AACxC,UAAM,cAAc,GAAG;AAHjB;AAKN,SAAK,WAAW;AAAA,EACjB;AACA;AAEK,MAAO,+BAA+B,MAAK;AAAA,EAChD,cAAA;AACC,UAAM,sBAAsB;AAAA,EAC7B;AACA;AACK,MAAO,uCAAuC,MAAK;AAAA,EAGxD,YAAY,SAA8B;AACzC,UAAM,8BAA8B;AAH9B;AAKN,SAAK,UAAU;AAAA,EAChB;AACA;AACK,MAAO,4BAEH,MAAK;AAAA,EAGd,YAAY,SAAiB;AACtB,UAAA,aAAa,QAAQ,uBAAuB;AAH5C;AAKN,SAAK,UAAU;AAAA,EAChB;AACA;AAEK,MAAO,sBAAsB,MAAK;AAAG;AACrC,MAAO,wBAAwB,MAAK;AAAA,EACzC,cAAA;AACC,UAAM,iBAAiB;AAAA,EACxB;AACA;AACK,MAAO,2BAA2B,MAAK;AAAA,EAC5C,cAAA;AACC,UAAM,oBAAoB;AAAA,EAC3B;AACA;"}
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
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const statuses = require("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
- return {
7
- requestID: `${prefix}${requestID++}`,
8
- type,
9
- data
10
- };
12
+ return {
13
+ requestID: `${prefix}${requestID++}`,
14
+ type,
15
+ data
16
+ };
11
17
  };
12
- const createSuccessResponseMessage = (requestID2, data, status = 200) => {
13
- var _a;
14
- if (status >= 400) {
15
- throw new TypeError(`Invalid success status code, expected status to be within \`[100;400[\`, got \`${status}\``);
16
- }
17
- return {
18
- requestID: requestID2,
19
- status,
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 = (requestID2, error, status = 400) => {
25
- var _a;
26
- if (status < 400) {
27
- throw new TypeError(`Invalid error status code, expected status to be within \`[500;600[\`, got \`${status}\``);
28
- }
29
- return {
30
- requestID: requestID2,
31
- status,
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
- if (typeof message !== "object" || message === null) {
38
- throw new TypeError(`Invalid message received, expected message to be of type \`object\`, got \`${typeof message}\``);
39
- } else if (!Object.keys(message).every((key) => ["requestID", "type", "data", "status", "msg", "error"].includes(key))) {
40
- throw new TypeError(`Invalid message received: ${JSON.stringify(message)}`);
41
- } else if (typeof message.requestID !== "string") {
42
- throw new TypeError(`Invalid message received, expected \`message.requestID\` to be of type \`string\`, got \`${typeof message.id}\``);
43
- }
44
- return message;
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
- return "type" in message;
50
+ return "type" in message;
48
51
  };
49
52
  const isResponseMessage = (message) => {
50
- return !("type" in message);
53
+ return !("type" in message);
51
54
  };
52
55
  const isSuccessResponseMessage = (message) => {
53
- return isResponseMessage(message) && !("error" in message);
56
+ return isResponseMessage(message) && !("error" in message);
54
57
  };
55
58
  const isErrorResponseMessage = (message) => {
56
- return isResponseMessage(message) && !("data" in message);
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