@replit/river 0.21.1 → 0.23.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 (63) hide show
  1. package/README.md +1 -1
  2. package/dist/{chunk-FDLAPYCK.js → chunk-DZOATC6M.js} +2 -2
  3. package/dist/{chunk-JMXO5L2X.js → chunk-MJUFKPBT.js} +354 -398
  4. package/dist/chunk-MJUFKPBT.js.map +1 -0
  5. package/dist/{chunk-5WFL722S.js → chunk-PCKHBAVP.js} +94 -3
  6. package/dist/chunk-PCKHBAVP.js.map +1 -0
  7. package/dist/{chunk-NCXUFDVL.js → chunk-VOJVLWVX.js} +360 -516
  8. package/dist/chunk-VOJVLWVX.js.map +1 -0
  9. package/dist/chunk-ZF2UFTNN.js +60 -0
  10. package/dist/chunk-ZF2UFTNN.js.map +1 -0
  11. package/dist/{connection-76c5ed01.d.ts → connection-5685d817.d.ts} +6 -4
  12. package/dist/{connection-975b25c9.d.ts → connection-7582fb92.d.ts} +1 -1
  13. package/dist/{index-dfad460e.d.ts → index-a6fe0edd.d.ts} +55 -59
  14. package/dist/logging/index.d.cts +2 -1
  15. package/dist/logging/index.d.ts +2 -1
  16. package/dist/router/index.cjs +405 -502
  17. package/dist/router/index.cjs.map +1 -1
  18. package/dist/router/index.d.cts +12 -6
  19. package/dist/router/index.d.ts +12 -6
  20. package/dist/router/index.js +4 -3
  21. package/dist/{services-9c496c6e.d.ts → services-be91b485.d.ts} +21 -52
  22. package/dist/{services-7b716dcf.d.ts → services-eb9326a1.d.ts} +21 -52
  23. package/dist/transport/impls/uds/client.cjs +197 -155
  24. package/dist/transport/impls/uds/client.cjs.map +1 -1
  25. package/dist/transport/impls/uds/client.d.cts +3 -2
  26. package/dist/transport/impls/uds/client.d.ts +3 -2
  27. package/dist/transport/impls/uds/client.js +3 -3
  28. package/dist/transport/impls/uds/server.cjs +280 -266
  29. package/dist/transport/impls/uds/server.cjs.map +1 -1
  30. package/dist/transport/impls/uds/server.d.cts +3 -2
  31. package/dist/transport/impls/uds/server.d.ts +3 -2
  32. package/dist/transport/impls/uds/server.js +3 -3
  33. package/dist/transport/impls/ws/client.cjs +251 -214
  34. package/dist/transport/impls/ws/client.cjs.map +1 -1
  35. package/dist/transport/impls/ws/client.d.cts +6 -6
  36. package/dist/transport/impls/ws/client.d.ts +6 -6
  37. package/dist/transport/impls/ws/client.js +33 -48
  38. package/dist/transport/impls/ws/client.js.map +1 -1
  39. package/dist/transport/impls/ws/server.cjs +302 -280
  40. package/dist/transport/impls/ws/server.cjs.map +1 -1
  41. package/dist/transport/impls/ws/server.d.cts +5 -4
  42. package/dist/transport/impls/ws/server.d.ts +5 -4
  43. package/dist/transport/impls/ws/server.js +3 -3
  44. package/dist/transport/impls/ws/server.js.map +1 -1
  45. package/dist/transport/index.cjs +400 -396
  46. package/dist/transport/index.cjs.map +1 -1
  47. package/dist/transport/index.d.cts +25 -14
  48. package/dist/transport/index.d.ts +25 -14
  49. package/dist/transport/index.js +2 -2
  50. package/dist/util/testHelpers.cjs +59 -14
  51. package/dist/util/testHelpers.cjs.map +1 -1
  52. package/dist/util/testHelpers.d.cts +14 -5
  53. package/dist/util/testHelpers.d.ts +14 -5
  54. package/dist/util/testHelpers.js +12 -5
  55. package/dist/util/testHelpers.js.map +1 -1
  56. package/dist/wslike-e0b32dd5.d.ts +40 -0
  57. package/package.json +4 -5
  58. package/dist/chunk-3Y7AB5EB.js +0 -42
  59. package/dist/chunk-3Y7AB5EB.js.map +0 -1
  60. package/dist/chunk-5WFL722S.js.map +0 -1
  61. package/dist/chunk-JMXO5L2X.js.map +0 -1
  62. package/dist/chunk-NCXUFDVL.js.map +0 -1
  63. /package/dist/{chunk-FDLAPYCK.js.map → chunk-DZOATC6M.js.map} +0 -0
@@ -1,22 +1,21 @@
1
1
  import {
2
2
  WebSocketConnection
3
- } from "../../../chunk-3Y7AB5EB.js";
3
+ } from "../../../chunk-ZF2UFTNN.js";
4
4
  import {
5
5
  ClientTransport
6
- } from "../../../chunk-JMXO5L2X.js";
7
- import "../../../chunk-5WFL722S.js";
6
+ } from "../../../chunk-MJUFKPBT.js";
7
+ import "../../../chunk-PCKHBAVP.js";
8
8
  import {
9
9
  log
10
10
  } from "../../../chunk-OTQNCLFH.js";
11
11
  import "../../../chunk-3AW3IXVD.js";
12
12
 
13
13
  // transport/impls/ws/client.ts
14
- import WebSocket from "agnostic-ws";
15
14
  var WebSocketClientTransport = class extends ClientTransport {
16
15
  /**
17
16
  * A function that returns a Promise that resolves to a websocket URL.
18
17
  */
19
- urlGetter;
18
+ wsGetter;
20
19
  /**
21
20
  * Creates a new WebSocketClientTransport instance.
22
21
  * @param wsGetter A function that returns a Promise that resolves to a WebSocket instance.
@@ -24,53 +23,39 @@ var WebSocketClientTransport = class extends ClientTransport {
24
23
  * @param serverId The ID of the server this transport is connecting to.
25
24
  * @param providedOptions An optional object containing configuration options for the transport.
26
25
  */
27
- constructor(urlGetter, clientId, providedOptions) {
26
+ constructor(wsGetter, clientId, providedOptions) {
28
27
  super(clientId, providedOptions);
29
- this.urlGetter = urlGetter;
28
+ this.wsGetter = wsGetter;
30
29
  }
31
30
  async createNewOutgoingConnection(to) {
32
- const wsRes = await new Promise((resolve) => {
33
- log?.info(`establishing a new websocket to ${to}`, {
34
- clientId: this.clientId,
35
- connectedTo: to
36
- });
37
- Promise.resolve(this.urlGetter(to)).then((url) => new WebSocket(url)).then((ws) => {
38
- if (ws.readyState === WebSocket.OPEN) {
39
- resolve({ ws });
40
- return;
41
- }
42
- if (ws.readyState === WebSocket.CLOSING || ws.readyState === WebSocket.CLOSED) {
43
- resolve({ err: "ws is closing or closed" });
44
- return;
45
- }
46
- ws.onopen = () => {
47
- resolve({ ws });
48
- };
49
- ws.onclose = (evt) => {
50
- resolve({ err: evt.reason });
51
- };
52
- ws.onerror = (evt) => {
53
- const err = evt.error;
54
- resolve({
55
- err: `${err.name}: ${err.message}`
56
- });
57
- };
58
- }).catch((e) => {
59
- const reason = e instanceof Error ? e.message : "unknown reason";
60
- resolve({ err: `couldn't get a new websocket: ${reason}` });
61
- });
31
+ log?.info(`establishing a new websocket to ${to}`, {
32
+ clientId: this.clientId,
33
+ connectedTo: to
62
34
  });
63
- if ("ws" in wsRes) {
64
- const conn = new WebSocketConnection(wsRes.ws);
65
- log?.info(`raw websocket to ${to} ok, starting handshake`, {
66
- clientId: this.clientId,
67
- connectedTo: to
68
- });
69
- this.handleConnection(conn, to);
70
- return conn;
71
- } else {
72
- throw new Error(wsRes.err);
73
- }
35
+ const ws = await this.wsGetter(to);
36
+ await new Promise((resolve, reject) => {
37
+ if (ws.readyState === ws.OPEN) {
38
+ resolve();
39
+ return;
40
+ }
41
+ if (ws.readyState === ws.CLOSING || ws.readyState === ws.CLOSED) {
42
+ reject(new Error("ws is closing or closed"));
43
+ return;
44
+ }
45
+ ws.onopen = () => {
46
+ resolve();
47
+ };
48
+ ws.onclose = (evt) => {
49
+ reject(new Error(evt.reason));
50
+ };
51
+ });
52
+ const conn = new WebSocketConnection(ws);
53
+ log?.info(`raw websocket to ${to} ok, starting handshake`, {
54
+ clientId: this.clientId,
55
+ connectedTo: to
56
+ });
57
+ this.handleConnection(conn, to);
58
+ return conn;
74
59
  }
75
60
  };
76
61
  export {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../transport/impls/ws/client.ts"],"sourcesContent":["import WebSocket, { CloseEvent, ErrorEvent } from 'agnostic-ws';\nimport {\n ClientTransport,\n ProvidedClientTransportOptions,\n} from '../../transport';\nimport { TransportClientId } from '../../message';\nimport { log } from '../../../logging/log';\nimport { WebSocketConnection } from './connection';\n\ntype WebSocketResult = { ws: WebSocket } | { err: string };\ntype UrlGetter = (to: TransportClientId) => Promise<string> | string;\n\n/**\n * A transport implementation that uses a WebSocket connection with automatic reconnection.\n * @class\n * @extends Transport\n */\nexport class WebSocketClientTransport extends ClientTransport<WebSocketConnection> {\n /**\n * A function that returns a Promise that resolves to a websocket URL.\n */\n urlGetter: (to: TransportClientId) => Promise<string> | string;\n\n /**\n * Creates a new WebSocketClientTransport instance.\n * @param wsGetter A function that returns a Promise that resolves to a WebSocket instance.\n * @param clientId The ID of the client using the transport. This should be unique per session.\n * @param serverId The ID of the server this transport is connecting to.\n * @param providedOptions An optional object containing configuration options for the transport.\n */\n constructor(\n urlGetter: UrlGetter,\n clientId: TransportClientId,\n providedOptions?: ProvidedClientTransportOptions,\n ) {\n super(clientId, providedOptions);\n this.urlGetter = urlGetter;\n }\n\n async createNewOutgoingConnection(to: string) {\n // get a promise to an actual websocket that's ready\n const wsRes = await new Promise<WebSocketResult>((resolve) => {\n log?.info(`establishing a new websocket to ${to}`, {\n clientId: this.clientId,\n connectedTo: to,\n });\n\n Promise.resolve(this.urlGetter(to))\n .then((url) => new WebSocket(url))\n .then((ws) => {\n if (ws.readyState === WebSocket.OPEN) {\n resolve({ ws });\n return;\n }\n\n if (\n ws.readyState === WebSocket.CLOSING ||\n ws.readyState === WebSocket.CLOSED\n ) {\n resolve({ err: 'ws is closing or closed' });\n return;\n }\n\n ws.onopen = () => {\n resolve({ ws });\n };\n\n ws.onclose = (evt: CloseEvent) => {\n resolve({ err: evt.reason });\n };\n\n ws.onerror = (evt: ErrorEvent) => {\n const err = evt.error;\n resolve({\n err: `${err.name}: ${err.message}`,\n });\n };\n })\n .catch((e) => {\n const reason = e instanceof Error ? e.message : 'unknown reason';\n resolve({ err: `couldn't get a new websocket: ${reason}` });\n });\n });\n\n if ('ws' in wsRes) {\n const conn = new WebSocketConnection(wsRes.ws);\n log?.info(`raw websocket to ${to} ok, starting handshake`, {\n clientId: this.clientId,\n connectedTo: to,\n });\n\n this.handleConnection(conn, to);\n return conn;\n } else {\n throw new Error(wsRes.err);\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;AAAA,OAAO,eAA2C;AAiB3C,IAAM,2BAAN,cAAuC,gBAAqC;AAAA;AAAA;AAAA;AAAA,EAIjF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,YACE,WACA,UACA,iBACA;AACA,UAAM,UAAU,eAAe;AAC/B,SAAK,YAAY;AAAA,EACnB;AAAA,EAEA,MAAM,4BAA4B,IAAY;AAE5C,UAAM,QAAQ,MAAM,IAAI,QAAyB,CAAC,YAAY;AAC5D,WAAK,KAAK,mCAAmC,EAAE,IAAI;AAAA,QACjD,UAAU,KAAK;AAAA,QACf,aAAa;AAAA,MACf,CAAC;AAED,cAAQ,QAAQ,KAAK,UAAU,EAAE,CAAC,EAC/B,KAAK,CAAC,QAAQ,IAAI,UAAU,GAAG,CAAC,EAChC,KAAK,CAAC,OAAO;AACZ,YAAI,GAAG,eAAe,UAAU,MAAM;AACpC,kBAAQ,EAAE,GAAG,CAAC;AACd;AAAA,QACF;AAEA,YACE,GAAG,eAAe,UAAU,WAC5B,GAAG,eAAe,UAAU,QAC5B;AACA,kBAAQ,EAAE,KAAK,0BAA0B,CAAC;AAC1C;AAAA,QACF;AAEA,WAAG,SAAS,MAAM;AAChB,kBAAQ,EAAE,GAAG,CAAC;AAAA,QAChB;AAEA,WAAG,UAAU,CAAC,QAAoB;AAChC,kBAAQ,EAAE,KAAK,IAAI,OAAO,CAAC;AAAA,QAC7B;AAEA,WAAG,UAAU,CAAC,QAAoB;AAChC,gBAAM,MAAM,IAAI;AAChB,kBAAQ;AAAA,YACN,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,OAAO;AAAA,UAClC,CAAC;AAAA,QACH;AAAA,MACF,CAAC,EACA,MAAM,CAAC,MAAM;AACZ,cAAM,SAAS,aAAa,QAAQ,EAAE,UAAU;AAChD,gBAAQ,EAAE,KAAK,iCAAiC,MAAM,GAAG,CAAC;AAAA,MAC5D,CAAC;AAAA,IACL,CAAC;AAED,QAAI,QAAQ,OAAO;AACjB,YAAM,OAAO,IAAI,oBAAoB,MAAM,EAAE;AAC7C,WAAK,KAAK,oBAAoB,EAAE,2BAA2B;AAAA,QACzD,UAAU,KAAK;AAAA,QACf,aAAa;AAAA,MACf,CAAC;AAED,WAAK,iBAAiB,MAAM,EAAE;AAC9B,aAAO;AAAA,IACT,OAAO;AACL,YAAM,IAAI,MAAM,MAAM,GAAG;AAAA,IAC3B;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../../transport/impls/ws/client.ts"],"sourcesContent":["import {\n ClientTransport,\n ProvidedClientTransportOptions,\n} from '../../transport';\nimport { TransportClientId } from '../../message';\nimport { log } from '../../../logging/log';\nimport { WebSocketConnection } from './connection';\nimport { WsLike } from './wslike';\n\n/**\n * A transport implementation that uses a WebSocket connection with automatic reconnection.\n * @class\n * @extends Transport\n */\nexport class WebSocketClientTransport extends ClientTransport<WebSocketConnection> {\n /**\n * A function that returns a Promise that resolves to a websocket URL.\n */\n wsGetter: (to: TransportClientId) => Promise<WsLike> | WsLike;\n\n /**\n * Creates a new WebSocketClientTransport instance.\n * @param wsGetter A function that returns a Promise that resolves to a WebSocket instance.\n * @param clientId The ID of the client using the transport. This should be unique per session.\n * @param serverId The ID of the server this transport is connecting to.\n * @param providedOptions An optional object containing configuration options for the transport.\n */\n constructor(\n wsGetter: (to: TransportClientId) => Promise<WsLike> | WsLike,\n clientId: TransportClientId,\n providedOptions?: ProvidedClientTransportOptions,\n ) {\n super(clientId, providedOptions);\n this.wsGetter = wsGetter;\n }\n\n async createNewOutgoingConnection(to: string) {\n log?.info(`establishing a new websocket to ${to}`, {\n clientId: this.clientId,\n connectedTo: to,\n });\n\n const ws = await this.wsGetter(to);\n\n await new Promise<void>((resolve, reject) => {\n if (ws.readyState === ws.OPEN) {\n resolve();\n return;\n }\n\n if (ws.readyState === ws.CLOSING || ws.readyState === ws.CLOSED) {\n reject(new Error('ws is closing or closed'));\n return;\n }\n\n ws.onopen = () => {\n resolve();\n };\n\n ws.onclose = (evt) => {\n reject(new Error(evt.reason));\n };\n });\n\n const conn = new WebSocketConnection(ws);\n log?.info(`raw websocket to ${to} ok, starting handshake`, {\n clientId: this.clientId,\n connectedTo: to,\n });\n\n this.handleConnection(conn, to);\n return conn;\n }\n}\n"],"mappings":";;;;;;;;;;;;;AAcO,IAAM,2BAAN,cAAuC,gBAAqC;AAAA;AAAA;AAAA;AAAA,EAIjF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,YACE,UACA,UACA,iBACA;AACA,UAAM,UAAU,eAAe;AAC/B,SAAK,WAAW;AAAA,EAClB;AAAA,EAEA,MAAM,4BAA4B,IAAY;AAC5C,SAAK,KAAK,mCAAmC,EAAE,IAAI;AAAA,MACjD,UAAU,KAAK;AAAA,MACf,aAAa;AAAA,IACf,CAAC;AAED,UAAM,KAAK,MAAM,KAAK,SAAS,EAAE;AAEjC,UAAM,IAAI,QAAc,CAAC,SAAS,WAAW;AAC3C,UAAI,GAAG,eAAe,GAAG,MAAM;AAC7B,gBAAQ;AACR;AAAA,MACF;AAEA,UAAI,GAAG,eAAe,GAAG,WAAW,GAAG,eAAe,GAAG,QAAQ;AAC/D,eAAO,IAAI,MAAM,yBAAyB,CAAC;AAC3C;AAAA,MACF;AAEA,SAAG,SAAS,MAAM;AAChB,gBAAQ;AAAA,MACV;AAEA,SAAG,UAAU,CAAC,QAAQ;AACpB,eAAO,IAAI,MAAM,IAAI,MAAM,CAAC;AAAA,MAC9B;AAAA,IACF,CAAC;AAED,UAAM,OAAO,IAAI,oBAAoB,EAAE;AACvC,SAAK,KAAK,oBAAoB,EAAE,2BAA2B;AAAA,MACzD,UAAU,KAAK;AAAA,MACf,aAAa;AAAA,IACf,CAAC;AAED,SAAK,iBAAiB,MAAM,EAAE;AAC9B,WAAO;AAAA,EACT;AACF;","names":[]}