rivetkit 2.3.0-rc.8 → 2.3.0
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 +481 -74
- package/dist/browser/client.js +174 -148
- package/dist/browser/client.js.map +1 -1
- package/dist/browser/inspector/client.js +47 -18
- package/dist/browser/inspector/client.js.map +1 -1
- package/dist/tsup/actor/errors.cjs +2 -2
- package/dist/tsup/actor/errors.d.cts +1 -1
- package/dist/tsup/actor/errors.d.ts +1 -1
- package/dist/tsup/actor/errors.js +1 -1
- package/dist/tsup/agent-os/index.cjs +2160 -2086
- package/dist/tsup/agent-os/index.cjs.map +1 -1
- package/dist/tsup/agent-os/index.d.cts +479 -73
- package/dist/tsup/agent-os/index.d.ts +479 -73
- package/dist/tsup/agent-os/index.js +2160 -2086
- package/dist/tsup/agent-os/index.js.map +1 -1
- package/dist/tsup/{chunk-KY3CERZR.js → chunk-2OTRTA3J.js} +7 -21
- package/dist/tsup/chunk-2OTRTA3J.js.map +1 -0
- package/dist/tsup/{chunk-HGW6PBWR.cjs → chunk-3677IIOV.cjs} +11 -25
- package/dist/tsup/chunk-3677IIOV.cjs.map +1 -0
- package/dist/tsup/{chunk-OT7FF6GB.cjs → chunk-47HHIEXH.cjs} +24 -9
- package/dist/tsup/chunk-47HHIEXH.cjs.map +1 -0
- package/dist/tsup/{chunk-EMFKMVJR.js → chunk-4JDSFJS5.js} +69 -58
- package/dist/tsup/chunk-4JDSFJS5.js.map +1 -0
- package/dist/tsup/{chunk-7HLFSAJP.cjs → chunk-7QKCIVAY.cjs} +225 -214
- package/dist/tsup/chunk-7QKCIVAY.cjs.map +1 -0
- package/dist/tsup/{chunk-AWTPTUQ7.cjs → chunk-B6VUNZUD.cjs} +10 -10
- package/dist/tsup/{chunk-AWTPTUQ7.cjs.map → chunk-B6VUNZUD.cjs.map} +1 -1
- package/dist/tsup/{chunk-D3T3ZBSY.js → chunk-BEI24WTI.js} +2 -2
- package/dist/tsup/{chunk-TMLOKTRB.js → chunk-BRP62GZC.js} +1 -1
- package/dist/tsup/chunk-BRP62GZC.js.map +1 -0
- package/dist/tsup/{chunk-D5G75T7J.js → chunk-DPIMKYNB.js} +61 -2
- package/dist/tsup/chunk-DPIMKYNB.js.map +1 -0
- package/dist/tsup/{chunk-BATTOVHF.cjs → chunk-DXXJPH55.cjs} +40 -13
- package/dist/tsup/chunk-DXXJPH55.cjs.map +1 -0
- package/dist/tsup/{chunk-3YY5S6TV.js → chunk-HXUEHHJF.js} +2 -2
- package/dist/tsup/chunk-HXUEHHJF.js.map +1 -0
- package/dist/tsup/{chunk-4BPKKZJO.cjs → chunk-I4LN3FNT.cjs} +10 -10
- package/dist/tsup/chunk-I4LN3FNT.cjs.map +1 -0
- package/dist/tsup/{chunk-PCBNKI2J.js → chunk-JZ7TWV65.js} +1 -1
- package/dist/tsup/chunk-JZ7TWV65.js.map +1 -0
- package/dist/tsup/{chunk-63WNTDRC.cjs → chunk-KORQB2IR.cjs} +1 -1
- package/dist/tsup/{chunk-63WNTDRC.cjs.map → chunk-KORQB2IR.cjs.map} +1 -1
- package/dist/tsup/{chunk-6TQSSJ4F.cjs → chunk-LVTBW2RE.cjs} +3 -3
- package/dist/tsup/{chunk-6TQSSJ4F.cjs.map → chunk-LVTBW2RE.cjs.map} +1 -1
- package/dist/tsup/{chunk-4JU3IPG2.js → chunk-MEHBWPLJ.js} +6 -6
- package/dist/tsup/chunk-MEHBWPLJ.js.map +1 -0
- package/dist/tsup/{chunk-SRNOPUC6.cjs → chunk-NIY3RSPX.cjs} +62 -3
- package/dist/tsup/chunk-NIY3RSPX.cjs.map +1 -0
- package/dist/tsup/{chunk-UZXQEGVJ.js → chunk-P2GNQ4RN.js} +4 -4
- package/dist/tsup/{chunk-UZXQEGVJ.js.map → chunk-P2GNQ4RN.js.map} +1 -1
- package/dist/tsup/{chunk-VUGENVIK.js → chunk-UMZVD6DQ.js} +22 -7
- package/dist/tsup/chunk-UMZVD6DQ.js.map +1 -0
- package/dist/tsup/{chunk-LD5YASJU.cjs → chunk-VE2X4KMG.cjs} +2 -2
- package/dist/tsup/{chunk-LD5YASJU.cjs.map → chunk-VE2X4KMG.cjs.map} +1 -1
- package/dist/tsup/{chunk-GBG63SUG.js → chunk-VTTFNQQI.js} +32 -5
- package/dist/tsup/chunk-VTTFNQQI.js.map +1 -0
- package/dist/tsup/{chunk-2NDZ7JCR.cjs → chunk-ZA7FLHKH.cjs} +1 -1
- package/dist/tsup/chunk-ZA7FLHKH.cjs.map +1 -0
- package/dist/tsup/client/mod.cjs +9 -9
- package/dist/tsup/client/mod.d.cts +5 -5
- package/dist/tsup/client/mod.d.ts +5 -5
- 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/{config-Ak1lv4gF.d.ts → config-BxWAw3iH.d.ts} +512 -27
- package/dist/tsup/{config-DU_xj4qZ.d.cts → config-CZQQ-mso.d.cts} +512 -27
- package/dist/tsup/{config-CxjGYf4K.d.ts → config-D49x8NpL.d.cts} +1 -2
- package/dist/tsup/{config-CxjGYf4K.d.cts → config-D49x8NpL.d.ts} +1 -2
- package/dist/tsup/{context-DAAp4Lpg.d.ts → context-Bw7xq8w3.d.cts} +8 -8
- package/dist/tsup/{context-Dt_L55q8.d.cts → context-D8QA76sV.d.ts} +8 -8
- package/dist/tsup/db/drizzle.cjs +3 -3
- package/dist/tsup/db/drizzle.d.cts +1 -1
- package/dist/tsup/db/drizzle.d.ts +1 -1
- package/dist/tsup/db/drizzle.js +1 -1
- package/dist/tsup/db/mod.cjs +2 -2
- package/dist/tsup/db/mod.d.cts +2 -2
- package/dist/tsup/db/mod.d.ts +2 -2
- package/dist/tsup/db/mod.js +1 -1
- package/dist/tsup/dynamic/mod.cjs +24 -0
- package/dist/tsup/dynamic/mod.cjs.map +1 -0
- package/dist/tsup/dynamic/mod.d.cts +37 -0
- package/dist/tsup/dynamic/mod.d.ts +37 -0
- package/dist/tsup/dynamic/mod.js +24 -0
- package/dist/tsup/dynamic/mod.js.map +1 -0
- package/dist/tsup/inspector/mod.cjs +6 -6
- package/dist/tsup/inspector/mod.js +5 -5
- package/dist/tsup/inspector-tab/mod.cjs +173 -0
- package/dist/tsup/inspector-tab/mod.cjs.map +1 -0
- package/dist/tsup/inspector-tab/mod.d.cts +250 -0
- package/dist/tsup/inspector-tab/mod.d.ts +250 -0
- package/dist/tsup/inspector-tab/mod.js +173 -0
- package/dist/tsup/inspector-tab/mod.js.map +1 -0
- package/dist/tsup/mod.cjs +615 -348
- package/dist/tsup/mod.cjs.map +1 -1
- package/dist/tsup/mod.d.cts +5 -5
- package/dist/tsup/mod.d.ts +5 -5
- package/dist/tsup/mod.js +511 -244
- package/dist/tsup/mod.js.map +1 -1
- package/dist/tsup/test/mod.cjs +21 -18
- package/dist/tsup/test/mod.cjs.map +1 -1
- package/dist/tsup/test/mod.d.cts +4 -4
- package/dist/tsup/test/mod.d.ts +4 -4
- package/dist/tsup/test/mod.js +18 -15
- package/dist/tsup/test/mod.js.map +1 -1
- package/dist/tsup/{utils-DVekpm4I.d.cts → utils-DQosb24I.d.cts} +1 -1
- package/dist/tsup/{utils-DVekpm4I.d.ts → utils-DQosb24I.d.ts} +1 -1
- package/dist/tsup/utils.cjs +3 -3
- package/dist/tsup/utils.d.cts +1 -1
- package/dist/tsup/utils.d.ts +1 -1
- package/dist/tsup/utils.js +2 -2
- package/dist/tsup/workflow/mod.cjs +279 -279
- package/dist/tsup/workflow/mod.cjs.map +1 -1
- package/dist/tsup/workflow/mod.d.cts +6 -6
- package/dist/tsup/workflow/mod.d.ts +6 -6
- package/dist/tsup/workflow/mod.js +380 -380
- package/dist/tsup/workflow/mod.js.map +1 -1
- package/package.json +29 -9
- package/src/actor/config.ts +156 -51
- package/src/actor/contexts/index.ts +7 -2
- package/src/actor/definition.ts +17 -19
- package/src/actor/driver.ts +3 -3
- package/src/actor/errors.ts +8 -2
- package/src/actor/instance/mod.ts +26 -34
- package/src/actor/keys.ts +1 -1
- package/src/actor/mod.ts +22 -20
- package/src/actor/schema.ts +2 -2
- package/src/agent-os/actor/index.ts +38 -18
- package/src/agent-os/actor/preview.ts +1 -2
- package/src/agent-os/config.ts +1 -1
- package/src/agent-os/fs/database-vfs.ts +1 -1
- package/src/agent-os/index.ts +16 -15
- package/src/client/actor-common.ts +87 -54
- package/src/client/actor-conn.ts +11 -11
- package/src/client/actor-handle.ts +69 -52
- package/src/client/actor-query.ts +5 -5
- package/src/client/errors.ts +1 -1
- package/src/client/lifecycle-errors.ts +2 -4
- package/src/client/query.ts +1 -1
- package/src/client/queue.ts +8 -4
- package/src/client/raw-utils.ts +8 -6
- package/src/client/resolve-gateway-target.ts +1 -1
- package/src/client/utils.ts +2 -6
- package/src/common/actor-websocket.ts +3 -1
- package/src/common/bare/actor-persist/v1.ts +205 -163
- package/src/common/bare/actor-persist/v2.ts +265 -213
- package/src/common/bare/actor-persist/v3.ts +176 -172
- package/src/common/bare/actor-persist/v4.ts +254 -253
- package/src/common/bare/transport/v1.ts +659 -543
- package/src/common/client-protocol-versioned.ts +66 -64
- package/src/common/database/config.ts +2 -8
- package/src/common/database/native-database.ts +1 -1
- package/src/common/database/shared.ts +1 -0
- package/src/common/encoding.ts +13 -17
- package/src/common/engine.ts +28 -1
- package/src/common/eventsource.ts +1 -1
- package/src/common/inline-websocket-adapter.ts +3 -2
- package/src/common/router.ts +13 -17
- package/src/common/utils.ts +1 -2
- package/src/common/websocket-interface.ts +1 -1
- package/src/db/mod.ts +1 -1
- package/src/devtools-loader/index.ts +4 -7
- package/src/devtools-loader/serve-devtools.ts +26 -0
- package/src/drivers/engine/actor-driver.ts +48 -46
- package/src/dynamic/instance.ts +32 -0
- package/src/dynamic/internal.ts +50 -0
- package/src/dynamic/isolate-runtime.ts +66 -0
- package/src/dynamic/mod.ts +32 -0
- package/src/engine-client/actor-http-client.ts +3 -3
- package/src/engine-client/actor-websocket-client.ts +5 -5
- package/src/engine-client/api-endpoints.ts +51 -2
- package/src/engine-client/api-utils.ts +2 -2
- package/src/engine-client/driver.ts +1 -1
- package/src/engine-client/mod.ts +5 -3
- package/src/engine-client/ws-proxy.ts +9 -4
- package/src/inspector/client.browser.ts +5 -11
- package/src/inspector/mod.ts +1 -3
- package/src/inspector-tab/mod.ts +315 -0
- package/src/registry/config/envoy.ts +1 -2
- package/src/registry/config/index.ts +40 -16
- package/src/registry/index.ts +226 -83
- package/src/registry/napi-runtime.ts +46 -12
- package/src/registry/native-validation.ts +10 -12
- package/src/registry/native.ts +307 -164
- package/src/registry/process-metrics.ts +90 -23
- package/src/registry/runtime.ts +53 -6
- package/src/registry/wasm-runtime.ts +30 -3
- package/src/serde.ts +1 -1
- package/src/serverless/configure.ts +18 -7
- package/src/test/mod.ts +11 -8
- package/src/utils/endpoint-parser.ts +1 -1
- package/src/utils/env-vars.ts +6 -0
- package/src/utils/router.ts +1 -1
- package/src/utils/serve.ts +4 -5
- package/src/utils.ts +1 -2
- package/src/workflow/context.ts +30 -29
- package/src/workflow/driver.ts +4 -6
- package/src/workflow/inspector.ts +2 -2
- package/src/workflow/mod.ts +15 -17
- package/dist/tsup/chunk-2NDZ7JCR.cjs.map +0 -1
- package/dist/tsup/chunk-3YY5S6TV.js.map +0 -1
- package/dist/tsup/chunk-4BPKKZJO.cjs.map +0 -1
- package/dist/tsup/chunk-4JU3IPG2.js.map +0 -1
- package/dist/tsup/chunk-7HLFSAJP.cjs.map +0 -1
- package/dist/tsup/chunk-BATTOVHF.cjs.map +0 -1
- package/dist/tsup/chunk-D5G75T7J.js.map +0 -1
- package/dist/tsup/chunk-EMFKMVJR.js.map +0 -1
- package/dist/tsup/chunk-GBG63SUG.js.map +0 -1
- package/dist/tsup/chunk-HGW6PBWR.cjs.map +0 -1
- package/dist/tsup/chunk-KY3CERZR.js.map +0 -1
- package/dist/tsup/chunk-OT7FF6GB.cjs.map +0 -1
- package/dist/tsup/chunk-PCBNKI2J.js.map +0 -1
- package/dist/tsup/chunk-SRNOPUC6.cjs.map +0 -1
- package/dist/tsup/chunk-TMLOKTRB.js.map +0 -1
- package/dist/tsup/chunk-VUGENVIK.js.map +0 -1
- package/dist/tsup/process-metrics-NW754INA.js +0 -118
- package/dist/tsup/process-metrics-NW754INA.js.map +0 -1
- package/dist/tsup/process-metrics-TYAGKCEJ.cjs +0 -118
- package/dist/tsup/process-metrics-TYAGKCEJ.cjs.map +0 -1
- /package/dist/tsup/{chunk-D3T3ZBSY.js.map → chunk-BEI24WTI.js.map} +0 -0
package/dist/browser/client.js
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
// src/common/log.ts
|
|
2
|
+
import {
|
|
3
|
+
pino,
|
|
4
|
+
stdTimeFunctions
|
|
5
|
+
} from "pino";
|
|
6
|
+
import { z } from "zod/v4";
|
|
7
|
+
|
|
1
8
|
// src/actor/errors.ts
|
|
2
9
|
var INTERNAL_ERROR_CODE = "internal_error";
|
|
3
10
|
var INTERNAL_ERROR_DESCRIPTION = "An internal error occurred";
|
|
@@ -75,19 +82,6 @@ function actorNotFound(identifier) {
|
|
|
75
82
|
);
|
|
76
83
|
}
|
|
77
84
|
|
|
78
|
-
// src/utils/env-vars.ts
|
|
79
|
-
var getRivetEngine = () => getEnvUniversal("RIVET_ENGINE");
|
|
80
|
-
var getRivetEndpoint = () => getEnvUniversal("RIVET_ENDPOINT");
|
|
81
|
-
var getRivetToken = () => getEnvUniversal("RIVET_TOKEN");
|
|
82
|
-
var getRivetNamespace = () => getEnvUniversal("RIVET_NAMESPACE");
|
|
83
|
-
var getRivetPool = () => getEnvUniversal("RIVET_POOL");
|
|
84
|
-
var getLogLevel = () => getEnvUniversal("RIVET_LOG_LEVEL") ?? getEnvUniversal("LOG_LEVEL");
|
|
85
|
-
var getLogTarget = () => getEnvUniversal("RIVET_LOG_TARGET") === "1";
|
|
86
|
-
var getLogTimestamp = () => getEnvUniversal("RIVET_LOG_TIMESTAMP") === "1";
|
|
87
|
-
var getLogMessage = () => getEnvUniversal("RIVET_LOG_MESSAGE") === "1";
|
|
88
|
-
var getLogErrorStack = () => getEnvUniversal("RIVET_LOG_ERROR_STACK") === "1";
|
|
89
|
-
var getNextPhase = () => getEnvUniversal("NEXT_PHASE");
|
|
90
|
-
|
|
91
85
|
// src/common/utils.ts
|
|
92
86
|
function assertUnreachable(x) {
|
|
93
87
|
throw new Error(`Unreachable case: ${x}`);
|
|
@@ -145,7 +139,7 @@ function deconstructError(error, exposeInternalError = false) {
|
|
|
145
139
|
actor = error.actor;
|
|
146
140
|
}
|
|
147
141
|
metadata = {
|
|
148
|
-
//url: `https://
|
|
142
|
+
//url: `https://dashboard.rivet.dev/projects/${actorMetadata.project.slug}/environments/${actorMetadata.environment.slug}/actors?actorId=${actorMetadata.actor.id}`,
|
|
149
143
|
};
|
|
150
144
|
}
|
|
151
145
|
return {
|
|
@@ -200,7 +194,7 @@ function noopNext() {
|
|
|
200
194
|
// package.json
|
|
201
195
|
var package_default = {
|
|
202
196
|
name: "rivetkit",
|
|
203
|
-
version: "2.3.0
|
|
197
|
+
version: "2.3.0",
|
|
204
198
|
description: "Lightweight libraries for building stateful actors on edge platforms",
|
|
205
199
|
license: "Apache-2.0",
|
|
206
200
|
keywords: [
|
|
@@ -272,6 +266,16 @@ var package_default = {
|
|
|
272
266
|
default: "./dist/tsup/db/drizzle.cjs"
|
|
273
267
|
}
|
|
274
268
|
},
|
|
269
|
+
"./dynamic": {
|
|
270
|
+
import: {
|
|
271
|
+
types: "./dist/tsup/dynamic/mod.d.ts",
|
|
272
|
+
default: "./dist/tsup/dynamic/mod.js"
|
|
273
|
+
},
|
|
274
|
+
require: {
|
|
275
|
+
types: "./dist/tsup/dynamic/mod.d.cts",
|
|
276
|
+
default: "./dist/tsup/dynamic/mod.cjs"
|
|
277
|
+
}
|
|
278
|
+
},
|
|
275
279
|
"./client": {
|
|
276
280
|
import: {
|
|
277
281
|
browser: {
|
|
@@ -316,6 +320,16 @@ var package_default = {
|
|
|
316
320
|
default: "./dist/tsup/inspector/mod.cjs"
|
|
317
321
|
}
|
|
318
322
|
},
|
|
323
|
+
"./inspector-tab": {
|
|
324
|
+
import: {
|
|
325
|
+
types: "./dist/tsup/inspector-tab/mod.d.ts",
|
|
326
|
+
default: "./dist/tsup/inspector-tab/mod.js"
|
|
327
|
+
},
|
|
328
|
+
require: {
|
|
329
|
+
types: "./dist/tsup/inspector-tab/mod.d.cts",
|
|
330
|
+
default: "./dist/tsup/inspector-tab/mod.cjs"
|
|
331
|
+
}
|
|
332
|
+
},
|
|
319
333
|
"./inspector/client": {
|
|
320
334
|
import: {
|
|
321
335
|
types: "./dist/browser/inspector/client.d.ts",
|
|
@@ -351,7 +365,7 @@ var package_default = {
|
|
|
351
365
|
"./dist/tsup/chunk-*.cjs"
|
|
352
366
|
],
|
|
353
367
|
scripts: {
|
|
354
|
-
build: "tsup src/mod.ts src/client/mod.ts src/common/log.ts src/common/websocket.ts src/actor/errors.ts src/utils.ts src/workflow/mod.ts src/test/mod.ts src/inspector/mod.ts src/db/mod.ts src/db/drizzle.ts && tsup src/agent-os/index.ts --no-clean --out-dir dist/tsup/agent-os",
|
|
368
|
+
build: "tsup src/mod.ts src/client/mod.ts src/common/log.ts src/common/websocket.ts src/actor/errors.ts src/utils.ts src/workflow/mod.ts src/test/mod.ts src/inspector/mod.ts src/inspector-tab/mod.ts src/db/mod.ts src/db/drizzle.ts src/dynamic/mod.ts && tsup src/agent-os/index.ts --no-clean --out-dir dist/tsup/agent-os",
|
|
355
369
|
"build:browser": "tsup --config tsup.browser.config.ts",
|
|
356
370
|
"check-types": "tsc --noEmit",
|
|
357
371
|
lint: "biome check . && pnpm run check:test-skips && pnpm run check:wait-for-comments",
|
|
@@ -427,12 +441,81 @@ var package_default = {
|
|
|
427
441
|
stableVersion: "0.8.0"
|
|
428
442
|
};
|
|
429
443
|
|
|
444
|
+
// src/utils.ts
|
|
445
|
+
var VERSION = package_default.version;
|
|
446
|
+
var _userAgent;
|
|
447
|
+
function httpUserAgent() {
|
|
448
|
+
if (_userAgent !== void 0) {
|
|
449
|
+
return _userAgent;
|
|
450
|
+
}
|
|
451
|
+
let userAgent = `RivetKit/${VERSION}`;
|
|
452
|
+
const navigatorObj = typeof navigator !== "undefined" ? navigator : void 0;
|
|
453
|
+
if (navigatorObj?.userAgent) userAgent += ` ${navigatorObj.userAgent}`;
|
|
454
|
+
_userAgent = userAgent;
|
|
455
|
+
return userAgent;
|
|
456
|
+
}
|
|
457
|
+
function getEnvUniversal(key) {
|
|
458
|
+
if (typeof Deno !== "undefined") {
|
|
459
|
+
return Deno.env.get(key);
|
|
460
|
+
} else if (typeof process !== "undefined") {
|
|
461
|
+
return process.env[key];
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
function promiseWithResolvers(onReject) {
|
|
465
|
+
let resolve;
|
|
466
|
+
let reject;
|
|
467
|
+
const promise = new Promise((res, rej) => {
|
|
468
|
+
resolve = res;
|
|
469
|
+
reject = rej;
|
|
470
|
+
});
|
|
471
|
+
promise.catch(onReject);
|
|
472
|
+
return { promise, resolve, reject };
|
|
473
|
+
}
|
|
474
|
+
function bufferToArrayBuffer(buf) {
|
|
475
|
+
return buf.buffer.slice(
|
|
476
|
+
buf.byteOffset,
|
|
477
|
+
buf.byteOffset + buf.byteLength
|
|
478
|
+
);
|
|
479
|
+
}
|
|
480
|
+
function combineUrlPath(endpoint, path, queryParams) {
|
|
481
|
+
const baseUrl = new URL(endpoint);
|
|
482
|
+
const pathParts = path.split("?");
|
|
483
|
+
const pathOnly = pathParts[0];
|
|
484
|
+
const existingQuery = pathParts[1] || "";
|
|
485
|
+
const basePath = baseUrl.pathname.replace(/\/$/, "");
|
|
486
|
+
const cleanPath = pathOnly.startsWith("/") ? pathOnly : `/${pathOnly}`;
|
|
487
|
+
const fullPath = (basePath + cleanPath).replace(/\/\//g, "/");
|
|
488
|
+
const queryParts = [];
|
|
489
|
+
if (existingQuery) {
|
|
490
|
+
queryParts.push(existingQuery);
|
|
491
|
+
}
|
|
492
|
+
if (queryParams) {
|
|
493
|
+
for (const [key, value] of Object.entries(queryParams)) {
|
|
494
|
+
if (value !== void 0) {
|
|
495
|
+
queryParts.push(
|
|
496
|
+
`${encodeURIComponent(key)}=${encodeURIComponent(value)}`
|
|
497
|
+
);
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
}
|
|
501
|
+
const fullQuery = queryParts.length > 0 ? `?${queryParts.join("&")}` : "";
|
|
502
|
+
return `${baseUrl.protocol}//${baseUrl.host}${fullPath}${fullQuery}`;
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
// src/utils/env-vars.ts
|
|
506
|
+
var getRivetEngine = () => getEnvUniversal("RIVET_ENGINE");
|
|
507
|
+
var getRivetEndpoint = () => getEnvUniversal("RIVET_ENDPOINT");
|
|
508
|
+
var getRivetToken = () => getEnvUniversal("RIVET_TOKEN");
|
|
509
|
+
var getRivetNamespace = () => getEnvUniversal("RIVET_NAMESPACE");
|
|
510
|
+
var getRivetPool = () => getEnvUniversal("RIVET_POOL");
|
|
511
|
+
var getLogLevel = () => getEnvUniversal("RIVET_LOG_LEVEL") ?? getEnvUniversal("LOG_LEVEL");
|
|
512
|
+
var getLogTarget = () => getEnvUniversal("RIVET_LOG_TARGET") === "1";
|
|
513
|
+
var getLogTimestamp = () => getEnvUniversal("RIVET_LOG_TIMESTAMP") === "1";
|
|
514
|
+
var getLogMessage = () => getEnvUniversal("RIVET_LOG_MESSAGE") === "1";
|
|
515
|
+
var getLogErrorStack = () => getEnvUniversal("RIVET_LOG_ERROR_STACK") === "1";
|
|
516
|
+
var getNextPhase = () => getEnvUniversal("NEXT_PHASE");
|
|
517
|
+
|
|
430
518
|
// src/common/log.ts
|
|
431
|
-
import {
|
|
432
|
-
pino,
|
|
433
|
-
stdTimeFunctions
|
|
434
|
-
} from "pino";
|
|
435
|
-
import { z } from "zod/v4";
|
|
436
519
|
var baseLogger;
|
|
437
520
|
var configuredLogLevel;
|
|
438
521
|
var loggerCache = /* @__PURE__ */ new Map();
|
|
@@ -577,74 +660,12 @@ function quoteLogfmtString(value) {
|
|
|
577
660
|
return `"${value.replace(/\\/g, "\\\\").replace(/"/g, '\\"').replace(/\n/g, "\\n")}"`;
|
|
578
661
|
}
|
|
579
662
|
|
|
580
|
-
// src/utils.ts
|
|
581
|
-
var VERSION = package_default.version;
|
|
582
|
-
var _userAgent;
|
|
583
|
-
function httpUserAgent() {
|
|
584
|
-
if (_userAgent !== void 0) {
|
|
585
|
-
return _userAgent;
|
|
586
|
-
}
|
|
587
|
-
let userAgent = `RivetKit/${VERSION}`;
|
|
588
|
-
const navigatorObj = typeof navigator !== "undefined" ? navigator : void 0;
|
|
589
|
-
if (navigatorObj?.userAgent) userAgent += ` ${navigatorObj.userAgent}`;
|
|
590
|
-
_userAgent = userAgent;
|
|
591
|
-
return userAgent;
|
|
592
|
-
}
|
|
593
|
-
function getEnvUniversal(key) {
|
|
594
|
-
if (typeof Deno !== "undefined") {
|
|
595
|
-
return Deno.env.get(key);
|
|
596
|
-
} else if (typeof process !== "undefined") {
|
|
597
|
-
return process.env[key];
|
|
598
|
-
}
|
|
599
|
-
}
|
|
600
|
-
function promiseWithResolvers(onReject) {
|
|
601
|
-
let resolve;
|
|
602
|
-
let reject;
|
|
603
|
-
const promise = new Promise((res, rej) => {
|
|
604
|
-
resolve = res;
|
|
605
|
-
reject = rej;
|
|
606
|
-
});
|
|
607
|
-
promise.catch(onReject);
|
|
608
|
-
return { promise, resolve, reject };
|
|
609
|
-
}
|
|
610
|
-
function bufferToArrayBuffer(buf) {
|
|
611
|
-
return buf.buffer.slice(
|
|
612
|
-
buf.byteOffset,
|
|
613
|
-
buf.byteOffset + buf.byteLength
|
|
614
|
-
);
|
|
615
|
-
}
|
|
616
|
-
function combineUrlPath(endpoint, path, queryParams) {
|
|
617
|
-
const baseUrl = new URL(endpoint);
|
|
618
|
-
const pathParts = path.split("?");
|
|
619
|
-
const pathOnly = pathParts[0];
|
|
620
|
-
const existingQuery = pathParts[1] || "";
|
|
621
|
-
const basePath = baseUrl.pathname.replace(/\/$/, "");
|
|
622
|
-
const cleanPath = pathOnly.startsWith("/") ? pathOnly : `/${pathOnly}`;
|
|
623
|
-
const fullPath = (basePath + cleanPath).replace(/\/\//g, "/");
|
|
624
|
-
const queryParts = [];
|
|
625
|
-
if (existingQuery) {
|
|
626
|
-
queryParts.push(existingQuery);
|
|
627
|
-
}
|
|
628
|
-
if (queryParams) {
|
|
629
|
-
for (const [key, value] of Object.entries(queryParams)) {
|
|
630
|
-
if (value !== void 0) {
|
|
631
|
-
queryParts.push(
|
|
632
|
-
`${encodeURIComponent(key)}=${encodeURIComponent(value)}`
|
|
633
|
-
);
|
|
634
|
-
}
|
|
635
|
-
}
|
|
636
|
-
}
|
|
637
|
-
const fullQuery = queryParts.length > 0 ? `?${queryParts.join("&")}` : "";
|
|
638
|
-
return `${baseUrl.protocol}//${baseUrl.host}${fullPath}${fullQuery}`;
|
|
639
|
-
}
|
|
640
|
-
|
|
641
663
|
// src/devtools-loader/log.ts
|
|
642
664
|
function logger() {
|
|
643
665
|
return getLogger("devtools");
|
|
644
666
|
}
|
|
645
667
|
|
|
646
668
|
// src/devtools-loader/index.ts
|
|
647
|
-
var DEFAULT_DEVTOOLS_URL = (version = VERSION) => `https://releases.rivet.dev/rivet/latest/devtools/mod.js?v=${version}`;
|
|
648
669
|
var scriptId = "rivetkit-devtools-script";
|
|
649
670
|
function injectDevtools(config) {
|
|
650
671
|
if (!window) {
|
|
@@ -652,9 +673,10 @@ function injectDevtools(config) {
|
|
|
652
673
|
return;
|
|
653
674
|
}
|
|
654
675
|
if (!document.getElementById(scriptId)) {
|
|
676
|
+
const src = `${config.endpoint?.replace(/\/$/, "")}/devtools/mod.js`;
|
|
655
677
|
const script = document.createElement("script");
|
|
656
678
|
script.id = scriptId;
|
|
657
|
-
script.src =
|
|
679
|
+
script.src = src;
|
|
658
680
|
script.async = true;
|
|
659
681
|
document.head.appendChild(script);
|
|
660
682
|
}
|
|
@@ -764,7 +786,7 @@ function deserializeActorKey(keyString) {
|
|
|
764
786
|
}
|
|
765
787
|
}
|
|
766
788
|
if (escaping) {
|
|
767
|
-
parts.push(currentPart
|
|
789
|
+
parts.push(`${currentPart}\\`);
|
|
768
790
|
} else if (isEmptyStringMarker) {
|
|
769
791
|
parts.push("");
|
|
770
792
|
} else if (currentPart !== "" || parts.length > 0) {
|
|
@@ -890,7 +912,7 @@ function encodeJsonCompatValue(input) {
|
|
|
890
912
|
(value) => encodeJsonCompatValue(value)
|
|
891
913
|
);
|
|
892
914
|
if (encoded.length === 2 && typeof encoded[0] === "string" && encoded[0].startsWith("$")) {
|
|
893
|
-
return [
|
|
915
|
+
return [`$${encoded[0]}`, encoded[1]];
|
|
894
916
|
}
|
|
895
917
|
return encoded;
|
|
896
918
|
}
|
|
@@ -902,9 +924,7 @@ function encodeJsonCompatValue(input) {
|
|
|
902
924
|
return encoded;
|
|
903
925
|
}
|
|
904
926
|
const typeName = typeof input === "object" && input !== null ? input.constructor?.name ?? typeof input : typeof input;
|
|
905
|
-
throw new TypeError(
|
|
906
|
-
`Value of type "${typeName}" is not CBOR serializable`
|
|
907
|
-
);
|
|
927
|
+
throw new TypeError(`Value of type "${typeName}" is not CBOR serializable`);
|
|
908
928
|
}
|
|
909
929
|
function reviveJsonCompatValue(input, options = {}) {
|
|
910
930
|
if (typeof input === "bigint") {
|
|
@@ -984,19 +1004,13 @@ function jsonStringifyCompat(input) {
|
|
|
984
1004
|
return [JSON_COMPAT_BIGINT, value.toString()];
|
|
985
1005
|
}
|
|
986
1006
|
if (value instanceof ArrayBuffer) {
|
|
987
|
-
return [
|
|
988
|
-
JSON_COMPAT_ARRAY_BUFFER,
|
|
989
|
-
base64EncodeArrayBuffer(value)
|
|
990
|
-
];
|
|
1007
|
+
return [JSON_COMPAT_ARRAY_BUFFER, base64EncodeArrayBuffer(value)];
|
|
991
1008
|
}
|
|
992
1009
|
if (value instanceof Uint8Array) {
|
|
993
|
-
return [
|
|
994
|
-
JSON_COMPAT_UINT8_ARRAY,
|
|
995
|
-
base64EncodeUint8Array(value)
|
|
996
|
-
];
|
|
1010
|
+
return [JSON_COMPAT_UINT8_ARRAY, base64EncodeUint8Array(value)];
|
|
997
1011
|
}
|
|
998
1012
|
if (Array.isArray(value) && value.length === 2 && typeof value[0] === "string" && value[0].startsWith("$")) {
|
|
999
|
-
return [
|
|
1013
|
+
return [`$${value[0]}`, value[1]];
|
|
1000
1014
|
}
|
|
1001
1015
|
return value;
|
|
1002
1016
|
});
|
|
@@ -1108,7 +1122,7 @@ async function sendHttpRequestToGateway(runConfig, gatewayUrl, actorRequest, opt
|
|
|
1108
1122
|
if (reqBody.byteLength !== 0) {
|
|
1109
1123
|
bodyToSend = reqBody;
|
|
1110
1124
|
guardHeaders.delete("transfer-encoding");
|
|
1111
|
-
guardHeaders.
|
|
1125
|
+
guardHeaders.delete("content-length");
|
|
1112
1126
|
}
|
|
1113
1127
|
}
|
|
1114
1128
|
const guardRequest = new Request(gatewayUrl, {
|
|
@@ -3960,11 +3974,11 @@ async function lookupMetadataCached(config) {
|
|
|
3960
3974
|
}
|
|
3961
3975
|
|
|
3962
3976
|
// src/engine-client/ws-proxy.ts
|
|
3963
|
-
async function createWebSocketProxy(
|
|
3977
|
+
async function createWebSocketProxy(_c, targetUrl, protocols) {
|
|
3964
3978
|
const WebSocket2 = await importWebSocket();
|
|
3965
3979
|
const state = {};
|
|
3966
3980
|
return {
|
|
3967
|
-
onOpen: async (
|
|
3981
|
+
onOpen: async (_event, clientWs) => {
|
|
3968
3982
|
logger3().debug({ msg: "client websocket connected", targetUrl });
|
|
3969
3983
|
if (clientWs.readyState !== 1) {
|
|
3970
3984
|
logger3().warn({
|
|
@@ -4002,23 +4016,25 @@ async function createWebSocketProxy(c, targetUrl, protocols) {
|
|
|
4002
4016
|
reject(error);
|
|
4003
4017
|
});
|
|
4004
4018
|
});
|
|
4005
|
-
state.
|
|
4006
|
-
|
|
4007
|
-
|
|
4008
|
-
|
|
4009
|
-
|
|
4019
|
+
state.connectPromise.catch(() => {
|
|
4020
|
+
});
|
|
4021
|
+
state.targetWs.addEventListener("message", (event) => {
|
|
4022
|
+
if (typeof event.data === "string" || event.data instanceof ArrayBuffer) {
|
|
4023
|
+
clientWs.send(event.data);
|
|
4024
|
+
} else if (event.data instanceof Blob) {
|
|
4025
|
+
event.data.arrayBuffer().then((buffer) => {
|
|
4010
4026
|
clientWs.send(buffer);
|
|
4011
4027
|
});
|
|
4012
4028
|
}
|
|
4013
4029
|
});
|
|
4014
|
-
state.targetWs.addEventListener("close", (
|
|
4030
|
+
state.targetWs.addEventListener("close", (event) => {
|
|
4015
4031
|
logger3().debug({
|
|
4016
4032
|
msg: "target websocket closed",
|
|
4017
4033
|
targetUrl,
|
|
4018
|
-
code:
|
|
4019
|
-
reason:
|
|
4034
|
+
code: event.code,
|
|
4035
|
+
reason: event.reason
|
|
4020
4036
|
});
|
|
4021
|
-
closeWebSocketIfOpen(clientWs,
|
|
4037
|
+
closeWebSocketIfOpen(clientWs, event.code, event.reason);
|
|
4022
4038
|
});
|
|
4023
4039
|
state.targetWs.addEventListener("error", (error) => {
|
|
4024
4040
|
logger3().error({
|
|
@@ -4061,7 +4077,7 @@ async function createWebSocketProxy(c, targetUrl, protocols) {
|
|
|
4061
4077
|
);
|
|
4062
4078
|
}
|
|
4063
4079
|
},
|
|
4064
|
-
onClose: (event,
|
|
4080
|
+
onClose: (event, _clientWs) => {
|
|
4065
4081
|
logger3().debug({
|
|
4066
4082
|
msg: "client websocket closed",
|
|
4067
4083
|
targetUrl,
|
|
@@ -4078,7 +4094,7 @@ async function createWebSocketProxy(c, targetUrl, protocols) {
|
|
|
4078
4094
|
}
|
|
4079
4095
|
}
|
|
4080
4096
|
},
|
|
4081
|
-
onError: (event,
|
|
4097
|
+
onError: (event, _clientWs) => {
|
|
4082
4098
|
logger3().error({ msg: "client websocket error", targetUrl, event });
|
|
4083
4099
|
if (state.targetWs) {
|
|
4084
4100
|
if (state.targetWs.readyState === WebSocket2.OPEN) {
|
|
@@ -4194,7 +4210,9 @@ var RemoteEngineControlClient = class {
|
|
|
4194
4210
|
name,
|
|
4195
4211
|
key: serializeActorKey(key),
|
|
4196
4212
|
runner_name_selector: this.#config.poolName,
|
|
4197
|
-
input: actorInput ? uint8ArrayToBase64(
|
|
4213
|
+
input: actorInput ? uint8ArrayToBase64(
|
|
4214
|
+
encodeCborCompat(actorInput)
|
|
4215
|
+
) : void 0,
|
|
4198
4216
|
crash_policy: crashPolicy ?? "sleep"
|
|
4199
4217
|
});
|
|
4200
4218
|
logger3().info({
|
|
@@ -4585,7 +4603,7 @@ function classifyActorError(error) {
|
|
|
4585
4603
|
return void 0;
|
|
4586
4604
|
}
|
|
4587
4605
|
function isRetryableGuardGatewayHttpError(code) {
|
|
4588
|
-
return code === "service_unavailable" || code === "actor_stopped_while_waiting" || code === "tunnel_request_aborted" || code === "tunnel_message_timeout" || code === "tunnel_response_closed" || code === "gateway_response_start_timeout";
|
|
4606
|
+
return code === "service_unavailable" || code === "actor_wake_retries_exceeded" || code === "actor_stopped_while_waiting" || code === "tunnel_request_aborted" || code === "tunnel_message_timeout" || code === "tunnel_response_closed" || code === "gateway_response_start_timeout";
|
|
4589
4607
|
}
|
|
4590
4608
|
function classifyTransportError(error) {
|
|
4591
4609
|
if (error.message.includes("database accessed after actor stopped")) {
|
|
@@ -4674,10 +4692,7 @@ async function retryOnLifecycleBoundary(run, opts) {
|
|
|
4674
4692
|
if (attempt === maxAttempts - 1) {
|
|
4675
4693
|
break;
|
|
4676
4694
|
}
|
|
4677
|
-
const delayMs = Math.min(
|
|
4678
|
-
initialDelayMs * 2 ** attempt,
|
|
4679
|
-
maxDelayMs
|
|
4680
|
-
);
|
|
4695
|
+
const delayMs = Math.min(initialDelayMs * 2 ** attempt, maxDelayMs);
|
|
4681
4696
|
await waitWithSignal(delayMs, opts?.signal);
|
|
4682
4697
|
}
|
|
4683
4698
|
}
|
|
@@ -4716,7 +4731,9 @@ function createQueueSender(senderOptions) {
|
|
|
4716
4731
|
}),
|
|
4717
4732
|
requestToBare: (value) => ({
|
|
4718
4733
|
name: value.name ?? name,
|
|
4719
|
-
body: bufferToArrayBuffer(
|
|
4734
|
+
body: bufferToArrayBuffer(
|
|
4735
|
+
encodeCborCompat(value.body)
|
|
4736
|
+
),
|
|
4720
4737
|
wait: value.wait ?? false,
|
|
4721
4738
|
timeout: value.timeout !== void 0 ? BigInt(value.timeout) : null
|
|
4722
4739
|
}),
|
|
@@ -4801,6 +4818,9 @@ var ActorConnRaw = class {
|
|
|
4801
4818
|
this.#encoding = encoding;
|
|
4802
4819
|
this.#actorResolutionState = actorResolutionState;
|
|
4803
4820
|
this.#gatewayOptions = resolveActorGatewayOptions(gatewayOptions);
|
|
4821
|
+
if ("getForId" in actorResolutionState) {
|
|
4822
|
+
this.#actorId = actorResolutionState.getForId.actorId;
|
|
4823
|
+
}
|
|
4804
4824
|
this.#readyPromise = promiseWithResolvers(
|
|
4805
4825
|
(reason) => logger2().warn({
|
|
4806
4826
|
msg: "unhandled ready promise rejection",
|
|
@@ -4818,9 +4838,7 @@ var ActorConnRaw = class {
|
|
|
4818
4838
|
);
|
|
4819
4839
|
}
|
|
4820
4840
|
});
|
|
4821
|
-
this.#keepNodeAliveInterval = setInterval(() =>
|
|
4822
|
-
}, 6e4);
|
|
4823
|
-
this.#keepNodeAliveInterval.unref?.();
|
|
4841
|
+
this.#keepNodeAliveInterval = setInterval(() => 6e4);
|
|
4824
4842
|
}
|
|
4825
4843
|
#clearResolvedActorIdentity() {
|
|
4826
4844
|
this.#actorId = void 0;
|
|
@@ -5227,12 +5245,10 @@ var ActorConnRaw = class {
|
|
|
5227
5245
|
);
|
|
5228
5246
|
return;
|
|
5229
5247
|
}
|
|
5230
|
-
let errorToThrow = new RivetError(
|
|
5231
|
-
|
|
5232
|
-
|
|
5233
|
-
|
|
5234
|
-
{ metadata, actor }
|
|
5235
|
-
);
|
|
5248
|
+
let errorToThrow = new RivetError(group, code, message, {
|
|
5249
|
+
metadata,
|
|
5250
|
+
actor
|
|
5251
|
+
});
|
|
5236
5252
|
if (isSchedulingError(group, code) && this.#actorId) {
|
|
5237
5253
|
const schedulingError = await checkForSchedulingError(
|
|
5238
5254
|
group,
|
|
@@ -6053,10 +6069,7 @@ var ActorHandleRaw = class {
|
|
|
6053
6069
|
}
|
|
6054
6070
|
}).send(name, body, options);
|
|
6055
6071
|
} catch (err) {
|
|
6056
|
-
const { group, code, message, metadata, actor } = deconstructError(
|
|
6057
|
-
err,
|
|
6058
|
-
true
|
|
6059
|
-
);
|
|
6072
|
+
const { group, code, message, metadata, actor } = deconstructError(err, true);
|
|
6060
6073
|
if (this.#shouldRetryQueueDispatchOverload(
|
|
6061
6074
|
group,
|
|
6062
6075
|
code,
|
|
@@ -6089,7 +6102,10 @@ var ActorHandleRaw = class {
|
|
|
6089
6102
|
await this.#waitForRetryWindow();
|
|
6090
6103
|
continue;
|
|
6091
6104
|
}
|
|
6092
|
-
const invalidated = this.#invalidateResolvedActorId(
|
|
6105
|
+
const invalidated = this.#invalidateResolvedActorId(
|
|
6106
|
+
group,
|
|
6107
|
+
code
|
|
6108
|
+
);
|
|
6093
6109
|
if (invalidated && attempt < maxAttempts - 1) {
|
|
6094
6110
|
useQueryTarget = code === "starting" || code === "stopping" || code.startsWith("destroyed_");
|
|
6095
6111
|
if (useQueryTarget) {
|
|
@@ -6097,7 +6113,10 @@ var ActorHandleRaw = class {
|
|
|
6097
6113
|
}
|
|
6098
6114
|
continue;
|
|
6099
6115
|
}
|
|
6100
|
-
throw new RivetError(group, code, message, {
|
|
6116
|
+
throw new RivetError(group, code, message, {
|
|
6117
|
+
metadata,
|
|
6118
|
+
actor
|
|
6119
|
+
});
|
|
6101
6120
|
}
|
|
6102
6121
|
}
|
|
6103
6122
|
throw new Error("unreachable queue retry state");
|
|
@@ -6177,7 +6196,9 @@ var ActorHandleRaw = class {
|
|
|
6177
6196
|
args
|
|
6178
6197
|
}),
|
|
6179
6198
|
requestToBare: (args) => ({
|
|
6180
|
-
args: bufferToArrayBuffer(
|
|
6199
|
+
args: bufferToArrayBuffer(
|
|
6200
|
+
encodeCborCompat(args)
|
|
6201
|
+
)
|
|
6181
6202
|
}),
|
|
6182
6203
|
responseFromJson: (json) => json.output,
|
|
6183
6204
|
responseFromBare: (bare5) => decodeCborCompat(new Uint8Array(bare5.output))
|
|
@@ -6187,10 +6208,7 @@ var ActorHandleRaw = class {
|
|
|
6187
6208
|
}
|
|
6188
6209
|
return output;
|
|
6189
6210
|
} catch (err) {
|
|
6190
|
-
const { group, code, message, metadata, actor } = deconstructError(
|
|
6191
|
-
err,
|
|
6192
|
-
true
|
|
6193
|
-
);
|
|
6211
|
+
const { group, code, message, metadata, actor } = deconstructError(err, true);
|
|
6194
6212
|
if (await this.#shouldRetrySchedulingError(
|
|
6195
6213
|
group,
|
|
6196
6214
|
code,
|
|
@@ -6221,11 +6239,16 @@ var ActorHandleRaw = class {
|
|
|
6221
6239
|
{ metadata, actor }
|
|
6222
6240
|
);
|
|
6223
6241
|
}
|
|
6224
|
-
const invalidated = this.#invalidateResolvedActorId(
|
|
6242
|
+
const invalidated = this.#invalidateResolvedActorId(
|
|
6243
|
+
group,
|
|
6244
|
+
code
|
|
6245
|
+
);
|
|
6225
6246
|
if (invalidated && attempt < maxAttempts - 1) {
|
|
6226
6247
|
if (group === "actor" && (code === "starting" || code === "stopping")) {
|
|
6227
6248
|
useQueryTarget = true;
|
|
6228
|
-
await new Promise(
|
|
6249
|
+
await new Promise(
|
|
6250
|
+
(resolve) => setTimeout(resolve, 100)
|
|
6251
|
+
);
|
|
6229
6252
|
}
|
|
6230
6253
|
continue;
|
|
6231
6254
|
}
|
|
@@ -6402,10 +6425,7 @@ var ActorHandleRaw = class {
|
|
|
6402
6425
|
}
|
|
6403
6426
|
return response;
|
|
6404
6427
|
} catch (err) {
|
|
6405
|
-
const { group, code, message, metadata, actor } = deconstructError(
|
|
6406
|
-
err,
|
|
6407
|
-
true
|
|
6408
|
-
);
|
|
6428
|
+
const { group, code, message, metadata, actor } = deconstructError(err, true);
|
|
6409
6429
|
if (await this.#shouldRetrySchedulingError(
|
|
6410
6430
|
group,
|
|
6411
6431
|
code,
|
|
@@ -6428,7 +6448,10 @@ var ActorHandleRaw = class {
|
|
|
6428
6448
|
await this.#waitForRetryWindow();
|
|
6429
6449
|
continue;
|
|
6430
6450
|
}
|
|
6431
|
-
const invalidated = this.#invalidateResolvedActorId(
|
|
6451
|
+
const invalidated = this.#invalidateResolvedActorId(
|
|
6452
|
+
group,
|
|
6453
|
+
code
|
|
6454
|
+
);
|
|
6432
6455
|
if (invalidated && attempt < maxAttempts - 1) {
|
|
6433
6456
|
useQueryTarget = code === "starting" || code === "stopping" || code.startsWith("destroyed_");
|
|
6434
6457
|
if (useQueryTarget) {
|
|
@@ -6528,8 +6551,9 @@ var ActorHandleRaw = class {
|
|
|
6528
6551
|
this.#gatewayOptions,
|
|
6529
6552
|
options
|
|
6530
6553
|
);
|
|
6554
|
+
const useQueryTarget = isDynamicActorQuery(this.#actorResolutionState);
|
|
6531
6555
|
const target = await this.#resolveGatewayRequestTarget(
|
|
6532
|
-
|
|
6556
|
+
useQueryTarget,
|
|
6533
6557
|
gatewayOptions
|
|
6534
6558
|
);
|
|
6535
6559
|
return await rawWebSocket(
|
|
@@ -6552,7 +6576,9 @@ var ActorHandleRaw = class {
|
|
|
6552
6576
|
if ("directId" in target) {
|
|
6553
6577
|
return target.directId;
|
|
6554
6578
|
}
|
|
6555
|
-
throw new Error(
|
|
6579
|
+
throw new Error(
|
|
6580
|
+
"dynamic actor resolution did not produce a direct actor id"
|
|
6581
|
+
);
|
|
6556
6582
|
}
|
|
6557
6583
|
/**
|
|
6558
6584
|
* Returns the raw URL for routing traffic to the actor.
|