@rivetkit/engine-runner 2.3.0-rc.1 → 2.3.0-rc.11
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 +40 -17
- package/dist/mod.cjs.map +1 -1
- package/dist/mod.js +41 -18
- package/dist/mod.js.map +1 -1
- package/package.json +3 -3
- package/src/mod.ts +26 -14
- package/src/tunnel.ts +8 -6
- package/src/websocket-tunnel-adapter.ts +49 -12
package/dist/mod.cjs
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } var _class;// src/mod.ts
|
|
2
2
|
var _enginerunnerprotocol = require('@rivetkit/engine-runner-protocol'); var protocol = _interopRequireWildcard(_enginerunnerprotocol);
|
|
3
|
+
var _uuid = require('uuid');
|
|
3
4
|
|
|
4
5
|
// src/log.ts
|
|
5
6
|
var LOGGER;
|
|
@@ -513,6 +514,8 @@ function stringifyKvResponseData(data) {
|
|
|
513
514
|
}
|
|
514
515
|
|
|
515
516
|
// src/websocket-tunnel-adapter.ts
|
|
517
|
+
|
|
518
|
+
|
|
516
519
|
var _virtualwebsocket = require('@rivetkit/virtual-websocket');
|
|
517
520
|
var HIBERNATABLE_SYMBOL = /* @__PURE__ */ Symbol("hibernatable");
|
|
518
521
|
var WebSocketTunnelAdapter = class {
|
|
@@ -570,14 +573,23 @@ var WebSocketTunnelAdapter = class {
|
|
|
570
573
|
}
|
|
571
574
|
messageData = data;
|
|
572
575
|
} else if (data instanceof ArrayBuffer) {
|
|
573
|
-
if (data.byteLength > MAX_PAYLOAD_SIZE)
|
|
576
|
+
if (data.byteLength > MAX_PAYLOAD_SIZE)
|
|
577
|
+
throw new Error("WebSocket message too large");
|
|
574
578
|
isBinary = true;
|
|
575
579
|
messageData = data;
|
|
576
580
|
} else if (ArrayBuffer.isView(data)) {
|
|
577
|
-
if (data.byteLength > MAX_PAYLOAD_SIZE)
|
|
581
|
+
if (data.byteLength > MAX_PAYLOAD_SIZE)
|
|
582
|
+
throw new Error("WebSocket message too large");
|
|
578
583
|
isBinary = true;
|
|
579
584
|
const view = data;
|
|
580
|
-
const buffer = view.buffer instanceof SharedArrayBuffer ? new Uint8Array(
|
|
585
|
+
const buffer = view.buffer instanceof SharedArrayBuffer ? new Uint8Array(
|
|
586
|
+
view.buffer,
|
|
587
|
+
view.byteOffset,
|
|
588
|
+
view.byteLength
|
|
589
|
+
).slice().buffer : view.buffer.slice(
|
|
590
|
+
view.byteOffset,
|
|
591
|
+
view.byteOffset + view.byteLength
|
|
592
|
+
);
|
|
581
593
|
messageData = buffer;
|
|
582
594
|
} else {
|
|
583
595
|
throw new Error("Unsupported data type");
|
|
@@ -588,7 +600,11 @@ var WebSocketTunnelAdapter = class {
|
|
|
588
600
|
_handleOpen(requestId) {
|
|
589
601
|
if (this.#readyState !== 0) return;
|
|
590
602
|
this.#readyState = 1;
|
|
591
|
-
this.#ws.dispatchEvent({
|
|
603
|
+
this.#ws.dispatchEvent({
|
|
604
|
+
type: "open",
|
|
605
|
+
rivetRequestId: requestId,
|
|
606
|
+
target: this.#ws
|
|
607
|
+
});
|
|
592
608
|
}
|
|
593
609
|
// Called by Tunnel when message is received
|
|
594
610
|
_handleMessage(requestId, data, serverMessageIndex, isBinary) {
|
|
@@ -625,7 +641,10 @@ var WebSocketTunnelAdapter = class {
|
|
|
625
641
|
expectedIndex,
|
|
626
642
|
receivedIndex: serverMessageIndex,
|
|
627
643
|
closeReason,
|
|
628
|
-
gap: wrappingSubU16(
|
|
644
|
+
gap: wrappingSubU16(
|
|
645
|
+
wrappingSubU16(serverMessageIndex, previousIndex),
|
|
646
|
+
1
|
|
647
|
+
)
|
|
629
648
|
});
|
|
630
649
|
this.#close(1008, closeReason, true);
|
|
631
650
|
return true;
|
|
@@ -637,7 +656,10 @@ var WebSocketTunnelAdapter = class {
|
|
|
637
656
|
if (this.#binaryType === "nodebuffer") {
|
|
638
657
|
messageData = Buffer.from(data);
|
|
639
658
|
} else if (this.#binaryType === "arraybuffer") {
|
|
640
|
-
messageData = data.buffer.slice(
|
|
659
|
+
messageData = data.buffer.slice(
|
|
660
|
+
data.byteOffset,
|
|
661
|
+
data.byteOffset + data.byteLength
|
|
662
|
+
);
|
|
641
663
|
}
|
|
642
664
|
}
|
|
643
665
|
this.#ws.dispatchEvent({
|
|
@@ -1516,9 +1538,6 @@ async function importWebSocket() {
|
|
|
1516
1538
|
}
|
|
1517
1539
|
|
|
1518
1540
|
// src/mod.ts
|
|
1519
|
-
|
|
1520
|
-
|
|
1521
|
-
var _uuid = require('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;
|
|
@@ -2194,7 +2217,7 @@ var Runner = class {
|
|
|
2194
2217
|
);
|
|
2195
2218
|
for (const [_, actor] of this.#actors) {
|
|
2196
2219
|
const checkpoint = ack.lastEventCheckpoints.find(
|
|
2197
|
-
(x) => x.actorId
|
|
2220
|
+
(x) => x.actorId === actor.actorId
|
|
2198
2221
|
);
|
|
2199
2222
|
if (checkpoint) actor.handleAckEvents(checkpoint.index);
|
|
2200
2223
|
}
|
|
@@ -2283,18 +2306,18 @@ var Runner = class {
|
|
|
2283
2306
|
});
|
|
2284
2307
|
await this.#config.onActorStart(actorId, generation, actorConfig);
|
|
2285
2308
|
instance.actorStartPromise.resolve();
|
|
2286
|
-
} catch (
|
|
2309
|
+
} catch (error) {
|
|
2287
2310
|
(_d = this.log) == null ? void 0 : _d.error({
|
|
2288
2311
|
msg: "error starting runner actor",
|
|
2289
2312
|
actorId,
|
|
2290
|
-
|
|
2313
|
+
error
|
|
2291
2314
|
});
|
|
2292
|
-
instance.actorStartPromise.reject(
|
|
2315
|
+
instance.actorStartPromise.reject(error);
|
|
2293
2316
|
await this.forceStopActor(actorId, generation);
|
|
2294
2317
|
}
|
|
2295
2318
|
}
|
|
2296
2319
|
async #handleCommandStopActor(commandWrapper) {
|
|
2297
|
-
const
|
|
2320
|
+
const _stopCommand = commandWrapper.inner.val;
|
|
2298
2321
|
const actorId = commandWrapper.checkpoint.actorId;
|
|
2299
2322
|
const generation = commandWrapper.checkpoint.generation;
|
|
2300
2323
|
await this.forceStopActor(actorId, generation);
|