@replit/river 0.21.1 → 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-NCXUFDVL.js → chunk-GCLEWC26.js} +328 -500
- 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-FDLAPYCK.js → chunk-S3YKQT4J.js} +2 -2
- package/dist/{chunk-JMXO5L2X.js → chunk-ZPBWKBM5.js} +344 -384
- package/dist/chunk-ZPBWKBM5.js.map +1 -0
- package/dist/{connection-76c5ed01.d.ts → connection-8b059ac4.d.ts} +6 -4
- package/dist/{connection-975b25c9.d.ts → connection-bbfe1147.d.ts} +1 -1
- package/dist/{index-dfad460e.d.ts → index-2ece5234.d.ts} +16 -7
- package/dist/logging/index.d.cts +2 -1
- package/dist/logging/index.d.ts +2 -1
- package/dist/router/index.cjs +373 -486
- 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 +4 -3
- package/dist/{services-7b716dcf.d.ts → services-acbcc441.d.ts} +1 -1
- package/dist/{services-9c496c6e.d.ts → services-cb01a7a8.d.ts} +1 -1
- package/dist/transport/impls/uds/client.cjs +186 -145
- 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 +3 -3
- package/dist/transport/impls/uds/server.cjs +281 -256
- 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 +3 -3
- package/dist/transport/impls/ws/client.cjs +240 -204
- 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 +33 -48
- package/dist/transport/impls/ws/client.js.map +1 -1
- package/dist/transport/impls/ws/server.cjs +303 -270
- 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 +3 -3
- package/dist/transport/impls/ws/server.js.map +1 -1
- package/dist/transport/index.cjs +390 -382
- 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 +2 -2
- package/dist/util/testHelpers.cjs +57 -7
- package/dist/util/testHelpers.cjs.map +1 -1
- package/dist/util/testHelpers.d.cts +14 -5
- package/dist/util/testHelpers.d.ts +14 -5
- package/dist/util/testHelpers.js +10 -4
- package/dist/util/testHelpers.js.map +1 -1
- package/dist/wslike-e0b32dd5.d.ts +40 -0
- package/package.json +4 -5
- package/dist/chunk-3Y7AB5EB.js +0 -42
- package/dist/chunk-3Y7AB5EB.js.map +0 -1
- package/dist/chunk-5WFL722S.js.map +0 -1
- package/dist/chunk-JMXO5L2X.js.map +0 -1
- package/dist/chunk-NCXUFDVL.js.map +0 -1
- /package/dist/{chunk-FDLAPYCK.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() {
|
|
@@ -340,6 +351,31 @@ function Err(error) {
|
|
|
340
351
|
// logging/log.ts
|
|
341
352
|
var log = void 0;
|
|
342
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
|
+
|
|
343
379
|
// util/stringify.ts
|
|
344
380
|
function coerceErrorString(err) {
|
|
345
381
|
if (err instanceof Error) {
|
|
@@ -353,11 +389,13 @@ var import_nanoid2 = require("nanoid");
|
|
|
353
389
|
|
|
354
390
|
// transport/session.ts
|
|
355
391
|
var import_nanoid = require("nanoid");
|
|
392
|
+
var import_api2 = require("@opentelemetry/api");
|
|
356
393
|
var nanoid = (0, import_nanoid.customAlphabet)("1234567890abcdefghijklmnopqrstuvxyz", 6);
|
|
357
394
|
var unsafeId = () => nanoid();
|
|
358
395
|
var Session = class {
|
|
359
396
|
codec;
|
|
360
397
|
options;
|
|
398
|
+
telemetry;
|
|
361
399
|
/**
|
|
362
400
|
* The buffer of messages that have been sent but not yet acknowledged.
|
|
363
401
|
*/
|
|
@@ -404,7 +442,7 @@ var Session = class {
|
|
|
404
442
|
* The interval for sending heartbeats.
|
|
405
443
|
*/
|
|
406
444
|
heartbeat;
|
|
407
|
-
constructor(conn, from, to, options) {
|
|
445
|
+
constructor(conn, from, to, options, propagationCtx) {
|
|
408
446
|
this.id = `session-${nanoid(12)}`;
|
|
409
447
|
this.options = options;
|
|
410
448
|
this.from = from;
|
|
@@ -416,13 +454,14 @@ var Session = class {
|
|
|
416
454
|
() => this.sendHeartbeat(),
|
|
417
455
|
options.heartbeatIntervalMs
|
|
418
456
|
);
|
|
457
|
+
this.telemetry = createSessionTelemetryInfo(this, propagationCtx);
|
|
419
458
|
}
|
|
420
459
|
get loggingMetadata() {
|
|
421
460
|
return {
|
|
422
461
|
clientId: this.from,
|
|
423
462
|
connectedTo: this.to,
|
|
424
463
|
sessionId: this.id,
|
|
425
|
-
connId: this.connection?.
|
|
464
|
+
connId: this.connection?.id
|
|
426
465
|
};
|
|
427
466
|
}
|
|
428
467
|
/**
|
|
@@ -467,6 +506,7 @@ var Session = class {
|
|
|
467
506
|
`closing connection to ${this.to} due to inactivity (missed ${misses} heartbeats which is ${missDuration}ms)`,
|
|
468
507
|
this.loggingMetadata
|
|
469
508
|
);
|
|
509
|
+
this.telemetry.span.addEvent("closing connection due to inactivity");
|
|
470
510
|
this.closeStaleConnection();
|
|
471
511
|
}
|
|
472
512
|
return;
|
|
@@ -488,21 +528,25 @@ var Session = class {
|
|
|
488
528
|
sendBufferedMessages(conn) {
|
|
489
529
|
log?.info(`resending ${this.sendBuffer.length} buffered messages`, {
|
|
490
530
|
...this.loggingMetadata,
|
|
491
|
-
connId: conn.
|
|
531
|
+
connId: conn.id
|
|
492
532
|
});
|
|
493
533
|
for (const msg of this.sendBuffer) {
|
|
494
534
|
log?.debug(`resending msg`, {
|
|
495
535
|
...this.loggingMetadata,
|
|
496
536
|
fullTransportMessage: msg,
|
|
497
|
-
connId: conn.
|
|
537
|
+
connId: conn.id
|
|
498
538
|
});
|
|
499
539
|
const ok = conn.send(this.codec.toBuffer(msg));
|
|
500
540
|
if (!ok) {
|
|
501
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
|
+
});
|
|
502
546
|
log?.error(errMsg, {
|
|
503
547
|
...this.loggingMetadata,
|
|
504
548
|
fullTransportMessage: msg,
|
|
505
|
-
connId: conn.
|
|
549
|
+
connId: conn.id,
|
|
506
550
|
tags: ["invariant-violation"]
|
|
507
551
|
});
|
|
508
552
|
conn.close();
|
|
@@ -587,7 +631,6 @@ var Session = class {
|
|
|
587
631
|
|
|
588
632
|
// transport/transport.ts
|
|
589
633
|
var import_value = require("@sinclair/typebox/value");
|
|
590
|
-
var import_api = require("@opentelemetry/api");
|
|
591
634
|
|
|
592
635
|
// codec/json.ts
|
|
593
636
|
var encoder = new TextEncoder();
|
|
@@ -642,6 +685,7 @@ var NaiveJsonCodec = {
|
|
|
642
685
|
};
|
|
643
686
|
|
|
644
687
|
// transport/transport.ts
|
|
688
|
+
var import_api3 = require("@opentelemetry/api");
|
|
645
689
|
var defaultTransportOptions = {
|
|
646
690
|
heartbeatIntervalMs: 1e3,
|
|
647
691
|
heartbeatsUntilDead: 2,
|
|
@@ -664,6 +708,11 @@ var defaultServerTransportOptions = {
|
|
|
664
708
|
};
|
|
665
709
|
|
|
666
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
|
+
}
|
|
667
716
|
function createWebSocketServer(server) {
|
|
668
717
|
return new import_ws.WebSocketServer({ server });
|
|
669
718
|
}
|
|
@@ -794,6 +843,7 @@ var getUnixSocketPath = () => {
|
|
|
794
843
|
asClientSubscription,
|
|
795
844
|
asClientUpload,
|
|
796
845
|
createDummyTransportMessage,
|
|
846
|
+
createLocalWebSocketClient,
|
|
797
847
|
createWebSocketServer,
|
|
798
848
|
getUnixSocketPath,
|
|
799
849
|
iterNext,
|