rivetkit 2.0.22-rc.1 → 2.0.22
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/schemas/actor-persist/v2.ts +259 -0
- package/dist/tsup/{chunk-LCQDY73V.cjs → chunk-2GJILCGQ.cjs} +3 -3
- package/dist/tsup/{chunk-LCQDY73V.cjs.map → chunk-2GJILCGQ.cjs.map} +1 -1
- package/dist/tsup/{chunk-JN6GPVFY.js → chunk-2K2LR56Q.js} +3 -3
- package/dist/tsup/{chunk-EEXX243L.js → chunk-2WVCZCJL.js} +6 -6
- package/dist/tsup/{chunk-FETQGZN4.js → chunk-3BJJSSTM.js} +272 -89
- package/dist/tsup/chunk-3BJJSSTM.js.map +1 -0
- package/dist/tsup/{chunk-ZZYMCYAY.cjs → chunk-3LFMVAJV.cjs} +14 -14
- package/dist/tsup/{chunk-ZZYMCYAY.cjs.map → chunk-3LFMVAJV.cjs.map} +1 -1
- package/dist/tsup/{chunk-NDLOG2JH.js → chunk-6YQKMAMV.js} +2 -2
- package/dist/tsup/{chunk-C2U6KGOG.cjs → chunk-AR4S2QJ7.cjs} +3 -3
- package/dist/tsup/{chunk-C2U6KGOG.cjs.map → chunk-AR4S2QJ7.cjs.map} +1 -1
- package/dist/tsup/{chunk-PELXJCJS.cjs → chunk-B4QZKOMH.cjs} +8 -8
- package/dist/tsup/{chunk-PELXJCJS.cjs.map → chunk-B4QZKOMH.cjs.map} +1 -1
- package/dist/tsup/{chunk-5EB77IQ2.cjs → chunk-CYA35VI3.cjs} +6 -6
- package/dist/tsup/{chunk-5EB77IQ2.cjs.map → chunk-CYA35VI3.cjs.map} +1 -1
- package/dist/tsup/{chunk-UBCUW7HD.js → chunk-D7AA2DK5.js} +2 -2
- package/dist/tsup/{chunk-I7EJWHYV.js → chunk-EBSGEDD3.js} +51 -47
- package/dist/tsup/chunk-EBSGEDD3.js.map +1 -0
- package/dist/tsup/{chunk-R6XOZKMU.cjs → chunk-HSO2H2SB.cjs} +467 -284
- package/dist/tsup/chunk-HSO2H2SB.cjs.map +1 -0
- package/dist/tsup/{chunk-VJLGVVGP.cjs → chunk-HZ4ZM3FL.cjs} +31 -12
- package/dist/tsup/chunk-HZ4ZM3FL.cjs.map +1 -0
- package/dist/tsup/{chunk-7FEMVD3D.cjs → chunk-LMZSOCYD.cjs} +12 -12
- package/dist/tsup/{chunk-7FEMVD3D.cjs.map → chunk-LMZSOCYD.cjs.map} +1 -1
- package/dist/tsup/{chunk-ZVEDMBFT.js → chunk-PBFLG45S.js} +3 -3
- package/dist/tsup/{chunk-GJPOIJHZ.js → chunk-ST6FGRCH.js} +26 -7
- package/dist/tsup/chunk-ST6FGRCH.js.map +1 -0
- package/dist/tsup/{chunk-BIOPK7IB.cjs → chunk-TI72NLP3.cjs} +71 -67
- package/dist/tsup/chunk-TI72NLP3.cjs.map +1 -0
- package/dist/tsup/{chunk-RPI45FGS.js → chunk-TQ4OAC2G.js} +2 -2
- package/dist/tsup/{chunk-4B25D5OW.js → chunk-UB4OHFDW.js} +385 -104
- package/dist/tsup/chunk-UB4OHFDW.js.map +1 -0
- package/dist/tsup/{chunk-6Z3YA6QR.cjs → chunk-V6C34TVH.cjs} +35 -15
- package/dist/tsup/chunk-V6C34TVH.cjs.map +1 -0
- package/dist/tsup/{chunk-OAB7ECAB.cjs → chunk-WVUAO2F7.cjs} +558 -277
- package/dist/tsup/chunk-WVUAO2F7.cjs.map +1 -0
- package/dist/tsup/{chunk-JKNDUKFI.js → chunk-WWAZJHTS.js} +36 -16
- package/dist/tsup/chunk-WWAZJHTS.js.map +1 -0
- package/dist/tsup/client/mod.cjs +9 -9
- package/dist/tsup/client/mod.d.cts +2 -2
- package/dist/tsup/client/mod.d.ts +2 -2
- package/dist/tsup/client/mod.js +8 -8
- package/dist/tsup/common/log.cjs +3 -3
- package/dist/tsup/common/log.js +2 -2
- package/dist/tsup/common/websocket.cjs +4 -4
- package/dist/tsup/common/websocket.js +3 -3
- package/dist/tsup/{conn-Clu655RU.d.ts → conn-BYXlxnh0.d.ts} +111 -102
- package/dist/tsup/{conn-lUvFLo_q.d.cts → conn-BiazosE_.d.cts} +111 -102
- package/dist/tsup/driver-helpers/mod.cjs +5 -5
- package/dist/tsup/driver-helpers/mod.d.cts +1 -1
- package/dist/tsup/driver-helpers/mod.d.ts +1 -1
- package/dist/tsup/driver-helpers/mod.js +4 -4
- package/dist/tsup/driver-test-suite/mod.cjs +71 -71
- package/dist/tsup/driver-test-suite/mod.d.cts +1 -1
- package/dist/tsup/driver-test-suite/mod.d.ts +1 -1
- package/dist/tsup/driver-test-suite/mod.js +11 -11
- package/dist/tsup/inspector/mod.cjs +6 -6
- package/dist/tsup/inspector/mod.d.cts +2 -2
- package/dist/tsup/inspector/mod.d.ts +2 -2
- package/dist/tsup/inspector/mod.js +5 -5
- package/dist/tsup/mod.cjs +10 -10
- package/dist/tsup/mod.d.cts +3 -3
- package/dist/tsup/mod.d.ts +3 -3
- package/dist/tsup/mod.js +9 -9
- package/dist/tsup/test/mod.cjs +11 -11
- package/dist/tsup/test/mod.d.cts +1 -1
- package/dist/tsup/test/mod.d.ts +1 -1
- package/dist/tsup/test/mod.js +10 -10
- package/dist/tsup/utils.cjs +8 -2
- package/dist/tsup/utils.cjs.map +1 -1
- package/dist/tsup/utils.d.cts +8 -1
- package/dist/tsup/utils.d.ts +8 -1
- package/dist/tsup/utils.js +7 -1
- package/package.json +5 -4
- package/src/actor/config.ts +10 -0
- package/src/actor/conn-drivers.ts +43 -1
- package/src/actor/conn-socket.ts +1 -1
- package/src/actor/conn.ts +22 -2
- package/src/actor/context.ts +1 -1
- package/src/actor/driver.ts +13 -2
- package/src/actor/instance.ts +248 -57
- package/src/actor/persisted.ts +7 -0
- package/src/actor/router-endpoints.ts +67 -45
- package/src/actor/router.ts +25 -17
- package/src/client/actor-conn.ts +9 -5
- package/src/common/cors.ts +57 -0
- package/src/common/log.ts +26 -5
- package/src/common/utils.ts +5 -9
- package/src/common/websocket-interface.ts +10 -0
- package/src/driver-helpers/utils.ts +1 -0
- package/src/drivers/engine/actor-driver.ts +261 -14
- package/src/drivers/engine/config.ts +2 -4
- package/src/drivers/file-system/actor.ts +3 -2
- package/src/drivers/file-system/global-state.ts +1 -1
- package/src/drivers/file-system/manager.ts +3 -0
- package/src/engine-process/mod.ts +22 -4
- package/src/inspector/config.ts +0 -45
- package/src/manager/gateway.ts +45 -32
- package/src/manager/hono-websocket-adapter.ts +31 -3
- package/src/manager/router.ts +11 -17
- package/src/registry/run-config.ts +2 -8
- package/src/remote-manager-driver/actor-http-client.ts +5 -8
- package/src/remote-manager-driver/actor-websocket-client.ts +2 -14
- package/src/remote-manager-driver/mod.ts +0 -1
- package/src/schemas/actor-persist/mod.ts +1 -1
- package/src/schemas/actor-persist/versioned.ts +22 -10
- package/src/utils.ts +26 -0
- package/dist/tsup/chunk-4B25D5OW.js.map +0 -1
- package/dist/tsup/chunk-6Z3YA6QR.cjs.map +0 -1
- package/dist/tsup/chunk-BIOPK7IB.cjs.map +0 -1
- package/dist/tsup/chunk-FETQGZN4.js.map +0 -1
- package/dist/tsup/chunk-GJPOIJHZ.js.map +0 -1
- package/dist/tsup/chunk-I7EJWHYV.js.map +0 -1
- package/dist/tsup/chunk-JKNDUKFI.js.map +0 -1
- package/dist/tsup/chunk-OAB7ECAB.cjs.map +0 -1
- package/dist/tsup/chunk-R6XOZKMU.cjs.map +0 -1
- package/dist/tsup/chunk-VJLGVVGP.cjs.map +0 -1
- /package/dist/tsup/{chunk-JN6GPVFY.js.map → chunk-2K2LR56Q.js.map} +0 -0
- /package/dist/tsup/{chunk-EEXX243L.js.map → chunk-2WVCZCJL.js.map} +0 -0
- /package/dist/tsup/{chunk-NDLOG2JH.js.map → chunk-6YQKMAMV.js.map} +0 -0
- /package/dist/tsup/{chunk-UBCUW7HD.js.map → chunk-D7AA2DK5.js.map} +0 -0
- /package/dist/tsup/{chunk-ZVEDMBFT.js.map → chunk-PBFLG45S.js.map} +0 -0
- /package/dist/tsup/{chunk-RPI45FGS.js.map → chunk-TQ4OAC2G.js.map} +0 -0
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
var
|
|
7
|
+
var _chunk2GJILCGQcjs = require('./chunk-2GJILCGQ.cjs');
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
|
|
@@ -17,11 +17,11 @@ var _chunkLCQDY73Vcjs = require('./chunk-LCQDY73V.cjs');
|
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
|
|
20
|
-
var _chunkR6XOZKMUcjs = require('./chunk-R6XOZKMU.cjs');
|
|
21
20
|
|
|
21
|
+
var _chunkHSO2H2SBcjs = require('./chunk-HSO2H2SB.cjs');
|
|
22
22
|
|
|
23
|
-
var _chunk7FEMVD3Dcjs = require('./chunk-7FEMVD3D.cjs');
|
|
24
23
|
|
|
24
|
+
var _chunkLMZSOCYDcjs = require('./chunk-LMZSOCYD.cjs');
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
|
|
@@ -32,8 +32,8 @@ var _chunk7FEMVD3Dcjs = require('./chunk-7FEMVD3D.cjs');
|
|
|
32
32
|
|
|
33
33
|
|
|
34
34
|
|
|
35
|
-
var _chunkBIOPK7IBcjs = require('./chunk-BIOPK7IB.cjs');
|
|
36
35
|
|
|
36
|
+
var _chunkTI72NLP3cjs = require('./chunk-TI72NLP3.cjs');
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
|
|
@@ -58,13 +58,13 @@ var _chunkBIOPK7IBcjs = require('./chunk-BIOPK7IB.cjs');
|
|
|
58
58
|
|
|
59
59
|
|
|
60
60
|
|
|
61
|
-
var _chunkPELXJCJScjs = require('./chunk-PELXJCJS.cjs');
|
|
62
61
|
|
|
62
|
+
var _chunkB4QZKOMHcjs = require('./chunk-B4QZKOMH.cjs');
|
|
63
63
|
|
|
64
64
|
|
|
65
65
|
|
|
66
|
-
var _chunkVJLGVVGPcjs = require('./chunk-VJLGVVGP.cjs');
|
|
67
66
|
|
|
67
|
+
var _chunkHZ4ZM3FLcjs = require('./chunk-HZ4ZM3FL.cjs');
|
|
68
68
|
|
|
69
69
|
|
|
70
70
|
|
|
@@ -75,7 +75,11 @@ var _chunkVJLGVVGPcjs = require('./chunk-VJLGVVGP.cjs');
|
|
|
75
75
|
|
|
76
76
|
|
|
77
77
|
|
|
78
|
-
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
var _chunkV6C34TVHcjs = require('./chunk-V6C34TVH.cjs');
|
|
79
83
|
|
|
80
84
|
|
|
81
85
|
|
|
@@ -124,7 +128,12 @@ var ActorConfigSchema = _zod.z.object({
|
|
|
124
128
|
connectionLivenessTimeout: _zod.z.number().positive().default(2500),
|
|
125
129
|
connectionLivenessInterval: _zod.z.number().positive().default(5e3),
|
|
126
130
|
noSleep: _zod.z.boolean().default(false),
|
|
127
|
-
sleepTimeout: _zod.z.number().positive().default(3e4)
|
|
131
|
+
sleepTimeout: _zod.z.number().positive().default(3e4),
|
|
132
|
+
/** @experimental */
|
|
133
|
+
canHibernatWebSocket: _zod.z.union([
|
|
134
|
+
_zod.z.boolean(),
|
|
135
|
+
_zod.z.function().args(_zod.z.custom()).returns(_zod.z.boolean())
|
|
136
|
+
]).default(false)
|
|
128
137
|
}).strict().default({})
|
|
129
138
|
}).strict().refine(
|
|
130
139
|
(data) => !(data.state !== void 0 && data.createState !== void 0),
|
|
@@ -148,7 +157,6 @@ var ActorConfigSchema = _zod.z.object({
|
|
|
148
157
|
|
|
149
158
|
// src/actor/router.ts
|
|
150
159
|
var _hono = require('hono');
|
|
151
|
-
var _cors = require('hono/cors');
|
|
152
160
|
var _invariant = require('invariant'); var _invariant2 = _interopRequireDefault(_invariant);
|
|
153
161
|
|
|
154
162
|
// src/actor/router-endpoints.ts
|
|
@@ -158,7 +166,7 @@ var _streaming = require('hono/streaming');
|
|
|
158
166
|
|
|
159
167
|
// src/manager/log.ts
|
|
160
168
|
function logger() {
|
|
161
|
-
return
|
|
169
|
+
return _chunkHZ4ZM3FLcjs.getLogger.call(void 0, "actor-manager");
|
|
162
170
|
}
|
|
163
171
|
|
|
164
172
|
// src/manager/hono-websocket-adapter.ts
|
|
@@ -174,11 +182,19 @@ var HonoWebSocketAdapter = (_class = class {
|
|
|
174
182
|
#eventListeners = /* @__PURE__ */ new Map();
|
|
175
183
|
#closeCode;
|
|
176
184
|
#closeReason;
|
|
177
|
-
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
constructor(ws, rivetRequestId, isHibernatable) {;_class.prototype.__init.call(this);_class.prototype.__init2.call(this);_class.prototype.__init3.call(this);_class.prototype.__init4.call(this);
|
|
178
188
|
this.#ws = ws;
|
|
189
|
+
this.rivetRequestId = rivetRequestId;
|
|
190
|
+
this.isHibernatable = isHibernatable;
|
|
179
191
|
this.#readyState = this.OPEN;
|
|
180
192
|
setTimeout(() => {
|
|
181
|
-
this.#fireEvent("open", {
|
|
193
|
+
this.#fireEvent("open", {
|
|
194
|
+
type: "open",
|
|
195
|
+
target: this,
|
|
196
|
+
rivetRequestId: this.rivetRequestId
|
|
197
|
+
});
|
|
182
198
|
}, 0);
|
|
183
199
|
}
|
|
184
200
|
get readyState() {
|
|
@@ -272,7 +288,8 @@ var HonoWebSocketAdapter = (_class = class {
|
|
|
272
288
|
target: this,
|
|
273
289
|
code,
|
|
274
290
|
reason,
|
|
275
|
-
wasClean: code === 1e3
|
|
291
|
+
wasClean: code === 1e3,
|
|
292
|
+
rivetRequestId: this.rivetRequestId
|
|
276
293
|
});
|
|
277
294
|
} catch (error) {
|
|
278
295
|
logger().error({ msg: "error closing websocket", error });
|
|
@@ -282,7 +299,8 @@ var HonoWebSocketAdapter = (_class = class {
|
|
|
282
299
|
target: this,
|
|
283
300
|
code: 1006,
|
|
284
301
|
reason: "Abnormal closure",
|
|
285
|
-
wasClean: false
|
|
302
|
+
wasClean: false,
|
|
303
|
+
rivetRequestId: this.rivetRequestId
|
|
286
304
|
});
|
|
287
305
|
}
|
|
288
306
|
}
|
|
@@ -317,12 +335,20 @@ var HonoWebSocketAdapter = (_class = class {
|
|
|
317
335
|
// Internal method to handle incoming messages from WSContext
|
|
318
336
|
_handleMessage(data) {
|
|
319
337
|
let messageData;
|
|
338
|
+
let rivetRequestId;
|
|
339
|
+
let rivetMessageIndex;
|
|
320
340
|
if (typeof data === "string") {
|
|
321
341
|
messageData = data;
|
|
322
342
|
} else if (data instanceof ArrayBuffer || ArrayBuffer.isView(data)) {
|
|
323
343
|
messageData = data;
|
|
324
344
|
} else if (data && typeof data === "object" && "data" in data) {
|
|
325
345
|
messageData = data.data;
|
|
346
|
+
if ("rivetRequestId" in data) {
|
|
347
|
+
rivetRequestId = data.rivetRequestId;
|
|
348
|
+
}
|
|
349
|
+
if ("rivetMessageIndex" in data) {
|
|
350
|
+
rivetMessageIndex = data.rivetMessageIndex;
|
|
351
|
+
}
|
|
326
352
|
} else {
|
|
327
353
|
messageData = String(data);
|
|
328
354
|
}
|
|
@@ -330,12 +356,15 @@ var HonoWebSocketAdapter = (_class = class {
|
|
|
330
356
|
msg: "bridge handling message",
|
|
331
357
|
dataType: typeof messageData,
|
|
332
358
|
isArrayBuffer: messageData instanceof ArrayBuffer,
|
|
333
|
-
dataStr: typeof messageData === "string" ? messageData : "<binary>"
|
|
359
|
+
dataStr: typeof messageData === "string" ? messageData : "<binary>",
|
|
360
|
+
rivetMessageIndex
|
|
334
361
|
});
|
|
335
362
|
this.#fireEvent("message", {
|
|
336
363
|
type: "message",
|
|
337
364
|
target: this,
|
|
338
|
-
data: messageData
|
|
365
|
+
data: messageData,
|
|
366
|
+
rivetRequestId,
|
|
367
|
+
rivetMessageIndex
|
|
339
368
|
});
|
|
340
369
|
}
|
|
341
370
|
// Internal method to handle close from WSContext
|
|
@@ -350,7 +379,8 @@ var HonoWebSocketAdapter = (_class = class {
|
|
|
350
379
|
target: this,
|
|
351
380
|
code,
|
|
352
381
|
reason,
|
|
353
|
-
wasClean: code === 1e3
|
|
382
|
+
wasClean: code === 1e3,
|
|
383
|
+
rivetRequestId: this.rivetRequestId
|
|
354
384
|
});
|
|
355
385
|
}
|
|
356
386
|
// Internal method to handle errors from WSContext
|
|
@@ -459,20 +489,20 @@ var HonoWebSocketAdapter = (_class = class {
|
|
|
459
489
|
|
|
460
490
|
// src/actor/router-endpoints.ts
|
|
461
491
|
var SSE_PING_INTERVAL = 1e3;
|
|
462
|
-
async function handleWebSocketConnect(req, runConfig, actorDriver, actorId, encoding, parameters, connId, connToken) {
|
|
492
|
+
async function handleWebSocketConnect(req, runConfig, actorDriver, actorId, encoding, parameters, requestId, connId, connToken) {
|
|
463
493
|
const exposeInternalError = req ? getRequestExposeInternalError(req) : false;
|
|
464
494
|
const {
|
|
465
495
|
promise: handlersPromise,
|
|
466
496
|
resolve: handlersResolve,
|
|
467
497
|
reject: handlersReject
|
|
468
|
-
} =
|
|
498
|
+
} = _chunkV6C34TVHcjs.promiseWithResolvers.call(void 0, );
|
|
469
499
|
let actor2;
|
|
470
500
|
try {
|
|
471
501
|
actor2 = await actorDriver.loadActor(actorId);
|
|
472
502
|
} catch (error) {
|
|
473
503
|
return {
|
|
474
504
|
onOpen: (_evt, ws) => {
|
|
475
|
-
const { code } =
|
|
505
|
+
const { code } = _chunkV6C34TVHcjs.deconstructError.call(void 0,
|
|
476
506
|
error,
|
|
477
507
|
actor2.rLog,
|
|
478
508
|
{
|
|
@@ -491,8 +521,8 @@ async function handleWebSocketConnect(req, runConfig, actorDriver, actorId, enco
|
|
|
491
521
|
}
|
|
492
522
|
};
|
|
493
523
|
}
|
|
494
|
-
const closePromise =
|
|
495
|
-
|
|
524
|
+
const closePromise = _chunkV6C34TVHcjs.promiseWithResolvers.call(void 0, );
|
|
525
|
+
let createdConn;
|
|
496
526
|
return {
|
|
497
527
|
onOpen: (_evt, ws) => {
|
|
498
528
|
actor2.rLog.debug("actor websocket open");
|
|
@@ -506,7 +536,7 @@ async function handleWebSocketConnect(req, runConfig, actorDriver, actorId, enco
|
|
|
506
536
|
});
|
|
507
537
|
conn = await actor2.createConn(
|
|
508
538
|
{
|
|
509
|
-
|
|
539
|
+
requestId,
|
|
510
540
|
driverState: {
|
|
511
541
|
[0 /* WEBSOCKET */]: {
|
|
512
542
|
encoding,
|
|
@@ -520,10 +550,11 @@ async function handleWebSocketConnect(req, runConfig, actorDriver, actorId, enco
|
|
|
520
550
|
connId,
|
|
521
551
|
connToken
|
|
522
552
|
);
|
|
553
|
+
createdConn = conn;
|
|
523
554
|
handlersResolve({ conn, actor: actor2, connId: conn.id });
|
|
524
555
|
} catch (error) {
|
|
525
556
|
handlersReject(error);
|
|
526
|
-
const { code } =
|
|
557
|
+
const { code } = _chunkV6C34TVHcjs.deconstructError.call(void 0,
|
|
527
558
|
error,
|
|
528
559
|
actor2.rLog,
|
|
529
560
|
{
|
|
@@ -539,12 +570,12 @@ async function handleWebSocketConnect(req, runConfig, actorDriver, actorId, enco
|
|
|
539
570
|
handlersPromise.then(({ conn, actor: actor3 }) => {
|
|
540
571
|
actor3.rLog.debug({ msg: "received message" });
|
|
541
572
|
const value = evt.data.valueOf();
|
|
542
|
-
|
|
573
|
+
_chunkTI72NLP3cjs.parseMessage.call(void 0, value, {
|
|
543
574
|
encoding,
|
|
544
575
|
maxIncomingMessageSize: runConfig.maxIncomingMessageSize
|
|
545
576
|
}).then((message) => {
|
|
546
577
|
actor3.processMessage(message, conn).catch((error) => {
|
|
547
|
-
const { code } =
|
|
578
|
+
const { code } = _chunkV6C34TVHcjs.deconstructError.call(void 0,
|
|
548
579
|
error,
|
|
549
580
|
actor3.rLog,
|
|
550
581
|
{
|
|
@@ -555,7 +586,7 @@ async function handleWebSocketConnect(req, runConfig, actorDriver, actorId, enco
|
|
|
555
586
|
ws.close(1011, code);
|
|
556
587
|
});
|
|
557
588
|
}).catch((error) => {
|
|
558
|
-
const { code } =
|
|
589
|
+
const { code } = _chunkV6C34TVHcjs.deconstructError.call(void 0,
|
|
559
590
|
error,
|
|
560
591
|
actor3.rLog,
|
|
561
592
|
{
|
|
@@ -566,7 +597,7 @@ async function handleWebSocketConnect(req, runConfig, actorDriver, actorId, enco
|
|
|
566
597
|
ws.close(1011, code);
|
|
567
598
|
});
|
|
568
599
|
}).catch((error) => {
|
|
569
|
-
const { code } =
|
|
600
|
+
const { code } = _chunkV6C34TVHcjs.deconstructError.call(void 0,
|
|
570
601
|
error,
|
|
571
602
|
actor2.rLog,
|
|
572
603
|
{
|
|
@@ -596,23 +627,18 @@ async function handleWebSocketConnect(req, runConfig, actorDriver, actorId, enco
|
|
|
596
627
|
});
|
|
597
628
|
}
|
|
598
629
|
ws.close(1e3, "hack_force_close");
|
|
599
|
-
handlersPromise.
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
error,
|
|
605
|
-
actor2.rLog,
|
|
606
|
-
{ wsEvent: "close" },
|
|
607
|
-
exposeInternalError
|
|
608
|
-
);
|
|
630
|
+
handlersPromise.finally(() => {
|
|
631
|
+
if (createdConn) {
|
|
632
|
+
const wasClean = event.wasClean || event.code === 1e3;
|
|
633
|
+
actor2.__connDisconnected(createdConn, wasClean, requestId);
|
|
634
|
+
}
|
|
609
635
|
});
|
|
610
636
|
},
|
|
611
637
|
onError: (_error) => {
|
|
612
638
|
try {
|
|
613
639
|
actor2.rLog.warn({ msg: "websocket error" });
|
|
614
640
|
} catch (error) {
|
|
615
|
-
|
|
641
|
+
_chunkV6C34TVHcjs.deconstructError.call(void 0,
|
|
616
642
|
error,
|
|
617
643
|
actor2.rLog,
|
|
618
644
|
{ wsEvent: "error" },
|
|
@@ -626,9 +652,9 @@ async function handleSseConnect(c, _runConfig, actorDriver, actorId) {
|
|
|
626
652
|
c.header("Content-Encoding", "Identity");
|
|
627
653
|
const encoding = getRequestEncoding(c.req);
|
|
628
654
|
const parameters = getRequestConnParams(c.req);
|
|
629
|
-
const
|
|
630
|
-
const connId = c.req.header(
|
|
631
|
-
const connToken = c.req.header(
|
|
655
|
+
const requestId = _chunkHSO2H2SBcjs.generateConnRequestId.call(void 0, );
|
|
656
|
+
const connId = c.req.header(_chunkB4QZKOMHcjs.HEADER_CONN_ID);
|
|
657
|
+
const connToken = c.req.header(_chunkB4QZKOMHcjs.HEADER_CONN_TOKEN);
|
|
632
658
|
return _streaming.streamSSE.call(void 0, c, async (stream) => {
|
|
633
659
|
let actor2;
|
|
634
660
|
let conn;
|
|
@@ -640,7 +666,7 @@ async function handleSseConnect(c, _runConfig, actorDriver, actorId) {
|
|
|
640
666
|
});
|
|
641
667
|
conn = await actor2.createConn(
|
|
642
668
|
{
|
|
643
|
-
|
|
669
|
+
requestId,
|
|
644
670
|
driverState: {
|
|
645
671
|
[1 /* SSE */]: {
|
|
646
672
|
encoding,
|
|
@@ -653,16 +679,16 @@ async function handleSseConnect(c, _runConfig, actorDriver, actorId) {
|
|
|
653
679
|
connId,
|
|
654
680
|
connToken
|
|
655
681
|
);
|
|
656
|
-
const abortResolver =
|
|
682
|
+
const abortResolver = _chunkV6C34TVHcjs.promiseWithResolvers.call(void 0, );
|
|
657
683
|
stream.onAbort(() => {
|
|
658
684
|
});
|
|
659
685
|
c.req.raw.signal.addEventListener("abort", async () => {
|
|
660
686
|
_invariant2.default.call(void 0, actor2, "actor should exist");
|
|
661
|
-
const rLog = _nullishCoalesce(actor2.rLog, () => (
|
|
687
|
+
const rLog = _nullishCoalesce(actor2.rLog, () => ( _chunkB4QZKOMHcjs.loggerWithoutContext.call(void 0, )));
|
|
662
688
|
try {
|
|
663
689
|
rLog.debug("sse stream aborted");
|
|
664
690
|
if (conn) {
|
|
665
|
-
actor2.__connDisconnected(conn, false,
|
|
691
|
+
actor2.__connDisconnected(conn, false, requestId);
|
|
666
692
|
}
|
|
667
693
|
abortResolver.resolve(void 0);
|
|
668
694
|
} catch (error) {
|
|
@@ -683,12 +709,12 @@ async function handleSseConnect(c, _runConfig, actorDriver, actorId) {
|
|
|
683
709
|
await stream.sleep(SSE_PING_INTERVAL);
|
|
684
710
|
}
|
|
685
711
|
} catch (error) {
|
|
686
|
-
|
|
712
|
+
_chunkB4QZKOMHcjs.loggerWithoutContext.call(void 0, ).error({
|
|
687
713
|
msg: "error in sse connection",
|
|
688
714
|
error
|
|
689
715
|
});
|
|
690
716
|
if (conn && actor2 !== void 0) {
|
|
691
|
-
actor2.__connDisconnected(conn, false,
|
|
717
|
+
actor2.__connDisconnected(conn, false, requestId);
|
|
692
718
|
}
|
|
693
719
|
stream.close();
|
|
694
720
|
}
|
|
@@ -698,13 +724,13 @@ async function handleAction(c, _runConfig, actorDriver, actionName, actorId) {
|
|
|
698
724
|
const encoding = getRequestEncoding(c.req);
|
|
699
725
|
const parameters = getRequestConnParams(c.req);
|
|
700
726
|
const arrayBuffer = await c.req.arrayBuffer();
|
|
701
|
-
const request =
|
|
727
|
+
const request = _chunkB4QZKOMHcjs.deserializeWithEncoding.call(void 0,
|
|
702
728
|
encoding,
|
|
703
729
|
new Uint8Array(arrayBuffer),
|
|
704
|
-
|
|
730
|
+
_chunkTI72NLP3cjs.HTTP_ACTION_REQUEST_VERSIONED
|
|
705
731
|
);
|
|
706
732
|
const actionArgs = cbor.decode(new Uint8Array(request.args));
|
|
707
|
-
const
|
|
733
|
+
const requestId = _chunkHSO2H2SBcjs.generateConnRequestId.call(void 0, );
|
|
708
734
|
let actor2;
|
|
709
735
|
let conn;
|
|
710
736
|
let output;
|
|
@@ -713,38 +739,38 @@ async function handleAction(c, _runConfig, actorDriver, actionName, actorId) {
|
|
|
713
739
|
actor2.rLog.debug({ msg: "handling action", actionName, encoding });
|
|
714
740
|
conn = await actor2.createConn(
|
|
715
741
|
{
|
|
716
|
-
|
|
742
|
+
requestId,
|
|
717
743
|
driverState: { [2 /* HTTP */]: {} }
|
|
718
744
|
},
|
|
719
745
|
parameters,
|
|
720
746
|
c.req.raw
|
|
721
747
|
);
|
|
722
|
-
const ctx = new (0,
|
|
748
|
+
const ctx = new (0, _chunkTI72NLP3cjs.ActionContext)(actor2.actorContext, conn);
|
|
723
749
|
output = await actor2.executeAction(ctx, actionName, actionArgs);
|
|
724
750
|
} finally {
|
|
725
751
|
if (conn) {
|
|
726
|
-
actor2 == null ? void 0 : actor2.__connDisconnected(conn, true,
|
|
752
|
+
actor2 == null ? void 0 : actor2.__connDisconnected(conn, true, requestId);
|
|
727
753
|
}
|
|
728
754
|
}
|
|
729
755
|
const responseData = {
|
|
730
|
-
output:
|
|
756
|
+
output: _chunkV6C34TVHcjs.bufferToArrayBuffer.call(void 0, cbor.encode(output))
|
|
731
757
|
};
|
|
732
|
-
const serialized =
|
|
758
|
+
const serialized = _chunkB4QZKOMHcjs.serializeWithEncoding.call(void 0,
|
|
733
759
|
encoding,
|
|
734
760
|
responseData,
|
|
735
|
-
|
|
761
|
+
_chunkTI72NLP3cjs.HTTP_ACTION_RESPONSE_VERSIONED
|
|
736
762
|
);
|
|
737
763
|
return c.body(serialized, 200, {
|
|
738
|
-
"Content-Type":
|
|
764
|
+
"Content-Type": _chunkB4QZKOMHcjs.contentTypeForEncoding.call(void 0, encoding)
|
|
739
765
|
});
|
|
740
766
|
}
|
|
741
767
|
async function handleConnectionMessage(c, _runConfig, actorDriver, connId, connToken, actorId) {
|
|
742
768
|
const encoding = getRequestEncoding(c.req);
|
|
743
769
|
const arrayBuffer = await c.req.arrayBuffer();
|
|
744
|
-
const message =
|
|
770
|
+
const message = _chunkB4QZKOMHcjs.deserializeWithEncoding.call(void 0,
|
|
745
771
|
encoding,
|
|
746
772
|
new Uint8Array(arrayBuffer),
|
|
747
|
-
|
|
773
|
+
_chunkTI72NLP3cjs.TO_SERVER_VERSIONED
|
|
748
774
|
);
|
|
749
775
|
const actor2 = await actorDriver.loadActor(actorId);
|
|
750
776
|
const conn = actor2.conns.get(connId);
|
|
@@ -778,27 +804,30 @@ async function handleConnectionClose(c, _runConfig, actorDriver, connId, connTok
|
|
|
778
804
|
async function handleRawWebSocketHandler(req, path4, actorDriver, actorId) {
|
|
779
805
|
const actor2 = await actorDriver.loadActor(actorId);
|
|
780
806
|
return {
|
|
781
|
-
onOpen: (
|
|
782
|
-
const
|
|
807
|
+
onOpen: (evt, ws) => {
|
|
808
|
+
const rivetRequestId = evt == null ? void 0 : evt.rivetRequestId;
|
|
809
|
+
const isHibernatable = actor2[_chunkHSO2H2SBcjs.PERSIST_SYMBOL].hibernatableWebSocket.findIndex(
|
|
810
|
+
(ws2) => _chunkV6C34TVHcjs.arrayBuffersEqual.call(void 0, ws2.requestId, rivetRequestId)
|
|
811
|
+
) !== -1;
|
|
812
|
+
const adapter = new HonoWebSocketAdapter(
|
|
813
|
+
ws,
|
|
814
|
+
rivetRequestId,
|
|
815
|
+
isHibernatable
|
|
816
|
+
);
|
|
783
817
|
ws.__adapter = adapter;
|
|
784
|
-
const
|
|
785
|
-
const pathname = url.pathname.replace(/^\/raw\/websocket\/?/, "") || "/";
|
|
786
|
-
const normalizedPath = (pathname.startsWith("/") ? pathname : "/" + pathname) + url.search;
|
|
818
|
+
const newPath = truncateRawWebSocketPathPrefix(path4);
|
|
787
819
|
let newRequest;
|
|
788
820
|
if (req) {
|
|
789
|
-
newRequest = new Request(`http://actor${
|
|
821
|
+
newRequest = new Request(`http://actor${newPath}`, req);
|
|
790
822
|
} else {
|
|
791
|
-
newRequest = new Request(`http://actor${
|
|
823
|
+
newRequest = new Request(`http://actor${newPath}`, {
|
|
792
824
|
method: "GET"
|
|
793
825
|
});
|
|
794
826
|
}
|
|
795
827
|
actor2.rLog.debug({
|
|
796
828
|
msg: "rewriting websocket url",
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
pathname: url.pathname,
|
|
800
|
-
search: url.search,
|
|
801
|
-
normalizedPath
|
|
829
|
+
fromPath: path4,
|
|
830
|
+
toUrl: newRequest.url
|
|
802
831
|
});
|
|
803
832
|
actor2.handleWebSocket(adapter, {
|
|
804
833
|
request: newRequest
|
|
@@ -825,11 +854,11 @@ async function handleRawWebSocketHandler(req, path4, actorDriver, actorId) {
|
|
|
825
854
|
};
|
|
826
855
|
}
|
|
827
856
|
function getRequestEncoding(req) {
|
|
828
|
-
const encodingParam = req.header(
|
|
857
|
+
const encodingParam = req.header(_chunkB4QZKOMHcjs.HEADER_ENCODING);
|
|
829
858
|
if (!encodingParam) {
|
|
830
859
|
throw new (0, _chunkKSRXX3Z4cjs.InvalidEncoding)("undefined");
|
|
831
860
|
}
|
|
832
|
-
const result =
|
|
861
|
+
const result = _chunkB4QZKOMHcjs.EncodingSchema.safeParse(encodingParam);
|
|
833
862
|
if (!result.success) {
|
|
834
863
|
throw new (0, _chunkKSRXX3Z4cjs.InvalidEncoding)(encodingParam);
|
|
835
864
|
}
|
|
@@ -839,7 +868,7 @@ function getRequestExposeInternalError(_req) {
|
|
|
839
868
|
return false;
|
|
840
869
|
}
|
|
841
870
|
function getRequestConnParams(req) {
|
|
842
|
-
const paramsParam = req.header(
|
|
871
|
+
const paramsParam = req.header(_chunkB4QZKOMHcjs.HEADER_CONN_PARAMS);
|
|
843
872
|
if (!paramsParam) {
|
|
844
873
|
return null;
|
|
845
874
|
}
|
|
@@ -847,10 +876,16 @@ function getRequestConnParams(req) {
|
|
|
847
876
|
return JSON.parse(paramsParam);
|
|
848
877
|
} catch (err) {
|
|
849
878
|
throw new (0, _chunkKSRXX3Z4cjs.InvalidParams)(
|
|
850
|
-
`Invalid params JSON: ${
|
|
879
|
+
`Invalid params JSON: ${_chunkV6C34TVHcjs.stringifyError.call(void 0, err)}`
|
|
851
880
|
);
|
|
852
881
|
}
|
|
853
882
|
}
|
|
883
|
+
function truncateRawWebSocketPathPrefix(path4) {
|
|
884
|
+
const url = new URL(path4, "http://actor");
|
|
885
|
+
const pathname = url.pathname.replace(/^\/raw\/websocket\/?/, "") || "/";
|
|
886
|
+
const normalizedPath = (pathname.startsWith("/") ? pathname : "/" + pathname) + url.search;
|
|
887
|
+
return normalizedPath;
|
|
888
|
+
}
|
|
854
889
|
|
|
855
890
|
// src/common/router.ts
|
|
856
891
|
|
|
@@ -881,7 +916,7 @@ function buildActorNames(registryConfig) {
|
|
|
881
916
|
|
|
882
917
|
// src/common/router.ts
|
|
883
918
|
function logger2() {
|
|
884
|
-
return
|
|
919
|
+
return _chunkHZ4ZM3FLcjs.getLogger.call(void 0, "router");
|
|
885
920
|
}
|
|
886
921
|
function loggerMiddleware(logger8) {
|
|
887
922
|
return async (c, next) => {
|
|
@@ -899,7 +934,7 @@ function loggerMiddleware(logger8) {
|
|
|
899
934
|
reqSize: c.req.header("content-length"),
|
|
900
935
|
resSize: c.res.headers.get("content-length"),
|
|
901
936
|
userAgent: c.req.header("user-agent"),
|
|
902
|
-
...
|
|
937
|
+
..._chunkV6C34TVHcjs.getEnvUniversal.call(void 0, "_RIVET_LOG_HEADERS") ? { allHeaders: JSON.stringify(c.req.header()) } : {}
|
|
903
938
|
});
|
|
904
939
|
};
|
|
905
940
|
}
|
|
@@ -908,7 +943,7 @@ function handleRouteNotFound(c) {
|
|
|
908
943
|
}
|
|
909
944
|
function handleRouteError(error, c) {
|
|
910
945
|
const exposeInternalError = getRequestExposeInternalError(c.req.raw);
|
|
911
|
-
const { statusCode, group, code, message, metadata } =
|
|
946
|
+
const { statusCode, group, code, message, metadata } = _chunkV6C34TVHcjs.deconstructError.call(void 0,
|
|
912
947
|
error,
|
|
913
948
|
logger2(),
|
|
914
949
|
{
|
|
@@ -923,29 +958,29 @@ function handleRouteError(error, c) {
|
|
|
923
958
|
} catch (_) {
|
|
924
959
|
encoding = "json";
|
|
925
960
|
}
|
|
926
|
-
const output =
|
|
961
|
+
const output = _chunkB4QZKOMHcjs.serializeWithEncoding.call(void 0,
|
|
927
962
|
encoding,
|
|
928
963
|
{
|
|
929
964
|
group,
|
|
930
965
|
code,
|
|
931
966
|
message,
|
|
932
967
|
// TODO: Cannot serialize non-binary meta since it requires ArrayBuffer atm
|
|
933
|
-
metadata:
|
|
968
|
+
metadata: _chunkB4QZKOMHcjs.encodingIsBinary.call(void 0, encoding) ? _chunkV6C34TVHcjs.bufferToArrayBuffer.call(void 0, cbor2.encode(metadata)) : null
|
|
934
969
|
},
|
|
935
|
-
|
|
970
|
+
_chunkTI72NLP3cjs.HTTP_RESPONSE_ERROR_VERSIONED
|
|
936
971
|
);
|
|
937
972
|
return c.body(output, { status: statusCode });
|
|
938
973
|
}
|
|
939
974
|
function handleMetadataRequest(c, registryConfig, runConfig) {
|
|
940
975
|
const response = {
|
|
941
976
|
runtime: "rivetkit",
|
|
942
|
-
version:
|
|
977
|
+
version: _chunkV6C34TVHcjs.VERSION,
|
|
943
978
|
runner: {
|
|
944
979
|
kind: runConfig.runnerKind === "serverless" ? { serverless: {} } : { normal: {} }
|
|
945
980
|
},
|
|
946
981
|
actorNames: buildActorNames(registryConfig),
|
|
947
982
|
// Do not return client endpoint if default server disabled
|
|
948
|
-
clientEndpoint: _nullishCoalesce(runConfig.overrideServerAddress, () => ( (runConfig.disableDefaultServer ? void 0 :
|
|
983
|
+
clientEndpoint: _nullishCoalesce(runConfig.overrideServerAddress, () => ( (runConfig.disableDefaultServer ? void 0 : _chunkHSO2H2SBcjs.getEndpoint.call(void 0, runConfig))))
|
|
949
984
|
};
|
|
950
985
|
return c.json(response);
|
|
951
986
|
}
|
|
@@ -953,7 +988,7 @@ function handleHealthRequest(c) {
|
|
|
953
988
|
return c.json({
|
|
954
989
|
status: "ok",
|
|
955
990
|
runtime: "rivetkit",
|
|
956
|
-
version:
|
|
991
|
+
version: _chunkV6C34TVHcjs.VERSION
|
|
957
992
|
});
|
|
958
993
|
}
|
|
959
994
|
|
|
@@ -962,7 +997,16 @@ function createActorRouter(runConfig, actorDriver, isTest) {
|
|
|
962
997
|
const router = new (0, _hono.Hono)({
|
|
963
998
|
strict: false
|
|
964
999
|
});
|
|
965
|
-
router.use("*", loggerMiddleware(
|
|
1000
|
+
router.use("*", loggerMiddleware(_chunkB4QZKOMHcjs.loggerWithoutContext.call(void 0, )));
|
|
1001
|
+
router.use("*", async (c, next) => {
|
|
1002
|
+
const actor2 = await actorDriver.loadActor(c.env.actorId);
|
|
1003
|
+
actor2.__beginHonoHttpRequest();
|
|
1004
|
+
try {
|
|
1005
|
+
await next();
|
|
1006
|
+
} finally {
|
|
1007
|
+
actor2.__endHonoHttpRequest();
|
|
1008
|
+
}
|
|
1009
|
+
});
|
|
966
1010
|
router.get("/", (c) => {
|
|
967
1011
|
return c.text(
|
|
968
1012
|
"This is an RivetKit actor.\n\nLearn more at https://rivetkit.org"
|
|
@@ -993,7 +1037,7 @@ function createActorRouter(runConfig, actorDriver, isTest) {
|
|
|
993
1037
|
return c.json({ success: true });
|
|
994
1038
|
});
|
|
995
1039
|
}
|
|
996
|
-
router.get(
|
|
1040
|
+
router.get(_chunkB4QZKOMHcjs.PATH_CONNECT_WEBSOCKET, async (c) => {
|
|
997
1041
|
var _a;
|
|
998
1042
|
const upgradeWebSocket = (_a = runConfig.getUpgradeWebSocket) == null ? void 0 : _a.call(runConfig);
|
|
999
1043
|
if (upgradeWebSocket) {
|
|
@@ -1006,28 +1050,28 @@ function createActorRouter(runConfig, actorDriver, isTest) {
|
|
|
1006
1050
|
if (protocols) {
|
|
1007
1051
|
const protocolList = protocols.split(",").map((p) => p.trim());
|
|
1008
1052
|
for (const protocol of protocolList) {
|
|
1009
|
-
if (protocol.startsWith(
|
|
1053
|
+
if (protocol.startsWith(_chunkB4QZKOMHcjs.WS_PROTOCOL_ENCODING)) {
|
|
1010
1054
|
encodingRaw = protocol.substring(
|
|
1011
|
-
|
|
1055
|
+
_chunkB4QZKOMHcjs.WS_PROTOCOL_ENCODING.length
|
|
1012
1056
|
);
|
|
1013
|
-
} else if (protocol.startsWith(
|
|
1057
|
+
} else if (protocol.startsWith(_chunkB4QZKOMHcjs.WS_PROTOCOL_CONN_PARAMS)) {
|
|
1014
1058
|
connParamsRaw = decodeURIComponent(
|
|
1015
1059
|
protocol.substring(
|
|
1016
|
-
|
|
1060
|
+
_chunkB4QZKOMHcjs.WS_PROTOCOL_CONN_PARAMS.length
|
|
1017
1061
|
)
|
|
1018
1062
|
);
|
|
1019
|
-
} else if (protocol.startsWith(
|
|
1063
|
+
} else if (protocol.startsWith(_chunkB4QZKOMHcjs.WS_PROTOCOL_CONN_ID)) {
|
|
1020
1064
|
connIdRaw = protocol.substring(
|
|
1021
|
-
|
|
1065
|
+
_chunkB4QZKOMHcjs.WS_PROTOCOL_CONN_ID.length
|
|
1022
1066
|
);
|
|
1023
|
-
} else if (protocol.startsWith(
|
|
1067
|
+
} else if (protocol.startsWith(_chunkB4QZKOMHcjs.WS_PROTOCOL_CONN_TOKEN)) {
|
|
1024
1068
|
connTokenRaw = protocol.substring(
|
|
1025
|
-
|
|
1069
|
+
_chunkB4QZKOMHcjs.WS_PROTOCOL_CONN_TOKEN.length
|
|
1026
1070
|
);
|
|
1027
1071
|
}
|
|
1028
1072
|
}
|
|
1029
1073
|
}
|
|
1030
|
-
const encoding =
|
|
1074
|
+
const encoding = _chunkB4QZKOMHcjs.EncodingSchema.parse(encodingRaw);
|
|
1031
1075
|
const connParams = connParamsRaw ? JSON.parse(connParamsRaw) : void 0;
|
|
1032
1076
|
return await handleWebSocketConnect(
|
|
1033
1077
|
c2.req.raw,
|
|
@@ -1036,10 +1080,11 @@ function createActorRouter(runConfig, actorDriver, isTest) {
|
|
|
1036
1080
|
c2.env.actorId,
|
|
1037
1081
|
encoding,
|
|
1038
1082
|
connParams,
|
|
1083
|
+
_chunkHSO2H2SBcjs.generateConnRequestId.call(void 0, ),
|
|
1039
1084
|
connIdRaw,
|
|
1040
1085
|
connTokenRaw
|
|
1041
1086
|
);
|
|
1042
|
-
})(c,
|
|
1087
|
+
})(c, _chunkV6C34TVHcjs.noopNext.call(void 0, ));
|
|
1043
1088
|
} else {
|
|
1044
1089
|
return c.text(
|
|
1045
1090
|
"WebSockets are not enabled for this driver. Use SSE instead.",
|
|
@@ -1061,8 +1106,8 @@ function createActorRouter(runConfig, actorDriver, isTest) {
|
|
|
1061
1106
|
);
|
|
1062
1107
|
});
|
|
1063
1108
|
router.post("/connections/message", async (c) => {
|
|
1064
|
-
const connId = c.req.header(
|
|
1065
|
-
const connToken = c.req.header(
|
|
1109
|
+
const connId = c.req.header(_chunkB4QZKOMHcjs.HEADER_CONN_ID);
|
|
1110
|
+
const connToken = c.req.header(_chunkB4QZKOMHcjs.HEADER_CONN_TOKEN);
|
|
1066
1111
|
if (!connId || !connToken) {
|
|
1067
1112
|
throw new Error("Missing required parameters");
|
|
1068
1113
|
}
|
|
@@ -1076,8 +1121,8 @@ function createActorRouter(runConfig, actorDriver, isTest) {
|
|
|
1076
1121
|
);
|
|
1077
1122
|
});
|
|
1078
1123
|
router.post("/connections/close", async (c) => {
|
|
1079
|
-
const connId = c.req.header(
|
|
1080
|
-
const connToken = c.req.header(
|
|
1124
|
+
const connId = c.req.header(_chunkB4QZKOMHcjs.HEADER_CONN_ID);
|
|
1125
|
+
const connToken = c.req.header(_chunkB4QZKOMHcjs.HEADER_CONN_TOKEN);
|
|
1081
1126
|
if (!connId || !connToken) {
|
|
1082
1127
|
throw new Error("Missing required parameters");
|
|
1083
1128
|
}
|
|
@@ -1101,7 +1146,7 @@ function createActorRouter(runConfig, actorDriver, isTest) {
|
|
|
1101
1146
|
body: c.req.raw.body,
|
|
1102
1147
|
duplex: "half"
|
|
1103
1148
|
});
|
|
1104
|
-
|
|
1149
|
+
_chunkB4QZKOMHcjs.loggerWithoutContext.call(void 0, ).debug({
|
|
1105
1150
|
msg: "rewriting http url",
|
|
1106
1151
|
from: c.req.url,
|
|
1107
1152
|
to: correctedRequest.url
|
|
@@ -1112,14 +1157,14 @@ function createActorRouter(runConfig, actorDriver, isTest) {
|
|
|
1112
1157
|
}
|
|
1113
1158
|
return response;
|
|
1114
1159
|
});
|
|
1115
|
-
router.get(`${
|
|
1160
|
+
router.get(`${_chunkB4QZKOMHcjs.PATH_RAW_WEBSOCKET_PREFIX}*`, async (c) => {
|
|
1116
1161
|
var _a;
|
|
1117
1162
|
const upgradeWebSocket = (_a = runConfig.getUpgradeWebSocket) == null ? void 0 : _a.call(runConfig);
|
|
1118
1163
|
if (upgradeWebSocket) {
|
|
1119
1164
|
return upgradeWebSocket(async (c2) => {
|
|
1120
1165
|
const url = new URL(c2.req.url);
|
|
1121
1166
|
const pathWithQuery = c2.req.path + url.search;
|
|
1122
|
-
|
|
1167
|
+
_chunkB4QZKOMHcjs.loggerWithoutContext.call(void 0, ).debug({
|
|
1123
1168
|
msg: "actor router raw websocket",
|
|
1124
1169
|
path: c2.req.path,
|
|
1125
1170
|
url: c2.req.url,
|
|
@@ -1132,7 +1177,7 @@ function createActorRouter(runConfig, actorDriver, isTest) {
|
|
|
1132
1177
|
actorDriver,
|
|
1133
1178
|
c2.env.actorId
|
|
1134
1179
|
);
|
|
1135
|
-
})(c,
|
|
1180
|
+
})(c, _chunkV6C34TVHcjs.noopNext.call(void 0, ));
|
|
1136
1181
|
} else {
|
|
1137
1182
|
return c.text(
|
|
1138
1183
|
"WebSockets are not enabled for this driver. Use SSE instead.",
|
|
@@ -1140,22 +1185,18 @@ function createActorRouter(runConfig, actorDriver, isTest) {
|
|
|
1140
1185
|
);
|
|
1141
1186
|
}
|
|
1142
1187
|
});
|
|
1143
|
-
if (
|
|
1188
|
+
if (_chunk2GJILCGQcjs.isInspectorEnabled.call(void 0, runConfig, "actor")) {
|
|
1144
1189
|
router.route(
|
|
1145
1190
|
"/inspect",
|
|
1146
|
-
new (0, _hono.Hono)().use(
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
c.set("inspector", inspector);
|
|
1156
|
-
return next();
|
|
1157
|
-
}
|
|
1158
|
-
).route("/", _chunkR6XOZKMUcjs.createActorInspectorRouter.call(void 0, ))
|
|
1191
|
+
new (0, _hono.Hono)().use(_chunk2GJILCGQcjs.secureInspector.call(void 0, runConfig), async (c, next) => {
|
|
1192
|
+
const inspector = (await actorDriver.loadActor(c.env.actorId)).inspector;
|
|
1193
|
+
_invariant2.default.call(void 0,
|
|
1194
|
+
inspector,
|
|
1195
|
+
"inspector not supported on this platform"
|
|
1196
|
+
);
|
|
1197
|
+
c.set("inspector", inspector);
|
|
1198
|
+
return next();
|
|
1199
|
+
}).route("/", _chunkHSO2H2SBcjs.createActorInspectorRouter.call(void 0, ))
|
|
1159
1200
|
);
|
|
1160
1201
|
}
|
|
1161
1202
|
router.notFound(handleRouteNotFound);
|
|
@@ -1166,13 +1207,13 @@ function createActorRouter(runConfig, actorDriver, isTest) {
|
|
|
1166
1207
|
// src/actor/mod.ts
|
|
1167
1208
|
function actor(input) {
|
|
1168
1209
|
const config2 = ActorConfigSchema.parse(input);
|
|
1169
|
-
return new (0,
|
|
1210
|
+
return new (0, _chunkHSO2H2SBcjs.ActorDefinition)(config2);
|
|
1170
1211
|
}
|
|
1171
1212
|
|
|
1172
1213
|
// src/common/inline-websocket-adapter2.ts
|
|
1173
1214
|
var _ws2 = require('hono/ws');
|
|
1174
1215
|
function logger3() {
|
|
1175
|
-
return
|
|
1216
|
+
return _chunkHZ4ZM3FLcjs.getLogger.call(void 0, "fake-event-source2");
|
|
1176
1217
|
}
|
|
1177
1218
|
var InlineWebSocketAdapter2 = (_class2 = class {
|
|
1178
1219
|
// WebSocket readyState values
|
|
@@ -1535,10 +1576,11 @@ var KEYS = {
|
|
|
1535
1576
|
|
|
1536
1577
|
// src/drivers/engine/log.ts
|
|
1537
1578
|
function logger4() {
|
|
1538
|
-
return
|
|
1579
|
+
return _chunkHZ4ZM3FLcjs.getLogger.call(void 0, "driver-engine");
|
|
1539
1580
|
}
|
|
1540
1581
|
|
|
1541
1582
|
// src/drivers/engine/actor-driver.ts
|
|
1583
|
+
var RUNNER_SSE_PING_INTERVAL = 1e3;
|
|
1542
1584
|
var EngineActorDriver = class {
|
|
1543
1585
|
#registryConfig;
|
|
1544
1586
|
#runConfig;
|
|
@@ -1550,14 +1592,18 @@ var EngineActorDriver = class {
|
|
|
1550
1592
|
#version = 1;
|
|
1551
1593
|
// Version for the runner protocol
|
|
1552
1594
|
#alarmTimeout;
|
|
1553
|
-
#runnerStarted =
|
|
1554
|
-
#runnerStopped =
|
|
1595
|
+
#runnerStarted = _chunkV6C34TVHcjs.promiseWithResolvers.call(void 0, );
|
|
1596
|
+
#runnerStopped = _chunkV6C34TVHcjs.promiseWithResolvers.call(void 0, );
|
|
1597
|
+
#isRunnerStopped = false;
|
|
1598
|
+
// WebSocket message acknowledgment debouncing
|
|
1599
|
+
#wsAckQueue = /* @__PURE__ */ new Map();
|
|
1600
|
+
#wsAckFlushInterval;
|
|
1555
1601
|
constructor(registryConfig, runConfig, managerDriver, inlineClient) {
|
|
1556
1602
|
this.#registryConfig = registryConfig;
|
|
1557
1603
|
this.#runConfig = runConfig;
|
|
1558
1604
|
this.#managerDriver = managerDriver;
|
|
1559
1605
|
this.#inlineClient = inlineClient;
|
|
1560
|
-
const token =
|
|
1606
|
+
const token = runConfig.token;
|
|
1561
1607
|
if (token && runConfig.inspector && runConfig.inspector.enabled) {
|
|
1562
1608
|
runConfig.inspector.token = () => token;
|
|
1563
1609
|
}
|
|
@@ -1569,12 +1615,12 @@ var EngineActorDriver = class {
|
|
|
1569
1615
|
let hasDisconnected = false;
|
|
1570
1616
|
const engineRunnerConfig = {
|
|
1571
1617
|
version: this.#version,
|
|
1572
|
-
endpoint:
|
|
1618
|
+
endpoint: _chunkHSO2H2SBcjs.getEndpoint.call(void 0, runConfig),
|
|
1573
1619
|
token,
|
|
1574
|
-
namespace:
|
|
1575
|
-
totalSlots:
|
|
1576
|
-
runnerName:
|
|
1577
|
-
runnerKey: runConfig.runnerKey,
|
|
1620
|
+
namespace: runConfig.namespace,
|
|
1621
|
+
totalSlots: runConfig.totalSlots,
|
|
1622
|
+
runnerName: runConfig.runnerName,
|
|
1623
|
+
runnerKey: _nullishCoalesce(runConfig.runnerKey, () => ( crypto.randomUUID())),
|
|
1578
1624
|
metadata: {
|
|
1579
1625
|
inspectorToken: this.#runConfig.inspector.token()
|
|
1580
1626
|
},
|
|
@@ -1595,22 +1641,126 @@ var EngineActorDriver = class {
|
|
|
1595
1641
|
}
|
|
1596
1642
|
this.#runnerStarted.resolve(void 0);
|
|
1597
1643
|
},
|
|
1598
|
-
onDisconnected: () => {
|
|
1644
|
+
onDisconnected: (code, reason) => {
|
|
1599
1645
|
logger4().warn({
|
|
1600
1646
|
msg: "runner disconnected",
|
|
1601
1647
|
namespace: this.#runConfig.namespace,
|
|
1602
|
-
runnerName: this.#runConfig.runnerName
|
|
1648
|
+
runnerName: this.#runConfig.runnerName,
|
|
1649
|
+
code,
|
|
1650
|
+
reason
|
|
1603
1651
|
});
|
|
1604
1652
|
hasDisconnected = true;
|
|
1605
1653
|
},
|
|
1606
1654
|
onShutdown: () => {
|
|
1607
1655
|
this.#runnerStopped.resolve(void 0);
|
|
1656
|
+
this.#isRunnerStopped = true;
|
|
1608
1657
|
},
|
|
1609
1658
|
fetch: this.#runnerFetch.bind(this),
|
|
1610
1659
|
websocket: this.#runnerWebSocket.bind(this),
|
|
1611
1660
|
onActorStart: this.#runnerOnActorStart.bind(this),
|
|
1612
1661
|
onActorStop: this.#runnerOnActorStop.bind(this),
|
|
1613
|
-
logger:
|
|
1662
|
+
logger: _chunkHZ4ZM3FLcjs.getLogger.call(void 0, "engine-runner"),
|
|
1663
|
+
getActorHibernationConfig: (actorId, requestId, request) => {
|
|
1664
|
+
var _a;
|
|
1665
|
+
const url = new URL(request.url);
|
|
1666
|
+
const path4 = url.pathname;
|
|
1667
|
+
const actorInstance = this.#runner.getActor(actorId);
|
|
1668
|
+
if (!actorInstance) {
|
|
1669
|
+
logger4().warn({
|
|
1670
|
+
msg: "actor not found in getActorHibernationConfig",
|
|
1671
|
+
actorId
|
|
1672
|
+
});
|
|
1673
|
+
return { enabled: false, lastMsgIndex: void 0 };
|
|
1674
|
+
}
|
|
1675
|
+
const handler = this.#actors.get(actorId);
|
|
1676
|
+
if (!handler) {
|
|
1677
|
+
logger4().warn({
|
|
1678
|
+
msg: "actor handler not found in getActorHibernationConfig",
|
|
1679
|
+
actorId
|
|
1680
|
+
});
|
|
1681
|
+
return { enabled: false, lastMsgIndex: void 0 };
|
|
1682
|
+
}
|
|
1683
|
+
if (!handler.actor) {
|
|
1684
|
+
logger4().warn({
|
|
1685
|
+
msg: "actor not found in getActorHibernationConfig",
|
|
1686
|
+
actorId
|
|
1687
|
+
});
|
|
1688
|
+
return { enabled: false, lastMsgIndex: void 0 };
|
|
1689
|
+
}
|
|
1690
|
+
const existingWs = handler.actor[_chunkHSO2H2SBcjs.PERSIST_SYMBOL].hibernatableWebSocket.find(
|
|
1691
|
+
(ws) => _chunkV6C34TVHcjs.arrayBuffersEqual.call(void 0, ws.requestId, requestId)
|
|
1692
|
+
);
|
|
1693
|
+
let hibernationConfig;
|
|
1694
|
+
if (existingWs) {
|
|
1695
|
+
hibernationConfig = {
|
|
1696
|
+
enabled: true,
|
|
1697
|
+
lastMsgIndex: Number(existingWs.msgIndex)
|
|
1698
|
+
};
|
|
1699
|
+
} else {
|
|
1700
|
+
if (path4 === _chunkB4QZKOMHcjs.PATH_CONNECT_WEBSOCKET) {
|
|
1701
|
+
hibernationConfig = {
|
|
1702
|
+
enabled: true,
|
|
1703
|
+
lastMsgIndex: void 0
|
|
1704
|
+
};
|
|
1705
|
+
} else if (path4.startsWith(_chunkB4QZKOMHcjs.PATH_RAW_WEBSOCKET_PREFIX)) {
|
|
1706
|
+
const definition = _chunkHSO2H2SBcjs.lookupInRegistry.call(void 0,
|
|
1707
|
+
this.#registryConfig,
|
|
1708
|
+
actorInstance.config.name
|
|
1709
|
+
);
|
|
1710
|
+
const canHibernatWebSocket = (_a = definition.config.options) == null ? void 0 : _a.canHibernatWebSocket;
|
|
1711
|
+
if (canHibernatWebSocket === true) {
|
|
1712
|
+
hibernationConfig = {
|
|
1713
|
+
enabled: true,
|
|
1714
|
+
lastMsgIndex: void 0
|
|
1715
|
+
};
|
|
1716
|
+
} else if (typeof canHibernatWebSocket === "function") {
|
|
1717
|
+
try {
|
|
1718
|
+
const newPath = truncateRawWebSocketPathPrefix(
|
|
1719
|
+
url.pathname
|
|
1720
|
+
);
|
|
1721
|
+
const truncatedRequest = new Request(
|
|
1722
|
+
`http://actor${newPath}`,
|
|
1723
|
+
request
|
|
1724
|
+
);
|
|
1725
|
+
const canHibernate = canHibernatWebSocket(truncatedRequest);
|
|
1726
|
+
hibernationConfig = {
|
|
1727
|
+
enabled: canHibernate,
|
|
1728
|
+
lastMsgIndex: void 0
|
|
1729
|
+
};
|
|
1730
|
+
} catch (error) {
|
|
1731
|
+
logger4().error({
|
|
1732
|
+
msg: "error calling canHibernatWebSocket",
|
|
1733
|
+
error
|
|
1734
|
+
});
|
|
1735
|
+
hibernationConfig = {
|
|
1736
|
+
enabled: false,
|
|
1737
|
+
lastMsgIndex: void 0
|
|
1738
|
+
};
|
|
1739
|
+
}
|
|
1740
|
+
} else {
|
|
1741
|
+
hibernationConfig = {
|
|
1742
|
+
enabled: false,
|
|
1743
|
+
lastMsgIndex: void 0
|
|
1744
|
+
};
|
|
1745
|
+
}
|
|
1746
|
+
} else {
|
|
1747
|
+
logger4().warn({
|
|
1748
|
+
msg: "unexpected path for getActorHibernationConfig",
|
|
1749
|
+
path: path4
|
|
1750
|
+
});
|
|
1751
|
+
hibernationConfig = {
|
|
1752
|
+
enabled: false,
|
|
1753
|
+
lastMsgIndex: void 0
|
|
1754
|
+
};
|
|
1755
|
+
}
|
|
1756
|
+
}
|
|
1757
|
+
handler.actor[_chunkHSO2H2SBcjs.PERSIST_SYMBOL].hibernatableWebSocket.push({
|
|
1758
|
+
requestId,
|
|
1759
|
+
lastSeenTimestamp: BigInt(Date.now()),
|
|
1760
|
+
msgIndex: -1n
|
|
1761
|
+
});
|
|
1762
|
+
return hibernationConfig;
|
|
1763
|
+
}
|
|
1614
1764
|
};
|
|
1615
1765
|
this.#runner = new (0, _enginerunner.Runner)(engineRunnerConfig);
|
|
1616
1766
|
this.#runner.start();
|
|
@@ -1620,6 +1770,7 @@ var EngineActorDriver = class {
|
|
|
1620
1770
|
namespace: runConfig.namespace,
|
|
1621
1771
|
runnerName: runConfig.runnerName
|
|
1622
1772
|
});
|
|
1773
|
+
this.#wsAckFlushInterval = setInterval(() => this.#flushWsAcks(), 1e3);
|
|
1623
1774
|
}
|
|
1624
1775
|
async #loadActorHandler(actorId) {
|
|
1625
1776
|
const handler = this.#actors.get(actorId);
|
|
@@ -1634,6 +1785,16 @@ var EngineActorDriver = class {
|
|
|
1634
1785
|
if (!handler.actor) throw new Error(`Actor ${actorId} failed to load`);
|
|
1635
1786
|
return handler.actor;
|
|
1636
1787
|
}
|
|
1788
|
+
#flushWsAcks() {
|
|
1789
|
+
if (this.#wsAckQueue.size === 0) return;
|
|
1790
|
+
for (const {
|
|
1791
|
+
requestIdBuf: requestId,
|
|
1792
|
+
messageIndex: index
|
|
1793
|
+
} of this.#wsAckQueue.values()) {
|
|
1794
|
+
this.#runner.sendWebsocketMessageAck(requestId, index);
|
|
1795
|
+
}
|
|
1796
|
+
this.#wsAckQueue.clear();
|
|
1797
|
+
}
|
|
1637
1798
|
getContext(actorId) {
|
|
1638
1799
|
return {};
|
|
1639
1800
|
}
|
|
@@ -1654,7 +1815,7 @@ var EngineActorDriver = class {
|
|
|
1654
1815
|
this.#alarmTimeout = void 0;
|
|
1655
1816
|
}
|
|
1656
1817
|
const delay = Math.max(0, timestamp - Date.now());
|
|
1657
|
-
this.#alarmTimeout =
|
|
1818
|
+
this.#alarmTimeout = _chunkV6C34TVHcjs.setLongTimeout.call(void 0, () => {
|
|
1658
1819
|
actor2._onAlarm();
|
|
1659
1820
|
this.#alarmTimeout = void 0;
|
|
1660
1821
|
}, delay);
|
|
@@ -1680,19 +1841,19 @@ var EngineActorDriver = class {
|
|
|
1680
1841
|
let handler = this.#actors.get(actorId);
|
|
1681
1842
|
if (!handler) {
|
|
1682
1843
|
handler = {
|
|
1683
|
-
actorStartPromise:
|
|
1844
|
+
actorStartPromise: _chunkV6C34TVHcjs.promiseWithResolvers.call(void 0, ),
|
|
1684
1845
|
persistedData: void 0
|
|
1685
1846
|
};
|
|
1686
1847
|
this.#actors.set(actorId, handler);
|
|
1687
1848
|
const [persistedValue] = await this.#runner.kvGet(actorId, [
|
|
1688
1849
|
KEYS.PERSIST_DATA
|
|
1689
1850
|
]);
|
|
1690
|
-
handler.persistedData = persistedValue !== null ? persistedValue :
|
|
1851
|
+
handler.persistedData = persistedValue !== null ? persistedValue : _chunkTI72NLP3cjs.serializeEmptyPersistData.call(void 0, input);
|
|
1691
1852
|
}
|
|
1692
1853
|
const name = actorConfig.name;
|
|
1693
1854
|
_invariant2.default.call(void 0, actorConfig.key, "actor should have a key");
|
|
1694
|
-
const key =
|
|
1695
|
-
const definition =
|
|
1855
|
+
const key = _chunkHSO2H2SBcjs.deserializeActorKey.call(void 0, actorConfig.key);
|
|
1856
|
+
const definition = _chunkHSO2H2SBcjs.lookupInRegistry.call(void 0,
|
|
1696
1857
|
this.#registryConfig,
|
|
1697
1858
|
actorConfig.name
|
|
1698
1859
|
);
|
|
@@ -1714,12 +1875,19 @@ var EngineActorDriver = class {
|
|
|
1714
1875
|
logger4().debug({ msg: "runner actor stopping", actorId, generation });
|
|
1715
1876
|
const handler = this.#actors.get(actorId);
|
|
1716
1877
|
if (handler == null ? void 0 : handler.actor) {
|
|
1717
|
-
|
|
1878
|
+
try {
|
|
1879
|
+
await handler.actor._onStop();
|
|
1880
|
+
} catch (err) {
|
|
1881
|
+
logger4().error({
|
|
1882
|
+
msg: "error in _onStop, proceeding with removing actor",
|
|
1883
|
+
err: _chunkV6C34TVHcjs.stringifyError.call(void 0, err)
|
|
1884
|
+
});
|
|
1885
|
+
}
|
|
1718
1886
|
this.#actors.delete(actorId);
|
|
1719
1887
|
}
|
|
1720
1888
|
logger4().debug({ msg: "runner actor stopped", actorId });
|
|
1721
1889
|
}
|
|
1722
|
-
async #runnerFetch(
|
|
1890
|
+
async #runnerFetch(_runner, actorId, _requestIdBuf, request) {
|
|
1723
1891
|
logger4().debug({
|
|
1724
1892
|
msg: "runner fetch",
|
|
1725
1893
|
actorId,
|
|
@@ -1728,8 +1896,9 @@ var EngineActorDriver = class {
|
|
|
1728
1896
|
});
|
|
1729
1897
|
return await this.#actorRouter.fetch(request, { actorId });
|
|
1730
1898
|
}
|
|
1731
|
-
async #runnerWebSocket(
|
|
1899
|
+
async #runnerWebSocket(_runner, actorId, websocketRaw, requestIdBuf, request) {
|
|
1732
1900
|
const websocket = websocketRaw;
|
|
1901
|
+
const requestId = _chunkV6C34TVHcjs.idToStr.call(void 0, requestIdBuf);
|
|
1733
1902
|
logger4().debug({ msg: "runner websocket", actorId, url: request.url });
|
|
1734
1903
|
const url = new URL(request.url);
|
|
1735
1904
|
const protocols = request.headers.get("sec-websocket-protocol");
|
|
@@ -1738,21 +1907,21 @@ var EngineActorDriver = class {
|
|
|
1738
1907
|
if (protocols) {
|
|
1739
1908
|
const protocolList = protocols.split(",").map((p) => p.trim());
|
|
1740
1909
|
for (const protocol of protocolList) {
|
|
1741
|
-
if (protocol.startsWith(
|
|
1910
|
+
if (protocol.startsWith(_chunkB4QZKOMHcjs.WS_PROTOCOL_ENCODING)) {
|
|
1742
1911
|
encodingRaw = protocol.substring(
|
|
1743
|
-
|
|
1912
|
+
_chunkB4QZKOMHcjs.WS_PROTOCOL_ENCODING.length
|
|
1744
1913
|
);
|
|
1745
|
-
} else if (protocol.startsWith(
|
|
1914
|
+
} else if (protocol.startsWith(_chunkB4QZKOMHcjs.WS_PROTOCOL_CONN_PARAMS)) {
|
|
1746
1915
|
connParamsRaw = decodeURIComponent(
|
|
1747
|
-
protocol.substring(
|
|
1916
|
+
protocol.substring(_chunkB4QZKOMHcjs.WS_PROTOCOL_CONN_PARAMS.length)
|
|
1748
1917
|
);
|
|
1749
1918
|
}
|
|
1750
1919
|
}
|
|
1751
1920
|
}
|
|
1752
|
-
const encoding =
|
|
1921
|
+
const encoding = _chunkB4QZKOMHcjs.EncodingSchema.parse(encodingRaw);
|
|
1753
1922
|
const connParams = connParamsRaw ? JSON.parse(connParamsRaw) : void 0;
|
|
1754
1923
|
let wsHandlerPromise;
|
|
1755
|
-
if (url.pathname ===
|
|
1924
|
+
if (url.pathname === _chunkB4QZKOMHcjs.PATH_CONNECT_WEBSOCKET) {
|
|
1756
1925
|
wsHandlerPromise = handleWebSocketConnect(
|
|
1757
1926
|
request,
|
|
1758
1927
|
this.#runConfig,
|
|
@@ -1760,11 +1929,12 @@ var EngineActorDriver = class {
|
|
|
1760
1929
|
actorId,
|
|
1761
1930
|
encoding,
|
|
1762
1931
|
connParams,
|
|
1932
|
+
requestId,
|
|
1763
1933
|
// Extract connId and connToken from protocols if needed
|
|
1764
1934
|
void 0,
|
|
1765
1935
|
void 0
|
|
1766
1936
|
);
|
|
1767
|
-
} else if (url.pathname.startsWith(
|
|
1937
|
+
} else if (url.pathname.startsWith(_chunkB4QZKOMHcjs.PATH_RAW_WEBSOCKET_PREFIX)) {
|
|
1768
1938
|
wsHandlerPromise = handleRawWebSocketHandler(
|
|
1769
1939
|
request,
|
|
1770
1940
|
url.pathname + url.search,
|
|
@@ -1799,8 +1969,29 @@ var EngineActorDriver = class {
|
|
|
1799
1969
|
var _a;
|
|
1800
1970
|
return (_a = x.onMessage) == null ? void 0 : _a.call(x, event, wsContext);
|
|
1801
1971
|
});
|
|
1972
|
+
_invariant2.default.call(void 0, event.rivetRequestId, "missing rivetRequestId");
|
|
1973
|
+
_invariant2.default.call(void 0, event.rivetMessageIndex, "missing rivetMessageIndex");
|
|
1974
|
+
const currentEntry = this.#wsAckQueue.get(requestId);
|
|
1975
|
+
if (currentEntry) {
|
|
1976
|
+
if (event.rivetMessageIndex > currentEntry.messageIndex) {
|
|
1977
|
+
currentEntry.messageIndex = event.rivetMessageIndex;
|
|
1978
|
+
} else {
|
|
1979
|
+
logger4().warn({
|
|
1980
|
+
msg: "received lower index than ack queue for message",
|
|
1981
|
+
requestId,
|
|
1982
|
+
queuedMessageIndex: currentEntry,
|
|
1983
|
+
eventMessageIndex: event.rivetMessageIndex
|
|
1984
|
+
});
|
|
1985
|
+
}
|
|
1986
|
+
} else {
|
|
1987
|
+
this.#wsAckQueue.set(requestId, {
|
|
1988
|
+
requestIdBuf,
|
|
1989
|
+
messageIndex: event.rivetMessageIndex
|
|
1990
|
+
});
|
|
1991
|
+
}
|
|
1802
1992
|
});
|
|
1803
1993
|
websocket.addEventListener("close", (event) => {
|
|
1994
|
+
this.#flushWsAcks();
|
|
1804
1995
|
wsHandlerPromise.then((x) => {
|
|
1805
1996
|
var _a;
|
|
1806
1997
|
return (_a = x.onClose) == null ? void 0 : _a.call(x, event, wsContext);
|
|
@@ -1813,11 +2004,16 @@ var EngineActorDriver = class {
|
|
|
1813
2004
|
});
|
|
1814
2005
|
});
|
|
1815
2006
|
}
|
|
1816
|
-
|
|
2007
|
+
startSleep(actorId) {
|
|
1817
2008
|
this.#runner.sleepActor(actorId);
|
|
1818
2009
|
}
|
|
1819
|
-
async
|
|
2010
|
+
async shutdownRunner(immediate) {
|
|
1820
2011
|
logger4().info({ msg: "stopping engine actor driver" });
|
|
2012
|
+
if (this.#wsAckFlushInterval) {
|
|
2013
|
+
clearInterval(this.#wsAckFlushInterval);
|
|
2014
|
+
this.#wsAckFlushInterval = void 0;
|
|
2015
|
+
}
|
|
2016
|
+
this.#flushWsAcks();
|
|
1821
2017
|
await this.#runner.shutdown(immediate);
|
|
1822
2018
|
}
|
|
1823
2019
|
async serverlessHandleStart(c) {
|
|
@@ -1826,15 +2022,36 @@ var EngineActorDriver = class {
|
|
|
1826
2022
|
});
|
|
1827
2023
|
c.req.raw.signal.addEventListener("abort", () => {
|
|
1828
2024
|
logger4().debug("SSE aborted, shutting down runner");
|
|
1829
|
-
this.
|
|
2025
|
+
this.shutdownRunner(false);
|
|
1830
2026
|
});
|
|
1831
2027
|
await this.#runnerStarted.promise;
|
|
1832
2028
|
const payload = this.#runner.getServerlessInitPacket();
|
|
1833
2029
|
_invariant2.default.call(void 0, payload, "runnerId not set");
|
|
1834
2030
|
await stream.writeSSE({ data: payload });
|
|
2031
|
+
while (true) {
|
|
2032
|
+
if (this.#isRunnerStopped) {
|
|
2033
|
+
logger4().debug({
|
|
2034
|
+
msg: "runner is stopped"
|
|
2035
|
+
});
|
|
2036
|
+
break;
|
|
2037
|
+
}
|
|
2038
|
+
if (stream.closed || stream.aborted) {
|
|
2039
|
+
logger4().debug({
|
|
2040
|
+
msg: "runner sse stream closed",
|
|
2041
|
+
closed: stream.closed,
|
|
2042
|
+
aborted: stream.aborted
|
|
2043
|
+
});
|
|
2044
|
+
break;
|
|
2045
|
+
}
|
|
2046
|
+
await stream.writeSSE({ event: "ping", data: "" });
|
|
2047
|
+
await stream.sleep(RUNNER_SSE_PING_INTERVAL);
|
|
2048
|
+
}
|
|
1835
2049
|
await this.#runnerStopped.promise;
|
|
1836
2050
|
});
|
|
1837
2051
|
}
|
|
2052
|
+
getExtraActorLogParams() {
|
|
2053
|
+
return { runnerId: _nullishCoalesce(this.#runner.runnerId, () => ( "-")) };
|
|
2054
|
+
}
|
|
1838
2055
|
};
|
|
1839
2056
|
|
|
1840
2057
|
// src/drivers/engine/mod.ts
|
|
@@ -1842,7 +2059,7 @@ function createEngineDriver() {
|
|
|
1842
2059
|
return {
|
|
1843
2060
|
name: "engine",
|
|
1844
2061
|
manager: (_registryConfig, runConfig) => {
|
|
1845
|
-
return new (0,
|
|
2062
|
+
return new (0, _chunkHSO2H2SBcjs.RemoteManagerDriver)(runConfig);
|
|
1846
2063
|
},
|
|
1847
2064
|
actor: (registryConfig, runConfig, managerDriver, inlineClient) => {
|
|
1848
2065
|
return new EngineActorDriver(
|
|
@@ -1896,7 +2113,7 @@ var FileSystemActorDriver = class {
|
|
|
1896
2113
|
const state = await this.#state.loadActorStateOrError(actorId);
|
|
1897
2114
|
await this.#state.writeActor(actorId, {
|
|
1898
2115
|
...state,
|
|
1899
|
-
persistedData:
|
|
2116
|
+
persistedData: _chunkV6C34TVHcjs.bufferToArrayBuffer.call(void 0, data)
|
|
1900
2117
|
});
|
|
1901
2118
|
}
|
|
1902
2119
|
async setAlarm(actor2, timestamp) {
|
|
@@ -1905,8 +2122,8 @@ var FileSystemActorDriver = class {
|
|
|
1905
2122
|
getDatabase(actorId) {
|
|
1906
2123
|
return this.#state.createDatabase(actorId);
|
|
1907
2124
|
}
|
|
1908
|
-
|
|
1909
|
-
|
|
2125
|
+
startSleep(actorId) {
|
|
2126
|
+
this.#state.sleepActor(actorId);
|
|
1910
2127
|
}
|
|
1911
2128
|
};
|
|
1912
2129
|
|
|
@@ -1999,13 +2216,13 @@ function decodeActorAlarm(bytes) {
|
|
|
1999
2216
|
// src/schemas/file-system-driver/versioned.ts
|
|
2000
2217
|
var CURRENT_VERSION = 1;
|
|
2001
2218
|
var migrations = /* @__PURE__ */ new Map();
|
|
2002
|
-
var ACTOR_STATE_VERSIONED =
|
|
2219
|
+
var ACTOR_STATE_VERSIONED = _chunkTI72NLP3cjs.createVersionedDataHandler.call(void 0, {
|
|
2003
2220
|
currentVersion: CURRENT_VERSION,
|
|
2004
2221
|
migrations,
|
|
2005
2222
|
serializeVersion: (data) => encodeActorState(data),
|
|
2006
2223
|
deserializeVersion: (bytes) => decodeActorState(bytes)
|
|
2007
2224
|
});
|
|
2008
|
-
var ACTOR_ALARM_VERSIONED =
|
|
2225
|
+
var ACTOR_ALARM_VERSIONED = _chunkTI72NLP3cjs.createVersionedDataHandler.call(void 0, {
|
|
2009
2226
|
currentVersion: CURRENT_VERSION,
|
|
2010
2227
|
migrations,
|
|
2011
2228
|
serializeVersion: (data) => encodeActorAlarm(data),
|
|
@@ -2014,7 +2231,7 @@ var ACTOR_ALARM_VERSIONED = _chunkBIOPK7IBcjs.createVersionedDataHandler.call(vo
|
|
|
2014
2231
|
|
|
2015
2232
|
// src/drivers/file-system/log.ts
|
|
2016
2233
|
function logger5() {
|
|
2017
|
-
return
|
|
2234
|
+
return _chunkHZ4ZM3FLcjs.getLogger.call(void 0, "driver-fs");
|
|
2018
2235
|
}
|
|
2019
2236
|
|
|
2020
2237
|
// src/drivers/file-system/utils.ts
|
|
@@ -2044,7 +2261,7 @@ async function pathExists(path4) {
|
|
|
2044
2261
|
try {
|
|
2045
2262
|
await fs.access(path4);
|
|
2046
2263
|
return true;
|
|
2047
|
-
} catch (
|
|
2264
|
+
} catch (e2) {
|
|
2048
2265
|
return false;
|
|
2049
2266
|
}
|
|
2050
2267
|
}
|
|
@@ -2196,8 +2413,8 @@ var FileSystemGlobalState = class {
|
|
|
2196
2413
|
name,
|
|
2197
2414
|
key,
|
|
2198
2415
|
createdAt: BigInt(Date.now()),
|
|
2199
|
-
persistedData:
|
|
2200
|
-
|
|
2416
|
+
persistedData: _chunkV6C34TVHcjs.bufferToArrayBuffer.call(void 0,
|
|
2417
|
+
_chunkTI72NLP3cjs.serializeEmptyPersistData.call(void 0, input)
|
|
2201
2418
|
)
|
|
2202
2419
|
};
|
|
2203
2420
|
await this.writeActor(actorId, entry.state);
|
|
@@ -2248,8 +2465,8 @@ var FileSystemGlobalState = class {
|
|
|
2248
2465
|
name,
|
|
2249
2466
|
key,
|
|
2250
2467
|
createdAt: BigInt(Date.now()),
|
|
2251
|
-
persistedData:
|
|
2252
|
-
|
|
2468
|
+
persistedData: _chunkV6C34TVHcjs.bufferToArrayBuffer.call(void 0,
|
|
2469
|
+
_chunkTI72NLP3cjs.serializeEmptyPersistData.call(void 0, input)
|
|
2253
2470
|
)
|
|
2254
2471
|
};
|
|
2255
2472
|
await this.writeActor(actorId, entry.state);
|
|
@@ -2269,7 +2486,7 @@ var FileSystemGlobalState = class {
|
|
|
2269
2486
|
await actor2.startPromise.promise.catch();
|
|
2270
2487
|
actor2.removed = true;
|
|
2271
2488
|
_invariant2.default.call(void 0, actor2.actor, "actor should be loaded");
|
|
2272
|
-
await actor2.actor.
|
|
2489
|
+
await actor2.actor._onStop();
|
|
2273
2490
|
this.#actors.delete(actorId);
|
|
2274
2491
|
}
|
|
2275
2492
|
/**
|
|
@@ -2303,7 +2520,7 @@ var FileSystemGlobalState = class {
|
|
|
2303
2520
|
} catch (error) {
|
|
2304
2521
|
try {
|
|
2305
2522
|
await fs2.unlink(tempPath);
|
|
2306
|
-
} catch (
|
|
2523
|
+
} catch (e3) {
|
|
2307
2524
|
}
|
|
2308
2525
|
logger5().error({
|
|
2309
2526
|
msg: "failed to write alarm",
|
|
@@ -2336,7 +2553,7 @@ var FileSystemGlobalState = class {
|
|
|
2336
2553
|
} catch (error) {
|
|
2337
2554
|
try {
|
|
2338
2555
|
await fs2.unlink(tempPath);
|
|
2339
|
-
} catch (
|
|
2556
|
+
} catch (e4) {
|
|
2340
2557
|
}
|
|
2341
2558
|
logger5().error({
|
|
2342
2559
|
msg: "failed to save actor state",
|
|
@@ -2388,9 +2605,9 @@ var FileSystemGlobalState = class {
|
|
|
2388
2605
|
if (entry.actor) {
|
|
2389
2606
|
return entry.actor;
|
|
2390
2607
|
}
|
|
2391
|
-
entry.startPromise =
|
|
2608
|
+
entry.startPromise = _chunkV6C34TVHcjs.promiseWithResolvers.call(void 0, );
|
|
2392
2609
|
try {
|
|
2393
|
-
const definition =
|
|
2610
|
+
const definition = _chunkHSO2H2SBcjs.lookupInRegistry.call(void 0,
|
|
2394
2611
|
registryConfig,
|
|
2395
2612
|
entry.state.name
|
|
2396
2613
|
);
|
|
@@ -2459,7 +2676,7 @@ var FileSystemGlobalState = class {
|
|
|
2459
2676
|
logger5().error({
|
|
2460
2677
|
msg: "failed to read alarm file",
|
|
2461
2678
|
file,
|
|
2462
|
-
error:
|
|
2679
|
+
error: _chunkV6C34TVHcjs.stringifyError.call(void 0, err)
|
|
2463
2680
|
});
|
|
2464
2681
|
}
|
|
2465
2682
|
}
|
|
@@ -2489,7 +2706,7 @@ var FileSystemGlobalState = class {
|
|
|
2489
2706
|
(_a = entry.alarmTimeout) == null ? void 0 : _a.abort();
|
|
2490
2707
|
entry.alarmTimestamp = timestamp;
|
|
2491
2708
|
const delay = Math.max(0, timestamp - Date.now());
|
|
2492
|
-
entry.alarmTimeout =
|
|
2709
|
+
entry.alarmTimeout = _chunkV6C34TVHcjs.setLongTimeout.call(void 0, async () => {
|
|
2493
2710
|
entry.alarmTimestamp = void 0;
|
|
2494
2711
|
if (this.#persist) {
|
|
2495
2712
|
try {
|
|
@@ -2499,7 +2716,7 @@ var FileSystemGlobalState = class {
|
|
|
2499
2716
|
logger5().debug({
|
|
2500
2717
|
msg: "failed to remove alarm file",
|
|
2501
2718
|
actorId,
|
|
2502
|
-
error:
|
|
2719
|
+
error: _chunkV6C34TVHcjs.stringifyError.call(void 0, err)
|
|
2503
2720
|
});
|
|
2504
2721
|
}
|
|
2505
2722
|
}
|
|
@@ -2526,7 +2743,7 @@ var FileSystemGlobalState = class {
|
|
|
2526
2743
|
logger5().error({
|
|
2527
2744
|
msg: "failed to handle alarm",
|
|
2528
2745
|
actorId,
|
|
2529
|
-
error:
|
|
2746
|
+
error: _chunkV6C34TVHcjs.stringifyError.call(void 0, err)
|
|
2530
2747
|
});
|
|
2531
2748
|
}
|
|
2532
2749
|
}, delay);
|
|
@@ -2536,7 +2753,7 @@ var FileSystemGlobalState = class {
|
|
|
2536
2753
|
if (fsSync2.existsSync(tokenPath)) {
|
|
2537
2754
|
return fsSync2.readFileSync(tokenPath, "utf-8");
|
|
2538
2755
|
}
|
|
2539
|
-
const newToken =
|
|
2756
|
+
const newToken = _chunkB4QZKOMHcjs.generateRandomString.call(void 0, );
|
|
2540
2757
|
fsSync2.writeFileSync(tokenPath, newToken);
|
|
2541
2758
|
return newToken;
|
|
2542
2759
|
}
|
|
@@ -2598,13 +2815,13 @@ function createManagerInspectorRouter() {
|
|
|
2598
2815
|
});
|
|
2599
2816
|
return c.json(actors, 200);
|
|
2600
2817
|
} catch (error) {
|
|
2601
|
-
|
|
2818
|
+
_chunk2GJILCGQcjs.inspectorLogger.call(void 0, ).error({
|
|
2602
2819
|
msg: "Failed to fetch actors",
|
|
2603
2820
|
error
|
|
2604
2821
|
});
|
|
2605
2822
|
return c.json("Failed to fetch actors", 500);
|
|
2606
2823
|
}
|
|
2607
|
-
}).post("/actors", _standardvalidator.sValidator.call(void 0, "json",
|
|
2824
|
+
}).post("/actors", _standardvalidator.sValidator.call(void 0, "json", _chunkLMZSOCYDcjs.CreateActorSchema), async (c) => {
|
|
2608
2825
|
const actor2 = await c.var.inspector.accessors.createActor(
|
|
2609
2826
|
c.req.valid("json")
|
|
2610
2827
|
);
|
|
@@ -2630,7 +2847,7 @@ var ManagerInspector = class {
|
|
|
2630
2847
|
|
|
2631
2848
|
constructor(accessors) {
|
|
2632
2849
|
this.accessors = accessors();
|
|
2633
|
-
|
|
2850
|
+
_chunk2GJILCGQcjs.inspectorLogger.call(void 0, ).debug({ msg: "Manager Inspector enabled and ready" });
|
|
2634
2851
|
}
|
|
2635
2852
|
};
|
|
2636
2853
|
|
|
@@ -2686,7 +2903,7 @@ var FileSystemManagerDriver = class {
|
|
|
2686
2903
|
try {
|
|
2687
2904
|
const result = await this.#state.loadActorStateOrError(id);
|
|
2688
2905
|
return transformActor2(result);
|
|
2689
|
-
} catch (
|
|
2906
|
+
} catch (e5) {
|
|
2690
2907
|
return null;
|
|
2691
2908
|
}
|
|
2692
2909
|
},
|
|
@@ -2704,16 +2921,16 @@ var FileSystemManagerDriver = class {
|
|
|
2704
2921
|
actorId
|
|
2705
2922
|
);
|
|
2706
2923
|
return transformActor2(result);
|
|
2707
|
-
} catch (
|
|
2924
|
+
} catch (e6) {
|
|
2708
2925
|
return null;
|
|
2709
2926
|
}
|
|
2710
2927
|
}
|
|
2711
2928
|
};
|
|
2712
2929
|
});
|
|
2713
2930
|
}
|
|
2714
|
-
const inlineClient =
|
|
2931
|
+
const inlineClient = _chunkHSO2H2SBcjs.createClientWithDriver.call(void 0,
|
|
2715
2932
|
this,
|
|
2716
|
-
|
|
2933
|
+
_chunkTI72NLP3cjs.ClientConfigSchema.parse({})
|
|
2717
2934
|
);
|
|
2718
2935
|
this.#actorDriver = this.#driverConfig.actor(
|
|
2719
2936
|
registryConfig,
|
|
@@ -2735,7 +2952,7 @@ var FileSystemManagerDriver = class {
|
|
|
2735
2952
|
async openWebSocket(path4, actorId, encoding, params, connId, connToken) {
|
|
2736
2953
|
const pathOnly = path4.split("?")[0];
|
|
2737
2954
|
const normalizedPath = pathOnly.startsWith("/") ? pathOnly : `/${pathOnly}`;
|
|
2738
|
-
if (normalizedPath ===
|
|
2955
|
+
if (normalizedPath === _chunkB4QZKOMHcjs.PATH_CONNECT_WEBSOCKET) {
|
|
2739
2956
|
const wsHandler = await handleWebSocketConnect(
|
|
2740
2957
|
void 0,
|
|
2741
2958
|
this.#runConfig,
|
|
@@ -2743,11 +2960,12 @@ var FileSystemManagerDriver = class {
|
|
|
2743
2960
|
actorId,
|
|
2744
2961
|
encoding,
|
|
2745
2962
|
params,
|
|
2963
|
+
_chunkHSO2H2SBcjs.generateConnRequestId.call(void 0, ),
|
|
2746
2964
|
connId,
|
|
2747
2965
|
connToken
|
|
2748
2966
|
);
|
|
2749
2967
|
return new InlineWebSocketAdapter2(wsHandler);
|
|
2750
|
-
} else if (normalizedPath.startsWith(
|
|
2968
|
+
} else if (normalizedPath.startsWith(_chunkB4QZKOMHcjs.PATH_RAW_WEBSOCKET_PREFIX) || normalizedPath === "/raw/websocket") {
|
|
2751
2969
|
const wsHandler = await handleRawWebSocketHandler(
|
|
2752
2970
|
void 0,
|
|
2753
2971
|
path4,
|
|
@@ -2770,7 +2988,7 @@ var FileSystemManagerDriver = class {
|
|
|
2770
2988
|
_invariant2.default.call(void 0, upgradeWebSocket, "missing getUpgradeWebSocket");
|
|
2771
2989
|
const pathOnly = path4.split("?")[0];
|
|
2772
2990
|
const normalizedPath = pathOnly.startsWith("/") ? pathOnly : `/${pathOnly}`;
|
|
2773
|
-
if (normalizedPath ===
|
|
2991
|
+
if (normalizedPath === _chunkB4QZKOMHcjs.PATH_CONNECT_WEBSOCKET) {
|
|
2774
2992
|
const wsHandler = await handleWebSocketConnect(
|
|
2775
2993
|
c.req.raw,
|
|
2776
2994
|
this.#runConfig,
|
|
@@ -2778,18 +2996,19 @@ var FileSystemManagerDriver = class {
|
|
|
2778
2996
|
actorId,
|
|
2779
2997
|
encoding,
|
|
2780
2998
|
connParams,
|
|
2999
|
+
_chunkHSO2H2SBcjs.generateConnRequestId.call(void 0, ),
|
|
2781
3000
|
connId,
|
|
2782
3001
|
connToken
|
|
2783
3002
|
);
|
|
2784
|
-
return upgradeWebSocket(() => wsHandler)(c,
|
|
2785
|
-
} else if (normalizedPath.startsWith(
|
|
3003
|
+
return upgradeWebSocket(() => wsHandler)(c, _chunkV6C34TVHcjs.noopNext.call(void 0, ));
|
|
3004
|
+
} else if (normalizedPath.startsWith(_chunkB4QZKOMHcjs.PATH_RAW_WEBSOCKET_PREFIX) || normalizedPath === "/raw/websocket") {
|
|
2786
3005
|
const wsHandler = await handleRawWebSocketHandler(
|
|
2787
3006
|
c.req.raw,
|
|
2788
3007
|
path4,
|
|
2789
3008
|
this.#actorDriver,
|
|
2790
3009
|
actorId
|
|
2791
3010
|
);
|
|
2792
|
-
return upgradeWebSocket(() => wsHandler)(c,
|
|
3011
|
+
return upgradeWebSocket(() => wsHandler)(c, _chunkV6C34TVHcjs.noopNext.call(void 0, ));
|
|
2793
3012
|
} else {
|
|
2794
3013
|
throw new Error(`Unreachable path: ${path4}`);
|
|
2795
3014
|
}
|
|
@@ -2926,13 +3145,13 @@ function chooseDefaultDriver(runConfig) {
|
|
|
2926
3145
|
return runConfig.driver;
|
|
2927
3146
|
}
|
|
2928
3147
|
if (runConfig.endpoint || runConfig.token || runConfig.runnerKind === "serverless") {
|
|
2929
|
-
|
|
3148
|
+
_chunkB4QZKOMHcjs.loggerWithoutContext.call(void 0, ).debug({
|
|
2930
3149
|
msg: "using rivet engine driver",
|
|
2931
3150
|
endpoint: runConfig.endpoint
|
|
2932
3151
|
});
|
|
2933
3152
|
return createEngineDriver();
|
|
2934
3153
|
}
|
|
2935
|
-
|
|
3154
|
+
_chunkB4QZKOMHcjs.loggerWithoutContext.call(void 0, ).debug({ msg: "using default file system driver" });
|
|
2936
3155
|
return createFileSystemOrMemoryDriver(true);
|
|
2937
3156
|
}
|
|
2938
3157
|
|
|
@@ -2946,7 +3165,7 @@ var _promises2 = require('stream/promises');
|
|
|
2946
3165
|
|
|
2947
3166
|
// src/engine-process/log.ts
|
|
2948
3167
|
function logger6() {
|
|
2949
|
-
return
|
|
3168
|
+
return _chunkHZ4ZM3FLcjs.getLogger.call(void 0, "engine-process");
|
|
2950
3169
|
}
|
|
2951
3170
|
|
|
2952
3171
|
// src/engine-process/mod.ts
|
|
@@ -3001,7 +3220,26 @@ async function ensureEngineProcess(options) {
|
|
|
3001
3220
|
cwd: path3.dirname(binaryPath),
|
|
3002
3221
|
stdio: ["inherit", "pipe", "pipe"],
|
|
3003
3222
|
env: {
|
|
3004
|
-
...process.env
|
|
3223
|
+
...process.env,
|
|
3224
|
+
// In development, runners can be terminated without a graceful
|
|
3225
|
+
// shutdown (i.e. SIGKILL instead of SIGTERM). This is treated as a
|
|
3226
|
+
// crash by Rivet Engine in production and implements a backoff for
|
|
3227
|
+
// rescheduling actors in case of a crash loop.
|
|
3228
|
+
//
|
|
3229
|
+
// This is problematic in development since this will cause actors
|
|
3230
|
+
// to become unresponsive if frequently killing your dev server.
|
|
3231
|
+
//
|
|
3232
|
+
// We reduce the timeouts for resetting a runner as healthy in
|
|
3233
|
+
// order to account for this.
|
|
3234
|
+
RIVET__PEGBOARD__RETRY_RESET_DURATION: "100",
|
|
3235
|
+
RIVET__PEGBOARD__BASE_RETRY_TIMEOUT: "100",
|
|
3236
|
+
// Set max exponent to 1 to have a maximum of base_retry_timeout
|
|
3237
|
+
RIVET__PEGBOARD__RESCHEDULE_BACKOFF_MAX_EXPONENT: "1",
|
|
3238
|
+
// Reduce thresholds for faster development iteration
|
|
3239
|
+
//
|
|
3240
|
+
// Default ping interval is 3s, this gives a 2s & 4s grace
|
|
3241
|
+
RIVET__PEGBOARD__RUNNER_ELIGIBLE_THRESHOLD: "5000",
|
|
3242
|
+
RIVET__PEGBOARD__RUNNER_LOST_THRESHOLD: "7000"
|
|
3005
3243
|
}
|
|
3006
3244
|
});
|
|
3007
3245
|
if (!child.pid) {
|
|
@@ -3023,8 +3261,7 @@ async function ensureEngineProcess(options) {
|
|
|
3023
3261
|
msg: "engine process exited, please report this error",
|
|
3024
3262
|
code,
|
|
3025
3263
|
signal,
|
|
3026
|
-
|
|
3027
|
-
support: "https://rivet.dev/discord"
|
|
3264
|
+
..._chunkV6C34TVHcjs.EXTRA_ERROR_LOG
|
|
3028
3265
|
});
|
|
3029
3266
|
stdoutStream.end();
|
|
3030
3267
|
stderrStream.end();
|
|
@@ -3113,8 +3350,7 @@ async function downloadEngineBinaryIfNeeded(binaryPath, version, varDir) {
|
|
|
3113
3350
|
msg: "engine download failed, please report this error",
|
|
3114
3351
|
tempPath,
|
|
3115
3352
|
error,
|
|
3116
|
-
|
|
3117
|
-
support: "https://rivet.dev/discord"
|
|
3353
|
+
..._chunkV6C34TVHcjs.EXTRA_ERROR_LOG
|
|
3118
3354
|
});
|
|
3119
3355
|
try {
|
|
3120
3356
|
await fs3.unlink(tempPath);
|
|
@@ -3195,7 +3431,7 @@ async function fileExists(filePath) {
|
|
|
3195
3431
|
try {
|
|
3196
3432
|
await fs3.access(filePath);
|
|
3197
3433
|
return true;
|
|
3198
|
-
} catch (
|
|
3434
|
+
} catch (e7) {
|
|
3199
3435
|
return false;
|
|
3200
3436
|
}
|
|
3201
3437
|
}
|
|
@@ -3238,11 +3474,42 @@ var _zodopenapi = require('@hono/zod-openapi');
|
|
|
3238
3474
|
|
|
3239
3475
|
|
|
3240
3476
|
|
|
3241
|
-
|
|
3242
3477
|
var _factory = require('hono/factory');
|
|
3243
3478
|
|
|
3244
3479
|
|
|
3245
3480
|
|
|
3481
|
+
// src/common/cors.ts
|
|
3482
|
+
var cors = () => {
|
|
3483
|
+
return async (c, next) => {
|
|
3484
|
+
const origin = c.req.header("origin") || "*";
|
|
3485
|
+
if (c.req.method === "OPTIONS") {
|
|
3486
|
+
const requestHeaders = c.req.header("access-control-request-headers") || "*";
|
|
3487
|
+
c.header("access-control-allow-origin", origin);
|
|
3488
|
+
c.header("access-control-allow-credentials", "true");
|
|
3489
|
+
c.header(
|
|
3490
|
+
"access-control-allow-methods",
|
|
3491
|
+
"GET, POST, PUT, DELETE, OPTIONS, PATCH"
|
|
3492
|
+
);
|
|
3493
|
+
c.header("access-control-allow-headers", requestHeaders);
|
|
3494
|
+
c.header("access-control-expose-headers", "*");
|
|
3495
|
+
c.header("access-control-max-age", "86400");
|
|
3496
|
+
if (origin !== "*") {
|
|
3497
|
+
c.header("vary", "Origin");
|
|
3498
|
+
}
|
|
3499
|
+
c.res.headers.delete("content-length");
|
|
3500
|
+
c.res.headers.delete("content-type");
|
|
3501
|
+
return c.body(null, 204);
|
|
3502
|
+
}
|
|
3503
|
+
await next();
|
|
3504
|
+
c.header("access-control-allow-origin", origin);
|
|
3505
|
+
c.header("access-control-allow-credentials", "true");
|
|
3506
|
+
c.header("access-control-expose-headers", "*");
|
|
3507
|
+
if (origin !== "*") {
|
|
3508
|
+
c.header("vary", "Origin");
|
|
3509
|
+
}
|
|
3510
|
+
};
|
|
3511
|
+
};
|
|
3512
|
+
|
|
3246
3513
|
// src/manager-api/actors.ts
|
|
3247
3514
|
|
|
3248
3515
|
|
|
@@ -3306,17 +3573,17 @@ async function handleWebSocketGatewayPathBased(runConfig, managerDriver, c, acto
|
|
|
3306
3573
|
if (protocols) {
|
|
3307
3574
|
const protocolList = protocols.split(",").map((p) => p.trim());
|
|
3308
3575
|
for (const protocol of protocolList) {
|
|
3309
|
-
if (protocol.startsWith(
|
|
3310
|
-
encodingRaw = protocol.substring(
|
|
3311
|
-
} else if (protocol.startsWith(
|
|
3576
|
+
if (protocol.startsWith(_chunkB4QZKOMHcjs.WS_PROTOCOL_ENCODING)) {
|
|
3577
|
+
encodingRaw = protocol.substring(_chunkB4QZKOMHcjs.WS_PROTOCOL_ENCODING.length);
|
|
3578
|
+
} else if (protocol.startsWith(_chunkB4QZKOMHcjs.WS_PROTOCOL_CONN_PARAMS)) {
|
|
3312
3579
|
connParamsRaw = decodeURIComponent(
|
|
3313
|
-
protocol.substring(
|
|
3580
|
+
protocol.substring(_chunkB4QZKOMHcjs.WS_PROTOCOL_CONN_PARAMS.length)
|
|
3314
3581
|
);
|
|
3315
|
-
} else if (protocol.startsWith(
|
|
3316
|
-
connIdRaw = protocol.substring(
|
|
3317
|
-
} else if (protocol.startsWith(
|
|
3582
|
+
} else if (protocol.startsWith(_chunkB4QZKOMHcjs.WS_PROTOCOL_CONN_ID)) {
|
|
3583
|
+
connIdRaw = protocol.substring(_chunkB4QZKOMHcjs.WS_PROTOCOL_CONN_ID.length);
|
|
3584
|
+
} else if (protocol.startsWith(_chunkB4QZKOMHcjs.WS_PROTOCOL_CONN_TOKEN)) {
|
|
3318
3585
|
connTokenRaw = protocol.substring(
|
|
3319
|
-
|
|
3586
|
+
_chunkB4QZKOMHcjs.WS_PROTOCOL_CONN_TOKEN.length
|
|
3320
3587
|
);
|
|
3321
3588
|
}
|
|
3322
3589
|
}
|
|
@@ -3421,21 +3688,21 @@ async function handleWebSocketGateway(runConfig, managerDriver, c, strippedPath)
|
|
|
3421
3688
|
if (protocols) {
|
|
3422
3689
|
const protocolList = protocols.split(",").map((p) => p.trim());
|
|
3423
3690
|
for (const protocol of protocolList) {
|
|
3424
|
-
if (protocol.startsWith(
|
|
3425
|
-
target = protocol.substring(
|
|
3426
|
-
} else if (protocol.startsWith(
|
|
3427
|
-
actorId = protocol.substring(
|
|
3428
|
-
} else if (protocol.startsWith(
|
|
3429
|
-
encodingRaw = protocol.substring(
|
|
3430
|
-
} else if (protocol.startsWith(
|
|
3691
|
+
if (protocol.startsWith(_chunkB4QZKOMHcjs.WS_PROTOCOL_TARGET)) {
|
|
3692
|
+
target = protocol.substring(_chunkB4QZKOMHcjs.WS_PROTOCOL_TARGET.length);
|
|
3693
|
+
} else if (protocol.startsWith(_chunkB4QZKOMHcjs.WS_PROTOCOL_ACTOR)) {
|
|
3694
|
+
actorId = protocol.substring(_chunkB4QZKOMHcjs.WS_PROTOCOL_ACTOR.length);
|
|
3695
|
+
} else if (protocol.startsWith(_chunkB4QZKOMHcjs.WS_PROTOCOL_ENCODING)) {
|
|
3696
|
+
encodingRaw = protocol.substring(_chunkB4QZKOMHcjs.WS_PROTOCOL_ENCODING.length);
|
|
3697
|
+
} else if (protocol.startsWith(_chunkB4QZKOMHcjs.WS_PROTOCOL_CONN_PARAMS)) {
|
|
3431
3698
|
connParamsRaw = decodeURIComponent(
|
|
3432
|
-
protocol.substring(
|
|
3699
|
+
protocol.substring(_chunkB4QZKOMHcjs.WS_PROTOCOL_CONN_PARAMS.length)
|
|
3433
3700
|
);
|
|
3434
|
-
} else if (protocol.startsWith(
|
|
3435
|
-
connIdRaw = protocol.substring(
|
|
3436
|
-
} else if (protocol.startsWith(
|
|
3701
|
+
} else if (protocol.startsWith(_chunkB4QZKOMHcjs.WS_PROTOCOL_CONN_ID)) {
|
|
3702
|
+
connIdRaw = protocol.substring(_chunkB4QZKOMHcjs.WS_PROTOCOL_CONN_ID.length);
|
|
3703
|
+
} else if (protocol.startsWith(_chunkB4QZKOMHcjs.WS_PROTOCOL_CONN_TOKEN)) {
|
|
3437
3704
|
connTokenRaw = protocol.substring(
|
|
3438
|
-
|
|
3705
|
+
_chunkB4QZKOMHcjs.WS_PROTOCOL_CONN_TOKEN.length
|
|
3439
3706
|
);
|
|
3440
3707
|
}
|
|
3441
3708
|
}
|
|
@@ -3467,8 +3734,8 @@ async function handleWebSocketGateway(runConfig, managerDriver, c, strippedPath)
|
|
|
3467
3734
|
);
|
|
3468
3735
|
}
|
|
3469
3736
|
async function handleHttpGateway(managerDriver, c, next, strippedPath) {
|
|
3470
|
-
const target = c.req.header(
|
|
3471
|
-
const actorId = c.req.header(
|
|
3737
|
+
const target = c.req.header(_chunkB4QZKOMHcjs.HEADER_RIVET_TARGET);
|
|
3738
|
+
const actorId = c.req.header(_chunkB4QZKOMHcjs.HEADER_RIVET_ACTOR);
|
|
3472
3739
|
if (target !== "actor") {
|
|
3473
3740
|
return next();
|
|
3474
3741
|
}
|
|
@@ -3482,8 +3749,8 @@ async function handleHttpGateway(managerDriver, c, next, strippedPath) {
|
|
|
3482
3749
|
method: c.req.method
|
|
3483
3750
|
});
|
|
3484
3751
|
const proxyHeaders = new Headers(c.req.raw.headers);
|
|
3485
|
-
proxyHeaders.delete(
|
|
3486
|
-
proxyHeaders.delete(
|
|
3752
|
+
proxyHeaders.delete(_chunkB4QZKOMHcjs.HEADER_RIVET_TARGET);
|
|
3753
|
+
proxyHeaders.delete(_chunkB4QZKOMHcjs.HEADER_RIVET_ACTOR);
|
|
3487
3754
|
const url = new URL(c.req.url);
|
|
3488
3755
|
const proxyUrl = new URL(`http://actor${strippedPath}${url.search}`);
|
|
3489
3756
|
const proxyRequest = new Request(proxyUrl, {
|
|
@@ -3516,32 +3783,41 @@ function parseActorPath(path4) {
|
|
|
3516
3783
|
return null;
|
|
3517
3784
|
}
|
|
3518
3785
|
const segments = basePath.split("/").filter((s) => s.length > 0);
|
|
3519
|
-
if (segments.length <
|
|
3786
|
+
if (segments.length < 2) {
|
|
3520
3787
|
return null;
|
|
3521
3788
|
}
|
|
3522
|
-
if (segments[0] !== "gateway"
|
|
3789
|
+
if (segments[0] !== "gateway") {
|
|
3523
3790
|
return null;
|
|
3524
3791
|
}
|
|
3525
|
-
|
|
3792
|
+
const actorSegment = segments[1];
|
|
3793
|
+
if (actorSegment.length === 0) {
|
|
3526
3794
|
return null;
|
|
3527
3795
|
}
|
|
3528
|
-
|
|
3796
|
+
let actorId;
|
|
3529
3797
|
let token;
|
|
3530
|
-
|
|
3531
|
-
if (
|
|
3532
|
-
|
|
3798
|
+
const atPos = actorSegment.indexOf("@");
|
|
3799
|
+
if (atPos !== -1) {
|
|
3800
|
+
const rawActorId = actorSegment.slice(0, atPos);
|
|
3801
|
+
const rawToken = actorSegment.slice(atPos + 1);
|
|
3802
|
+
if (rawActorId.length === 0 || rawToken.length === 0) {
|
|
3803
|
+
return null;
|
|
3804
|
+
}
|
|
3805
|
+
try {
|
|
3806
|
+
actorId = decodeURIComponent(rawActorId);
|
|
3807
|
+
token = decodeURIComponent(rawToken);
|
|
3808
|
+
} catch (e) {
|
|
3533
3809
|
return null;
|
|
3534
3810
|
}
|
|
3535
|
-
token = segments[4];
|
|
3536
|
-
remainingPathStartIdx = 6;
|
|
3537
|
-
} else if (segments.length >= 4 && segments[3] === "route") {
|
|
3538
|
-
token = void 0;
|
|
3539
|
-
remainingPathStartIdx = 4;
|
|
3540
3811
|
} else {
|
|
3541
|
-
|
|
3812
|
+
try {
|
|
3813
|
+
actorId = decodeURIComponent(actorSegment);
|
|
3814
|
+
} catch (e) {
|
|
3815
|
+
return null;
|
|
3816
|
+
}
|
|
3817
|
+
token = void 0;
|
|
3542
3818
|
}
|
|
3543
3819
|
let prefixLen = 0;
|
|
3544
|
-
for (let i = 0; i <
|
|
3820
|
+
for (let i = 0; i < 2; i++) {
|
|
3545
3821
|
prefixLen += 1 + segments[i].length;
|
|
3546
3822
|
}
|
|
3547
3823
|
let remainingBase;
|
|
@@ -3568,7 +3844,7 @@ async function createTestWebSocketProxy(clientWsPromise) {
|
|
|
3568
3844
|
promise: serverWsPromise,
|
|
3569
3845
|
resolve: serverWsResolve,
|
|
3570
3846
|
reject: serverWsReject
|
|
3571
|
-
} =
|
|
3847
|
+
} = _chunkV6C34TVHcjs.promiseWithResolvers.call(void 0, );
|
|
3572
3848
|
try {
|
|
3573
3849
|
logger().debug({ msg: "awaiting client websocket promise" });
|
|
3574
3850
|
const ws = await clientWsPromise;
|
|
@@ -3782,7 +4058,7 @@ function createManagerRouter(registryConfig, runConfig, managerDriver, driverCon
|
|
|
3782
4058
|
const router = new (0, _zodopenapi.OpenAPIHono)({ strict: false }).basePath(
|
|
3783
4059
|
runConfig.basePath
|
|
3784
4060
|
);
|
|
3785
|
-
router.use("*", loggerMiddleware(logger()));
|
|
4061
|
+
router.use("*", loggerMiddleware(logger()), cors());
|
|
3786
4062
|
router.use(
|
|
3787
4063
|
"*",
|
|
3788
4064
|
_factory.createMiddleware.call(void 0, async (c, next) => {
|
|
@@ -3807,14 +4083,13 @@ function createManagerRouter(registryConfig, runConfig, managerDriver, driverCon
|
|
|
3807
4083
|
} else if (runConfig.runnerKind === "normal") {
|
|
3808
4084
|
addManagerRoutes(registryConfig, runConfig, managerDriver, router);
|
|
3809
4085
|
} else {
|
|
3810
|
-
|
|
4086
|
+
_chunkV6C34TVHcjs.assertUnreachable.call(void 0, runConfig.runnerKind);
|
|
3811
4087
|
}
|
|
3812
4088
|
router.notFound(handleRouteNotFound);
|
|
3813
4089
|
router.onError(handleRouteError);
|
|
3814
4090
|
return { router, openapi: router };
|
|
3815
4091
|
}
|
|
3816
4092
|
function addServerlessRoutes(driverConfig, registryConfig, runConfig, managerDriver, client, router) {
|
|
3817
|
-
if (runConfig.cors) router.use("*", _cors.cors.call(void 0, runConfig.cors));
|
|
3818
4093
|
router.get("/", (c) => {
|
|
3819
4094
|
return c.text(
|
|
3820
4095
|
"This is a RivetKit server.\n\nLearn more at https://rivetkit.org"
|
|
@@ -3848,6 +4123,13 @@ function addServerlessRoutes(driverConfig, registryConfig, runConfig, managerDri
|
|
|
3848
4123
|
newRunConfig.totalSlots = totalSlots;
|
|
3849
4124
|
newRunConfig.runnerName = runnerName;
|
|
3850
4125
|
newRunConfig.namespace = namespace;
|
|
4126
|
+
if (newRunConfig.runnerKey) {
|
|
4127
|
+
logger().warn({
|
|
4128
|
+
msg: "runner keys are not supported by serverless runners, this will be overwritten with a random runner key",
|
|
4129
|
+
oldRunnerKey: newRunConfig.runnerKey
|
|
4130
|
+
});
|
|
4131
|
+
newRunConfig.runnerKey = void 0;
|
|
4132
|
+
}
|
|
3851
4133
|
const actorDriver = driverConfig.actor(
|
|
3852
4134
|
registryConfig,
|
|
3853
4135
|
newRunConfig,
|
|
@@ -3868,19 +4150,18 @@ function addServerlessRoutes(driverConfig, registryConfig, runConfig, managerDri
|
|
|
3868
4150
|
}
|
|
3869
4151
|
function addManagerRoutes(registryConfig, runConfig, managerDriver, router) {
|
|
3870
4152
|
var _a;
|
|
3871
|
-
if (
|
|
4153
|
+
if (_chunk2GJILCGQcjs.isInspectorEnabled.call(void 0, runConfig, "manager")) {
|
|
3872
4154
|
if (!managerDriver.inspector) {
|
|
3873
4155
|
throw new (0, _chunkKSRXX3Z4cjs.Unsupported)("inspector");
|
|
3874
4156
|
}
|
|
3875
4157
|
router.route(
|
|
3876
4158
|
"/inspect",
|
|
3877
|
-
new (0, _hono.Hono)().use(
|
|
4159
|
+
new (0, _hono.Hono)().use(_chunk2GJILCGQcjs.secureInspector.call(void 0, runConfig)).use((c, next) => {
|
|
3878
4160
|
c.set("inspector", managerDriver.inspector);
|
|
3879
4161
|
return next();
|
|
3880
4162
|
}).route("/", createManagerInspectorRouter())
|
|
3881
4163
|
);
|
|
3882
4164
|
}
|
|
3883
|
-
if (runConfig.cors) router.use("*", _cors.cors.call(void 0, runConfig.cors));
|
|
3884
4165
|
router.use("*", actorGateway.bind(void 0, runConfig, managerDriver));
|
|
3885
4166
|
router.get("/", (c) => {
|
|
3886
4167
|
return c.text(
|
|
@@ -4085,7 +4366,7 @@ function addManagerRoutes(registryConfig, runConfig, managerDriver, router) {
|
|
|
4085
4366
|
);
|
|
4086
4367
|
response = { ok: output };
|
|
4087
4368
|
} catch (rawErr) {
|
|
4088
|
-
const err =
|
|
4369
|
+
const err = _chunkV6C34TVHcjs.deconstructError.call(void 0, rawErr, logger(), {}, true);
|
|
4089
4370
|
response = { err };
|
|
4090
4371
|
}
|
|
4091
4372
|
return c.body(cbor4.encode(response));
|
|
@@ -4108,30 +4389,30 @@ function addManagerRoutes(registryConfig, runConfig, managerDriver, router) {
|
|
|
4108
4389
|
let connId;
|
|
4109
4390
|
let connToken;
|
|
4110
4391
|
for (const protocol of protocols) {
|
|
4111
|
-
if (protocol.startsWith(
|
|
4112
|
-
actorId = protocol.substring(
|
|
4113
|
-
} else if (protocol.startsWith(
|
|
4392
|
+
if (protocol.startsWith(_chunkB4QZKOMHcjs.WS_PROTOCOL_ACTOR)) {
|
|
4393
|
+
actorId = protocol.substring(_chunkB4QZKOMHcjs.WS_PROTOCOL_ACTOR.length);
|
|
4394
|
+
} else if (protocol.startsWith(_chunkB4QZKOMHcjs.WS_PROTOCOL_ENCODING)) {
|
|
4114
4395
|
encoding = protocol.substring(
|
|
4115
|
-
|
|
4396
|
+
_chunkB4QZKOMHcjs.WS_PROTOCOL_ENCODING.length
|
|
4116
4397
|
);
|
|
4117
|
-
} else if (protocol.startsWith(
|
|
4398
|
+
} else if (protocol.startsWith(_chunkB4QZKOMHcjs.WS_PROTOCOL_TRANSPORT)) {
|
|
4118
4399
|
transport = protocol.substring(
|
|
4119
|
-
|
|
4400
|
+
_chunkB4QZKOMHcjs.WS_PROTOCOL_TRANSPORT.length
|
|
4120
4401
|
);
|
|
4121
|
-
} else if (protocol.startsWith(
|
|
4402
|
+
} else if (protocol.startsWith(_chunkB4QZKOMHcjs.WS_PROTOCOL_PATH)) {
|
|
4122
4403
|
path4 = decodeURIComponent(
|
|
4123
|
-
protocol.substring(
|
|
4404
|
+
protocol.substring(_chunkB4QZKOMHcjs.WS_PROTOCOL_PATH.length)
|
|
4124
4405
|
);
|
|
4125
|
-
} else if (protocol.startsWith(
|
|
4406
|
+
} else if (protocol.startsWith(_chunkB4QZKOMHcjs.WS_PROTOCOL_CONN_PARAMS)) {
|
|
4126
4407
|
const paramsRaw = decodeURIComponent(
|
|
4127
|
-
protocol.substring(
|
|
4408
|
+
protocol.substring(_chunkB4QZKOMHcjs.WS_PROTOCOL_CONN_PARAMS.length)
|
|
4128
4409
|
);
|
|
4129
4410
|
params = JSON.parse(paramsRaw);
|
|
4130
|
-
} else if (protocol.startsWith(
|
|
4131
|
-
connId = protocol.substring(
|
|
4132
|
-
} else if (protocol.startsWith(
|
|
4411
|
+
} else if (protocol.startsWith(_chunkB4QZKOMHcjs.WS_PROTOCOL_CONN_ID)) {
|
|
4412
|
+
connId = protocol.substring(_chunkB4QZKOMHcjs.WS_PROTOCOL_CONN_ID.length);
|
|
4413
|
+
} else if (protocol.startsWith(_chunkB4QZKOMHcjs.WS_PROTOCOL_CONN_TOKEN)) {
|
|
4133
4414
|
connToken = protocol.substring(
|
|
4134
|
-
|
|
4415
|
+
_chunkB4QZKOMHcjs.WS_PROTOCOL_CONN_TOKEN.length
|
|
4135
4416
|
);
|
|
4136
4417
|
}
|
|
4137
4418
|
}
|
|
@@ -4152,10 +4433,10 @@ function addManagerRoutes(registryConfig, runConfig, managerDriver, router) {
|
|
|
4152
4433
|
connToken
|
|
4153
4434
|
);
|
|
4154
4435
|
return await createTestWebSocketProxy(clientWsPromise);
|
|
4155
|
-
})(c,
|
|
4436
|
+
})(c, _chunkV6C34TVHcjs.noopNext.call(void 0, ));
|
|
4156
4437
|
});
|
|
4157
4438
|
router.all(".test/inline-driver/send-request/*", async (c) => {
|
|
4158
|
-
const actorId = c.req.header(
|
|
4439
|
+
const actorId = c.req.header(_chunkB4QZKOMHcjs.HEADER_ACTOR_ID);
|
|
4159
4440
|
if (!actorId) {
|
|
4160
4441
|
return c.text("Missing required headers", 400);
|
|
4161
4442
|
}
|
|
@@ -4182,9 +4463,9 @@ function addManagerRoutes(registryConfig, runConfig, managerDriver, router) {
|
|
|
4182
4463
|
} catch (error) {
|
|
4183
4464
|
logger().error({
|
|
4184
4465
|
msg: "error in test inline raw http",
|
|
4185
|
-
error:
|
|
4466
|
+
error: _chunkV6C34TVHcjs.stringifyError.call(void 0, error)
|
|
4186
4467
|
});
|
|
4187
|
-
const err =
|
|
4468
|
+
const err = _chunkV6C34TVHcjs.deconstructError.call(void 0, error, logger(), {}, true);
|
|
4188
4469
|
return c.json(
|
|
4189
4470
|
{
|
|
4190
4471
|
error: {
|
|
@@ -4229,7 +4510,7 @@ function addManagerRoutes(registryConfig, runConfig, managerDriver, router) {
|
|
|
4229
4510
|
} catch (error) {
|
|
4230
4511
|
logger().error({
|
|
4231
4512
|
msg: "error forcing disconnect",
|
|
4232
|
-
error:
|
|
4513
|
+
error: _chunkV6C34TVHcjs.stringifyError.call(void 0, error)
|
|
4233
4514
|
});
|
|
4234
4515
|
return c.text(`Error: ${error}`, 500);
|
|
4235
4516
|
}
|
|
@@ -4250,7 +4531,7 @@ function createApiActor(actor2, runnerName = "default") {
|
|
|
4250
4531
|
return {
|
|
4251
4532
|
actor_id: actor2.actorId,
|
|
4252
4533
|
name: actor2.name,
|
|
4253
|
-
key:
|
|
4534
|
+
key: _chunkHSO2H2SBcjs.serializeActorKey.call(void 0, actor2.key),
|
|
4254
4535
|
namespace_id: "default",
|
|
4255
4536
|
// Assert default namespace
|
|
4256
4537
|
runner_name_selector: runnerName,
|
|
@@ -4264,7 +4545,7 @@ function createApiActor(actor2, runnerName = "default") {
|
|
|
4264
4545
|
|
|
4265
4546
|
// src/registry/log.ts
|
|
4266
4547
|
function logger7() {
|
|
4267
|
-
return
|
|
4548
|
+
return _chunkHZ4ZM3FLcjs.getLogger.call(void 0, "registry");
|
|
4268
4549
|
}
|
|
4269
4550
|
|
|
4270
4551
|
// src/registry/serve.ts
|
|
@@ -4324,7 +4605,7 @@ var Registry = class {
|
|
|
4324
4605
|
*/
|
|
4325
4606
|
start(inputConfig) {
|
|
4326
4607
|
var _a, _b, _c;
|
|
4327
|
-
const config2 =
|
|
4608
|
+
const config2 = _chunkTI72NLP3cjs.RunnerConfigSchema.parse(inputConfig);
|
|
4328
4609
|
if (config2.autoConfigureServerless && config2.runnerKind !== "serverless") {
|
|
4329
4610
|
throw new Error(
|
|
4330
4611
|
"autoConfigureServerless can only be configured when runnerKind is 'serverless'"
|
|
@@ -4362,9 +4643,9 @@ var Registry = class {
|
|
|
4362
4643
|
config2.disableActorDriver = true;
|
|
4363
4644
|
}
|
|
4364
4645
|
if ((_a = config2.logging) == null ? void 0 : _a.baseLogger) {
|
|
4365
|
-
|
|
4646
|
+
_chunkHZ4ZM3FLcjs.configureBaseLogger.call(void 0, config2.logging.baseLogger);
|
|
4366
4647
|
} else {
|
|
4367
|
-
|
|
4648
|
+
_chunkHZ4ZM3FLcjs.configureDefaultLogger.call(void 0, (_b = config2.logging) == null ? void 0 : _b.level);
|
|
4368
4649
|
}
|
|
4369
4650
|
const driver = chooseDefaultDriver(config2);
|
|
4370
4651
|
if (driver.name === "engine") {
|
|
@@ -4384,8 +4665,8 @@ var Registry = class {
|
|
|
4384
4665
|
config2.getUpgradeWebSocket = () => upgradeWebSocket;
|
|
4385
4666
|
}
|
|
4386
4667
|
const managerDriver = driver.manager(this.#config, config2);
|
|
4387
|
-
|
|
4388
|
-
const client =
|
|
4668
|
+
_chunk2GJILCGQcjs.configureInspectorAccessToken.call(void 0, config2, managerDriver);
|
|
4669
|
+
const client = _chunkHSO2H2SBcjs.createClientWithDriver.call(void 0, managerDriver, config2);
|
|
4389
4670
|
const driverLog = _nullishCoalesce(((_c = managerDriver.extraStartupLog) == null ? void 0 : _c.call(managerDriver)), () => ( {}));
|
|
4390
4671
|
logger7().info({
|
|
4391
4672
|
msg: "rivetkit ready",
|
|
@@ -4393,18 +4674,18 @@ var Registry = class {
|
|
|
4393
4674
|
definitions: Object.keys(this.#config.use).length,
|
|
4394
4675
|
...driverLog
|
|
4395
4676
|
});
|
|
4396
|
-
if (
|
|
4677
|
+
if (_chunk2GJILCGQcjs.isInspectorEnabled.call(void 0, config2, "manager") && managerDriver.inspector) {
|
|
4397
4678
|
logger7().info({
|
|
4398
4679
|
msg: "inspector ready",
|
|
4399
|
-
url:
|
|
4680
|
+
url: _chunk2GJILCGQcjs.getInspectorUrl.call(void 0, config2)
|
|
4400
4681
|
});
|
|
4401
4682
|
}
|
|
4402
4683
|
if (!config2.noWelcome) {
|
|
4403
4684
|
const displayInfo = managerDriver.displayInformation();
|
|
4404
4685
|
console.log();
|
|
4405
|
-
console.log(` RivetKit ${
|
|
4686
|
+
console.log(` RivetKit ${_chunkV6C34TVHcjs.package_default.version} (${displayInfo.name})`);
|
|
4406
4687
|
if (!config2.disableDefaultServer) {
|
|
4407
|
-
console.log(` - Endpoint: ${
|
|
4688
|
+
console.log(` - Endpoint: ${_chunkHSO2H2SBcjs.getEndpoint.call(void 0, config2)}`);
|
|
4408
4689
|
} else if (config2.overrideServerAddress) {
|
|
4409
4690
|
console.log(
|
|
4410
4691
|
` - Endpoint: ${config2.overrideServerAddress}`
|
|
@@ -4418,8 +4699,8 @@ var Registry = class {
|
|
|
4418
4699
|
const padding = " ".repeat(Math.max(0, 13 - k.length));
|
|
4419
4700
|
console.log(` - ${k}:${padding}${v}`);
|
|
4420
4701
|
}
|
|
4421
|
-
if (
|
|
4422
|
-
console.log(` - Inspector: ${
|
|
4702
|
+
if (_chunk2GJILCGQcjs.isInspectorEnabled.call(void 0, config2, "manager") && managerDriver.inspector) {
|
|
4703
|
+
console.log(` - Inspector: ${_chunk2GJILCGQcjs.getInspectorUrl.call(void 0, config2)}`);
|
|
4423
4704
|
}
|
|
4424
4705
|
console.log();
|
|
4425
4706
|
}
|
|
@@ -4488,7 +4769,7 @@ async function configureServerlessRunner(config2) {
|
|
|
4488
4769
|
msg: "fetching datacenters",
|
|
4489
4770
|
endpoint: config2.endpoint
|
|
4490
4771
|
});
|
|
4491
|
-
const dcsRes = await
|
|
4772
|
+
const dcsRes = await _chunkHSO2H2SBcjs.getDatacenters.call(void 0, clientConfig);
|
|
4492
4773
|
logger7().debug({
|
|
4493
4774
|
msg: "configuring serverless runner",
|
|
4494
4775
|
runnerName: config2.runnerName,
|
|
@@ -4506,7 +4787,7 @@ async function configureServerlessRunner(config2) {
|
|
|
4506
4787
|
},
|
|
4507
4788
|
metadata: _nullishCoalesce(customConfig.metadata, () => ( {}))
|
|
4508
4789
|
};
|
|
4509
|
-
await
|
|
4790
|
+
await _chunkHSO2H2SBcjs.updateRunnerConfig.call(void 0, clientConfig, config2.runnerName, {
|
|
4510
4791
|
datacenters: Object.fromEntries(
|
|
4511
4792
|
dcsRes.datacenters.map((dc) => [dc.name, serverlessConfig])
|
|
4512
4793
|
)
|
|
@@ -4544,4 +4825,4 @@ function setup(input) {
|
|
|
4544
4825
|
|
|
4545
4826
|
exports.handleWebSocketConnect = handleWebSocketConnect; exports.handleRawWebSocketHandler = handleRawWebSocketHandler; exports.RegistryConfigSchema = RegistryConfigSchema; exports.createActorRouter = createActorRouter; exports.actor = actor; exports.InlineWebSocketAdapter2 = InlineWebSocketAdapter2; exports.createEngineDriver = createEngineDriver; exports.createFileSystemOrMemoryDriver = createFileSystemOrMemoryDriver; exports.createFileSystemDriver = createFileSystemDriver; exports.createMemoryDriver = createMemoryDriver; exports.createManagerRouter = createManagerRouter; exports.Registry = Registry; exports.setup = setup;
|
|
4546
4827
|
//! These configs configs hold anything that's not platform-specific about running actors.
|
|
4547
|
-
//# sourceMappingURL=chunk-
|
|
4828
|
+
//# sourceMappingURL=chunk-WVUAO2F7.cjs.map
|