@replit/river 0.201.0 → 0.203.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 (44) hide show
  1. package/dist/{chunk-UBUD2LMZ.js → chunk-D5EIDBUT.js} +3 -3
  2. package/dist/{chunk-OZ3ITXW5.js → chunk-DGT3MPD4.js} +13 -3
  3. package/dist/chunk-DGT3MPD4.js.map +1 -0
  4. package/dist/{chunk-PJ4GJ5CU.js → chunk-FG22HHCY.js} +11 -4
  5. package/dist/chunk-FG22HHCY.js.map +1 -0
  6. package/dist/{chunk-7IUEEQP7.js → chunk-SZHNMLKC.js} +2 -2
  7. package/dist/{chunk-7IUEEQP7.js.map → chunk-SZHNMLKC.js.map} +1 -1
  8. package/dist/{chunk-52DVJUVZ.js → chunk-XBPEUVWN.js} +2 -2
  9. package/dist/{client-a32692b0.d.ts → client-5d2e41a3.d.ts} +7 -1
  10. package/dist/{connection-48d021ca.d.ts → connection-11a4af0f.d.ts} +1 -1
  11. package/dist/{context-8d263a7f.d.ts → context-d6dd8a1a.d.ts} +14 -0
  12. package/dist/router/index.cjs +27 -9
  13. package/dist/router/index.cjs.map +1 -1
  14. package/dist/router/index.d.cts +9 -8
  15. package/dist/router/index.d.ts +9 -8
  16. package/dist/router/index.js +27 -9
  17. package/dist/router/index.js.map +1 -1
  18. package/dist/{server-48d90a77.d.ts → server-e46399f9.d.ts} +1 -1
  19. package/dist/{services-e71ea921.d.ts → services-56cbea0d.d.ts} +9 -4
  20. package/dist/testUtil/index.cjs +20 -3
  21. package/dist/testUtil/index.cjs.map +1 -1
  22. package/dist/testUtil/index.d.cts +5 -5
  23. package/dist/testUtil/index.d.ts +5 -5
  24. package/dist/testUtil/index.js +4 -4
  25. package/dist/transport/impls/ws/client.cjs +20 -3
  26. package/dist/transport/impls/ws/client.cjs.map +1 -1
  27. package/dist/transport/impls/ws/client.d.cts +3 -3
  28. package/dist/transport/impls/ws/client.d.ts +3 -3
  29. package/dist/transport/impls/ws/client.js +4 -4
  30. package/dist/transport/impls/ws/server.cjs +10 -3
  31. package/dist/transport/impls/ws/server.cjs.map +1 -1
  32. package/dist/transport/impls/ws/server.d.cts +3 -3
  33. package/dist/transport/impls/ws/server.d.ts +3 -3
  34. package/dist/transport/impls/ws/server.js +4 -4
  35. package/dist/transport/index.cjs +20 -3
  36. package/dist/transport/index.cjs.map +1 -1
  37. package/dist/transport/index.d.cts +4 -4
  38. package/dist/transport/index.d.ts +4 -4
  39. package/dist/transport/index.js +4 -4
  40. package/package.json +1 -1
  41. package/dist/chunk-OZ3ITXW5.js.map +0 -1
  42. package/dist/chunk-PJ4GJ5CU.js.map +0 -1
  43. /package/dist/{chunk-UBUD2LMZ.js.map → chunk-D5EIDBUT.js.map} +0 -0
  44. /package/dist/{chunk-52DVJUVZ.js.map → chunk-XBPEUVWN.js.map} +0 -0
@@ -284,9 +284,15 @@ var ServiceSchema = class _ServiceSchema {
284
284
  * for you.
285
285
  */
286
286
  instantiate(extendedContext) {
287
+ const state = this.initializeState(extendedContext);
288
+ const dispose = async () => {
289
+ await state[Symbol.asyncDispose]?.();
290
+ state[Symbol.dispose]?.();
291
+ };
287
292
  return Object.freeze({
288
- state: this.initializeState(extendedContext),
289
- procedures: this.procedures
293
+ state,
294
+ procedures: this.procedures,
295
+ [Symbol.asyncDispose]: dispose
290
296
  });
291
297
  }
292
298
  };
@@ -605,7 +611,7 @@ function unwrapOrThrow(result) {
605
611
  var import_api = require("@opentelemetry/api");
606
612
 
607
613
  // package.json
608
- var version = "0.201.0";
614
+ var version = "0.203.0";
609
615
 
610
616
  // tracing/index.ts
611
617
  function getPropagationContext(ctx) {
@@ -1181,6 +1187,7 @@ var RiverServer = class {
1181
1187
  maxCancelledStreamTombstonesPerSession;
1182
1188
  streams;
1183
1189
  services;
1190
+ unregisterTransportListeners;
1184
1191
  constructor(transport, services, handshakeOptions, extendedContext, maxCancelledStreamTombstonesPerSession = 200) {
1185
1192
  const instances = {};
1186
1193
  this.services = instances;
@@ -1248,6 +1255,9 @@ var RiverServer = class {
1248
1255
  const handleTransportStatus = (evt) => {
1249
1256
  if (evt.status !== "closed")
1250
1257
  return;
1258
+ this.unregisterTransportListeners();
1259
+ };
1260
+ this.unregisterTransportListeners = () => {
1251
1261
  this.transport.removeEventListener("message", handleCreatingNewStreams);
1252
1262
  this.transport.removeEventListener("sessionStatus", handleSessionStatus);
1253
1263
  this.transport.removeEventListener(
@@ -1478,11 +1488,12 @@ var RiverServer = class {
1478
1488
  if (procClosesWithInit) {
1479
1489
  closeReadable();
1480
1490
  }
1481
- const handlerContext = {
1491
+ const handlerContextWithSpan = (span) => ({
1482
1492
  ...serviceContext,
1483
1493
  from,
1484
1494
  sessionId,
1485
1495
  metadata: sessionMetadata,
1496
+ span,
1486
1497
  cancel: () => {
1487
1498
  onServerCancel({
1488
1499
  code: CANCEL_CODE,
@@ -1490,7 +1501,7 @@ var RiverServer = class {
1490
1501
  });
1491
1502
  },
1492
1503
  signal: finishedController.signal
1493
- };
1504
+ });
1494
1505
  switch (procedure.type) {
1495
1506
  case "rpc":
1496
1507
  void createHandlerSpan(
@@ -1502,7 +1513,7 @@ var RiverServer = class {
1502
1513
  async (span) => {
1503
1514
  try {
1504
1515
  const responsePayload = await procedure.handler({
1505
- ctx: handlerContext,
1516
+ ctx: handlerContextWithSpan(span),
1506
1517
  reqInit: initPayload
1507
1518
  });
1508
1519
  if (resWritable.isClosed()) {
@@ -1527,7 +1538,7 @@ var RiverServer = class {
1527
1538
  async (span) => {
1528
1539
  try {
1529
1540
  await procedure.handler({
1530
- ctx: handlerContext,
1541
+ ctx: handlerContextWithSpan(span),
1531
1542
  reqInit: initPayload,
1532
1543
  reqReadable,
1533
1544
  resWritable
@@ -1550,7 +1561,7 @@ var RiverServer = class {
1550
1561
  async (span) => {
1551
1562
  try {
1552
1563
  await procedure.handler({
1553
- ctx: handlerContext,
1564
+ ctx: handlerContextWithSpan(span),
1554
1565
  reqInit: initPayload,
1555
1566
  resWritable
1556
1567
  });
@@ -1572,7 +1583,7 @@ var RiverServer = class {
1572
1583
  async (span) => {
1573
1584
  try {
1574
1585
  const responsePayload = await procedure.handler({
1575
- ctx: handlerContext,
1586
+ ctx: handlerContextWithSpan(span),
1576
1587
  reqInit: initPayload,
1577
1588
  reqReadable
1578
1589
  });
@@ -1785,6 +1796,13 @@ var RiverServer = class {
1785
1796
  const msg = cancelMessage(streamId, payload);
1786
1797
  sessionScopedSend(msg);
1787
1798
  }
1799
+ async close() {
1800
+ this.unregisterTransportListeners();
1801
+ for (const serviceName of Object.keys(this.services)) {
1802
+ const service = this.services[serviceName];
1803
+ await service[Symbol.asyncDispose]();
1804
+ }
1805
+ }
1788
1806
  };
1789
1807
  var LRUSet = class {
1790
1808
  items;