rivetkit 2.1.3 → 2.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/client.d.ts +11 -0
- package/dist/browser/client.js +1 -1
- package/dist/browser/client.js.map +1 -1
- package/dist/browser/inspector/client.js +1 -1
- package/dist/browser/inspector/client.js.map +1 -1
- package/dist/inspector.tar.gz +0 -0
- package/dist/tsup/{chunk-OAOF23ZY.js → chunk-2OK7S6QF.js} +2 -2
- package/dist/tsup/{chunk-5AZ6UPEF.cjs → chunk-7WF2QSIC.cjs} +24 -20
- package/dist/tsup/chunk-7WF2QSIC.cjs.map +1 -0
- package/dist/tsup/{chunk-IJAGZS57.cjs → chunk-D2SPAJVT.cjs} +30 -30
- package/dist/tsup/{chunk-IJAGZS57.cjs.map → chunk-D2SPAJVT.cjs.map} +1 -1
- package/dist/tsup/{chunk-YET3IZD6.js → chunk-EIATSBYZ.js} +2 -2
- package/dist/tsup/{chunk-YET3IZD6.js.map → chunk-EIATSBYZ.js.map} +1 -1
- package/dist/tsup/{chunk-DADGS67O.cjs → chunk-GQGRQDRL.cjs} +4 -4
- package/dist/tsup/{chunk-DADGS67O.cjs.map → chunk-GQGRQDRL.cjs.map} +1 -1
- package/dist/tsup/{chunk-ZSJ2OTY4.cjs → chunk-HYPIHCDT.cjs} +2 -2
- package/dist/tsup/{chunk-ZSJ2OTY4.cjs.map → chunk-HYPIHCDT.cjs.map} +1 -1
- package/dist/tsup/{chunk-HPAX7L72.cjs → chunk-IIJNPVPQ.cjs} +152 -152
- package/dist/tsup/{chunk-HPAX7L72.cjs.map → chunk-IIJNPVPQ.cjs.map} +1 -1
- package/dist/tsup/{chunk-U6VWVHVW.cjs → chunk-JC6BEPE7.cjs} +3 -3
- package/dist/tsup/{chunk-U6VWVHVW.cjs.map → chunk-JC6BEPE7.cjs.map} +1 -1
- package/dist/tsup/{chunk-N7ASEZ2Y.js → chunk-JPXO2H55.js} +5 -5
- package/dist/tsup/{chunk-QUDLEWGD.js → chunk-MIX2KB6U.js} +212 -47
- package/dist/tsup/chunk-MIX2KB6U.js.map +1 -0
- package/dist/tsup/{chunk-BMNB6YRQ.cjs → chunk-OAXJWGMU.cjs} +212 -305
- package/dist/tsup/chunk-OAXJWGMU.cjs.map +1 -0
- package/dist/tsup/{chunk-KSZZRTOD.cjs → chunk-PB5AEMKQ.cjs} +3 -5
- package/dist/tsup/chunk-PB5AEMKQ.cjs.map +1 -0
- package/dist/tsup/{chunk-6T3WSP5M.js → chunk-R5OQUSLN.js} +4 -4
- package/dist/tsup/{chunk-POUBQA6Z.js → chunk-S662Y6ZU.js} +2 -2
- package/dist/tsup/{chunk-GNGRMP5E.js → chunk-SRIM3GHD.js} +18 -11
- package/dist/tsup/chunk-SRIM3GHD.js.map +1 -0
- package/dist/tsup/{chunk-MAXIXG56.js → chunk-TADUYCHF.js} +2 -4
- package/dist/tsup/chunk-TADUYCHF.js.map +1 -0
- package/dist/tsup/{chunk-R64EFI6F.cjs → chunk-TI5PXQGG.cjs} +280 -115
- package/dist/tsup/chunk-TI5PXQGG.cjs.map +1 -0
- package/dist/tsup/{chunk-T6MM5RTW.cjs → chunk-U5SMSA27.cjs} +250 -243
- package/dist/tsup/chunk-U5SMSA27.cjs.map +1 -0
- package/dist/tsup/{chunk-6LHZQSWJ.js → chunk-WY2SHWXQ.js} +8 -4
- package/dist/tsup/chunk-WY2SHWXQ.js.map +1 -0
- package/dist/tsup/{chunk-YLDDENCZ.js → chunk-ZPWOYQHN.js} +126 -219
- package/dist/tsup/chunk-ZPWOYQHN.js.map +1 -0
- package/dist/tsup/client/mod.cjs +6 -6
- package/dist/tsup/client/mod.d.cts +2 -2
- package/dist/tsup/client/mod.d.ts +2 -2
- package/dist/tsup/client/mod.js +5 -5
- package/dist/tsup/common/log.cjs +2 -2
- package/dist/tsup/common/log.js +1 -1
- package/dist/tsup/common/websocket.cjs +3 -3
- package/dist/tsup/common/websocket.js +2 -2
- package/dist/tsup/{config-P3XujgRr.d.ts → config-Qj-zLJPc.d.ts} +11 -0
- package/dist/tsup/{config-_gfywqqI.d.cts → config-iPj5l1bL.d.cts} +11 -0
- package/dist/tsup/{context-uNA4TRn3.d.ts → context-CQCMuHND.d.ts} +1 -1
- package/dist/tsup/{context-Bxd8Cx4H.d.cts → context-DzvH1PBK.d.cts} +1 -1
- package/dist/tsup/{driver-CPGHKXyh.d.ts → driver-Jo8v-kbU.d.ts} +1 -1
- package/dist/tsup/driver-helpers/mod.cjs +4 -4
- package/dist/tsup/driver-helpers/mod.d.cts +4 -4
- package/dist/tsup/driver-helpers/mod.d.ts +4 -4
- package/dist/tsup/driver-helpers/mod.js +3 -3
- package/dist/tsup/{driver-BcLvZcKl.d.cts → driver-iV8J-WMv.d.cts} +1 -1
- package/dist/tsup/driver-test-suite/mod.cjs +196 -60
- package/dist/tsup/driver-test-suite/mod.cjs.map +1 -1
- package/dist/tsup/driver-test-suite/mod.d.cts +2 -2
- package/dist/tsup/driver-test-suite/mod.d.ts +2 -2
- package/dist/tsup/driver-test-suite/mod.js +971 -835
- package/dist/tsup/driver-test-suite/mod.js.map +1 -1
- package/dist/tsup/inspector/mod.cjs +3 -3
- package/dist/tsup/inspector/mod.js +2 -2
- package/dist/tsup/mod.cjs +8 -8
- package/dist/tsup/mod.d.cts +5 -5
- package/dist/tsup/mod.d.ts +5 -5
- package/dist/tsup/mod.js +7 -7
- package/dist/tsup/serve-test-suite/mod.cjs +182 -100
- package/dist/tsup/serve-test-suite/mod.cjs.map +1 -1
- package/dist/tsup/serve-test-suite/mod.js +93 -11
- package/dist/tsup/serve-test-suite/mod.js.map +1 -1
- package/dist/tsup/test/mod.cjs +10 -10
- package/dist/tsup/test/mod.d.cts +1 -1
- package/dist/tsup/test/mod.d.ts +1 -1
- package/dist/tsup/test/mod.js +6 -6
- package/dist/tsup/utils.cjs +2 -2
- package/dist/tsup/utils.js +1 -1
- package/dist/tsup/workflow/mod.cjs +5 -5
- package/dist/tsup/workflow/mod.d.cts +3 -3
- package/dist/tsup/workflow/mod.d.ts +3 -3
- package/dist/tsup/workflow/mod.js +4 -4
- package/package.json +6 -6
- package/src/actor/config.ts +0 -2
- package/src/actor/instance/mod.ts +17 -4
- package/src/actor/router.ts +9 -6
- package/src/driver-test-suite/mod.ts +3 -0
- package/src/driver-test-suite/tests/actor-driver.ts +4 -0
- package/src/driver-test-suite/tests/actor-lifecycle.ts +157 -0
- package/src/driver-test-suite/tests/conn-error-serialization.ts +64 -0
- package/src/drivers/engine/actor-driver.ts +47 -15
- package/src/manager/router.ts +20 -6
- package/src/{registry → utils}/serve.ts +38 -4
- package/src/workflow/context.ts +4 -0
- package/dist/tsup/chunk-5AZ6UPEF.cjs.map +0 -1
- package/dist/tsup/chunk-6LHZQSWJ.js.map +0 -1
- package/dist/tsup/chunk-BMNB6YRQ.cjs.map +0 -1
- package/dist/tsup/chunk-GNGRMP5E.js.map +0 -1
- package/dist/tsup/chunk-KSZZRTOD.cjs.map +0 -1
- package/dist/tsup/chunk-MAXIXG56.js.map +0 -1
- package/dist/tsup/chunk-QUDLEWGD.js.map +0 -1
- package/dist/tsup/chunk-R64EFI6F.cjs.map +0 -1
- package/dist/tsup/chunk-T6MM5RTW.cjs.map +0 -1
- package/dist/tsup/chunk-YLDDENCZ.js.map +0 -1
- /package/dist/tsup/{chunk-OAOF23ZY.js.map → chunk-2OK7S6QF.js.map} +0 -0
- /package/dist/tsup/{chunk-N7ASEZ2Y.js.map → chunk-JPXO2H55.js.map} +0 -0
- /package/dist/tsup/{chunk-6T3WSP5M.js.map → chunk-R5OQUSLN.js.map} +0 -0
- /package/dist/tsup/{chunk-POUBQA6Z.js.map → chunk-S662Y6ZU.js.map} +0 -0
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } }
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkHYPIHCDTcjs = require('./chunk-HYPIHCDT.cjs');
|
|
4
4
|
|
|
5
5
|
// src/client/log.ts
|
|
6
6
|
function logger() {
|
|
7
|
-
return
|
|
7
|
+
return _chunkHYPIHCDTcjs.getLogger.call(void 0, "actor-client");
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
// src/common/websocket.ts
|
|
@@ -46,4 +46,4 @@ async function importWebSocket() {
|
|
|
46
46
|
|
|
47
47
|
|
|
48
48
|
exports.logger = logger; exports.importWebSocket = importWebSocket;
|
|
49
|
-
//# sourceMappingURL=chunk-
|
|
49
|
+
//# sourceMappingURL=chunk-JC6BEPE7.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/chunk-
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/chunk-JC6BEPE7.cjs","../../src/client/log.ts","../../src/common/websocket.ts"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACA;ACFO,SAAS,MAAA,CAAA,EAAS;AACxB,EAAA,OAAO,yCAAA,cAAwB,CAAA;AAChC;ADIA;AACA;AENA,IAAI,iBAAA,EAAqD,IAAA;AAEzD,MAAA,SAAsB,eAAA,CAAA,EAA6C;AAElE,EAAA,GAAA,CAAI,iBAAA,IAAqB,IAAA,EAAM;AAC9B,IAAA,OAAO,gBAAA;AAAA,EACR;AAGA,EAAA,iBAAA,EAAA,CAAoB,MAAA,CAAA,EAAA,GAAY;AAC/B,IAAA,IAAI,UAAA;AAEJ,IAAA,GAAA,CAAI,OAAO,UAAA,IAAc,WAAA,EAAa;AAErC,MAAA,WAAA,EAAa,SAAA;AAAA,IACd,EAAA,KAAO;AAEN,MAAA,IAAI;AACH,QAAA,MAAM,WAAA,EAAa,IAAA;AACnB,QAAA,MAAM,GAAA,EAAK,MAAM,4DAAA;AAAA;AAAA,UAAiC;AAAA,QAAA,GAAA;AAClD,QAAA,WAAA,EAAa,EAAA,CAAG,OAAA;AAChB,QAAA,MAAA,CAAO,CAAA,CAAE,KAAA,CAAM,0BAA0B,CAAA;AAAA,MAC1C,EAAA,UAAQ;AAEP,QAAA,WAAA,EAAa,MAAM,cAAc;AAAA,UAChC,WAAA,CAAA,EAAc;AACb,YAAA,MAAM,IAAI,KAAA;AAAA,cACT;AAAA,YACD,CAAA;AAAA,UACD;AAAA,QACD,CAAA;AACA,QAAA,MAAA,CAAO,CAAA,CAAE,KAAA,CAAM,sBAAsB,CAAA;AAAA,MACtC;AAAA,IACD;AAEA,IAAA,OAAO,UAAA;AAAA,EACR,CAAA,CAAA,CAAG,CAAA;AAEH,EAAA,OAAO,gBAAA;AACR;AFCA;AACA;AACE;AACA;AACF,mEAAC","file":"/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/chunk-JC6BEPE7.cjs","sourcesContent":[null,"import { getLogger } from \"@/common/log\";\n\nexport function logger() {\n\treturn getLogger(\"actor-client\");\n}\n","import { logger } from \"@/client/log\";\n\n// Global singleton promise that will be reused for subsequent calls\nlet webSocketPromise: Promise<typeof WebSocket> | null = null;\n\nexport async function importWebSocket(): Promise<typeof WebSocket> {\n\t// Return existing promise if we already started loading\n\tif (webSocketPromise !== null) {\n\t\treturn webSocketPromise;\n\t}\n\n\t// Create and store the promise\n\twebSocketPromise = (async () => {\n\t\tlet _WebSocket: typeof WebSocket;\n\n\t\tif (typeof WebSocket !== \"undefined\") {\n\t\t\t// Browser environment\n\t\t\t_WebSocket = WebSocket as unknown as typeof WebSocket;\n\t\t} else {\n\t\t\t// Node.js environment\n\t\t\ttry {\n\t\t\t\tconst moduleName = \"ws\";\n\t\t\t\tconst ws = await import(/* webpackIgnore: true */ moduleName);\n\t\t\t\t_WebSocket = ws.default as unknown as typeof WebSocket;\n\t\t\t\tlogger().debug(\"using websocket from npm\");\n\t\t\t} catch {\n\t\t\t\t// WS not available\n\t\t\t\t_WebSocket = class MockWebSocket {\n\t\t\t\t\tconstructor() {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t'WebSocket support requires installing the \"ws\" peer dependency.',\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} as unknown as typeof WebSocket;\n\t\t\t\tlogger().debug(\"using mock websocket\");\n\t\t\t}\n\t\t}\n\n\t\treturn _WebSocket;\n\t})();\n\n\treturn webSocketPromise;\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
importWebSocket,
|
|
3
3
|
logger
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-2OK7S6QF.js";
|
|
5
5
|
import {
|
|
6
6
|
CURRENT_VERSION,
|
|
7
7
|
EncodingSchema,
|
|
@@ -36,10 +36,10 @@ import {
|
|
|
36
36
|
serializeWithEncoding,
|
|
37
37
|
tryParseEndpoint,
|
|
38
38
|
uint8ArrayToBase64
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-MIX2KB6U.js";
|
|
40
40
|
import {
|
|
41
41
|
assertUnreachable as assertUnreachable2
|
|
42
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-TADUYCHF.js";
|
|
43
43
|
import {
|
|
44
44
|
VERSION,
|
|
45
45
|
assertUnreachable,
|
|
@@ -58,7 +58,7 @@ import {
|
|
|
58
58
|
noopNext,
|
|
59
59
|
promiseWithResolvers,
|
|
60
60
|
stringifyError
|
|
61
|
-
} from "./chunk-
|
|
61
|
+
} from "./chunk-EIATSBYZ.js";
|
|
62
62
|
import {
|
|
63
63
|
ActorNotFound,
|
|
64
64
|
InvalidRequest
|
|
@@ -2654,4 +2654,4 @@ export {
|
|
|
2654
2654
|
RemoteManagerDriver,
|
|
2655
2655
|
createClient
|
|
2656
2656
|
};
|
|
2657
|
-
//# sourceMappingURL=chunk-
|
|
2657
|
+
//# sourceMappingURL=chunk-JPXO2H55.js.map
|
|
@@ -11,17 +11,17 @@ import {
|
|
|
11
11
|
hasSchemaConfigKey,
|
|
12
12
|
loggerWithoutContext,
|
|
13
13
|
validateSchemaSync
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-TADUYCHF.js";
|
|
15
15
|
import {
|
|
16
16
|
LogLevelSchema,
|
|
17
17
|
VERSION,
|
|
18
18
|
assertUnreachable,
|
|
19
19
|
bufferToArrayBuffer,
|
|
20
20
|
deconstructError,
|
|
21
|
+
detectRuntime,
|
|
21
22
|
getEnvUniversal,
|
|
22
23
|
getLogHeaders,
|
|
23
24
|
getLogger,
|
|
24
|
-
getNodeEnv,
|
|
25
25
|
getRivetEndpoint,
|
|
26
26
|
getRivetEngine,
|
|
27
27
|
getRivetNamespace,
|
|
@@ -42,7 +42,7 @@ import {
|
|
|
42
42
|
noopNext,
|
|
43
43
|
promiseWithResolvers,
|
|
44
44
|
stringifyError
|
|
45
|
-
} from "./chunk-
|
|
45
|
+
} from "./chunk-EIATSBYZ.js";
|
|
46
46
|
import {
|
|
47
47
|
ConnStateNotEnabled,
|
|
48
48
|
EventPayloadInvalid,
|
|
@@ -95,7 +95,6 @@ var ALLOWED_PUBLIC_HEADERS = [
|
|
|
95
95
|
];
|
|
96
96
|
|
|
97
97
|
// src/manager/router.ts
|
|
98
|
-
import { serveStatic } from "@hono/node-server/serve-static";
|
|
99
98
|
import { createRoute } from "@hono/zod-openapi";
|
|
100
99
|
import * as cbor6 from "cbor-x";
|
|
101
100
|
import invariant5 from "invariant";
|
|
@@ -2546,14 +2545,14 @@ var DocRegistryConfigSchema = z7.object({
|
|
|
2546
2545
|
function logger() {
|
|
2547
2546
|
return getLogger("router");
|
|
2548
2547
|
}
|
|
2549
|
-
function loggerMiddleware(
|
|
2548
|
+
function loggerMiddleware(logger5) {
|
|
2550
2549
|
return async (c, next) => {
|
|
2551
2550
|
const method = c.req.method;
|
|
2552
2551
|
const path = c.req.path;
|
|
2553
2552
|
const startTime = Date.now();
|
|
2554
2553
|
await next();
|
|
2555
2554
|
const duration = Date.now() - startTime;
|
|
2556
|
-
|
|
2555
|
+
logger5.debug({
|
|
2557
2556
|
msg: "http request",
|
|
2558
2557
|
method,
|
|
2559
2558
|
path,
|
|
@@ -2849,6 +2848,156 @@ var ActorsKvGetResponseSchema = z9.object({
|
|
|
2849
2848
|
value: z9.string().nullable()
|
|
2850
2849
|
});
|
|
2851
2850
|
|
|
2851
|
+
// src/registry/log.ts
|
|
2852
|
+
function logger2() {
|
|
2853
|
+
return getLogger("registry");
|
|
2854
|
+
}
|
|
2855
|
+
|
|
2856
|
+
// src/utils/serve.ts
|
|
2857
|
+
import getPort from "get-port";
|
|
2858
|
+
var DEFAULT_PORT = 6420;
|
|
2859
|
+
var serveStaticLoaderPromises = {};
|
|
2860
|
+
async function findFreePort(startPort = DEFAULT_PORT) {
|
|
2861
|
+
function* portRange(start, count = 100) {
|
|
2862
|
+
for (let i = 0; i < count; i++) {
|
|
2863
|
+
yield start + i;
|
|
2864
|
+
}
|
|
2865
|
+
}
|
|
2866
|
+
return getPort({ port: portRange(startPort) });
|
|
2867
|
+
}
|
|
2868
|
+
async function crossPlatformServe(config8, managerPort, app, runtime = detectRuntime()) {
|
|
2869
|
+
logger2().debug({ msg: "detected runtime for serve", runtime });
|
|
2870
|
+
switch (runtime) {
|
|
2871
|
+
case "deno":
|
|
2872
|
+
return serveDeno(config8, managerPort, app);
|
|
2873
|
+
case "bun":
|
|
2874
|
+
return serveBun(config8, managerPort, app);
|
|
2875
|
+
case "node":
|
|
2876
|
+
return serveNode(config8, managerPort, app);
|
|
2877
|
+
default:
|
|
2878
|
+
return serveNode(config8, managerPort, app);
|
|
2879
|
+
}
|
|
2880
|
+
}
|
|
2881
|
+
async function loadRuntimeServeStatic(runtime) {
|
|
2882
|
+
if (!serveStaticLoaderPromises[runtime]) {
|
|
2883
|
+
if (runtime === "node") {
|
|
2884
|
+
const nodeServeStaticModule = "@hono/node-server/serve-static";
|
|
2885
|
+
serveStaticLoaderPromises[runtime] = import(
|
|
2886
|
+
/* webpackIgnore: true */
|
|
2887
|
+
nodeServeStaticModule
|
|
2888
|
+
).then((x) => x.serveStatic);
|
|
2889
|
+
} else if (runtime === "bun") {
|
|
2890
|
+
const bunModule = "hono/bun";
|
|
2891
|
+
serveStaticLoaderPromises[runtime] = import(
|
|
2892
|
+
/* webpackIgnore: true */
|
|
2893
|
+
bunModule
|
|
2894
|
+
).then((x) => x.serveStatic);
|
|
2895
|
+
} else if (runtime === "deno") {
|
|
2896
|
+
const denoModule = "hono/deno";
|
|
2897
|
+
serveStaticLoaderPromises[runtime] = import(
|
|
2898
|
+
/* webpackIgnore: true */
|
|
2899
|
+
denoModule
|
|
2900
|
+
).then((x) => x.serveStatic);
|
|
2901
|
+
} else {
|
|
2902
|
+
throw new Error(`unsupported runtime: ${runtime}`);
|
|
2903
|
+
}
|
|
2904
|
+
}
|
|
2905
|
+
return await serveStaticLoaderPromises[runtime];
|
|
2906
|
+
}
|
|
2907
|
+
async function serveNode(config8, managerPort, app) {
|
|
2908
|
+
const nodeServerModule = "@hono/node-server";
|
|
2909
|
+
let serve;
|
|
2910
|
+
try {
|
|
2911
|
+
const dep = await import(
|
|
2912
|
+
/* webpackIgnore: true */
|
|
2913
|
+
nodeServerModule
|
|
2914
|
+
);
|
|
2915
|
+
serve = dep.serve;
|
|
2916
|
+
} catch (err) {
|
|
2917
|
+
logger2().error({
|
|
2918
|
+
msg: "failed to import @hono/node-server. please run 'npm install @hono/node-server @hono/node-ws'",
|
|
2919
|
+
error: stringifyError(err)
|
|
2920
|
+
});
|
|
2921
|
+
process.exit(1);
|
|
2922
|
+
}
|
|
2923
|
+
const nodeWsModule = "@hono/node-ws";
|
|
2924
|
+
let createNodeWebSocket;
|
|
2925
|
+
try {
|
|
2926
|
+
const dep = await import(
|
|
2927
|
+
/* webpackIgnore: true */
|
|
2928
|
+
nodeWsModule
|
|
2929
|
+
);
|
|
2930
|
+
createNodeWebSocket = dep.createNodeWebSocket;
|
|
2931
|
+
} catch (err) {
|
|
2932
|
+
logger2().error({
|
|
2933
|
+
msg: "failed to import @hono/node-ws. please run 'npm install @hono/node-server @hono/node-ws'",
|
|
2934
|
+
error: stringifyError(err)
|
|
2935
|
+
});
|
|
2936
|
+
process.exit(1);
|
|
2937
|
+
}
|
|
2938
|
+
const { injectWebSocket, upgradeWebSocket } = createNodeWebSocket({
|
|
2939
|
+
app
|
|
2940
|
+
});
|
|
2941
|
+
const port = managerPort;
|
|
2942
|
+
const hostname = config8.managerHost;
|
|
2943
|
+
const server = serve(
|
|
2944
|
+
{ fetch: app.fetch, port, hostname },
|
|
2945
|
+
() => logger2().info({ msg: "server listening", port, hostname })
|
|
2946
|
+
);
|
|
2947
|
+
injectWebSocket(server);
|
|
2948
|
+
return { upgradeWebSocket };
|
|
2949
|
+
}
|
|
2950
|
+
async function serveDeno(config8, managerPort, app) {
|
|
2951
|
+
const honoDenoModule = "hono/deno";
|
|
2952
|
+
let upgradeWebSocket;
|
|
2953
|
+
try {
|
|
2954
|
+
const dep = await import(
|
|
2955
|
+
/* webpackIgnore: true */
|
|
2956
|
+
honoDenoModule
|
|
2957
|
+
);
|
|
2958
|
+
upgradeWebSocket = dep.upgradeWebSocket;
|
|
2959
|
+
} catch (err) {
|
|
2960
|
+
logger2().error({
|
|
2961
|
+
msg: "failed to import hono/deno",
|
|
2962
|
+
error: stringifyError(err)
|
|
2963
|
+
});
|
|
2964
|
+
process.exit(1);
|
|
2965
|
+
}
|
|
2966
|
+
const port = config8.managerPort;
|
|
2967
|
+
const hostname = config8.managerHost;
|
|
2968
|
+
Deno.serve({ port, hostname }, app.fetch);
|
|
2969
|
+
logger2().info({ msg: "server listening", port, hostname });
|
|
2970
|
+
return { upgradeWebSocket };
|
|
2971
|
+
}
|
|
2972
|
+
async function serveBun(config8, managerPort, app) {
|
|
2973
|
+
const honoBunModule = "hono/bun";
|
|
2974
|
+
let createBunWebSocket;
|
|
2975
|
+
try {
|
|
2976
|
+
const dep = await import(
|
|
2977
|
+
/* webpackIgnore: true */
|
|
2978
|
+
honoBunModule
|
|
2979
|
+
);
|
|
2980
|
+
createBunWebSocket = dep.createBunWebSocket;
|
|
2981
|
+
} catch (err) {
|
|
2982
|
+
logger2().error({
|
|
2983
|
+
msg: "failed to import hono/bun",
|
|
2984
|
+
error: stringifyError(err)
|
|
2985
|
+
});
|
|
2986
|
+
process.exit(1);
|
|
2987
|
+
}
|
|
2988
|
+
const { websocket, upgradeWebSocket } = createBunWebSocket();
|
|
2989
|
+
const port = config8.managerPort;
|
|
2990
|
+
const hostname = config8.managerHost;
|
|
2991
|
+
Bun.serve({
|
|
2992
|
+
fetch: app.fetch,
|
|
2993
|
+
port,
|
|
2994
|
+
hostname,
|
|
2995
|
+
websocket
|
|
2996
|
+
});
|
|
2997
|
+
logger2().info({ msg: "server listening", port, hostname });
|
|
2998
|
+
return { upgradeWebSocket };
|
|
2999
|
+
}
|
|
3000
|
+
|
|
2852
3001
|
// src/utils/crypto.ts
|
|
2853
3002
|
function timingSafeEqual(a, b) {
|
|
2854
3003
|
const encoder = new TextEncoder();
|
|
@@ -2901,12 +3050,12 @@ var cors = () => {
|
|
|
2901
3050
|
};
|
|
2902
3051
|
|
|
2903
3052
|
// src/utils/router.ts
|
|
2904
|
-
function
|
|
3053
|
+
function logger3() {
|
|
2905
3054
|
return getLogger("router");
|
|
2906
3055
|
}
|
|
2907
3056
|
function createRouter(basePath, builder) {
|
|
2908
3057
|
const router = new OpenAPIHono({ strict: false }).basePath(basePath);
|
|
2909
|
-
router.use("*", loggerMiddleware(
|
|
3058
|
+
router.use("*", loggerMiddleware(logger3()), cors());
|
|
2910
3059
|
router.use(
|
|
2911
3060
|
"*",
|
|
2912
3061
|
createMiddleware(async (c, next) => {
|
|
@@ -4116,7 +4265,7 @@ function truncateRawWebSocketPathPrefix(path) {
|
|
|
4116
4265
|
}
|
|
4117
4266
|
|
|
4118
4267
|
// src/manager/log.ts
|
|
4119
|
-
function
|
|
4268
|
+
function logger4() {
|
|
4120
4269
|
return getLogger("actor-manager");
|
|
4121
4270
|
}
|
|
4122
4271
|
|
|
@@ -4129,7 +4278,7 @@ async function handleWebSocketGatewayPathBased(config8, managerDriver, c, actorP
|
|
|
4129
4278
|
const { encoding, connParams } = parseWebSocketProtocols(
|
|
4130
4279
|
c.req.header("sec-websocket-protocol")
|
|
4131
4280
|
);
|
|
4132
|
-
|
|
4281
|
+
logger4().debug({
|
|
4133
4282
|
msg: "proxying websocket to actor via path-based routing",
|
|
4134
4283
|
actorId: actorPathInfo.actorId,
|
|
4135
4284
|
path: actorPathInfo.remainingPath,
|
|
@@ -4145,7 +4294,7 @@ async function handleWebSocketGatewayPathBased(config8, managerDriver, c, actorP
|
|
|
4145
4294
|
);
|
|
4146
4295
|
}
|
|
4147
4296
|
async function handleHttpGatewayPathBased(managerDriver, c, actorPathInfo) {
|
|
4148
|
-
|
|
4297
|
+
logger4().debug({
|
|
4149
4298
|
msg: "proxying request to actor via path-based routing",
|
|
4150
4299
|
actorId: actorPathInfo.actorId,
|
|
4151
4300
|
path: actorPathInfo.remainingPath,
|
|
@@ -4180,7 +4329,7 @@ async function actorGateway(config8, managerDriver, getUpgradeWebSocket, c, next
|
|
|
4180
4329
|
const pathWithQuery = c.req.url.includes("?") ? strippedPath + c.req.url.substring(c.req.url.indexOf("?")) : strippedPath;
|
|
4181
4330
|
const actorPathInfo = parseActorPath(pathWithQuery);
|
|
4182
4331
|
if (actorPathInfo) {
|
|
4183
|
-
|
|
4332
|
+
logger4().debug({
|
|
4184
4333
|
msg: "routing using path-based actor routing",
|
|
4185
4334
|
actorPathInfo
|
|
4186
4335
|
});
|
|
@@ -4227,7 +4376,7 @@ async function handleWebSocketGateway(config8, managerDriver, getUpgradeWebSocke
|
|
|
4227
4376
|
if (!actorId) {
|
|
4228
4377
|
throw new MissingActorHeader();
|
|
4229
4378
|
}
|
|
4230
|
-
|
|
4379
|
+
logger4().debug({
|
|
4231
4380
|
msg: "proxying websocket to actor",
|
|
4232
4381
|
actorId,
|
|
4233
4382
|
path: strippedPath,
|
|
@@ -4251,7 +4400,7 @@ async function handleHttpGateway(managerDriver, c, next, strippedPath) {
|
|
|
4251
4400
|
if (!actorId) {
|
|
4252
4401
|
throw new MissingActorHeader();
|
|
4253
4402
|
}
|
|
4254
|
-
|
|
4403
|
+
logger4().debug({
|
|
4255
4404
|
msg: "proxying request to actor",
|
|
4256
4405
|
actorId,
|
|
4257
4406
|
path: strippedPath,
|
|
@@ -4353,24 +4502,24 @@ async function createTestWebSocketProxy(proxyToActorWsPromise) {
|
|
|
4353
4502
|
promise: clientToProxyWsPromise,
|
|
4354
4503
|
resolve: clientToProxyWsResolve,
|
|
4355
4504
|
reject: clientToProxyWsReject
|
|
4356
|
-
} = promiseWithResolvers((reason) =>
|
|
4505
|
+
} = promiseWithResolvers((reason) => logger4().warn({ msg: "unhandled client websocket promise rejection", reason }));
|
|
4357
4506
|
try {
|
|
4358
|
-
|
|
4507
|
+
logger4().debug({ msg: "awaiting client websocket promise" });
|
|
4359
4508
|
proxyToActorWs = await proxyToActorWsPromise;
|
|
4360
|
-
|
|
4509
|
+
logger4().debug({
|
|
4361
4510
|
msg: "client websocket promise resolved",
|
|
4362
4511
|
constructor: proxyToActorWs == null ? void 0 : proxyToActorWs.constructor.name
|
|
4363
4512
|
});
|
|
4364
4513
|
await new Promise((resolve, reject) => {
|
|
4365
4514
|
invariant4(proxyToActorWs, "missing proxyToActorWs");
|
|
4366
4515
|
const onOpen = () => {
|
|
4367
|
-
|
|
4516
|
+
logger4().debug({
|
|
4368
4517
|
msg: "test websocket connection to actor opened"
|
|
4369
4518
|
});
|
|
4370
4519
|
resolve();
|
|
4371
4520
|
};
|
|
4372
4521
|
const onError = (error) => {
|
|
4373
|
-
|
|
4522
|
+
logger4().error({
|
|
4374
4523
|
msg: "test websocket connection failed",
|
|
4375
4524
|
error
|
|
4376
4525
|
});
|
|
@@ -4388,7 +4537,7 @@ async function createTestWebSocketProxy(proxyToActorWsPromise) {
|
|
|
4388
4537
|
async (clientEvt) => {
|
|
4389
4538
|
var _a, _b;
|
|
4390
4539
|
const clientToProxyWs = await clientToProxyWsPromise;
|
|
4391
|
-
|
|
4540
|
+
logger4().debug({
|
|
4392
4541
|
msg: `test websocket connection message from client`,
|
|
4393
4542
|
dataType: typeof clientEvt.data,
|
|
4394
4543
|
isBlob: clientEvt.data instanceof Blob,
|
|
@@ -4399,19 +4548,19 @@ async function createTestWebSocketProxy(proxyToActorWsPromise) {
|
|
|
4399
4548
|
if (clientToProxyWs.readyState === 1) {
|
|
4400
4549
|
if (clientEvt.data instanceof Blob) {
|
|
4401
4550
|
clientEvt.data.arrayBuffer().then((buffer) => {
|
|
4402
|
-
|
|
4551
|
+
logger4().debug({
|
|
4403
4552
|
msg: "converted client blob to arraybuffer, sending to server",
|
|
4404
4553
|
bufferSize: buffer.byteLength
|
|
4405
4554
|
});
|
|
4406
4555
|
clientToProxyWs.send(buffer);
|
|
4407
4556
|
}).catch((error) => {
|
|
4408
|
-
|
|
4557
|
+
logger4().error({
|
|
4409
4558
|
msg: "failed to convert blob to arraybuffer",
|
|
4410
4559
|
error
|
|
4411
4560
|
});
|
|
4412
4561
|
});
|
|
4413
4562
|
} else {
|
|
4414
|
-
|
|
4563
|
+
logger4().debug({
|
|
4415
4564
|
msg: "sending client data directly to server",
|
|
4416
4565
|
dataType: typeof clientEvt.data,
|
|
4417
4566
|
dataLength: typeof clientEvt.data === "string" ? clientEvt.data.length : void 0
|
|
@@ -4423,7 +4572,7 @@ async function createTestWebSocketProxy(proxyToActorWsPromise) {
|
|
|
4423
4572
|
);
|
|
4424
4573
|
proxyToActorWs.addEventListener("close", async (clientEvt) => {
|
|
4425
4574
|
const clientToProxyWs = await clientToProxyWsPromise;
|
|
4426
|
-
|
|
4575
|
+
logger4().debug({
|
|
4427
4576
|
msg: `test websocket connection closed`
|
|
4428
4577
|
});
|
|
4429
4578
|
if (clientToProxyWs.readyState !== 3) {
|
|
@@ -4432,7 +4581,7 @@ async function createTestWebSocketProxy(proxyToActorWsPromise) {
|
|
|
4432
4581
|
});
|
|
4433
4582
|
proxyToActorWs.addEventListener("error", async () => {
|
|
4434
4583
|
const clientToProxyWs = await clientToProxyWsPromise;
|
|
4435
|
-
|
|
4584
|
+
logger4().debug({
|
|
4436
4585
|
msg: `test websocket connection error`
|
|
4437
4586
|
});
|
|
4438
4587
|
if (clientToProxyWs.readyState !== 3) {
|
|
@@ -4441,7 +4590,7 @@ async function createTestWebSocketProxy(proxyToActorWsPromise) {
|
|
|
4441
4590
|
});
|
|
4442
4591
|
});
|
|
4443
4592
|
} catch (error) {
|
|
4444
|
-
|
|
4593
|
+
logger4().error({
|
|
4445
4594
|
msg: `failed to establish client websocket connection`,
|
|
4446
4595
|
error
|
|
4447
4596
|
});
|
|
@@ -4459,10 +4608,10 @@ async function createTestWebSocketProxy(proxyToActorWsPromise) {
|
|
|
4459
4608
|
}
|
|
4460
4609
|
return {
|
|
4461
4610
|
onOpen: (_evt, clientToProxyWs) => {
|
|
4462
|
-
|
|
4611
|
+
logger4().debug({
|
|
4463
4612
|
msg: `test websocket connection from client opened`
|
|
4464
4613
|
});
|
|
4465
|
-
|
|
4614
|
+
logger4().debug({
|
|
4466
4615
|
msg: "proxyToActorWs info",
|
|
4467
4616
|
constructor: proxyToActorWs.constructor.name,
|
|
4468
4617
|
hasAddEventListener: typeof proxyToActorWs.addEventListener === "function",
|
|
@@ -4472,7 +4621,7 @@ async function createTestWebSocketProxy(proxyToActorWsPromise) {
|
|
|
4472
4621
|
},
|
|
4473
4622
|
onMessage: (evt) => {
|
|
4474
4623
|
var _a, _b;
|
|
4475
|
-
|
|
4624
|
+
logger4().debug({
|
|
4476
4625
|
msg: "received message from server",
|
|
4477
4626
|
dataType: typeof evt.data,
|
|
4478
4627
|
isBlob: evt.data instanceof Blob,
|
|
@@ -4483,19 +4632,19 @@ async function createTestWebSocketProxy(proxyToActorWsPromise) {
|
|
|
4483
4632
|
if (proxyToActorWs.readyState === 1) {
|
|
4484
4633
|
if (evt.data instanceof Blob) {
|
|
4485
4634
|
evt.data.arrayBuffer().then((buffer) => {
|
|
4486
|
-
|
|
4635
|
+
logger4().debug({
|
|
4487
4636
|
msg: "converted blob to arraybuffer, sending",
|
|
4488
4637
|
bufferSize: buffer.byteLength
|
|
4489
4638
|
});
|
|
4490
4639
|
proxyToActorWs.send(buffer);
|
|
4491
4640
|
}).catch((error) => {
|
|
4492
|
-
|
|
4641
|
+
logger4().error({
|
|
4493
4642
|
msg: "failed to convert blob to arraybuffer",
|
|
4494
4643
|
error
|
|
4495
4644
|
});
|
|
4496
4645
|
});
|
|
4497
4646
|
} else {
|
|
4498
|
-
|
|
4647
|
+
logger4().debug({
|
|
4499
4648
|
msg: "sending data directly",
|
|
4500
4649
|
dataType: typeof evt.data,
|
|
4501
4650
|
dataLength: typeof evt.data === "string" ? evt.data.length : void 0
|
|
@@ -4505,7 +4654,7 @@ async function createTestWebSocketProxy(proxyToActorWsPromise) {
|
|
|
4505
4654
|
}
|
|
4506
4655
|
},
|
|
4507
4656
|
onClose: (event, clientToProxyWs) => {
|
|
4508
|
-
|
|
4657
|
+
logger4().debug({
|
|
4509
4658
|
msg: `server websocket closed`,
|
|
4510
4659
|
wasClean: event.wasClean,
|
|
4511
4660
|
code: event.code,
|
|
@@ -4517,7 +4666,7 @@ async function createTestWebSocketProxy(proxyToActorWsPromise) {
|
|
|
4517
4666
|
}
|
|
4518
4667
|
},
|
|
4519
4668
|
onError: (error) => {
|
|
4520
|
-
|
|
4669
|
+
logger4().error({
|
|
4521
4670
|
msg: `error in server websocket`,
|
|
4522
4671
|
error
|
|
4523
4672
|
});
|
|
@@ -4530,7 +4679,7 @@ async function createTestWebSocketProxy(proxyToActorWsPromise) {
|
|
|
4530
4679
|
}
|
|
4531
4680
|
|
|
4532
4681
|
// src/manager/router.ts
|
|
4533
|
-
function buildManagerRouter(config8, managerDriver, getUpgradeWebSocket) {
|
|
4682
|
+
function buildManagerRouter(config8, managerDriver, getUpgradeWebSocket, runtime = "node") {
|
|
4534
4683
|
return createRouter(config8.managerBasePath, (router) => {
|
|
4535
4684
|
var _a;
|
|
4536
4685
|
router.use(
|
|
@@ -4743,12 +4892,12 @@ function buildManagerRouter(config8, managerDriver, getUpgradeWebSocket) {
|
|
|
4743
4892
|
responses: buildOpenApiResponses(ActorsKvGetResponseSchema)
|
|
4744
4893
|
});
|
|
4745
4894
|
router.openapi(route, async (c) => {
|
|
4746
|
-
if (
|
|
4747
|
-
|
|
4895
|
+
if (isDev() && !config8.token) {
|
|
4896
|
+
logger4().warn({
|
|
4748
4897
|
msg: "RIVET_TOKEN is not set, skipping KV store access checks in development mode. This endpoint will be disabled in production, unless you set the token."
|
|
4749
4898
|
});
|
|
4750
4899
|
}
|
|
4751
|
-
if (
|
|
4900
|
+
if (!isDev()) {
|
|
4752
4901
|
if (!config8.token) {
|
|
4753
4902
|
throw new RestrictedFeature("KV store access");
|
|
4754
4903
|
}
|
|
@@ -4773,7 +4922,7 @@ function buildManagerRouter(config8, managerDriver, getUpgradeWebSocket) {
|
|
|
4773
4922
|
router.post(".test/inline-driver/call", async (c) => {
|
|
4774
4923
|
const buffer = await c.req.arrayBuffer();
|
|
4775
4924
|
const { encoding, method, args } = cbor6.decode(new Uint8Array(buffer));
|
|
4776
|
-
|
|
4925
|
+
logger4().debug({
|
|
4777
4926
|
msg: "received inline request",
|
|
4778
4927
|
encoding,
|
|
4779
4928
|
method,
|
|
@@ -4784,7 +4933,7 @@ function buildManagerRouter(config8, managerDriver, getUpgradeWebSocket) {
|
|
|
4784
4933
|
const output = await managerDriver[method](...args);
|
|
4785
4934
|
response = { ok: output };
|
|
4786
4935
|
} catch (rawErr) {
|
|
4787
|
-
const err = deconstructError(rawErr,
|
|
4936
|
+
const err = deconstructError(rawErr, logger4(), {}, true);
|
|
4788
4937
|
response = { err };
|
|
4789
4938
|
}
|
|
4790
4939
|
return c.body(cbor6.encode(response));
|
|
@@ -4826,7 +4975,7 @@ function buildManagerRouter(config8, managerDriver, getUpgradeWebSocket) {
|
|
|
4826
4975
|
params = JSON.parse(paramsRaw);
|
|
4827
4976
|
}
|
|
4828
4977
|
}
|
|
4829
|
-
|
|
4978
|
+
logger4().debug({
|
|
4830
4979
|
msg: "received test inline driver websocket",
|
|
4831
4980
|
actorId,
|
|
4832
4981
|
params,
|
|
@@ -4852,7 +5001,7 @@ function buildManagerRouter(config8, managerDriver, getUpgradeWebSocket) {
|
|
|
4852
5001
|
const pathOnly = c.req.path.split("/.test/inline-driver/send-request/")[1] || "";
|
|
4853
5002
|
const url = new URL(c.req.url);
|
|
4854
5003
|
const pathWithQuery = pathOnly + url.search;
|
|
4855
|
-
|
|
5004
|
+
logger4().debug({
|
|
4856
5005
|
msg: "received test inline driver raw http",
|
|
4857
5006
|
actorId,
|
|
4858
5007
|
path: pathWithQuery,
|
|
@@ -4870,11 +5019,11 @@ function buildManagerRouter(config8, managerDriver, getUpgradeWebSocket) {
|
|
|
4870
5019
|
);
|
|
4871
5020
|
return response;
|
|
4872
5021
|
} catch (error) {
|
|
4873
|
-
|
|
5022
|
+
logger4().error({
|
|
4874
5023
|
msg: "error in test inline raw http",
|
|
4875
5024
|
error: stringifyError(error)
|
|
4876
5025
|
});
|
|
4877
|
-
const err = deconstructError(error,
|
|
5026
|
+
const err = deconstructError(error, logger4(), {}, true);
|
|
4878
5027
|
return c.json(
|
|
4879
5028
|
{
|
|
4880
5029
|
error: {
|
|
@@ -4896,7 +5045,7 @@ function buildManagerRouter(config8, managerDriver, getUpgradeWebSocket) {
|
|
|
4896
5045
|
400
|
|
4897
5046
|
);
|
|
4898
5047
|
}
|
|
4899
|
-
|
|
5048
|
+
logger4().debug({
|
|
4900
5049
|
msg: "forcing unclean disconnect",
|
|
4901
5050
|
actorId,
|
|
4902
5051
|
connId
|
|
@@ -4920,7 +5069,7 @@ function buildManagerRouter(config8, managerDriver, getUpgradeWebSocket) {
|
|
|
4920
5069
|
}
|
|
4921
5070
|
return c.json({ success: true });
|
|
4922
5071
|
} catch (error) {
|
|
4923
|
-
|
|
5072
|
+
logger4().error({
|
|
4924
5073
|
msg: "error forcing disconnect",
|
|
4925
5074
|
error: stringifyError(error)
|
|
4926
5075
|
});
|
|
@@ -4931,6 +5080,19 @@ function buildManagerRouter(config8, managerDriver, getUpgradeWebSocket) {
|
|
|
4931
5080
|
if (config8.inspector.enabled) {
|
|
4932
5081
|
let inspectorRoot;
|
|
4933
5082
|
router.get("/ui/*", async (c, next) => {
|
|
5083
|
+
let serveStatic;
|
|
5084
|
+
try {
|
|
5085
|
+
serveStatic = await loadRuntimeServeStatic(runtime);
|
|
5086
|
+
} catch (error) {
|
|
5087
|
+
logger4().error({
|
|
5088
|
+
msg: "failed to load inspector static file handler",
|
|
5089
|
+
error: stringifyError(error)
|
|
5090
|
+
});
|
|
5091
|
+
return c.text(
|
|
5092
|
+
`Failed to load static file handler for runtime '${runtime}'.`,
|
|
5093
|
+
500
|
|
5094
|
+
);
|
|
5095
|
+
}
|
|
4934
5096
|
if (!inspectorRoot) {
|
|
4935
5097
|
inspectorRoot = await getInspectorDir();
|
|
4936
5098
|
}
|
|
@@ -6116,9 +6278,12 @@ export {
|
|
|
6116
6278
|
getNodeOs,
|
|
6117
6279
|
getNodeChildProcess,
|
|
6118
6280
|
getNodeStream,
|
|
6281
|
+
logger2 as logger,
|
|
6282
|
+
findFreePort,
|
|
6283
|
+
crossPlatformServe,
|
|
6119
6284
|
createRouter,
|
|
6120
6285
|
buildManagerRouter,
|
|
6121
6286
|
getInitialActorKvState,
|
|
6122
6287
|
importSqliteVfs
|
|
6123
6288
|
};
|
|
6124
|
-
//# sourceMappingURL=chunk-
|
|
6289
|
+
//# sourceMappingURL=chunk-MIX2KB6U.js.map
|