@rivetkit/engine-runner 2.3.0-rc.4 → 2.3.0-rc.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.
- package/dist/mod.cjs +34 -11
- package/dist/mod.cjs.map +1 -1
- package/dist/mod.js +36 -13
- package/dist/mod.js.map +1 -1
- package/package.json +3 -3
- package/src/mod.ts +21 -9
- package/src/tunnel.ts +7 -1
- package/src/websocket-tunnel-adapter.ts +49 -12
package/dist/mod.js
CHANGED
|
@@ -513,7 +513,9 @@ function stringifyKvResponseData(data) {
|
|
|
513
513
|
}
|
|
514
514
|
|
|
515
515
|
// src/websocket-tunnel-adapter.ts
|
|
516
|
-
import {
|
|
516
|
+
import {
|
|
517
|
+
VirtualWebSocket
|
|
518
|
+
} from "@rivetkit/virtual-websocket";
|
|
517
519
|
var HIBERNATABLE_SYMBOL = /* @__PURE__ */ Symbol("hibernatable");
|
|
518
520
|
var WebSocketTunnelAdapter = class {
|
|
519
521
|
constructor(tunnel, actorId, requestId, serverMessageIndex, hibernatable, isRestoringHibernatable, request, sendCallback, closeCallback) {
|
|
@@ -570,14 +572,23 @@ var WebSocketTunnelAdapter = class {
|
|
|
570
572
|
}
|
|
571
573
|
messageData = data;
|
|
572
574
|
} else if (data instanceof ArrayBuffer) {
|
|
573
|
-
if (data.byteLength > MAX_PAYLOAD_SIZE)
|
|
575
|
+
if (data.byteLength > MAX_PAYLOAD_SIZE)
|
|
576
|
+
throw new Error("WebSocket message too large");
|
|
574
577
|
isBinary = true;
|
|
575
578
|
messageData = data;
|
|
576
579
|
} else if (ArrayBuffer.isView(data)) {
|
|
577
|
-
if (data.byteLength > MAX_PAYLOAD_SIZE)
|
|
580
|
+
if (data.byteLength > MAX_PAYLOAD_SIZE)
|
|
581
|
+
throw new Error("WebSocket message too large");
|
|
578
582
|
isBinary = true;
|
|
579
583
|
const view = data;
|
|
580
|
-
const buffer = view.buffer instanceof SharedArrayBuffer ? new Uint8Array(
|
|
584
|
+
const buffer = view.buffer instanceof SharedArrayBuffer ? new Uint8Array(
|
|
585
|
+
view.buffer,
|
|
586
|
+
view.byteOffset,
|
|
587
|
+
view.byteLength
|
|
588
|
+
).slice().buffer : view.buffer.slice(
|
|
589
|
+
view.byteOffset,
|
|
590
|
+
view.byteOffset + view.byteLength
|
|
591
|
+
);
|
|
581
592
|
messageData = buffer;
|
|
582
593
|
} else {
|
|
583
594
|
throw new Error("Unsupported data type");
|
|
@@ -588,7 +599,11 @@ var WebSocketTunnelAdapter = class {
|
|
|
588
599
|
_handleOpen(requestId) {
|
|
589
600
|
if (this.#readyState !== 0) return;
|
|
590
601
|
this.#readyState = 1;
|
|
591
|
-
this.#ws.dispatchEvent({
|
|
602
|
+
this.#ws.dispatchEvent({
|
|
603
|
+
type: "open",
|
|
604
|
+
rivetRequestId: requestId,
|
|
605
|
+
target: this.#ws
|
|
606
|
+
});
|
|
592
607
|
}
|
|
593
608
|
// Called by Tunnel when message is received
|
|
594
609
|
_handleMessage(requestId, data, serverMessageIndex, isBinary) {
|
|
@@ -625,7 +640,10 @@ var WebSocketTunnelAdapter = class {
|
|
|
625
640
|
expectedIndex,
|
|
626
641
|
receivedIndex: serverMessageIndex,
|
|
627
642
|
closeReason,
|
|
628
|
-
gap: wrappingSubU16(
|
|
643
|
+
gap: wrappingSubU16(
|
|
644
|
+
wrappingSubU16(serverMessageIndex, previousIndex),
|
|
645
|
+
1
|
|
646
|
+
)
|
|
629
647
|
});
|
|
630
648
|
this.#close(1008, closeReason, true);
|
|
631
649
|
return true;
|
|
@@ -637,7 +655,10 @@ var WebSocketTunnelAdapter = class {
|
|
|
637
655
|
if (this.#binaryType === "nodebuffer") {
|
|
638
656
|
messageData = Buffer.from(data);
|
|
639
657
|
} else if (this.#binaryType === "arraybuffer") {
|
|
640
|
-
messageData = data.buffer.slice(
|
|
658
|
+
messageData = data.buffer.slice(
|
|
659
|
+
data.byteOffset,
|
|
660
|
+
data.byteOffset + data.byteLength
|
|
661
|
+
);
|
|
641
662
|
}
|
|
642
663
|
}
|
|
643
664
|
this.#ws.dispatchEvent({
|
|
@@ -1516,9 +1537,7 @@ async function importWebSocket() {
|
|
|
1516
1537
|
}
|
|
1517
1538
|
|
|
1518
1539
|
// src/mod.ts
|
|
1519
|
-
import {
|
|
1520
|
-
v4 as uuidv4
|
|
1521
|
-
} from "uuid";
|
|
1540
|
+
import { v4 as uuidv4 } from "uuid";
|
|
1522
1541
|
var KV_EXPIRE = 3e4;
|
|
1523
1542
|
var PROTOCOL_VERSION = 7;
|
|
1524
1543
|
var EVENT_BACKLOG_WARN_THRESHOLD = 1e4;
|
|
@@ -1796,9 +1815,12 @@ var Runner = class {
|
|
|
1796
1815
|
);
|
|
1797
1816
|
}
|
|
1798
1817
|
this.#kvRequests.clear();
|
|
1799
|
-
const pegboardWebSocket = this
|
|
1800
|
-
|
|
1801
|
-
|
|
1818
|
+
const pegboardWebSocket = this.#pegboardWebSocket;
|
|
1819
|
+
const readyState = pegboardWebSocket == null ? void 0 : pegboardWebSocket.readyState;
|
|
1820
|
+
const isOpen = readyState === 1;
|
|
1821
|
+
const isConnecting = readyState === 0;
|
|
1822
|
+
if (pegboardWebSocket && (isOpen || isConnecting)) {
|
|
1823
|
+
if (immediate || isConnecting) {
|
|
1802
1824
|
pegboardWebSocket.close(1e3, "pegboard.runner_shutdown");
|
|
1803
1825
|
} else {
|
|
1804
1826
|
try {
|
|
@@ -2053,6 +2075,7 @@ var Runner = class {
|
|
|
2053
2075
|
const init = message.val;
|
|
2054
2076
|
if (this.runnerId !== init.runnerId) {
|
|
2055
2077
|
this.runnerId = init.runnerId;
|
|
2078
|
+
this.#logCached = void 0;
|
|
2056
2079
|
this.#stopAllActors();
|
|
2057
2080
|
}
|
|
2058
2081
|
this.#protocolMetadata = init.metadata;
|