rivetkit 2.0.23 → 2.0.24
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 +3 -3
- package/dist/schemas/actor-persist/v3.ts +274 -0
- package/dist/schemas/client-protocol/v2.ts +432 -0
- package/dist/schemas/file-system-driver/v2.ts +136 -0
- package/dist/tsup/actor/errors.cjs +2 -4
- package/dist/tsup/actor/errors.cjs.map +1 -1
- package/dist/tsup/actor/errors.d.cts +7 -10
- package/dist/tsup/actor/errors.d.ts +7 -10
- package/dist/tsup/actor/errors.js +9 -11
- package/dist/tsup/{actor-router-consts-B3Lu87yJ.d.cts → actor-router-consts-DzI2szci.d.cts} +5 -9
- package/dist/tsup/{actor-router-consts-B3Lu87yJ.d.ts → actor-router-consts-DzI2szci.d.ts} +5 -9
- package/dist/tsup/{chunk-3JYSUFET.cjs → chunk-3543NCSN.cjs} +45 -57
- package/dist/tsup/chunk-3543NCSN.cjs.map +1 -0
- package/dist/tsup/chunk-4SHILYS5.cjs +5694 -0
- package/dist/tsup/chunk-4SHILYS5.cjs.map +1 -0
- package/dist/tsup/{chunk-NCUALX2Q.cjs → chunk-5BZO5XPS.cjs} +3 -3
- package/dist/tsup/{chunk-NCUALX2Q.cjs.map → chunk-5BZO5XPS.cjs.map} +1 -1
- package/dist/tsup/{chunk-5PKKNNNS.js → chunk-BAIGSF64.js} +189 -187
- package/dist/tsup/chunk-BAIGSF64.js.map +1 -0
- package/dist/tsup/{chunk-HNYF4T36.cjs → chunk-CHLZBSI2.cjs} +17 -17
- package/dist/tsup/chunk-CHLZBSI2.cjs.map +1 -0
- package/dist/tsup/chunk-D3SLADUD.cjs +512 -0
- package/dist/tsup/chunk-D3SLADUD.cjs.map +1 -0
- package/dist/tsup/{chunk-KSRXX3Z4.cjs → chunk-D6762AOA.cjs} +20 -25
- package/dist/tsup/chunk-D6762AOA.cjs.map +1 -0
- package/dist/tsup/{chunk-C56XVVV4.cjs → chunk-DLK5YCTN.cjs} +187 -185
- package/dist/tsup/chunk-DLK5YCTN.cjs.map +1 -0
- package/dist/tsup/{chunk-DLYZKFRY.js → chunk-DUJQWGYD.js} +3 -7
- package/dist/tsup/chunk-DUJQWGYD.js.map +1 -0
- package/dist/tsup/{chunk-5UJQWWO3.js → chunk-EIPANQMF.js} +2 -2
- package/dist/tsup/{chunk-54DVMQPT.cjs → chunk-ESMTDP7G.cjs} +6 -6
- package/dist/tsup/chunk-ESMTDP7G.cjs.map +1 -0
- package/dist/tsup/{chunk-XYK5PY3B.cjs → chunk-FVAKREFB.cjs} +1900 -1737
- package/dist/tsup/chunk-FVAKREFB.cjs.map +1 -0
- package/dist/tsup/{chunk-PHNIVSG5.js → chunk-I3XT7WOF.js} +44 -56
- package/dist/tsup/chunk-I3XT7WOF.js.map +1 -0
- package/dist/tsup/{chunk-3I6ZIJVJ.js → chunk-IMDS5T42.js} +3 -3
- package/dist/tsup/chunk-IMDS5T42.js.map +1 -0
- package/dist/tsup/{chunk-SN4KWTRA.cjs → chunk-J3HZJF2P.cjs} +10 -14
- package/dist/tsup/chunk-J3HZJF2P.cjs.map +1 -0
- package/dist/tsup/{chunk-NOZSCUPQ.js → chunk-MBBJUHSP.js} +1844 -1681
- package/dist/tsup/chunk-MBBJUHSP.js.map +1 -0
- package/dist/tsup/{chunk-RVVUS4X6.js → chunk-MO5CB6MD.js} +9 -9
- package/dist/tsup/chunk-MO5CB6MD.js.map +1 -0
- package/dist/tsup/chunk-OFOTPKAH.js +512 -0
- package/dist/tsup/chunk-OFOTPKAH.js.map +1 -0
- package/dist/tsup/{chunk-G64QUEDJ.js → chunk-W6RDS6NW.js} +23 -28
- package/dist/tsup/chunk-W6RDS6NW.js.map +1 -0
- package/dist/tsup/{chunk-XSDSNHSE.cjs → chunk-YC5DUHPM.cjs} +4 -8
- package/dist/tsup/chunk-YC5DUHPM.cjs.map +1 -0
- package/dist/tsup/{chunk-YAYNBR37.js → chunk-YC7YPM2T.js} +2 -6
- package/dist/tsup/chunk-YC7YPM2T.js.map +1 -0
- package/dist/tsup/{chunk-FTQ62XTN.js → chunk-ZSPU5R4C.js} +3322 -2251
- package/dist/tsup/chunk-ZSPU5R4C.js.map +1 -0
- package/dist/tsup/client/mod.cjs +9 -9
- package/dist/tsup/client/mod.d.cts +5 -7
- package/dist/tsup/client/mod.d.ts +5 -7
- package/dist/tsup/client/mod.js +8 -8
- package/dist/tsup/common/log.cjs +3 -3
- package/dist/tsup/common/log.js +2 -2
- package/dist/tsup/common/websocket.cjs +4 -4
- package/dist/tsup/common/websocket.js +3 -3
- package/dist/tsup/{conn-B3Vhbgnd.d.ts → config-BRDYDraU.d.cts} +1119 -1047
- package/dist/tsup/{conn-DJWL3nGx.d.cts → config-Bo-blHpJ.d.ts} +1119 -1047
- package/dist/tsup/driver-helpers/mod.cjs +5 -13
- package/dist/tsup/driver-helpers/mod.cjs.map +1 -1
- package/dist/tsup/driver-helpers/mod.d.cts +11 -9
- package/dist/tsup/driver-helpers/mod.d.ts +11 -9
- package/dist/tsup/driver-helpers/mod.js +14 -22
- package/dist/tsup/driver-test-suite/mod.cjs +474 -303
- package/dist/tsup/driver-test-suite/mod.cjs.map +1 -1
- package/dist/tsup/driver-test-suite/mod.d.cts +6 -9
- package/dist/tsup/driver-test-suite/mod.d.ts +6 -9
- package/dist/tsup/driver-test-suite/mod.js +1085 -914
- package/dist/tsup/driver-test-suite/mod.js.map +1 -1
- package/dist/tsup/inspector/mod.cjs +6 -6
- package/dist/tsup/inspector/mod.d.cts +5 -7
- package/dist/tsup/inspector/mod.d.ts +5 -7
- package/dist/tsup/inspector/mod.js +5 -5
- package/dist/tsup/mod.cjs +10 -16
- package/dist/tsup/mod.cjs.map +1 -1
- package/dist/tsup/mod.d.cts +23 -25
- package/dist/tsup/mod.d.ts +23 -25
- package/dist/tsup/mod.js +17 -23
- package/dist/tsup/test/mod.cjs +11 -11
- package/dist/tsup/test/mod.d.cts +4 -6
- package/dist/tsup/test/mod.d.ts +4 -6
- package/dist/tsup/test/mod.js +10 -10
- package/dist/tsup/utils.cjs +3 -5
- package/dist/tsup/utils.cjs.map +1 -1
- package/dist/tsup/utils.d.cts +1 -2
- package/dist/tsup/utils.d.ts +1 -2
- package/dist/tsup/utils.js +2 -4
- package/package.json +13 -6
- package/src/actor/config.ts +56 -44
- package/src/actor/conn/driver.ts +61 -0
- package/src/actor/conn/drivers/http.ts +17 -0
- package/src/actor/conn/drivers/raw-request.ts +24 -0
- package/src/actor/conn/drivers/raw-websocket.ts +65 -0
- package/src/actor/conn/drivers/websocket.ts +129 -0
- package/src/actor/conn/mod.ts +232 -0
- package/src/actor/conn/persisted.ts +81 -0
- package/src/actor/conn/state-manager.ts +196 -0
- package/src/actor/contexts/action.ts +23 -0
- package/src/actor/{context.ts → contexts/actor.ts} +19 -8
- package/src/actor/contexts/conn-init.ts +31 -0
- package/src/actor/contexts/conn.ts +48 -0
- package/src/actor/contexts/create-conn-state.ts +13 -0
- package/src/actor/contexts/on-before-connect.ts +13 -0
- package/src/actor/contexts/on-connect.ts +22 -0
- package/src/actor/contexts/request.ts +48 -0
- package/src/actor/contexts/websocket.ts +48 -0
- package/src/actor/definition.ts +3 -3
- package/src/actor/driver.ts +36 -5
- package/src/actor/errors.ts +19 -24
- package/src/actor/instance/connection-manager.ts +465 -0
- package/src/actor/instance/event-manager.ts +292 -0
- package/src/actor/instance/kv.ts +15 -0
- package/src/actor/instance/mod.ts +1107 -0
- package/src/actor/instance/persisted.ts +67 -0
- package/src/actor/instance/schedule-manager.ts +349 -0
- package/src/actor/instance/state-manager.ts +502 -0
- package/src/actor/mod.ts +13 -16
- package/src/actor/protocol/old.ts +131 -43
- package/src/actor/protocol/serde.ts +19 -4
- package/src/actor/router-endpoints.ts +61 -586
- package/src/actor/router-websocket-endpoints.ts +408 -0
- package/src/actor/router.ts +63 -197
- package/src/actor/schedule.ts +1 -1
- package/src/client/actor-conn.ts +183 -249
- package/src/client/actor-handle.ts +29 -6
- package/src/client/client.ts +0 -4
- package/src/client/config.ts +1 -4
- package/src/client/mod.ts +0 -1
- package/src/client/raw-utils.ts +3 -3
- package/src/client/utils.ts +85 -39
- package/src/common/actor-router-consts.ts +5 -12
- package/src/common/{inline-websocket-adapter2.ts → inline-websocket-adapter.ts} +26 -48
- package/src/common/log.ts +1 -1
- package/src/common/router.ts +28 -17
- package/src/common/utils.ts +2 -0
- package/src/driver-helpers/mod.ts +7 -10
- package/src/driver-helpers/utils.ts +18 -9
- package/src/driver-test-suite/mod.ts +26 -50
- package/src/driver-test-suite/test-inline-client-driver.ts +27 -51
- package/src/driver-test-suite/tests/actor-conn-hibernation.ts +150 -0
- package/src/driver-test-suite/tests/actor-conn-state.ts +1 -4
- package/src/driver-test-suite/tests/actor-conn.ts +5 -9
- package/src/driver-test-suite/tests/actor-destroy.ts +294 -0
- package/src/driver-test-suite/tests/actor-driver.ts +0 -7
- package/src/driver-test-suite/tests/actor-handle.ts +12 -12
- package/src/driver-test-suite/tests/actor-metadata.ts +1 -1
- package/src/driver-test-suite/tests/manager-driver.ts +1 -1
- package/src/driver-test-suite/tests/raw-http-direct-registry.ts +8 -8
- package/src/driver-test-suite/tests/raw-http-request-properties.ts +6 -5
- package/src/driver-test-suite/tests/raw-http.ts +5 -5
- package/src/driver-test-suite/tests/raw-websocket-direct-registry.ts +7 -7
- package/src/driver-test-suite/tests/request-access.ts +4 -4
- package/src/driver-test-suite/utils.ts +6 -10
- package/src/drivers/engine/actor-driver.ts +614 -424
- package/src/drivers/engine/mod.ts +0 -1
- package/src/drivers/file-system/actor.ts +24 -12
- package/src/drivers/file-system/global-state.ts +427 -37
- package/src/drivers/file-system/manager.ts +71 -83
- package/src/drivers/file-system/mod.ts +3 -0
- package/src/drivers/file-system/utils.ts +18 -8
- package/src/engine-process/mod.ts +38 -38
- package/src/inspector/utils.ts +7 -5
- package/src/manager/driver.ts +11 -4
- package/src/manager/gateway.ts +4 -29
- package/src/manager/protocol/mod.ts +0 -2
- package/src/manager/protocol/query.ts +0 -4
- package/src/manager/router.ts +67 -64
- package/src/manager-api/actors.ts +13 -0
- package/src/mod.ts +1 -3
- package/src/registry/mod.ts +20 -20
- package/src/registry/serve.ts +9 -14
- package/src/remote-manager-driver/actor-websocket-client.ts +1 -16
- package/src/remote-manager-driver/api-endpoints.ts +13 -1
- package/src/remote-manager-driver/api-utils.ts +8 -0
- package/src/remote-manager-driver/metadata.ts +58 -0
- package/src/remote-manager-driver/mod.ts +47 -62
- package/src/remote-manager-driver/ws-proxy.ts +1 -1
- package/src/schemas/actor-persist/mod.ts +1 -1
- package/src/schemas/actor-persist/versioned.ts +56 -31
- package/src/schemas/client-protocol/mod.ts +1 -1
- package/src/schemas/client-protocol/versioned.ts +41 -21
- package/src/schemas/client-protocol-zod/mod.ts +103 -0
- package/src/schemas/file-system-driver/mod.ts +1 -1
- package/src/schemas/file-system-driver/versioned.ts +42 -19
- package/src/serde.ts +33 -11
- package/src/test/mod.ts +7 -3
- package/src/utils/node.ts +173 -0
- package/src/utils.ts +0 -4
- package/dist/tsup/chunk-3I6ZIJVJ.js.map +0 -1
- package/dist/tsup/chunk-3JYSUFET.cjs.map +0 -1
- package/dist/tsup/chunk-54DVMQPT.cjs.map +0 -1
- package/dist/tsup/chunk-5PKKNNNS.js.map +0 -1
- package/dist/tsup/chunk-C56XVVV4.cjs.map +0 -1
- package/dist/tsup/chunk-D6PCH7FR.cjs +0 -4623
- package/dist/tsup/chunk-D6PCH7FR.cjs.map +0 -1
- package/dist/tsup/chunk-DLYZKFRY.js.map +0 -1
- package/dist/tsup/chunk-FTQ62XTN.js.map +0 -1
- package/dist/tsup/chunk-G64QUEDJ.js.map +0 -1
- package/dist/tsup/chunk-HNYF4T36.cjs.map +0 -1
- package/dist/tsup/chunk-JMLTKMJ7.cjs +0 -1119
- package/dist/tsup/chunk-JMLTKMJ7.cjs.map +0 -1
- package/dist/tsup/chunk-KSRXX3Z4.cjs.map +0 -1
- package/dist/tsup/chunk-NOZSCUPQ.js.map +0 -1
- package/dist/tsup/chunk-PHNIVSG5.js.map +0 -1
- package/dist/tsup/chunk-RUTBXBRR.js +0 -1119
- package/dist/tsup/chunk-RUTBXBRR.js.map +0 -1
- package/dist/tsup/chunk-RVVUS4X6.js.map +0 -1
- package/dist/tsup/chunk-SN4KWTRA.cjs.map +0 -1
- package/dist/tsup/chunk-XSDSNHSE.cjs.map +0 -1
- package/dist/tsup/chunk-XYK5PY3B.cjs.map +0 -1
- package/dist/tsup/chunk-YAYNBR37.js.map +0 -1
- package/src/actor/action.ts +0 -178
- package/src/actor/conn-drivers.ts +0 -216
- package/src/actor/conn-socket.ts +0 -8
- package/src/actor/conn.ts +0 -272
- package/src/actor/instance.ts +0 -2336
- package/src/actor/persisted.ts +0 -49
- package/src/actor/unstable-react.ts +0 -110
- package/src/driver-test-suite/tests/actor-reconnect.ts +0 -170
- package/src/drivers/engine/kv.ts +0 -3
- package/src/manager/hono-websocket-adapter.ts +0 -393
- /package/dist/tsup/{chunk-5UJQWWO3.js.map → chunk-EIPANQMF.js.map} +0 -0
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } async function _asyncNullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return await rhsFn(); } }
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var _chunkFVAKREFBcjs = require('./chunk-FVAKREFB.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
var
|
|
7
|
+
var _chunkYC5DUHPMcjs = require('./chunk-YC5DUHPM.cjs');
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _chunk4SHILYS5cjs = require('./chunk-4SHILYS5.cjs');
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _chunkD3SLADUDcjs = require('./chunk-D3SLADUD.cjs');
|
|
15
15
|
|
|
16
16
|
|
|
17
|
-
var
|
|
17
|
+
var _chunkDLK5YCTNcjs = require('./chunk-DLK5YCTN.cjs');
|
|
18
18
|
|
|
19
19
|
// src/test/mod.ts
|
|
20
20
|
var _net = require('net');
|
|
@@ -24,33 +24,33 @@ var _vitest = require('vitest');
|
|
|
24
24
|
|
|
25
25
|
// src/test/config.ts
|
|
26
26
|
var _zod = require('zod');
|
|
27
|
-
var ConfigSchema =
|
|
27
|
+
var ConfigSchema = _chunkD3SLADUDcjs.RunnerConfigSchema.removeDefault().extend({
|
|
28
28
|
hostname: _zod.z.string().optional().default(_nullishCoalesce(process.env.HOSTNAME, () => ( "127.0.0.1"))),
|
|
29
29
|
port: _zod.z.number().optional().default(Number.parseInt(_nullishCoalesce(process.env.PORT, () => ( "8080"))))
|
|
30
30
|
}).default({});
|
|
31
31
|
|
|
32
32
|
// src/test/log.ts
|
|
33
33
|
function logger() {
|
|
34
|
-
return
|
|
34
|
+
return _chunkDLK5YCTNcjs.getLogger.call(void 0, "test");
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
// src/test/mod.ts
|
|
38
|
-
function serve(registry, inputConfig) {
|
|
38
|
+
async function serve(registry, inputConfig) {
|
|
39
39
|
inputConfig ??= {};
|
|
40
40
|
const config = ConfigSchema.parse(inputConfig);
|
|
41
41
|
let upgradeWebSocket;
|
|
42
42
|
if (!config.getUpgradeWebSocket) {
|
|
43
43
|
config.getUpgradeWebSocket = () => upgradeWebSocket;
|
|
44
44
|
}
|
|
45
|
-
const runConfig =
|
|
46
|
-
const driver =
|
|
45
|
+
const runConfig = _chunkD3SLADUDcjs.RunnerConfigSchema.parse(inputConfig);
|
|
46
|
+
const driver = await _asyncNullishCoalesce(inputConfig.driver, async () => ( await _chunkFVAKREFBcjs.createFileSystemOrMemoryDriver.call(void 0, false)));
|
|
47
47
|
const managerDriver = driver.manager(registry.config, config);
|
|
48
|
-
const client =
|
|
48
|
+
const client = _chunk4SHILYS5cjs.createClientWithDriver.call(void 0,
|
|
49
49
|
managerDriver,
|
|
50
|
-
|
|
50
|
+
_chunkD3SLADUDcjs.ClientConfigSchema.parse({})
|
|
51
51
|
);
|
|
52
|
-
|
|
53
|
-
const { router } =
|
|
52
|
+
_chunkYC5DUHPMcjs.configureInspectorAccessToken.call(void 0, config, managerDriver);
|
|
53
|
+
const { router } = _chunkFVAKREFBcjs.createManagerRouter.call(void 0,
|
|
54
54
|
registry.config,
|
|
55
55
|
runConfig,
|
|
56
56
|
managerDriver,
|
|
@@ -80,7 +80,7 @@ async function setupTest(c, registry) {
|
|
|
80
80
|
mockDriverContext.current = ctx;
|
|
81
81
|
};
|
|
82
82
|
const port = await getPort();
|
|
83
|
-
const server = serve(registry, { port });
|
|
83
|
+
const server = await serve(registry, { port });
|
|
84
84
|
c.onTestFinished(
|
|
85
85
|
async () => await new Promise((resolve) => server.close(() => resolve()))
|
|
86
86
|
);
|
|
@@ -127,4 +127,4 @@ async function getPort() {
|
|
|
127
127
|
|
|
128
128
|
|
|
129
129
|
exports.setupTest = setupTest; exports.getPort = getPort;
|
|
130
|
-
//# sourceMappingURL=chunk-
|
|
130
|
+
//# sourceMappingURL=chunk-CHLZBSI2.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/chunk-CHLZBSI2.cjs","../../src/test/mod.ts","../../src/test/config.ts","../../src/test/log.ts"],"names":["server"],"mappings":"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","file":"/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/chunk-CHLZBSI2.cjs","sourcesContent":[null,"import { createServer } from \"node:net\";\nimport { serve as honoServe, type ServerType } from \"@hono/node-server\";\nimport { createNodeWebSocket } from \"@hono/node-ws\";\nimport { type TestContext, vi } from \"vitest\";\nimport { ClientConfigSchema } from \"@/client/config\";\nimport { type Client, createClient } from \"@/client/mod\";\nimport { chooseDefaultDriver } from \"@/drivers/default\";\nimport { createFileSystemOrMemoryDriver } from \"@/drivers/file-system/mod\";\nimport {\n\tconfigureInspectorAccessToken,\n\tgetInspectorUrl,\n} from \"@/inspector/utils\";\nimport { createManagerRouter } from \"@/manager/router\";\nimport { createClientWithDriver } from \"@/mod\";\nimport type { Registry } from \"@/registry/mod\";\nimport { RunnerConfigSchema } from \"@/registry/run-config\";\nimport { ConfigSchema, type InputConfig } from \"./config\";\nimport { logger } from \"./log\";\n\nasync function serve(\n\tregistry: Registry<any>,\n\tinputConfig?: InputConfig,\n): Promise<ServerType> {\n\t// Configure default configuration\n\tinputConfig ??= {};\n\n\tconst config = ConfigSchema.parse(inputConfig);\n\n\tlet upgradeWebSocket: any;\n\tif (!config.getUpgradeWebSocket) {\n\t\tconfig.getUpgradeWebSocket = () => upgradeWebSocket!;\n\t}\n\n\t// Create router\n\tconst runConfig = RunnerConfigSchema.parse(inputConfig);\n\tconst driver =\n\t\tinputConfig.driver ?? (await createFileSystemOrMemoryDriver(false));\n\tconst managerDriver = driver.manager(registry.config, config);\n\tconst client = createClientWithDriver(\n\t\tmanagerDriver,\n\t\tClientConfigSchema.parse({}),\n\t);\n\tconfigureInspectorAccessToken(config, managerDriver);\n\tconst { router } = createManagerRouter(\n\t\tregistry.config,\n\t\trunConfig,\n\t\tmanagerDriver,\n\t\tdriver,\n\t\tclient,\n\t);\n\n\t// Inject WebSocket\n\tconst nodeWebSocket = createNodeWebSocket({ app: router });\n\tupgradeWebSocket = nodeWebSocket.upgradeWebSocket;\n\n\tconst server = honoServe({\n\t\tfetch: router.fetch,\n\t\thostname: config.hostname,\n\t\tport: config.port,\n\t});\n\tnodeWebSocket.injectWebSocket(server);\n\n\tlogger().info({\n\t\tmsg: \"rivetkit started\",\n\t\thostname: config.hostname,\n\t\tport: config.port,\n\t\tdefinitions: Object.keys(registry.config.use).length,\n\t});\n\n\treturn server;\n}\n\nexport interface SetupTestResult<A extends Registry<any>> {\n\tclient: Client<A>;\n\tmockDriver: {\n\t\tactorDriver: {\n\t\t\tsetCreateVarsContext: (ctx: any) => void;\n\t\t};\n\t};\n}\n\n// Must use `TestContext` since global hooks do not work when running concurrently\nexport async function setupTest<A extends Registry<any>>(\n\tc: TestContext,\n\tregistry: A,\n): Promise<SetupTestResult<A>> {\n\tvi.useFakeTimers();\n\n\t// Set up mock driver for testing createVars context\n\tconst mockDriverContext: any = {};\n\tconst setDriverContextFn = (ctx: any) => {\n\t\tmockDriverContext.current = ctx;\n\t};\n\n\t// We don't need to modify the driver context anymore since we're testing with the actual context\n\n\t// Start server with a random port\n\tconst port = await getPort();\n\tconst server = await serve(registry, { port });\n\tc.onTestFinished(\n\t\tasync () =>\n\t\t\tawait new Promise((resolve) => server.close(() => resolve())),\n\t);\n\n\tthrow \"TODO: Fix engine port\";\n\n\t// // TODO: Figure out how to make this the correct endpoint\n\t// // Create client\n\t// const client = createClient<A>(`http://127.0.0.1:${port}`);\n\t// c.onTestFinished(async () => await client.dispose());\n\t//\n\t// return {\n\t// \tclient,\n\t// \tmockDriver: {\n\t// \t\tactorDriver: {\n\t// \t\t\tsetCreateVarsContext: setDriverContextFn,\n\t// \t\t},\n\t// \t},\n\t// };\n}\n\nexport async function getPort(): Promise<number> {\n\t// Pick random port between 10000 and 65535 (avoiding well-known and registered ports)\n\tconst MIN_PORT = 10000;\n\tconst MAX_PORT = 65535;\n\tconst getRandomPort = () =>\n\t\tMath.floor(Math.random() * (MAX_PORT - MIN_PORT + 1)) + MIN_PORT;\n\n\tlet port = getRandomPort();\n\tlet maxAttempts = 10;\n\n\twhile (maxAttempts > 0) {\n\t\ttry {\n\t\t\t// Try to create a server on the port to check if it's available\n\t\t\tconst server = await new Promise<any>((resolve, reject) => {\n\t\t\t\tconst server = createServer();\n\n\t\t\t\tserver.once(\"error\", (err: Error & { code?: string }) => {\n\t\t\t\t\tif (err.code === \"EADDRINUSE\") {\n\t\t\t\t\t\treject(new Error(`Port ${port} is in use`));\n\t\t\t\t\t} else {\n\t\t\t\t\t\treject(err);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tserver.once(\"listening\", () => {\n\t\t\t\t\tresolve(server);\n\t\t\t\t});\n\n\t\t\t\tserver.listen(port);\n\t\t\t});\n\n\t\t\t// Close the server since we're just checking availability\n\t\t\tawait new Promise<void>((resolve) => {\n\t\t\t\tserver.close(() => resolve());\n\t\t\t});\n\n\t\t\treturn port;\n\t\t} catch (err) {\n\t\t\t// If port is in use, try a different one\n\t\t\tmaxAttempts--;\n\t\t\tif (maxAttempts <= 0) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tport = getRandomPort();\n\t\t}\n\t}\n\n\tthrow new Error(\"Could not find an available port after multiple attempts\");\n}\n","import { z } from \"zod\";\nimport { RunnerConfigSchema } from \"@/registry/run-config\";\n\nexport const ConfigSchema = RunnerConfigSchema.removeDefault()\n\t.extend({\n\t\thostname: z\n\t\t\t.string()\n\t\t\t.optional()\n\t\t\t.default(process.env.HOSTNAME ?? \"127.0.0.1\"),\n\t\tport: z\n\t\t\t.number()\n\t\t\t.optional()\n\t\t\t.default(Number.parseInt(process.env.PORT ?? \"8080\")),\n\t})\n\t.default({});\nexport type InputConfig = z.input<typeof ConfigSchema>;\n","import { getLogger } from \"@/common/log\";\n\nexport function logger() {\n\treturn getLogger(\"test\");\n}\n"]}
|
|
@@ -0,0 +1,512 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }
|
|
2
|
+
|
|
3
|
+
var _chunk3543NCSNcjs = require('./chunk-3543NCSN.cjs');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
var _chunkDLK5YCTNcjs = require('./chunk-DLK5YCTN.cjs');
|
|
10
|
+
|
|
11
|
+
// src/registry/run-config.ts
|
|
12
|
+
var _zod = require('zod'); var _zod2 = _interopRequireDefault(_zod);
|
|
13
|
+
|
|
14
|
+
// src/drivers/engine/config.ts
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
// src/client/config.ts
|
|
18
|
+
|
|
19
|
+
var ClientConfigSchema = _zod2.default.object({
|
|
20
|
+
/** Endpoint to connect to for Rivet Engine or RivetKit manager API. */
|
|
21
|
+
endpoint: _zod2.default.string().optional().transform(
|
|
22
|
+
(x) => _nullishCoalesce(_nullishCoalesce(x, () => ( _chunkDLK5YCTNcjs.getEnvUniversal.call(void 0, "RIVET_ENGINE"))), () => ( _chunkDLK5YCTNcjs.getEnvUniversal.call(void 0, "RIVET_ENDPOINT")))
|
|
23
|
+
),
|
|
24
|
+
/** Token to use to authenticate with the API. */
|
|
25
|
+
token: _zod2.default.string().optional().transform((x) => _nullishCoalesce(x, () => ( _chunkDLK5YCTNcjs.getEnvUniversal.call(void 0, "RIVET_TOKEN")))),
|
|
26
|
+
/** Namespace to connect to. */
|
|
27
|
+
namespace: _zod2.default.string().default(() => _nullishCoalesce(_chunkDLK5YCTNcjs.getEnvUniversal.call(void 0, "RIVET_NAMESPACE"), () => ( "default"))),
|
|
28
|
+
/** Name of the runner. This is used to group together runners in to different pools. */
|
|
29
|
+
runnerName: _zod2.default.string().default(() => _nullishCoalesce(_chunkDLK5YCTNcjs.getEnvUniversal.call(void 0, "RIVET_RUNNER"), () => ( "default"))),
|
|
30
|
+
encoding: _chunk3543NCSNcjs.EncodingSchema.default("bare"),
|
|
31
|
+
headers: _zod2.default.record(_zod2.default.string()).optional().default({}),
|
|
32
|
+
// See RunConfig.getUpgradeWebSocket
|
|
33
|
+
getUpgradeWebSocket: _zod2.default.custom().optional(),
|
|
34
|
+
/** Whether to automatically perform health checks when the client is created. */
|
|
35
|
+
disableMetadataLookup: _zod2.default.boolean().optional().default(false)
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
// src/drivers/engine/config.ts
|
|
39
|
+
var EngingConfigSchema = _zod.z.object({
|
|
40
|
+
/** Unique key for this runner. Runners connecting a given key will replace any other runner connected with the same key. */
|
|
41
|
+
runnerKey: _zod.z.string().optional().transform((x) => _nullishCoalesce(x, () => ( _chunkDLK5YCTNcjs.getEnvUniversal.call(void 0, "RIVET_RUNNER_KEY")))),
|
|
42
|
+
/** How many actors this runner can run. */
|
|
43
|
+
totalSlots: _zod.z.number().default(1e5)
|
|
44
|
+
}).merge(ClientConfigSchema).default({});
|
|
45
|
+
|
|
46
|
+
// src/inspector/config.ts
|
|
47
|
+
|
|
48
|
+
var defaultTokenFn = () => {
|
|
49
|
+
const envToken = _chunkDLK5YCTNcjs.getEnvUniversal.call(void 0, "RIVETKIT_INSPECTOR_TOKEN");
|
|
50
|
+
if (envToken) {
|
|
51
|
+
return envToken;
|
|
52
|
+
}
|
|
53
|
+
return "";
|
|
54
|
+
};
|
|
55
|
+
var defaultEnabled = () => {
|
|
56
|
+
return _chunkDLK5YCTNcjs.getEnvUniversal.call(void 0, "NODE_ENV") !== "production" || !_chunkDLK5YCTNcjs.getEnvUniversal.call(void 0, "RIVETKIT_INSPECTOR_DISABLE");
|
|
57
|
+
};
|
|
58
|
+
var InspectorConfigSchema = _zod.z.object({
|
|
59
|
+
enabled: _zod.z.boolean().or(
|
|
60
|
+
_zod.z.object({
|
|
61
|
+
actor: _zod.z.boolean().optional().default(true),
|
|
62
|
+
manager: _zod.z.boolean().optional().default(true)
|
|
63
|
+
})
|
|
64
|
+
).optional().default(defaultEnabled),
|
|
65
|
+
/**
|
|
66
|
+
* Token used to access the Inspector.
|
|
67
|
+
*/
|
|
68
|
+
token: _zod.z.function().returns(_zod.z.string()).optional().default(() => defaultTokenFn),
|
|
69
|
+
/**
|
|
70
|
+
* Default RivetKit server endpoint for Rivet Inspector to connect to. This should be the same endpoint as what you use for your Rivet client to connect to RivetKit.
|
|
71
|
+
*
|
|
72
|
+
* This is a convenience property just for printing out the inspector URL.
|
|
73
|
+
*/
|
|
74
|
+
defaultEndpoint: _zod.z.string().optional()
|
|
75
|
+
}).optional().default(() => ({
|
|
76
|
+
enabled: defaultEnabled(),
|
|
77
|
+
token: defaultTokenFn
|
|
78
|
+
}));
|
|
79
|
+
|
|
80
|
+
// src/registry/run-config.ts
|
|
81
|
+
var DriverConfigSchema = _zod.z.object({
|
|
82
|
+
/** Machine-readable name to identify this driver by. */
|
|
83
|
+
name: _zod.z.string(),
|
|
84
|
+
manager: _zod.z.custom(),
|
|
85
|
+
actor: _zod.z.custom()
|
|
86
|
+
});
|
|
87
|
+
var RunnerConfigSchema = _zod.z.object({
|
|
88
|
+
driver: DriverConfigSchema.optional(),
|
|
89
|
+
/** @experimental */
|
|
90
|
+
maxIncomingMessageSize: _zod.z.number().optional().default(65536),
|
|
91
|
+
/** @experimental */
|
|
92
|
+
inspector: InspectorConfigSchema,
|
|
93
|
+
/** @experimental */
|
|
94
|
+
disableDefaultServer: _zod.z.boolean().optional().default(false),
|
|
95
|
+
/** @experimental */
|
|
96
|
+
defaultServerPort: _zod.z.number().default(6420),
|
|
97
|
+
/** @experimental */
|
|
98
|
+
runEngine: _zod.z.boolean().optional().default(() => _chunkDLK5YCTNcjs.getEnvUniversal.call(void 0, "RIVET_RUN_ENGINE") === "1"),
|
|
99
|
+
/** @experimental */
|
|
100
|
+
runEngineVersion: _zod.z.string().optional().default(
|
|
101
|
+
() => _nullishCoalesce(_chunkDLK5YCTNcjs.getEnvUniversal.call(void 0, "RIVET_RUN_ENGINE_VERSION"), () => ( _chunkDLK5YCTNcjs.VERSION))
|
|
102
|
+
),
|
|
103
|
+
/** @experimental */
|
|
104
|
+
overrideServerAddress: _zod.z.string().optional(),
|
|
105
|
+
/** @experimental */
|
|
106
|
+
disableActorDriver: _zod.z.boolean().optional().default(false),
|
|
107
|
+
/**
|
|
108
|
+
* @experimental
|
|
109
|
+
*
|
|
110
|
+
* Whether to run runners normally or have them managed
|
|
111
|
+
* serverlessly (by the Rivet Engine for example).
|
|
112
|
+
*/
|
|
113
|
+
runnerKind: _zod.z.enum(["serverless", "normal"]).optional().default(
|
|
114
|
+
() => _chunkDLK5YCTNcjs.getEnvUniversal.call(void 0, "RIVET_RUNNER_KIND") === "serverless" ? "serverless" : "normal"
|
|
115
|
+
),
|
|
116
|
+
totalSlots: _zod.z.number().optional(),
|
|
117
|
+
/**
|
|
118
|
+
* @experimental
|
|
119
|
+
*
|
|
120
|
+
* Base path for the router. This is used to prefix all routes.
|
|
121
|
+
* For example, if the base path is `/api`, then the route `/actors` will be
|
|
122
|
+
* available at `/api/actors`.
|
|
123
|
+
*/
|
|
124
|
+
basePath: _zod.z.string().optional().default("/"),
|
|
125
|
+
/**
|
|
126
|
+
* @experimental
|
|
127
|
+
*
|
|
128
|
+
* Disable welcome message.
|
|
129
|
+
* */
|
|
130
|
+
noWelcome: _zod.z.boolean().optional().default(false),
|
|
131
|
+
/**
|
|
132
|
+
* @experimental
|
|
133
|
+
* */
|
|
134
|
+
logging: _zod.z.object({
|
|
135
|
+
baseLogger: _zod.z.custom().optional(),
|
|
136
|
+
level: _chunkDLK5YCTNcjs.LogLevelSchema.optional()
|
|
137
|
+
}).optional().default({}),
|
|
138
|
+
/**
|
|
139
|
+
* @experimental
|
|
140
|
+
*
|
|
141
|
+
* Automatically configure serverless runners in the engine.
|
|
142
|
+
* Can only be used when runnerKind is "serverless".
|
|
143
|
+
* If true, uses default configuration. Can also provide custom configuration.
|
|
144
|
+
*/
|
|
145
|
+
autoConfigureServerless: _zod.z.union([
|
|
146
|
+
_zod.z.boolean(),
|
|
147
|
+
_zod.z.object({
|
|
148
|
+
url: _zod.z.string().optional(),
|
|
149
|
+
headers: _zod.z.record(_zod.z.string(), _zod.z.string()).optional(),
|
|
150
|
+
maxRunners: _zod.z.number().optional(),
|
|
151
|
+
minRunners: _zod.z.number().optional(),
|
|
152
|
+
requestLifespan: _zod.z.number().optional(),
|
|
153
|
+
runnersMargin: _zod.z.number().optional(),
|
|
154
|
+
slotsPerRunner: _zod.z.number().optional(),
|
|
155
|
+
metadata: _zod.z.record(_zod.z.unknown()).optional()
|
|
156
|
+
})
|
|
157
|
+
]).optional(),
|
|
158
|
+
// This is a function to allow for lazy configuration of upgradeWebSocket on the
|
|
159
|
+
// fly. This is required since the dependencies that upgradeWebSocket
|
|
160
|
+
// (specifically Node.js) can sometimes only be specified after the router is
|
|
161
|
+
// created or must be imported async using `await import(...)`
|
|
162
|
+
getUpgradeWebSocket: _zod.z.custom().optional()
|
|
163
|
+
}).merge(EngingConfigSchema.removeDefault()).default({});
|
|
164
|
+
|
|
165
|
+
// src/driver-helpers/utils.ts
|
|
166
|
+
var _cborx = require('cbor-x'); var cbor = _interopRequireWildcard(_cborx);
|
|
167
|
+
|
|
168
|
+
// src/actor/instance/kv.ts
|
|
169
|
+
var KEYS = {
|
|
170
|
+
PERSIST_DATA: Uint8Array.from([1]),
|
|
171
|
+
CONN_PREFIX: Uint8Array.from([2]),
|
|
172
|
+
// Prefix for connection keys
|
|
173
|
+
INSPECTOR_TOKEN: Uint8Array.from([3])
|
|
174
|
+
// Inspector token key
|
|
175
|
+
};
|
|
176
|
+
function makeConnKey(connId) {
|
|
177
|
+
const encoder = new TextEncoder();
|
|
178
|
+
const connIdBytes = encoder.encode(connId);
|
|
179
|
+
const key = new Uint8Array(KEYS.CONN_PREFIX.length + connIdBytes.length);
|
|
180
|
+
key.set(KEYS.CONN_PREFIX, 0);
|
|
181
|
+
key.set(connIdBytes, KEYS.CONN_PREFIX.length);
|
|
182
|
+
return key;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
// src/common/versioned-data.ts
|
|
186
|
+
var VersionedDataHandler = class {
|
|
187
|
+
constructor(config2) {
|
|
188
|
+
this.config = config2;
|
|
189
|
+
}
|
|
190
|
+
serializeWithEmbeddedVersion(data) {
|
|
191
|
+
const versioned = {
|
|
192
|
+
version: this.config.currentVersion,
|
|
193
|
+
data: this.config.serializeVersion(data)
|
|
194
|
+
};
|
|
195
|
+
return this.embedVersion(versioned);
|
|
196
|
+
}
|
|
197
|
+
deserializeWithEmbeddedVersion(bytes) {
|
|
198
|
+
const versioned = this.extractVersion(bytes);
|
|
199
|
+
return this.deserialize(versioned.data, versioned.version);
|
|
200
|
+
}
|
|
201
|
+
serialize(data, version) {
|
|
202
|
+
return this.config.serializeVersion(data);
|
|
203
|
+
}
|
|
204
|
+
deserialize(bytes, version) {
|
|
205
|
+
if (version === this.config.currentVersion) {
|
|
206
|
+
return this.config.deserializeVersion(bytes);
|
|
207
|
+
}
|
|
208
|
+
if (version > this.config.currentVersion) {
|
|
209
|
+
throw new Error(
|
|
210
|
+
`Cannot decode data from version ${version}, current version is ${this.config.currentVersion}`
|
|
211
|
+
);
|
|
212
|
+
}
|
|
213
|
+
let currentData = this.config.deserializeVersion(bytes);
|
|
214
|
+
let currentVersion = version;
|
|
215
|
+
while (currentVersion < this.config.currentVersion) {
|
|
216
|
+
const migration = this.config.migrations.get(currentVersion);
|
|
217
|
+
if (!migration) {
|
|
218
|
+
throw new Error(
|
|
219
|
+
`No migration found from version ${currentVersion} to ${currentVersion + 1}`
|
|
220
|
+
);
|
|
221
|
+
}
|
|
222
|
+
currentData = migration(currentData);
|
|
223
|
+
currentVersion++;
|
|
224
|
+
}
|
|
225
|
+
return currentData;
|
|
226
|
+
}
|
|
227
|
+
embedVersion(data) {
|
|
228
|
+
const versionBytes = new Uint8Array(2);
|
|
229
|
+
new DataView(versionBytes.buffer).setUint16(0, data.version, true);
|
|
230
|
+
const result = new Uint8Array(versionBytes.length + data.data.length);
|
|
231
|
+
result.set(versionBytes);
|
|
232
|
+
result.set(data.data, versionBytes.length);
|
|
233
|
+
return result;
|
|
234
|
+
}
|
|
235
|
+
extractVersion(bytes) {
|
|
236
|
+
if (bytes.length < 2) {
|
|
237
|
+
throw new Error("Invalid versioned data: too short");
|
|
238
|
+
}
|
|
239
|
+
const version = new DataView(bytes.buffer, bytes.byteOffset).getUint16(
|
|
240
|
+
0,
|
|
241
|
+
true
|
|
242
|
+
);
|
|
243
|
+
const data = bytes.slice(2);
|
|
244
|
+
return { version, data };
|
|
245
|
+
}
|
|
246
|
+
};
|
|
247
|
+
function createVersionedDataHandler(config2) {
|
|
248
|
+
return new VersionedDataHandler(config2);
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
// dist/schemas/actor-persist/v3.ts
|
|
252
|
+
var _assert = require('assert'); var _assert2 = _interopRequireDefault(_assert);
|
|
253
|
+
var _lib = require('@bare-ts/lib'); var bare = _interopRequireWildcard(_lib);
|
|
254
|
+
var config = /* @__PURE__ */ bare.Config({});
|
|
255
|
+
function readGatewayId(bc) {
|
|
256
|
+
return bare.readFixedData(bc, 4);
|
|
257
|
+
}
|
|
258
|
+
function writeGatewayId(bc, x) {
|
|
259
|
+
_assert2.default.call(void 0, x.byteLength === 4);
|
|
260
|
+
bare.writeFixedData(bc, x);
|
|
261
|
+
}
|
|
262
|
+
function readRequestId(bc) {
|
|
263
|
+
return bare.readFixedData(bc, 4);
|
|
264
|
+
}
|
|
265
|
+
function writeRequestId(bc, x) {
|
|
266
|
+
_assert2.default.call(void 0, x.byteLength === 4);
|
|
267
|
+
bare.writeFixedData(bc, x);
|
|
268
|
+
}
|
|
269
|
+
function readCbor(bc) {
|
|
270
|
+
return bare.readData(bc);
|
|
271
|
+
}
|
|
272
|
+
function writeCbor(bc, x) {
|
|
273
|
+
bare.writeData(bc, x);
|
|
274
|
+
}
|
|
275
|
+
function readSubscription(bc) {
|
|
276
|
+
return {
|
|
277
|
+
eventName: bare.readString(bc)
|
|
278
|
+
};
|
|
279
|
+
}
|
|
280
|
+
function writeSubscription(bc, x) {
|
|
281
|
+
bare.writeString(bc, x.eventName);
|
|
282
|
+
}
|
|
283
|
+
function read0(bc) {
|
|
284
|
+
const len = bare.readUintSafe(bc);
|
|
285
|
+
if (len === 0) {
|
|
286
|
+
return [];
|
|
287
|
+
}
|
|
288
|
+
const result = [readSubscription(bc)];
|
|
289
|
+
for (let i = 1; i < len; i++) {
|
|
290
|
+
result[i] = readSubscription(bc);
|
|
291
|
+
}
|
|
292
|
+
return result;
|
|
293
|
+
}
|
|
294
|
+
function write0(bc, x) {
|
|
295
|
+
bare.writeUintSafe(bc, x.length);
|
|
296
|
+
for (let i = 0; i < x.length; i++) {
|
|
297
|
+
writeSubscription(bc, x[i]);
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
function read1(bc) {
|
|
301
|
+
const len = bare.readUintSafe(bc);
|
|
302
|
+
const result = /* @__PURE__ */ new Map();
|
|
303
|
+
for (let i = 0; i < len; i++) {
|
|
304
|
+
const offset = bc.offset;
|
|
305
|
+
const key = bare.readString(bc);
|
|
306
|
+
if (result.has(key)) {
|
|
307
|
+
bc.offset = offset;
|
|
308
|
+
throw new bare.BareError(offset, "duplicated key");
|
|
309
|
+
}
|
|
310
|
+
result.set(key, bare.readString(bc));
|
|
311
|
+
}
|
|
312
|
+
return result;
|
|
313
|
+
}
|
|
314
|
+
function write1(bc, x) {
|
|
315
|
+
bare.writeUintSafe(bc, x.size);
|
|
316
|
+
for (const kv of x) {
|
|
317
|
+
bare.writeString(bc, kv[0]);
|
|
318
|
+
bare.writeString(bc, kv[1]);
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
function readConn(bc) {
|
|
322
|
+
return {
|
|
323
|
+
id: bare.readString(bc),
|
|
324
|
+
parameters: readCbor(bc),
|
|
325
|
+
state: readCbor(bc),
|
|
326
|
+
subscriptions: read0(bc),
|
|
327
|
+
gatewayId: readGatewayId(bc),
|
|
328
|
+
requestId: readRequestId(bc),
|
|
329
|
+
serverMessageIndex: bare.readU16(bc),
|
|
330
|
+
clientMessageIndex: bare.readU16(bc),
|
|
331
|
+
requestPath: bare.readString(bc),
|
|
332
|
+
requestHeaders: read1(bc)
|
|
333
|
+
};
|
|
334
|
+
}
|
|
335
|
+
function writeConn(bc, x) {
|
|
336
|
+
bare.writeString(bc, x.id);
|
|
337
|
+
writeCbor(bc, x.parameters);
|
|
338
|
+
writeCbor(bc, x.state);
|
|
339
|
+
write0(bc, x.subscriptions);
|
|
340
|
+
writeGatewayId(bc, x.gatewayId);
|
|
341
|
+
writeRequestId(bc, x.requestId);
|
|
342
|
+
bare.writeU16(bc, x.serverMessageIndex);
|
|
343
|
+
bare.writeU16(bc, x.clientMessageIndex);
|
|
344
|
+
bare.writeString(bc, x.requestPath);
|
|
345
|
+
write1(bc, x.requestHeaders);
|
|
346
|
+
}
|
|
347
|
+
function encodeConn(x) {
|
|
348
|
+
const bc = new bare.ByteCursor(
|
|
349
|
+
new Uint8Array(config.initialBufferLength),
|
|
350
|
+
config
|
|
351
|
+
);
|
|
352
|
+
writeConn(bc, x);
|
|
353
|
+
return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);
|
|
354
|
+
}
|
|
355
|
+
function decodeConn(bytes) {
|
|
356
|
+
const bc = new bare.ByteCursor(bytes, config);
|
|
357
|
+
const result = readConn(bc);
|
|
358
|
+
if (bc.offset < bc.view.byteLength) {
|
|
359
|
+
throw new bare.BareError(bc.offset, "remaining bytes");
|
|
360
|
+
}
|
|
361
|
+
return result;
|
|
362
|
+
}
|
|
363
|
+
function read2(bc) {
|
|
364
|
+
return bare.readBool(bc) ? readCbor(bc) : null;
|
|
365
|
+
}
|
|
366
|
+
function write2(bc, x) {
|
|
367
|
+
bare.writeBool(bc, x !== null);
|
|
368
|
+
if (x !== null) {
|
|
369
|
+
writeCbor(bc, x);
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
function readScheduleEvent(bc) {
|
|
373
|
+
return {
|
|
374
|
+
eventId: bare.readString(bc),
|
|
375
|
+
timestamp: bare.readI64(bc),
|
|
376
|
+
action: bare.readString(bc),
|
|
377
|
+
args: read2(bc)
|
|
378
|
+
};
|
|
379
|
+
}
|
|
380
|
+
function writeScheduleEvent(bc, x) {
|
|
381
|
+
bare.writeString(bc, x.eventId);
|
|
382
|
+
bare.writeI64(bc, x.timestamp);
|
|
383
|
+
bare.writeString(bc, x.action);
|
|
384
|
+
write2(bc, x.args);
|
|
385
|
+
}
|
|
386
|
+
function read3(bc) {
|
|
387
|
+
const len = bare.readUintSafe(bc);
|
|
388
|
+
if (len === 0) {
|
|
389
|
+
return [];
|
|
390
|
+
}
|
|
391
|
+
const result = [readScheduleEvent(bc)];
|
|
392
|
+
for (let i = 1; i < len; i++) {
|
|
393
|
+
result[i] = readScheduleEvent(bc);
|
|
394
|
+
}
|
|
395
|
+
return result;
|
|
396
|
+
}
|
|
397
|
+
function write3(bc, x) {
|
|
398
|
+
bare.writeUintSafe(bc, x.length);
|
|
399
|
+
for (let i = 0; i < x.length; i++) {
|
|
400
|
+
writeScheduleEvent(bc, x[i]);
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
function readActor(bc) {
|
|
404
|
+
return {
|
|
405
|
+
input: read2(bc),
|
|
406
|
+
hasInitialized: bare.readBool(bc),
|
|
407
|
+
state: readCbor(bc),
|
|
408
|
+
scheduledEvents: read3(bc)
|
|
409
|
+
};
|
|
410
|
+
}
|
|
411
|
+
function writeActor(bc, x) {
|
|
412
|
+
write2(bc, x.input);
|
|
413
|
+
bare.writeBool(bc, x.hasInitialized);
|
|
414
|
+
writeCbor(bc, x.state);
|
|
415
|
+
write3(bc, x.scheduledEvents);
|
|
416
|
+
}
|
|
417
|
+
function encodeActor(x) {
|
|
418
|
+
const bc = new bare.ByteCursor(
|
|
419
|
+
new Uint8Array(config.initialBufferLength),
|
|
420
|
+
config
|
|
421
|
+
);
|
|
422
|
+
writeActor(bc, x);
|
|
423
|
+
return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);
|
|
424
|
+
}
|
|
425
|
+
function decodeActor(bytes) {
|
|
426
|
+
const bc = new bare.ByteCursor(bytes, config);
|
|
427
|
+
const result = readActor(bc);
|
|
428
|
+
if (bc.offset < bc.view.byteLength) {
|
|
429
|
+
throw new bare.BareError(bc.offset, "remaining bytes");
|
|
430
|
+
}
|
|
431
|
+
return result;
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
// src/schemas/actor-persist/versioned.ts
|
|
435
|
+
var CURRENT_VERSION = 3;
|
|
436
|
+
var migrations = /* @__PURE__ */ new Map([
|
|
437
|
+
[
|
|
438
|
+
1,
|
|
439
|
+
(v1Data) => ({
|
|
440
|
+
...v1Data,
|
|
441
|
+
connections: v1Data.connections.map((conn) => ({
|
|
442
|
+
...conn,
|
|
443
|
+
hibernatableRequestId: null
|
|
444
|
+
})),
|
|
445
|
+
hibernatableWebSockets: []
|
|
446
|
+
})
|
|
447
|
+
],
|
|
448
|
+
[
|
|
449
|
+
2,
|
|
450
|
+
(v2Data) => {
|
|
451
|
+
const scheduledEvents = v2Data.scheduledEvents.map((event) => {
|
|
452
|
+
if (event.kind.tag === "GenericPersistedScheduleEvent") {
|
|
453
|
+
return {
|
|
454
|
+
eventId: event.eventId,
|
|
455
|
+
timestamp: event.timestamp,
|
|
456
|
+
action: event.kind.val.action,
|
|
457
|
+
args: event.kind.val.args
|
|
458
|
+
};
|
|
459
|
+
}
|
|
460
|
+
throw new Error(
|
|
461
|
+
`Unknown schedule event kind: ${event.kind.tag}`
|
|
462
|
+
);
|
|
463
|
+
});
|
|
464
|
+
return {
|
|
465
|
+
input: v2Data.input,
|
|
466
|
+
hasInitialized: v2Data.hasInitialized,
|
|
467
|
+
state: v2Data.state,
|
|
468
|
+
scheduledEvents
|
|
469
|
+
};
|
|
470
|
+
}
|
|
471
|
+
]
|
|
472
|
+
]);
|
|
473
|
+
var ACTOR_VERSIONED = createVersionedDataHandler({
|
|
474
|
+
currentVersion: CURRENT_VERSION,
|
|
475
|
+
migrations,
|
|
476
|
+
serializeVersion: (data) => encodeActor(data),
|
|
477
|
+
deserializeVersion: (bytes) => decodeActor(bytes)
|
|
478
|
+
});
|
|
479
|
+
var CONN_VERSIONED = createVersionedDataHandler({
|
|
480
|
+
currentVersion: CURRENT_VERSION,
|
|
481
|
+
migrations: /* @__PURE__ */ new Map(),
|
|
482
|
+
serializeVersion: (data) => encodeConn(data),
|
|
483
|
+
deserializeVersion: (bytes) => decodeConn(bytes)
|
|
484
|
+
});
|
|
485
|
+
|
|
486
|
+
// src/driver-helpers/utils.ts
|
|
487
|
+
function serializeEmptyPersistData(input) {
|
|
488
|
+
const persistData = {
|
|
489
|
+
input: input !== void 0 ? _chunkDLK5YCTNcjs.bufferToArrayBuffer.call(void 0, cbor.encode(input)) : null,
|
|
490
|
+
hasInitialized: false,
|
|
491
|
+
state: _chunkDLK5YCTNcjs.bufferToArrayBuffer.call(void 0, cbor.encode(void 0)),
|
|
492
|
+
scheduledEvents: []
|
|
493
|
+
};
|
|
494
|
+
return ACTOR_VERSIONED.serializeWithEmbeddedVersion(persistData);
|
|
495
|
+
}
|
|
496
|
+
function getInitialActorKvState(input) {
|
|
497
|
+
const persistData = serializeEmptyPersistData(input);
|
|
498
|
+
return [[KEYS.PERSIST_DATA, persistData]];
|
|
499
|
+
}
|
|
500
|
+
|
|
501
|
+
|
|
502
|
+
|
|
503
|
+
|
|
504
|
+
|
|
505
|
+
|
|
506
|
+
|
|
507
|
+
|
|
508
|
+
|
|
509
|
+
|
|
510
|
+
|
|
511
|
+
exports.createVersionedDataHandler = createVersionedDataHandler; exports.ACTOR_VERSIONED = ACTOR_VERSIONED; exports.CONN_VERSIONED = CONN_VERSIONED; exports.KEYS = KEYS; exports.makeConnKey = makeConnKey; exports.ClientConfigSchema = ClientConfigSchema; exports.DriverConfigSchema = DriverConfigSchema; exports.RunnerConfigSchema = RunnerConfigSchema; exports.getInitialActorKvState = getInitialActorKvState;
|
|
512
|
+
//# sourceMappingURL=chunk-D3SLADUD.cjs.map
|