rivetkit 0.0.0-skip-ready-wait-flatten-client-options.1cae221 → 0.0.0-sqlite-uds.4e59a38
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 +561 -89
- package/dist/browser/client.js +1063 -430
- package/dist/browser/client.js.map +1 -1
- package/dist/browser/inspector/client.d.ts +22 -2
- package/dist/browser/inspector/client.js +1036 -232
- package/dist/browser/inspector/client.js.map +1 -1
- package/dist/tsup/actor/errors.cjs +6 -2
- package/dist/tsup/actor/errors.cjs.map +1 -1
- package/dist/tsup/actor/errors.d.cts +1 -74
- package/dist/tsup/actor/errors.d.ts +1 -74
- package/dist/tsup/actor/errors.js +5 -1
- package/dist/tsup/agent-os/index.cjs +2218 -2082
- package/dist/tsup/agent-os/index.cjs.map +1 -1
- package/dist/tsup/agent-os/index.d.cts +556 -85
- package/dist/tsup/agent-os/index.d.ts +556 -85
- package/dist/tsup/agent-os/index.js +2220 -2084
- package/dist/tsup/agent-os/index.js.map +1 -1
- package/dist/tsup/{chunk-NFC5VU36.cjs → chunk-3GC3EP6D.cjs} +18 -10
- package/dist/tsup/chunk-3GC3EP6D.cjs.map +1 -0
- package/dist/tsup/{chunk-7MRGNVSR.js → chunk-3GLNEWGY.js} +78 -6
- package/dist/tsup/chunk-3GLNEWGY.js.map +1 -0
- package/dist/tsup/{chunk-V3QNBJ7N.cjs → chunk-4FC7TVS6.cjs} +35 -10
- package/dist/tsup/chunk-4FC7TVS6.cjs.map +1 -0
- package/dist/tsup/{chunk-POTPHU3P.cjs → chunk-62LSMTP2.cjs} +3 -3
- package/dist/tsup/{chunk-POTPHU3P.cjs.map → chunk-62LSMTP2.cjs.map} +1 -1
- package/dist/tsup/{chunk-OIKOPSXQ.js → chunk-7IVUT2JT.js} +12 -4
- package/dist/tsup/chunk-7IVUT2JT.js.map +1 -0
- package/dist/tsup/{chunk-22XU3BVY.cjs → chunk-GEYQLGXC.cjs} +925 -328
- package/dist/tsup/chunk-GEYQLGXC.cjs.map +1 -0
- package/dist/tsup/{chunk-D2TLG75Y.cjs → chunk-GMN45CQ6.cjs} +10 -10
- package/dist/tsup/chunk-GMN45CQ6.cjs.map +1 -0
- package/dist/tsup/{chunk-3BFYSYRU.js → chunk-HXUEHHJF.js} +3 -2
- package/dist/tsup/chunk-HXUEHHJF.js.map +1 -0
- package/dist/tsup/{chunk-IOYKCB6Y.cjs → chunk-I336PMWT.cjs} +44 -9
- package/dist/tsup/chunk-I336PMWT.cjs.map +1 -0
- package/dist/tsup/{chunk-RZEJJJKU.js → chunk-IB73AMGJ.js} +42 -7
- package/dist/tsup/chunk-IB73AMGJ.js.map +1 -0
- package/dist/tsup/{chunk-4ZIWB4CQ.js → chunk-ITWJ6Y7G.js} +2 -2
- package/dist/tsup/{chunk-PCBNKI2J.js → chunk-JZ7TWV65.js} +1 -1
- package/dist/tsup/chunk-JZ7TWV65.js.map +1 -0
- package/dist/tsup/{chunk-W54QCENI.js → chunk-KTNBYGRU.js} +134 -20
- package/dist/tsup/chunk-KTNBYGRU.js.map +1 -0
- package/dist/tsup/{chunk-AK57AL7S.cjs → chunk-OAPVVVTX.cjs} +79 -7
- package/dist/tsup/chunk-OAPVVVTX.cjs.map +1 -0
- package/dist/tsup/{chunk-TPBHXFB2.cjs → chunk-OUDV3ITX.cjs} +138 -24
- package/dist/tsup/chunk-OUDV3ITX.cjs.map +1 -0
- package/dist/tsup/{chunk-XNZR7UD2.cjs → chunk-PRXTIERO.cjs} +90 -65
- package/dist/tsup/chunk-PRXTIERO.cjs.map +1 -0
- package/dist/tsup/{chunk-LLD2D5LO.cjs → chunk-VE2X4KMG.cjs} +3 -2
- package/dist/tsup/chunk-VE2X4KMG.cjs.map +1 -0
- package/dist/tsup/{chunk-KSG2COSQ.js → chunk-WRZEVVLL.js} +6 -6
- package/dist/tsup/chunk-WRZEVVLL.js.map +1 -0
- package/dist/tsup/{chunk-LNMB25HW.js → chunk-XAIMHUPG.js} +780 -183
- package/dist/tsup/chunk-XAIMHUPG.js.map +1 -0
- package/dist/tsup/{chunk-D4TSTM6C.js → chunk-XZ62SWSC.js} +83 -58
- package/dist/tsup/chunk-XZ62SWSC.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/{chunk-K34B3OVG.js → chunk-ZZ3WBRPD.js} +34 -9
- package/dist/tsup/chunk-ZZ3WBRPD.js.map +1 -0
- package/dist/tsup/client/mod.cjs +9 -9
- package/dist/tsup/client/mod.cjs.map +1 -1
- package/dist/tsup/client/mod.d.cts +8 -9
- package/dist/tsup/client/mod.d.ts +8 -9
- package/dist/tsup/client/mod.js +8 -8
- package/dist/tsup/common/log.cjs +5 -3
- package/dist/tsup/common/log.cjs.map +1 -1
- package/dist/tsup/common/log.d.cts +5 -1
- package/dist/tsup/common/log.d.ts +5 -1
- package/dist/tsup/common/log.js +6 -4
- package/dist/tsup/common/websocket.cjs +4 -4
- package/dist/tsup/common/websocket.js +3 -3
- package/dist/tsup/{config-CRdGwwbr.d.cts → config-CxG53eQo.d.cts} +577 -36
- package/dist/tsup/{config-kxXbtrJU.d.ts → config-DLOxy81E.d.cts} +5 -5
- package/dist/tsup/{config-kxXbtrJU.d.cts → config-DLOxy81E.d.ts} +5 -5
- package/dist/tsup/{config-DIpBWm5C.d.ts → config-Ds6DCRhV.d.ts} +577 -36
- package/dist/tsup/context-8KlcOYIs.d.cts +129 -0
- package/dist/tsup/context-Cfbm4QLr.d.ts +129 -0
- package/dist/tsup/db/drizzle.cjs +151 -79
- package/dist/tsup/db/drizzle.cjs.map +1 -1
- package/dist/tsup/db/drizzle.d.cts +2 -2
- package/dist/tsup/db/drizzle.d.ts +2 -2
- package/dist/tsup/db/drizzle.js +151 -79
- package/dist/tsup/db/drizzle.js.map +1 -1
- package/dist/tsup/db/mod.cjs +79 -24
- package/dist/tsup/db/mod.cjs.map +1 -1
- package/dist/tsup/db/mod.d.cts +2 -2
- package/dist/tsup/db/mod.d.ts +2 -2
- package/dist/tsup/db/mod.js +78 -23
- package/dist/tsup/db/mod.js.map +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 +47 -12
- package/dist/tsup/inspector/mod.cjs.map +1 -1
- package/dist/tsup/inspector/mod.d.cts +37 -15
- package/dist/tsup/inspector/mod.d.ts +37 -15
- package/dist/tsup/inspector/mod.js +46 -11
- package/dist/tsup/inspector/mod.js.map +1 -1
- package/dist/tsup/inspector-tab/mod.cjs +162 -0
- package/dist/tsup/inspector-tab/mod.cjs.map +1 -0
- package/dist/tsup/inspector-tab/mod.d.cts +240 -0
- package/dist/tsup/inspector-tab/mod.d.ts +240 -0
- package/dist/tsup/inspector-tab/mod.js +162 -0
- package/dist/tsup/inspector-tab/mod.js.map +1 -0
- package/dist/tsup/mod.cjs +1078 -479
- package/dist/tsup/mod.cjs.map +1 -1
- package/dist/tsup/mod.d.cts +5 -6
- package/dist/tsup/mod.d.ts +5 -6
- package/dist/tsup/mod.js +996 -397
- 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 -5
- package/dist/tsup/test/mod.d.ts +4 -5
- package/dist/tsup/test/mod.js +18 -15
- package/dist/tsup/test/mod.js.map +1 -1
- package/dist/tsup/utils-CqDnC_PS.d.cts +104 -0
- package/dist/tsup/utils-CqDnC_PS.d.ts +104 -0
- 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 +386 -322
- package/dist/tsup/workflow/mod.cjs.map +1 -1
- package/dist/tsup/workflow/mod.d.cts +8 -9
- package/dist/tsup/workflow/mod.d.ts +8 -9
- package/dist/tsup/workflow/mod.js +363 -299
- package/dist/tsup/workflow/mod.js.map +1 -1
- package/package.json +35 -14
- package/src/actor/config.ts +188 -59
- 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 +70 -7
- package/src/actor/instance/mod.ts +39 -56
- package/src/actor/keys.ts +2 -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/actor/session.ts +2 -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 +88 -62
- package/src/client/actor-conn.ts +58 -63
- package/src/client/actor-handle.ts +125 -71
- package/src/client/actor-query.ts +5 -5
- package/src/client/config.ts +3 -3
- package/src/client/errors.ts +2 -1
- package/src/client/lifecycle-errors.ts +2 -4
- package/src/client/query.ts +1 -1
- package/src/client/queue.ts +8 -3
- package/src/client/raw-utils.ts +10 -10
- package/src/client/resolve-gateway-target.ts +1 -1
- package/src/client/utils.ts +34 -10
- package/src/common/actor-router-consts.ts +7 -4
- 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/generated/client-protocol/v4.ts +599 -0
- package/src/common/bare/generated/inspector/v5.ts +1016 -0
- package/src/common/bare/transport/v1.ts +694 -542
- package/src/common/client-protocol-versioned.ts +176 -67
- package/src/common/client-protocol-zod.ts +7 -0
- package/src/common/client-protocol.ts +1 -1
- package/src/common/database/config.ts +16 -5
- package/src/common/database/mod.test.ts +83 -16
- package/src/common/database/mod.ts +86 -30
- package/src/common/database/native-database.test.ts +35 -22
- package/src/common/database/native-database.ts +26 -10
- package/src/common/database/shared.ts +1 -0
- package/src/common/encoding.ts +250 -16
- package/src/common/engine.ts +28 -1
- package/src/common/eventsource.ts +1 -1
- package/src/common/inline-websocket-adapter.ts +14 -13
- package/src/common/log.ts +15 -8
- package/src/common/router.ts +49 -23
- package/src/common/utils.ts +10 -202
- package/src/common/websocket-interface.ts +1 -1
- package/src/db/drizzle.ts +173 -96
- 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 +76 -73
- 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 +6 -9
- package/src/engine-client/actor-websocket-client.ts +14 -13
- package/src/engine-client/api-endpoints.ts +51 -2
- package/src/engine-client/api-utils.ts +2 -2
- package/src/engine-client/driver.ts +3 -4
- package/src/engine-client/mod.ts +17 -10
- package/src/engine-client/ws-proxy.ts +9 -4
- package/src/inspector/client.browser.ts +66 -15
- package/src/inspector/mod.ts +2 -4
- package/src/inspector-tab/mod.ts +300 -0
- package/src/registry/config/envoy.ts +1 -2
- package/src/registry/config/index.ts +46 -20
- package/src/registry/index.ts +364 -87
- package/src/registry/napi-runtime.ts +97 -8
- package/src/registry/native-validation.ts +10 -12
- package/src/registry/native.ts +592 -343
- package/src/registry/process-metrics.ts +250 -0
- package/src/registry/runtime.ts +85 -6
- package/src/registry/wasm-runtime.ts +72 -3
- package/src/registry/write-through-proxy.ts +40 -0
- package/src/serde.ts +2 -2
- package/src/serverless/configure.ts +19 -8
- package/src/test/mod.ts +11 -8
- package/src/utils/crypto.ts +14 -0
- package/src/utils/endpoint-parser.ts +1 -1
- package/src/utils/env-vars.ts +37 -0
- package/src/utils/router.ts +1 -1
- package/src/utils.ts +1 -2
- package/src/workflow/context.ts +703 -240
- package/src/workflow/driver.ts +23 -12
- package/src/workflow/inspector.ts +12 -3
- package/src/workflow/mod.ts +37 -23
- package/dist/tsup/chunk-22XU3BVY.cjs.map +0 -1
- package/dist/tsup/chunk-2NDZ7JCR.cjs.map +0 -1
- package/dist/tsup/chunk-3BFYSYRU.js.map +0 -1
- package/dist/tsup/chunk-7MRGNVSR.js.map +0 -1
- package/dist/tsup/chunk-AK57AL7S.cjs.map +0 -1
- package/dist/tsup/chunk-D2TLG75Y.cjs.map +0 -1
- package/dist/tsup/chunk-D4TSTM6C.js.map +0 -1
- package/dist/tsup/chunk-IOYKCB6Y.cjs.map +0 -1
- package/dist/tsup/chunk-K34B3OVG.js.map +0 -1
- package/dist/tsup/chunk-KSG2COSQ.js.map +0 -1
- package/dist/tsup/chunk-LLD2D5LO.cjs.map +0 -1
- package/dist/tsup/chunk-LNMB25HW.js.map +0 -1
- package/dist/tsup/chunk-NFC5VU36.cjs.map +0 -1
- package/dist/tsup/chunk-OIKOPSXQ.js.map +0 -1
- package/dist/tsup/chunk-PCBNKI2J.js.map +0 -1
- package/dist/tsup/chunk-RZEJJJKU.js.map +0 -1
- package/dist/tsup/chunk-TPBHXFB2.cjs.map +0 -1
- package/dist/tsup/chunk-V3QNBJ7N.cjs.map +0 -1
- package/dist/tsup/chunk-W54QCENI.js.map +0 -1
- package/dist/tsup/chunk-XNZR7UD2.cjs.map +0 -1
- package/dist/tsup/context-B7G6sk7x.d.ts +0 -92
- package/dist/tsup/context-DzMRHkjC.d.cts +0 -92
- package/dist/tsup/utils-fwx3o3K9.d.cts +0 -18
- package/dist/tsup/utils-fwx3o3K9.d.ts +0 -18
- package/src/utils/serve.ts +0 -217
- /package/dist/tsup/{chunk-4ZIWB4CQ.js.map → chunk-ITWJ6Y7G.js.map} +0 -0
package/dist/browser/client.js
CHANGED
|
@@ -1,9 +1,16 @@
|
|
|
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";
|
|
4
11
|
var USER_ERROR_CODE = "user_error";
|
|
5
12
|
function looksLikeRivetErrorOptions(value) {
|
|
6
|
-
return typeof value === "object" && value !== null && ("public" in value || "metadata" in value || "statusCode" in value || "cause" in value);
|
|
13
|
+
return typeof value === "object" && value !== null && ("public" in value || "metadata" in value || "statusCode" in value || "actor" in value || "cause" in value);
|
|
7
14
|
}
|
|
8
15
|
function isTypedErrorTag(value) {
|
|
9
16
|
return value === "ActorError" || value === "RivetError";
|
|
@@ -22,6 +29,7 @@ var RivetError = class extends Error {
|
|
|
22
29
|
public;
|
|
23
30
|
metadata;
|
|
24
31
|
statusCode;
|
|
32
|
+
actor;
|
|
25
33
|
group;
|
|
26
34
|
code;
|
|
27
35
|
static isRivetError(error) {
|
|
@@ -39,6 +47,7 @@ var RivetError = class extends Error {
|
|
|
39
47
|
this.public = normalized.public ?? false;
|
|
40
48
|
this.metadata = normalized.metadata;
|
|
41
49
|
this.statusCode = normalized.statusCode ?? (this.public ? 400 : 500);
|
|
50
|
+
this.actor = normalized.actor;
|
|
42
51
|
}
|
|
43
52
|
toString() {
|
|
44
53
|
return this.message;
|
|
@@ -73,19 +82,6 @@ function actorNotFound(identifier) {
|
|
|
73
82
|
);
|
|
74
83
|
}
|
|
75
84
|
|
|
76
|
-
// src/utils/env-vars.ts
|
|
77
|
-
var getRivetEngine = () => getEnvUniversal("RIVET_ENGINE");
|
|
78
|
-
var getRivetEndpoint = () => getEnvUniversal("RIVET_ENDPOINT");
|
|
79
|
-
var getRivetToken = () => getEnvUniversal("RIVET_TOKEN");
|
|
80
|
-
var getRivetNamespace = () => getEnvUniversal("RIVET_NAMESPACE");
|
|
81
|
-
var getRivetPool = () => getEnvUniversal("RIVET_POOL");
|
|
82
|
-
var getLogLevel = () => getEnvUniversal("RIVET_LOG_LEVEL") ?? getEnvUniversal("LOG_LEVEL");
|
|
83
|
-
var getLogTarget = () => getEnvUniversal("RIVET_LOG_TARGET") === "1";
|
|
84
|
-
var getLogTimestamp = () => getEnvUniversal("RIVET_LOG_TIMESTAMP") === "1";
|
|
85
|
-
var getLogMessage = () => getEnvUniversal("RIVET_LOG_MESSAGE") === "1";
|
|
86
|
-
var getLogErrorStack = () => getEnvUniversal("RIVET_LOG_ERROR_STACK") === "1";
|
|
87
|
-
var getNextPhase = () => getEnvUniversal("NEXT_PHASE");
|
|
88
|
-
|
|
89
85
|
// src/common/utils.ts
|
|
90
86
|
function assertUnreachable(x) {
|
|
91
87
|
throw new Error(`Unreachable case: ${x}`);
|
|
@@ -93,13 +89,14 @@ function assertUnreachable(x) {
|
|
|
93
89
|
function isCanonicalStructuredRivetError(error) {
|
|
94
90
|
return error instanceof RivetError || typeof error === "object" && error !== null && "__type" in error && error.__type === "RivetError" && "group" in error && typeof error.group === "string" && "code" in error && typeof error.code === "string" && "message" in error && typeof error.message === "string";
|
|
95
91
|
}
|
|
96
|
-
function deconstructError(error,
|
|
92
|
+
function deconstructError(error, exposeInternalError = false) {
|
|
97
93
|
let statusCode;
|
|
98
94
|
let public_;
|
|
99
95
|
let group;
|
|
100
96
|
let code;
|
|
101
97
|
let message;
|
|
102
98
|
let metadata;
|
|
99
|
+
let actor;
|
|
103
100
|
if (isCanonicalStructuredRivetError(error)) {
|
|
104
101
|
statusCode = typeof error.statusCode === "number" ? error.statusCode : error.public ? 400 : 500;
|
|
105
102
|
public_ = error.public ?? false;
|
|
@@ -107,14 +104,7 @@ function deconstructError(error, logger4, extraLog, exposeInternalError = false)
|
|
|
107
104
|
code = error.code;
|
|
108
105
|
message = error.message;
|
|
109
106
|
metadata = error.metadata;
|
|
110
|
-
|
|
111
|
-
msg: "structured error passthrough",
|
|
112
|
-
group,
|
|
113
|
-
code,
|
|
114
|
-
message,
|
|
115
|
-
...EXTRA_ERROR_LOG,
|
|
116
|
-
...extraLog
|
|
117
|
-
});
|
|
107
|
+
actor = error.actor;
|
|
118
108
|
} else if (RivetError.isActorError(error) && error.public) {
|
|
119
109
|
statusCode = "statusCode" in error && error.statusCode ? error.statusCode : 400;
|
|
120
110
|
public_ = true;
|
|
@@ -122,14 +112,7 @@ function deconstructError(error, logger4, extraLog, exposeInternalError = false)
|
|
|
122
112
|
code = error.code;
|
|
123
113
|
message = getErrorMessage(error);
|
|
124
114
|
metadata = error.metadata;
|
|
125
|
-
|
|
126
|
-
msg: "public error",
|
|
127
|
-
group,
|
|
128
|
-
code,
|
|
129
|
-
message,
|
|
130
|
-
...EXTRA_ERROR_LOG,
|
|
131
|
-
...extraLog
|
|
132
|
-
});
|
|
115
|
+
actor = error.actor;
|
|
133
116
|
} else if (exposeInternalError) {
|
|
134
117
|
if (RivetError.isActorError(error)) {
|
|
135
118
|
statusCode = 500;
|
|
@@ -138,30 +121,13 @@ function deconstructError(error, logger4, extraLog, exposeInternalError = false)
|
|
|
138
121
|
code = error.code;
|
|
139
122
|
message = getErrorMessage(error);
|
|
140
123
|
metadata = error.metadata;
|
|
141
|
-
|
|
142
|
-
msg: "internal error",
|
|
143
|
-
group,
|
|
144
|
-
code,
|
|
145
|
-
message,
|
|
146
|
-
stack: error?.stack,
|
|
147
|
-
...EXTRA_ERROR_LOG,
|
|
148
|
-
...extraLog
|
|
149
|
-
});
|
|
124
|
+
actor = error.actor;
|
|
150
125
|
} else {
|
|
151
126
|
statusCode = 500;
|
|
152
127
|
public_ = false;
|
|
153
128
|
group = "rivetkit";
|
|
154
129
|
code = INTERNAL_ERROR_CODE;
|
|
155
130
|
message = getErrorMessage(error);
|
|
156
|
-
logger4.info({
|
|
157
|
-
msg: "internal error",
|
|
158
|
-
group,
|
|
159
|
-
code,
|
|
160
|
-
message,
|
|
161
|
-
stack: error?.stack,
|
|
162
|
-
...EXTRA_ERROR_LOG,
|
|
163
|
-
...extraLog
|
|
164
|
-
});
|
|
165
131
|
}
|
|
166
132
|
} else {
|
|
167
133
|
statusCode = 500;
|
|
@@ -169,16 +135,12 @@ function deconstructError(error, logger4, extraLog, exposeInternalError = false)
|
|
|
169
135
|
group = "rivetkit";
|
|
170
136
|
code = INTERNAL_ERROR_CODE;
|
|
171
137
|
message = INTERNAL_ERROR_DESCRIPTION;
|
|
138
|
+
if (RivetError.isActorError(error)) {
|
|
139
|
+
actor = error.actor;
|
|
140
|
+
}
|
|
172
141
|
metadata = {
|
|
173
|
-
//url: `https://
|
|
142
|
+
//url: `https://dashboard.rivet.dev/projects/${actorMetadata.project.slug}/environments/${actorMetadata.environment.slug}/actors?actorId=${actorMetadata.actor.id}`,
|
|
174
143
|
};
|
|
175
|
-
logger4.warn({
|
|
176
|
-
msg: "internal error",
|
|
177
|
-
error: getErrorMessage(error),
|
|
178
|
-
stack: error?.stack,
|
|
179
|
-
...EXTRA_ERROR_LOG,
|
|
180
|
-
...extraLog
|
|
181
|
-
});
|
|
182
144
|
}
|
|
183
145
|
return {
|
|
184
146
|
__type: "ActorError",
|
|
@@ -187,7 +149,8 @@ function deconstructError(error, logger4, extraLog, exposeInternalError = false)
|
|
|
187
149
|
group,
|
|
188
150
|
code,
|
|
189
151
|
message,
|
|
190
|
-
metadata
|
|
152
|
+
metadata,
|
|
153
|
+
actor
|
|
191
154
|
};
|
|
192
155
|
}
|
|
193
156
|
function stringifyError(error) {
|
|
@@ -231,7 +194,7 @@ function noopNext() {
|
|
|
231
194
|
// package.json
|
|
232
195
|
var package_default = {
|
|
233
196
|
name: "rivetkit",
|
|
234
|
-
version: "0.0.0-
|
|
197
|
+
version: "0.0.0-sqlite-uds.4e59a38",
|
|
235
198
|
description: "Lightweight libraries for building stateful actors on edge platforms",
|
|
236
199
|
license: "Apache-2.0",
|
|
237
200
|
keywords: [
|
|
@@ -303,6 +266,16 @@ var package_default = {
|
|
|
303
266
|
default: "./dist/tsup/db/drizzle.cjs"
|
|
304
267
|
}
|
|
305
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
|
+
},
|
|
306
279
|
"./client": {
|
|
307
280
|
import: {
|
|
308
281
|
browser: {
|
|
@@ -347,6 +320,16 @@ var package_default = {
|
|
|
347
320
|
default: "./dist/tsup/inspector/mod.cjs"
|
|
348
321
|
}
|
|
349
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
|
+
},
|
|
350
333
|
"./inspector/client": {
|
|
351
334
|
import: {
|
|
352
335
|
types: "./dist/browser/inspector/client.d.ts",
|
|
@@ -382,7 +365,7 @@ var package_default = {
|
|
|
382
365
|
"./dist/tsup/chunk-*.cjs"
|
|
383
366
|
],
|
|
384
367
|
scripts: {
|
|
385
|
-
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",
|
|
386
369
|
"build:browser": "tsup --config tsup.browser.config.ts",
|
|
387
370
|
"check-types": "tsc --noEmit",
|
|
388
371
|
lint: "biome check . && pnpm run check:test-skips && pnpm run check:wait-for-comments",
|
|
@@ -399,13 +382,12 @@ var package_default = {
|
|
|
399
382
|
"actor-config-schema-gen": "tsx scripts/actor-config-schema-gen.ts"
|
|
400
383
|
},
|
|
401
384
|
dependencies: {
|
|
402
|
-
"@rivet-dev/agent-os-core": "^0.1.1",
|
|
403
|
-
"@hono/node-server": "^1.18.2",
|
|
404
|
-
"@hono/node-ws": "^1.1.1",
|
|
405
385
|
"@hono/zod-openapi": "^1.1.5",
|
|
386
|
+
"@rivet-dev/agent-os-core": "^0.1.1",
|
|
406
387
|
"@rivetkit/bare-ts": "^0.6.2",
|
|
407
388
|
"@rivetkit/engine-cli": "workspace:*",
|
|
408
389
|
"@rivetkit/engine-envoy-protocol": "workspace:*",
|
|
390
|
+
"@rivetkit/on-change": "6.0.1",
|
|
409
391
|
"@rivetkit/rivetkit-napi": "workspace:*",
|
|
410
392
|
"@rivetkit/rivetkit-wasm": "workspace:*",
|
|
411
393
|
"@rivetkit/traces": "workspace:*",
|
|
@@ -413,7 +395,6 @@ var package_default = {
|
|
|
413
395
|
"@rivetkit/workflow-engine": "workspace:*",
|
|
414
396
|
"cbor-x": "^1.6.0",
|
|
415
397
|
"drizzle-orm": "^0.44.2",
|
|
416
|
-
"get-port": "^7.1.0",
|
|
417
398
|
hono: "^4.7.0",
|
|
418
399
|
invariant: "^2.2.4",
|
|
419
400
|
"p-retry": "^6.2.1",
|
|
@@ -423,14 +404,17 @@ var package_default = {
|
|
|
423
404
|
zod: "^4.1.0"
|
|
424
405
|
},
|
|
425
406
|
devDependencies: {
|
|
407
|
+
"@biomejs/biome": "^2.3",
|
|
426
408
|
"@copilotkit/llmock": "^1.6.0",
|
|
409
|
+
"@hono/node-server": "^1.18.2",
|
|
410
|
+
"@hono/node-ws": "^1.1.1",
|
|
427
411
|
"@rivet-dev/agent-os-common": "*",
|
|
428
412
|
"@rivet-dev/agent-os-pi": "^0.1.1",
|
|
429
|
-
"@biomejs/biome": "^2.3",
|
|
430
413
|
"@standard-schema/spec": "^1.0.0",
|
|
431
414
|
"@types/invariant": "^2",
|
|
432
415
|
"@types/node": "^22.13.1",
|
|
433
416
|
eventsource: "^4.0.0",
|
|
417
|
+
"get-port": "^7.1.0",
|
|
434
418
|
tsup: "^8.4.0",
|
|
435
419
|
tsx: "^4.19.4",
|
|
436
420
|
typescript: "^5.7.3",
|
|
@@ -457,12 +441,81 @@ var package_default = {
|
|
|
457
441
|
stableVersion: "0.8.0"
|
|
458
442
|
};
|
|
459
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
|
+
|
|
460
518
|
// src/common/log.ts
|
|
461
|
-
import {
|
|
462
|
-
pino,
|
|
463
|
-
stdTimeFunctions
|
|
464
|
-
} from "pino";
|
|
465
|
-
import { z } from "zod/v4";
|
|
466
519
|
var baseLogger;
|
|
467
520
|
var configuredLogLevel;
|
|
468
521
|
var loggerCache = /* @__PURE__ */ new Map();
|
|
@@ -492,16 +545,14 @@ function getPinoLevel(logLevel) {
|
|
|
492
545
|
function getIncludeTarget() {
|
|
493
546
|
return getLogTarget();
|
|
494
547
|
}
|
|
495
|
-
function
|
|
496
|
-
|
|
497
|
-
configuredLogLevel = logLevel;
|
|
498
|
-
}
|
|
499
|
-
baseLogger = pino(
|
|
548
|
+
function makeDefaultLogger(logLevel) {
|
|
549
|
+
return pino(
|
|
500
550
|
{
|
|
501
551
|
level: getPinoLevel(logLevel),
|
|
502
552
|
messageKey: "msg",
|
|
503
553
|
// Do not include pid/hostname in output
|
|
504
554
|
base: {},
|
|
555
|
+
errorKey: "error",
|
|
505
556
|
// Keep the numeric level so the logfmt sink can match Pino's levels.
|
|
506
557
|
formatters: {
|
|
507
558
|
level(_label, number) {
|
|
@@ -512,6 +563,12 @@ function configureDefaultLogger(logLevel) {
|
|
|
512
563
|
},
|
|
513
564
|
createLogfmtDestination()
|
|
514
565
|
);
|
|
566
|
+
}
|
|
567
|
+
function configureDefaultLogger(logLevel) {
|
|
568
|
+
if (logLevel) {
|
|
569
|
+
configuredLogLevel = logLevel;
|
|
570
|
+
}
|
|
571
|
+
baseLogger = makeDefaultLogger(logLevel);
|
|
515
572
|
loggerCache.clear();
|
|
516
573
|
}
|
|
517
574
|
function getBaseLogger() {
|
|
@@ -606,79 +663,12 @@ function quoteLogfmtString(value) {
|
|
|
606
663
|
return `"${value.replace(/\\/g, "\\\\").replace(/"/g, '\\"').replace(/\n/g, "\\n")}"`;
|
|
607
664
|
}
|
|
608
665
|
|
|
609
|
-
// src/utils.ts
|
|
610
|
-
var VERSION = package_default.version;
|
|
611
|
-
var _userAgent;
|
|
612
|
-
function httpUserAgent() {
|
|
613
|
-
if (_userAgent !== void 0) {
|
|
614
|
-
return _userAgent;
|
|
615
|
-
}
|
|
616
|
-
let userAgent = `RivetKit/${VERSION}`;
|
|
617
|
-
const navigatorObj = typeof navigator !== "undefined" ? navigator : void 0;
|
|
618
|
-
if (navigatorObj?.userAgent) userAgent += ` ${navigatorObj.userAgent}`;
|
|
619
|
-
_userAgent = userAgent;
|
|
620
|
-
return userAgent;
|
|
621
|
-
}
|
|
622
|
-
function getEnvUniversal(key) {
|
|
623
|
-
if (typeof Deno !== "undefined") {
|
|
624
|
-
return Deno.env.get(key);
|
|
625
|
-
} else if (typeof process !== "undefined") {
|
|
626
|
-
return process.env[key];
|
|
627
|
-
}
|
|
628
|
-
}
|
|
629
|
-
function promiseWithResolvers(onReject) {
|
|
630
|
-
let resolve;
|
|
631
|
-
let reject;
|
|
632
|
-
const promise = new Promise((res, rej) => {
|
|
633
|
-
resolve = res;
|
|
634
|
-
reject = rej;
|
|
635
|
-
});
|
|
636
|
-
promise.catch(onReject);
|
|
637
|
-
return { promise, resolve, reject };
|
|
638
|
-
}
|
|
639
|
-
function bufferToArrayBuffer(buf) {
|
|
640
|
-
return buf.buffer.slice(
|
|
641
|
-
buf.byteOffset,
|
|
642
|
-
buf.byteOffset + buf.byteLength
|
|
643
|
-
);
|
|
644
|
-
}
|
|
645
|
-
function combineUrlPath(endpoint, path, queryParams) {
|
|
646
|
-
const baseUrl = new URL(endpoint);
|
|
647
|
-
const pathParts = path.split("?");
|
|
648
|
-
const pathOnly = pathParts[0];
|
|
649
|
-
const existingQuery = pathParts[1] || "";
|
|
650
|
-
const basePath = baseUrl.pathname.replace(/\/$/, "");
|
|
651
|
-
const cleanPath = pathOnly.startsWith("/") ? pathOnly : `/${pathOnly}`;
|
|
652
|
-
const fullPath = (basePath + cleanPath).replace(/\/\//g, "/");
|
|
653
|
-
const queryParts = [];
|
|
654
|
-
if (existingQuery) {
|
|
655
|
-
queryParts.push(existingQuery);
|
|
656
|
-
}
|
|
657
|
-
if (queryParams) {
|
|
658
|
-
for (const [key, value] of Object.entries(queryParams)) {
|
|
659
|
-
if (value !== void 0) {
|
|
660
|
-
queryParts.push(
|
|
661
|
-
`${encodeURIComponent(key)}=${encodeURIComponent(value)}`
|
|
662
|
-
);
|
|
663
|
-
}
|
|
664
|
-
}
|
|
665
|
-
}
|
|
666
|
-
const fullQuery = queryParts.length > 0 ? `?${queryParts.join("&")}` : "";
|
|
667
|
-
return `${baseUrl.protocol}//${baseUrl.host}${fullPath}${fullQuery}`;
|
|
668
|
-
}
|
|
669
|
-
var EXTRA_ERROR_LOG = {
|
|
670
|
-
issues: "https://github.com/rivet-dev/rivet/issues",
|
|
671
|
-
support: "https://rivet.dev/discord",
|
|
672
|
-
version: VERSION
|
|
673
|
-
};
|
|
674
|
-
|
|
675
666
|
// src/devtools-loader/log.ts
|
|
676
667
|
function logger() {
|
|
677
668
|
return getLogger("devtools");
|
|
678
669
|
}
|
|
679
670
|
|
|
680
671
|
// src/devtools-loader/index.ts
|
|
681
|
-
var DEFAULT_DEVTOOLS_URL = (version = VERSION) => `https://releases.rivet.dev/rivet/latest/devtools/mod.js?v=${version}`;
|
|
682
672
|
var scriptId = "rivetkit-devtools-script";
|
|
683
673
|
function injectDevtools(config) {
|
|
684
674
|
if (!window) {
|
|
@@ -686,9 +676,10 @@ function injectDevtools(config) {
|
|
|
686
676
|
return;
|
|
687
677
|
}
|
|
688
678
|
if (!document.getElementById(scriptId)) {
|
|
679
|
+
const src = `${config.endpoint?.replace(/\/$/, "")}/devtools/mod.js`;
|
|
689
680
|
const script = document.createElement("script");
|
|
690
681
|
script.id = scriptId;
|
|
691
|
-
script.src =
|
|
682
|
+
script.src = src;
|
|
692
683
|
script.async = true;
|
|
693
684
|
document.head.appendChild(script);
|
|
694
685
|
}
|
|
@@ -708,6 +699,7 @@ var KEYS = {
|
|
|
708
699
|
INSPECTOR_TOKEN: Uint8Array.from([3]),
|
|
709
700
|
KV: Uint8Array.from([4]),
|
|
710
701
|
QUEUE_PREFIX: Uint8Array.from([5]),
|
|
702
|
+
LAST_PUSHED_ALARM: Uint8Array.from([6]),
|
|
711
703
|
WORKFLOW_PREFIX: Uint8Array.from([6]),
|
|
712
704
|
TRACES_PREFIX: Uint8Array.from([7])
|
|
713
705
|
};
|
|
@@ -797,7 +789,7 @@ function deserializeActorKey(keyString) {
|
|
|
797
789
|
}
|
|
798
790
|
}
|
|
799
791
|
if (escaping) {
|
|
800
|
-
parts.push(currentPart
|
|
792
|
+
parts.push(`${currentPart}\\`);
|
|
801
793
|
} else if (isEmptyStringMarker) {
|
|
802
794
|
parts.push("");
|
|
803
795
|
} else if (currentPart !== "" || parts.length > 0) {
|
|
@@ -815,18 +807,19 @@ var HEADER_CONN_PARAMS = "x-rivet-conn-params";
|
|
|
815
807
|
var HEADER_RIVET_TOKEN = "x-rivet-token";
|
|
816
808
|
var HEADER_RIVET_TARGET = "x-rivet-target";
|
|
817
809
|
var HEADER_RIVET_ACTOR = "x-rivet-actor";
|
|
818
|
-
var
|
|
810
|
+
var HEADER_RIVET_SKIP_READY_WAIT = "x-rivet-skip-ready-wait";
|
|
819
811
|
var WS_PROTOCOL_STANDARD = "rivet";
|
|
820
812
|
var WS_PROTOCOL_TARGET = "rivet_target.";
|
|
821
813
|
var WS_PROTOCOL_ACTOR = "rivet_actor.";
|
|
822
814
|
var WS_PROTOCOL_ENCODING = "rivet_encoding.";
|
|
823
815
|
var WS_PROTOCOL_CONN_PARAMS = "rivet_conn_params.";
|
|
824
|
-
var
|
|
816
|
+
var WS_PROTOCOL_TOKEN = "rivet_token.";
|
|
817
|
+
var WS_PROTOCOL_SKIP_READY_WAIT = "rivet_skip_ready_wait";
|
|
825
818
|
var WS_PROTOCOL_TEST_ACK_HOOK = "rivet_test_ack_hook.";
|
|
826
819
|
|
|
827
820
|
// src/engine-client/driver.ts
|
|
828
|
-
function
|
|
829
|
-
return options.
|
|
821
|
+
function shouldSkipReadyWait(options = {}) {
|
|
822
|
+
return options.skipReadyWait === true;
|
|
830
823
|
}
|
|
831
824
|
|
|
832
825
|
// src/serde.ts
|
|
@@ -839,6 +832,10 @@ var JSON_COMPAT_BIGINT = "$BigInt";
|
|
|
839
832
|
var JSON_COMPAT_ARRAY_BUFFER = "$ArrayBuffer";
|
|
840
833
|
var JSON_COMPAT_UINT8_ARRAY = "$Uint8Array";
|
|
841
834
|
var JSON_COMPAT_UNDEFINED = "$Undefined";
|
|
835
|
+
var JSON_COMPAT_SET = "$Set";
|
|
836
|
+
function isTypedArray(value) {
|
|
837
|
+
return value instanceof Uint8ClampedArray || value instanceof Uint16Array || value instanceof Uint32Array || value instanceof BigUint64Array || value instanceof Int8Array || value instanceof Int16Array || value instanceof Int32Array || value instanceof BigInt64Array || value instanceof Float32Array || value instanceof Float64Array;
|
|
838
|
+
}
|
|
842
839
|
var EncodingSchema = z2.enum(["json", "cbor", "bare"]);
|
|
843
840
|
async function inputDataToBuffer(data) {
|
|
844
841
|
if (typeof data === "string") {
|
|
@@ -873,9 +870,15 @@ function isPlainObject(value) {
|
|
|
873
870
|
return proto === Object.prototype || proto === null;
|
|
874
871
|
}
|
|
875
872
|
function encodeJsonCompatValue(input) {
|
|
873
|
+
if (input === null) {
|
|
874
|
+
return input;
|
|
875
|
+
}
|
|
876
876
|
if (input === void 0) {
|
|
877
877
|
return [JSON_COMPAT_UNDEFINED, 0];
|
|
878
878
|
}
|
|
879
|
+
if (typeof input === "string" || typeof input === "number" || typeof input === "boolean") {
|
|
880
|
+
return input;
|
|
881
|
+
}
|
|
879
882
|
if (typeof input === "bigint") {
|
|
880
883
|
return [JSON_COMPAT_BIGINT, input.toString()];
|
|
881
884
|
}
|
|
@@ -885,10 +888,34 @@ function encodeJsonCompatValue(input) {
|
|
|
885
888
|
if (input instanceof Uint8Array) {
|
|
886
889
|
return [JSON_COMPAT_UINT8_ARRAY, base64EncodeUint8Array(input)];
|
|
887
890
|
}
|
|
891
|
+
if (isTypedArray(input)) {
|
|
892
|
+
return input;
|
|
893
|
+
}
|
|
894
|
+
if (input instanceof Date || input instanceof RegExp || input instanceof Error) {
|
|
895
|
+
return input;
|
|
896
|
+
}
|
|
897
|
+
if (input instanceof Set) {
|
|
898
|
+
const encoded = [...input.values()].map(
|
|
899
|
+
(v) => encodeJsonCompatValue(v)
|
|
900
|
+
);
|
|
901
|
+
return [JSON_COMPAT_SET, encoded];
|
|
902
|
+
}
|
|
903
|
+
if (input instanceof Map) {
|
|
904
|
+
const encoded = /* @__PURE__ */ new Map();
|
|
905
|
+
for (const [k, v] of input.entries()) {
|
|
906
|
+
encoded.set(
|
|
907
|
+
encodeJsonCompatValue(k),
|
|
908
|
+
encodeJsonCompatValue(v)
|
|
909
|
+
);
|
|
910
|
+
}
|
|
911
|
+
return encoded;
|
|
912
|
+
}
|
|
888
913
|
if (Array.isArray(input)) {
|
|
889
|
-
const encoded = input.map(
|
|
914
|
+
const encoded = input.map(
|
|
915
|
+
(value) => encodeJsonCompatValue(value)
|
|
916
|
+
);
|
|
890
917
|
if (encoded.length === 2 && typeof encoded[0] === "string" && encoded[0].startsWith("$")) {
|
|
891
|
-
return [
|
|
918
|
+
return [`$${encoded[0]}`, encoded[1]];
|
|
892
919
|
}
|
|
893
920
|
return encoded;
|
|
894
921
|
}
|
|
@@ -899,7 +926,8 @@ function encodeJsonCompatValue(input) {
|
|
|
899
926
|
}
|
|
900
927
|
return encoded;
|
|
901
928
|
}
|
|
902
|
-
|
|
929
|
+
const typeName = typeof input === "object" && input !== null ? input.constructor?.name ?? typeof input : typeof input;
|
|
930
|
+
throw new TypeError(`Value of type "${typeName}" is not CBOR serializable`);
|
|
903
931
|
}
|
|
904
932
|
function reviveJsonCompatValue(input, options = {}) {
|
|
905
933
|
if (typeof input === "bigint") {
|
|
@@ -908,6 +936,16 @@ function reviveJsonCompatValue(input, options = {}) {
|
|
|
908
936
|
}
|
|
909
937
|
return input;
|
|
910
938
|
}
|
|
939
|
+
if (input instanceof Map) {
|
|
940
|
+
const revived = /* @__PURE__ */ new Map();
|
|
941
|
+
for (const [k, v] of input.entries()) {
|
|
942
|
+
revived.set(
|
|
943
|
+
reviveJsonCompatValue(k, options),
|
|
944
|
+
reviveJsonCompatValue(v, options)
|
|
945
|
+
);
|
|
946
|
+
}
|
|
947
|
+
return revived;
|
|
948
|
+
}
|
|
911
949
|
if (Array.isArray(input)) {
|
|
912
950
|
if (input.length === 2 && typeof input[0] === "string" && input[0].startsWith("$")) {
|
|
913
951
|
if (input[0] === JSON_COMPAT_BIGINT) {
|
|
@@ -922,6 +960,12 @@ function reviveJsonCompatValue(input, options = {}) {
|
|
|
922
960
|
if (input[0] === JSON_COMPAT_UNDEFINED) {
|
|
923
961
|
return void 0;
|
|
924
962
|
}
|
|
963
|
+
if (input[0] === JSON_COMPAT_SET) {
|
|
964
|
+
const items = input[1].map(
|
|
965
|
+
(v) => reviveJsonCompatValue(v, options)
|
|
966
|
+
);
|
|
967
|
+
return new Set(items);
|
|
968
|
+
}
|
|
925
969
|
if (input[0].startsWith("$$")) {
|
|
926
970
|
return [
|
|
927
971
|
input[0].substring(1),
|
|
@@ -963,19 +1007,13 @@ function jsonStringifyCompat(input) {
|
|
|
963
1007
|
return [JSON_COMPAT_BIGINT, value.toString()];
|
|
964
1008
|
}
|
|
965
1009
|
if (value instanceof ArrayBuffer) {
|
|
966
|
-
return [
|
|
967
|
-
JSON_COMPAT_ARRAY_BUFFER,
|
|
968
|
-
base64EncodeArrayBuffer(value)
|
|
969
|
-
];
|
|
1010
|
+
return [JSON_COMPAT_ARRAY_BUFFER, base64EncodeArrayBuffer(value)];
|
|
970
1011
|
}
|
|
971
1012
|
if (value instanceof Uint8Array) {
|
|
972
|
-
return [
|
|
973
|
-
JSON_COMPAT_UINT8_ARRAY,
|
|
974
|
-
base64EncodeUint8Array(value)
|
|
975
|
-
];
|
|
1013
|
+
return [JSON_COMPAT_UINT8_ARRAY, base64EncodeUint8Array(value)];
|
|
976
1014
|
}
|
|
977
1015
|
if (Array.isArray(value) && value.length === 2 && typeof value[0] === "string" && value[0].startsWith("$")) {
|
|
978
|
-
return [
|
|
1016
|
+
return [`$${value[0]}`, value[1]];
|
|
979
1017
|
}
|
|
980
1018
|
return value;
|
|
981
1019
|
});
|
|
@@ -1087,7 +1125,7 @@ async function sendHttpRequestToGateway(runConfig, gatewayUrl, actorRequest, opt
|
|
|
1087
1125
|
if (reqBody.byteLength !== 0) {
|
|
1088
1126
|
bodyToSend = reqBody;
|
|
1089
1127
|
guardHeaders.delete("transfer-encoding");
|
|
1090
|
-
guardHeaders.
|
|
1128
|
+
guardHeaders.delete("content-length");
|
|
1091
1129
|
}
|
|
1092
1130
|
}
|
|
1093
1131
|
const guardRequest = new Request(gatewayUrl, {
|
|
@@ -1116,8 +1154,8 @@ function buildGuardHeaders(runConfig, actorRequest, options) {
|
|
|
1116
1154
|
headers.set(HEADER_RIVET_TARGET, "actor");
|
|
1117
1155
|
headers.set(HEADER_RIVET_ACTOR, options.directActorId);
|
|
1118
1156
|
}
|
|
1119
|
-
if (
|
|
1120
|
-
headers.set(
|
|
1157
|
+
if (shouldSkipReadyWait(options)) {
|
|
1158
|
+
headers.set(HEADER_RIVET_SKIP_READY_WAIT, "1");
|
|
1121
1159
|
}
|
|
1122
1160
|
return headers;
|
|
1123
1161
|
}
|
|
@@ -1229,8 +1267,8 @@ var ClientConfigSchemaBase = z3.object({
|
|
|
1229
1267
|
encoding: EncodingSchema.default("bare"),
|
|
1230
1268
|
headers: z3.record(z3.string(), z3.string()).optional().default(() => ({})),
|
|
1231
1269
|
gateway: z3.object({
|
|
1232
|
-
|
|
1233
|
-
}).optional().default(() => ({
|
|
1270
|
+
skipReadyWait: z3.boolean().optional().default(false)
|
|
1271
|
+
}).optional().default(() => ({ skipReadyWait: false })),
|
|
1234
1272
|
// See RunConfig.getUpgradeWebSocket
|
|
1235
1273
|
//
|
|
1236
1274
|
// This is required in the client config in order to support
|
|
@@ -1534,8 +1572,8 @@ function buildActorQueryGatewayUrl(endpoint, namespace, query, token, path = "",
|
|
|
1534
1572
|
if (token !== void 0) {
|
|
1535
1573
|
params.append("rvt-token", token);
|
|
1536
1574
|
}
|
|
1537
|
-
if (
|
|
1538
|
-
params.append("rvt-
|
|
1575
|
+
if (shouldSkipReadyWait(options)) {
|
|
1576
|
+
params.append("rvt-skip-ready-wait", "true");
|
|
1539
1577
|
}
|
|
1540
1578
|
const queryString = params.toString();
|
|
1541
1579
|
let separator;
|
|
@@ -1603,16 +1641,19 @@ async function openWebSocketToGateway(runConfig, gatewayUrl, encoding, params, o
|
|
|
1603
1641
|
}
|
|
1604
1642
|
return bufferedWs;
|
|
1605
1643
|
}
|
|
1606
|
-
function buildWebSocketProtocols(
|
|
1644
|
+
function buildWebSocketProtocols(runConfig, encoding, params, ackHookToken, target, options = {}) {
|
|
1607
1645
|
const protocols = [];
|
|
1608
1646
|
protocols.push(WS_PROTOCOL_STANDARD);
|
|
1609
1647
|
protocols.push(`${WS_PROTOCOL_ENCODING}${encoding}`);
|
|
1610
1648
|
if (target) {
|
|
1611
1649
|
protocols.push(`${WS_PROTOCOL_TARGET}${target.target}`);
|
|
1612
1650
|
protocols.push(`${WS_PROTOCOL_ACTOR}${target.actorId}`);
|
|
1651
|
+
if (runConfig.token) {
|
|
1652
|
+
protocols.push(`${WS_PROTOCOL_TOKEN}${runConfig.token}`);
|
|
1653
|
+
}
|
|
1613
1654
|
}
|
|
1614
|
-
if (
|
|
1615
|
-
protocols.push(
|
|
1655
|
+
if (shouldSkipReadyWait(options)) {
|
|
1656
|
+
protocols.push(WS_PROTOCOL_SKIP_READY_WAIT);
|
|
1616
1657
|
}
|
|
1617
1658
|
if (params) {
|
|
1618
1659
|
protocols.push(
|
|
@@ -2568,129 +2609,561 @@ function write3(bc, x) {
|
|
|
2568
2609
|
function read4(bc) {
|
|
2569
2610
|
return bare3.readBool(bc) ? bare3.readU64(bc) : null;
|
|
2570
2611
|
}
|
|
2571
|
-
function write4(bc, x) {
|
|
2572
|
-
bare3.writeBool(bc, x != null);
|
|
2612
|
+
function write4(bc, x) {
|
|
2613
|
+
bare3.writeBool(bc, x != null);
|
|
2614
|
+
if (x != null) {
|
|
2615
|
+
bare3.writeU64(bc, x);
|
|
2616
|
+
}
|
|
2617
|
+
}
|
|
2618
|
+
function readHttpQueueSendRequest(bc) {
|
|
2619
|
+
return {
|
|
2620
|
+
body: readCbor3(bc),
|
|
2621
|
+
name: read2(bc),
|
|
2622
|
+
wait: read3(bc),
|
|
2623
|
+
timeout: read4(bc)
|
|
2624
|
+
};
|
|
2625
|
+
}
|
|
2626
|
+
function writeHttpQueueSendRequest(bc, x) {
|
|
2627
|
+
writeCbor3(bc, x.body);
|
|
2628
|
+
write2(bc, x.name);
|
|
2629
|
+
write3(bc, x.wait);
|
|
2630
|
+
write4(bc, x.timeout);
|
|
2631
|
+
}
|
|
2632
|
+
function encodeHttpQueueSendRequest(x, config) {
|
|
2633
|
+
const fullConfig = config != null ? bare3.Config(config) : DEFAULT_CONFIG3;
|
|
2634
|
+
const bc = new bare3.ByteCursor(
|
|
2635
|
+
new Uint8Array(fullConfig.initialBufferLength),
|
|
2636
|
+
fullConfig
|
|
2637
|
+
);
|
|
2638
|
+
writeHttpQueueSendRequest(bc, x);
|
|
2639
|
+
return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);
|
|
2640
|
+
}
|
|
2641
|
+
function decodeHttpQueueSendRequest(bytes) {
|
|
2642
|
+
const bc = new bare3.ByteCursor(bytes, DEFAULT_CONFIG3);
|
|
2643
|
+
const result = readHttpQueueSendRequest(bc);
|
|
2644
|
+
if (bc.offset < bc.view.byteLength) {
|
|
2645
|
+
throw new bare3.BareError(bc.offset, "remaining bytes");
|
|
2646
|
+
}
|
|
2647
|
+
return result;
|
|
2648
|
+
}
|
|
2649
|
+
function readHttpQueueSendResponse(bc) {
|
|
2650
|
+
return {
|
|
2651
|
+
status: bare3.readString(bc),
|
|
2652
|
+
response: read03(bc)
|
|
2653
|
+
};
|
|
2654
|
+
}
|
|
2655
|
+
function writeHttpQueueSendResponse(bc, x) {
|
|
2656
|
+
bare3.writeString(bc, x.status);
|
|
2657
|
+
write03(bc, x.response);
|
|
2658
|
+
}
|
|
2659
|
+
function encodeHttpQueueSendResponse(x, config) {
|
|
2660
|
+
const fullConfig = config != null ? bare3.Config(config) : DEFAULT_CONFIG3;
|
|
2661
|
+
const bc = new bare3.ByteCursor(
|
|
2662
|
+
new Uint8Array(fullConfig.initialBufferLength),
|
|
2663
|
+
fullConfig
|
|
2664
|
+
);
|
|
2665
|
+
writeHttpQueueSendResponse(bc, x);
|
|
2666
|
+
return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);
|
|
2667
|
+
}
|
|
2668
|
+
function decodeHttpQueueSendResponse(bytes) {
|
|
2669
|
+
const bc = new bare3.ByteCursor(bytes, DEFAULT_CONFIG3);
|
|
2670
|
+
const result = readHttpQueueSendResponse(bc);
|
|
2671
|
+
if (bc.offset < bc.view.byteLength) {
|
|
2672
|
+
throw new bare3.BareError(bc.offset, "remaining bytes");
|
|
2673
|
+
}
|
|
2674
|
+
return result;
|
|
2675
|
+
}
|
|
2676
|
+
function readHttpResponseError3(bc) {
|
|
2677
|
+
return {
|
|
2678
|
+
group: bare3.readString(bc),
|
|
2679
|
+
code: bare3.readString(bc),
|
|
2680
|
+
message: bare3.readString(bc),
|
|
2681
|
+
metadata: read03(bc)
|
|
2682
|
+
};
|
|
2683
|
+
}
|
|
2684
|
+
function writeHttpResponseError3(bc, x) {
|
|
2685
|
+
bare3.writeString(bc, x.group);
|
|
2686
|
+
bare3.writeString(bc, x.code);
|
|
2687
|
+
bare3.writeString(bc, x.message);
|
|
2688
|
+
write03(bc, x.metadata);
|
|
2689
|
+
}
|
|
2690
|
+
function encodeHttpResponseError3(x, config) {
|
|
2691
|
+
const fullConfig = config != null ? bare3.Config(config) : DEFAULT_CONFIG3;
|
|
2692
|
+
const bc = new bare3.ByteCursor(
|
|
2693
|
+
new Uint8Array(fullConfig.initialBufferLength),
|
|
2694
|
+
fullConfig
|
|
2695
|
+
);
|
|
2696
|
+
writeHttpResponseError3(bc, x);
|
|
2697
|
+
return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);
|
|
2698
|
+
}
|
|
2699
|
+
function decodeHttpResponseError3(bytes) {
|
|
2700
|
+
const bc = new bare3.ByteCursor(bytes, DEFAULT_CONFIG3);
|
|
2701
|
+
const result = readHttpResponseError3(bc);
|
|
2702
|
+
if (bc.offset < bc.view.byteLength) {
|
|
2703
|
+
throw new bare3.BareError(bc.offset, "remaining bytes");
|
|
2704
|
+
}
|
|
2705
|
+
return result;
|
|
2706
|
+
}
|
|
2707
|
+
function readHttpResolveResponse3(bc) {
|
|
2708
|
+
return {
|
|
2709
|
+
actorId: bare3.readString(bc)
|
|
2710
|
+
};
|
|
2711
|
+
}
|
|
2712
|
+
function writeHttpResolveResponse3(bc, x) {
|
|
2713
|
+
bare3.writeString(bc, x.actorId);
|
|
2714
|
+
}
|
|
2715
|
+
function encodeHttpResolveResponse3(x, config) {
|
|
2716
|
+
const fullConfig = config != null ? bare3.Config(config) : DEFAULT_CONFIG3;
|
|
2717
|
+
const bc = new bare3.ByteCursor(
|
|
2718
|
+
new Uint8Array(fullConfig.initialBufferLength),
|
|
2719
|
+
fullConfig
|
|
2720
|
+
);
|
|
2721
|
+
writeHttpResolveResponse3(bc, x);
|
|
2722
|
+
return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);
|
|
2723
|
+
}
|
|
2724
|
+
function decodeHttpResolveResponse3(bytes) {
|
|
2725
|
+
const bc = new bare3.ByteCursor(bytes, DEFAULT_CONFIG3);
|
|
2726
|
+
const result = readHttpResolveResponse3(bc);
|
|
2727
|
+
if (bc.offset < bc.view.byteLength) {
|
|
2728
|
+
throw new bare3.BareError(bc.offset, "remaining bytes");
|
|
2729
|
+
}
|
|
2730
|
+
return result;
|
|
2731
|
+
}
|
|
2732
|
+
|
|
2733
|
+
// src/common/bare/generated/client-protocol/v4.ts
|
|
2734
|
+
import * as bare4 from "@rivetkit/bare-ts";
|
|
2735
|
+
var DEFAULT_CONFIG4 = /* @__PURE__ */ bare4.Config({});
|
|
2736
|
+
function readCbor4(bc) {
|
|
2737
|
+
return bare4.readData(bc);
|
|
2738
|
+
}
|
|
2739
|
+
function writeCbor4(bc, x) {
|
|
2740
|
+
bare4.writeData(bc, x);
|
|
2741
|
+
}
|
|
2742
|
+
function read04(bc) {
|
|
2743
|
+
return bare4.readBool(bc) ? bare4.readString(bc) : null;
|
|
2744
|
+
}
|
|
2745
|
+
function write04(bc, x) {
|
|
2746
|
+
bare4.writeBool(bc, x != null);
|
|
2747
|
+
if (x != null) {
|
|
2748
|
+
bare4.writeString(bc, x);
|
|
2749
|
+
}
|
|
2750
|
+
}
|
|
2751
|
+
function readActorSpecifier(bc) {
|
|
2752
|
+
return {
|
|
2753
|
+
actorId: bare4.readString(bc),
|
|
2754
|
+
generation: bare4.readUint(bc),
|
|
2755
|
+
key: read04(bc)
|
|
2756
|
+
};
|
|
2757
|
+
}
|
|
2758
|
+
function writeActorSpecifier(bc, x) {
|
|
2759
|
+
bare4.writeString(bc, x.actorId);
|
|
2760
|
+
bare4.writeUint(bc, x.generation);
|
|
2761
|
+
write04(bc, x.key);
|
|
2762
|
+
}
|
|
2763
|
+
function readInit4(bc) {
|
|
2764
|
+
return {
|
|
2765
|
+
actorId: bare4.readString(bc),
|
|
2766
|
+
connectionId: bare4.readString(bc)
|
|
2767
|
+
};
|
|
2768
|
+
}
|
|
2769
|
+
function writeInit4(bc, x) {
|
|
2770
|
+
bare4.writeString(bc, x.actorId);
|
|
2771
|
+
bare4.writeString(bc, x.connectionId);
|
|
2772
|
+
}
|
|
2773
|
+
function read14(bc) {
|
|
2774
|
+
return bare4.readBool(bc) ? readCbor4(bc) : null;
|
|
2775
|
+
}
|
|
2776
|
+
function write14(bc, x) {
|
|
2777
|
+
bare4.writeBool(bc, x != null);
|
|
2778
|
+
if (x != null) {
|
|
2779
|
+
writeCbor4(bc, x);
|
|
2780
|
+
}
|
|
2781
|
+
}
|
|
2782
|
+
function read22(bc) {
|
|
2783
|
+
return bare4.readBool(bc) ? bare4.readUint(bc) : null;
|
|
2784
|
+
}
|
|
2785
|
+
function write22(bc, x) {
|
|
2786
|
+
bare4.writeBool(bc, x != null);
|
|
2787
|
+
if (x != null) {
|
|
2788
|
+
bare4.writeUint(bc, x);
|
|
2789
|
+
}
|
|
2790
|
+
}
|
|
2791
|
+
function read32(bc) {
|
|
2792
|
+
return bare4.readBool(bc) ? readActorSpecifier(bc) : null;
|
|
2793
|
+
}
|
|
2794
|
+
function write32(bc, x) {
|
|
2795
|
+
bare4.writeBool(bc, x != null);
|
|
2796
|
+
if (x != null) {
|
|
2797
|
+
writeActorSpecifier(bc, x);
|
|
2798
|
+
}
|
|
2799
|
+
}
|
|
2800
|
+
function readError4(bc) {
|
|
2801
|
+
return {
|
|
2802
|
+
group: bare4.readString(bc),
|
|
2803
|
+
code: bare4.readString(bc),
|
|
2804
|
+
message: bare4.readString(bc),
|
|
2805
|
+
metadata: read14(bc),
|
|
2806
|
+
actionId: read22(bc),
|
|
2807
|
+
actor: read32(bc)
|
|
2808
|
+
};
|
|
2809
|
+
}
|
|
2810
|
+
function writeError4(bc, x) {
|
|
2811
|
+
bare4.writeString(bc, x.group);
|
|
2812
|
+
bare4.writeString(bc, x.code);
|
|
2813
|
+
bare4.writeString(bc, x.message);
|
|
2814
|
+
write14(bc, x.metadata);
|
|
2815
|
+
write22(bc, x.actionId);
|
|
2816
|
+
write32(bc, x.actor);
|
|
2817
|
+
}
|
|
2818
|
+
function readActionResponse4(bc) {
|
|
2819
|
+
return {
|
|
2820
|
+
id: bare4.readUint(bc),
|
|
2821
|
+
output: readCbor4(bc)
|
|
2822
|
+
};
|
|
2823
|
+
}
|
|
2824
|
+
function writeActionResponse4(bc, x) {
|
|
2825
|
+
bare4.writeUint(bc, x.id);
|
|
2826
|
+
writeCbor4(bc, x.output);
|
|
2827
|
+
}
|
|
2828
|
+
function readEvent4(bc) {
|
|
2829
|
+
return {
|
|
2830
|
+
name: bare4.readString(bc),
|
|
2831
|
+
args: readCbor4(bc)
|
|
2832
|
+
};
|
|
2833
|
+
}
|
|
2834
|
+
function writeEvent4(bc, x) {
|
|
2835
|
+
bare4.writeString(bc, x.name);
|
|
2836
|
+
writeCbor4(bc, x.args);
|
|
2837
|
+
}
|
|
2838
|
+
function readToClientBody4(bc) {
|
|
2839
|
+
const offset = bc.offset;
|
|
2840
|
+
const tag = bare4.readU8(bc);
|
|
2841
|
+
switch (tag) {
|
|
2842
|
+
case 0:
|
|
2843
|
+
return { tag: "Init", val: readInit4(bc) };
|
|
2844
|
+
case 1:
|
|
2845
|
+
return { tag: "Error", val: readError4(bc) };
|
|
2846
|
+
case 2:
|
|
2847
|
+
return { tag: "ActionResponse", val: readActionResponse4(bc) };
|
|
2848
|
+
case 3:
|
|
2849
|
+
return { tag: "Event", val: readEvent4(bc) };
|
|
2850
|
+
default: {
|
|
2851
|
+
bc.offset = offset;
|
|
2852
|
+
throw new bare4.BareError(offset, "invalid tag");
|
|
2853
|
+
}
|
|
2854
|
+
}
|
|
2855
|
+
}
|
|
2856
|
+
function writeToClientBody4(bc, x) {
|
|
2857
|
+
switch (x.tag) {
|
|
2858
|
+
case "Init": {
|
|
2859
|
+
bare4.writeU8(bc, 0);
|
|
2860
|
+
writeInit4(bc, x.val);
|
|
2861
|
+
break;
|
|
2862
|
+
}
|
|
2863
|
+
case "Error": {
|
|
2864
|
+
bare4.writeU8(bc, 1);
|
|
2865
|
+
writeError4(bc, x.val);
|
|
2866
|
+
break;
|
|
2867
|
+
}
|
|
2868
|
+
case "ActionResponse": {
|
|
2869
|
+
bare4.writeU8(bc, 2);
|
|
2870
|
+
writeActionResponse4(bc, x.val);
|
|
2871
|
+
break;
|
|
2872
|
+
}
|
|
2873
|
+
case "Event": {
|
|
2874
|
+
bare4.writeU8(bc, 3);
|
|
2875
|
+
writeEvent4(bc, x.val);
|
|
2876
|
+
break;
|
|
2877
|
+
}
|
|
2878
|
+
}
|
|
2879
|
+
}
|
|
2880
|
+
function readToClient4(bc) {
|
|
2881
|
+
return {
|
|
2882
|
+
body: readToClientBody4(bc)
|
|
2883
|
+
};
|
|
2884
|
+
}
|
|
2885
|
+
function writeToClient4(bc, x) {
|
|
2886
|
+
writeToClientBody4(bc, x.body);
|
|
2887
|
+
}
|
|
2888
|
+
function encodeToClient4(x, config) {
|
|
2889
|
+
const fullConfig = config != null ? bare4.Config(config) : DEFAULT_CONFIG4;
|
|
2890
|
+
const bc = new bare4.ByteCursor(
|
|
2891
|
+
new Uint8Array(fullConfig.initialBufferLength),
|
|
2892
|
+
fullConfig
|
|
2893
|
+
);
|
|
2894
|
+
writeToClient4(bc, x);
|
|
2895
|
+
return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);
|
|
2896
|
+
}
|
|
2897
|
+
function decodeToClient4(bytes) {
|
|
2898
|
+
const bc = new bare4.ByteCursor(bytes, DEFAULT_CONFIG4);
|
|
2899
|
+
const result = readToClient4(bc);
|
|
2900
|
+
if (bc.offset < bc.view.byteLength) {
|
|
2901
|
+
throw new bare4.BareError(bc.offset, "remaining bytes");
|
|
2902
|
+
}
|
|
2903
|
+
return result;
|
|
2904
|
+
}
|
|
2905
|
+
function readActionRequest4(bc) {
|
|
2906
|
+
return {
|
|
2907
|
+
id: bare4.readUint(bc),
|
|
2908
|
+
name: bare4.readString(bc),
|
|
2909
|
+
args: readCbor4(bc)
|
|
2910
|
+
};
|
|
2911
|
+
}
|
|
2912
|
+
function writeActionRequest4(bc, x) {
|
|
2913
|
+
bare4.writeUint(bc, x.id);
|
|
2914
|
+
bare4.writeString(bc, x.name);
|
|
2915
|
+
writeCbor4(bc, x.args);
|
|
2916
|
+
}
|
|
2917
|
+
function readSubscriptionRequest4(bc) {
|
|
2918
|
+
return {
|
|
2919
|
+
eventName: bare4.readString(bc),
|
|
2920
|
+
subscribe: bare4.readBool(bc)
|
|
2921
|
+
};
|
|
2922
|
+
}
|
|
2923
|
+
function writeSubscriptionRequest4(bc, x) {
|
|
2924
|
+
bare4.writeString(bc, x.eventName);
|
|
2925
|
+
bare4.writeBool(bc, x.subscribe);
|
|
2926
|
+
}
|
|
2927
|
+
function readToServerBody4(bc) {
|
|
2928
|
+
const offset = bc.offset;
|
|
2929
|
+
const tag = bare4.readU8(bc);
|
|
2930
|
+
switch (tag) {
|
|
2931
|
+
case 0:
|
|
2932
|
+
return { tag: "ActionRequest", val: readActionRequest4(bc) };
|
|
2933
|
+
case 1:
|
|
2934
|
+
return { tag: "SubscriptionRequest", val: readSubscriptionRequest4(bc) };
|
|
2935
|
+
default: {
|
|
2936
|
+
bc.offset = offset;
|
|
2937
|
+
throw new bare4.BareError(offset, "invalid tag");
|
|
2938
|
+
}
|
|
2939
|
+
}
|
|
2940
|
+
}
|
|
2941
|
+
function writeToServerBody4(bc, x) {
|
|
2942
|
+
switch (x.tag) {
|
|
2943
|
+
case "ActionRequest": {
|
|
2944
|
+
bare4.writeU8(bc, 0);
|
|
2945
|
+
writeActionRequest4(bc, x.val);
|
|
2946
|
+
break;
|
|
2947
|
+
}
|
|
2948
|
+
case "SubscriptionRequest": {
|
|
2949
|
+
bare4.writeU8(bc, 1);
|
|
2950
|
+
writeSubscriptionRequest4(bc, x.val);
|
|
2951
|
+
break;
|
|
2952
|
+
}
|
|
2953
|
+
}
|
|
2954
|
+
}
|
|
2955
|
+
function readToServer4(bc) {
|
|
2956
|
+
return {
|
|
2957
|
+
body: readToServerBody4(bc)
|
|
2958
|
+
};
|
|
2959
|
+
}
|
|
2960
|
+
function writeToServer4(bc, x) {
|
|
2961
|
+
writeToServerBody4(bc, x.body);
|
|
2962
|
+
}
|
|
2963
|
+
function encodeToServer4(x, config) {
|
|
2964
|
+
const fullConfig = config != null ? bare4.Config(config) : DEFAULT_CONFIG4;
|
|
2965
|
+
const bc = new bare4.ByteCursor(
|
|
2966
|
+
new Uint8Array(fullConfig.initialBufferLength),
|
|
2967
|
+
fullConfig
|
|
2968
|
+
);
|
|
2969
|
+
writeToServer4(bc, x);
|
|
2970
|
+
return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);
|
|
2971
|
+
}
|
|
2972
|
+
function decodeToServer4(bytes) {
|
|
2973
|
+
const bc = new bare4.ByteCursor(bytes, DEFAULT_CONFIG4);
|
|
2974
|
+
const result = readToServer4(bc);
|
|
2975
|
+
if (bc.offset < bc.view.byteLength) {
|
|
2976
|
+
throw new bare4.BareError(bc.offset, "remaining bytes");
|
|
2977
|
+
}
|
|
2978
|
+
return result;
|
|
2979
|
+
}
|
|
2980
|
+
function readHttpActionRequest4(bc) {
|
|
2981
|
+
return {
|
|
2982
|
+
args: readCbor4(bc)
|
|
2983
|
+
};
|
|
2984
|
+
}
|
|
2985
|
+
function writeHttpActionRequest4(bc, x) {
|
|
2986
|
+
writeCbor4(bc, x.args);
|
|
2987
|
+
}
|
|
2988
|
+
function encodeHttpActionRequest4(x, config) {
|
|
2989
|
+
const fullConfig = config != null ? bare4.Config(config) : DEFAULT_CONFIG4;
|
|
2990
|
+
const bc = new bare4.ByteCursor(
|
|
2991
|
+
new Uint8Array(fullConfig.initialBufferLength),
|
|
2992
|
+
fullConfig
|
|
2993
|
+
);
|
|
2994
|
+
writeHttpActionRequest4(bc, x);
|
|
2995
|
+
return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);
|
|
2996
|
+
}
|
|
2997
|
+
function decodeHttpActionRequest4(bytes) {
|
|
2998
|
+
const bc = new bare4.ByteCursor(bytes, DEFAULT_CONFIG4);
|
|
2999
|
+
const result = readHttpActionRequest4(bc);
|
|
3000
|
+
if (bc.offset < bc.view.byteLength) {
|
|
3001
|
+
throw new bare4.BareError(bc.offset, "remaining bytes");
|
|
3002
|
+
}
|
|
3003
|
+
return result;
|
|
3004
|
+
}
|
|
3005
|
+
function readHttpActionResponse4(bc) {
|
|
3006
|
+
return {
|
|
3007
|
+
output: readCbor4(bc)
|
|
3008
|
+
};
|
|
3009
|
+
}
|
|
3010
|
+
function writeHttpActionResponse4(bc, x) {
|
|
3011
|
+
writeCbor4(bc, x.output);
|
|
3012
|
+
}
|
|
3013
|
+
function encodeHttpActionResponse4(x, config) {
|
|
3014
|
+
const fullConfig = config != null ? bare4.Config(config) : DEFAULT_CONFIG4;
|
|
3015
|
+
const bc = new bare4.ByteCursor(
|
|
3016
|
+
new Uint8Array(fullConfig.initialBufferLength),
|
|
3017
|
+
fullConfig
|
|
3018
|
+
);
|
|
3019
|
+
writeHttpActionResponse4(bc, x);
|
|
3020
|
+
return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);
|
|
3021
|
+
}
|
|
3022
|
+
function decodeHttpActionResponse4(bytes) {
|
|
3023
|
+
const bc = new bare4.ByteCursor(bytes, DEFAULT_CONFIG4);
|
|
3024
|
+
const result = readHttpActionResponse4(bc);
|
|
3025
|
+
if (bc.offset < bc.view.byteLength) {
|
|
3026
|
+
throw new bare4.BareError(bc.offset, "remaining bytes");
|
|
3027
|
+
}
|
|
3028
|
+
return result;
|
|
3029
|
+
}
|
|
3030
|
+
function read42(bc) {
|
|
3031
|
+
return bare4.readBool(bc) ? bare4.readBool(bc) : null;
|
|
3032
|
+
}
|
|
3033
|
+
function write42(bc, x) {
|
|
3034
|
+
bare4.writeBool(bc, x != null);
|
|
3035
|
+
if (x != null) {
|
|
3036
|
+
bare4.writeBool(bc, x);
|
|
3037
|
+
}
|
|
3038
|
+
}
|
|
3039
|
+
function read5(bc) {
|
|
3040
|
+
return bare4.readBool(bc) ? bare4.readU64(bc) : null;
|
|
3041
|
+
}
|
|
3042
|
+
function write5(bc, x) {
|
|
3043
|
+
bare4.writeBool(bc, x != null);
|
|
2573
3044
|
if (x != null) {
|
|
2574
|
-
|
|
3045
|
+
bare4.writeU64(bc, x);
|
|
2575
3046
|
}
|
|
2576
3047
|
}
|
|
2577
|
-
function
|
|
3048
|
+
function readHttpQueueSendRequest2(bc) {
|
|
2578
3049
|
return {
|
|
2579
|
-
body:
|
|
2580
|
-
name:
|
|
2581
|
-
wait:
|
|
2582
|
-
timeout:
|
|
3050
|
+
body: readCbor4(bc),
|
|
3051
|
+
name: read04(bc),
|
|
3052
|
+
wait: read42(bc),
|
|
3053
|
+
timeout: read5(bc)
|
|
2583
3054
|
};
|
|
2584
3055
|
}
|
|
2585
|
-
function
|
|
2586
|
-
|
|
2587
|
-
|
|
2588
|
-
|
|
2589
|
-
|
|
3056
|
+
function writeHttpQueueSendRequest2(bc, x) {
|
|
3057
|
+
writeCbor4(bc, x.body);
|
|
3058
|
+
write04(bc, x.name);
|
|
3059
|
+
write42(bc, x.wait);
|
|
3060
|
+
write5(bc, x.timeout);
|
|
2590
3061
|
}
|
|
2591
|
-
function
|
|
2592
|
-
const fullConfig = config != null ?
|
|
2593
|
-
const bc = new
|
|
3062
|
+
function encodeHttpQueueSendRequest2(x, config) {
|
|
3063
|
+
const fullConfig = config != null ? bare4.Config(config) : DEFAULT_CONFIG4;
|
|
3064
|
+
const bc = new bare4.ByteCursor(
|
|
2594
3065
|
new Uint8Array(fullConfig.initialBufferLength),
|
|
2595
3066
|
fullConfig
|
|
2596
3067
|
);
|
|
2597
|
-
|
|
3068
|
+
writeHttpQueueSendRequest2(bc, x);
|
|
2598
3069
|
return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);
|
|
2599
3070
|
}
|
|
2600
|
-
function
|
|
2601
|
-
const bc = new
|
|
2602
|
-
const result =
|
|
3071
|
+
function decodeHttpQueueSendRequest2(bytes) {
|
|
3072
|
+
const bc = new bare4.ByteCursor(bytes, DEFAULT_CONFIG4);
|
|
3073
|
+
const result = readHttpQueueSendRequest2(bc);
|
|
2603
3074
|
if (bc.offset < bc.view.byteLength) {
|
|
2604
|
-
throw new
|
|
3075
|
+
throw new bare4.BareError(bc.offset, "remaining bytes");
|
|
2605
3076
|
}
|
|
2606
3077
|
return result;
|
|
2607
3078
|
}
|
|
2608
|
-
function
|
|
3079
|
+
function readHttpQueueSendResponse2(bc) {
|
|
2609
3080
|
return {
|
|
2610
|
-
status:
|
|
2611
|
-
response:
|
|
3081
|
+
status: bare4.readString(bc),
|
|
3082
|
+
response: read14(bc)
|
|
2612
3083
|
};
|
|
2613
3084
|
}
|
|
2614
|
-
function
|
|
2615
|
-
|
|
2616
|
-
|
|
3085
|
+
function writeHttpQueueSendResponse2(bc, x) {
|
|
3086
|
+
bare4.writeString(bc, x.status);
|
|
3087
|
+
write14(bc, x.response);
|
|
2617
3088
|
}
|
|
2618
|
-
function
|
|
2619
|
-
const fullConfig = config != null ?
|
|
2620
|
-
const bc = new
|
|
3089
|
+
function encodeHttpQueueSendResponse2(x, config) {
|
|
3090
|
+
const fullConfig = config != null ? bare4.Config(config) : DEFAULT_CONFIG4;
|
|
3091
|
+
const bc = new bare4.ByteCursor(
|
|
2621
3092
|
new Uint8Array(fullConfig.initialBufferLength),
|
|
2622
3093
|
fullConfig
|
|
2623
3094
|
);
|
|
2624
|
-
|
|
3095
|
+
writeHttpQueueSendResponse2(bc, x);
|
|
2625
3096
|
return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);
|
|
2626
3097
|
}
|
|
2627
|
-
function
|
|
2628
|
-
const bc = new
|
|
2629
|
-
const result =
|
|
3098
|
+
function decodeHttpQueueSendResponse2(bytes) {
|
|
3099
|
+
const bc = new bare4.ByteCursor(bytes, DEFAULT_CONFIG4);
|
|
3100
|
+
const result = readHttpQueueSendResponse2(bc);
|
|
2630
3101
|
if (bc.offset < bc.view.byteLength) {
|
|
2631
|
-
throw new
|
|
3102
|
+
throw new bare4.BareError(bc.offset, "remaining bytes");
|
|
2632
3103
|
}
|
|
2633
3104
|
return result;
|
|
2634
3105
|
}
|
|
2635
|
-
function
|
|
3106
|
+
function readHttpResponseError4(bc) {
|
|
2636
3107
|
return {
|
|
2637
|
-
group:
|
|
2638
|
-
code:
|
|
2639
|
-
message:
|
|
2640
|
-
metadata:
|
|
3108
|
+
group: bare4.readString(bc),
|
|
3109
|
+
code: bare4.readString(bc),
|
|
3110
|
+
message: bare4.readString(bc),
|
|
3111
|
+
metadata: read14(bc),
|
|
3112
|
+
actor: read32(bc)
|
|
2641
3113
|
};
|
|
2642
3114
|
}
|
|
2643
|
-
function
|
|
2644
|
-
|
|
2645
|
-
|
|
2646
|
-
|
|
2647
|
-
|
|
3115
|
+
function writeHttpResponseError4(bc, x) {
|
|
3116
|
+
bare4.writeString(bc, x.group);
|
|
3117
|
+
bare4.writeString(bc, x.code);
|
|
3118
|
+
bare4.writeString(bc, x.message);
|
|
3119
|
+
write14(bc, x.metadata);
|
|
3120
|
+
write32(bc, x.actor);
|
|
2648
3121
|
}
|
|
2649
|
-
function
|
|
2650
|
-
const fullConfig = config != null ?
|
|
2651
|
-
const bc = new
|
|
3122
|
+
function encodeHttpResponseError4(x, config) {
|
|
3123
|
+
const fullConfig = config != null ? bare4.Config(config) : DEFAULT_CONFIG4;
|
|
3124
|
+
const bc = new bare4.ByteCursor(
|
|
2652
3125
|
new Uint8Array(fullConfig.initialBufferLength),
|
|
2653
3126
|
fullConfig
|
|
2654
3127
|
);
|
|
2655
|
-
|
|
3128
|
+
writeHttpResponseError4(bc, x);
|
|
2656
3129
|
return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);
|
|
2657
3130
|
}
|
|
2658
|
-
function
|
|
2659
|
-
const bc = new
|
|
2660
|
-
const result =
|
|
3131
|
+
function decodeHttpResponseError4(bytes) {
|
|
3132
|
+
const bc = new bare4.ByteCursor(bytes, DEFAULT_CONFIG4);
|
|
3133
|
+
const result = readHttpResponseError4(bc);
|
|
2661
3134
|
if (bc.offset < bc.view.byteLength) {
|
|
2662
|
-
throw new
|
|
3135
|
+
throw new bare4.BareError(bc.offset, "remaining bytes");
|
|
2663
3136
|
}
|
|
2664
3137
|
return result;
|
|
2665
3138
|
}
|
|
2666
|
-
function
|
|
3139
|
+
function readHttpResolveResponse4(bc) {
|
|
2667
3140
|
return {
|
|
2668
|
-
actorId:
|
|
3141
|
+
actorId: bare4.readString(bc)
|
|
2669
3142
|
};
|
|
2670
3143
|
}
|
|
2671
|
-
function
|
|
2672
|
-
|
|
3144
|
+
function writeHttpResolveResponse4(bc, x) {
|
|
3145
|
+
bare4.writeString(bc, x.actorId);
|
|
2673
3146
|
}
|
|
2674
|
-
function
|
|
2675
|
-
const fullConfig = config != null ?
|
|
2676
|
-
const bc = new
|
|
3147
|
+
function encodeHttpResolveResponse4(x, config) {
|
|
3148
|
+
const fullConfig = config != null ? bare4.Config(config) : DEFAULT_CONFIG4;
|
|
3149
|
+
const bc = new bare4.ByteCursor(
|
|
2677
3150
|
new Uint8Array(fullConfig.initialBufferLength),
|
|
2678
3151
|
fullConfig
|
|
2679
3152
|
);
|
|
2680
|
-
|
|
3153
|
+
writeHttpResolveResponse4(bc, x);
|
|
2681
3154
|
return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);
|
|
2682
3155
|
}
|
|
2683
|
-
function
|
|
2684
|
-
const bc = new
|
|
2685
|
-
const result =
|
|
3156
|
+
function decodeHttpResolveResponse4(bytes) {
|
|
3157
|
+
const bc = new bare4.ByteCursor(bytes, DEFAULT_CONFIG4);
|
|
3158
|
+
const result = readHttpResolveResponse4(bc);
|
|
2686
3159
|
if (bc.offset < bc.view.byteLength) {
|
|
2687
|
-
throw new
|
|
3160
|
+
throw new bare4.BareError(bc.offset, "remaining bytes");
|
|
2688
3161
|
}
|
|
2689
3162
|
return result;
|
|
2690
3163
|
}
|
|
2691
3164
|
|
|
2692
3165
|
// src/common/client-protocol-versioned.ts
|
|
2693
|
-
var CURRENT_VERSION =
|
|
3166
|
+
var CURRENT_VERSION = 4;
|
|
2694
3167
|
var v1ToV2 = (v1Data) => {
|
|
2695
3168
|
if (v1Data.body.tag === "Init") {
|
|
2696
3169
|
const { actorId, connectionId } = v1Data.body.val;
|
|
@@ -2726,6 +3199,32 @@ var v2ToV1 = (v2Data) => {
|
|
|
2726
3199
|
var v2ToV3 = (v2Data) => {
|
|
2727
3200
|
return v2Data;
|
|
2728
3201
|
};
|
|
3202
|
+
var v3ToV4 = (v3Data) => {
|
|
3203
|
+
if (v3Data.body.tag === "Error") {
|
|
3204
|
+
return {
|
|
3205
|
+
body: {
|
|
3206
|
+
tag: "Error",
|
|
3207
|
+
val: {
|
|
3208
|
+
...v3Data.body.val,
|
|
3209
|
+
actor: null
|
|
3210
|
+
}
|
|
3211
|
+
}
|
|
3212
|
+
};
|
|
3213
|
+
}
|
|
3214
|
+
return v3Data;
|
|
3215
|
+
};
|
|
3216
|
+
var v4ToV3 = (v4Data) => {
|
|
3217
|
+
if (v4Data.body.tag === "Error") {
|
|
3218
|
+
const { actor: _, ...val } = v4Data.body.val;
|
|
3219
|
+
return {
|
|
3220
|
+
body: {
|
|
3221
|
+
tag: "Error",
|
|
3222
|
+
val
|
|
3223
|
+
}
|
|
3224
|
+
};
|
|
3225
|
+
}
|
|
3226
|
+
return v4Data;
|
|
3227
|
+
};
|
|
2729
3228
|
var v3ToV2 = (v3Data) => {
|
|
2730
3229
|
return v3Data;
|
|
2731
3230
|
};
|
|
@@ -2735,12 +3234,26 @@ var v1ToServerV2 = (v1Data) => {
|
|
|
2735
3234
|
var v2ToServerV3 = (v2Data) => {
|
|
2736
3235
|
return v2Data;
|
|
2737
3236
|
};
|
|
3237
|
+
var v3ToServerV4 = (v3Data) => {
|
|
3238
|
+
return v3Data;
|
|
3239
|
+
};
|
|
3240
|
+
var v4ToServerV3 = (v4Data) => {
|
|
3241
|
+
return v4Data;
|
|
3242
|
+
};
|
|
2738
3243
|
var v3ToServerV2 = (v3Data) => {
|
|
2739
3244
|
return v3Data;
|
|
2740
3245
|
};
|
|
2741
3246
|
var v2ToServerV1 = (v2Data) => {
|
|
2742
3247
|
return v2Data;
|
|
2743
3248
|
};
|
|
3249
|
+
var v3HttpResponseErrorToV4 = (v3Data) => ({
|
|
3250
|
+
...v3Data,
|
|
3251
|
+
actor: null
|
|
3252
|
+
});
|
|
3253
|
+
var v4HttpResponseErrorToV3 = (v4Data) => {
|
|
3254
|
+
const { actor: _, ...rest } = v4Data;
|
|
3255
|
+
return rest;
|
|
3256
|
+
};
|
|
2744
3257
|
var CLIENT_PROTOCOL_TO_SERVER = createVersionedDataHandler({
|
|
2745
3258
|
deserializeVersion: (bytes, version) => {
|
|
2746
3259
|
switch (version) {
|
|
@@ -2750,6 +3263,8 @@ var CLIENT_PROTOCOL_TO_SERVER = createVersionedDataHandler({
|
|
|
2750
3263
|
return decodeToServer2(bytes);
|
|
2751
3264
|
case 3:
|
|
2752
3265
|
return decodeToServer3(bytes);
|
|
3266
|
+
case 4:
|
|
3267
|
+
return decodeToServer4(bytes);
|
|
2753
3268
|
default:
|
|
2754
3269
|
throw new Error(`Unknown version ${version}`);
|
|
2755
3270
|
}
|
|
@@ -2762,12 +3277,14 @@ var CLIENT_PROTOCOL_TO_SERVER = createVersionedDataHandler({
|
|
|
2762
3277
|
return encodeToServer2(data);
|
|
2763
3278
|
case 3:
|
|
2764
3279
|
return encodeToServer3(data);
|
|
3280
|
+
case 4:
|
|
3281
|
+
return encodeToServer4(data);
|
|
2765
3282
|
default:
|
|
2766
3283
|
throw new Error(`Unknown version ${version}`);
|
|
2767
3284
|
}
|
|
2768
3285
|
},
|
|
2769
|
-
deserializeConverters: () => [v1ToServerV2, v2ToServerV3],
|
|
2770
|
-
serializeConverters: () => [v3ToServerV2, v2ToServerV1]
|
|
3286
|
+
deserializeConverters: () => [v1ToServerV2, v2ToServerV3, v3ToServerV4],
|
|
3287
|
+
serializeConverters: () => [v4ToServerV3, v3ToServerV2, v2ToServerV1]
|
|
2771
3288
|
});
|
|
2772
3289
|
var CLIENT_PROTOCOL_TO_CLIENT = createVersionedDataHandler({
|
|
2773
3290
|
deserializeVersion: (bytes, version) => {
|
|
@@ -2778,6 +3295,8 @@ var CLIENT_PROTOCOL_TO_CLIENT = createVersionedDataHandler({
|
|
|
2778
3295
|
return decodeToClient2(bytes);
|
|
2779
3296
|
case 3:
|
|
2780
3297
|
return decodeToClient3(bytes);
|
|
3298
|
+
case 4:
|
|
3299
|
+
return decodeToClient4(bytes);
|
|
2781
3300
|
default:
|
|
2782
3301
|
throw new Error(`Unknown version ${version}`);
|
|
2783
3302
|
}
|
|
@@ -2790,12 +3309,14 @@ var CLIENT_PROTOCOL_TO_CLIENT = createVersionedDataHandler({
|
|
|
2790
3309
|
return encodeToClient2(data);
|
|
2791
3310
|
case 3:
|
|
2792
3311
|
return encodeToClient3(data);
|
|
3312
|
+
case 4:
|
|
3313
|
+
return encodeToClient4(data);
|
|
2793
3314
|
default:
|
|
2794
3315
|
throw new Error(`Unknown version ${version}`);
|
|
2795
3316
|
}
|
|
2796
3317
|
},
|
|
2797
|
-
deserializeConverters: () => [v1ToV2, v2ToV3],
|
|
2798
|
-
serializeConverters: () => [v3ToV2, v2ToV1]
|
|
3318
|
+
deserializeConverters: () => [v1ToV2, v2ToV3, v3ToV4],
|
|
3319
|
+
serializeConverters: () => [v4ToV3, v3ToV2, v2ToV1]
|
|
2799
3320
|
});
|
|
2800
3321
|
var HTTP_ACTION_REQUEST_VERSIONED = createVersionedDataHandler({
|
|
2801
3322
|
deserializeVersion: (bytes, version) => {
|
|
@@ -2806,6 +3327,8 @@ var HTTP_ACTION_REQUEST_VERSIONED = createVersionedDataHandler({
|
|
|
2806
3327
|
return decodeHttpActionRequest2(bytes);
|
|
2807
3328
|
case 3:
|
|
2808
3329
|
return decodeHttpActionRequest3(bytes);
|
|
3330
|
+
case 4:
|
|
3331
|
+
return decodeHttpActionRequest4(bytes);
|
|
2809
3332
|
default:
|
|
2810
3333
|
throw new Error(`Unknown version ${version}`);
|
|
2811
3334
|
}
|
|
@@ -2824,6 +3347,10 @@ var HTTP_ACTION_REQUEST_VERSIONED = createVersionedDataHandler({
|
|
|
2824
3347
|
return encodeHttpActionRequest3(
|
|
2825
3348
|
data
|
|
2826
3349
|
);
|
|
3350
|
+
case 4:
|
|
3351
|
+
return encodeHttpActionRequest4(
|
|
3352
|
+
data
|
|
3353
|
+
);
|
|
2827
3354
|
default:
|
|
2828
3355
|
throw new Error(`Unknown version ${version}`);
|
|
2829
3356
|
}
|
|
@@ -2840,6 +3367,8 @@ var HTTP_ACTION_RESPONSE_VERSIONED = createVersionedDataHandler({
|
|
|
2840
3367
|
return decodeHttpActionResponse2(bytes);
|
|
2841
3368
|
case 3:
|
|
2842
3369
|
return decodeHttpActionResponse3(bytes);
|
|
3370
|
+
case 4:
|
|
3371
|
+
return decodeHttpActionResponse4(bytes);
|
|
2843
3372
|
default:
|
|
2844
3373
|
throw new Error(`Unknown version ${version}`);
|
|
2845
3374
|
}
|
|
@@ -2858,6 +3387,10 @@ var HTTP_ACTION_RESPONSE_VERSIONED = createVersionedDataHandler({
|
|
|
2858
3387
|
return encodeHttpActionResponse3(
|
|
2859
3388
|
data
|
|
2860
3389
|
);
|
|
3390
|
+
case 4:
|
|
3391
|
+
return encodeHttpActionResponse4(
|
|
3392
|
+
data
|
|
3393
|
+
);
|
|
2861
3394
|
default:
|
|
2862
3395
|
throw new Error(`Unknown version ${version}`);
|
|
2863
3396
|
}
|
|
@@ -2870,6 +3403,8 @@ var HTTP_QUEUE_SEND_REQUEST_VERSIONED = createVersionedDataHandler({
|
|
|
2870
3403
|
switch (version) {
|
|
2871
3404
|
case 3:
|
|
2872
3405
|
return decodeHttpQueueSendRequest(bytes);
|
|
3406
|
+
case 4:
|
|
3407
|
+
return decodeHttpQueueSendRequest2(bytes);
|
|
2873
3408
|
default:
|
|
2874
3409
|
throw new Error(
|
|
2875
3410
|
`HttpQueueSendRequest only exists in version 3+, got version ${version}`
|
|
@@ -2882,6 +3417,10 @@ var HTTP_QUEUE_SEND_REQUEST_VERSIONED = createVersionedDataHandler({
|
|
|
2882
3417
|
return encodeHttpQueueSendRequest(
|
|
2883
3418
|
data
|
|
2884
3419
|
);
|
|
3420
|
+
case 4:
|
|
3421
|
+
return encodeHttpQueueSendRequest2(
|
|
3422
|
+
data
|
|
3423
|
+
);
|
|
2885
3424
|
default:
|
|
2886
3425
|
throw new Error(
|
|
2887
3426
|
`HttpQueueSendRequest only exists in version 3+, got version ${version}`
|
|
@@ -2896,6 +3435,8 @@ var HTTP_QUEUE_SEND_RESPONSE_VERSIONED = createVersionedDataHandler({
|
|
|
2896
3435
|
switch (version) {
|
|
2897
3436
|
case 3:
|
|
2898
3437
|
return decodeHttpQueueSendResponse(bytes);
|
|
3438
|
+
case 4:
|
|
3439
|
+
return decodeHttpQueueSendResponse2(bytes);
|
|
2899
3440
|
default:
|
|
2900
3441
|
throw new Error(
|
|
2901
3442
|
`HttpQueueSendResponse only exists in version 3+, got version ${version}`
|
|
@@ -2908,6 +3449,10 @@ var HTTP_QUEUE_SEND_RESPONSE_VERSIONED = createVersionedDataHandler({
|
|
|
2908
3449
|
return encodeHttpQueueSendResponse(
|
|
2909
3450
|
data
|
|
2910
3451
|
);
|
|
3452
|
+
case 4:
|
|
3453
|
+
return encodeHttpQueueSendResponse2(
|
|
3454
|
+
data
|
|
3455
|
+
);
|
|
2911
3456
|
default:
|
|
2912
3457
|
throw new Error(
|
|
2913
3458
|
`HttpQueueSendResponse only exists in version 3+, got version ${version}`
|
|
@@ -2926,6 +3471,8 @@ var HTTP_RESPONSE_ERROR_VERSIONED = createVersionedDataHandler({
|
|
|
2926
3471
|
return decodeHttpResponseError2(bytes);
|
|
2927
3472
|
case 3:
|
|
2928
3473
|
return decodeHttpResponseError3(bytes);
|
|
3474
|
+
case 4:
|
|
3475
|
+
return decodeHttpResponseError4(bytes);
|
|
2929
3476
|
default:
|
|
2930
3477
|
throw new Error(`Unknown version ${version}`);
|
|
2931
3478
|
}
|
|
@@ -2944,12 +3491,24 @@ var HTTP_RESPONSE_ERROR_VERSIONED = createVersionedDataHandler({
|
|
|
2944
3491
|
return encodeHttpResponseError3(
|
|
2945
3492
|
data
|
|
2946
3493
|
);
|
|
3494
|
+
case 4:
|
|
3495
|
+
return encodeHttpResponseError4(
|
|
3496
|
+
data
|
|
3497
|
+
);
|
|
2947
3498
|
default:
|
|
2948
3499
|
throw new Error(`Unknown version ${version}`);
|
|
2949
3500
|
}
|
|
2950
3501
|
},
|
|
2951
|
-
deserializeConverters: () => [
|
|
2952
|
-
|
|
3502
|
+
deserializeConverters: () => [
|
|
3503
|
+
(data) => data,
|
|
3504
|
+
(data) => data,
|
|
3505
|
+
v3HttpResponseErrorToV4
|
|
3506
|
+
],
|
|
3507
|
+
serializeConverters: () => [
|
|
3508
|
+
v4HttpResponseErrorToV3,
|
|
3509
|
+
(data) => data,
|
|
3510
|
+
(data) => data
|
|
3511
|
+
]
|
|
2953
3512
|
});
|
|
2954
3513
|
var HTTP_RESOLVE_RESPONSE_VERSIONED = createVersionedDataHandler({
|
|
2955
3514
|
deserializeVersion: (bytes, version) => {
|
|
@@ -2960,6 +3519,8 @@ var HTTP_RESOLVE_RESPONSE_VERSIONED = createVersionedDataHandler({
|
|
|
2960
3519
|
return decodeHttpResolveResponse2(bytes);
|
|
2961
3520
|
case 3:
|
|
2962
3521
|
return decodeHttpResolveResponse3(bytes);
|
|
3522
|
+
case 4:
|
|
3523
|
+
return decodeHttpResolveResponse4(bytes);
|
|
2963
3524
|
default:
|
|
2964
3525
|
throw new Error(`Unknown version ${version}`);
|
|
2965
3526
|
}
|
|
@@ -2978,6 +3539,10 @@ var HTTP_RESOLVE_RESPONSE_VERSIONED = createVersionedDataHandler({
|
|
|
2978
3539
|
return encodeHttpResolveResponse3(
|
|
2979
3540
|
data
|
|
2980
3541
|
);
|
|
3542
|
+
case 4:
|
|
3543
|
+
return encodeHttpResolveResponse4(
|
|
3544
|
+
data
|
|
3545
|
+
);
|
|
2981
3546
|
default:
|
|
2982
3547
|
throw new Error(`Unknown version ${version}`);
|
|
2983
3548
|
}
|
|
@@ -2990,6 +3555,11 @@ var HTTP_RESOLVE_RESPONSE_VERSIONED = createVersionedDataHandler({
|
|
|
2990
3555
|
import { z as z4 } from "zod/v4";
|
|
2991
3556
|
var UintSchema = z4.bigint();
|
|
2992
3557
|
var OptionalUintSchema = UintSchema.nullable();
|
|
3558
|
+
var ActorSpecifierSchema = z4.object({
|
|
3559
|
+
actorId: z4.string(),
|
|
3560
|
+
generation: z4.union([z4.number(), z4.bigint()]),
|
|
3561
|
+
key: z4.string().optional()
|
|
3562
|
+
});
|
|
2993
3563
|
var InitSchema = z4.object({
|
|
2994
3564
|
actorId: z4.string(),
|
|
2995
3565
|
connectionId: z4.string()
|
|
@@ -2999,7 +3569,8 @@ var ErrorSchema = z4.object({
|
|
|
2999
3569
|
code: z4.string(),
|
|
3000
3570
|
message: z4.string(),
|
|
3001
3571
|
metadata: z4.unknown().optional(),
|
|
3002
|
-
actionId: OptionalUintSchema
|
|
3572
|
+
actionId: OptionalUintSchema,
|
|
3573
|
+
actor: ActorSpecifierSchema.optional()
|
|
3003
3574
|
});
|
|
3004
3575
|
var ActionResponseSchema = z4.object({
|
|
3005
3576
|
id: UintSchema,
|
|
@@ -3057,7 +3628,8 @@ var HttpResponseErrorSchema = z4.object({
|
|
|
3057
3628
|
group: z4.string(),
|
|
3058
3629
|
code: z4.string(),
|
|
3059
3630
|
message: z4.string(),
|
|
3060
|
-
metadata: z4.unknown().optional()
|
|
3631
|
+
metadata: z4.unknown().optional(),
|
|
3632
|
+
actor: ActorSpecifierSchema.optional()
|
|
3061
3633
|
});
|
|
3062
3634
|
var HttpResolveRequestSchema = z4.null();
|
|
3063
3635
|
var HttpResolveResponseSchema = z4.object({
|
|
@@ -3187,21 +3759,45 @@ async function sendHttpRequest(opts) {
|
|
|
3187
3759
|
new Uint8Array(bufferResponse),
|
|
3188
3760
|
HTTP_RESPONSE_ERROR_VERSIONED,
|
|
3189
3761
|
HttpResponseErrorSchema,
|
|
3190
|
-
// JSON:
|
|
3191
|
-
(json) =>
|
|
3762
|
+
// JSON/CBOR: normalize actor generation to the public number shape.
|
|
3763
|
+
(json) => ({
|
|
3764
|
+
...json,
|
|
3765
|
+
actor: json.actor ? {
|
|
3766
|
+
...json.actor,
|
|
3767
|
+
generation: Number(json.actor.generation)
|
|
3768
|
+
} : void 0
|
|
3769
|
+
}),
|
|
3192
3770
|
// BARE: decode ArrayBuffer metadata to unknown
|
|
3193
|
-
(
|
|
3194
|
-
group:
|
|
3195
|
-
code:
|
|
3196
|
-
message:
|
|
3197
|
-
metadata:
|
|
3771
|
+
(bare5) => ({
|
|
3772
|
+
group: bare5.group,
|
|
3773
|
+
code: bare5.code,
|
|
3774
|
+
message: bare5.message,
|
|
3775
|
+
metadata: bare5.metadata ? decodeCborCompat(new Uint8Array(bare5.metadata)) : void 0,
|
|
3776
|
+
actor: bare5.actor ? {
|
|
3777
|
+
actorId: bare5.actor.actorId,
|
|
3778
|
+
generation: Number(bare5.actor.generation),
|
|
3779
|
+
key: bare5.actor.key ?? void 0
|
|
3780
|
+
} : void 0
|
|
3198
3781
|
})
|
|
3199
3782
|
);
|
|
3783
|
+
logger2().warn({
|
|
3784
|
+
msg: "http error response",
|
|
3785
|
+
group: responseData.group,
|
|
3786
|
+
code: responseData.code,
|
|
3787
|
+
message: responseData.message,
|
|
3788
|
+
metadata: responseData.metadata,
|
|
3789
|
+
actorId: responseData.actor?.actorId,
|
|
3790
|
+
generation: responseData.actor?.generation,
|
|
3791
|
+
actorKey: responseData.actor?.key
|
|
3792
|
+
});
|
|
3200
3793
|
throw new RivetError(
|
|
3201
3794
|
responseData.group,
|
|
3202
3795
|
responseData.code,
|
|
3203
3796
|
responseData.message,
|
|
3204
|
-
|
|
3797
|
+
{
|
|
3798
|
+
metadata: responseData.metadata,
|
|
3799
|
+
actor: responseData.actor
|
|
3800
|
+
}
|
|
3205
3801
|
);
|
|
3206
3802
|
} catch (error) {
|
|
3207
3803
|
if (error instanceof RivetError) {
|
|
@@ -3381,11 +3977,11 @@ async function lookupMetadataCached(config) {
|
|
|
3381
3977
|
}
|
|
3382
3978
|
|
|
3383
3979
|
// src/engine-client/ws-proxy.ts
|
|
3384
|
-
async function createWebSocketProxy(
|
|
3980
|
+
async function createWebSocketProxy(_c, targetUrl, protocols) {
|
|
3385
3981
|
const WebSocket2 = await importWebSocket();
|
|
3386
3982
|
const state = {};
|
|
3387
3983
|
return {
|
|
3388
|
-
onOpen: async (
|
|
3984
|
+
onOpen: async (_event, clientWs) => {
|
|
3389
3985
|
logger3().debug({ msg: "client websocket connected", targetUrl });
|
|
3390
3986
|
if (clientWs.readyState !== 1) {
|
|
3391
3987
|
logger3().warn({
|
|
@@ -3423,23 +4019,25 @@ async function createWebSocketProxy(c, targetUrl, protocols) {
|
|
|
3423
4019
|
reject(error);
|
|
3424
4020
|
});
|
|
3425
4021
|
});
|
|
3426
|
-
state.
|
|
3427
|
-
|
|
3428
|
-
|
|
3429
|
-
|
|
3430
|
-
|
|
4022
|
+
state.connectPromise.catch(() => {
|
|
4023
|
+
});
|
|
4024
|
+
state.targetWs.addEventListener("message", (event) => {
|
|
4025
|
+
if (typeof event.data === "string" || event.data instanceof ArrayBuffer) {
|
|
4026
|
+
clientWs.send(event.data);
|
|
4027
|
+
} else if (event.data instanceof Blob) {
|
|
4028
|
+
event.data.arrayBuffer().then((buffer) => {
|
|
3431
4029
|
clientWs.send(buffer);
|
|
3432
4030
|
});
|
|
3433
4031
|
}
|
|
3434
4032
|
});
|
|
3435
|
-
state.targetWs.addEventListener("close", (
|
|
4033
|
+
state.targetWs.addEventListener("close", (event) => {
|
|
3436
4034
|
logger3().debug({
|
|
3437
4035
|
msg: "target websocket closed",
|
|
3438
4036
|
targetUrl,
|
|
3439
|
-
code:
|
|
3440
|
-
reason:
|
|
4037
|
+
code: event.code,
|
|
4038
|
+
reason: event.reason
|
|
3441
4039
|
});
|
|
3442
|
-
closeWebSocketIfOpen(clientWs,
|
|
4040
|
+
closeWebSocketIfOpen(clientWs, event.code, event.reason);
|
|
3443
4041
|
});
|
|
3444
4042
|
state.targetWs.addEventListener("error", (error) => {
|
|
3445
4043
|
logger3().error({
|
|
@@ -3482,7 +4080,7 @@ async function createWebSocketProxy(c, targetUrl, protocols) {
|
|
|
3482
4080
|
);
|
|
3483
4081
|
}
|
|
3484
4082
|
},
|
|
3485
|
-
onClose: (event,
|
|
4083
|
+
onClose: (event, _clientWs) => {
|
|
3486
4084
|
logger3().debug({
|
|
3487
4085
|
msg: "client websocket closed",
|
|
3488
4086
|
targetUrl,
|
|
@@ -3499,7 +4097,7 @@ async function createWebSocketProxy(c, targetUrl, protocols) {
|
|
|
3499
4097
|
}
|
|
3500
4098
|
}
|
|
3501
4099
|
},
|
|
3502
|
-
onError: (event,
|
|
4100
|
+
onError: (event, _clientWs) => {
|
|
3503
4101
|
logger3().error({ msg: "client websocket error", targetUrl, event });
|
|
3504
4102
|
if (state.targetWs) {
|
|
3505
4103
|
if (state.targetWs.readyState === WebSocket2.OPEN) {
|
|
@@ -3615,7 +4213,9 @@ var RemoteEngineControlClient = class {
|
|
|
3615
4213
|
name,
|
|
3616
4214
|
key: serializeActorKey(key),
|
|
3617
4215
|
runner_name_selector: this.#config.poolName,
|
|
3618
|
-
input: actorInput ? uint8ArrayToBase64(
|
|
4216
|
+
input: actorInput ? uint8ArrayToBase64(
|
|
4217
|
+
encodeCborCompat(actorInput)
|
|
4218
|
+
) : void 0,
|
|
3619
4219
|
crash_policy: crashPolicy ?? "sleep"
|
|
3620
4220
|
});
|
|
3621
4221
|
logger3().info({
|
|
@@ -3674,7 +4274,7 @@ var RemoteEngineControlClient = class {
|
|
|
3674
4274
|
);
|
|
3675
4275
|
const httpOptions = {
|
|
3676
4276
|
...options,
|
|
3677
|
-
directActorId:
|
|
4277
|
+
directActorId: shouldSkipReadyWait(options) ? directActorIdFromTarget(target) : void 0
|
|
3678
4278
|
};
|
|
3679
4279
|
return sendHttpRequestToGateway(
|
|
3680
4280
|
this.#config,
|
|
@@ -3697,7 +4297,7 @@ var RemoteEngineControlClient = class {
|
|
|
3697
4297
|
params,
|
|
3698
4298
|
{
|
|
3699
4299
|
...options,
|
|
3700
|
-
directActorId:
|
|
4300
|
+
directActorId: shouldSkipReadyWait(options) ? directActorIdFromTarget(target) : void 0
|
|
3701
4301
|
}
|
|
3702
4302
|
);
|
|
3703
4303
|
}
|
|
@@ -3769,7 +4369,7 @@ var RemoteEngineControlClient = class {
|
|
|
3769
4369
|
}
|
|
3770
4370
|
#buildGatewayUrlForTarget(target, path, options = {}) {
|
|
3771
4371
|
const endpoint = getEndpoint(this.#config);
|
|
3772
|
-
if (
|
|
4372
|
+
if (shouldSkipReadyWait(options) && directActorIdFromTarget(target) && canUseDirectSkipReadyWaitPath(path)) {
|
|
3773
4373
|
return combineUrlPath(endpoint, path);
|
|
3774
4374
|
}
|
|
3775
4375
|
if ("directId" in target) {
|
|
@@ -3809,8 +4409,11 @@ var RemoteEngineControlClient = class {
|
|
|
3809
4409
|
throw new Error("unreachable: unknown gateway target type");
|
|
3810
4410
|
}
|
|
3811
4411
|
};
|
|
3812
|
-
function
|
|
3813
|
-
return isActorHttpRequestPath(path) || path
|
|
4412
|
+
function canUseDirectSkipReadyWaitPath(path) {
|
|
4413
|
+
return isActorHttpRequestPath(path) || isPathOrQuery(path, PATH_CONNECT) || isPathOrQuery(path, PATH_WEBSOCKET_BASE) || path.startsWith(PATH_WEBSOCKET_PREFIX);
|
|
4414
|
+
}
|
|
4415
|
+
function isPathOrQuery(path, basePath) {
|
|
4416
|
+
return path === basePath || path.startsWith(`${basePath}?`);
|
|
3814
4417
|
}
|
|
3815
4418
|
function isActorHttpRequestPath(path) {
|
|
3816
4419
|
const stripped = path.slice("/request".length);
|
|
@@ -3849,10 +4452,9 @@ import pRetry2, { AbortError } from "p-retry";
|
|
|
3849
4452
|
|
|
3850
4453
|
// src/client/actor-common.ts
|
|
3851
4454
|
function resolveActorGatewayOptions(defaults = {}, overrides) {
|
|
3852
|
-
const
|
|
4455
|
+
const skipReadyWait = overrides?.skipReadyWait ?? defaults.skipReadyWait ?? false;
|
|
3853
4456
|
return {
|
|
3854
|
-
|
|
3855
|
-
skipReadyWait: bypassConnectable
|
|
4457
|
+
skipReadyWait
|
|
3856
4458
|
};
|
|
3857
4459
|
}
|
|
3858
4460
|
|
|
@@ -4004,7 +4606,7 @@ function classifyActorError(error) {
|
|
|
4004
4606
|
return void 0;
|
|
4005
4607
|
}
|
|
4006
4608
|
function isRetryableGuardGatewayHttpError(code) {
|
|
4007
|
-
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";
|
|
4609
|
+
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";
|
|
4008
4610
|
}
|
|
4009
4611
|
function classifyTransportError(error) {
|
|
4010
4612
|
if (error.message.includes("database accessed after actor stopped")) {
|
|
@@ -4093,10 +4695,7 @@ async function retryOnLifecycleBoundary(run, opts) {
|
|
|
4093
4695
|
if (attempt === maxAttempts - 1) {
|
|
4094
4696
|
break;
|
|
4095
4697
|
}
|
|
4096
|
-
const delayMs = Math.min(
|
|
4097
|
-
initialDelayMs * 2 ** attempt,
|
|
4098
|
-
maxDelayMs
|
|
4099
|
-
);
|
|
4698
|
+
const delayMs = Math.min(initialDelayMs * 2 ** attempt, maxDelayMs);
|
|
4100
4699
|
await waitWithSignal(delayMs, opts?.signal);
|
|
4101
4700
|
}
|
|
4102
4701
|
}
|
|
@@ -4135,7 +4734,9 @@ function createQueueSender(senderOptions) {
|
|
|
4135
4734
|
}),
|
|
4136
4735
|
requestToBare: (value) => ({
|
|
4137
4736
|
name: value.name ?? name,
|
|
4138
|
-
body: bufferToArrayBuffer(
|
|
4737
|
+
body: bufferToArrayBuffer(
|
|
4738
|
+
encodeCborCompat(value.body)
|
|
4739
|
+
),
|
|
4139
4740
|
wait: value.wait ?? false,
|
|
4140
4741
|
timeout: value.timeout !== void 0 ? BigInt(value.timeout) : null
|
|
4141
4742
|
}),
|
|
@@ -4148,13 +4749,13 @@ function createQueueSender(senderOptions) {
|
|
|
4148
4749
|
response: json.response
|
|
4149
4750
|
};
|
|
4150
4751
|
},
|
|
4151
|
-
responseFromBare: (
|
|
4152
|
-
if (
|
|
4153
|
-
return { status:
|
|
4752
|
+
responseFromBare: (bare5) => {
|
|
4753
|
+
if (bare5.response === null || bare5.response === void 0) {
|
|
4754
|
+
return { status: bare5.status };
|
|
4154
4755
|
}
|
|
4155
4756
|
return {
|
|
4156
|
-
status:
|
|
4157
|
-
response: decodeCborCompat(new Uint8Array(
|
|
4757
|
+
status: bare5.status,
|
|
4758
|
+
response: decodeCborCompat(new Uint8Array(bare5.response))
|
|
4158
4759
|
};
|
|
4159
4760
|
}
|
|
4160
4761
|
});
|
|
@@ -4168,49 +4769,7 @@ function createQueueSender(senderOptions) {
|
|
|
4168
4769
|
};
|
|
4169
4770
|
}
|
|
4170
4771
|
|
|
4171
|
-
// src/client/resolve-gateway-target.ts
|
|
4172
|
-
async function resolveGatewayTarget(driver, target) {
|
|
4173
|
-
if ("directId" in target) {
|
|
4174
|
-
return target.directId;
|
|
4175
|
-
}
|
|
4176
|
-
if ("getForId" in target) {
|
|
4177
|
-
return target.getForId.actorId;
|
|
4178
|
-
}
|
|
4179
|
-
if ("getForKey" in target) {
|
|
4180
|
-
const output = await driver.getWithKey({
|
|
4181
|
-
name: target.getForKey.name,
|
|
4182
|
-
key: target.getForKey.key
|
|
4183
|
-
});
|
|
4184
|
-
if (!output) {
|
|
4185
|
-
throw actorNotFound(
|
|
4186
|
-
`${target.getForKey.name}:${JSON.stringify(target.getForKey.key)}`
|
|
4187
|
-
);
|
|
4188
|
-
}
|
|
4189
|
-
return output.actorId;
|
|
4190
|
-
}
|
|
4191
|
-
if ("getOrCreateForKey" in target) {
|
|
4192
|
-
const output = await driver.getOrCreateWithKey({
|
|
4193
|
-
name: target.getOrCreateForKey.name,
|
|
4194
|
-
key: target.getOrCreateForKey.key,
|
|
4195
|
-
input: target.getOrCreateForKey.input,
|
|
4196
|
-
region: target.getOrCreateForKey.region
|
|
4197
|
-
});
|
|
4198
|
-
return output.actorId;
|
|
4199
|
-
}
|
|
4200
|
-
if ("create" in target) {
|
|
4201
|
-
const output = await driver.createActor({
|
|
4202
|
-
name: target.create.name,
|
|
4203
|
-
key: target.create.key,
|
|
4204
|
-
input: target.create.input,
|
|
4205
|
-
region: target.create.region
|
|
4206
|
-
});
|
|
4207
|
-
return output.actorId;
|
|
4208
|
-
}
|
|
4209
|
-
throw invalidRequest("Invalid query format");
|
|
4210
|
-
}
|
|
4211
|
-
|
|
4212
4772
|
// src/client/actor-conn.ts
|
|
4213
|
-
var DEFAULT_MAX_INCOMING_MESSAGE_SIZE = 65536;
|
|
4214
4773
|
var CONNECT_SYMBOL = /* @__PURE__ */ Symbol("connect");
|
|
4215
4774
|
var ActorConnRaw = class {
|
|
4216
4775
|
#disposed = false;
|
|
@@ -4262,6 +4821,9 @@ var ActorConnRaw = class {
|
|
|
4262
4821
|
this.#encoding = encoding;
|
|
4263
4822
|
this.#actorResolutionState = actorResolutionState;
|
|
4264
4823
|
this.#gatewayOptions = resolveActorGatewayOptions(gatewayOptions);
|
|
4824
|
+
if ("getForId" in actorResolutionState) {
|
|
4825
|
+
this.#actorId = actorResolutionState.getForId.actorId;
|
|
4826
|
+
}
|
|
4265
4827
|
this.#readyPromise = promiseWithResolvers(
|
|
4266
4828
|
(reason) => logger2().warn({
|
|
4267
4829
|
msg: "unhandled ready promise rejection",
|
|
@@ -4512,7 +5074,7 @@ var ActorConnRaw = class {
|
|
|
4512
5074
|
}
|
|
4513
5075
|
async #connectWebSocket() {
|
|
4514
5076
|
const params = await this.#resolveConnectionParams();
|
|
4515
|
-
const target =
|
|
5077
|
+
const target = getGatewayTarget(this.#actorResolutionState);
|
|
4516
5078
|
const ws = await this.#driver.openWebSocket(
|
|
4517
5079
|
PATH_CONNECT,
|
|
4518
5080
|
target,
|
|
@@ -4565,22 +5127,6 @@ var ActorConnRaw = class {
|
|
|
4565
5127
|
}
|
|
4566
5128
|
});
|
|
4567
5129
|
}
|
|
4568
|
-
async #resolveGatewayTargetForBypass() {
|
|
4569
|
-
if ("getForId" in this.#actorResolutionState) {
|
|
4570
|
-
return {
|
|
4571
|
-
directId: this.#actorResolutionState.getForId.actorId
|
|
4572
|
-
};
|
|
4573
|
-
}
|
|
4574
|
-
if (this.#actorId) {
|
|
4575
|
-
return { directId: this.#actorId };
|
|
4576
|
-
}
|
|
4577
|
-
return {
|
|
4578
|
-
directId: await resolveGatewayTarget(
|
|
4579
|
-
this.#driver,
|
|
4580
|
-
this.#actorResolutionState
|
|
4581
|
-
)
|
|
4582
|
-
};
|
|
4583
|
-
}
|
|
4584
5130
|
/** Called by the onopen event from drivers. */
|
|
4585
5131
|
#handleOnOpen() {
|
|
4586
5132
|
if (this.#disposed) {
|
|
@@ -4659,7 +5205,7 @@ var ActorConnRaw = class {
|
|
|
4659
5205
|
});
|
|
4660
5206
|
this.#handleOnOpen();
|
|
4661
5207
|
} else if (response.body.tag === "Error") {
|
|
4662
|
-
const { group, code, message, metadata, actionId } = response.body.val;
|
|
5208
|
+
const { group, code, message, metadata, actionId, actor } = response.body.val;
|
|
4663
5209
|
if (actionId !== null) {
|
|
4664
5210
|
const inFlight = this.#takeActionInFlight(Number(actionId));
|
|
4665
5211
|
this.#invalidateActorIfStale(group, code);
|
|
@@ -4670,10 +5216,16 @@ var ActorConnRaw = class {
|
|
|
4670
5216
|
group,
|
|
4671
5217
|
code,
|
|
4672
5218
|
message,
|
|
4673
|
-
metadata
|
|
5219
|
+
metadata,
|
|
5220
|
+
actorId: actor?.actorId,
|
|
5221
|
+
generation: actor?.generation,
|
|
5222
|
+
actorKey: actor?.key
|
|
4674
5223
|
});
|
|
4675
5224
|
inFlight.reject(
|
|
4676
|
-
new RivetError(group, code, message,
|
|
5225
|
+
new RivetError(group, code, message, {
|
|
5226
|
+
metadata,
|
|
5227
|
+
actor
|
|
5228
|
+
})
|
|
4677
5229
|
);
|
|
4678
5230
|
} else {
|
|
4679
5231
|
logger2().warn({
|
|
@@ -4681,21 +5233,25 @@ var ActorConnRaw = class {
|
|
|
4681
5233
|
group,
|
|
4682
5234
|
code,
|
|
4683
5235
|
message,
|
|
4684
|
-
metadata
|
|
5236
|
+
metadata,
|
|
5237
|
+
actorId: actor?.actorId,
|
|
5238
|
+
generation: actor?.generation,
|
|
5239
|
+
actorKey: actor?.key
|
|
4685
5240
|
});
|
|
4686
5241
|
if (this.#shouldReconnectForStaleActor(group, code)) {
|
|
4687
5242
|
this.#clearResolvedActorIdentity();
|
|
4688
5243
|
this.#onOpenPromise?.reject(
|
|
4689
|
-
new RivetError(group, code, message,
|
|
5244
|
+
new RivetError(group, code, message, {
|
|
5245
|
+
metadata,
|
|
5246
|
+
actor
|
|
5247
|
+
})
|
|
4690
5248
|
);
|
|
4691
5249
|
return;
|
|
4692
5250
|
}
|
|
4693
|
-
let errorToThrow = new RivetError(
|
|
4694
|
-
|
|
4695
|
-
|
|
4696
|
-
|
|
4697
|
-
metadata
|
|
4698
|
-
);
|
|
5251
|
+
let errorToThrow = new RivetError(group, code, message, {
|
|
5252
|
+
metadata,
|
|
5253
|
+
actor
|
|
5254
|
+
});
|
|
4699
5255
|
if (isSchedulingError(group, code) && this.#actorId) {
|
|
4700
5256
|
const schedulingError = await checkForSchedulingError(
|
|
4701
5257
|
group,
|
|
@@ -5091,31 +5647,8 @@ var ActorConnRaw = class {
|
|
|
5091
5647
|
}
|
|
5092
5648
|
}
|
|
5093
5649
|
);
|
|
5094
|
-
const serializedLength = messageLength(messageSerialized);
|
|
5095
|
-
if (serializedLength > DEFAULT_MAX_INCOMING_MESSAGE_SIZE && message.body.tag === "ActionRequest") {
|
|
5096
|
-
const actionId = Number(message.body.val.id);
|
|
5097
|
-
const inFlight = this.#takeActionInFlight(actionId);
|
|
5098
|
-
const error = new RivetError(
|
|
5099
|
-
"message",
|
|
5100
|
-
"incoming_too_long",
|
|
5101
|
-
"Incoming message too long",
|
|
5102
|
-
{
|
|
5103
|
-
maxSize: DEFAULT_MAX_INCOMING_MESSAGE_SIZE,
|
|
5104
|
-
actualSize: serializedLength
|
|
5105
|
-
}
|
|
5106
|
-
);
|
|
5107
|
-
logger2().warn({
|
|
5108
|
-
msg: "rejecting oversized connection action request",
|
|
5109
|
-
actionId,
|
|
5110
|
-
actionName: inFlight.name,
|
|
5111
|
-
actualSize: serializedLength,
|
|
5112
|
-
maxSize: DEFAULT_MAX_INCOMING_MESSAGE_SIZE
|
|
5113
|
-
});
|
|
5114
|
-
inFlight.reject(error);
|
|
5115
|
-
this.#dispatchActorError(error);
|
|
5116
|
-
return;
|
|
5117
|
-
}
|
|
5118
5650
|
this.#websocket.send(messageSerialized);
|
|
5651
|
+
const serializedLength = messageLength(messageSerialized);
|
|
5119
5652
|
logger2().trace({
|
|
5120
5653
|
msg: "sent websocket message",
|
|
5121
5654
|
len: serializedLength
|
|
@@ -5158,8 +5691,26 @@ var ActorConnRaw = class {
|
|
|
5158
5691
|
buffer,
|
|
5159
5692
|
CLIENT_PROTOCOL_TO_CLIENT,
|
|
5160
5693
|
ToClientSchema,
|
|
5161
|
-
// JSON:
|
|
5162
|
-
(msg) =>
|
|
5694
|
+
// JSON/CBOR: normalize actor generation to the public number shape.
|
|
5695
|
+
(msg) => {
|
|
5696
|
+
if (msg.body.tag !== "Error" || !msg.body.val.actor) {
|
|
5697
|
+
return msg;
|
|
5698
|
+
}
|
|
5699
|
+
return {
|
|
5700
|
+
body: {
|
|
5701
|
+
tag: "Error",
|
|
5702
|
+
val: {
|
|
5703
|
+
...msg.body.val,
|
|
5704
|
+
actor: {
|
|
5705
|
+
...msg.body.val.actor,
|
|
5706
|
+
generation: Number(
|
|
5707
|
+
msg.body.val.actor.generation
|
|
5708
|
+
)
|
|
5709
|
+
}
|
|
5710
|
+
}
|
|
5711
|
+
}
|
|
5712
|
+
};
|
|
5713
|
+
},
|
|
5163
5714
|
// BARE: need to decode ArrayBuffer fields back to unknown
|
|
5164
5715
|
(msg) => {
|
|
5165
5716
|
if (msg.body.tag === "Error") {
|
|
@@ -5175,7 +5726,14 @@ var ActorConnRaw = class {
|
|
|
5175
5726
|
msg.body.val.metadata
|
|
5176
5727
|
)
|
|
5177
5728
|
) : null,
|
|
5178
|
-
actionId: msg.body.val.actionId
|
|
5729
|
+
actionId: msg.body.val.actionId,
|
|
5730
|
+
actor: msg.body.val.actor ? {
|
|
5731
|
+
actorId: msg.body.val.actor.actorId,
|
|
5732
|
+
generation: Number(
|
|
5733
|
+
msg.body.val.actor.generation
|
|
5734
|
+
),
|
|
5735
|
+
key: msg.body.val.actor.key ?? void 0
|
|
5736
|
+
} : void 0
|
|
5179
5737
|
}
|
|
5180
5738
|
}
|
|
5181
5739
|
};
|
|
@@ -5369,13 +5927,11 @@ async function rawHttpFetch(driver, target, params, input, init, options = {}) {
|
|
|
5369
5927
|
});
|
|
5370
5928
|
return driver.sendRequest(target, proxyRequest, options);
|
|
5371
5929
|
} catch (err) {
|
|
5372
|
-
const { group, code, message, metadata } = deconstructError(
|
|
5930
|
+
const { group, code, message, metadata, actor } = deconstructError(
|
|
5373
5931
|
err,
|
|
5374
|
-
logger2(),
|
|
5375
|
-
{},
|
|
5376
5932
|
true
|
|
5377
5933
|
);
|
|
5378
|
-
throw new RivetError(group, code, message, metadata);
|
|
5934
|
+
throw new RivetError(group, code, message, { metadata, actor });
|
|
5379
5935
|
}
|
|
5380
5936
|
}
|
|
5381
5937
|
async function rawWebSocket(driver, target, params, path, _protocols, options = {}) {
|
|
@@ -5411,6 +5967,47 @@ async function rawWebSocket(driver, target, params, path, _protocols, options =
|
|
|
5411
5967
|
return ws;
|
|
5412
5968
|
}
|
|
5413
5969
|
|
|
5970
|
+
// src/client/resolve-gateway-target.ts
|
|
5971
|
+
async function resolveGatewayTarget(driver, target) {
|
|
5972
|
+
if ("directId" in target) {
|
|
5973
|
+
return target.directId;
|
|
5974
|
+
}
|
|
5975
|
+
if ("getForId" in target) {
|
|
5976
|
+
return target.getForId.actorId;
|
|
5977
|
+
}
|
|
5978
|
+
if ("getForKey" in target) {
|
|
5979
|
+
const output = await driver.getWithKey({
|
|
5980
|
+
name: target.getForKey.name,
|
|
5981
|
+
key: target.getForKey.key
|
|
5982
|
+
});
|
|
5983
|
+
if (!output) {
|
|
5984
|
+
throw actorNotFound(
|
|
5985
|
+
`${target.getForKey.name}:${JSON.stringify(target.getForKey.key)}`
|
|
5986
|
+
);
|
|
5987
|
+
}
|
|
5988
|
+
return output.actorId;
|
|
5989
|
+
}
|
|
5990
|
+
if ("getOrCreateForKey" in target) {
|
|
5991
|
+
const output = await driver.getOrCreateWithKey({
|
|
5992
|
+
name: target.getOrCreateForKey.name,
|
|
5993
|
+
key: target.getOrCreateForKey.key,
|
|
5994
|
+
input: target.getOrCreateForKey.input,
|
|
5995
|
+
region: target.getOrCreateForKey.region
|
|
5996
|
+
});
|
|
5997
|
+
return output.actorId;
|
|
5998
|
+
}
|
|
5999
|
+
if ("create" in target) {
|
|
6000
|
+
const output = await driver.createActor({
|
|
6001
|
+
name: target.create.name,
|
|
6002
|
+
key: target.create.key,
|
|
6003
|
+
input: target.create.input,
|
|
6004
|
+
region: target.create.region
|
|
6005
|
+
});
|
|
6006
|
+
return output.actorId;
|
|
6007
|
+
}
|
|
6008
|
+
throw invalidRequest("Invalid query format");
|
|
6009
|
+
}
|
|
6010
|
+
|
|
5414
6011
|
// src/client/actor-handle.ts
|
|
5415
6012
|
var ActorHandleRaw = class {
|
|
5416
6013
|
#client;
|
|
@@ -5455,7 +6052,13 @@ var ActorHandleRaw = class {
|
|
|
5455
6052
|
for (let attempt = 0; attempt < maxAttempts; attempt++) {
|
|
5456
6053
|
let actorId;
|
|
5457
6054
|
try {
|
|
5458
|
-
const
|
|
6055
|
+
const gatewayOptions = resolveActorGatewayOptions(
|
|
6056
|
+
this.#gatewayOptions
|
|
6057
|
+
);
|
|
6058
|
+
const target = await this.#resolveGatewayRequestTarget(
|
|
6059
|
+
useQueryTarget,
|
|
6060
|
+
gatewayOptions
|
|
6061
|
+
);
|
|
5459
6062
|
actorId = "directId" in target ? target.directId : void 0;
|
|
5460
6063
|
return await createQueueSender({
|
|
5461
6064
|
encoding: this.#encoding,
|
|
@@ -5464,19 +6067,12 @@ var ActorHandleRaw = class {
|
|
|
5464
6067
|
return await this.#driver.sendRequest(
|
|
5465
6068
|
target,
|
|
5466
6069
|
request,
|
|
5467
|
-
|
|
5468
|
-
this.#gatewayOptions
|
|
5469
|
-
)
|
|
6070
|
+
gatewayOptions
|
|
5470
6071
|
);
|
|
5471
6072
|
}
|
|
5472
6073
|
}).send(name, body, options);
|
|
5473
6074
|
} catch (err) {
|
|
5474
|
-
const { group, code, message, metadata } = deconstructError(
|
|
5475
|
-
err,
|
|
5476
|
-
logger2(),
|
|
5477
|
-
{},
|
|
5478
|
-
true
|
|
5479
|
-
);
|
|
6075
|
+
const { group, code, message, metadata, actor } = deconstructError(err, true);
|
|
5480
6076
|
if (this.#shouldRetryQueueDispatchOverload(
|
|
5481
6077
|
group,
|
|
5482
6078
|
code,
|
|
@@ -5509,7 +6105,10 @@ var ActorHandleRaw = class {
|
|
|
5509
6105
|
await this.#waitForRetryWindow();
|
|
5510
6106
|
continue;
|
|
5511
6107
|
}
|
|
5512
|
-
const invalidated = this.#invalidateResolvedActorId(
|
|
6108
|
+
const invalidated = this.#invalidateResolvedActorId(
|
|
6109
|
+
group,
|
|
6110
|
+
code
|
|
6111
|
+
);
|
|
5513
6112
|
if (invalidated && attempt < maxAttempts - 1) {
|
|
5514
6113
|
useQueryTarget = code === "starting" || code === "stopping" || code.startsWith("destroyed_");
|
|
5515
6114
|
if (useQueryTarget) {
|
|
@@ -5517,7 +6116,10 @@ var ActorHandleRaw = class {
|
|
|
5517
6116
|
}
|
|
5518
6117
|
continue;
|
|
5519
6118
|
}
|
|
5520
|
-
throw new RivetError(group, code, message,
|
|
6119
|
+
throw new RivetError(group, code, message, {
|
|
6120
|
+
metadata,
|
|
6121
|
+
actor
|
|
6122
|
+
});
|
|
5521
6123
|
}
|
|
5522
6124
|
}
|
|
5523
6125
|
throw new Error("unreachable queue retry state");
|
|
@@ -5552,7 +6154,10 @@ var ActorHandleRaw = class {
|
|
|
5552
6154
|
for (let attempt = 0; attempt < maxAttempts; attempt++) {
|
|
5553
6155
|
let actorId;
|
|
5554
6156
|
try {
|
|
5555
|
-
const target = await this.#
|
|
6157
|
+
const target = await this.#resolveGatewayRequestTarget(
|
|
6158
|
+
useQueryTarget,
|
|
6159
|
+
gatewayOptions
|
|
6160
|
+
);
|
|
5556
6161
|
actorId = "directId" in target ? target.directId : void 0;
|
|
5557
6162
|
logger2().debug(
|
|
5558
6163
|
actorId ? { msg: "using direct actor gateway target", actorId } : {
|
|
@@ -5594,22 +6199,19 @@ var ActorHandleRaw = class {
|
|
|
5594
6199
|
args
|
|
5595
6200
|
}),
|
|
5596
6201
|
requestToBare: (args) => ({
|
|
5597
|
-
args: bufferToArrayBuffer(
|
|
6202
|
+
args: bufferToArrayBuffer(
|
|
6203
|
+
encodeCborCompat(args)
|
|
6204
|
+
)
|
|
5598
6205
|
}),
|
|
5599
6206
|
responseFromJson: (json) => json.output,
|
|
5600
|
-
responseFromBare: (
|
|
6207
|
+
responseFromBare: (bare5) => decodeCborCompat(new Uint8Array(bare5.output))
|
|
5601
6208
|
});
|
|
5602
6209
|
if (opts.name === "destroy" && actorId) {
|
|
5603
6210
|
await this.#waitForDestroyActionToSettle(actorId);
|
|
5604
6211
|
}
|
|
5605
6212
|
return output;
|
|
5606
6213
|
} catch (err) {
|
|
5607
|
-
const { group, code, message, metadata } = deconstructError(
|
|
5608
|
-
err,
|
|
5609
|
-
logger2(),
|
|
5610
|
-
{},
|
|
5611
|
-
true
|
|
5612
|
-
);
|
|
6214
|
+
const { group, code, message, metadata, actor } = deconstructError(err, true);
|
|
5613
6215
|
if (await this.#shouldRetrySchedulingError(
|
|
5614
6216
|
group,
|
|
5615
6217
|
code,
|
|
@@ -5637,18 +6239,23 @@ var ActorHandleRaw = class {
|
|
|
5637
6239
|
"actor",
|
|
5638
6240
|
"not_found",
|
|
5639
6241
|
"The actor does not exist or was destroyed.",
|
|
5640
|
-
metadata
|
|
6242
|
+
{ metadata, actor }
|
|
5641
6243
|
);
|
|
5642
6244
|
}
|
|
5643
|
-
const invalidated = this.#invalidateResolvedActorId(
|
|
6245
|
+
const invalidated = this.#invalidateResolvedActorId(
|
|
6246
|
+
group,
|
|
6247
|
+
code
|
|
6248
|
+
);
|
|
5644
6249
|
if (invalidated && attempt < maxAttempts - 1) {
|
|
5645
6250
|
if (group === "actor" && (code === "starting" || code === "stopping")) {
|
|
5646
6251
|
useQueryTarget = true;
|
|
5647
|
-
await new Promise(
|
|
6252
|
+
await new Promise(
|
|
6253
|
+
(resolve) => setTimeout(resolve, 100)
|
|
6254
|
+
);
|
|
5648
6255
|
}
|
|
5649
6256
|
continue;
|
|
5650
6257
|
}
|
|
5651
|
-
throw new RivetError(group, code, message, metadata);
|
|
6258
|
+
throw new RivetError(group, code, message, { metadata, actor });
|
|
5652
6259
|
}
|
|
5653
6260
|
}
|
|
5654
6261
|
throw new Error("unreachable action retry state");
|
|
@@ -5741,6 +6348,12 @@ var ActorHandleRaw = class {
|
|
|
5741
6348
|
this.#resolvingActorId = void 0;
|
|
5742
6349
|
}
|
|
5743
6350
|
}
|
|
6351
|
+
async #resolveGatewayRequestTarget(useQueryTarget, gatewayOptions) {
|
|
6352
|
+
if (gatewayOptions.skipReadyWait) {
|
|
6353
|
+
return getGatewayTarget(this.#actorResolutionState);
|
|
6354
|
+
}
|
|
6355
|
+
return await this.#resolveActionTarget(useQueryTarget);
|
|
6356
|
+
}
|
|
5744
6357
|
/**
|
|
5745
6358
|
* Establishes a persistent connection to the actor.
|
|
5746
6359
|
*
|
|
@@ -5777,15 +6390,20 @@ var ActorHandleRaw = class {
|
|
|
5777
6390
|
async #fetchWithResolvedActor(input, init) {
|
|
5778
6391
|
const maxAttempts = this.#getDynamicQueryMaxAttempts();
|
|
5779
6392
|
let useQueryTarget = false;
|
|
5780
|
-
const {
|
|
6393
|
+
const { skipReadyWait, ...requestInit } = init ?? {};
|
|
5781
6394
|
const gatewayOptions = resolveActorGatewayOptions(
|
|
5782
6395
|
this.#gatewayOptions,
|
|
5783
|
-
{
|
|
6396
|
+
{
|
|
6397
|
+
skipReadyWait
|
|
6398
|
+
}
|
|
5784
6399
|
);
|
|
5785
6400
|
for (let attempt = 0; attempt < maxAttempts; attempt++) {
|
|
5786
6401
|
let actorId;
|
|
5787
6402
|
try {
|
|
5788
|
-
const target = await this.#
|
|
6403
|
+
const target = await this.#resolveGatewayRequestTarget(
|
|
6404
|
+
useQueryTarget,
|
|
6405
|
+
gatewayOptions
|
|
6406
|
+
);
|
|
5789
6407
|
actorId = "directId" in target ? target.directId : void 0;
|
|
5790
6408
|
const response = await rawHttpFetch(
|
|
5791
6409
|
this.#driver,
|
|
@@ -5810,12 +6428,7 @@ var ActorHandleRaw = class {
|
|
|
5810
6428
|
}
|
|
5811
6429
|
return response;
|
|
5812
6430
|
} catch (err) {
|
|
5813
|
-
const { group, code, message, metadata } = deconstructError(
|
|
5814
|
-
err,
|
|
5815
|
-
logger2(),
|
|
5816
|
-
{},
|
|
5817
|
-
true
|
|
5818
|
-
);
|
|
6431
|
+
const { group, code, message, metadata, actor } = deconstructError(err, true);
|
|
5819
6432
|
if (await this.#shouldRetrySchedulingError(
|
|
5820
6433
|
group,
|
|
5821
6434
|
code,
|
|
@@ -5838,7 +6451,10 @@ var ActorHandleRaw = class {
|
|
|
5838
6451
|
await this.#waitForRetryWindow();
|
|
5839
6452
|
continue;
|
|
5840
6453
|
}
|
|
5841
|
-
const invalidated = this.#invalidateResolvedActorId(
|
|
6454
|
+
const invalidated = this.#invalidateResolvedActorId(
|
|
6455
|
+
group,
|
|
6456
|
+
code
|
|
6457
|
+
);
|
|
5842
6458
|
if (invalidated && attempt < maxAttempts - 1) {
|
|
5843
6459
|
useQueryTarget = code === "starting" || code === "stopping" || code.startsWith("destroyed_");
|
|
5844
6460
|
if (useQueryTarget) {
|
|
@@ -5846,7 +6462,7 @@ var ActorHandleRaw = class {
|
|
|
5846
6462
|
}
|
|
5847
6463
|
continue;
|
|
5848
6464
|
}
|
|
5849
|
-
throw new RivetError(group, code, message, metadata);
|
|
6465
|
+
throw new RivetError(group, code, message, { metadata, actor });
|
|
5850
6466
|
}
|
|
5851
6467
|
}
|
|
5852
6468
|
throw new Error("unreachable fetch retry state");
|
|
@@ -5906,12 +6522,23 @@ var ActorHandleRaw = class {
|
|
|
5906
6522
|
new Uint8Array(await response.clone().arrayBuffer()),
|
|
5907
6523
|
HTTP_RESPONSE_ERROR_VERSIONED,
|
|
5908
6524
|
HttpResponseErrorSchema,
|
|
5909
|
-
(json) =>
|
|
5910
|
-
|
|
5911
|
-
|
|
5912
|
-
|
|
5913
|
-
|
|
5914
|
-
|
|
6525
|
+
(json) => ({
|
|
6526
|
+
...json,
|
|
6527
|
+
actor: json.actor ? {
|
|
6528
|
+
...json.actor,
|
|
6529
|
+
generation: Number(json.actor.generation)
|
|
6530
|
+
} : void 0
|
|
6531
|
+
}),
|
|
6532
|
+
(bare5) => ({
|
|
6533
|
+
group: bare5.group,
|
|
6534
|
+
code: bare5.code,
|
|
6535
|
+
message: bare5.message,
|
|
6536
|
+
metadata: bare5.metadata ? decodeCborCompat(new Uint8Array(bare5.metadata)) : void 0,
|
|
6537
|
+
actor: bare5.actor ? {
|
|
6538
|
+
actorId: bare5.actor.actorId,
|
|
6539
|
+
generation: Number(bare5.actor.generation),
|
|
6540
|
+
key: bare5.actor.key ?? void 0
|
|
6541
|
+
} : void 0
|
|
5915
6542
|
})
|
|
5916
6543
|
);
|
|
5917
6544
|
} catch {
|
|
@@ -5927,7 +6554,11 @@ var ActorHandleRaw = class {
|
|
|
5927
6554
|
this.#gatewayOptions,
|
|
5928
6555
|
options
|
|
5929
6556
|
);
|
|
5930
|
-
const
|
|
6557
|
+
const useQueryTarget = isDynamicActorQuery(this.#actorResolutionState);
|
|
6558
|
+
const target = await this.#resolveGatewayRequestTarget(
|
|
6559
|
+
useQueryTarget,
|
|
6560
|
+
gatewayOptions
|
|
6561
|
+
);
|
|
5931
6562
|
return await rawWebSocket(
|
|
5932
6563
|
this.#driver,
|
|
5933
6564
|
target,
|
|
@@ -5948,7 +6579,9 @@ var ActorHandleRaw = class {
|
|
|
5948
6579
|
if ("directId" in target) {
|
|
5949
6580
|
return target.directId;
|
|
5950
6581
|
}
|
|
5951
|
-
throw new Error(
|
|
6582
|
+
throw new Error(
|
|
6583
|
+
"dynamic actor resolution did not produce a direct actor id"
|
|
6584
|
+
);
|
|
5952
6585
|
}
|
|
5953
6586
|
/**
|
|
5954
6587
|
* Returns the raw URL for routing traffic to the actor.
|