rivetkit 2.0.21 → 2.0.22-rc.2
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/actor/errors.cjs.map +1 -1
- package/dist/tsup/{chunk-HN7UXCYQ.cjs → chunk-5N6F5PXD.cjs} +31 -12
- package/dist/tsup/chunk-5N6F5PXD.cjs.map +1 -0
- package/dist/tsup/{chunk-FDJ3AVNB.cjs → chunk-5TRXLS6X.cjs} +71 -67
- package/dist/tsup/chunk-5TRXLS6X.cjs.map +1 -0
- package/dist/tsup/{chunk-HUGSRAGL.js → chunk-7RUROQAZ.js} +36 -16
- package/dist/tsup/chunk-7RUROQAZ.js.map +1 -0
- package/dist/tsup/{chunk-Y2QONT7B.js → chunk-AMK3AACS.js} +272 -89
- package/dist/tsup/chunk-AMK3AACS.js.map +1 -0
- package/dist/tsup/{chunk-RZZDFDB6.js → chunk-BHLQTKOD.js} +51 -47
- package/dist/tsup/chunk-BHLQTKOD.js.map +1 -0
- package/dist/tsup/{chunk-DYA34FHW.js → chunk-C4FPCW7T.js} +2 -2
- package/dist/tsup/{chunk-D2LS4X6E.js → chunk-CVLO2OOK.js} +3 -3
- package/dist/tsup/{chunk-6G76WIWL.js → chunk-EJXZYQ3N.js} +2 -2
- package/dist/tsup/{chunk-VLR3TDHT.js → chunk-F7WVJXPB.js} +2 -2
- package/dist/tsup/{chunk-4OINFQBR.js → chunk-FLVL7RGH.js} +3 -3
- package/dist/tsup/{chunk-JKOUXDK6.cjs → chunk-GXIO5YOT.cjs} +8 -8
- package/dist/tsup/chunk-GXIO5YOT.cjs.map +1 -0
- package/dist/tsup/{chunk-2POQCWMA.js → chunk-HLZT5C6A.js} +385 -104
- package/dist/tsup/chunk-HLZT5C6A.js.map +1 -0
- package/dist/tsup/chunk-KSRXX3Z4.cjs.map +1 -1
- package/dist/tsup/{chunk-JTIBPF7N.cjs → chunk-LFP446KS.cjs} +14 -14
- package/dist/tsup/chunk-LFP446KS.cjs.map +1 -0
- package/dist/tsup/{chunk-3UIGKLZW.js → chunk-MQDXPGNE.js} +6 -6
- package/dist/tsup/{chunk-O4GUKGK4.cjs → chunk-NDOG6IQ5.cjs} +6 -6
- package/dist/tsup/chunk-NDOG6IQ5.cjs.map +1 -0
- package/dist/tsup/{chunk-LMJHBF26.cjs → chunk-Q5CAVEKC.cjs} +467 -284
- package/dist/tsup/chunk-Q5CAVEKC.cjs.map +1 -0
- package/dist/tsup/{chunk-65SAIRRY.cjs → chunk-UBMUBNS2.cjs} +12 -12
- package/dist/tsup/chunk-UBMUBNS2.cjs.map +1 -0
- package/dist/tsup/{chunk-FUX6U6TL.js → chunk-VMFBKBJL.js} +26 -7
- package/dist/tsup/chunk-VMFBKBJL.js.map +1 -0
- package/dist/tsup/{chunk-M5BHNJHB.cjs → chunk-YLWF6RFL.cjs} +558 -277
- package/dist/tsup/chunk-YLWF6RFL.cjs.map +1 -0
- package/dist/tsup/{chunk-ELDFBXDV.cjs → chunk-YUBR6XCJ.cjs} +35 -15
- package/dist/tsup/chunk-YUBR6XCJ.cjs.map +1 -0
- package/dist/tsup/{chunk-ZNWE3XBT.cjs → chunk-ZL6NSKF2.cjs} +3 -3
- package/dist/tsup/chunk-ZL6NSKF2.cjs.map +1 -0
- package/dist/tsup/{chunk-LWGCMELP.cjs → chunk-ZY4DKLMT.cjs} +3 -3
- package/dist/tsup/chunk-ZY4DKLMT.cjs.map +1 -0
- package/dist/tsup/client/mod.cjs +9 -9
- package/dist/tsup/client/mod.cjs.map +1 -1
- 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.cjs.map +1 -1
- package/dist/tsup/common/log.js +2 -2
- package/dist/tsup/common/websocket.cjs +4 -4
- package/dist/tsup/common/websocket.cjs.map +1 -1
- 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.cjs.map +1 -1
- 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.cjs.map +1 -1
- 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.cjs.map +1 -1
- 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.cjs.map +1 -1
- 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.cjs.map +1 -1
- 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-2POQCWMA.js.map +0 -1
- package/dist/tsup/chunk-65SAIRRY.cjs.map +0 -1
- package/dist/tsup/chunk-ELDFBXDV.cjs.map +0 -1
- package/dist/tsup/chunk-FDJ3AVNB.cjs.map +0 -1
- package/dist/tsup/chunk-FUX6U6TL.js.map +0 -1
- package/dist/tsup/chunk-HN7UXCYQ.cjs.map +0 -1
- package/dist/tsup/chunk-HUGSRAGL.js.map +0 -1
- package/dist/tsup/chunk-JKOUXDK6.cjs.map +0 -1
- package/dist/tsup/chunk-JTIBPF7N.cjs.map +0 -1
- package/dist/tsup/chunk-LMJHBF26.cjs.map +0 -1
- package/dist/tsup/chunk-LWGCMELP.cjs.map +0 -1
- package/dist/tsup/chunk-M5BHNJHB.cjs.map +0 -1
- package/dist/tsup/chunk-O4GUKGK4.cjs.map +0 -1
- package/dist/tsup/chunk-RZZDFDB6.js.map +0 -1
- package/dist/tsup/chunk-Y2QONT7B.js.map +0 -1
- package/dist/tsup/chunk-ZNWE3XBT.cjs.map +0 -1
- /package/dist/tsup/{chunk-DYA34FHW.js.map → chunk-C4FPCW7T.js.map} +0 -0
- /package/dist/tsup/{chunk-D2LS4X6E.js.map → chunk-CVLO2OOK.js.map} +0 -0
- /package/dist/tsup/{chunk-6G76WIWL.js.map → chunk-EJXZYQ3N.js.map} +0 -0
- /package/dist/tsup/{chunk-VLR3TDHT.js.map → chunk-F7WVJXPB.js.map} +0 -0
- /package/dist/tsup/{chunk-4OINFQBR.js.map → chunk-FLVL7RGH.js.map} +0 -0
- /package/dist/tsup/{chunk-3UIGKLZW.js.map → chunk-MQDXPGNE.js.map} +0 -0
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunkUBMUBNS2cjs = require('./chunk-UBMUBNS2.cjs');
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _chunkZY4DKLMTcjs = require('./chunk-ZY4DKLMT.cjs');
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
|
|
@@ -18,7 +18,7 @@ var _chunkLWGCMELPcjs = require('./chunk-LWGCMELP.cjs');
|
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
|
|
21
|
-
var
|
|
21
|
+
var _chunk5TRXLS6Xcjs = require('./chunk-5TRXLS6X.cjs');
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
|
|
@@ -46,16 +46,16 @@ var _chunkFDJ3AVNBcjs = require('./chunk-FDJ3AVNB.cjs');
|
|
|
46
46
|
|
|
47
47
|
|
|
48
48
|
|
|
49
|
+
var _chunkGXIO5YOTcjs = require('./chunk-GXIO5YOT.cjs');
|
|
49
50
|
|
|
50
51
|
|
|
51
52
|
|
|
52
53
|
|
|
53
|
-
var
|
|
54
|
+
var _chunk5N6F5PXDcjs = require('./chunk-5N6F5PXD.cjs');
|
|
54
55
|
|
|
55
56
|
|
|
56
57
|
|
|
57
58
|
|
|
58
|
-
var _chunkHN7UXCYQcjs = require('./chunk-HN7UXCYQ.cjs');
|
|
59
59
|
|
|
60
60
|
|
|
61
61
|
|
|
@@ -66,9 +66,7 @@ var _chunkHN7UXCYQcjs = require('./chunk-HN7UXCYQ.cjs');
|
|
|
66
66
|
|
|
67
67
|
|
|
68
68
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
var _chunkELDFBXDVcjs = require('./chunk-ELDFBXDV.cjs');
|
|
69
|
+
var _chunkYUBR6XCJcjs = require('./chunk-YUBR6XCJ.cjs');
|
|
72
70
|
|
|
73
71
|
|
|
74
72
|
|
|
@@ -89,7 +87,15 @@ var _cborx = require('cbor-x'); var cbor = _interopRequireWildcard(_cborx); var
|
|
|
89
87
|
|
|
90
88
|
// src/actor/conn-drivers.ts
|
|
91
89
|
var WEBSOCKET_DRIVER = {
|
|
92
|
-
sendMessage: (actor,
|
|
90
|
+
sendMessage: (actor, conn, state, message) => {
|
|
91
|
+
if (state.websocket.readyState !== 1 /* OPEN */) {
|
|
92
|
+
actor.rLog.warn({
|
|
93
|
+
msg: "attempting to send message to closed websocket, this is likely a bug in RivetKit",
|
|
94
|
+
connId: conn.id,
|
|
95
|
+
wsReadyState: state.websocket.readyState
|
|
96
|
+
});
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
93
99
|
const serialized = message.serialize(state.encoding);
|
|
94
100
|
actor.rLog.debug({
|
|
95
101
|
msg: "sending websocket message",
|
|
@@ -133,12 +139,21 @@ var WEBSOCKET_DRIVER = {
|
|
|
133
139
|
},
|
|
134
140
|
getConnectionReadyState: (_actor, _conn, state) => {
|
|
135
141
|
return state.websocket.readyState;
|
|
142
|
+
},
|
|
143
|
+
isHibernatable(_actor, _conn, state) {
|
|
144
|
+
if (state.websocket.raw) {
|
|
145
|
+
const raw = state.websocket.raw;
|
|
146
|
+
if (typeof raw.isHibernatable === "boolean") {
|
|
147
|
+
return raw.isHibernatable;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
return false;
|
|
136
151
|
}
|
|
137
152
|
};
|
|
138
153
|
var SSE_DRIVER = {
|
|
139
154
|
sendMessage: (_actor, _conn, state, message) => {
|
|
140
155
|
state.stream.writeSSE({
|
|
141
|
-
data:
|
|
156
|
+
data: _chunkGXIO5YOTcjs.encodeDataToString.call(void 0, message.serialize(state.encoding))
|
|
142
157
|
});
|
|
143
158
|
},
|
|
144
159
|
disconnect: async (_actor, _conn, state, _reason) => {
|
|
@@ -149,6 +164,9 @@ var SSE_DRIVER = {
|
|
|
149
164
|
return 3 /* CLOSED */;
|
|
150
165
|
}
|
|
151
166
|
return 1 /* OPEN */;
|
|
167
|
+
},
|
|
168
|
+
isHibernatable() {
|
|
169
|
+
return false;
|
|
152
170
|
}
|
|
153
171
|
};
|
|
154
172
|
var HTTP_DRIVER = {
|
|
@@ -156,6 +174,9 @@ var HTTP_DRIVER = {
|
|
|
156
174
|
return 1 /* OPEN */;
|
|
157
175
|
},
|
|
158
176
|
disconnect: async () => {
|
|
177
|
+
},
|
|
178
|
+
isHibernatable() {
|
|
179
|
+
return false;
|
|
159
180
|
}
|
|
160
181
|
};
|
|
161
182
|
var CONN_DRIVERS = {
|
|
@@ -167,7 +188,7 @@ function getConnDriverKindFromState(state) {
|
|
|
167
188
|
if (0 /* WEBSOCKET */ in state) return 0 /* WEBSOCKET */;
|
|
168
189
|
else if (1 /* SSE */ in state) return 1 /* SSE */;
|
|
169
190
|
else if (2 /* HTTP */ in state) return 2 /* HTTP */;
|
|
170
|
-
else
|
|
191
|
+
else _chunkYUBR6XCJcjs.assertUnreachable.call(void 0, state);
|
|
171
192
|
}
|
|
172
193
|
|
|
173
194
|
// src/actor/conn.ts
|
|
@@ -175,9 +196,9 @@ function generateConnId() {
|
|
|
175
196
|
return crypto.randomUUID();
|
|
176
197
|
}
|
|
177
198
|
function generateConnToken() {
|
|
178
|
-
return
|
|
199
|
+
return _chunkGXIO5YOTcjs.generateSecureToken.call(void 0, 32);
|
|
179
200
|
}
|
|
180
|
-
function
|
|
201
|
+
function generateConnRequestId() {
|
|
181
202
|
return crypto.randomUUID();
|
|
182
203
|
}
|
|
183
204
|
var Conn = (_class = class {
|
|
@@ -250,6 +271,24 @@ var Conn = (_class = class {
|
|
|
250
271
|
get status() {
|
|
251
272
|
return this.__status;
|
|
252
273
|
}
|
|
274
|
+
/**
|
|
275
|
+
* @experimental
|
|
276
|
+
*
|
|
277
|
+
* If the underlying connection can hibernate.
|
|
278
|
+
*/
|
|
279
|
+
get isHibernatable() {
|
|
280
|
+
if (this.__driverState) {
|
|
281
|
+
const driverKind = getConnDriverKindFromState(this.__driverState);
|
|
282
|
+
const driver = CONN_DRIVERS[driverKind];
|
|
283
|
+
return driver.isHibernatable(
|
|
284
|
+
this.#actor,
|
|
285
|
+
this,
|
|
286
|
+
this.__driverState[driverKind]
|
|
287
|
+
);
|
|
288
|
+
} else {
|
|
289
|
+
return false;
|
|
290
|
+
}
|
|
291
|
+
}
|
|
253
292
|
/**
|
|
254
293
|
* Timestamp of the last time the connection was seen, i.e. the last time the connection was active and checked for liveness.
|
|
255
294
|
*/
|
|
@@ -318,17 +357,17 @@ var Conn = (_class = class {
|
|
|
318
357
|
connId: this.id
|
|
319
358
|
});
|
|
320
359
|
this._sendMessage(
|
|
321
|
-
new (0,
|
|
360
|
+
new (0, _chunkGXIO5YOTcjs.CachedSerializer)(
|
|
322
361
|
{
|
|
323
362
|
body: {
|
|
324
363
|
tag: "Event",
|
|
325
364
|
val: {
|
|
326
365
|
name: eventName,
|
|
327
|
-
args:
|
|
366
|
+
args: _chunkYUBR6XCJcjs.bufferToArrayBuffer.call(void 0, cbor.encode(args))
|
|
328
367
|
}
|
|
329
368
|
}
|
|
330
369
|
},
|
|
331
|
-
|
|
370
|
+
_chunk5TRXLS6Xcjs.TO_CLIENT_VERSIONED
|
|
332
371
|
)
|
|
333
372
|
);
|
|
334
373
|
}
|
|
@@ -354,7 +393,7 @@ var Conn = (_class = class {
|
|
|
354
393
|
conn: this.id
|
|
355
394
|
});
|
|
356
395
|
}
|
|
357
|
-
this.#actor.__connDisconnected(this, true, this.__socket.
|
|
396
|
+
this.#actor.__connDisconnected(this, true, this.__socket.requestId);
|
|
358
397
|
} else {
|
|
359
398
|
this.#actor.rLog.warn({
|
|
360
399
|
msg: "missing connection driver state for disconnect",
|
|
@@ -395,7 +434,7 @@ function createActorInspectorRouter() {
|
|
|
395
434
|
"/state",
|
|
396
435
|
_standardvalidator.sValidator.call(void 0,
|
|
397
436
|
"json",
|
|
398
|
-
_v42.default.object({ patch:
|
|
437
|
+
_v42.default.object({ patch: _chunkUBMUBNS2cjs.PatchSchema }).or(_v42.default.object({ replace: _v42.default.any() }))
|
|
399
438
|
),
|
|
400
439
|
async (c) => {
|
|
401
440
|
if (!await c.var.inspector.accessors.isStateEnabled()) {
|
|
@@ -445,7 +484,7 @@ function createActorInspectorRouter() {
|
|
|
445
484
|
});
|
|
446
485
|
}
|
|
447
486
|
);
|
|
448
|
-
const { promise } =
|
|
487
|
+
const { promise } = _chunkYUBR6XCJcjs.promiseWithResolvers.call(void 0, );
|
|
449
488
|
return promise;
|
|
450
489
|
},
|
|
451
490
|
async () => {
|
|
@@ -473,7 +512,7 @@ function createActorInspectorRouter() {
|
|
|
473
512
|
});
|
|
474
513
|
}
|
|
475
514
|
);
|
|
476
|
-
const { promise } =
|
|
515
|
+
const { promise } = _chunkYUBR6XCJcjs.promiseWithResolvers.call(void 0, );
|
|
477
516
|
return promise;
|
|
478
517
|
},
|
|
479
518
|
async () => {
|
|
@@ -501,7 +540,7 @@ function createActorInspectorRouter() {
|
|
|
501
540
|
id: String(id++)
|
|
502
541
|
});
|
|
503
542
|
});
|
|
504
|
-
const { promise } =
|
|
543
|
+
const { promise } = _chunkYUBR6XCJcjs.promiseWithResolvers.call(void 0, );
|
|
505
544
|
return promise;
|
|
506
545
|
},
|
|
507
546
|
async () => {
|
|
@@ -517,7 +556,7 @@ function createActorInspectorRouter() {
|
|
|
517
556
|
}
|
|
518
557
|
const db = await c.var.inspector.accessors.getDb();
|
|
519
558
|
const rows = await db.execute(`PRAGMA table_list`);
|
|
520
|
-
const tables =
|
|
559
|
+
const tables = _chunkUBMUBNS2cjs.TablesSchema.parse(rows).filter(
|
|
521
560
|
(table) => table.schema !== "temp" && !table.name.startsWith("sqlite_")
|
|
522
561
|
);
|
|
523
562
|
const tablesInfo = await Promise.all(
|
|
@@ -525,14 +564,14 @@ function createActorInspectorRouter() {
|
|
|
525
564
|
(table) => db.execute(`PRAGMA table_info(${table.name})`)
|
|
526
565
|
)
|
|
527
566
|
);
|
|
528
|
-
const columns = tablesInfo.map((def) =>
|
|
567
|
+
const columns = tablesInfo.map((def) => _chunkUBMUBNS2cjs.ColumnsSchema.parse(def));
|
|
529
568
|
const foreignKeysList = await Promise.all(
|
|
530
569
|
tables.map(
|
|
531
570
|
(table) => db.execute(`PRAGMA foreign_key_list(${table.name})`)
|
|
532
571
|
)
|
|
533
572
|
);
|
|
534
573
|
const foreignKeys = foreignKeysList.map(
|
|
535
|
-
(def) =>
|
|
574
|
+
(def) => _chunkUBMUBNS2cjs.ForeignKeysSchema.parse(def)
|
|
536
575
|
);
|
|
537
576
|
const countInfo = await Promise.all(
|
|
538
577
|
tables.map(
|
|
@@ -733,7 +772,7 @@ var ActorContext = class {
|
|
|
733
772
|
* @experimental
|
|
734
773
|
*/
|
|
735
774
|
sleep() {
|
|
736
|
-
this.#actor.
|
|
775
|
+
this.#actor._startSleep();
|
|
737
776
|
}
|
|
738
777
|
};
|
|
739
778
|
|
|
@@ -810,6 +849,15 @@ var Schedule = class {
|
|
|
810
849
|
};
|
|
811
850
|
|
|
812
851
|
// src/actor/instance.ts
|
|
852
|
+
var PERSIST_SYMBOL = Symbol("persist");
|
|
853
|
+
var CanSleep = /* @__PURE__ */ ((CanSleep2) => {
|
|
854
|
+
CanSleep2[CanSleep2["Yes"] = 0] = "Yes";
|
|
855
|
+
CanSleep2[CanSleep2["NotReady"] = 1] = "NotReady";
|
|
856
|
+
CanSleep2[CanSleep2["ActiveConns"] = 2] = "ActiveConns";
|
|
857
|
+
CanSleep2[CanSleep2["ActiveHonoHttpRequests"] = 3] = "ActiveHonoHttpRequests";
|
|
858
|
+
CanSleep2[CanSleep2["ActiveRawWebSockets"] = 4] = "ActiveRawWebSockets";
|
|
859
|
+
return CanSleep2;
|
|
860
|
+
})(CanSleep || {});
|
|
813
861
|
var ActorInstance = class {
|
|
814
862
|
// Shared actor context for this instance
|
|
815
863
|
|
|
@@ -820,7 +868,7 @@ var ActorInstance = class {
|
|
|
820
868
|
#sleepCalled = false;
|
|
821
869
|
#stopCalled = false;
|
|
822
870
|
get isStopping() {
|
|
823
|
-
return this.#stopCalled
|
|
871
|
+
return this.#stopCalled;
|
|
824
872
|
}
|
|
825
873
|
#persistChanged = false;
|
|
826
874
|
#isInOnStateChange = false;
|
|
@@ -830,10 +878,13 @@ var ActorInstance = class {
|
|
|
830
878
|
* Any data that should be stored indefinitely should be held within this object.
|
|
831
879
|
*/
|
|
832
880
|
#persist;
|
|
881
|
+
get [PERSIST_SYMBOL]() {
|
|
882
|
+
return this.#persist;
|
|
883
|
+
}
|
|
833
884
|
/** Raw state without the proxy wrapper */
|
|
834
885
|
#persistRaw;
|
|
835
|
-
#persistWriteQueue = new (0,
|
|
836
|
-
#alarmWriteQueue = new (0,
|
|
886
|
+
#persistWriteQueue = new (0, _chunkYUBR6XCJcjs.SinglePromiseQueue)();
|
|
887
|
+
#alarmWriteQueue = new (0, _chunkYUBR6XCJcjs.SinglePromiseQueue)();
|
|
837
888
|
#lastSaveTime = 0;
|
|
838
889
|
#pendingSaveTimeout;
|
|
839
890
|
#vars;
|
|
@@ -851,8 +902,11 @@ var ActorInstance = class {
|
|
|
851
902
|
#subscriptionIndex = /* @__PURE__ */ new Map();
|
|
852
903
|
#checkConnLivenessInterval;
|
|
853
904
|
#sleepTimeout;
|
|
854
|
-
|
|
855
|
-
|
|
905
|
+
/**
|
|
906
|
+
* Track active HTTP requests through Hono router so sleep logic can
|
|
907
|
+
* account for them. Does not include WebSockets.
|
|
908
|
+
**/
|
|
909
|
+
#activeHonoHttpRequests = 0;
|
|
856
910
|
#activeRawWebSockets = /* @__PURE__ */ new Set();
|
|
857
911
|
#schedule;
|
|
858
912
|
#db;
|
|
@@ -876,12 +930,21 @@ var ActorInstance = class {
|
|
|
876
930
|
},
|
|
877
931
|
getConnections: async () => {
|
|
878
932
|
return Array.from(this.#connections.entries()).map(
|
|
879
|
-
([id, conn]) =>
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
933
|
+
([id, conn]) => {
|
|
934
|
+
var _a;
|
|
935
|
+
return {
|
|
936
|
+
id,
|
|
937
|
+
params: conn.params,
|
|
938
|
+
state: conn.__stateEnabled ? conn.state : void 0,
|
|
939
|
+
status: conn.status,
|
|
940
|
+
subscriptions: conn.subscriptions.size,
|
|
941
|
+
lastSeen: conn.lastSeen,
|
|
942
|
+
stateEnabled: conn.__stateEnabled,
|
|
943
|
+
isHibernatable: conn.isHibernatable,
|
|
944
|
+
requestId: (_a = conn.__socket) == null ? void 0 : _a.requestId,
|
|
945
|
+
driver: conn.__driverState ? getConnDriverKindFromState(conn.__driverState) : void 0
|
|
946
|
+
};
|
|
947
|
+
}
|
|
885
948
|
);
|
|
886
949
|
},
|
|
887
950
|
setState: async (state) => {
|
|
@@ -890,10 +953,10 @@ var ActorInstance = class {
|
|
|
890
953
|
await this.saveState({ immediate: true });
|
|
891
954
|
},
|
|
892
955
|
executeAction: async (name, params) => {
|
|
893
|
-
const
|
|
956
|
+
const requestId = generateConnRequestId();
|
|
894
957
|
const conn = await this.createConn(
|
|
895
958
|
{
|
|
896
|
-
|
|
959
|
+
requestId,
|
|
897
960
|
driverState: { [2 /* HTTP */]: {} }
|
|
898
961
|
},
|
|
899
962
|
void 0,
|
|
@@ -901,12 +964,12 @@ var ActorInstance = class {
|
|
|
901
964
|
);
|
|
902
965
|
try {
|
|
903
966
|
return await this.executeAction(
|
|
904
|
-
new (0,
|
|
967
|
+
new (0, _chunk5TRXLS6Xcjs.ActionContext)(this.actorContext, conn),
|
|
905
968
|
name,
|
|
906
969
|
params || []
|
|
907
970
|
);
|
|
908
971
|
} finally {
|
|
909
|
-
this.__connDisconnected(conn, true,
|
|
972
|
+
this.__connDisconnected(conn, true, requestId);
|
|
910
973
|
}
|
|
911
974
|
}
|
|
912
975
|
};
|
|
@@ -921,7 +984,7 @@ var ActorInstance = class {
|
|
|
921
984
|
return this.#inspector;
|
|
922
985
|
}
|
|
923
986
|
get #sleepingSupported() {
|
|
924
|
-
return this.#actorDriver.
|
|
987
|
+
return this.#actorDriver.startSleep !== void 0;
|
|
925
988
|
}
|
|
926
989
|
/**
|
|
927
990
|
* This constructor should never be used directly.
|
|
@@ -935,21 +998,23 @@ var ActorInstance = class {
|
|
|
935
998
|
this.actorContext = new ActorContext(this);
|
|
936
999
|
}
|
|
937
1000
|
async start(actorDriver, inlineClient, actorId, name, key, region) {
|
|
938
|
-
var _a, _b;
|
|
1001
|
+
var _a, _b, _c;
|
|
939
1002
|
const logParams = {
|
|
940
1003
|
actor: name,
|
|
941
1004
|
key: serializeActorKey(key),
|
|
942
1005
|
actorId
|
|
943
1006
|
};
|
|
944
|
-
|
|
1007
|
+
const extraLogParams = (_a = actorDriver.getExtraActorLogParams) == null ? void 0 : _a.call(actorDriver);
|
|
1008
|
+
if (extraLogParams) Object.assign(logParams, extraLogParams);
|
|
1009
|
+
this.#log = _chunk5N6F5PXDcjs.getBaseLogger.call(void 0, ).child(
|
|
945
1010
|
Object.assign(
|
|
946
|
-
|
|
1011
|
+
_chunk5N6F5PXDcjs.getIncludeTarget.call(void 0, ) ? { target: "actor" } : {},
|
|
947
1012
|
logParams
|
|
948
1013
|
)
|
|
949
1014
|
);
|
|
950
|
-
this.#rLog =
|
|
1015
|
+
this.#rLog = _chunk5N6F5PXDcjs.getBaseLogger.call(void 0, ).child(
|
|
951
1016
|
Object.assign(
|
|
952
|
-
|
|
1017
|
+
_chunk5N6F5PXDcjs.getIncludeTarget.call(void 0, ) ? { target: "actor-runtime" } : {},
|
|
953
1018
|
logParams
|
|
954
1019
|
)
|
|
955
1020
|
);
|
|
@@ -969,7 +1034,7 @@ var ActorInstance = class {
|
|
|
969
1034
|
this.#actorDriver.getContext(this.#actorId)
|
|
970
1035
|
);
|
|
971
1036
|
if (dataOrPromise instanceof Promise) {
|
|
972
|
-
vars = await
|
|
1037
|
+
vars = await _chunkGXIO5YOTcjs.deadline.call(void 0,
|
|
973
1038
|
dataOrPromise,
|
|
974
1039
|
this.#config.options.createVarsTimeout
|
|
975
1040
|
);
|
|
@@ -997,7 +1062,7 @@ var ActorInstance = class {
|
|
|
997
1062
|
getDatabase: () => actorDriver.getDatabase(this.#actorId)
|
|
998
1063
|
});
|
|
999
1064
|
this.#rLog.info({ msg: "database migration starting" });
|
|
1000
|
-
await ((
|
|
1065
|
+
await ((_c = (_b = this.#config.db).onMigrate) == null ? void 0 : _c.call(_b, client));
|
|
1001
1066
|
this.#rLog.info({ msg: "database migration complete" });
|
|
1002
1067
|
this.#db = client;
|
|
1003
1068
|
}
|
|
@@ -1107,7 +1172,7 @@ var ActorInstance = class {
|
|
|
1107
1172
|
} catch (error) {
|
|
1108
1173
|
this.actorContext.log.error({
|
|
1109
1174
|
msg: "error while running event",
|
|
1110
|
-
error:
|
|
1175
|
+
error: _chunkYUBR6XCJcjs.stringifyError.call(void 0, error),
|
|
1111
1176
|
event: event.eventId,
|
|
1112
1177
|
timestamp: event.timestamp,
|
|
1113
1178
|
action: event.kind.generic.actionName
|
|
@@ -1116,7 +1181,7 @@ var ActorInstance = class {
|
|
|
1116
1181
|
} catch (error) {
|
|
1117
1182
|
this.actorContext.log.error({
|
|
1118
1183
|
msg: "internal error while running event",
|
|
1119
|
-
error:
|
|
1184
|
+
error: _chunkYUBR6XCJcjs.stringifyError.call(void 0, error),
|
|
1120
1185
|
...event
|
|
1121
1186
|
});
|
|
1122
1187
|
}
|
|
@@ -1129,7 +1194,7 @@ var ActorInstance = class {
|
|
|
1129
1194
|
kind: {
|
|
1130
1195
|
generic: {
|
|
1131
1196
|
actionName: action,
|
|
1132
|
-
args:
|
|
1197
|
+
args: _chunkYUBR6XCJcjs.bufferToArrayBuffer.call(void 0, cbor2.encode(args))
|
|
1133
1198
|
}
|
|
1134
1199
|
}
|
|
1135
1200
|
});
|
|
@@ -1185,7 +1250,7 @@ var ActorInstance = class {
|
|
|
1185
1250
|
);
|
|
1186
1251
|
await this.#actorDriver.writePersistedData(
|
|
1187
1252
|
this.#actorId,
|
|
1188
|
-
|
|
1253
|
+
_chunk5TRXLS6Xcjs.PERSISTED_ACTOR_VERSIONED.serializeWithEmbeddedVersion(
|
|
1189
1254
|
bareData
|
|
1190
1255
|
)
|
|
1191
1256
|
);
|
|
@@ -1211,7 +1276,7 @@ var ActorInstance = class {
|
|
|
1211
1276
|
this.#persistRaw = target;
|
|
1212
1277
|
if (target === null || typeof target !== "object") {
|
|
1213
1278
|
let invalidPath = "";
|
|
1214
|
-
if (!
|
|
1279
|
+
if (!_chunkYUBR6XCJcjs.isCborSerializable.call(void 0,
|
|
1215
1280
|
target,
|
|
1216
1281
|
(path) => {
|
|
1217
1282
|
invalidPath = path;
|
|
@@ -1233,7 +1298,7 @@ var ActorInstance = class {
|
|
|
1233
1298
|
return;
|
|
1234
1299
|
}
|
|
1235
1300
|
let invalidPath = "";
|
|
1236
|
-
if (!
|
|
1301
|
+
if (!_chunkYUBR6XCJcjs.isCborSerializable.call(void 0,
|
|
1237
1302
|
value,
|
|
1238
1303
|
(invalidPathPart) => {
|
|
1239
1304
|
invalidPath = invalidPathPart;
|
|
@@ -1259,7 +1324,7 @@ var ActorInstance = class {
|
|
|
1259
1324
|
} catch (error) {
|
|
1260
1325
|
this.#rLog.error({
|
|
1261
1326
|
msg: "error in `_onStateChange`",
|
|
1262
|
-
error:
|
|
1327
|
+
error: _chunkYUBR6XCJcjs.stringifyError.call(void 0, error)
|
|
1263
1328
|
});
|
|
1264
1329
|
} finally {
|
|
1265
1330
|
this.#isInOnStateChange = false;
|
|
@@ -1277,7 +1342,7 @@ var ActorInstance = class {
|
|
|
1277
1342
|
persistDataBuffer !== void 0,
|
|
1278
1343
|
"persist data has not been set, it should be set when initialized"
|
|
1279
1344
|
);
|
|
1280
|
-
const bareData =
|
|
1345
|
+
const bareData = _chunk5TRXLS6Xcjs.PERSISTED_ACTOR_VERSIONED.deserializeWithEmbeddedVersion(
|
|
1281
1346
|
persistDataBuffer
|
|
1282
1347
|
);
|
|
1283
1348
|
const persistData = this.#convertFromBarePersisted(bareData);
|
|
@@ -1321,7 +1386,7 @@ var ActorInstance = class {
|
|
|
1321
1386
|
const bareData2 = this.#convertToBarePersisted(persistData);
|
|
1322
1387
|
await this.#actorDriver.writePersistedData(
|
|
1323
1388
|
this.#actorId,
|
|
1324
|
-
|
|
1389
|
+
_chunk5TRXLS6Xcjs.PERSISTED_ACTOR_VERSIONED.serializeWithEmbeddedVersion(
|
|
1325
1390
|
bareData2
|
|
1326
1391
|
)
|
|
1327
1392
|
);
|
|
@@ -1344,13 +1409,13 @@ var ActorInstance = class {
|
|
|
1344
1409
|
*
|
|
1345
1410
|
* If not a clean disconnect, will keep the connection alive for a given interval to wait for reconnect.
|
|
1346
1411
|
*/
|
|
1347
|
-
__connDisconnected(conn, wasClean,
|
|
1348
|
-
if (
|
|
1412
|
+
__connDisconnected(conn, wasClean, requestId) {
|
|
1413
|
+
if (requestId && conn.__socket && requestId !== conn.__socket.requestId) {
|
|
1349
1414
|
this.#rLog.debug({
|
|
1350
1415
|
msg: "ignoring stale disconnect event",
|
|
1351
1416
|
connId: conn.id,
|
|
1352
|
-
|
|
1353
|
-
|
|
1417
|
+
eventRequestId: requestId,
|
|
1418
|
+
currentRequestId: conn.__socket.requestId
|
|
1354
1419
|
});
|
|
1355
1420
|
return;
|
|
1356
1421
|
}
|
|
@@ -1397,14 +1462,14 @@ var ActorInstance = class {
|
|
|
1397
1462
|
result.catch((error) => {
|
|
1398
1463
|
this.#rLog.error({
|
|
1399
1464
|
msg: "error in `onDisconnect`",
|
|
1400
|
-
error:
|
|
1465
|
+
error: _chunkYUBR6XCJcjs.stringifyError.call(void 0, error)
|
|
1401
1466
|
});
|
|
1402
1467
|
});
|
|
1403
1468
|
}
|
|
1404
1469
|
} catch (error) {
|
|
1405
1470
|
this.#rLog.error({
|
|
1406
1471
|
msg: "error in `onDisconnect`",
|
|
1407
|
-
error:
|
|
1472
|
+
error: _chunkYUBR6XCJcjs.stringifyError.call(void 0, error)
|
|
1408
1473
|
});
|
|
1409
1474
|
}
|
|
1410
1475
|
}
|
|
@@ -1445,7 +1510,7 @@ var ActorInstance = class {
|
|
|
1445
1510
|
this.#resetSleepTimer();
|
|
1446
1511
|
this.inspector.emitter.emit("connectionUpdated");
|
|
1447
1512
|
existingConn._sendMessage(
|
|
1448
|
-
new (0,
|
|
1513
|
+
new (0, _chunkGXIO5YOTcjs.CachedSerializer)(
|
|
1449
1514
|
{
|
|
1450
1515
|
body: {
|
|
1451
1516
|
tag: "Init",
|
|
@@ -1456,7 +1521,7 @@ var ActorInstance = class {
|
|
|
1456
1521
|
}
|
|
1457
1522
|
}
|
|
1458
1523
|
},
|
|
1459
|
-
|
|
1524
|
+
_chunk5TRXLS6Xcjs.TO_CLIENT_VERSIONED
|
|
1460
1525
|
)
|
|
1461
1526
|
);
|
|
1462
1527
|
return existingConn;
|
|
@@ -1490,7 +1555,7 @@ var ActorInstance = class {
|
|
|
1490
1555
|
params
|
|
1491
1556
|
);
|
|
1492
1557
|
if (dataOrPromise instanceof Promise) {
|
|
1493
|
-
connState = await
|
|
1558
|
+
connState = await _chunkGXIO5YOTcjs.deadline.call(void 0,
|
|
1494
1559
|
dataOrPromise,
|
|
1495
1560
|
this.#config.options.createConnStateTimeout
|
|
1496
1561
|
);
|
|
@@ -1523,7 +1588,7 @@ var ActorInstance = class {
|
|
|
1523
1588
|
try {
|
|
1524
1589
|
const result = this.#config.onConnect(this.actorContext, conn);
|
|
1525
1590
|
if (result instanceof Promise) {
|
|
1526
|
-
|
|
1591
|
+
_chunkGXIO5YOTcjs.deadline.call(void 0,
|
|
1527
1592
|
result,
|
|
1528
1593
|
this.#config.options.onConnectTimeout
|
|
1529
1594
|
).catch((error) => {
|
|
@@ -1537,14 +1602,14 @@ var ActorInstance = class {
|
|
|
1537
1602
|
} catch (error) {
|
|
1538
1603
|
this.#rLog.error({
|
|
1539
1604
|
msg: "error in `onConnect`",
|
|
1540
|
-
error:
|
|
1605
|
+
error: _chunkYUBR6XCJcjs.stringifyError.call(void 0, error)
|
|
1541
1606
|
});
|
|
1542
1607
|
conn == null ? void 0 : conn.disconnect("`onConnect` failed");
|
|
1543
1608
|
}
|
|
1544
1609
|
}
|
|
1545
1610
|
this.inspector.emitter.emit("connectionUpdated");
|
|
1546
1611
|
conn._sendMessage(
|
|
1547
|
-
new (0,
|
|
1612
|
+
new (0, _chunkGXIO5YOTcjs.CachedSerializer)(
|
|
1548
1613
|
{
|
|
1549
1614
|
body: {
|
|
1550
1615
|
tag: "Init",
|
|
@@ -1555,14 +1620,14 @@ var ActorInstance = class {
|
|
|
1555
1620
|
}
|
|
1556
1621
|
}
|
|
1557
1622
|
},
|
|
1558
|
-
|
|
1623
|
+
_chunk5TRXLS6Xcjs.TO_CLIENT_VERSIONED
|
|
1559
1624
|
)
|
|
1560
1625
|
);
|
|
1561
1626
|
return conn;
|
|
1562
1627
|
}
|
|
1563
1628
|
// MARK: Messages
|
|
1564
1629
|
async processMessage(message, conn) {
|
|
1565
|
-
await
|
|
1630
|
+
await _chunk5TRXLS6Xcjs.processMessage.call(void 0, message, this, conn, {
|
|
1566
1631
|
onExecuteAction: async (ctx, name, args) => {
|
|
1567
1632
|
this.inspector.emitter.emit("eventFired", {
|
|
1568
1633
|
type: "action",
|
|
@@ -1644,8 +1709,6 @@ var ActorInstance = class {
|
|
|
1644
1709
|
}
|
|
1645
1710
|
#assertReady(allowStoppingState = false) {
|
|
1646
1711
|
if (!this.#ready) throw new (0, _chunkKSRXX3Z4cjs.InternalError)("Actor not ready");
|
|
1647
|
-
if (!allowStoppingState && this.#sleepCalled)
|
|
1648
|
-
throw new (0, _chunkKSRXX3Z4cjs.InternalError)("Actor is going to sleep");
|
|
1649
1712
|
if (!allowStoppingState && this.#stopCalled)
|
|
1650
1713
|
throw new (0, _chunkKSRXX3Z4cjs.InternalError)("Actor is stopping");
|
|
1651
1714
|
}
|
|
@@ -1655,13 +1718,18 @@ var ActorInstance = class {
|
|
|
1655
1718
|
*/
|
|
1656
1719
|
#checkConnectionsLiveness() {
|
|
1657
1720
|
this.#rLog.debug({ msg: "checking connections liveness" });
|
|
1721
|
+
let connected = 0;
|
|
1722
|
+
let reconnecting = 0;
|
|
1723
|
+
let removed = 0;
|
|
1658
1724
|
for (const conn of this.#connections.values()) {
|
|
1659
1725
|
if (conn.__status === "connected") {
|
|
1726
|
+
connected += 1;
|
|
1660
1727
|
this.#rLog.debug({
|
|
1661
1728
|
msg: "connection is alive",
|
|
1662
1729
|
connId: conn.id
|
|
1663
1730
|
});
|
|
1664
1731
|
} else {
|
|
1732
|
+
reconnecting += 1;
|
|
1665
1733
|
const lastSeen = conn.__persist.lastSeen;
|
|
1666
1734
|
const sinceLastSeen = Date.now() - lastSeen;
|
|
1667
1735
|
if (sinceLastSeen < this.#config.options.connectionLivenessTimeout) {
|
|
@@ -1678,9 +1746,17 @@ var ActorInstance = class {
|
|
|
1678
1746
|
connId: conn.id,
|
|
1679
1747
|
lastSeen
|
|
1680
1748
|
});
|
|
1749
|
+
removed += 1;
|
|
1681
1750
|
this.#removeConn(conn);
|
|
1682
1751
|
}
|
|
1683
1752
|
}
|
|
1753
|
+
this.#rLog.debug({
|
|
1754
|
+
msg: "checked connection liveness",
|
|
1755
|
+
total: connected + reconnecting,
|
|
1756
|
+
connected,
|
|
1757
|
+
reconnecting,
|
|
1758
|
+
removed
|
|
1759
|
+
});
|
|
1684
1760
|
}
|
|
1685
1761
|
/**
|
|
1686
1762
|
* Check if the actor is ready to handle requests.
|
|
@@ -1738,7 +1814,7 @@ var ActorInstance = class {
|
|
|
1738
1814
|
msg: "awaiting async action",
|
|
1739
1815
|
actionName
|
|
1740
1816
|
});
|
|
1741
|
-
output = await
|
|
1817
|
+
output = await _chunkGXIO5YOTcjs.deadline.call(void 0,
|
|
1742
1818
|
outputOrPromise,
|
|
1743
1819
|
this.#config.options.actionTimeout
|
|
1744
1820
|
);
|
|
@@ -1773,7 +1849,7 @@ var ActorInstance = class {
|
|
|
1773
1849
|
} catch (error) {
|
|
1774
1850
|
this.#rLog.error({
|
|
1775
1851
|
msg: "error in `onBeforeActionResponse`",
|
|
1776
|
-
error:
|
|
1852
|
+
error: _chunkYUBR6XCJcjs.stringifyError.call(void 0, error)
|
|
1777
1853
|
});
|
|
1778
1854
|
}
|
|
1779
1855
|
}
|
|
@@ -1785,13 +1861,13 @@ var ActorInstance = class {
|
|
|
1785
1861
|
});
|
|
1786
1862
|
return output;
|
|
1787
1863
|
} catch (error) {
|
|
1788
|
-
if (error instanceof
|
|
1864
|
+
if (error instanceof _chunkGXIO5YOTcjs.DeadlineError) {
|
|
1789
1865
|
throw new (0, _chunkKSRXX3Z4cjs.ActionTimedOut)();
|
|
1790
1866
|
}
|
|
1791
1867
|
this.#rLog.error({
|
|
1792
1868
|
msg: "action error",
|
|
1793
1869
|
actionName,
|
|
1794
|
-
error:
|
|
1870
|
+
error: _chunkYUBR6XCJcjs.stringifyError.call(void 0, error)
|
|
1795
1871
|
});
|
|
1796
1872
|
throw error;
|
|
1797
1873
|
} finally {
|
|
@@ -1812,8 +1888,6 @@ var ActorInstance = class {
|
|
|
1812
1888
|
if (!this.#config.onFetch) {
|
|
1813
1889
|
throw new (0, _chunkKSRXX3Z4cjs.FetchHandlerNotDefined)();
|
|
1814
1890
|
}
|
|
1815
|
-
this.#activeRawFetchCount++;
|
|
1816
|
-
this.#resetSleepTimer();
|
|
1817
1891
|
try {
|
|
1818
1892
|
const response = await this.#config.onFetch(
|
|
1819
1893
|
this.actorContext,
|
|
@@ -1827,15 +1901,10 @@ var ActorInstance = class {
|
|
|
1827
1901
|
} catch (error) {
|
|
1828
1902
|
this.#rLog.error({
|
|
1829
1903
|
msg: "onFetch error",
|
|
1830
|
-
error:
|
|
1904
|
+
error: _chunkYUBR6XCJcjs.stringifyError.call(void 0, error)
|
|
1831
1905
|
});
|
|
1832
1906
|
throw error;
|
|
1833
1907
|
} finally {
|
|
1834
|
-
this.#activeRawFetchCount = Math.max(
|
|
1835
|
-
0,
|
|
1836
|
-
this.#activeRawFetchCount - 1
|
|
1837
|
-
);
|
|
1838
|
-
this.#resetSleepTimer();
|
|
1839
1908
|
this.#savePersistThrottled();
|
|
1840
1909
|
}
|
|
1841
1910
|
}
|
|
@@ -1851,8 +1920,81 @@ var ActorInstance = class {
|
|
|
1851
1920
|
const stateBeforeHandler = this.#persistChanged;
|
|
1852
1921
|
this.#activeRawWebSockets.add(websocket);
|
|
1853
1922
|
this.#resetSleepTimer();
|
|
1854
|
-
|
|
1923
|
+
let rivetRequestId;
|
|
1924
|
+
let persistedHibernatableWebSocket;
|
|
1925
|
+
const onSocketOpened = (event) => {
|
|
1926
|
+
rivetRequestId = event == null ? void 0 : event.rivetRequestId;
|
|
1927
|
+
if (rivetRequestId) {
|
|
1928
|
+
const rivetRequestIdLocal = rivetRequestId;
|
|
1929
|
+
persistedHibernatableWebSocket = this.#persist.hibernatableWebSocket.find(
|
|
1930
|
+
(ws) => _chunkYUBR6XCJcjs.arrayBuffersEqual.call(void 0,
|
|
1931
|
+
ws.requestId,
|
|
1932
|
+
rivetRequestIdLocal
|
|
1933
|
+
)
|
|
1934
|
+
);
|
|
1935
|
+
if (persistedHibernatableWebSocket) {
|
|
1936
|
+
persistedHibernatableWebSocket.lastSeenTimestamp = BigInt(Date.now());
|
|
1937
|
+
}
|
|
1938
|
+
}
|
|
1939
|
+
this.#rLog.debug({
|
|
1940
|
+
msg: "actor instance onSocketOpened",
|
|
1941
|
+
rivetRequestId,
|
|
1942
|
+
isHibernatable: !!persistedHibernatableWebSocket,
|
|
1943
|
+
hibernationMsgIndex: persistedHibernatableWebSocket == null ? void 0 : persistedHibernatableWebSocket.msgIndex
|
|
1944
|
+
});
|
|
1945
|
+
};
|
|
1946
|
+
const onSocketMessage = (event) => {
|
|
1947
|
+
if (persistedHibernatableWebSocket) {
|
|
1948
|
+
persistedHibernatableWebSocket.lastSeenTimestamp = BigInt(
|
|
1949
|
+
Date.now()
|
|
1950
|
+
);
|
|
1951
|
+
persistedHibernatableWebSocket.msgIndex = BigInt(
|
|
1952
|
+
event.rivetMessageIndex
|
|
1953
|
+
);
|
|
1954
|
+
}
|
|
1955
|
+
this.#rLog.debug({
|
|
1956
|
+
msg: "actor instance onSocketMessage",
|
|
1957
|
+
rivetRequestId,
|
|
1958
|
+
isHibernatable: !!persistedHibernatableWebSocket,
|
|
1959
|
+
hibernationMsgIndex: persistedHibernatableWebSocket == null ? void 0 : persistedHibernatableWebSocket.msgIndex
|
|
1960
|
+
});
|
|
1961
|
+
};
|
|
1962
|
+
const onSocketClosed = (_event) => {
|
|
1963
|
+
if (rivetRequestId) {
|
|
1964
|
+
const rivetRequestIdLocal = rivetRequestId;
|
|
1965
|
+
const wsIndex = this.#persist.hibernatableWebSocket.findIndex(
|
|
1966
|
+
(ws) => _chunkYUBR6XCJcjs.arrayBuffersEqual.call(void 0,
|
|
1967
|
+
ws.requestId,
|
|
1968
|
+
rivetRequestIdLocal
|
|
1969
|
+
)
|
|
1970
|
+
);
|
|
1971
|
+
const removed = this.#persist.hibernatableWebSocket.splice(
|
|
1972
|
+
wsIndex,
|
|
1973
|
+
1
|
|
1974
|
+
);
|
|
1975
|
+
if (removed.length > 0) {
|
|
1976
|
+
this.#rLog.debug({
|
|
1977
|
+
msg: "removed hibernatable websocket",
|
|
1978
|
+
rivetRequestId,
|
|
1979
|
+
hibernationMsgIndex: persistedHibernatableWebSocket == null ? void 0 : persistedHibernatableWebSocket.msgIndex
|
|
1980
|
+
});
|
|
1981
|
+
} else {
|
|
1982
|
+
this.#rLog.warn({
|
|
1983
|
+
msg: "could not find hibernatable websocket to remove",
|
|
1984
|
+
rivetRequestId,
|
|
1985
|
+
hibernationMsgIndex: persistedHibernatableWebSocket == null ? void 0 : persistedHibernatableWebSocket.msgIndex
|
|
1986
|
+
});
|
|
1987
|
+
}
|
|
1988
|
+
}
|
|
1989
|
+
this.#rLog.debug({
|
|
1990
|
+
msg: "actor instance onSocketMessage",
|
|
1991
|
+
rivetRequestId,
|
|
1992
|
+
isHibernatable: !!persistedHibernatableWebSocket,
|
|
1993
|
+
hibernatableWebSocketCount: this.#persist.hibernatableWebSocket.length
|
|
1994
|
+
});
|
|
1855
1995
|
try {
|
|
1996
|
+
websocket.removeEventListener("open", onSocketOpened);
|
|
1997
|
+
websocket.removeEventListener("message", onSocketMessage);
|
|
1856
1998
|
websocket.removeEventListener("close", onSocketClosed);
|
|
1857
1999
|
websocket.removeEventListener("error", onSocketClosed);
|
|
1858
2000
|
} catch (e) {
|
|
@@ -1861,6 +2003,8 @@ var ActorInstance = class {
|
|
|
1861
2003
|
this.#resetSleepTimer();
|
|
1862
2004
|
};
|
|
1863
2005
|
try {
|
|
2006
|
+
websocket.addEventListener("open", onSocketOpened);
|
|
2007
|
+
websocket.addEventListener("message", onSocketMessage);
|
|
1864
2008
|
websocket.addEventListener("close", onSocketClosed);
|
|
1865
2009
|
websocket.addEventListener("error", onSocketClosed);
|
|
1866
2010
|
} catch (e2) {
|
|
@@ -1872,7 +2016,7 @@ var ActorInstance = class {
|
|
|
1872
2016
|
} catch (error) {
|
|
1873
2017
|
this.#rLog.error({
|
|
1874
2018
|
msg: "onWebSocket error",
|
|
1875
|
-
error:
|
|
2019
|
+
error: _chunkYUBR6XCJcjs.stringifyError.call(void 0, error)
|
|
1876
2020
|
});
|
|
1877
2021
|
throw error;
|
|
1878
2022
|
} finally {
|
|
@@ -1967,17 +2111,17 @@ var ActorInstance = class {
|
|
|
1967
2111
|
});
|
|
1968
2112
|
const subscriptions = this.#subscriptionIndex.get(name);
|
|
1969
2113
|
if (!subscriptions) return;
|
|
1970
|
-
const toClientSerializer = new (0,
|
|
2114
|
+
const toClientSerializer = new (0, _chunkGXIO5YOTcjs.CachedSerializer)(
|
|
1971
2115
|
{
|
|
1972
2116
|
body: {
|
|
1973
2117
|
tag: "Event",
|
|
1974
2118
|
val: {
|
|
1975
2119
|
name,
|
|
1976
|
-
args:
|
|
2120
|
+
args: _chunkYUBR6XCJcjs.bufferToArrayBuffer.call(void 0, cbor2.encode(args))
|
|
1977
2121
|
}
|
|
1978
2122
|
}
|
|
1979
2123
|
},
|
|
1980
|
-
|
|
2124
|
+
_chunk5TRXLS6Xcjs.TO_CLIENT_VERSIONED
|
|
1981
2125
|
);
|
|
1982
2126
|
for (const connection of subscriptions) {
|
|
1983
2127
|
connection._sendMessage(toClientSerializer);
|
|
@@ -1998,7 +2142,7 @@ var ActorInstance = class {
|
|
|
1998
2142
|
}).catch((error) => {
|
|
1999
2143
|
this.#rLog.error({
|
|
2000
2144
|
msg: "wait until promise failed",
|
|
2001
|
-
error:
|
|
2145
|
+
error: _chunkYUBR6XCJcjs.stringifyError.call(void 0, error)
|
|
2002
2146
|
});
|
|
2003
2147
|
});
|
|
2004
2148
|
this.#backgroundPromises.push(nonfailablePromise);
|
|
@@ -2018,13 +2162,34 @@ var ActorInstance = class {
|
|
|
2018
2162
|
await this.#savePersistInner();
|
|
2019
2163
|
} else {
|
|
2020
2164
|
if (!this.#onPersistSavedPromise) {
|
|
2021
|
-
this.#onPersistSavedPromise =
|
|
2165
|
+
this.#onPersistSavedPromise = _chunkYUBR6XCJcjs.promiseWithResolvers.call(void 0, );
|
|
2022
2166
|
}
|
|
2023
2167
|
this.#savePersistThrottled();
|
|
2024
2168
|
await this.#onPersistSavedPromise.promise;
|
|
2025
2169
|
}
|
|
2026
2170
|
}
|
|
2027
2171
|
}
|
|
2172
|
+
/**
|
|
2173
|
+
* Called by router middleware when an HTTP request begins.
|
|
2174
|
+
*/
|
|
2175
|
+
__beginHonoHttpRequest() {
|
|
2176
|
+
this.#activeHonoHttpRequests++;
|
|
2177
|
+
this.#resetSleepTimer();
|
|
2178
|
+
}
|
|
2179
|
+
/**
|
|
2180
|
+
* Called by router middleware when an HTTP request ends.
|
|
2181
|
+
*/
|
|
2182
|
+
__endHonoHttpRequest() {
|
|
2183
|
+
this.#activeHonoHttpRequests--;
|
|
2184
|
+
if (this.#activeHonoHttpRequests < 0) {
|
|
2185
|
+
this.#activeHonoHttpRequests = 0;
|
|
2186
|
+
this.#rLog.warn({
|
|
2187
|
+
msg: "active hono requests went below 0, this is a RivetKit bug",
|
|
2188
|
+
..._chunkYUBR6XCJcjs.EXTRA_ERROR_LOG
|
|
2189
|
+
});
|
|
2190
|
+
}
|
|
2191
|
+
this.#resetSleepTimer();
|
|
2192
|
+
}
|
|
2028
2193
|
// MARK: Sleep
|
|
2029
2194
|
/**
|
|
2030
2195
|
* Reset timer from the last actor interaction that allows it to be put to sleep.
|
|
@@ -2041,56 +2206,68 @@ var ActorInstance = class {
|
|
|
2041
2206
|
const canSleep = this.#canSleep();
|
|
2042
2207
|
this.#rLog.debug({
|
|
2043
2208
|
msg: "resetting sleep timer",
|
|
2044
|
-
canSleep,
|
|
2045
|
-
existingTimeout: !!this.#sleepTimeout
|
|
2209
|
+
canSleep: CanSleep[canSleep],
|
|
2210
|
+
existingTimeout: !!this.#sleepTimeout,
|
|
2211
|
+
timeout: this.#config.options.sleepTimeout
|
|
2046
2212
|
});
|
|
2047
2213
|
if (this.#sleepTimeout) {
|
|
2048
2214
|
clearTimeout(this.#sleepTimeout);
|
|
2049
2215
|
this.#sleepTimeout = void 0;
|
|
2050
2216
|
}
|
|
2051
2217
|
if (this.#sleepCalled) return;
|
|
2052
|
-
if (canSleep) {
|
|
2218
|
+
if (canSleep === 0 /* Yes */) {
|
|
2053
2219
|
this.#sleepTimeout = setTimeout(() => {
|
|
2054
|
-
this.
|
|
2055
|
-
this.#rLog.error({
|
|
2056
|
-
msg: "error during sleep",
|
|
2057
|
-
error: _chunkELDFBXDVcjs.stringifyError.call(void 0, error)
|
|
2058
|
-
});
|
|
2059
|
-
});
|
|
2220
|
+
this._startSleep();
|
|
2060
2221
|
}, this.#config.options.sleepTimeout);
|
|
2061
2222
|
}
|
|
2062
2223
|
}
|
|
2063
2224
|
/** If this actor can be put in a sleeping state. */
|
|
2064
2225
|
#canSleep() {
|
|
2065
|
-
if (!this.#ready) return
|
|
2226
|
+
if (!this.#ready) return 1 /* NotReady */;
|
|
2227
|
+
if (this.#activeHonoHttpRequests > 0)
|
|
2228
|
+
return 3 /* ActiveHonoHttpRequests */;
|
|
2229
|
+
if (this.#activeRawWebSockets.size > 0)
|
|
2230
|
+
return 4 /* ActiveRawWebSockets */;
|
|
2066
2231
|
for (const conn of this.#connections.values()) {
|
|
2067
|
-
if (conn.status === "connected") return
|
|
2232
|
+
if (conn.status === "connected") return 2 /* ActiveConns */;
|
|
2068
2233
|
}
|
|
2069
|
-
|
|
2070
|
-
if (this.#activeRawWebSockets.size > 0) return false;
|
|
2071
|
-
return true;
|
|
2234
|
+
return 0 /* Yes */;
|
|
2072
2235
|
}
|
|
2073
|
-
/**
|
|
2074
|
-
|
|
2236
|
+
/**
|
|
2237
|
+
* Puts an actor to sleep. This should just start the sleep sequence, most shutdown logic should be in _stop (which is called by the ActorDriver when sleeping).
|
|
2238
|
+
*
|
|
2239
|
+
* For the engine, this will:
|
|
2240
|
+
* 1. Publish EventActorIntent with ActorIntentSleep (via driver.startSleep)
|
|
2241
|
+
* 2. Engine runner will wait for CommandStopActor
|
|
2242
|
+
* 3. Engine runner will call _onStop and wait for it to finish
|
|
2243
|
+
* 4. Engine runner will publish EventActorStateUpdate with ActorStateSTop
|
|
2244
|
+
**/
|
|
2245
|
+
_startSleep() {
|
|
2075
2246
|
var _a;
|
|
2076
|
-
const sleep = (_a = this.#actorDriver.sleep) == null ? void 0 : _a.bind(
|
|
2077
|
-
this.#actorDriver,
|
|
2078
|
-
this.#actorId
|
|
2079
|
-
);
|
|
2080
|
-
_invariant2.default.call(void 0, this.#sleepingSupported, "sleeping not supported");
|
|
2081
|
-
_invariant2.default.call(void 0, sleep, "no sleep on driver");
|
|
2082
2247
|
if (this.#sleepCalled) {
|
|
2083
2248
|
this.#rLog.warn({ msg: "already sleeping actor" });
|
|
2084
2249
|
return;
|
|
2085
2250
|
}
|
|
2086
2251
|
this.#sleepCalled = true;
|
|
2252
|
+
const sleep = (_a = this.#actorDriver.startSleep) == null ? void 0 : _a.bind(
|
|
2253
|
+
this.#actorDriver,
|
|
2254
|
+
this.#actorId
|
|
2255
|
+
);
|
|
2256
|
+
_invariant2.default.call(void 0, this.#sleepingSupported, "sleeping not supported");
|
|
2257
|
+
_invariant2.default.call(void 0, sleep, "no sleep on driver");
|
|
2087
2258
|
this.#rLog.info({ msg: "actor sleeping" });
|
|
2088
|
-
setImmediate(
|
|
2089
|
-
|
|
2259
|
+
setImmediate(() => {
|
|
2260
|
+
sleep();
|
|
2090
2261
|
});
|
|
2091
2262
|
}
|
|
2092
2263
|
// MARK: Stop
|
|
2093
|
-
|
|
2264
|
+
/**
|
|
2265
|
+
* For the engine:
|
|
2266
|
+
* 1. Engine runner receives CommandStopActor
|
|
2267
|
+
* 2. Engine runner calls _onStop and waits for it to finish
|
|
2268
|
+
* 3. Engine runner publishes EventActorStateUpdate with ActorStateSTop
|
|
2269
|
+
*/
|
|
2270
|
+
async _onStop() {
|
|
2094
2271
|
if (this.#stopCalled) {
|
|
2095
2272
|
this.#rLog.warn({ msg: "already stopping actor" });
|
|
2096
2273
|
return;
|
|
@@ -2110,16 +2287,16 @@ var ActorInstance = class {
|
|
|
2110
2287
|
this.#rLog.debug({ msg: "calling onStop" });
|
|
2111
2288
|
const result = this.#config.onStop(this.actorContext);
|
|
2112
2289
|
if (result instanceof Promise) {
|
|
2113
|
-
await
|
|
2290
|
+
await _chunkGXIO5YOTcjs.deadline.call(void 0, result, this.#config.options.onStopTimeout);
|
|
2114
2291
|
}
|
|
2115
2292
|
this.#rLog.debug({ msg: "onStop completed" });
|
|
2116
2293
|
} catch (error) {
|
|
2117
|
-
if (error instanceof
|
|
2294
|
+
if (error instanceof _chunkGXIO5YOTcjs.DeadlineError) {
|
|
2118
2295
|
this.#rLog.error({ msg: "onStop timed out" });
|
|
2119
2296
|
} else {
|
|
2120
2297
|
this.#rLog.error({
|
|
2121
2298
|
msg: "error in onStop",
|
|
2122
|
-
error:
|
|
2299
|
+
error: _chunkYUBR6XCJcjs.stringifyError.call(void 0, error)
|
|
2123
2300
|
});
|
|
2124
2301
|
}
|
|
2125
2302
|
}
|
|
@@ -2182,14 +2359,14 @@ var ActorInstance = class {
|
|
|
2182
2359
|
// MARK: BARE Conversion Helpers
|
|
2183
2360
|
#convertToBarePersisted(persist) {
|
|
2184
2361
|
return {
|
|
2185
|
-
input: persist.input !== void 0 ?
|
|
2362
|
+
input: persist.input !== void 0 ? _chunkYUBR6XCJcjs.bufferToArrayBuffer.call(void 0, cbor2.encode(persist.input)) : null,
|
|
2186
2363
|
hasInitialized: persist.hasInitiated,
|
|
2187
|
-
state:
|
|
2364
|
+
state: _chunkYUBR6XCJcjs.bufferToArrayBuffer.call(void 0, cbor2.encode(persist.state)),
|
|
2188
2365
|
connections: persist.connections.map((conn) => ({
|
|
2189
2366
|
id: conn.connId,
|
|
2190
2367
|
token: conn.token,
|
|
2191
|
-
parameters:
|
|
2192
|
-
state:
|
|
2368
|
+
parameters: _chunkYUBR6XCJcjs.bufferToArrayBuffer.call(void 0, cbor2.encode(conn.params || {})),
|
|
2369
|
+
state: _chunkYUBR6XCJcjs.bufferToArrayBuffer.call(void 0, cbor2.encode(conn.state || {})),
|
|
2193
2370
|
subscriptions: conn.subscriptions.map((sub) => ({
|
|
2194
2371
|
eventName: sub.eventName
|
|
2195
2372
|
})),
|
|
@@ -2205,6 +2382,11 @@ var ActorInstance = class {
|
|
|
2205
2382
|
args: _nullishCoalesce(event.kind.generic.args, () => ( null))
|
|
2206
2383
|
}
|
|
2207
2384
|
}
|
|
2385
|
+
})),
|
|
2386
|
+
hibernatableWebSocket: persist.hibernatableWebSocket.map((ws) => ({
|
|
2387
|
+
requestId: ws.requestId,
|
|
2388
|
+
lastSeenTimestamp: ws.lastSeenTimestamp,
|
|
2389
|
+
msgIndex: ws.msgIndex
|
|
2208
2390
|
}))
|
|
2209
2391
|
};
|
|
2210
2392
|
}
|
|
@@ -2232,6 +2414,11 @@ var ActorInstance = class {
|
|
|
2232
2414
|
args: event.kind.val.args
|
|
2233
2415
|
}
|
|
2234
2416
|
}
|
|
2417
|
+
})),
|
|
2418
|
+
hibernatableWebSocket: bareData.hibernatableWebSocket.map((ws) => ({
|
|
2419
|
+
requestId: ws.requestId,
|
|
2420
|
+
lastSeenTimestamp: ws.lastSeenTimestamp,
|
|
2421
|
+
msgIndex: ws.msgIndex
|
|
2235
2422
|
}))
|
|
2236
2423
|
};
|
|
2237
2424
|
}
|
|
@@ -2311,7 +2498,7 @@ async function importEventSource() {
|
|
|
2311
2498
|
moduleName
|
|
2312
2499
|
)));
|
|
2313
2500
|
_EventSource = es.EventSource;
|
|
2314
|
-
|
|
2501
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).debug("using eventsource from npm");
|
|
2315
2502
|
} catch (err) {
|
|
2316
2503
|
_EventSource = class MockEventSource {
|
|
2317
2504
|
constructor() {
|
|
@@ -2320,7 +2507,7 @@ async function importEventSource() {
|
|
|
2320
2507
|
);
|
|
2321
2508
|
}
|
|
2322
2509
|
};
|
|
2323
|
-
|
|
2510
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).debug("using mock eventsource");
|
|
2324
2511
|
}
|
|
2325
2512
|
return _EventSource;
|
|
2326
2513
|
})();
|
|
@@ -2329,7 +2516,7 @@ async function importEventSource() {
|
|
|
2329
2516
|
|
|
2330
2517
|
// src/client/actor-query.ts
|
|
2331
2518
|
async function queryActor(c, query, managerDriver) {
|
|
2332
|
-
|
|
2519
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).debug({ msg: "querying actor", query: JSON.stringify(query) });
|
|
2333
2520
|
let actorOutput;
|
|
2334
2521
|
if ("getForId" in query) {
|
|
2335
2522
|
const output = await managerDriver.getForId({
|
|
@@ -2376,7 +2563,7 @@ async function queryActor(c, query, managerDriver) {
|
|
|
2376
2563
|
} else {
|
|
2377
2564
|
throw new (0, _chunkKSRXX3Z4cjs.InvalidRequest)("Invalid query format");
|
|
2378
2565
|
}
|
|
2379
|
-
|
|
2566
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).debug({ msg: "actor query result", actorId: actorOutput.actorId });
|
|
2380
2567
|
return { actorId: actorOutput.actorId };
|
|
2381
2568
|
}
|
|
2382
2569
|
|
|
@@ -2426,13 +2613,13 @@ async function rawHttpFetch(driver, actorQuery, params, input, init) {
|
|
|
2426
2613
|
}
|
|
2427
2614
|
try {
|
|
2428
2615
|
const { actorId } = await queryActor(void 0, actorQuery, driver);
|
|
2429
|
-
|
|
2616
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).debug({ msg: "found actor for raw http", actorId });
|
|
2430
2617
|
_invariant2.default.call(void 0, actorId, "Missing actor ID");
|
|
2431
2618
|
const normalizedPath = path.startsWith("/") ? path.slice(1) : path;
|
|
2432
2619
|
const url = new URL(`http://actor/raw/http/${normalizedPath}`);
|
|
2433
2620
|
const proxyRequestHeaders = new Headers(mergedInit.headers);
|
|
2434
2621
|
if (params) {
|
|
2435
|
-
proxyRequestHeaders.set(
|
|
2622
|
+
proxyRequestHeaders.set(_chunkGXIO5YOTcjs.HEADER_CONN_PARAMS, JSON.stringify(params));
|
|
2436
2623
|
}
|
|
2437
2624
|
const proxyRequest = new Request(url, {
|
|
2438
2625
|
...mergedInit,
|
|
@@ -2440,9 +2627,9 @@ async function rawHttpFetch(driver, actorQuery, params, input, init) {
|
|
|
2440
2627
|
});
|
|
2441
2628
|
return driver.sendRequest(actorId, proxyRequest);
|
|
2442
2629
|
} catch (err) {
|
|
2443
|
-
const { group, code, message, metadata } =
|
|
2630
|
+
const { group, code, message, metadata } = _chunkYUBR6XCJcjs.deconstructError.call(void 0,
|
|
2444
2631
|
err,
|
|
2445
|
-
|
|
2632
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ),
|
|
2446
2633
|
{},
|
|
2447
2634
|
true
|
|
2448
2635
|
);
|
|
@@ -2452,7 +2639,7 @@ async function rawHttpFetch(driver, actorQuery, params, input, init) {
|
|
|
2452
2639
|
async function rawWebSocket(driver, actorQuery, params, path, protocols) {
|
|
2453
2640
|
const encoding = "bare";
|
|
2454
2641
|
const { actorId } = await queryActor(void 0, actorQuery, driver);
|
|
2455
|
-
|
|
2642
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).debug({ msg: "found actor for action", actorId });
|
|
2456
2643
|
_invariant2.default.call(void 0, actorId, "Missing actor ID");
|
|
2457
2644
|
let pathPortion = "";
|
|
2458
2645
|
let queryPortion = "";
|
|
@@ -2468,8 +2655,8 @@ async function rawWebSocket(driver, actorQuery, params, path, protocols) {
|
|
|
2468
2655
|
pathPortion = pathPortion.slice(1);
|
|
2469
2656
|
}
|
|
2470
2657
|
}
|
|
2471
|
-
const fullPath = `${
|
|
2472
|
-
|
|
2658
|
+
const fullPath = `${_chunkGXIO5YOTcjs.PATH_RAW_WEBSOCKET_PREFIX}${pathPortion}${queryPortion}`;
|
|
2659
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).debug({
|
|
2473
2660
|
msg: "opening websocket",
|
|
2474
2661
|
actorId,
|
|
2475
2662
|
encoding,
|
|
@@ -2495,10 +2682,10 @@ function messageLength(message) {
|
|
|
2495
2682
|
if (typeof message === "string") {
|
|
2496
2683
|
return message.length;
|
|
2497
2684
|
}
|
|
2498
|
-
|
|
2685
|
+
_chunkYUBR6XCJcjs.assertUnreachable.call(void 0, message);
|
|
2499
2686
|
}
|
|
2500
2687
|
async function sendHttpRequest(opts) {
|
|
2501
|
-
|
|
2688
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).debug({
|
|
2502
2689
|
msg: "sending http request",
|
|
2503
2690
|
url: opts.url,
|
|
2504
2691
|
encoding: opts.encoding
|
|
@@ -2507,8 +2694,8 @@ async function sendHttpRequest(opts) {
|
|
|
2507
2694
|
let bodyData;
|
|
2508
2695
|
if (opts.method === "POST" || opts.method === "PUT") {
|
|
2509
2696
|
_invariant2.default.call(void 0, opts.body !== void 0, "missing body");
|
|
2510
|
-
contentType =
|
|
2511
|
-
bodyData =
|
|
2697
|
+
contentType = _chunkGXIO5YOTcjs.contentTypeForEncoding.call(void 0, opts.encoding);
|
|
2698
|
+
bodyData = _chunkGXIO5YOTcjs.serializeWithEncoding.call(void 0,
|
|
2512
2699
|
opts.encoding,
|
|
2513
2700
|
opts.body,
|
|
2514
2701
|
opts.requestVersionedDataHandler
|
|
@@ -2524,7 +2711,7 @@ async function sendHttpRequest(opts) {
|
|
|
2524
2711
|
...contentType ? {
|
|
2525
2712
|
"Content-Type": contentType
|
|
2526
2713
|
} : {},
|
|
2527
|
-
"User-Agent":
|
|
2714
|
+
"User-Agent": _chunkYUBR6XCJcjs.httpUserAgent.call(void 0, )
|
|
2528
2715
|
},
|
|
2529
2716
|
body: bodyData,
|
|
2530
2717
|
credentials: "include",
|
|
@@ -2540,10 +2727,10 @@ async function sendHttpRequest(opts) {
|
|
|
2540
2727
|
const bufferResponse = await response.arrayBuffer();
|
|
2541
2728
|
let responseData;
|
|
2542
2729
|
try {
|
|
2543
|
-
responseData =
|
|
2730
|
+
responseData = _chunkGXIO5YOTcjs.deserializeWithEncoding.call(void 0,
|
|
2544
2731
|
opts.encoding,
|
|
2545
2732
|
new Uint8Array(bufferResponse),
|
|
2546
|
-
|
|
2733
|
+
_chunk5TRXLS6Xcjs.HTTP_RESPONSE_ERROR_VERSIONED
|
|
2547
2734
|
);
|
|
2548
2735
|
} catch (error) {
|
|
2549
2736
|
const textResponse = new TextDecoder("utf-8", {
|
|
@@ -2563,7 +2750,7 @@ ${textResponse}`
|
|
|
2563
2750
|
}
|
|
2564
2751
|
}
|
|
2565
2752
|
let decodedMetadata;
|
|
2566
|
-
if (responseData.metadata &&
|
|
2753
|
+
if (responseData.metadata && _chunkGXIO5YOTcjs.encodingIsBinary.call(void 0, opts.encoding)) {
|
|
2567
2754
|
decodedMetadata = cbor3.decode(
|
|
2568
2755
|
new Uint8Array(responseData.metadata)
|
|
2569
2756
|
);
|
|
@@ -2580,7 +2767,7 @@ ${textResponse}`
|
|
|
2580
2767
|
}
|
|
2581
2768
|
try {
|
|
2582
2769
|
const buffer = new Uint8Array(await response.arrayBuffer());
|
|
2583
|
-
return
|
|
2770
|
+
return _chunkGXIO5YOTcjs.deserializeWithEncoding.call(void 0,
|
|
2584
2771
|
opts.encoding,
|
|
2585
2772
|
buffer,
|
|
2586
2773
|
opts.responseVersionedDataHandler
|
|
@@ -2627,9 +2814,9 @@ var ActorHandleRaw = class {
|
|
|
2627
2814
|
this.#actorQuery,
|
|
2628
2815
|
this.#driver
|
|
2629
2816
|
);
|
|
2630
|
-
|
|
2817
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).debug({ msg: "found actor for action", actorId });
|
|
2631
2818
|
_invariant2.default.call(void 0, actorId, "Missing actor ID");
|
|
2632
|
-
|
|
2819
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).debug({
|
|
2633
2820
|
msg: "handling action",
|
|
2634
2821
|
name: opts.name,
|
|
2635
2822
|
encoding: this.#encoding
|
|
@@ -2638,11 +2825,11 @@ var ActorHandleRaw = class {
|
|
|
2638
2825
|
url: `http://actor/action/${encodeURIComponent(opts.name)}`,
|
|
2639
2826
|
method: "POST",
|
|
2640
2827
|
headers: {
|
|
2641
|
-
[
|
|
2642
|
-
...this.#params !== void 0 ? { [
|
|
2828
|
+
[_chunkGXIO5YOTcjs.HEADER_ENCODING]: this.#encoding,
|
|
2829
|
+
...this.#params !== void 0 ? { [_chunkGXIO5YOTcjs.HEADER_CONN_PARAMS]: JSON.stringify(this.#params) } : {}
|
|
2643
2830
|
},
|
|
2644
2831
|
body: {
|
|
2645
|
-
args:
|
|
2832
|
+
args: _chunkYUBR6XCJcjs.bufferToArrayBuffer.call(void 0, cbor4.encode(opts.args))
|
|
2646
2833
|
},
|
|
2647
2834
|
encoding: this.#encoding,
|
|
2648
2835
|
customFetch: this.#driver.sendRequest.bind(
|
|
@@ -2650,14 +2837,14 @@ var ActorHandleRaw = class {
|
|
|
2650
2837
|
actorId
|
|
2651
2838
|
),
|
|
2652
2839
|
signal: opts == null ? void 0 : opts.signal,
|
|
2653
|
-
requestVersionedDataHandler:
|
|
2654
|
-
responseVersionedDataHandler:
|
|
2840
|
+
requestVersionedDataHandler: _chunk5TRXLS6Xcjs.HTTP_ACTION_REQUEST_VERSIONED,
|
|
2841
|
+
responseVersionedDataHandler: _chunk5TRXLS6Xcjs.HTTP_ACTION_RESPONSE_VERSIONED
|
|
2655
2842
|
});
|
|
2656
2843
|
return cbor4.decode(new Uint8Array(responseData.output));
|
|
2657
2844
|
} catch (err) {
|
|
2658
|
-
const { group, code, message, metadata } =
|
|
2845
|
+
const { group, code, message, metadata } = _chunkYUBR6XCJcjs.deconstructError.call(void 0,
|
|
2659
2846
|
err,
|
|
2660
|
-
|
|
2847
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ),
|
|
2661
2848
|
{},
|
|
2662
2849
|
true
|
|
2663
2850
|
);
|
|
@@ -2671,7 +2858,7 @@ var ActorHandleRaw = class {
|
|
|
2671
2858
|
* @returns {ActorConn<AD>} A connection to the actor.
|
|
2672
2859
|
*/
|
|
2673
2860
|
connect() {
|
|
2674
|
-
|
|
2861
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).debug({
|
|
2675
2862
|
msg: "establishing connection from handle",
|
|
2676
2863
|
query: this.#actorQuery
|
|
2677
2864
|
});
|
|
@@ -2731,7 +2918,7 @@ var ActorHandleRaw = class {
|
|
|
2731
2918
|
} else if ("getOrCreateForKey" in this.#actorQuery) {
|
|
2732
2919
|
name = this.#actorQuery.getOrCreateForKey.name;
|
|
2733
2920
|
} else {
|
|
2734
|
-
|
|
2921
|
+
_chunkGXIO5YOTcjs.assertUnreachable.call(void 0, this.#actorQuery);
|
|
2735
2922
|
}
|
|
2736
2923
|
const { actorId } = await queryActor(
|
|
2737
2924
|
void 0,
|
|
@@ -2745,7 +2932,7 @@ var ActorHandleRaw = class {
|
|
|
2745
2932
|
} else if ("create" in this.#actorQuery) {
|
|
2746
2933
|
_invariant2.default.call(void 0, false, "actorQuery cannot be create");
|
|
2747
2934
|
} else {
|
|
2748
|
-
|
|
2935
|
+
_chunkGXIO5YOTcjs.assertUnreachable.call(void 0, this.#actorQuery);
|
|
2749
2936
|
}
|
|
2750
2937
|
}
|
|
2751
2938
|
};
|
|
@@ -2778,7 +2965,7 @@ var ClientRaw = (_class4 = class {
|
|
|
2778
2965
|
* @returns {ActorHandle<AD>} - A handle to the actor.
|
|
2779
2966
|
*/
|
|
2780
2967
|
getForId(name, actorId, opts) {
|
|
2781
|
-
|
|
2968
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).debug({
|
|
2782
2969
|
msg: "get handle to actor with id",
|
|
2783
2970
|
name,
|
|
2784
2971
|
actorId,
|
|
@@ -2804,7 +2991,7 @@ var ClientRaw = (_class4 = class {
|
|
|
2804
2991
|
*/
|
|
2805
2992
|
get(name, key, opts) {
|
|
2806
2993
|
const keyArray = typeof key === "string" ? [key] : key || [];
|
|
2807
|
-
|
|
2994
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).debug({
|
|
2808
2995
|
msg: "get handle to actor",
|
|
2809
2996
|
name,
|
|
2810
2997
|
key: keyArray,
|
|
@@ -2830,7 +3017,7 @@ var ClientRaw = (_class4 = class {
|
|
|
2830
3017
|
*/
|
|
2831
3018
|
getOrCreate(name, key, opts) {
|
|
2832
3019
|
const keyArray = typeof key === "string" ? [key] : key || [];
|
|
2833
|
-
|
|
3020
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).debug({
|
|
2834
3021
|
msg: "get or create handle to actor",
|
|
2835
3022
|
name,
|
|
2836
3023
|
key: keyArray,
|
|
@@ -2868,7 +3055,7 @@ var ClientRaw = (_class4 = class {
|
|
|
2868
3055
|
key: keyArray
|
|
2869
3056
|
}
|
|
2870
3057
|
};
|
|
2871
|
-
|
|
3058
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).debug({
|
|
2872
3059
|
msg: "create actor handle",
|
|
2873
3060
|
name,
|
|
2874
3061
|
key: keyArray,
|
|
@@ -2880,7 +3067,7 @@ var ClientRaw = (_class4 = class {
|
|
|
2880
3067
|
createQuery,
|
|
2881
3068
|
this.#driver
|
|
2882
3069
|
);
|
|
2883
|
-
|
|
3070
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).debug({
|
|
2884
3071
|
msg: "created actor with ID",
|
|
2885
3072
|
name,
|
|
2886
3073
|
key: keyArray,
|
|
@@ -2917,11 +3104,11 @@ var ClientRaw = (_class4 = class {
|
|
|
2917
3104
|
*/
|
|
2918
3105
|
async dispose() {
|
|
2919
3106
|
if (this.#disposed) {
|
|
2920
|
-
|
|
3107
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).warn({ msg: "client already disconnected" });
|
|
2921
3108
|
return;
|
|
2922
3109
|
}
|
|
2923
3110
|
this.#disposed = true;
|
|
2924
|
-
|
|
3111
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).debug({ msg: "disposing client" });
|
|
2925
3112
|
const disposePromises = [];
|
|
2926
3113
|
for (const conn of this[ACTOR_CONNS_SYMBOL].values()) {
|
|
2927
3114
|
disposePromises.push(conn.dispose());
|
|
@@ -3081,10 +3268,10 @@ var ActorConnRaw = class {
|
|
|
3081
3268
|
* @returns {Promise<Response>} - A promise that resolves to the response of the action function.
|
|
3082
3269
|
*/
|
|
3083
3270
|
async action(opts) {
|
|
3084
|
-
|
|
3271
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).debug({ msg: "action", name: opts.name, args: opts.args });
|
|
3085
3272
|
const actionId = this.#actionIdCounter;
|
|
3086
3273
|
this.#actionIdCounter += 1;
|
|
3087
|
-
const { promise, resolve, reject } =
|
|
3274
|
+
const { promise, resolve, reject } = _chunkYUBR6XCJcjs.promiseWithResolvers.call(void 0, );
|
|
3088
3275
|
this.#actionsInFlight.set(actionId, {
|
|
3089
3276
|
name: opts.name,
|
|
3090
3277
|
resolve,
|
|
@@ -3096,7 +3283,7 @@ var ActorConnRaw = class {
|
|
|
3096
3283
|
val: {
|
|
3097
3284
|
id: BigInt(actionId),
|
|
3098
3285
|
name: opts.name,
|
|
3099
|
-
args:
|
|
3286
|
+
args: _chunkYUBR6XCJcjs.bufferToArrayBuffer.call(void 0, cbor5.encode(opts.args))
|
|
3100
3287
|
}
|
|
3101
3288
|
}
|
|
3102
3289
|
});
|
|
@@ -3125,10 +3312,10 @@ var ActorConnRaw = class {
|
|
|
3125
3312
|
minTimeout: 250,
|
|
3126
3313
|
maxTimeout: 3e4,
|
|
3127
3314
|
onFailedAttempt: (error) => {
|
|
3128
|
-
|
|
3315
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).warn({
|
|
3129
3316
|
msg: "failed to reconnect",
|
|
3130
3317
|
attempt: error.attemptNumber,
|
|
3131
|
-
error:
|
|
3318
|
+
error: _chunkYUBR6XCJcjs.stringifyError.call(void 0, error)
|
|
3132
3319
|
});
|
|
3133
3320
|
},
|
|
3134
3321
|
// Cancel retry if aborted
|
|
@@ -3136,7 +3323,7 @@ var ActorConnRaw = class {
|
|
|
3136
3323
|
});
|
|
3137
3324
|
} catch (err) {
|
|
3138
3325
|
if (err.name === "AbortError") {
|
|
3139
|
-
|
|
3326
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).info({ msg: "connection retry aborted" });
|
|
3140
3327
|
return;
|
|
3141
3328
|
} else {
|
|
3142
3329
|
throw err;
|
|
@@ -3148,13 +3335,13 @@ var ActorConnRaw = class {
|
|
|
3148
3335
|
try {
|
|
3149
3336
|
if (this.#onOpenPromise)
|
|
3150
3337
|
throw new Error("#onOpenPromise already defined");
|
|
3151
|
-
this.#onOpenPromise =
|
|
3338
|
+
this.#onOpenPromise = _chunkYUBR6XCJcjs.promiseWithResolvers.call(void 0, );
|
|
3152
3339
|
if (this.#client[TRANSPORT_SYMBOL] === "websocket") {
|
|
3153
3340
|
await this.#connectWebSocket();
|
|
3154
3341
|
} else if (this.#client[TRANSPORT_SYMBOL] === "sse") {
|
|
3155
3342
|
await this.#connectSse();
|
|
3156
3343
|
} else {
|
|
3157
|
-
|
|
3344
|
+
_chunkYUBR6XCJcjs.assertUnreachable.call(void 0, this.#client[TRANSPORT_SYMBOL]);
|
|
3158
3345
|
}
|
|
3159
3346
|
await this.#onOpenPromise.promise;
|
|
3160
3347
|
} finally {
|
|
@@ -3169,13 +3356,13 @@ var ActorConnRaw = class {
|
|
|
3169
3356
|
);
|
|
3170
3357
|
const isReconnection = this.#connectionId && this.#connectionToken;
|
|
3171
3358
|
if (isReconnection) {
|
|
3172
|
-
|
|
3359
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).debug({
|
|
3173
3360
|
msg: "attempting websocket reconnection",
|
|
3174
3361
|
connectionId: this.#connectionId
|
|
3175
3362
|
});
|
|
3176
3363
|
}
|
|
3177
3364
|
const ws = await this.#driver.openWebSocket(
|
|
3178
|
-
|
|
3365
|
+
_chunkGXIO5YOTcjs.PATH_CONNECT_WEBSOCKET,
|
|
3179
3366
|
actorId,
|
|
3180
3367
|
this.#encoding,
|
|
3181
3368
|
this.#params,
|
|
@@ -3183,7 +3370,7 @@ var ActorConnRaw = class {
|
|
|
3183
3370
|
isReconnection ? this.#connectionId : void 0,
|
|
3184
3371
|
isReconnection ? this.#connectionToken : void 0
|
|
3185
3372
|
);
|
|
3186
|
-
|
|
3373
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).debug({
|
|
3187
3374
|
msg: "transport set to new websocket",
|
|
3188
3375
|
connectionId: this.#connectionId,
|
|
3189
3376
|
readyState: ws.readyState,
|
|
@@ -3191,7 +3378,7 @@ var ActorConnRaw = class {
|
|
|
3191
3378
|
});
|
|
3192
3379
|
this.#transport = { websocket: ws };
|
|
3193
3380
|
ws.addEventListener("open", () => {
|
|
3194
|
-
|
|
3381
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).debug({
|
|
3195
3382
|
msg: "client websocket open",
|
|
3196
3383
|
connectionId: this.#connectionId
|
|
3197
3384
|
});
|
|
@@ -3200,9 +3387,9 @@ var ActorConnRaw = class {
|
|
|
3200
3387
|
try {
|
|
3201
3388
|
await this.#handleOnMessage(ev.data);
|
|
3202
3389
|
} catch (err) {
|
|
3203
|
-
|
|
3390
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).error({
|
|
3204
3391
|
msg: "error in websocket message handler",
|
|
3205
|
-
error:
|
|
3392
|
+
error: _chunkYUBR6XCJcjs.stringifyError.call(void 0, err)
|
|
3206
3393
|
});
|
|
3207
3394
|
}
|
|
3208
3395
|
});
|
|
@@ -3210,9 +3397,9 @@ var ActorConnRaw = class {
|
|
|
3210
3397
|
try {
|
|
3211
3398
|
this.#handleOnClose(ev);
|
|
3212
3399
|
} catch (err) {
|
|
3213
|
-
|
|
3400
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).error({
|
|
3214
3401
|
msg: "error in websocket close handler",
|
|
3215
|
-
error:
|
|
3402
|
+
error: _chunkYUBR6XCJcjs.stringifyError.call(void 0, err)
|
|
3216
3403
|
});
|
|
3217
3404
|
}
|
|
3218
3405
|
});
|
|
@@ -3220,9 +3407,9 @@ var ActorConnRaw = class {
|
|
|
3220
3407
|
try {
|
|
3221
3408
|
this.#handleOnError();
|
|
3222
3409
|
} catch (err) {
|
|
3223
|
-
|
|
3410
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).error({
|
|
3224
3411
|
msg: "error in websocket error handler",
|
|
3225
|
-
error:
|
|
3412
|
+
error: _chunkYUBR6XCJcjs.stringifyError.call(void 0, err)
|
|
3226
3413
|
});
|
|
3227
3414
|
}
|
|
3228
3415
|
});
|
|
@@ -3234,9 +3421,9 @@ var ActorConnRaw = class {
|
|
|
3234
3421
|
this.#actorQuery,
|
|
3235
3422
|
this.#driver
|
|
3236
3423
|
);
|
|
3237
|
-
|
|
3424
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).debug({ msg: "found actor for sse connection", actorId });
|
|
3238
3425
|
_invariant2.default.call(void 0, actorId, "Missing actor ID");
|
|
3239
|
-
|
|
3426
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).debug({
|
|
3240
3427
|
msg: "opening sse connection",
|
|
3241
3428
|
actorId,
|
|
3242
3429
|
encoding: this.#encoding
|
|
@@ -3250,16 +3437,16 @@ var ActorConnRaw = class {
|
|
|
3250
3437
|
...init,
|
|
3251
3438
|
headers: {
|
|
3252
3439
|
...init == null ? void 0 : init.headers,
|
|
3253
|
-
"User-Agent":
|
|
3254
|
-
[
|
|
3440
|
+
"User-Agent": _chunkYUBR6XCJcjs.httpUserAgent.call(void 0, ),
|
|
3441
|
+
[_chunkGXIO5YOTcjs.HEADER_ENCODING]: this.#encoding,
|
|
3255
3442
|
...this.#params !== void 0 ? {
|
|
3256
|
-
[
|
|
3443
|
+
[_chunkGXIO5YOTcjs.HEADER_CONN_PARAMS]: JSON.stringify(
|
|
3257
3444
|
this.#params
|
|
3258
3445
|
)
|
|
3259
3446
|
} : {},
|
|
3260
3447
|
...isReconnection ? {
|
|
3261
|
-
[
|
|
3262
|
-
[
|
|
3448
|
+
[_chunkGXIO5YOTcjs.HEADER_CONN_ID]: this.#connectionId,
|
|
3449
|
+
[_chunkGXIO5YOTcjs.HEADER_CONN_TOKEN]: this.#connectionToken
|
|
3263
3450
|
} : {}
|
|
3264
3451
|
}
|
|
3265
3452
|
})
|
|
@@ -3277,7 +3464,7 @@ var ActorConnRaw = class {
|
|
|
3277
3464
|
}
|
|
3278
3465
|
/** Called by the onopen event from drivers. */
|
|
3279
3466
|
#handleOnOpen() {
|
|
3280
|
-
|
|
3467
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).debug({
|
|
3281
3468
|
msg: "socket open",
|
|
3282
3469
|
messageQueueLength: this.#messageQueue.length,
|
|
3283
3470
|
connectionId: this.#connectionId
|
|
@@ -3285,14 +3472,14 @@ var ActorConnRaw = class {
|
|
|
3285
3472
|
if (this.#onOpenPromise) {
|
|
3286
3473
|
this.#onOpenPromise.resolve(void 0);
|
|
3287
3474
|
} else {
|
|
3288
|
-
|
|
3475
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).warn({ msg: "#onOpenPromise is undefined" });
|
|
3289
3476
|
}
|
|
3290
3477
|
for (const eventName of this.#eventSubscriptions.keys()) {
|
|
3291
3478
|
this.#sendSubscription(eventName, true);
|
|
3292
3479
|
}
|
|
3293
3480
|
const queue = this.#messageQueue;
|
|
3294
3481
|
this.#messageQueue = [];
|
|
3295
|
-
|
|
3482
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).debug({
|
|
3296
3483
|
msg: "flushing message queue",
|
|
3297
3484
|
queueLength: queue.length
|
|
3298
3485
|
});
|
|
@@ -3302,24 +3489,24 @@ var ActorConnRaw = class {
|
|
|
3302
3489
|
}
|
|
3303
3490
|
/** Called by the onmessage event from drivers. */
|
|
3304
3491
|
async #handleOnMessage(data) {
|
|
3305
|
-
|
|
3492
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).trace({
|
|
3306
3493
|
msg: "received message",
|
|
3307
3494
|
dataType: typeof data,
|
|
3308
3495
|
isBlob: data instanceof Blob,
|
|
3309
3496
|
isArrayBuffer: data instanceof ArrayBuffer
|
|
3310
3497
|
});
|
|
3311
3498
|
const response = await this.#parseMessage(data);
|
|
3312
|
-
|
|
3313
|
-
|
|
3499
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).trace(
|
|
3500
|
+
_chunkYUBR6XCJcjs.getEnvUniversal.call(void 0, "_RIVETKIT_LOG_MESSAGE") ? {
|
|
3314
3501
|
msg: "parsed message",
|
|
3315
|
-
message:
|
|
3502
|
+
message: _chunkGXIO5YOTcjs.jsonStringifyCompat.call(void 0, response).substring(0, 100) + "..."
|
|
3316
3503
|
} : { msg: "parsed message" }
|
|
3317
3504
|
);
|
|
3318
3505
|
if (response.body.tag === "Init") {
|
|
3319
3506
|
this.#actorId = response.body.val.actorId;
|
|
3320
3507
|
this.#connectionId = response.body.val.connectionId;
|
|
3321
3508
|
this.#connectionToken = response.body.val.connectionToken;
|
|
3322
|
-
|
|
3509
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).trace({
|
|
3323
3510
|
msg: "received init message",
|
|
3324
3511
|
actorId: this.#actorId,
|
|
3325
3512
|
connectionId: this.#connectionId
|
|
@@ -3329,7 +3516,7 @@ var ActorConnRaw = class {
|
|
|
3329
3516
|
const { group, code, message, metadata, actionId } = response.body.val;
|
|
3330
3517
|
if (actionId) {
|
|
3331
3518
|
const inFlight = this.#takeActionInFlight(Number(actionId));
|
|
3332
|
-
|
|
3519
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).warn({
|
|
3333
3520
|
msg: "action error",
|
|
3334
3521
|
actionId,
|
|
3335
3522
|
actionName: inFlight == null ? void 0 : inFlight.name,
|
|
@@ -3342,7 +3529,7 @@ var ActorConnRaw = class {
|
|
|
3342
3529
|
new ActorError(group, code, message, metadata)
|
|
3343
3530
|
);
|
|
3344
3531
|
} else {
|
|
3345
|
-
|
|
3532
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).warn({
|
|
3346
3533
|
msg: "connection error",
|
|
3347
3534
|
group,
|
|
3348
3535
|
code,
|
|
@@ -3366,35 +3553,39 @@ var ActorConnRaw = class {
|
|
|
3366
3553
|
}
|
|
3367
3554
|
} else if (response.body.tag === "ActionResponse") {
|
|
3368
3555
|
const { id: actionId } = response.body.val;
|
|
3369
|
-
|
|
3556
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).trace({
|
|
3370
3557
|
msg: "received action response",
|
|
3371
3558
|
actionId
|
|
3372
3559
|
});
|
|
3373
3560
|
const inFlight = this.#takeActionInFlight(Number(actionId));
|
|
3374
|
-
|
|
3561
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).trace({
|
|
3375
3562
|
msg: "resolving action promise",
|
|
3376
3563
|
actionId,
|
|
3377
3564
|
actionName: inFlight == null ? void 0 : inFlight.name
|
|
3378
3565
|
});
|
|
3379
3566
|
inFlight.resolve(response.body.val);
|
|
3380
3567
|
} else if (response.body.tag === "Event") {
|
|
3381
|
-
|
|
3568
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).trace({
|
|
3382
3569
|
msg: "received event",
|
|
3383
3570
|
name: response.body.val.name
|
|
3384
3571
|
});
|
|
3385
3572
|
this.#dispatchEvent(response.body.val);
|
|
3386
3573
|
} else {
|
|
3387
|
-
|
|
3574
|
+
_chunkYUBR6XCJcjs.assertUnreachable.call(void 0, response.body);
|
|
3388
3575
|
}
|
|
3389
3576
|
}
|
|
3390
3577
|
/** Called by the onclose event from drivers. */
|
|
3391
3578
|
#handleOnClose(event) {
|
|
3392
|
-
if (this.#onOpenPromise) {
|
|
3393
|
-
this.#onOpenPromise.reject(new Error("Closed"));
|
|
3394
|
-
}
|
|
3395
3579
|
const closeEvent = event;
|
|
3396
3580
|
const wasClean = closeEvent.wasClean;
|
|
3397
|
-
|
|
3581
|
+
if (this.#onOpenPromise) {
|
|
3582
|
+
this.#onOpenPromise.reject(
|
|
3583
|
+
new Error(
|
|
3584
|
+
`websocket closed with code ${closeEvent.code}: ${closeEvent.reason}`
|
|
3585
|
+
)
|
|
3586
|
+
);
|
|
3587
|
+
}
|
|
3588
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).info({
|
|
3398
3589
|
msg: "socket closed",
|
|
3399
3590
|
code: closeEvent.code,
|
|
3400
3591
|
reason: closeEvent.reason,
|
|
@@ -3404,7 +3595,7 @@ var ActorConnRaw = class {
|
|
|
3404
3595
|
actionsInFlight: this.#actionsInFlight.size
|
|
3405
3596
|
});
|
|
3406
3597
|
if (this.#actionsInFlight.size > 0) {
|
|
3407
|
-
|
|
3598
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).debug({
|
|
3408
3599
|
msg: "rejecting in-flight actions after disconnect",
|
|
3409
3600
|
count: this.#actionsInFlight.size,
|
|
3410
3601
|
connectionId: this.#connectionId,
|
|
@@ -3420,7 +3611,7 @@ var ActorConnRaw = class {
|
|
|
3420
3611
|
}
|
|
3421
3612
|
this.#transport = void 0;
|
|
3422
3613
|
if (!this.#disposed && !this.#connecting) {
|
|
3423
|
-
|
|
3614
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).debug({
|
|
3424
3615
|
msg: "triggering reconnect",
|
|
3425
3616
|
connectionId: this.#connectionId,
|
|
3426
3617
|
messageQueueLength: this.#messageQueue.length
|
|
@@ -3431,7 +3622,7 @@ var ActorConnRaw = class {
|
|
|
3431
3622
|
/** Called by the onerror event from drivers. */
|
|
3432
3623
|
#handleOnError() {
|
|
3433
3624
|
if (this.#disposed) return;
|
|
3434
|
-
|
|
3625
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).warn("socket error");
|
|
3435
3626
|
}
|
|
3436
3627
|
#takeActionInFlight(id) {
|
|
3437
3628
|
const inFlight = this.#actionsInFlight.get(id);
|
|
@@ -3461,9 +3652,9 @@ var ActorConnRaw = class {
|
|
|
3461
3652
|
try {
|
|
3462
3653
|
handler(error);
|
|
3463
3654
|
} catch (err) {
|
|
3464
|
-
|
|
3655
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).error({
|
|
3465
3656
|
msg: "error in connection error handler",
|
|
3466
|
-
error:
|
|
3657
|
+
error: _chunkYUBR6XCJcjs.stringifyError.call(void 0, err)
|
|
3467
3658
|
});
|
|
3468
3659
|
}
|
|
3469
3660
|
}
|
|
@@ -3534,11 +3725,11 @@ var ActorConnRaw = class {
|
|
|
3534
3725
|
}
|
|
3535
3726
|
let queueMessage = false;
|
|
3536
3727
|
if (!this.#transport) {
|
|
3537
|
-
|
|
3728
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).debug({ msg: "no transport, queueing message" });
|
|
3538
3729
|
queueMessage = true;
|
|
3539
3730
|
} else if ("websocket" in this.#transport) {
|
|
3540
3731
|
const readyState = this.#transport.websocket.readyState;
|
|
3541
|
-
|
|
3732
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).debug({
|
|
3542
3733
|
msg: "websocket send attempt",
|
|
3543
3734
|
readyState,
|
|
3544
3735
|
readyStateString: readyState === 0 ? "CONNECTING" : readyState === 1 ? "OPEN" : readyState === 2 ? "CLOSING" : "CLOSED",
|
|
@@ -3548,18 +3739,18 @@ var ActorConnRaw = class {
|
|
|
3548
3739
|
});
|
|
3549
3740
|
if (readyState === 1) {
|
|
3550
3741
|
try {
|
|
3551
|
-
const messageSerialized =
|
|
3742
|
+
const messageSerialized = _chunkGXIO5YOTcjs.serializeWithEncoding.call(void 0,
|
|
3552
3743
|
this.#encoding,
|
|
3553
3744
|
message,
|
|
3554
|
-
|
|
3745
|
+
_chunk5TRXLS6Xcjs.TO_SERVER_VERSIONED
|
|
3555
3746
|
);
|
|
3556
3747
|
this.#transport.websocket.send(messageSerialized);
|
|
3557
|
-
|
|
3748
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).trace({
|
|
3558
3749
|
msg: "sent websocket message",
|
|
3559
3750
|
len: messageLength(messageSerialized)
|
|
3560
3751
|
});
|
|
3561
3752
|
} catch (error) {
|
|
3562
|
-
|
|
3753
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).warn({
|
|
3563
3754
|
msg: "failed to send message, added to queue",
|
|
3564
3755
|
error,
|
|
3565
3756
|
connectionId: this.#connectionId
|
|
@@ -3567,7 +3758,7 @@ var ActorConnRaw = class {
|
|
|
3567
3758
|
queueMessage = true;
|
|
3568
3759
|
}
|
|
3569
3760
|
} else {
|
|
3570
|
-
|
|
3761
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).debug({
|
|
3571
3762
|
msg: "websocket not open, queueing message",
|
|
3572
3763
|
readyState
|
|
3573
3764
|
});
|
|
@@ -3580,11 +3771,11 @@ var ActorConnRaw = class {
|
|
|
3580
3771
|
queueMessage = true;
|
|
3581
3772
|
}
|
|
3582
3773
|
} else {
|
|
3583
|
-
|
|
3774
|
+
_chunkYUBR6XCJcjs.assertUnreachable.call(void 0, this.#transport);
|
|
3584
3775
|
}
|
|
3585
3776
|
if (!(opts == null ? void 0 : opts.ephemeral) && queueMessage) {
|
|
3586
3777
|
this.#messageQueue.push(message);
|
|
3587
|
-
|
|
3778
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).debug({
|
|
3588
3779
|
msg: "queued connection message",
|
|
3589
3780
|
queueLength: this.#messageQueue.length,
|
|
3590
3781
|
connectionId: this.#connectionId,
|
|
@@ -3599,13 +3790,13 @@ var ActorConnRaw = class {
|
|
|
3599
3790
|
throw new InternalError2(
|
|
3600
3791
|
"Missing connection ID or token."
|
|
3601
3792
|
);
|
|
3602
|
-
|
|
3603
|
-
|
|
3793
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).trace(
|
|
3794
|
+
_chunkYUBR6XCJcjs.getEnvUniversal.call(void 0, "_RIVETKIT_LOG_MESSAGE") ? {
|
|
3604
3795
|
msg: "sent http message",
|
|
3605
|
-
message: `${
|
|
3796
|
+
message: `${_chunkGXIO5YOTcjs.jsonStringifyCompat.call(void 0, message).substring(0, 100)}...`
|
|
3606
3797
|
} : { msg: "sent http message" }
|
|
3607
3798
|
);
|
|
3608
|
-
|
|
3799
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).debug({
|
|
3609
3800
|
msg: "sending http message",
|
|
3610
3801
|
actorId: this.#actorId,
|
|
3611
3802
|
connectionId: this.#connectionId
|
|
@@ -3614,9 +3805,9 @@ var ActorConnRaw = class {
|
|
|
3614
3805
|
url: "http://actor/connections/message",
|
|
3615
3806
|
method: "POST",
|
|
3616
3807
|
headers: {
|
|
3617
|
-
[
|
|
3618
|
-
[
|
|
3619
|
-
[
|
|
3808
|
+
[_chunkGXIO5YOTcjs.HEADER_ENCODING]: this.#encoding,
|
|
3809
|
+
[_chunkGXIO5YOTcjs.HEADER_CONN_ID]: this.#connectionId,
|
|
3810
|
+
[_chunkGXIO5YOTcjs.HEADER_CONN_TOKEN]: this.#connectionToken
|
|
3620
3811
|
},
|
|
3621
3812
|
body: message,
|
|
3622
3813
|
encoding: this.#encoding,
|
|
@@ -3625,11 +3816,11 @@ var ActorConnRaw = class {
|
|
|
3625
3816
|
this.#driver,
|
|
3626
3817
|
this.#actorId
|
|
3627
3818
|
),
|
|
3628
|
-
requestVersionedDataHandler:
|
|
3629
|
-
responseVersionedDataHandler:
|
|
3819
|
+
requestVersionedDataHandler: _chunk5TRXLS6Xcjs.TO_SERVER_VERSIONED,
|
|
3820
|
+
responseVersionedDataHandler: _chunk5TRXLS6Xcjs.TO_CLIENT_VERSIONED
|
|
3630
3821
|
});
|
|
3631
3822
|
} catch (error) {
|
|
3632
|
-
|
|
3823
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).warn({
|
|
3633
3824
|
msg: "failed to send message, added to queue",
|
|
3634
3825
|
error
|
|
3635
3826
|
});
|
|
@@ -3640,7 +3831,7 @@ var ActorConnRaw = class {
|
|
|
3640
3831
|
}
|
|
3641
3832
|
async #parseMessage(data) {
|
|
3642
3833
|
_invariant2.default.call(void 0, this.#transport, "transport must be defined");
|
|
3643
|
-
if (
|
|
3834
|
+
if (_chunkGXIO5YOTcjs.encodingIsBinary.call(void 0, this.#encoding) && "sse" in this.#transport) {
|
|
3644
3835
|
if (typeof data === "string") {
|
|
3645
3836
|
const binaryString = atob(data);
|
|
3646
3837
|
data = new Uint8Array(
|
|
@@ -3652,11 +3843,11 @@ var ActorConnRaw = class {
|
|
|
3652
3843
|
);
|
|
3653
3844
|
}
|
|
3654
3845
|
}
|
|
3655
|
-
const buffer = await
|
|
3656
|
-
return
|
|
3846
|
+
const buffer = await _chunk5TRXLS6Xcjs.inputDataToBuffer.call(void 0, data);
|
|
3847
|
+
return _chunkGXIO5YOTcjs.deserializeWithEncoding.call(void 0,
|
|
3657
3848
|
this.#encoding,
|
|
3658
3849
|
buffer,
|
|
3659
|
-
|
|
3850
|
+
_chunk5TRXLS6Xcjs.TO_CLIENT_VERSIONED
|
|
3660
3851
|
);
|
|
3661
3852
|
}
|
|
3662
3853
|
/**
|
|
@@ -3680,39 +3871,39 @@ var ActorConnRaw = class {
|
|
|
3680
3871
|
*/
|
|
3681
3872
|
async dispose() {
|
|
3682
3873
|
if (this.#disposed) {
|
|
3683
|
-
|
|
3874
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).warn({ msg: "connection already disconnected" });
|
|
3684
3875
|
return;
|
|
3685
3876
|
}
|
|
3686
3877
|
this.#disposed = true;
|
|
3687
|
-
|
|
3878
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).debug({ msg: "disposing actor conn" });
|
|
3688
3879
|
clearInterval(this.#keepNodeAliveInterval);
|
|
3689
3880
|
this.#abortController.abort();
|
|
3690
3881
|
this.#client[ACTOR_CONNS_SYMBOL].delete(this);
|
|
3691
3882
|
if (!this.#transport) {
|
|
3692
3883
|
} else if ("websocket" in this.#transport) {
|
|
3693
|
-
|
|
3884
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).debug("closing ws");
|
|
3694
3885
|
const ws = this.#transport.websocket;
|
|
3695
3886
|
if (ws.readyState === 2 || ws.readyState === 3) {
|
|
3696
|
-
|
|
3887
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).debug({ msg: "ws already closed or closing" });
|
|
3697
3888
|
} else {
|
|
3698
|
-
const { promise, resolve } =
|
|
3889
|
+
const { promise, resolve } = _chunkYUBR6XCJcjs.promiseWithResolvers.call(void 0, );
|
|
3699
3890
|
ws.addEventListener("close", () => {
|
|
3700
|
-
|
|
3891
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).debug({ msg: "ws closed" });
|
|
3701
3892
|
resolve(void 0);
|
|
3702
3893
|
});
|
|
3703
3894
|
ws.close(1e3, "Normal closure");
|
|
3704
3895
|
await promise;
|
|
3705
3896
|
}
|
|
3706
3897
|
} else if ("sse" in this.#transport) {
|
|
3707
|
-
|
|
3898
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).debug("closing sse");
|
|
3708
3899
|
if (this.#connectionId && this.#connectionToken) {
|
|
3709
3900
|
try {
|
|
3710
3901
|
await sendHttpRequest({
|
|
3711
3902
|
url: "http://actor/connections/close",
|
|
3712
3903
|
method: "POST",
|
|
3713
3904
|
headers: {
|
|
3714
|
-
[
|
|
3715
|
-
[
|
|
3905
|
+
[_chunkGXIO5YOTcjs.HEADER_CONN_ID]: this.#connectionId,
|
|
3906
|
+
[_chunkGXIO5YOTcjs.HEADER_CONN_TOKEN]: this.#connectionToken
|
|
3716
3907
|
},
|
|
3717
3908
|
encoding: this.#encoding,
|
|
3718
3909
|
skipParseResponse: true,
|
|
@@ -3720,11 +3911,11 @@ var ActorConnRaw = class {
|
|
|
3720
3911
|
this.#driver,
|
|
3721
3912
|
this.#actorId
|
|
3722
3913
|
),
|
|
3723
|
-
requestVersionedDataHandler:
|
|
3724
|
-
responseVersionedDataHandler:
|
|
3914
|
+
requestVersionedDataHandler: _chunk5TRXLS6Xcjs.TO_SERVER_VERSIONED,
|
|
3915
|
+
responseVersionedDataHandler: _chunk5TRXLS6Xcjs.TO_CLIENT_VERSIONED
|
|
3725
3916
|
});
|
|
3726
3917
|
} catch (error) {
|
|
3727
|
-
|
|
3918
|
+
_chunkZY4DKLMTcjs.logger.call(void 0, ).warn({
|
|
3728
3919
|
msg: "failed to send close request",
|
|
3729
3920
|
error
|
|
3730
3921
|
});
|
|
@@ -3732,7 +3923,7 @@ var ActorConnRaw = class {
|
|
|
3732
3923
|
}
|
|
3733
3924
|
this.#transport.sse.close();
|
|
3734
3925
|
} else {
|
|
3735
|
-
|
|
3926
|
+
_chunkYUBR6XCJcjs.assertUnreachable.call(void 0, this.#transport);
|
|
3736
3927
|
}
|
|
3737
3928
|
this.#transport = void 0;
|
|
3738
3929
|
}
|
|
@@ -3758,7 +3949,7 @@ var ActorConnRaw = class {
|
|
|
3758
3949
|
|
|
3759
3950
|
// src/remote-manager-driver/log.ts
|
|
3760
3951
|
function logger2() {
|
|
3761
|
-
return
|
|
3952
|
+
return _chunk5N6F5PXDcjs.getLogger.call(void 0, "remote-manager-driver");
|
|
3762
3953
|
}
|
|
3763
3954
|
|
|
3764
3955
|
// src/remote-manager-driver/api-utils.ts
|
|
@@ -3775,7 +3966,7 @@ function getEndpoint(config) {
|
|
|
3775
3966
|
}
|
|
3776
3967
|
async function apiCall(config, method, path, body) {
|
|
3777
3968
|
const endpoint = getEndpoint(config);
|
|
3778
|
-
const url =
|
|
3969
|
+
const url = _chunkYUBR6XCJcjs.combineUrlPath.call(void 0, endpoint, path, {
|
|
3779
3970
|
namespace: config.namespace
|
|
3780
3971
|
});
|
|
3781
3972
|
logger2().debug({ msg: "making api call", method, url });
|
|
@@ -3801,7 +3992,10 @@ async function apiCall(config, method, path, body) {
|
|
|
3801
3992
|
async function sendHttpRequestToActor(runConfig, actorId, actorRequest) {
|
|
3802
3993
|
const url = new URL(actorRequest.url);
|
|
3803
3994
|
const endpoint = getEndpoint(runConfig);
|
|
3804
|
-
const guardUrl =
|
|
3995
|
+
const guardUrl = _chunkYUBR6XCJcjs.combineUrlPath.call(void 0,
|
|
3996
|
+
endpoint,
|
|
3997
|
+
`/gateway/${actorId}${url.pathname}${url.search}`
|
|
3998
|
+
);
|
|
3805
3999
|
let bodyToSend = null;
|
|
3806
4000
|
const guardHeaders = buildGuardHeadersForHttp(
|
|
3807
4001
|
runConfig,
|
|
@@ -3838,19 +4032,17 @@ function buildGuardHeadersForHttp(runConfig, actorRequest, actorId) {
|
|
|
3838
4032
|
for (const [key, value] of Object.entries(runConfig.headers)) {
|
|
3839
4033
|
headers.set(key, value);
|
|
3840
4034
|
}
|
|
3841
|
-
headers.set(_chunkJKOUXDK6cjs.HEADER_RIVET_TARGET, "actor");
|
|
3842
|
-
headers.set(_chunkJKOUXDK6cjs.HEADER_RIVET_ACTOR, actorId);
|
|
3843
4035
|
if (runConfig.token) {
|
|
3844
|
-
headers.set(
|
|
4036
|
+
headers.set(_chunkGXIO5YOTcjs.HEADER_RIVET_TOKEN, runConfig.token);
|
|
3845
4037
|
}
|
|
3846
4038
|
return headers;
|
|
3847
4039
|
}
|
|
3848
4040
|
|
|
3849
4041
|
// src/remote-manager-driver/actor-websocket-client.ts
|
|
3850
4042
|
async function openWebSocketToActor(runConfig, path, actorId, encoding, params, connId, connToken) {
|
|
3851
|
-
const WebSocket2 = await
|
|
4043
|
+
const WebSocket2 = await _chunkZY4DKLMTcjs.importWebSocket.call(void 0, );
|
|
3852
4044
|
const endpoint = getEndpoint(runConfig);
|
|
3853
|
-
const guardUrl =
|
|
4045
|
+
const guardUrl = _chunkYUBR6XCJcjs.combineUrlPath.call(void 0, endpoint, `/gateway/${actorId}${path}`);
|
|
3854
4046
|
logger2().debug({
|
|
3855
4047
|
msg: "opening websocket to actor via guard",
|
|
3856
4048
|
actorId,
|
|
@@ -3859,38 +4051,29 @@ async function openWebSocketToActor(runConfig, path, actorId, encoding, params,
|
|
|
3859
4051
|
});
|
|
3860
4052
|
const ws = new WebSocket2(
|
|
3861
4053
|
guardUrl,
|
|
3862
|
-
buildWebSocketProtocols(
|
|
3863
|
-
runConfig,
|
|
3864
|
-
actorId,
|
|
3865
|
-
encoding,
|
|
3866
|
-
params,
|
|
3867
|
-
connId,
|
|
3868
|
-
connToken
|
|
3869
|
-
)
|
|
4054
|
+
buildWebSocketProtocols(runConfig, encoding, params, connId, connToken)
|
|
3870
4055
|
);
|
|
3871
4056
|
ws.binaryType = "arraybuffer";
|
|
3872
4057
|
logger2().debug({ msg: "websocket connection opened", actorId });
|
|
3873
4058
|
return ws;
|
|
3874
4059
|
}
|
|
3875
|
-
function buildWebSocketProtocols(runConfig,
|
|
4060
|
+
function buildWebSocketProtocols(runConfig, encoding, params, connId, connToken) {
|
|
3876
4061
|
const protocols = [];
|
|
3877
|
-
protocols.push(
|
|
3878
|
-
protocols.push(`${
|
|
3879
|
-
protocols.push(`${_chunkJKOUXDK6cjs.WS_PROTOCOL_ACTOR}${actorId}`);
|
|
3880
|
-
protocols.push(`${_chunkJKOUXDK6cjs.WS_PROTOCOL_ENCODING}${encoding}`);
|
|
4062
|
+
protocols.push(_chunkGXIO5YOTcjs.WS_PROTOCOL_STANDARD);
|
|
4063
|
+
protocols.push(`${_chunkGXIO5YOTcjs.WS_PROTOCOL_ENCODING}${encoding}`);
|
|
3881
4064
|
if (runConfig.token) {
|
|
3882
|
-
protocols.push(`${
|
|
4065
|
+
protocols.push(`${_chunkGXIO5YOTcjs.WS_PROTOCOL_TOKEN}${runConfig.token}`);
|
|
3883
4066
|
}
|
|
3884
4067
|
if (params) {
|
|
3885
4068
|
protocols.push(
|
|
3886
|
-
`${
|
|
4069
|
+
`${_chunkGXIO5YOTcjs.WS_PROTOCOL_CONN_PARAMS}${encodeURIComponent(JSON.stringify(params))}`
|
|
3887
4070
|
);
|
|
3888
4071
|
}
|
|
3889
4072
|
if (connId) {
|
|
3890
|
-
protocols.push(`${
|
|
4073
|
+
protocols.push(`${_chunkGXIO5YOTcjs.WS_PROTOCOL_CONN_ID}${connId}`);
|
|
3891
4074
|
}
|
|
3892
4075
|
if (connToken) {
|
|
3893
|
-
protocols.push(`${
|
|
4076
|
+
protocols.push(`${_chunkGXIO5YOTcjs.WS_PROTOCOL_CONN_TOKEN}${connToken}`);
|
|
3894
4077
|
}
|
|
3895
4078
|
return protocols;
|
|
3896
4079
|
}
|
|
@@ -3951,7 +4134,7 @@ async function updateRunnerConfig(config, runnerName, request) {
|
|
|
3951
4134
|
|
|
3952
4135
|
// src/remote-manager-driver/ws-proxy.ts
|
|
3953
4136
|
async function createWebSocketProxy(c, targetUrl, protocols) {
|
|
3954
|
-
const WebSocket2 = await
|
|
4137
|
+
const WebSocket2 = await _chunkZY4DKLMTcjs.importWebSocket.call(void 0, );
|
|
3955
4138
|
const state = {};
|
|
3956
4139
|
return {
|
|
3957
4140
|
onOpen: async (event, clientWs) => {
|
|
@@ -4014,7 +4197,7 @@ async function createWebSocketProxy(c, targetUrl, protocols) {
|
|
|
4014
4197
|
logger2().error({
|
|
4015
4198
|
msg: "target websocket error",
|
|
4016
4199
|
targetUrl,
|
|
4017
|
-
error:
|
|
4200
|
+
error: _chunkYUBR6XCJcjs.stringifyError.call(void 0, error)
|
|
4018
4201
|
});
|
|
4019
4202
|
closeWebSocketIfOpen(clientWs, 1011, "Target WebSocket error");
|
|
4020
4203
|
});
|
|
@@ -4094,7 +4277,7 @@ var RemoteManagerDriver = class {
|
|
|
4094
4277
|
#config;
|
|
4095
4278
|
#metadataPromise;
|
|
4096
4279
|
constructor(runConfig) {
|
|
4097
|
-
if (
|
|
4280
|
+
if (_chunkYUBR6XCJcjs.getEnvUniversal.call(void 0, "NEXT_PHASE") === "phase-production-build") {
|
|
4098
4281
|
logger2().info(
|
|
4099
4282
|
"detected next.js build phase, disabling health check"
|
|
4100
4283
|
);
|
|
@@ -4137,7 +4320,7 @@ var RemoteManagerDriver = class {
|
|
|
4137
4320
|
logger2().error({
|
|
4138
4321
|
msg: "health check failed, validate the Rivet endpoint is configured correctly",
|
|
4139
4322
|
endpoint,
|
|
4140
|
-
error:
|
|
4323
|
+
error: _chunkYUBR6XCJcjs.stringifyError.call(void 0, error)
|
|
4141
4324
|
});
|
|
4142
4325
|
}
|
|
4143
4326
|
})();
|
|
@@ -4220,7 +4403,7 @@ var RemoteManagerDriver = class {
|
|
|
4220
4403
|
name,
|
|
4221
4404
|
key: serializeActorKey(key),
|
|
4222
4405
|
runner_name_selector: this.#config.runnerName,
|
|
4223
|
-
input: actorInput ?
|
|
4406
|
+
input: actorInput ? _chunkGXIO5YOTcjs.uint8ArrayToBase64.call(void 0, cbor6.encode(actorInput)) : void 0,
|
|
4224
4407
|
crash_policy: "sleep"
|
|
4225
4408
|
});
|
|
4226
4409
|
const actorId = actor.actor_id;
|
|
@@ -4253,7 +4436,7 @@ var RemoteManagerDriver = class {
|
|
|
4253
4436
|
name,
|
|
4254
4437
|
runner_name_selector: this.#config.runnerName,
|
|
4255
4438
|
key: serializeActorKey(key),
|
|
4256
|
-
input: input ?
|
|
4439
|
+
input: input ? _chunkGXIO5YOTcjs.uint8ArrayToBase64.call(void 0, cbor6.encode(input)) : void 0,
|
|
4257
4440
|
crash_policy: "sleep"
|
|
4258
4441
|
});
|
|
4259
4442
|
const actorId = result.actor.actor_id;
|
|
@@ -4314,7 +4497,7 @@ var RemoteManagerDriver = class {
|
|
|
4314
4497
|
const upgradeWebSocket = (_b = (_a = this.#config).getUpgradeWebSocket) == null ? void 0 : _b.call(_a);
|
|
4315
4498
|
_invariant2.default.call(void 0, upgradeWebSocket, "missing getUpgradeWebSocket");
|
|
4316
4499
|
const endpoint = getEndpoint(this.#config);
|
|
4317
|
-
const guardUrl =
|
|
4500
|
+
const guardUrl = _chunkYUBR6XCJcjs.combineUrlPath.call(void 0, endpoint, path);
|
|
4318
4501
|
const wsGuardUrl = guardUrl.replace("http://", "ws://");
|
|
4319
4502
|
logger2().debug({
|
|
4320
4503
|
msg: "forwarding websocket to actor via guard",
|
|
@@ -4324,20 +4507,19 @@ var RemoteManagerDriver = class {
|
|
|
4324
4507
|
});
|
|
4325
4508
|
const protocols = buildWebSocketProtocols(
|
|
4326
4509
|
this.#config,
|
|
4327
|
-
actorId,
|
|
4328
4510
|
encoding,
|
|
4329
4511
|
params,
|
|
4330
4512
|
connId,
|
|
4331
4513
|
connToken
|
|
4332
4514
|
);
|
|
4333
4515
|
const args = await createWebSocketProxy(c, wsGuardUrl, protocols);
|
|
4334
|
-
return await upgradeWebSocket(() => args)(c,
|
|
4516
|
+
return await upgradeWebSocket(() => args)(c, _chunkYUBR6XCJcjs.noopNext.call(void 0, ));
|
|
4335
4517
|
}
|
|
4336
4518
|
displayInformation() {
|
|
4337
4519
|
return { name: "Remote", properties: {} };
|
|
4338
4520
|
}
|
|
4339
4521
|
getOrCreateInspectorAccessToken() {
|
|
4340
|
-
return
|
|
4522
|
+
return _chunkGXIO5YOTcjs.generateRandomString.call(void 0, );
|
|
4341
4523
|
}
|
|
4342
4524
|
};
|
|
4343
4525
|
|
|
@@ -4362,5 +4544,6 @@ var RemoteManagerDriver = class {
|
|
|
4362
4544
|
|
|
4363
4545
|
|
|
4364
4546
|
|
|
4365
|
-
|
|
4366
|
-
|
|
4547
|
+
|
|
4548
|
+
exports.generateConnId = generateConnId; exports.generateConnToken = generateConnToken; exports.generateConnRequestId = generateConnRequestId; exports.createActorInspectorRouter = createActorInspectorRouter; exports.serializeActorKey = serializeActorKey; exports.deserializeActorKey = deserializeActorKey; exports.PERSIST_SYMBOL = PERSIST_SYMBOL; exports.ActorDefinition = ActorDefinition; exports.lookupInRegistry = lookupInRegistry; exports.ActorClientError = ActorClientError; exports.InternalError = InternalError2; exports.ManagerError = ManagerError; exports.MalformedResponseMessage = MalformedResponseMessage; exports.ActorError = ActorError; exports.getEndpoint = getEndpoint; exports.ActorConnRaw = ActorConnRaw; exports.ActorHandleRaw = ActorHandleRaw; exports.createClientWithDriver = createClientWithDriver; exports.getDatacenters = getDatacenters; exports.updateRunnerConfig = updateRunnerConfig; exports.RemoteManagerDriver = RemoteManagerDriver;
|
|
4549
|
+
//# sourceMappingURL=chunk-Q5CAVEKC.cjs.map
|