@replit/river 0.21.0 → 0.22.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.
- package/README.md +1 -1
- package/dist/{chunk-5WFL722S.js → chunk-3MFX6NXA.js} +94 -3
- package/dist/chunk-3MFX6NXA.js.map +1 -0
- package/dist/{chunk-NFV77C2M.js → chunk-GCLEWC26.js} +340 -507
- package/dist/chunk-GCLEWC26.js.map +1 -0
- package/dist/chunk-HUBFYN37.js +60 -0
- package/dist/chunk-HUBFYN37.js.map +1 -0
- package/dist/{chunk-DT5JS6TM.js → chunk-OTQNCLFH.js} +1 -1
- package/dist/chunk-OTQNCLFH.js.map +1 -0
- package/dist/{chunk-MJR36SUY.js → chunk-S3YKQT4J.js} +2 -2
- package/dist/{chunk-QU2EE6YU.js → chunk-ZPBWKBM5.js} +361 -394
- package/dist/chunk-ZPBWKBM5.js.map +1 -0
- package/dist/{connection-8a71dbe2.d.ts → connection-8b059ac4.d.ts} +6 -4
- package/dist/{connection-d49d5d56.d.ts → connection-bbfe1147.d.ts} +1 -1
- package/dist/{index-3ac92295.d.ts → index-2ece5234.d.ts} +18 -7
- package/dist/logging/index.cjs.map +1 -1
- package/dist/logging/index.d.cts +2 -1
- package/dist/logging/index.d.ts +2 -1
- package/dist/logging/index.js +1 -1
- package/dist/router/index.cjs +384 -492
- package/dist/router/index.cjs.map +1 -1
- package/dist/router/index.d.cts +5 -4
- package/dist/router/index.d.ts +5 -4
- package/dist/router/index.js +5 -4
- package/dist/{services-abc077db.d.ts → services-acbcc441.d.ts} +1 -1
- package/dist/{services-8496d6e8.d.ts → services-cb01a7a8.d.ts} +1 -1
- package/dist/transport/impls/uds/client.cjs +202 -155
- package/dist/transport/impls/uds/client.cjs.map +1 -1
- package/dist/transport/impls/uds/client.d.cts +3 -2
- package/dist/transport/impls/uds/client.d.ts +3 -2
- package/dist/transport/impls/uds/client.js +4 -4
- package/dist/transport/impls/uds/server.cjs +295 -264
- package/dist/transport/impls/uds/server.cjs.map +1 -1
- package/dist/transport/impls/uds/server.d.cts +3 -2
- package/dist/transport/impls/uds/server.d.ts +3 -2
- package/dist/transport/impls/uds/server.js +4 -4
- package/dist/transport/impls/ws/client.cjs +256 -214
- package/dist/transport/impls/ws/client.cjs.map +1 -1
- package/dist/transport/impls/ws/client.d.cts +6 -6
- package/dist/transport/impls/ws/client.d.ts +6 -6
- package/dist/transport/impls/ws/client.js +34 -49
- package/dist/transport/impls/ws/client.js.map +1 -1
- package/dist/transport/impls/ws/server.cjs +317 -278
- package/dist/transport/impls/ws/server.cjs.map +1 -1
- package/dist/transport/impls/ws/server.d.cts +5 -4
- package/dist/transport/impls/ws/server.d.ts +5 -4
- package/dist/transport/impls/ws/server.js +4 -4
- package/dist/transport/impls/ws/server.js.map +1 -1
- package/dist/transport/index.cjs +406 -391
- package/dist/transport/index.cjs.map +1 -1
- package/dist/transport/index.d.cts +5 -5
- package/dist/transport/index.d.ts +5 -5
- package/dist/transport/index.js +3 -3
- package/dist/util/testHelpers.cjs +71 -19
- package/dist/util/testHelpers.cjs.map +1 -1
- package/dist/util/testHelpers.d.cts +20 -8
- package/dist/util/testHelpers.d.ts +20 -8
- package/dist/util/testHelpers.js +13 -12
- package/dist/util/testHelpers.js.map +1 -1
- package/dist/wslike-e0b32dd5.d.ts +40 -0
- package/package.json +4 -5
- package/dist/chunk-2ERP6FUE.js +0 -42
- package/dist/chunk-2ERP6FUE.js.map +0 -1
- package/dist/chunk-5WFL722S.js.map +0 -1
- package/dist/chunk-DT5JS6TM.js.map +0 -1
- package/dist/chunk-NFV77C2M.js.map +0 -1
- package/dist/chunk-QU2EE6YU.js.map +0 -1
- /package/dist/{chunk-MJR36SUY.js.map → chunk-S3YKQT4J.js.map} +0 -0
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
2
3
|
var __defProp = Object.defineProperty;
|
|
3
4
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
5
7
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
8
|
var __export = (target, all) => {
|
|
7
9
|
for (var name in all)
|
|
@@ -15,6 +17,14 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
15
17
|
}
|
|
16
18
|
return to;
|
|
17
19
|
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
18
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
29
|
|
|
20
30
|
// util/testHelpers.ts
|
|
@@ -25,6 +35,7 @@ __export(testHelpers_exports, {
|
|
|
25
35
|
asClientSubscription: () => asClientSubscription,
|
|
26
36
|
asClientUpload: () => asClientUpload,
|
|
27
37
|
createDummyTransportMessage: () => createDummyTransportMessage,
|
|
38
|
+
createLocalWebSocketClient: () => createLocalWebSocketClient,
|
|
28
39
|
createWebSocketServer: () => createWebSocketServer,
|
|
29
40
|
getUnixSocketPath: () => getUnixSocketPath,
|
|
30
41
|
iterNext: () => iterNext,
|
|
@@ -35,7 +46,7 @@ __export(testHelpers_exports, {
|
|
|
35
46
|
waitForMessage: () => waitForMessage
|
|
36
47
|
});
|
|
37
48
|
module.exports = __toCommonJS(testHelpers_exports);
|
|
38
|
-
var import_ws = require("ws");
|
|
49
|
+
var import_ws = __toESM(require("ws"), 1);
|
|
39
50
|
|
|
40
51
|
// node_modules/p-defer/index.js
|
|
41
52
|
function pDefer() {
|
|
@@ -330,10 +341,41 @@ var RiverUncaughtSchema = import_typebox.Type.Object({
|
|
|
330
341
|
]),
|
|
331
342
|
message: import_typebox.Type.String()
|
|
332
343
|
});
|
|
344
|
+
function Err(error) {
|
|
345
|
+
return {
|
|
346
|
+
ok: false,
|
|
347
|
+
payload: error
|
|
348
|
+
};
|
|
349
|
+
}
|
|
333
350
|
|
|
334
351
|
// logging/log.ts
|
|
335
352
|
var log = void 0;
|
|
336
353
|
|
|
354
|
+
// tracing/index.ts
|
|
355
|
+
var import_api = require("@opentelemetry/api");
|
|
356
|
+
|
|
357
|
+
// package.json
|
|
358
|
+
var version = "0.22.0";
|
|
359
|
+
|
|
360
|
+
// tracing/index.ts
|
|
361
|
+
function createSessionTelemetryInfo(session, propagationCtx) {
|
|
362
|
+
const ctx = propagationCtx ? import_api.propagation.extract(import_api.context.active(), propagationCtx) : import_api.context.active();
|
|
363
|
+
const span = tracer.startSpan(
|
|
364
|
+
`session ${session.id}`,
|
|
365
|
+
{
|
|
366
|
+
attributes: {
|
|
367
|
+
component: "river",
|
|
368
|
+
"river.session.id": session.id,
|
|
369
|
+
"river.session.to": session.to,
|
|
370
|
+
"river.session.from": session.from
|
|
371
|
+
}
|
|
372
|
+
},
|
|
373
|
+
ctx
|
|
374
|
+
);
|
|
375
|
+
return { span, ctx };
|
|
376
|
+
}
|
|
377
|
+
var tracer = import_api.trace.getTracer("river", version);
|
|
378
|
+
|
|
337
379
|
// util/stringify.ts
|
|
338
380
|
function coerceErrorString(err) {
|
|
339
381
|
if (err instanceof Error) {
|
|
@@ -347,11 +389,13 @@ var import_nanoid2 = require("nanoid");
|
|
|
347
389
|
|
|
348
390
|
// transport/session.ts
|
|
349
391
|
var import_nanoid = require("nanoid");
|
|
392
|
+
var import_api2 = require("@opentelemetry/api");
|
|
350
393
|
var nanoid = (0, import_nanoid.customAlphabet)("1234567890abcdefghijklmnopqrstuvxyz", 6);
|
|
351
394
|
var unsafeId = () => nanoid();
|
|
352
395
|
var Session = class {
|
|
353
396
|
codec;
|
|
354
397
|
options;
|
|
398
|
+
telemetry;
|
|
355
399
|
/**
|
|
356
400
|
* The buffer of messages that have been sent but not yet acknowledged.
|
|
357
401
|
*/
|
|
@@ -398,7 +442,7 @@ var Session = class {
|
|
|
398
442
|
* The interval for sending heartbeats.
|
|
399
443
|
*/
|
|
400
444
|
heartbeat;
|
|
401
|
-
constructor(conn, from, to, options) {
|
|
445
|
+
constructor(conn, from, to, options, propagationCtx) {
|
|
402
446
|
this.id = `session-${nanoid(12)}`;
|
|
403
447
|
this.options = options;
|
|
404
448
|
this.from = from;
|
|
@@ -410,13 +454,14 @@ var Session = class {
|
|
|
410
454
|
() => this.sendHeartbeat(),
|
|
411
455
|
options.heartbeatIntervalMs
|
|
412
456
|
);
|
|
457
|
+
this.telemetry = createSessionTelemetryInfo(this, propagationCtx);
|
|
413
458
|
}
|
|
414
459
|
get loggingMetadata() {
|
|
415
460
|
return {
|
|
416
461
|
clientId: this.from,
|
|
417
462
|
connectedTo: this.to,
|
|
418
463
|
sessionId: this.id,
|
|
419
|
-
connId: this.connection?.
|
|
464
|
+
connId: this.connection?.id
|
|
420
465
|
};
|
|
421
466
|
}
|
|
422
467
|
/**
|
|
@@ -461,6 +506,7 @@ var Session = class {
|
|
|
461
506
|
`closing connection to ${this.to} due to inactivity (missed ${misses} heartbeats which is ${missDuration}ms)`,
|
|
462
507
|
this.loggingMetadata
|
|
463
508
|
);
|
|
509
|
+
this.telemetry.span.addEvent("closing connection due to inactivity");
|
|
464
510
|
this.closeStaleConnection();
|
|
465
511
|
}
|
|
466
512
|
return;
|
|
@@ -482,32 +528,38 @@ var Session = class {
|
|
|
482
528
|
sendBufferedMessages(conn) {
|
|
483
529
|
log?.info(`resending ${this.sendBuffer.length} buffered messages`, {
|
|
484
530
|
...this.loggingMetadata,
|
|
485
|
-
connId: conn.
|
|
531
|
+
connId: conn.id
|
|
486
532
|
});
|
|
487
533
|
for (const msg of this.sendBuffer) {
|
|
488
534
|
log?.debug(`resending msg`, {
|
|
489
535
|
...this.loggingMetadata,
|
|
490
536
|
fullTransportMessage: msg,
|
|
491
|
-
connId: conn.
|
|
537
|
+
connId: conn.id
|
|
492
538
|
});
|
|
493
539
|
const ok = conn.send(this.codec.toBuffer(msg));
|
|
494
540
|
if (!ok) {
|
|
495
541
|
const errMsg = `failed to send buffered message to ${this.to} (sus, this is a fresh connection)`;
|
|
542
|
+
conn.telemetry?.span.setStatus({
|
|
543
|
+
code: import_api2.SpanStatusCode.ERROR,
|
|
544
|
+
message: errMsg
|
|
545
|
+
});
|
|
496
546
|
log?.error(errMsg, {
|
|
497
547
|
...this.loggingMetadata,
|
|
498
548
|
fullTransportMessage: msg,
|
|
499
|
-
connId: conn.
|
|
549
|
+
connId: conn.id,
|
|
550
|
+
tags: ["invariant-violation"]
|
|
500
551
|
});
|
|
501
|
-
|
|
552
|
+
conn.close();
|
|
553
|
+
return;
|
|
502
554
|
}
|
|
503
555
|
}
|
|
504
556
|
}
|
|
505
557
|
updateBookkeeping(ack, seq) {
|
|
506
558
|
if (seq + 1 < this.ack) {
|
|
507
|
-
log?.error(
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
);
|
|
559
|
+
log?.error(`received stale seq ${seq} + 1 < ${this.ack}`, {
|
|
560
|
+
...this.loggingMetadata,
|
|
561
|
+
tags: ["invariant-violation"]
|
|
562
|
+
});
|
|
511
563
|
return;
|
|
512
564
|
}
|
|
513
565
|
this.sendBuffer = this.sendBuffer.filter((unacked) => unacked.seq >= ack);
|
|
@@ -579,7 +631,6 @@ var Session = class {
|
|
|
579
631
|
|
|
580
632
|
// transport/transport.ts
|
|
581
633
|
var import_value = require("@sinclair/typebox/value");
|
|
582
|
-
var import_api = require("@opentelemetry/api");
|
|
583
634
|
|
|
584
635
|
// codec/json.ts
|
|
585
636
|
var encoder = new TextEncoder();
|
|
@@ -634,6 +685,7 @@ var NaiveJsonCodec = {
|
|
|
634
685
|
};
|
|
635
686
|
|
|
636
687
|
// transport/transport.ts
|
|
688
|
+
var import_api3 = require("@opentelemetry/api");
|
|
637
689
|
var defaultTransportOptions = {
|
|
638
690
|
heartbeatIntervalMs: 1e3,
|
|
639
691
|
heartbeatsUntilDead: 2,
|
|
@@ -656,6 +708,11 @@ var defaultServerTransportOptions = {
|
|
|
656
708
|
};
|
|
657
709
|
|
|
658
710
|
// util/testHelpers.ts
|
|
711
|
+
function createLocalWebSocketClient(port) {
|
|
712
|
+
const sock = new import_ws.default(`ws://localhost:${port}`);
|
|
713
|
+
sock.binaryType = "arraybuffer";
|
|
714
|
+
return sock;
|
|
715
|
+
}
|
|
659
716
|
function createWebSocketServer(server) {
|
|
660
717
|
return new import_ws.WebSocketServer({ server });
|
|
661
718
|
}
|
|
@@ -711,13 +768,7 @@ async function waitForMessage(t, filter, rejectMismatch) {
|
|
|
711
768
|
}
|
|
712
769
|
function catchProcError(err) {
|
|
713
770
|
const errorMsg = coerceErrorString(err);
|
|
714
|
-
return {
|
|
715
|
-
ok: false,
|
|
716
|
-
payload: {
|
|
717
|
-
code: UNCAUGHT_ERROR,
|
|
718
|
-
message: errorMsg
|
|
719
|
-
}
|
|
720
|
-
};
|
|
771
|
+
return Err({ code: UNCAUGHT_ERROR, message: errorMsg });
|
|
721
772
|
}
|
|
722
773
|
var testingSessionOptions = defaultTransportOptions;
|
|
723
774
|
function dummySession() {
|
|
@@ -792,6 +843,7 @@ var getUnixSocketPath = () => {
|
|
|
792
843
|
asClientSubscription,
|
|
793
844
|
asClientUpload,
|
|
794
845
|
createDummyTransportMessage,
|
|
846
|
+
createLocalWebSocketClient,
|
|
795
847
|
createWebSocketServer,
|
|
796
848
|
getUnixSocketPath,
|
|
797
849
|
iterNext,
|