rivetkit 2.3.0-rc.8 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/client.d.ts +481 -74
- package/dist/browser/client.js +174 -148
- package/dist/browser/client.js.map +1 -1
- package/dist/browser/inspector/client.js +47 -18
- package/dist/browser/inspector/client.js.map +1 -1
- package/dist/tsup/actor/errors.cjs +2 -2
- package/dist/tsup/actor/errors.d.cts +1 -1
- package/dist/tsup/actor/errors.d.ts +1 -1
- package/dist/tsup/actor/errors.js +1 -1
- package/dist/tsup/agent-os/index.cjs +2160 -2086
- package/dist/tsup/agent-os/index.cjs.map +1 -1
- package/dist/tsup/agent-os/index.d.cts +479 -73
- package/dist/tsup/agent-os/index.d.ts +479 -73
- package/dist/tsup/agent-os/index.js +2160 -2086
- package/dist/tsup/agent-os/index.js.map +1 -1
- package/dist/tsup/{chunk-KY3CERZR.js → chunk-2OTRTA3J.js} +7 -21
- package/dist/tsup/chunk-2OTRTA3J.js.map +1 -0
- package/dist/tsup/{chunk-HGW6PBWR.cjs → chunk-3677IIOV.cjs} +11 -25
- package/dist/tsup/chunk-3677IIOV.cjs.map +1 -0
- package/dist/tsup/{chunk-OT7FF6GB.cjs → chunk-47HHIEXH.cjs} +24 -9
- package/dist/tsup/chunk-47HHIEXH.cjs.map +1 -0
- package/dist/tsup/{chunk-EMFKMVJR.js → chunk-4JDSFJS5.js} +69 -58
- package/dist/tsup/chunk-4JDSFJS5.js.map +1 -0
- package/dist/tsup/{chunk-7HLFSAJP.cjs → chunk-7QKCIVAY.cjs} +225 -214
- package/dist/tsup/chunk-7QKCIVAY.cjs.map +1 -0
- package/dist/tsup/{chunk-AWTPTUQ7.cjs → chunk-B6VUNZUD.cjs} +10 -10
- package/dist/tsup/{chunk-AWTPTUQ7.cjs.map → chunk-B6VUNZUD.cjs.map} +1 -1
- package/dist/tsup/{chunk-D3T3ZBSY.js → chunk-BEI24WTI.js} +2 -2
- package/dist/tsup/{chunk-TMLOKTRB.js → chunk-BRP62GZC.js} +1 -1
- package/dist/tsup/chunk-BRP62GZC.js.map +1 -0
- package/dist/tsup/{chunk-D5G75T7J.js → chunk-DPIMKYNB.js} +61 -2
- package/dist/tsup/chunk-DPIMKYNB.js.map +1 -0
- package/dist/tsup/{chunk-BATTOVHF.cjs → chunk-DXXJPH55.cjs} +40 -13
- package/dist/tsup/chunk-DXXJPH55.cjs.map +1 -0
- package/dist/tsup/{chunk-3YY5S6TV.js → chunk-HXUEHHJF.js} +2 -2
- package/dist/tsup/chunk-HXUEHHJF.js.map +1 -0
- package/dist/tsup/{chunk-4BPKKZJO.cjs → chunk-I4LN3FNT.cjs} +10 -10
- package/dist/tsup/chunk-I4LN3FNT.cjs.map +1 -0
- package/dist/tsup/{chunk-PCBNKI2J.js → chunk-JZ7TWV65.js} +1 -1
- package/dist/tsup/chunk-JZ7TWV65.js.map +1 -0
- package/dist/tsup/{chunk-63WNTDRC.cjs → chunk-KORQB2IR.cjs} +1 -1
- package/dist/tsup/{chunk-63WNTDRC.cjs.map → chunk-KORQB2IR.cjs.map} +1 -1
- package/dist/tsup/{chunk-6TQSSJ4F.cjs → chunk-LVTBW2RE.cjs} +3 -3
- package/dist/tsup/{chunk-6TQSSJ4F.cjs.map → chunk-LVTBW2RE.cjs.map} +1 -1
- package/dist/tsup/{chunk-4JU3IPG2.js → chunk-MEHBWPLJ.js} +6 -6
- package/dist/tsup/chunk-MEHBWPLJ.js.map +1 -0
- package/dist/tsup/{chunk-SRNOPUC6.cjs → chunk-NIY3RSPX.cjs} +62 -3
- package/dist/tsup/chunk-NIY3RSPX.cjs.map +1 -0
- package/dist/tsup/{chunk-UZXQEGVJ.js → chunk-P2GNQ4RN.js} +4 -4
- package/dist/tsup/{chunk-UZXQEGVJ.js.map → chunk-P2GNQ4RN.js.map} +1 -1
- package/dist/tsup/{chunk-VUGENVIK.js → chunk-UMZVD6DQ.js} +22 -7
- package/dist/tsup/chunk-UMZVD6DQ.js.map +1 -0
- package/dist/tsup/{chunk-LD5YASJU.cjs → chunk-VE2X4KMG.cjs} +2 -2
- package/dist/tsup/{chunk-LD5YASJU.cjs.map → chunk-VE2X4KMG.cjs.map} +1 -1
- package/dist/tsup/{chunk-GBG63SUG.js → chunk-VTTFNQQI.js} +32 -5
- package/dist/tsup/chunk-VTTFNQQI.js.map +1 -0
- package/dist/tsup/{chunk-2NDZ7JCR.cjs → chunk-ZA7FLHKH.cjs} +1 -1
- package/dist/tsup/chunk-ZA7FLHKH.cjs.map +1 -0
- package/dist/tsup/client/mod.cjs +9 -9
- package/dist/tsup/client/mod.d.cts +5 -5
- package/dist/tsup/client/mod.d.ts +5 -5
- package/dist/tsup/client/mod.js +8 -8
- package/dist/tsup/common/log.cjs +3 -3
- package/dist/tsup/common/log.js +2 -2
- package/dist/tsup/common/websocket.cjs +4 -4
- package/dist/tsup/common/websocket.js +3 -3
- package/dist/tsup/{config-Ak1lv4gF.d.ts → config-BxWAw3iH.d.ts} +512 -27
- package/dist/tsup/{config-DU_xj4qZ.d.cts → config-CZQQ-mso.d.cts} +512 -27
- package/dist/tsup/{config-CxjGYf4K.d.ts → config-D49x8NpL.d.cts} +1 -2
- package/dist/tsup/{config-CxjGYf4K.d.cts → config-D49x8NpL.d.ts} +1 -2
- package/dist/tsup/{context-DAAp4Lpg.d.ts → context-Bw7xq8w3.d.cts} +8 -8
- package/dist/tsup/{context-Dt_L55q8.d.cts → context-D8QA76sV.d.ts} +8 -8
- package/dist/tsup/db/drizzle.cjs +3 -3
- package/dist/tsup/db/drizzle.d.cts +1 -1
- package/dist/tsup/db/drizzle.d.ts +1 -1
- package/dist/tsup/db/drizzle.js +1 -1
- package/dist/tsup/db/mod.cjs +2 -2
- package/dist/tsup/db/mod.d.cts +2 -2
- package/dist/tsup/db/mod.d.ts +2 -2
- package/dist/tsup/db/mod.js +1 -1
- package/dist/tsup/dynamic/mod.cjs +24 -0
- package/dist/tsup/dynamic/mod.cjs.map +1 -0
- package/dist/tsup/dynamic/mod.d.cts +37 -0
- package/dist/tsup/dynamic/mod.d.ts +37 -0
- package/dist/tsup/dynamic/mod.js +24 -0
- package/dist/tsup/dynamic/mod.js.map +1 -0
- package/dist/tsup/inspector/mod.cjs +6 -6
- package/dist/tsup/inspector/mod.js +5 -5
- package/dist/tsup/inspector-tab/mod.cjs +173 -0
- package/dist/tsup/inspector-tab/mod.cjs.map +1 -0
- package/dist/tsup/inspector-tab/mod.d.cts +250 -0
- package/dist/tsup/inspector-tab/mod.d.ts +250 -0
- package/dist/tsup/inspector-tab/mod.js +173 -0
- package/dist/tsup/inspector-tab/mod.js.map +1 -0
- package/dist/tsup/mod.cjs +615 -348
- package/dist/tsup/mod.cjs.map +1 -1
- package/dist/tsup/mod.d.cts +5 -5
- package/dist/tsup/mod.d.ts +5 -5
- package/dist/tsup/mod.js +511 -244
- package/dist/tsup/mod.js.map +1 -1
- package/dist/tsup/test/mod.cjs +21 -18
- package/dist/tsup/test/mod.cjs.map +1 -1
- package/dist/tsup/test/mod.d.cts +4 -4
- package/dist/tsup/test/mod.d.ts +4 -4
- package/dist/tsup/test/mod.js +18 -15
- package/dist/tsup/test/mod.js.map +1 -1
- package/dist/tsup/{utils-DVekpm4I.d.cts → utils-DQosb24I.d.cts} +1 -1
- package/dist/tsup/{utils-DVekpm4I.d.ts → utils-DQosb24I.d.ts} +1 -1
- package/dist/tsup/utils.cjs +3 -3
- package/dist/tsup/utils.d.cts +1 -1
- package/dist/tsup/utils.d.ts +1 -1
- package/dist/tsup/utils.js +2 -2
- package/dist/tsup/workflow/mod.cjs +279 -279
- package/dist/tsup/workflow/mod.cjs.map +1 -1
- package/dist/tsup/workflow/mod.d.cts +6 -6
- package/dist/tsup/workflow/mod.d.ts +6 -6
- package/dist/tsup/workflow/mod.js +380 -380
- package/dist/tsup/workflow/mod.js.map +1 -1
- package/package.json +29 -9
- package/src/actor/config.ts +156 -51
- package/src/actor/contexts/index.ts +7 -2
- package/src/actor/definition.ts +17 -19
- package/src/actor/driver.ts +3 -3
- package/src/actor/errors.ts +8 -2
- package/src/actor/instance/mod.ts +26 -34
- package/src/actor/keys.ts +1 -1
- package/src/actor/mod.ts +22 -20
- package/src/actor/schema.ts +2 -2
- package/src/agent-os/actor/index.ts +38 -18
- package/src/agent-os/actor/preview.ts +1 -2
- package/src/agent-os/config.ts +1 -1
- package/src/agent-os/fs/database-vfs.ts +1 -1
- package/src/agent-os/index.ts +16 -15
- package/src/client/actor-common.ts +87 -54
- package/src/client/actor-conn.ts +11 -11
- package/src/client/actor-handle.ts +69 -52
- package/src/client/actor-query.ts +5 -5
- package/src/client/errors.ts +1 -1
- package/src/client/lifecycle-errors.ts +2 -4
- package/src/client/query.ts +1 -1
- package/src/client/queue.ts +8 -4
- package/src/client/raw-utils.ts +8 -6
- package/src/client/resolve-gateway-target.ts +1 -1
- package/src/client/utils.ts +2 -6
- package/src/common/actor-websocket.ts +3 -1
- package/src/common/bare/actor-persist/v1.ts +205 -163
- package/src/common/bare/actor-persist/v2.ts +265 -213
- package/src/common/bare/actor-persist/v3.ts +176 -172
- package/src/common/bare/actor-persist/v4.ts +254 -253
- package/src/common/bare/transport/v1.ts +659 -543
- package/src/common/client-protocol-versioned.ts +66 -64
- package/src/common/database/config.ts +2 -8
- package/src/common/database/native-database.ts +1 -1
- package/src/common/database/shared.ts +1 -0
- package/src/common/encoding.ts +13 -17
- package/src/common/engine.ts +28 -1
- package/src/common/eventsource.ts +1 -1
- package/src/common/inline-websocket-adapter.ts +3 -2
- package/src/common/router.ts +13 -17
- package/src/common/utils.ts +1 -2
- package/src/common/websocket-interface.ts +1 -1
- package/src/db/mod.ts +1 -1
- package/src/devtools-loader/index.ts +4 -7
- package/src/devtools-loader/serve-devtools.ts +26 -0
- package/src/drivers/engine/actor-driver.ts +48 -46
- package/src/dynamic/instance.ts +32 -0
- package/src/dynamic/internal.ts +50 -0
- package/src/dynamic/isolate-runtime.ts +66 -0
- package/src/dynamic/mod.ts +32 -0
- package/src/engine-client/actor-http-client.ts +3 -3
- package/src/engine-client/actor-websocket-client.ts +5 -5
- package/src/engine-client/api-endpoints.ts +51 -2
- package/src/engine-client/api-utils.ts +2 -2
- package/src/engine-client/driver.ts +1 -1
- package/src/engine-client/mod.ts +5 -3
- package/src/engine-client/ws-proxy.ts +9 -4
- package/src/inspector/client.browser.ts +5 -11
- package/src/inspector/mod.ts +1 -3
- package/src/inspector-tab/mod.ts +315 -0
- package/src/registry/config/envoy.ts +1 -2
- package/src/registry/config/index.ts +40 -16
- package/src/registry/index.ts +226 -83
- package/src/registry/napi-runtime.ts +46 -12
- package/src/registry/native-validation.ts +10 -12
- package/src/registry/native.ts +307 -164
- package/src/registry/process-metrics.ts +90 -23
- package/src/registry/runtime.ts +53 -6
- package/src/registry/wasm-runtime.ts +30 -3
- package/src/serde.ts +1 -1
- package/src/serverless/configure.ts +18 -7
- package/src/test/mod.ts +11 -8
- package/src/utils/endpoint-parser.ts +1 -1
- package/src/utils/env-vars.ts +6 -0
- package/src/utils/router.ts +1 -1
- package/src/utils/serve.ts +4 -5
- package/src/utils.ts +1 -2
- package/src/workflow/context.ts +30 -29
- package/src/workflow/driver.ts +4 -6
- package/src/workflow/inspector.ts +2 -2
- package/src/workflow/mod.ts +15 -17
- package/dist/tsup/chunk-2NDZ7JCR.cjs.map +0 -1
- package/dist/tsup/chunk-3YY5S6TV.js.map +0 -1
- package/dist/tsup/chunk-4BPKKZJO.cjs.map +0 -1
- package/dist/tsup/chunk-4JU3IPG2.js.map +0 -1
- package/dist/tsup/chunk-7HLFSAJP.cjs.map +0 -1
- package/dist/tsup/chunk-BATTOVHF.cjs.map +0 -1
- package/dist/tsup/chunk-D5G75T7J.js.map +0 -1
- package/dist/tsup/chunk-EMFKMVJR.js.map +0 -1
- package/dist/tsup/chunk-GBG63SUG.js.map +0 -1
- package/dist/tsup/chunk-HGW6PBWR.cjs.map +0 -1
- package/dist/tsup/chunk-KY3CERZR.js.map +0 -1
- package/dist/tsup/chunk-OT7FF6GB.cjs.map +0 -1
- package/dist/tsup/chunk-PCBNKI2J.js.map +0 -1
- package/dist/tsup/chunk-SRNOPUC6.cjs.map +0 -1
- package/dist/tsup/chunk-TMLOKTRB.js.map +0 -1
- package/dist/tsup/chunk-VUGENVIK.js.map +0 -1
- package/dist/tsup/process-metrics-NW754INA.js +0 -118
- package/dist/tsup/process-metrics-NW754INA.js.map +0 -1
- package/dist/tsup/process-metrics-TYAGKCEJ.cjs +0 -118
- package/dist/tsup/process-metrics-TYAGKCEJ.cjs.map +0 -1
- /package/dist/tsup/{chunk-D3T3ZBSY.js.map → chunk-BEI24WTI.js.map} +0 -0
|
@@ -122,71 +122,73 @@ const v4HttpResponseErrorToV3 = (
|
|
|
122
122
|
return rest;
|
|
123
123
|
};
|
|
124
124
|
|
|
125
|
-
export const CLIENT_PROTOCOL_TO_SERVER =
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
125
|
+
export const CLIENT_PROTOCOL_TO_SERVER =
|
|
126
|
+
createVersionedDataHandler<v4.ToServer>({
|
|
127
|
+
deserializeVersion: (bytes, version) => {
|
|
128
|
+
switch (version) {
|
|
129
|
+
case 1:
|
|
130
|
+
return v1.decodeToServer(bytes);
|
|
131
|
+
case 2:
|
|
132
|
+
return v2.decodeToServer(bytes);
|
|
133
|
+
case 3:
|
|
134
|
+
return v3.decodeToServer(bytes);
|
|
135
|
+
case 4:
|
|
136
|
+
return v4.decodeToServer(bytes);
|
|
137
|
+
default:
|
|
138
|
+
throw new Error(`Unknown version ${version}`);
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
serializeVersion: (data, version) => {
|
|
142
|
+
switch (version) {
|
|
143
|
+
case 1:
|
|
144
|
+
return v1.encodeToServer(data as v1.ToServer);
|
|
145
|
+
case 2:
|
|
146
|
+
return v2.encodeToServer(data as v2.ToServer);
|
|
147
|
+
case 3:
|
|
148
|
+
return v3.encodeToServer(data as v3.ToServer);
|
|
149
|
+
case 4:
|
|
150
|
+
return v4.encodeToServer(data as v4.ToServer);
|
|
151
|
+
default:
|
|
152
|
+
throw new Error(`Unknown version ${version}`);
|
|
153
|
+
}
|
|
154
|
+
},
|
|
155
|
+
deserializeConverters: () => [v1ToServerV2, v2ToServerV3, v3ToServerV4],
|
|
156
|
+
serializeConverters: () => [v4ToServerV3, v3ToServerV2, v2ToServerV1],
|
|
157
|
+
});
|
|
157
158
|
|
|
158
|
-
export const CLIENT_PROTOCOL_TO_CLIENT =
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
159
|
+
export const CLIENT_PROTOCOL_TO_CLIENT =
|
|
160
|
+
createVersionedDataHandler<v4.ToClient>({
|
|
161
|
+
deserializeVersion: (bytes, version) => {
|
|
162
|
+
switch (version) {
|
|
163
|
+
case 1:
|
|
164
|
+
return v1.decodeToClient(bytes);
|
|
165
|
+
case 2:
|
|
166
|
+
return v2.decodeToClient(bytes);
|
|
167
|
+
case 3:
|
|
168
|
+
return v3.decodeToClient(bytes);
|
|
169
|
+
case 4:
|
|
170
|
+
return v4.decodeToClient(bytes);
|
|
171
|
+
default:
|
|
172
|
+
throw new Error(`Unknown version ${version}`);
|
|
173
|
+
}
|
|
174
|
+
},
|
|
175
|
+
serializeVersion: (data, version) => {
|
|
176
|
+
switch (version) {
|
|
177
|
+
case 1:
|
|
178
|
+
return v1.encodeToClient(data as v1.ToClient);
|
|
179
|
+
case 2:
|
|
180
|
+
return v2.encodeToClient(data as v2.ToClient);
|
|
181
|
+
case 3:
|
|
182
|
+
return v3.encodeToClient(data as v3.ToClient);
|
|
183
|
+
case 4:
|
|
184
|
+
return v4.encodeToClient(data as v4.ToClient);
|
|
185
|
+
default:
|
|
186
|
+
throw new Error(`Unknown version ${version}`);
|
|
187
|
+
}
|
|
188
|
+
},
|
|
189
|
+
deserializeConverters: () => [v1ToV2, v2ToV3, v3ToV4],
|
|
190
|
+
serializeConverters: () => [v4ToV3, v3ToV2, v2ToV1],
|
|
191
|
+
});
|
|
190
192
|
|
|
191
193
|
export const HTTP_ACTION_REQUEST_VERSIONED =
|
|
192
194
|
createVersionedDataHandler<v4.HttpActionRequest>({
|
|
@@ -42,10 +42,7 @@ export interface SqliteDatabase {
|
|
|
42
42
|
sql: string,
|
|
43
43
|
callback?: (row: unknown[], columns: string[]) => void,
|
|
44
44
|
): Promise<void>;
|
|
45
|
-
execute(
|
|
46
|
-
sql: string,
|
|
47
|
-
params?: SqliteBindings,
|
|
48
|
-
): Promise<SqliteExecuteResult>;
|
|
45
|
+
execute(sql: string, params?: SqliteBindings): Promise<SqliteExecuteResult>;
|
|
49
46
|
run(sql: string, params?: SqliteBindings): Promise<void>;
|
|
50
47
|
query(sql: string, params?: SqliteBindings): Promise<SqliteQueryResult>;
|
|
51
48
|
nativeMetrics?():
|
|
@@ -132,10 +129,7 @@ export interface RawDatabaseClient {
|
|
|
132
129
|
/**
|
|
133
130
|
* Drizzle database client interface (will be extended by drizzle-orm types)
|
|
134
131
|
*/
|
|
135
|
-
export
|
|
136
|
-
// This will be extended by BaseSQLiteDatabase from drizzle-orm
|
|
137
|
-
// For now, just a marker interface
|
|
138
|
-
}
|
|
132
|
+
export type DrizzleDatabaseClient = {};
|
|
139
133
|
|
|
140
134
|
type ExecuteFunction = <
|
|
141
135
|
TRow extends Record<string, unknown> = Record<string, unknown>,
|
package/src/common/encoding.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { z } from "zod/v4";
|
|
2
1
|
import type { VersionedDataHandler } from "vbare";
|
|
2
|
+
import { z } from "zod/v4";
|
|
3
3
|
import { serializeWithEncoding } from "@/serde";
|
|
4
4
|
import { assertUnreachable } from "./utils";
|
|
5
5
|
|
|
@@ -172,7 +172,7 @@ export function assertJsonCompatValue(
|
|
|
172
172
|
|
|
173
173
|
const typeName =
|
|
174
174
|
typeof value === "object" && value !== null
|
|
175
|
-
? value.constructor?.name ?? typeof value
|
|
175
|
+
? (value.constructor?.name ?? typeof value)
|
|
176
176
|
: typeof value;
|
|
177
177
|
throw new TypeError(
|
|
178
178
|
`Value at ${path || "root"} of type "${typeName}" is not CBOR serializable`,
|
|
@@ -310,7 +310,11 @@ export function encodeJsonCompatValue(input: JsonCompatValue): unknown {
|
|
|
310
310
|
}
|
|
311
311
|
|
|
312
312
|
// Date, RegExp, and Error pass through for cbor-x native handling
|
|
313
|
-
if (
|
|
313
|
+
if (
|
|
314
|
+
input instanceof Date ||
|
|
315
|
+
input instanceof RegExp ||
|
|
316
|
+
input instanceof Error
|
|
317
|
+
) {
|
|
314
318
|
return input;
|
|
315
319
|
}
|
|
316
320
|
|
|
@@ -344,7 +348,7 @@ export function encodeJsonCompatValue(input: JsonCompatValue): unknown {
|
|
|
344
348
|
typeof encoded[0] === "string" &&
|
|
345
349
|
(encoded[0] as string).startsWith("$")
|
|
346
350
|
) {
|
|
347
|
-
return [
|
|
351
|
+
return [`$${encoded[0]}`, encoded[1]];
|
|
348
352
|
}
|
|
349
353
|
return encoded;
|
|
350
354
|
}
|
|
@@ -361,11 +365,9 @@ export function encodeJsonCompatValue(input: JsonCompatValue): unknown {
|
|
|
361
365
|
// Not serializable
|
|
362
366
|
const typeName =
|
|
363
367
|
typeof input === "object" && input !== null
|
|
364
|
-
? (input as object).constructor?.name ?? typeof input
|
|
368
|
+
? ((input as object).constructor?.name ?? typeof input)
|
|
365
369
|
: typeof input;
|
|
366
|
-
throw new TypeError(
|
|
367
|
-
`Value of type "${typeName}" is not CBOR serializable`,
|
|
368
|
-
);
|
|
370
|
+
throw new TypeError(`Value of type "${typeName}" is not CBOR serializable`);
|
|
369
371
|
}
|
|
370
372
|
|
|
371
373
|
export interface JsonCompatReviveOptions {
|
|
@@ -477,16 +479,10 @@ export function jsonStringifyCompat(input: any): string {
|
|
|
477
479
|
return [JSON_COMPAT_BIGINT, value.toString()];
|
|
478
480
|
}
|
|
479
481
|
if (value instanceof ArrayBuffer) {
|
|
480
|
-
return [
|
|
481
|
-
JSON_COMPAT_ARRAY_BUFFER,
|
|
482
|
-
base64EncodeArrayBuffer(value),
|
|
483
|
-
];
|
|
482
|
+
return [JSON_COMPAT_ARRAY_BUFFER, base64EncodeArrayBuffer(value)];
|
|
484
483
|
}
|
|
485
484
|
if (value instanceof Uint8Array) {
|
|
486
|
-
return [
|
|
487
|
-
JSON_COMPAT_UINT8_ARRAY,
|
|
488
|
-
base64EncodeUint8Array(value),
|
|
489
|
-
];
|
|
485
|
+
return [JSON_COMPAT_UINT8_ARRAY, base64EncodeUint8Array(value)];
|
|
490
486
|
}
|
|
491
487
|
if (
|
|
492
488
|
Array.isArray(value) &&
|
|
@@ -494,7 +490,7 @@ export function jsonStringifyCompat(input: any): string {
|
|
|
494
490
|
typeof value[0] === "string" &&
|
|
495
491
|
value[0].startsWith("$")
|
|
496
492
|
) {
|
|
497
|
-
return [
|
|
493
|
+
return [`$${value[0]}`, value[1]];
|
|
498
494
|
}
|
|
499
495
|
return value;
|
|
500
496
|
});
|
package/src/common/engine.ts
CHANGED
|
@@ -1,2 +1,29 @@
|
|
|
1
|
+
export const ENGINE_HOST = "127.0.0.1";
|
|
1
2
|
export const ENGINE_PORT = 6420;
|
|
2
|
-
export const ENGINE_ENDPOINT =
|
|
3
|
+
export const ENGINE_ENDPOINT = buildEngineEndpoint(ENGINE_HOST, ENGINE_PORT);
|
|
4
|
+
|
|
5
|
+
export function buildEngineEndpoint(host: string, port: number): string {
|
|
6
|
+
const urlHost =
|
|
7
|
+
host.includes(":") && !host.startsWith("[") ? `[${host}]` : host;
|
|
8
|
+
return `http://${urlHost}:${port}`;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export function isLocalEngineEndpoint(endpoint: string): boolean {
|
|
12
|
+
let url: URL;
|
|
13
|
+
try {
|
|
14
|
+
url = new URL(endpoint);
|
|
15
|
+
} catch {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
const hostname = url.hostname.toLowerCase();
|
|
20
|
+
return (
|
|
21
|
+
hostname === "localhost" ||
|
|
22
|
+
hostname === "0.0.0.0" ||
|
|
23
|
+
hostname === "::" ||
|
|
24
|
+
hostname === "[::]" ||
|
|
25
|
+
hostname === "::1" ||
|
|
26
|
+
hostname === "[::1]" ||
|
|
27
|
+
/^127(?:\.\d{1,3}){0,3}$/.test(hostname)
|
|
28
|
+
);
|
|
29
|
+
}
|
|
@@ -25,7 +25,7 @@ export async function importEventSource(): Promise<typeof EventSource> {
|
|
|
25
25
|
const es = await import(/* webpackIgnore: true */ moduleName);
|
|
26
26
|
_EventSource = es.EventSource;
|
|
27
27
|
logger().debug("using eventsource from npm");
|
|
28
|
-
} catch (
|
|
28
|
+
} catch (_err) {
|
|
29
29
|
// EventSource not available
|
|
30
30
|
_EventSource = class MockEventSource {
|
|
31
31
|
constructor() {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import { VirtualWebSocket } from "@rivetkit/virtual-websocket";
|
|
1
2
|
import { WSContext } from "hono/ws";
|
|
2
3
|
import type { UpgradeWebSocketArgs } from "@/common/actor-websocket";
|
|
3
4
|
import type { UniversalWebSocket } from "@/common/websocket-interface";
|
|
4
|
-
import { VirtualWebSocket } from "@rivetkit/virtual-websocket";
|
|
5
5
|
import { getLogger } from "./log";
|
|
6
6
|
|
|
7
7
|
function logger() {
|
|
@@ -166,7 +166,8 @@ export class InlineWebSocketAdapter {
|
|
|
166
166
|
logger().error({
|
|
167
167
|
msg: "error in websocket",
|
|
168
168
|
error,
|
|
169
|
-
errorMessage:
|
|
169
|
+
errorMessage:
|
|
170
|
+
error instanceof Error ? error.message : String(error),
|
|
170
171
|
stack: error instanceof Error ? error.stack : undefined,
|
|
171
172
|
});
|
|
172
173
|
|
package/src/common/router.ts
CHANGED
|
@@ -1,17 +1,11 @@
|
|
|
1
|
-
import type { Context as HonoContext, Next } from "hono";
|
|
2
1
|
import * as envoyProtocol from "@rivetkit/engine-envoy-protocol";
|
|
2
|
+
import type { Context as HonoContext, Next } from "hono";
|
|
3
3
|
import type { ActorSpecifier } from "@/actor/errors";
|
|
4
4
|
import {
|
|
5
5
|
HEADER_ACTOR_GENERATION,
|
|
6
6
|
HEADER_ACTOR_ID,
|
|
7
7
|
HEADER_ACTOR_KEY,
|
|
8
8
|
} from "@/common/actor-router-consts";
|
|
9
|
-
import type { JsonCompatValue, Encoding } from "@/common/encoding";
|
|
10
|
-
import {
|
|
11
|
-
getRequestEncoding,
|
|
12
|
-
getRequestExposeInternalError,
|
|
13
|
-
} from "@/common/router-request";
|
|
14
|
-
import { buildActorNames, type RegistryConfig } from "@/registry/config";
|
|
15
9
|
import type * as protocol from "@/common/client-protocol";
|
|
16
10
|
import {
|
|
17
11
|
CURRENT_VERSION as CLIENT_PROTOCOL_CURRENT_VERSION,
|
|
@@ -21,15 +15,17 @@ import {
|
|
|
21
15
|
type HttpResponseError as HttpResponseErrorJson,
|
|
22
16
|
HttpResponseErrorSchema,
|
|
23
17
|
} from "@/common/client-protocol-zod";
|
|
18
|
+
import type { Encoding, JsonCompatValue } from "@/common/encoding";
|
|
24
19
|
import {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
} from "@/
|
|
20
|
+
getRequestEncoding,
|
|
21
|
+
getRequestExposeInternalError,
|
|
22
|
+
} from "@/common/router-request";
|
|
23
|
+
import { buildActorNames, type RegistryConfig } from "@/registry/config";
|
|
24
|
+
import { encodeCborCompat, serializeWithEncoding } from "@/serde";
|
|
29
25
|
import { bufferToArrayBuffer, VERSION } from "@/utils";
|
|
30
26
|
import { getLogHeaders } from "@/utils/env-vars";
|
|
31
27
|
import { getLogger, type Logger } from "./log";
|
|
32
|
-
import { deconstructError
|
|
28
|
+
import { deconstructError } from "./utils";
|
|
33
29
|
|
|
34
30
|
export function logger() {
|
|
35
31
|
return getLogger("router");
|
|
@@ -67,10 +63,8 @@ export function handleRouteNotFound(c: HonoContext) {
|
|
|
67
63
|
export function handleRouteError(error: unknown, c: HonoContext) {
|
|
68
64
|
const exposeInternalError = getRequestExposeInternalError(c.req.raw);
|
|
69
65
|
|
|
70
|
-
const { statusCode, group, code, message, metadata, actor } =
|
|
71
|
-
error,
|
|
72
|
-
exposeInternalError,
|
|
73
|
-
);
|
|
66
|
+
const { statusCode, group, code, message, metadata, actor } =
|
|
67
|
+
deconstructError(error, exposeInternalError);
|
|
74
68
|
|
|
75
69
|
if (actor) {
|
|
76
70
|
logger().warn({
|
|
@@ -111,7 +105,9 @@ export function handleRouteError(error: unknown, c: HonoContext) {
|
|
|
111
105
|
code: value.code,
|
|
112
106
|
message: value.message,
|
|
113
107
|
metadata: value.metadata
|
|
114
|
-
? bufferToArrayBuffer(
|
|
108
|
+
? bufferToArrayBuffer(
|
|
109
|
+
encodeCborCompat(value.metadata as JsonCompatValue),
|
|
110
|
+
)
|
|
115
111
|
: null,
|
|
116
112
|
actor: value.actor
|
|
117
113
|
? {
|
package/src/common/utils.ts
CHANGED
|
@@ -36,7 +36,6 @@ export function safeStringify(obj: unknown, maxSize: number) {
|
|
|
36
36
|
return JSON.stringify(obj, replacer);
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
|
|
40
39
|
export interface DeconstructedError {
|
|
41
40
|
__type: "ActorError";
|
|
42
41
|
statusCode: ContentfulStatusCode;
|
|
@@ -135,7 +134,7 @@ export function deconstructError(
|
|
|
135
134
|
actor = error.actor;
|
|
136
135
|
}
|
|
137
136
|
metadata = {
|
|
138
|
-
//url: `https://
|
|
137
|
+
//url: `https://dashboard.rivet.dev/projects/${actorMetadata.project.slug}/environments/${actorMetadata.environment.slug}/actors?actorId=${actorMetadata.actor.id}`,
|
|
139
138
|
} satisfies errors.InternalErrorMetadata;
|
|
140
139
|
}
|
|
141
140
|
|
package/src/db/mod.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
export { db } from "@/common/database/mod";
|
|
2
1
|
export type {
|
|
3
2
|
AnyDatabaseProvider,
|
|
4
3
|
DatabaseProvider,
|
|
@@ -11,3 +10,4 @@ export type {
|
|
|
11
10
|
SqliteNativeMetrics,
|
|
12
11
|
SqliteQueryResult,
|
|
13
12
|
} from "@/common/database/config";
|
|
13
|
+
export { db } from "@/common/database/mod";
|
|
@@ -1,16 +1,11 @@
|
|
|
1
1
|
import type { ClientConfigInput } from "@/client/client";
|
|
2
|
-
import { VERSION } from "@/utils";
|
|
3
2
|
import { logger } from "./log";
|
|
4
3
|
|
|
5
4
|
declare global {
|
|
6
5
|
// Injected via tsup config
|
|
7
|
-
// biome-ignore lint/style/noVar: required for global declaration
|
|
8
6
|
var CUSTOM_RIVETKIT_DEVTOOLS_URL: string | undefined;
|
|
9
7
|
}
|
|
10
8
|
|
|
11
|
-
const DEFAULT_DEVTOOLS_URL = (version = VERSION) =>
|
|
12
|
-
`https://releases.rivet.dev/rivet/latest/devtools/mod.js?v=${version}`;
|
|
13
|
-
|
|
14
9
|
const scriptId = "rivetkit-devtools-script";
|
|
15
10
|
|
|
16
11
|
export function injectDevtools(config: ClientConfigInput) {
|
|
@@ -20,10 +15,12 @@ export function injectDevtools(config: ClientConfigInput) {
|
|
|
20
15
|
}
|
|
21
16
|
|
|
22
17
|
if (!document.getElementById(scriptId)) {
|
|
18
|
+
const src =
|
|
19
|
+
globalThis.CUSTOM_RIVETKIT_DEVTOOLS_URL ||
|
|
20
|
+
`${config.endpoint?.replace(/\/$/, "")}/devtools/mod.js`;
|
|
23
21
|
const script = document.createElement("script");
|
|
24
22
|
script.id = scriptId;
|
|
25
|
-
script.src =
|
|
26
|
-
globalThis.CUSTOM_RIVETKIT_DEVTOOLS_URL || DEFAULT_DEVTOOLS_URL();
|
|
23
|
+
script.src = src;
|
|
27
24
|
script.async = true;
|
|
28
25
|
document.head.appendChild(script);
|
|
29
26
|
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { getNodeFs, getNodePath, getNodeUrl } from "@/utils/node";
|
|
2
|
+
|
|
3
|
+
export async function getDevtoolsPath(): Promise<string> {
|
|
4
|
+
const url = getNodeUrl();
|
|
5
|
+
const path = getNodePath();
|
|
6
|
+
|
|
7
|
+
const devtoolsPath = path.join(
|
|
8
|
+
path.dirname(url.fileURLToPath(import.meta.url)),
|
|
9
|
+
"../../dist/devtools/mod.js",
|
|
10
|
+
);
|
|
11
|
+
|
|
12
|
+
try {
|
|
13
|
+
await getNodeFs().access(devtoolsPath);
|
|
14
|
+
} catch {
|
|
15
|
+
throw new Error(
|
|
16
|
+
`Devtools bundle not found at ${devtoolsPath}. Run 'pnpm build:pack-devtools' first.`,
|
|
17
|
+
);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
return devtoolsPath;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export async function readDevtoolsBundle(): Promise<Buffer> {
|
|
24
|
+
const devtoolsPath = await getDevtoolsPath();
|
|
25
|
+
return getNodeFs().readFile(devtoolsPath);
|
|
26
|
+
}
|