snapreq 0.0.3 → 0.0.5

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 (69) hide show
  1. package/README.md +12 -0
  2. package/{types → build}/capabilities.d.ts +1 -0
  3. package/build/capabilities.d.ts.map +1 -0
  4. package/{src → build}/capabilities.js +11 -12
  5. package/{types → build}/errors.d.ts +18 -0
  6. package/build/errors.d.ts.map +1 -0
  7. package/build/errors.js +82 -0
  8. package/{types → build}/headers.d.ts +1 -0
  9. package/build/headers.d.ts.map +1 -0
  10. package/build/headers.js +89 -0
  11. package/{types → build}/request.d.ts +1 -0
  12. package/build/request.d.ts.map +1 -0
  13. package/build/request.js +89 -0
  14. package/{types → build}/response.d.ts +21 -1
  15. package/build/response.d.ts.map +1 -0
  16. package/build/response.js +171 -0
  17. package/{types → build}/retry.d.ts +1 -0
  18. package/build/retry.d.ts.map +1 -0
  19. package/build/retry.js +95 -0
  20. package/{types → build}/snap-req.d.ts +72 -1
  21. package/build/snap-req.d.ts.map +1 -0
  22. package/build/snap-req.js +349 -0
  23. package/{types → build}/transports/fetch-transport.d.ts +1 -0
  24. package/build/transports/fetch-transport.d.ts.map +1 -0
  25. package/build/transports/fetch-transport.js +116 -0
  26. package/build/transports/fetch.d.ts +2 -0
  27. package/build/transports/fetch.d.ts.map +1 -0
  28. package/build/transports/fetch.js +3 -0
  29. package/{types → build}/transports/node-transport.d.ts +1 -0
  30. package/build/transports/node-transport.d.ts.map +1 -0
  31. package/build/transports/node-transport.js +287 -0
  32. package/build/transports/proxy-bounce-transport.d.ts +27 -0
  33. package/build/transports/proxy-bounce-transport.d.ts.map +1 -0
  34. package/build/transports/proxy-bounce-transport.js +116 -0
  35. package/{types → build}/transports/select.d.ts +1 -0
  36. package/build/transports/select.d.ts.map +1 -0
  37. package/build/transports/select.js +69 -0
  38. package/{types → build}/transports/xhr-transport.d.ts +1 -0
  39. package/build/transports/xhr-transport.d.ts.map +1 -0
  40. package/build/transports/xhr-transport.js +93 -0
  41. package/build/transports/xhr.d.ts +2 -0
  42. package/build/transports/xhr.d.ts.map +1 -0
  43. package/build/transports/xhr.js +3 -0
  44. package/{types → build}/websocket/websocket-channel.d.ts +1 -0
  45. package/build/websocket/websocket-channel.d.ts.map +1 -0
  46. package/build/websocket/websocket-channel.js +162 -0
  47. package/{types → build}/websocket/websocket-client.d.ts +1 -0
  48. package/build/websocket/websocket-client.d.ts.map +1 -0
  49. package/build/websocket/websocket-client.js +920 -0
  50. package/{types → build}/websocket/websocket-connection.d.ts +1 -0
  51. package/build/websocket/websocket-connection.d.ts.map +1 -0
  52. package/build/websocket/websocket-connection.js +148 -0
  53. package/build/websocket.d.ts +3 -0
  54. package/build/websocket.d.ts.map +1 -0
  55. package/build/websocket.js +4 -0
  56. package/package.json +20 -23
  57. package/src/errors.js +0 -69
  58. package/src/headers.js +0 -92
  59. package/src/request.js +0 -104
  60. package/src/response.js +0 -156
  61. package/src/retry.js +0 -105
  62. package/src/snap-req.js +0 -248
  63. package/src/transports/fetch-transport.js +0 -128
  64. package/src/transports/node-transport.js +0 -323
  65. package/src/transports/select.js +0 -73
  66. package/src/transports/xhr-transport.js +0 -112
  67. package/src/websocket/websocket-channel.js +0 -176
  68. package/src/websocket/websocket-client.js +0 -1034
  69. package/src/websocket/websocket-connection.js +0 -154
@@ -0,0 +1,69 @@
1
+ // @ts-check
2
+ import { SnapReqError } from "../errors.js";
3
+ import FetchTransport from "./fetch-transport.js";
4
+ import XhrTransport from "./xhr-transport.js";
5
+ /**
6
+ * @typedef {"auto" | "node" | "fetch" | "xhr"} TransportName
7
+ */
8
+ /**
9
+ * @typedef {object} Transport
10
+ * @property {import("../capabilities.js").TransportCapabilities} capabilities - Supported capabilities.
11
+ * @property {(request: import("../snap-req.js").NormalizedRequest) => Promise<import("../response.js").default>} performRequest - Perform a request.
12
+ * @property {() => void} [close] - Optional resource cleanup.
13
+ */
14
+ /**
15
+ * Detects the JavaScript runtime so `auto` can pick the right transport.
16
+ * @returns {"node" | "react-native" | "browser" | "unknown"} - Detected runtime.
17
+ */
18
+ export function detectRuntime() {
19
+ const navigatorRef = /** @type {any} */ (globalThis).navigator;
20
+ if (navigatorRef && navigatorRef.product === "ReactNative")
21
+ return "react-native";
22
+ if (typeof process !== "undefined" && Boolean(process.versions?.node))
23
+ return "node";
24
+ if (typeof window !== "undefined" && typeof document !== "undefined")
25
+ return "browser";
26
+ return "unknown";
27
+ }
28
+ /**
29
+ * @param {object} config - Node transport configuration.
30
+ * @returns {Promise<Transport>} - A Node transport instance.
31
+ */
32
+ async function createNodeTransport(config) {
33
+ const { default: NodeTransport } = await import("./node-transport.js");
34
+ return new NodeTransport(config);
35
+ }
36
+ /**
37
+ * Resolves a transport for the requested preference. Returns the preference
38
+ * untouched when it is already a transport instance. The Node transport is
39
+ * imported dynamically so web/Expo bundlers never pull in `node:*` modules.
40
+ * @param {TransportName | Transport | undefined} preference - Requested transport.
41
+ * @param {object} nodeConfig - Configuration forwarded to the Node transport.
42
+ * @returns {Promise<Transport>} - The resolved transport.
43
+ */
44
+ export async function selectTransport(preference, nodeConfig) {
45
+ if (preference && typeof preference === "object" && typeof ( /** @type {any} */(preference).performRequest) === "function") {
46
+ return /** @type {Transport} */ (preference);
47
+ }
48
+ const choice = /** @type {TransportName} */ (preference || "auto");
49
+ if (choice === "node")
50
+ return await createNodeTransport(nodeConfig);
51
+ if (choice === "fetch")
52
+ return new FetchTransport();
53
+ if (choice === "xhr")
54
+ return new XhrTransport();
55
+ if (choice !== "auto") {
56
+ throw new SnapReqError(`Unknown transport "${choice}". Use "auto", "node", "fetch", "xhr" or a transport instance.`);
57
+ }
58
+ const runtime = detectRuntime();
59
+ if (runtime === "node")
60
+ return await createNodeTransport(nodeConfig);
61
+ if (FetchTransport.isAvailable())
62
+ return new FetchTransport();
63
+ if (XhrTransport.isAvailable())
64
+ return new XhrTransport();
65
+ if (typeof process !== "undefined" && Boolean(process.versions?.node))
66
+ return await createNodeTransport(nodeConfig);
67
+ throw new SnapReqError("No suitable transport found: this platform has no fetch, XMLHttpRequest or Node http support.");
68
+ }
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RyYW5zcG9ydHMvc2VsZWN0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sY0FBYyxDQUFBO0FBQ3pDLE9BQU8sY0FBYyxNQUFNLHNCQUFzQixDQUFBO0FBQ2pELE9BQU8sWUFBWSxNQUFNLG9CQUFvQixDQUFBO0FBRTdDOztHQUVHO0FBRUg7Ozs7O0dBS0c7QUFFSDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsYUFBYTtJQUMzQixNQUFNLFlBQVksR0FBRyxrQkFBa0IsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsQ0FBQTtJQUU5RCxJQUFJLFlBQVksSUFBSSxZQUFZLENBQUMsT0FBTyxLQUFLLGFBQWE7UUFBRSxPQUFPLGNBQWMsQ0FBQTtJQUNqRixJQUFJLE9BQU8sT0FBTyxLQUFLLFdBQVcsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUM7UUFBRSxPQUFPLE1BQU0sQ0FBQTtJQUNwRixJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVcsSUFBSSxPQUFPLFFBQVEsS0FBSyxXQUFXO1FBQUUsT0FBTyxTQUFTLENBQUE7SUFFdEYsT0FBTyxTQUFTLENBQUE7QUFDbEIsQ0FBQztBQUVEOzs7R0FHRztBQUNILEtBQUssVUFBVSxtQkFBbUIsQ0FBQyxNQUFNO0lBQ3ZDLE1BQU0sRUFBQyxPQUFPLEVBQUUsYUFBYSxFQUFDLEdBQUcsTUFBTSxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQTtJQUVwRSxPQUFPLElBQUksYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0FBQ2xDLENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxlQUFlLENBQUMsVUFBVSxFQUFFLFVBQVU7SUFDMUQsSUFBSSxVQUFVLElBQUksT0FBTyxVQUFVLEtBQUssUUFBUSxJQUFJLE9BQU8sRUFBQyxrQkFBbUIsQ0FBQyxVQUFVLENBQUMsQ0FBQyxjQUFjLENBQUMsS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUMzSCxPQUFPLHdCQUF3QixDQUFDLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDOUMsQ0FBQztJQUVELE1BQU0sTUFBTSxHQUFHLDRCQUE0QixDQUFDLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQyxDQUFBO0lBRWxFLElBQUksTUFBTSxLQUFLLE1BQU07UUFBRSxPQUFPLE1BQU0sbUJBQW1CLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDbkUsSUFBSSxNQUFNLEtBQUssT0FBTztRQUFFLE9BQU8sSUFBSSxjQUFjLEVBQUUsQ0FBQTtJQUNuRCxJQUFJLE1BQU0sS0FBSyxLQUFLO1FBQUUsT0FBTyxJQUFJLFlBQVksRUFBRSxDQUFBO0lBRS9DLElBQUksTUFBTSxLQUFLLE1BQU0sRUFBRSxDQUFDO1FBQ3RCLE1BQU0sSUFBSSxZQUFZLENBQUMsc0JBQXNCLE1BQU0sZ0VBQWdFLENBQUMsQ0FBQTtJQUN0SCxDQUFDO0lBRUQsTUFBTSxPQUFPLEdBQUcsYUFBYSxFQUFFLENBQUE7SUFFL0IsSUFBSSxPQUFPLEtBQUssTUFBTTtRQUFFLE9BQU8sTUFBTSxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUNwRSxJQUFJLGNBQWMsQ0FBQyxXQUFXLEVBQUU7UUFBRSxPQUFPLElBQUksY0FBYyxFQUFFLENBQUE7SUFDN0QsSUFBSSxZQUFZLENBQUMsV0FBVyxFQUFFO1FBQUUsT0FBTyxJQUFJLFlBQVksRUFBRSxDQUFBO0lBQ3pELElBQUksT0FBTyxPQUFPLEtBQUssV0FBVyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQztRQUFFLE9BQU8sTUFBTSxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUVuSCxNQUFNLElBQUksWUFBWSxDQUFDLCtGQUErRixDQUFDLENBQUE7QUFDekgsQ0FBQyJ9
@@ -23,3 +23,4 @@ export default class XhrTransport {
23
23
  }
24
24
  import SnapReqResponse from "../response.js";
25
25
  import SnapReqHeaders from "../headers.js";
26
+ //# sourceMappingURL=xhr-transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xhr-transport.d.ts","sourceRoot":"","sources":["../../src/transports/xhr-transport.js"],"names":[],"mappings":"AAOA;;;;GAIG;AACH;IACE,0CAA0C;IAC1C,4BADc,MAAM,CAGnB;IAED,sFAAsF;IACtF,sBADc,OAAO,CAGpB;IAED,8FAA8F;IAC9F,oBADc,OAAO,oBAAoB,EAAE,qBAAqB,CAG/D;IAED;;;OAGG;IACH,wBAHW,OAAO,gBAAgB,EAAE,iBAAiB,GACxC,OAAO,CAAC,eAAe,CAAC,CA8DpC;IAED;;;OAGG;IACH,0BAHW,MAAM,GACJ,cAAc,CAc1B;CACF;4BA1G2B,gBAAgB;2BADjB,eAAe"}
@@ -0,0 +1,93 @@
1
+ // @ts-check
2
+ import { buildCapabilities } from "../capabilities.js";
3
+ import { SnapReqAbortError, SnapReqUnsupportedFeatureError } from "../errors.js";
4
+ import SnapReqHeaders from "../headers.js";
5
+ import SnapReqResponse from "../response.js";
6
+ /**
7
+ * Transport backed by `XMLHttpRequest`. A fallback for web environments that
8
+ * lack `fetch`. Buffers the whole response (no incremental streaming) and, like
9
+ * `fetch`, cannot do Unix sockets, client TLS or request-body compression.
10
+ */
11
+ export default class XhrTransport {
12
+ /** @returns {string} - Transport name. */
13
+ static get transportName() {
14
+ return "xhr";
15
+ }
16
+ /** @returns {boolean} - Whether this transport can run in the current environment. */
17
+ static isAvailable() {
18
+ return typeof XMLHttpRequest === "function";
19
+ }
20
+ /** @returns {import("../capabilities.js").TransportCapabilities} - Supported capabilities. */
21
+ get capabilities() {
22
+ return buildCapabilities({ abort: true });
23
+ }
24
+ /**
25
+ * @param {import("../snap-req.js").NormalizedRequest} request - Normalized request.
26
+ * @returns {Promise<SnapReqResponse>} - The response.
27
+ */
28
+ performRequest(request) {
29
+ if (request.bodyCompression && request.bodyCompression !== "identity") {
30
+ throw new SnapReqUnsupportedFeatureError({ feature: "request body compression", transport: "xhr" });
31
+ }
32
+ if (request.body.kind === "stream") {
33
+ throw new SnapReqUnsupportedFeatureError({ feature: "streamed request bodies", transport: "xhr" });
34
+ }
35
+ return new Promise((resolve, reject) => {
36
+ if (request.signal?.aborted) {
37
+ reject(new SnapReqAbortError());
38
+ return;
39
+ }
40
+ const xhr = new XMLHttpRequest();
41
+ xhr.open(request.method, request.url, true);
42
+ xhr.responseType = "arraybuffer";
43
+ if (request.credentials === "include")
44
+ xhr.withCredentials = true;
45
+ for (const [name, value] of request.headers.entries())
46
+ xhr.setRequestHeader(name, value);
47
+ const abort = () => xhr.abort();
48
+ request.signal?.addEventListener("abort", abort, { once: true });
49
+ const cleanup = () => request.signal?.removeEventListener("abort", abort);
50
+ xhr.onload = () => {
51
+ cleanup();
52
+ resolve(new SnapReqResponse({
53
+ url: request.url,
54
+ method: request.method,
55
+ status: xhr.status,
56
+ statusText: xhr.statusText,
57
+ headers: this._parseHeaders(xhr.getAllResponseHeaders()),
58
+ bytes: new Uint8Array(/** @type {ArrayBuffer} */ (xhr.response) || new ArrayBuffer(0))
59
+ }));
60
+ };
61
+ xhr.onerror = () => {
62
+ cleanup();
63
+ reject(new Error(`XMLHttpRequest failed for ${request.method} ${request.url}`));
64
+ };
65
+ xhr.onabort = () => {
66
+ cleanup();
67
+ reject(new SnapReqAbortError());
68
+ };
69
+ const body = request.body;
70
+ if (body.kind === "none") {
71
+ xhr.send();
72
+ }
73
+ else {
74
+ xhr.send(/** @type {any} */ (body.value));
75
+ }
76
+ });
77
+ }
78
+ /**
79
+ * @param {string} rawHeaders - Raw header block from `getAllResponseHeaders`.
80
+ * @returns {SnapReqHeaders} - The parsed response headers.
81
+ */
82
+ _parseHeaders(rawHeaders) {
83
+ const headers = new SnapReqHeaders();
84
+ for (const line of rawHeaders.trim().split(/[\r\n]+/)) {
85
+ const separatorIndex = line.indexOf(":");
86
+ if (separatorIndex === -1)
87
+ continue;
88
+ headers.set(line.slice(0, separatorIndex).trim(), line.slice(separatorIndex + 1).trim());
89
+ }
90
+ return headers;
91
+ }
92
+ }
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieGhyLXRyYW5zcG9ydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmFuc3BvcnRzL3hoci10cmFuc3BvcnQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLG9CQUFvQixDQUFBO0FBQ3BELE9BQU8sRUFBQyxpQkFBaUIsRUFBRSw4QkFBOEIsRUFBQyxNQUFNLGNBQWMsQ0FBQTtBQUM5RSxPQUFPLGNBQWMsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxlQUFlLE1BQU0sZ0JBQWdCLENBQUE7QUFFNUM7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxPQUFPLE9BQU8sWUFBWTtJQUMvQiwwQ0FBMEM7SUFDMUMsTUFBTSxLQUFLLGFBQWE7UUFDdEIsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0lBRUQsc0ZBQXNGO0lBQ3RGLE1BQU0sQ0FBQyxXQUFXO1FBQ2hCLE9BQU8sT0FBTyxjQUFjLEtBQUssVUFBVSxDQUFBO0lBQzdDLENBQUM7SUFFRCw4RkFBOEY7SUFDOUYsSUFBSSxZQUFZO1FBQ2QsT0FBTyxpQkFBaUIsQ0FBQyxFQUFDLEtBQUssRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFBO0lBQ3pDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxjQUFjLENBQUMsT0FBTztRQUNwQixJQUFJLE9BQU8sQ0FBQyxlQUFlLElBQUksT0FBTyxDQUFDLGVBQWUsS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUN0RSxNQUFNLElBQUksOEJBQThCLENBQUMsRUFBQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUE7UUFDbkcsQ0FBQztRQUVELElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDbkMsTUFBTSxJQUFJLDhCQUE4QixDQUFDLEVBQUMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLFNBQVMsRUFB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
@@ -0,0 +1,2 @@
1
+ export { default } from "./xhr-transport.js";
2
+ //# sourceMappingURL=xhr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xhr.d.ts","sourceRoot":"","sources":["../../src/transports/xhr.js"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ // @ts-check
2
+ export { default } from "./xhr-transport.js";
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieGhyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RyYW5zcG9ydHMveGhyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sb0JBQW9CLENBQUEifQ==
@@ -90,3 +90,4 @@ export default class SnapReqWebSocketChannel {
90
90
  /** @returns {boolean} - Whether the subscription is active. */
91
91
  isSubscribed(): boolean;
92
92
  }
93
+ //# sourceMappingURL=websocket-channel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket-channel.d.ts","sourceRoot":"","sources":["../../src/websocket/websocket-channel.js"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH;IACE;;;;;;;;;;;OAWG;IACH,sHAVG;QAAsD,MAAM,EAApD,OAAO,uBAAuB,EAAE,OAAO;QAC1B,cAAc,EAA3B,MAAM;QACO,WAAW,EAAxB,MAAM;QACqB,MAAM,GAAjC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;QACL,WAAW,GAAzB,MAAM;QACqB,SAAS,GAApC,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI;QACD,YAAY,GAA9B,MAAM,IAAI;QACQ,QAAQ,GAA1B,MAAM,IAAI;QACsB,OAAO,GAAvC,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI;KAClC,EAgBA;IAdC,gDAAoB;IACpB,uBAAoC;IACpC,oBAA8B;IAC9B,4BAA0B;IAC1B,oBAA8B;IAC9B,mBAXgB,GAAG,KAAK,IAAI,CAWD;IAC3B,qBAXe,IAAI,CAWc;IACjC,iBAXe,IAAI,CAWM;IACzB,mBAXkB,MAAM,KAAK,IAAI,CAWV;IACvB,gBAAmB;IACnB,8BAAiC;IACjC,qBAAwB;IACxB,wBAA2B;IAC3B,iBAAoB;IAGtB,iFAAiF;IACjF,uBADc,OAAO,CAAC,IAAI,CAAC,CAW1B;IARG,4BAA4B;IAC5B,eADW,OAAO,CAAC,IAAI,CAAC,CAItB;IAFA,yDAA4B;IAC5B,qCAA0B;IAOhC,iFAAiF;IACjF,aADc,OAAO,CAAC,IAAI,CAAC,CAG1B;IAED,sBAAsB;IACtB,sBADc,IAAI,CAMjB;IAED,sBAAsB;IACtB,iBADc,IAAI,CAGjB;IAED,sBAAsB;IACtB,qBADc,IAAI,CAKjB;IAED,sBAAsB;IACtB,sBADc,IAAI,CAGjB;IAED,4EAA4E;IAC5E,mBADc,OAAO,CAGpB;IAED;;;OAGG;IACH,qBAHW,GAAG,GACD,IAAI,CAKhB;IAED,sBAAsB;IACtB,uBADc,IAAI,CAOjB;IAED,sBAAsB;IACtB,kBADc,IAAI,CASjB;IAED;;;OAGG;IACH,sBAHW,MAAM,GACJ,IAAI,CAiBhB;IAED;;;OAGG;IACH,6BAHW;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAC,GAClB,OAAO,CAAC,IAAI,CAAC,CAWzB;IAED,sBAAsB;IACtB,SADc,IAAI,CAcjB;IAED,+DAA+D;IAC/D,YADc,OAAO,CACa;IAElC,+EAA+E;IAC/E,WADc,OAAO,CACW;IAEhC,+DAA+D;IAC/D,gBADc,OAAO,CACsC;CAC5D"}
@@ -0,0 +1,162 @@
1
+ // @ts-check
2
+ /**
3
+ * Client-side handle for a channel subscription opened via
4
+ * `SnapReqWebSocketClient.subscribeChannel()`. Mirrors the server's
5
+ * subscription lifecycle — `subscribed` (resolves `ready`) / `onMessage` /
6
+ * `onClose`.
7
+ */
8
+ export default class SnapReqWebSocketChannel {
9
+ /**
10
+ * @param {object} args - Channel arguments.
11
+ * @param {import("./websocket-client.js").default} args.client - Owning client.
12
+ * @param {string} args.subscriptionId - Generated id unique within the session.
13
+ * @param {string} args.channelType - Name the server registered the channel under.
14
+ * @param {Record<string, any>} [args.params] - Opaque params forwarded to the server.
15
+ * @param {string} [args.lastEventId] - Resume replay from this event id.
16
+ * @param {(body: any) => void} [args.onMessage] - Fired on each `channel-message` from the server.
17
+ * @param {() => void} [args.onDisconnect] - Fired when the socket drops.
18
+ * @param {() => void} [args.onResume] - Fired when the session resumes after a drop.
19
+ * @param {(reason: string) => void} [args.onClose] - Fired exactly once when the subscription closes permanently.
20
+ */
21
+ constructor({ client, subscriptionId, channelType, params, lastEventId, onMessage, onDisconnect, onResume, onClose }) {
22
+ this.client = client;
23
+ this.subscriptionId = subscriptionId;
24
+ this.channelType = channelType;
25
+ this.params = params || {};
26
+ this.lastEventId = lastEventId;
27
+ this._onMessage = onMessage;
28
+ this._onDisconnect = onDisconnect;
29
+ this._onResume = onResume;
30
+ this._onClose = onClose;
31
+ this._ready = false;
32
+ this._resumeReadyOnResume = false;
33
+ this._subscribed = false;
34
+ this._subscribeSent = false;
35
+ this._closed = false;
36
+ }
37
+ /** @returns {Promise<void>} - Resolves once the subscription is acknowledged. */
38
+ _ensureReadyPromise() {
39
+ if (!this._readyPromise || !this._resolveReady || !this._rejectReady) {
40
+ /** @type {Promise<void>} */
41
+ this._readyPromise = new Promise((resolve, reject) => {
42
+ this._resolveReady = resolve;
43
+ this._rejectReady = reject;
44
+ });
45
+ }
46
+ return this._readyPromise;
47
+ }
48
+ /** @returns {Promise<void>} - Resolves once the subscription is acknowledged. */
49
+ get ready() {
50
+ return this._ensureReadyPromise();
51
+ }
52
+ /** @returns {void} */
53
+ _resolveReadyState() {
54
+ this._ready = true;
55
+ this._resolveReady?.();
56
+ this._resolveReady = null;
57
+ this._rejectReady = null;
58
+ }
59
+ /** @returns {void} */
60
+ _markNotReady() {
61
+ this._ready = false;
62
+ }
63
+ /** @returns {void} */
64
+ _handleSubscribed() {
65
+ if (this._closed || this._subscribed)
66
+ return;
67
+ this._subscribed = true;
68
+ this._resolveReadyState();
69
+ }
70
+ /** @returns {void} */
71
+ _markSubscribeSent() {
72
+ this._subscribeSent = true;
73
+ }
74
+ /** @returns {boolean} - Whether the subscription still needs to be sent. */
75
+ _needsSubscribe() {
76
+ return !this._closed && !this._subscribeSent;
77
+ }
78
+ /**
79
+ * @param {any} body - Message payload.
80
+ * @returns {void}
81
+ */
82
+ _handleMessage(body) {
83
+ if (this._closed)
84
+ return;
85
+ this._onMessage?.(body);
86
+ }
87
+ /** @returns {void} */
88
+ _handleDisconnected() {
89
+ if (this._closed)
90
+ return;
91
+ this._resumeReadyOnResume || (this._resumeReadyOnResume = this._subscribed);
92
+ this._subscribed = false;
93
+ this._markNotReady();
94
+ this._onDisconnect?.();
95
+ }
96
+ /** @returns {void} */
97
+ _handleResumed() {
98
+ if (this._closed)
99
+ return;
100
+ if (this._resumeReadyOnResume) {
101
+ this._subscribed = true;
102
+ this._resolveReadyState();
103
+ }
104
+ this._resumeReadyOnResume = false;
105
+ this._onResume?.();
106
+ }
107
+ /**
108
+ * @param {string} reason - Why the subscription closed.
109
+ * @returns {void}
110
+ */
111
+ _handleClosed(reason) {
112
+ if (this._closed)
113
+ return;
114
+ this._closed = true;
115
+ try {
116
+ this._onClose?.(reason);
117
+ }
118
+ finally {
119
+ this._resumeReadyOnResume = false;
120
+ if (!this._ready) {
121
+ this._rejectReady?.(new Error(`Subscription closed before acknowledgement: ${reason}`));
122
+ }
123
+ this._resolveReady = null;
124
+ this._rejectReady = null;
125
+ }
126
+ }
127
+ /**
128
+ * @param {{timeoutMs?: number}} [params] - Options.
129
+ * @returns {Promise<void>} - Resolves once ready or rejects on timeout.
130
+ */
131
+ async waitForReady({ timeoutMs = 5000 } = {}) {
132
+ if (this._ready)
133
+ return;
134
+ const readyPromise = this._ensureReadyPromise();
135
+ const timeoutPromise = new Promise((_, reject) => {
136
+ setTimeout(() => reject(new Error(`Subscription not ready after ${timeoutMs}ms`)), timeoutMs);
137
+ });
138
+ await Promise.race([readyPromise, timeoutPromise]);
139
+ }
140
+ /** @returns {void} */
141
+ close() {
142
+ if (this._closed)
143
+ return;
144
+ try {
145
+ if (this.client.isOpen()) {
146
+ this.client._sendMessage({ type: "channel-unsubscribe", subscriptionId: this.subscriptionId });
147
+ }
148
+ }
149
+ catch {
150
+ // Socket already gone; server will clean up on session teardown.
151
+ }
152
+ this.client._removeChannelSubscription(this.subscriptionId);
153
+ this._handleClosed("client_unsubscribe");
154
+ }
155
+ /** @returns {boolean} - Whether the subscription is closed. */
156
+ isClosed() { return this._closed; }
157
+ /** @returns {boolean} - Whether the subscription is acknowledged and ready. */
158
+ isReady() { return this._ready; }
159
+ /** @returns {boolean} - Whether the subscription is active. */
160
+ isSubscribed() { return this._subscribed && !this._closed; }
161
+ }
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic29ja2V0LWNoYW5uZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2Vic29ja2V0L3dlYnNvY2tldC1jaGFubmVsLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWjs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxPQUFPLE9BQU8sdUJBQXVCO0lBQzFDOzs7Ozs7Ozs7OztPQVdHO0lBQ0gsWUFBWSxFQUFDLE1BQU0sRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFDO1FBQ2hILElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFBO1FBQ3BCLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFBO1FBQ3BDLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFBO1FBQzlCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxJQUFJLEVBQUUsQ0FBQTtRQUMxQixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQTtRQUM5QixJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQTtRQUMzQixJQUFJLENBQUMsYUFBYSxHQUFHLFlBQVksQ0FBQTtRQUNqQyxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQTtRQUN6QixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQTtRQUN2QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQTtRQUNuQixJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFBO1FBQ2pDLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFBO1FBQ3hCLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFBO1FBQzNCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFBO0lBQ3RCLENBQUM7SUFFRCxpRkFBaUY7SUFDakYsbUJBQW1CO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFB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
@@ -362,3 +362,4 @@ export class SnapReqWebSocketResponse {
362
362
  }
363
363
  import SnapReqWebSocketConnection from "./websocket-connection.js";
364
364
  import SnapReqWebSocketChannel from "./websocket-channel.js";
365
+ //# sourceMappingURL=websocket-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket-client.d.ts","sourceRoot":"","sources":["../../src/websocket/websocket-client.js"],"names":[],"mappings":"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"}