rivetkit 2.0.42 → 2.1.0-rc.1
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/{tsup/config-CLnylLYY.d.ts → browser/client.d.ts} +2127 -1910
- package/dist/browser/client.js +5182 -0
- package/dist/browser/client.js.map +1 -0
- package/dist/browser/inspector/client.d.ts +130 -0
- package/dist/browser/inspector/client.js +2854 -0
- package/dist/browser/inspector/client.js.map +1 -0
- package/dist/browser/v3-DnYObHH3.d.ts +279 -0
- package/dist/schemas/actor-inspector/v2.ts +796 -0
- package/dist/schemas/actor-inspector/v3.ts +899 -0
- package/dist/schemas/actor-persist/v4.ts +406 -0
- package/dist/schemas/client-protocol/v3.ts +554 -0
- package/dist/schemas/persist/v1.ts +781 -0
- package/dist/schemas/transport/v1.ts +697 -0
- package/dist/tsup/actor/errors.cjs +27 -3
- package/dist/tsup/actor/errors.cjs.map +1 -1
- package/dist/tsup/actor/errors.d.cts +37 -1
- package/dist/tsup/actor/errors.d.ts +37 -1
- package/dist/tsup/actor/errors.js +26 -1
- package/dist/tsup/{actor-router-consts-DzI2szci.d.cts → actor-router-consts-D29T1Z-K.d.cts} +1 -1
- package/dist/tsup/{actor-router-consts-DzI2szci.d.ts → actor-router-consts-D29T1Z-K.d.ts} +1 -1
- package/dist/tsup/chunk-424PT5DM.js +23 -0
- package/dist/tsup/chunk-424PT5DM.js.map +1 -0
- package/dist/tsup/{chunk-JDAD2YFA.js → chunk-5ESWDTHJ.js} +148 -273
- package/dist/tsup/chunk-5ESWDTHJ.js.map +1 -0
- package/dist/tsup/{chunk-FJ3KTN4V.js → chunk-6LIBPELE.js} +119 -11
- package/dist/tsup/chunk-6LIBPELE.js.map +1 -0
- package/dist/tsup/chunk-6LJAZ5R4.cjs +96 -0
- package/dist/tsup/chunk-6LJAZ5R4.cjs.map +1 -0
- package/dist/tsup/{chunk-LFVF5SCU.js → chunk-7HTNH26M.js} +126 -1
- package/dist/tsup/chunk-7HTNH26M.js.map +1 -0
- package/dist/tsup/chunk-7K4CYDGD.js +630 -0
- package/dist/tsup/chunk-7K4CYDGD.js.map +1 -0
- package/dist/tsup/{chunk-XXGJCOL6.js → chunk-A6YIZWTK.js} +2 -2
- package/dist/tsup/chunk-AIYEYMX5.cjs +630 -0
- package/dist/tsup/chunk-AIYEYMX5.cjs.map +1 -0
- package/dist/tsup/{chunk-Q6W7RJJP.js → chunk-DIGBC2VI.js} +211 -2316
- package/dist/tsup/chunk-DIGBC2VI.js.map +1 -0
- package/dist/tsup/{chunk-RZW2DNND.cjs → chunk-F6JYU5IK.cjs} +1957 -1039
- package/dist/tsup/chunk-F6JYU5IK.cjs.map +1 -0
- package/dist/tsup/chunk-HAZL2EPK.cjs +534 -0
- package/dist/tsup/chunk-HAZL2EPK.cjs.map +1 -0
- package/dist/tsup/chunk-HDQ2JUQT.cjs +23 -0
- package/dist/tsup/chunk-HDQ2JUQT.cjs.map +1 -0
- package/dist/tsup/chunk-HIDX4C5Y.cjs +1036 -0
- package/dist/tsup/chunk-HIDX4C5Y.cjs.map +1 -0
- package/dist/tsup/chunk-IVG73YCW.js +534 -0
- package/dist/tsup/chunk-IVG73YCW.js.map +1 -0
- package/dist/tsup/chunk-KJSYAUOM.js +96 -0
- package/dist/tsup/chunk-KJSYAUOM.js.map +1 -0
- package/dist/tsup/{chunk-2XQS746M.cjs → chunk-L47L3ZWJ.cjs} +127 -2
- package/dist/tsup/chunk-L47L3ZWJ.cjs.map +1 -0
- package/dist/tsup/{chunk-H4TB4X25.cjs → chunk-LW6KLR7A.cjs} +126 -18
- package/dist/tsup/chunk-LW6KLR7A.cjs.map +1 -0
- package/dist/tsup/chunk-LXUQ667X.js +2006 -0
- package/dist/tsup/chunk-LXUQ667X.js.map +1 -0
- package/dist/tsup/{chunk-GMAVRZSF.js → chunk-M2T62AZQ.js} +1790 -872
- package/dist/tsup/chunk-M2T62AZQ.js.map +1 -0
- package/dist/tsup/chunk-MZ37VV3P.js +5974 -0
- package/dist/tsup/chunk-MZ37VV3P.js.map +1 -0
- package/dist/tsup/chunk-N4KRDJ56.js +72 -0
- package/dist/tsup/chunk-N4KRDJ56.js.map +1 -0
- package/dist/tsup/chunk-NIYZDWMW.cjs +2006 -0
- package/dist/tsup/chunk-NIYZDWMW.cjs.map +1 -0
- package/dist/tsup/chunk-OMEPCQK2.js +649 -0
- package/dist/tsup/chunk-OMEPCQK2.js.map +1 -0
- package/dist/tsup/chunk-SR3KQE7Q.cjs +72 -0
- package/dist/tsup/chunk-SR3KQE7Q.cjs.map +1 -0
- package/dist/tsup/chunk-SSEP6DHP.cjs +2657 -0
- package/dist/tsup/chunk-SSEP6DHP.cjs.map +1 -0
- package/dist/tsup/chunk-T5YCUGVS.js +1036 -0
- package/dist/tsup/chunk-T5YCUGVS.js.map +1 -0
- package/dist/tsup/{chunk-EJVBH5VF.cjs → chunk-TPGXWFQT.cjs} +3 -3
- package/dist/tsup/{chunk-EJVBH5VF.cjs.map → chunk-TPGXWFQT.cjs.map} +1 -1
- package/dist/tsup/{chunk-X35U3YNX.cjs → chunk-TYLXNCA5.cjs} +214 -339
- package/dist/tsup/chunk-TYLXNCA5.cjs.map +1 -0
- package/dist/tsup/chunk-VKVNIQRQ.js +257 -0
- package/dist/tsup/chunk-VKVNIQRQ.js.map +1 -0
- package/dist/tsup/chunk-XWBAQO5H.cjs +649 -0
- package/dist/tsup/chunk-XWBAQO5H.cjs.map +1 -0
- package/dist/tsup/chunk-YQ4LDVD6.cjs +5974 -0
- package/dist/tsup/chunk-YQ4LDVD6.cjs.map +1 -0
- package/dist/tsup/chunk-ZFY5J2EP.cjs +257 -0
- package/dist/tsup/chunk-ZFY5J2EP.cjs.map +1 -0
- package/dist/tsup/client/mod.cjs +9 -10
- package/dist/tsup/client/mod.cjs.map +1 -1
- package/dist/tsup/client/mod.d.cts +11 -5
- package/dist/tsup/client/mod.d.ts +11 -5
- package/dist/tsup/client/mod.js +8 -8
- package/dist/tsup/common/log.cjs +4 -4
- package/dist/tsup/common/log.d.cts +2 -2
- package/dist/tsup/common/log.d.ts +2 -2
- package/dist/tsup/common/log.js +3 -2
- package/dist/tsup/common/websocket.cjs +5 -5
- package/dist/tsup/common/websocket.js +4 -3
- package/dist/tsup/config-BFqid9Gr.d.ts +2574 -0
- package/dist/tsup/config-BiNoIHRs.d.cts +80 -0
- package/dist/tsup/config-BiNoIHRs.d.ts +80 -0
- package/dist/tsup/{config-CZB2-W8x.d.cts → config-CAZphOS1.d.cts} +681 -355
- package/dist/tsup/db/drizzle/mod.cjs +49 -0
- package/dist/tsup/db/drizzle/mod.cjs.map +1 -0
- package/dist/tsup/db/drizzle/mod.d.cts +17 -0
- package/dist/tsup/db/drizzle/mod.d.ts +17 -0
- package/dist/tsup/db/drizzle/mod.js +49 -0
- package/dist/tsup/db/drizzle/mod.js.map +1 -0
- package/dist/tsup/db/mod.cjs +9 -0
- package/dist/tsup/db/mod.cjs.map +1 -0
- package/dist/tsup/db/mod.d.cts +9 -0
- package/dist/tsup/db/mod.d.ts +9 -0
- package/dist/tsup/db/mod.js +9 -0
- package/dist/tsup/db/mod.js.map +1 -0
- package/dist/tsup/{driver-D0QX9M11.d.ts → driver-Bxv62E2p.d.ts} +2 -2
- package/dist/tsup/{driver-q-zqG7fc.d.cts → driver-DYXwJR5D.d.cts} +2 -2
- package/dist/tsup/driver-helpers/mod.cjs +12 -6
- package/dist/tsup/driver-helpers/mod.cjs.map +1 -1
- package/dist/tsup/driver-helpers/mod.d.cts +12 -5
- package/dist/tsup/driver-helpers/mod.d.ts +12 -5
- package/dist/tsup/driver-helpers/mod.js +12 -5
- package/dist/tsup/driver-test-suite/mod.cjs +1370 -116
- package/dist/tsup/driver-test-suite/mod.cjs.map +1 -1
- package/dist/tsup/driver-test-suite/mod.d.cts +10 -4
- package/dist/tsup/driver-test-suite/mod.d.ts +10 -4
- package/dist/tsup/driver-test-suite/mod.js +2093 -838
- package/dist/tsup/driver-test-suite/mod.js.map +1 -1
- package/dist/tsup/inspector/mod.cjs +29 -3
- package/dist/tsup/inspector/mod.cjs.map +1 -1
- package/dist/tsup/inspector/mod.d.cts +124 -3
- package/dist/tsup/inspector/mod.d.ts +124 -3
- package/dist/tsup/inspector/mod.js +72 -45
- package/dist/tsup/keys-CydblqMh.d.cts +13 -0
- package/dist/tsup/keys-CydblqMh.d.ts +13 -0
- package/dist/tsup/mod.cjs +16 -10
- package/dist/tsup/mod.cjs.map +1 -1
- package/dist/tsup/mod.d.cts +26 -14
- package/dist/tsup/mod.d.ts +26 -14
- package/dist/tsup/mod.js +20 -13
- package/dist/tsup/serve-test-suite/mod.cjs +1165 -83
- package/dist/tsup/serve-test-suite/mod.cjs.map +1 -1
- package/dist/tsup/serve-test-suite/mod.js +1114 -29
- package/dist/tsup/serve-test-suite/mod.js.map +1 -1
- package/dist/tsup/test/mod.cjs +84 -11
- package/dist/tsup/test/mod.cjs.map +1 -1
- package/dist/tsup/test/mod.d.cts +10 -5
- package/dist/tsup/test/mod.d.ts +10 -5
- package/dist/tsup/test/mod.js +85 -11
- package/dist/tsup/test/mod.js.map +1 -1
- package/dist/tsup/utils.cjs +10 -4
- package/dist/tsup/utils.cjs.map +1 -1
- package/dist/tsup/utils.d.cts +72 -2
- package/dist/tsup/utils.d.ts +72 -2
- package/dist/tsup/utils.js +9 -2
- package/dist/tsup/v3-DnYObHH3.d.cts +279 -0
- package/dist/tsup/v3-DnYObHH3.d.ts +279 -0
- package/dist/tsup/workflow/mod.cjs +16 -0
- package/dist/tsup/workflow/mod.cjs.map +1 -0
- package/dist/tsup/workflow/mod.d.cts +83 -0
- package/dist/tsup/workflow/mod.d.ts +83 -0
- package/dist/tsup/workflow/mod.js +16 -0
- package/dist/tsup/workflow/mod.js.map +1 -0
- package/package.json +62 -5
- package/src/actor/config.ts +478 -68
- package/src/actor/conn/mod.ts +68 -16
- package/src/actor/conn/state-manager.ts +2 -2
- package/src/actor/contexts/action.ts +20 -12
- package/src/actor/contexts/base/actor.ts +137 -7
- package/src/actor/contexts/base/conn-init.ts +27 -7
- package/src/actor/contexts/base/conn.ts +27 -18
- package/src/actor/contexts/before-action-response.ts +9 -2
- package/src/actor/contexts/before-connect.ts +7 -2
- package/src/actor/contexts/connect.ts +9 -2
- package/src/actor/contexts/create-conn-state.ts +7 -2
- package/src/actor/contexts/create-vars.ts +16 -3
- package/src/actor/contexts/create.ts +16 -3
- package/src/actor/contexts/destroy.ts +9 -3
- package/src/actor/contexts/disconnect.ts +10 -4
- package/src/actor/contexts/index.ts +4 -3
- package/src/actor/contexts/request.ts +23 -6
- package/src/actor/contexts/run.ts +47 -0
- package/src/actor/contexts/sleep.ts +9 -3
- package/src/actor/contexts/state-change.ts +9 -3
- package/src/actor/contexts/wake.ts +9 -3
- package/src/actor/contexts/websocket.ts +23 -6
- package/src/actor/database.ts +8 -18
- package/src/actor/definition.ts +20 -6
- package/src/actor/driver.ts +32 -3
- package/src/actor/errors.ts +127 -0
- package/src/actor/instance/connection-manager.ts +183 -80
- package/src/actor/instance/event-manager.ts +26 -15
- package/src/actor/instance/keys.ts +117 -0
- package/src/actor/instance/mod.ts +784 -174
- package/src/actor/instance/queue-manager.ts +603 -0
- package/src/actor/instance/queue.ts +287 -0
- package/src/actor/instance/schedule-manager.ts +49 -7
- package/src/actor/instance/state-manager.ts +35 -11
- package/src/actor/instance/traces-driver.ts +128 -0
- package/src/actor/mod.ts +26 -2
- package/src/actor/protocol/old.ts +28 -13
- package/src/actor/protocol/serde.ts +1 -1
- package/src/actor/router-endpoints.ts +177 -21
- package/src/actor/router-websocket-endpoints.ts +18 -29
- package/src/actor/router.ts +177 -0
- package/src/actor/schema.ts +291 -0
- package/src/actor/utils.ts +40 -0
- package/src/client/actor-common.ts +1 -1
- package/src/client/actor-conn.ts +100 -33
- package/src/client/actor-handle.ts +61 -33
- package/src/client/client.ts +2 -4
- package/src/client/config.ts +1 -1
- package/src/client/mod.browser.ts +2 -0
- package/src/client/mod.ts +1 -4
- package/src/client/queue.ts +146 -0
- package/src/client/utils.ts +1 -1
- package/src/common/log.ts +1 -1
- package/src/common/utils.ts +3 -3
- package/src/db/config.ts +100 -0
- package/src/db/drizzle/mod.ts +226 -0
- package/src/db/drizzle/sqlite-core.ts +22 -0
- package/src/db/mod.ts +125 -0
- package/src/db/shared.ts +92 -0
- package/src/db/sqlite-vfs.ts +12 -0
- package/src/driver-helpers/mod.ts +1 -0
- package/src/driver-test-suite/mod.ts +69 -43
- package/src/driver-test-suite/tests/access-control.ts +218 -0
- package/src/driver-test-suite/tests/actor-db-raw.ts +73 -0
- package/src/driver-test-suite/tests/actor-db.ts +394 -0
- package/src/driver-test-suite/tests/actor-inspector.ts +259 -358
- package/src/driver-test-suite/tests/actor-kv.ts +41 -20
- package/src/driver-test-suite/tests/actor-queue.ts +324 -0
- package/src/driver-test-suite/tests/actor-run.ts +181 -0
- package/src/driver-test-suite/tests/actor-schedule.ts +5 -2
- package/src/driver-test-suite/tests/actor-sleep.ts +3 -3
- package/src/driver-test-suite/tests/actor-stateless.ts +70 -0
- package/src/driver-test-suite/tests/actor-workflow.ts +108 -0
- package/src/driver-test-suite/tests/manager-driver.ts +11 -0
- package/src/driver-test-suite/tests/raw-http-request-properties.ts +1 -1
- package/src/driver-test-suite/tests/raw-websocket.ts +12 -12
- package/src/drivers/default.ts +7 -2
- package/src/drivers/engine/actor-driver.ts +45 -37
- package/src/drivers/engine/config.ts +1 -1
- package/src/drivers/file-system/actor.ts +20 -2
- package/src/drivers/file-system/global-state.ts +569 -258
- package/src/drivers/file-system/kv-limits.ts +70 -0
- package/src/drivers/file-system/manager.ts +22 -6
- package/src/drivers/file-system/mod.ts +39 -16
- package/src/drivers/file-system/sqlite-runtime.ts +210 -0
- package/src/inspector/actor-inspector.ts +224 -102
- package/src/inspector/config.ts +1 -1
- package/src/inspector/handler.ts +102 -20
- package/src/inspector/mod.browser.ts +8 -0
- package/src/inspector/mod.ts +2 -0
- package/src/inspector/serve-ui.ts +40 -0
- package/src/inspector/transport.ts +18 -0
- package/src/inspector/utils.ts +5 -39
- package/src/manager/gateway.ts +1 -1
- package/src/manager/protocol/mod.ts +1 -1
- package/src/manager/protocol/query.ts +1 -1
- package/src/manager/router-schema.ts +1 -1
- package/src/manager/router.ts +38 -12
- package/src/manager-api/actors.ts +1 -1
- package/src/manager-api/common.ts +1 -1
- package/src/registry/config/driver.ts +1 -1
- package/src/registry/config/index.ts +212 -43
- package/src/registry/config/legacy-runner.ts +1 -1
- package/src/registry/config/runner.ts +1 -1
- package/src/registry/config/serverless.ts +1 -1
- package/src/registry/index.ts +7 -5
- package/src/remote-manager-driver/api-utils.ts +1 -1
- package/src/schemas/actor-inspector/mod.ts +1 -1
- package/src/schemas/actor-inspector/versioned.ts +195 -8
- package/src/schemas/actor-persist/versioned.ts +87 -7
- package/src/schemas/client-protocol/mod.ts +1 -1
- package/src/schemas/client-protocol/versioned.ts +127 -11
- package/src/schemas/client-protocol-zod/mod.ts +16 -1
- package/src/schemas/persist/mod.ts +1 -0
- package/src/schemas/transport/mod.ts +1 -0
- package/src/serde.ts +1 -1
- package/src/serve-test-suite/mod.ts +10 -9
- package/src/test/mod.ts +15 -56
- package/src/utils/endpoint-parser.test.ts +1 -1
- package/src/utils/endpoint-parser.ts +1 -1
- package/src/utils/env-vars.ts +12 -1
- package/src/utils/node.ts +15 -2
- package/src/utils.test.ts +34 -0
- package/src/utils.ts +140 -6
- package/src/workflow/constants.ts +2 -0
- package/src/workflow/context.ts +532 -0
- package/src/workflow/driver.ts +191 -0
- package/src/workflow/inspector.ts +268 -0
- package/src/workflow/mod.ts +122 -0
- package/dist/tsup/chunk-2IJTYN6K.cjs +0 -278
- package/dist/tsup/chunk-2IJTYN6K.cjs.map +0 -1
- package/dist/tsup/chunk-2XQS746M.cjs.map +0 -1
- package/dist/tsup/chunk-3VP5CSHV.cjs +0 -114
- package/dist/tsup/chunk-3VP5CSHV.cjs.map +0 -1
- package/dist/tsup/chunk-AQFSQMBG.js +0 -114
- package/dist/tsup/chunk-AQFSQMBG.js.map +0 -1
- package/dist/tsup/chunk-E6ZE2YEA.js +0 -664
- package/dist/tsup/chunk-E6ZE2YEA.js.map +0 -1
- package/dist/tsup/chunk-FJ3KTN4V.js.map +0 -1
- package/dist/tsup/chunk-GBENOENJ.cjs +0 -8
- package/dist/tsup/chunk-GBENOENJ.cjs.map +0 -1
- package/dist/tsup/chunk-GD7UXGOE.cjs +0 -4762
- package/dist/tsup/chunk-GD7UXGOE.cjs.map +0 -1
- package/dist/tsup/chunk-GMAVRZSF.js.map +0 -1
- package/dist/tsup/chunk-H4TB4X25.cjs.map +0 -1
- package/dist/tsup/chunk-JDAD2YFA.js.map +0 -1
- package/dist/tsup/chunk-KCOVZOPS.js +0 -1946
- package/dist/tsup/chunk-KCOVZOPS.js.map +0 -1
- package/dist/tsup/chunk-KDFWJKMJ.cjs +0 -664
- package/dist/tsup/chunk-KDFWJKMJ.cjs.map +0 -1
- package/dist/tsup/chunk-LFVF5SCU.js.map +0 -1
- package/dist/tsup/chunk-Q6W7RJJP.js.map +0 -1
- package/dist/tsup/chunk-RUW5CZ5Z.cjs +0 -1949
- package/dist/tsup/chunk-RUW5CZ5Z.cjs.map +0 -1
- package/dist/tsup/chunk-RZW2DNND.cjs.map +0 -1
- package/dist/tsup/chunk-TCOEBUUE.js +0 -278
- package/dist/tsup/chunk-TCOEBUUE.js.map +0 -1
- package/dist/tsup/chunk-X35U3YNX.cjs.map +0 -1
- package/dist/tsup/keys-Chhy4ylv.d.cts +0 -8
- package/dist/tsup/keys-Chhy4ylv.d.ts +0 -8
- package/dist/tsup/v1-Gq4avTK3.d.cts +0 -240
- package/dist/tsup/v1-Gq4avTK3.d.ts +0 -240
- /package/dist/tsup/{chunk-XXGJCOL6.js.map → chunk-A6YIZWTK.js.map} +0 -0
|
@@ -1,13 +1,188 @@
|
|
|
1
1
|
import { createVersionedDataHandler } from "vbare";
|
|
2
2
|
|
|
3
3
|
import * as v1 from "../../../dist/schemas/actor-inspector/v1";
|
|
4
|
+
import * as v2 from "../../../dist/schemas/actor-inspector/v2";
|
|
5
|
+
import * as v3 from "../../../dist/schemas/actor-inspector/v3";
|
|
4
6
|
|
|
7
|
+
export const CURRENT_VERSION = 3;
|
|
5
8
|
|
|
6
|
-
|
|
9
|
+
const EVENTS_DROPPED_ERROR = "inspector.events_dropped";
|
|
10
|
+
const WORKFLOW_HISTORY_DROPPED_ERROR = "inspector.workflow_history_dropped";
|
|
11
|
+
const QUEUE_DROPPED_ERROR = "inspector.queue_dropped";
|
|
12
|
+
const TRACE_DROPPED_ERROR = "inspector.trace_dropped";
|
|
13
|
+
const DATABASE_DROPPED_ERROR = "inspector.database_dropped";
|
|
14
|
+
|
|
15
|
+
// Converter from v1 to v2: Drop events in Init and add new fields
|
|
16
|
+
const v1ToClientToV2 = (v1Data: v1.ToClient): v2.ToClient => {
|
|
17
|
+
if (v1Data.body.tag === "Init") {
|
|
18
|
+
const init = v1Data.body.val as v1.Init;
|
|
19
|
+
return {
|
|
20
|
+
body: {
|
|
21
|
+
tag: "Init",
|
|
22
|
+
val: {
|
|
23
|
+
connections: init.connections,
|
|
24
|
+
state: init.state,
|
|
25
|
+
isStateEnabled: init.isStateEnabled,
|
|
26
|
+
rpcs: init.rpcs,
|
|
27
|
+
isDatabaseEnabled: init.isDatabaseEnabled,
|
|
28
|
+
queueSize: 0n,
|
|
29
|
+
workflowHistory: null,
|
|
30
|
+
isWorkflowEnabled: false,
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
if (
|
|
36
|
+
v1Data.body.tag === "EventsUpdated" ||
|
|
37
|
+
v1Data.body.tag === "EventsResponse"
|
|
38
|
+
) {
|
|
39
|
+
return {
|
|
40
|
+
body: {
|
|
41
|
+
tag: "Error",
|
|
42
|
+
val: {
|
|
43
|
+
message: EVENTS_DROPPED_ERROR,
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
return v1Data as unknown as v2.ToClient;
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
// Converter from v2 to v1: Add empty events to Init, drop newer updates
|
|
52
|
+
const v2ToClientToV1 = (v2Data: v2.ToClient): v1.ToClient => {
|
|
53
|
+
if (v2Data.body.tag === "Init") {
|
|
54
|
+
const init = v2Data.body.val;
|
|
55
|
+
return {
|
|
56
|
+
body: {
|
|
57
|
+
tag: "Init",
|
|
58
|
+
val: {
|
|
59
|
+
connections: init.connections,
|
|
60
|
+
events: [],
|
|
61
|
+
state: init.state,
|
|
62
|
+
isStateEnabled: init.isStateEnabled,
|
|
63
|
+
rpcs: init.rpcs,
|
|
64
|
+
isDatabaseEnabled: init.isDatabaseEnabled,
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
if (
|
|
70
|
+
v2Data.body.tag === "WorkflowHistoryUpdated" ||
|
|
71
|
+
v2Data.body.tag === "WorkflowHistoryResponse"
|
|
72
|
+
) {
|
|
73
|
+
return {
|
|
74
|
+
body: {
|
|
75
|
+
tag: "Error",
|
|
76
|
+
val: {
|
|
77
|
+
message: WORKFLOW_HISTORY_DROPPED_ERROR,
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
if (v2Data.body.tag === "QueueUpdated") {
|
|
83
|
+
return {
|
|
84
|
+
body: {
|
|
85
|
+
tag: "Error",
|
|
86
|
+
val: {
|
|
87
|
+
message: QUEUE_DROPPED_ERROR,
|
|
88
|
+
},
|
|
89
|
+
},
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
if (v2Data.body.tag === "QueueResponse") {
|
|
93
|
+
return {
|
|
94
|
+
body: {
|
|
95
|
+
tag: "Error",
|
|
96
|
+
val: {
|
|
97
|
+
message: QUEUE_DROPPED_ERROR,
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
if (v2Data.body.tag === "TraceQueryResponse") {
|
|
103
|
+
return {
|
|
104
|
+
body: {
|
|
105
|
+
tag: "Error",
|
|
106
|
+
val: {
|
|
107
|
+
message: TRACE_DROPPED_ERROR,
|
|
108
|
+
},
|
|
109
|
+
},
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
return v2Data as unknown as v1.ToClient;
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
// Converter from v2 to v3: v2 messages are a subset of v3
|
|
116
|
+
const v2ToClientToV3 = (v2Data: v2.ToClient): v3.ToClient => {
|
|
117
|
+
return v2Data as unknown as v3.ToClient;
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
// Converter from v3 to v2: Drop database responses
|
|
121
|
+
const v3ToClientToV2 = (v3Data: v3.ToClient): v2.ToClient => {
|
|
122
|
+
if (
|
|
123
|
+
v3Data.body.tag === "DatabaseSchemaResponse" ||
|
|
124
|
+
v3Data.body.tag === "DatabaseTableRowsResponse"
|
|
125
|
+
) {
|
|
126
|
+
return {
|
|
127
|
+
body: {
|
|
128
|
+
tag: "Error",
|
|
129
|
+
val: {
|
|
130
|
+
message: DATABASE_DROPPED_ERROR,
|
|
131
|
+
},
|
|
132
|
+
},
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
return v3Data as unknown as v2.ToClient;
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
// Converter from v1 to v2: Drop events requests
|
|
139
|
+
const v1ToServerToV2 = (v1Data: v1.ToServer): v2.ToServer => {
|
|
140
|
+
if (
|
|
141
|
+
v1Data.body.tag === "EventsRequest" ||
|
|
142
|
+
v1Data.body.tag === "ClearEventsRequest"
|
|
143
|
+
) {
|
|
144
|
+
throw new Error("Cannot convert events requests to v2");
|
|
145
|
+
}
|
|
146
|
+
return v1Data as unknown as v2.ToServer;
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
// Converter from v2 to v1: Drop newer requests
|
|
150
|
+
const v2ToServerToV1 = (v2Data: v2.ToServer): v1.ToServer => {
|
|
151
|
+
if (
|
|
152
|
+
v2Data.body.tag === "TraceQueryRequest" ||
|
|
153
|
+
v2Data.body.tag === "QueueRequest" ||
|
|
154
|
+
v2Data.body.tag === "WorkflowHistoryRequest"
|
|
155
|
+
) {
|
|
156
|
+
throw new Error("Cannot convert v2-only requests to v1");
|
|
157
|
+
}
|
|
158
|
+
return v2Data as unknown as v1.ToServer;
|
|
159
|
+
};
|
|
160
|
+
|
|
161
|
+
// Converter from v2 to v3: v2 messages are a subset of v3
|
|
162
|
+
const v2ToServerToV3 = (v2Data: v2.ToServer): v3.ToServer => {
|
|
163
|
+
return v2Data as unknown as v3.ToServer;
|
|
164
|
+
};
|
|
165
|
+
|
|
166
|
+
// Converter from v3 to v2: Drop database requests
|
|
167
|
+
const v3ToServerToV2 = (v3Data: v3.ToServer): v2.ToServer => {
|
|
168
|
+
if (
|
|
169
|
+
v3Data.body.tag === "DatabaseSchemaRequest" ||
|
|
170
|
+
v3Data.body.tag === "DatabaseTableRowsRequest"
|
|
171
|
+
) {
|
|
172
|
+
throw new Error("Cannot convert v3-only database requests to v2");
|
|
173
|
+
}
|
|
174
|
+
return v3Data as unknown as v2.ToServer;
|
|
175
|
+
};
|
|
176
|
+
|
|
177
|
+
export const TO_SERVER_VERSIONED = createVersionedDataHandler<v3.ToServer>({
|
|
7
178
|
serializeVersion: (data, version) => {
|
|
8
179
|
switch (version) {
|
|
9
180
|
case 1:
|
|
10
|
-
return v1.encodeToServer(data);
|
|
181
|
+
return v1.encodeToServer(data as v1.ToServer);
|
|
182
|
+
case 2:
|
|
183
|
+
return v2.encodeToServer(data as v2.ToServer);
|
|
184
|
+
case 3:
|
|
185
|
+
return v3.encodeToServer(data as v3.ToServer);
|
|
11
186
|
default:
|
|
12
187
|
throw new Error(`Unknown version ${version}`);
|
|
13
188
|
}
|
|
@@ -16,19 +191,27 @@ export const TO_SERVER_VERSIONED = createVersionedDataHandler<v1.ToServer>({
|
|
|
16
191
|
switch (version) {
|
|
17
192
|
case 1:
|
|
18
193
|
return v1.decodeToServer(bytes);
|
|
194
|
+
case 2:
|
|
195
|
+
return v2.decodeToServer(bytes);
|
|
196
|
+
case 3:
|
|
197
|
+
return v3.decodeToServer(bytes);
|
|
19
198
|
default:
|
|
20
199
|
throw new Error(`Unknown version ${version}`);
|
|
21
200
|
}
|
|
22
201
|
},
|
|
23
|
-
deserializeConverters: () => [],
|
|
24
|
-
serializeConverters: () => [],
|
|
202
|
+
deserializeConverters: () => [v1ToServerToV2, v2ToServerToV3],
|
|
203
|
+
serializeConverters: () => [v3ToServerToV2, v2ToServerToV1],
|
|
25
204
|
});
|
|
26
205
|
|
|
27
|
-
export const TO_CLIENT_VERSIONED = createVersionedDataHandler<
|
|
206
|
+
export const TO_CLIENT_VERSIONED = createVersionedDataHandler<v3.ToClient>({
|
|
28
207
|
serializeVersion: (data, version) => {
|
|
29
208
|
switch (version) {
|
|
30
209
|
case 1:
|
|
31
|
-
return v1.encodeToClient(data);
|
|
210
|
+
return v1.encodeToClient(data as v1.ToClient);
|
|
211
|
+
case 2:
|
|
212
|
+
return v2.encodeToClient(data as v2.ToClient);
|
|
213
|
+
case 3:
|
|
214
|
+
return v3.encodeToClient(data as v3.ToClient);
|
|
32
215
|
default:
|
|
33
216
|
throw new Error(`Unknown version ${version}`);
|
|
34
217
|
}
|
|
@@ -37,10 +220,14 @@ export const TO_CLIENT_VERSIONED = createVersionedDataHandler<v1.ToClient>({
|
|
|
37
220
|
switch (version) {
|
|
38
221
|
case 1:
|
|
39
222
|
return v1.decodeToClient(bytes);
|
|
223
|
+
case 2:
|
|
224
|
+
return v2.decodeToClient(bytes);
|
|
225
|
+
case 3:
|
|
226
|
+
return v3.decodeToClient(bytes);
|
|
40
227
|
default:
|
|
41
228
|
throw new Error(`Unknown version ${version}`);
|
|
42
229
|
}
|
|
43
230
|
},
|
|
44
|
-
deserializeConverters: () => [],
|
|
45
|
-
serializeConverters: () => [],
|
|
231
|
+
deserializeConverters: () => [v1ToClientToV2, v2ToClientToV3],
|
|
232
|
+
serializeConverters: () => [v3ToClientToV2, v2ToClientToV1],
|
|
46
233
|
});
|
|
@@ -2,8 +2,9 @@ import { createVersionedDataHandler } from "vbare";
|
|
|
2
2
|
import * as v1 from "../../../dist/schemas/actor-persist/v1";
|
|
3
3
|
import * as v2 from "../../../dist/schemas/actor-persist/v2";
|
|
4
4
|
import * as v3 from "../../../dist/schemas/actor-persist/v3";
|
|
5
|
+
import * as v4 from "../../../dist/schemas/actor-persist/v4";
|
|
5
6
|
|
|
6
|
-
export const CURRENT_VERSION =
|
|
7
|
+
export const CURRENT_VERSION = 4;
|
|
7
8
|
|
|
8
9
|
// Converter from v1 to v2
|
|
9
10
|
const v1ToV2 = (v1Data: v1.PersistedActor): v2.PersistedActor => ({
|
|
@@ -42,6 +43,16 @@ const v2ToV3 = (v2Data: v2.PersistedActor): v3.Actor => {
|
|
|
42
43
|
};
|
|
43
44
|
};
|
|
44
45
|
|
|
46
|
+
// Converter from v3 to v4: No changes to Actor structure
|
|
47
|
+
const v3ToV4 = (v3Data: v3.Actor): v4.Actor => {
|
|
48
|
+
return v3Data as unknown as v4.Actor;
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
// Converter from v4 to v3: No changes to Actor structure
|
|
52
|
+
const v4ToV3 = (v4Data: v4.Actor): v3.Actor => {
|
|
53
|
+
return v4Data as unknown as v3.Actor;
|
|
54
|
+
};
|
|
55
|
+
|
|
45
56
|
// Converter from v3 to v2
|
|
46
57
|
const v3ToV2 = (v3Data: v3.Actor): v2.PersistedActor => {
|
|
47
58
|
// Transform scheduled events from flat structure back to nested structure
|
|
@@ -82,7 +93,7 @@ const v2ToV1 = (v2Data: v2.PersistedActor): v1.PersistedActor => {
|
|
|
82
93
|
};
|
|
83
94
|
};
|
|
84
95
|
|
|
85
|
-
export const ACTOR_VERSIONED = createVersionedDataHandler<
|
|
96
|
+
export const ACTOR_VERSIONED = createVersionedDataHandler<v4.Actor>({
|
|
86
97
|
deserializeVersion: (bytes, version) => {
|
|
87
98
|
switch (version) {
|
|
88
99
|
case 1:
|
|
@@ -91,6 +102,8 @@ export const ACTOR_VERSIONED = createVersionedDataHandler<v3.Actor>({
|
|
|
91
102
|
return v2.decodePersistedActor(bytes);
|
|
92
103
|
case 3:
|
|
93
104
|
return v3.decodeActor(bytes);
|
|
105
|
+
case 4:
|
|
106
|
+
return v4.decodeActor(bytes);
|
|
94
107
|
default:
|
|
95
108
|
throw new Error(`Unknown version ${version}`);
|
|
96
109
|
}
|
|
@@ -103,19 +116,32 @@ export const ACTOR_VERSIONED = createVersionedDataHandler<v3.Actor>({
|
|
|
103
116
|
return v2.encodePersistedActor(data as v2.PersistedActor);
|
|
104
117
|
case 3:
|
|
105
118
|
return v3.encodeActor(data as v3.Actor);
|
|
119
|
+
case 4:
|
|
120
|
+
return v4.encodeActor(data as v4.Actor);
|
|
106
121
|
default:
|
|
107
122
|
throw new Error(`Unknown version ${version}`);
|
|
108
123
|
}
|
|
109
124
|
},
|
|
110
|
-
deserializeConverters: () => [v1ToV2, v2ToV3],
|
|
111
|
-
serializeConverters: () => [v3ToV2, v2ToV1],
|
|
125
|
+
deserializeConverters: () => [v1ToV2, v2ToV3, v3ToV4],
|
|
126
|
+
serializeConverters: () => [v4ToV3, v3ToV2, v2ToV1],
|
|
112
127
|
});
|
|
113
128
|
|
|
114
|
-
|
|
129
|
+
// Conn identity converters (Conn is identical between v3 and v4)
|
|
130
|
+
const v3ConnToV4 = (v3Data: v3.Conn): v4.Conn => {
|
|
131
|
+
return v3Data as unknown as v4.Conn;
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
const v4ConnToV3 = (v4Data: v4.Conn): v3.Conn => {
|
|
135
|
+
return v4Data as unknown as v3.Conn;
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
export const CONN_VERSIONED = createVersionedDataHandler<v4.Conn>({
|
|
115
139
|
deserializeVersion: (bytes, version) => {
|
|
116
140
|
switch (version) {
|
|
117
141
|
case 3:
|
|
118
142
|
return v3.decodeConn(bytes);
|
|
143
|
+
case 4:
|
|
144
|
+
return v4.decodeConn(bytes);
|
|
119
145
|
default:
|
|
120
146
|
throw new Error(
|
|
121
147
|
`Conn type only exists in version 3+, got version ${version}`,
|
|
@@ -126,12 +152,66 @@ export const CONN_VERSIONED = createVersionedDataHandler<v3.Conn>({
|
|
|
126
152
|
switch (version) {
|
|
127
153
|
case 3:
|
|
128
154
|
return v3.encodeConn(data as v3.Conn);
|
|
155
|
+
case 4:
|
|
156
|
+
return v4.encodeConn(data as v4.Conn);
|
|
129
157
|
default:
|
|
130
158
|
throw new Error(
|
|
131
159
|
`Conn type only exists in version 3+, got version ${version}`,
|
|
132
160
|
);
|
|
133
161
|
}
|
|
134
162
|
},
|
|
135
|
-
deserializeConverters: () => [],
|
|
136
|
-
serializeConverters: () => [],
|
|
163
|
+
deserializeConverters: () => [v3ConnToV4],
|
|
164
|
+
serializeConverters: () => [v4ConnToV3],
|
|
137
165
|
});
|
|
166
|
+
|
|
167
|
+
export const QUEUE_METADATA_VERSIONED =
|
|
168
|
+
createVersionedDataHandler<v4.QueueMetadata>({
|
|
169
|
+
deserializeVersion: (bytes, version) => {
|
|
170
|
+
switch (version) {
|
|
171
|
+
case 4:
|
|
172
|
+
return v4.decodeQueueMetadata(bytes);
|
|
173
|
+
default:
|
|
174
|
+
throw new Error(
|
|
175
|
+
`QueueMetadata type only exists in version 4+, got version ${version}`,
|
|
176
|
+
);
|
|
177
|
+
}
|
|
178
|
+
},
|
|
179
|
+
serializeVersion: (data, version) => {
|
|
180
|
+
switch (version) {
|
|
181
|
+
case 4:
|
|
182
|
+
return v4.encodeQueueMetadata(data as v4.QueueMetadata);
|
|
183
|
+
default:
|
|
184
|
+
throw new Error(
|
|
185
|
+
`QueueMetadata type only exists in version 4+, got version ${version}`,
|
|
186
|
+
);
|
|
187
|
+
}
|
|
188
|
+
},
|
|
189
|
+
deserializeConverters: () => [],
|
|
190
|
+
serializeConverters: () => [],
|
|
191
|
+
});
|
|
192
|
+
|
|
193
|
+
export const QUEUE_MESSAGE_VERSIONED =
|
|
194
|
+
createVersionedDataHandler<v4.QueueMessage>({
|
|
195
|
+
deserializeVersion: (bytes, version) => {
|
|
196
|
+
switch (version) {
|
|
197
|
+
case 4:
|
|
198
|
+
return v4.decodeQueueMessage(bytes);
|
|
199
|
+
default:
|
|
200
|
+
throw new Error(
|
|
201
|
+
`QueueMessage type only exists in version 4+, got version ${version}`,
|
|
202
|
+
);
|
|
203
|
+
}
|
|
204
|
+
},
|
|
205
|
+
serializeVersion: (data, version) => {
|
|
206
|
+
switch (version) {
|
|
207
|
+
case 4:
|
|
208
|
+
return v4.encodeQueueMessage(data as v4.QueueMessage);
|
|
209
|
+
default:
|
|
210
|
+
throw new Error(
|
|
211
|
+
`QueueMessage type only exists in version 4+, got version ${version}`,
|
|
212
|
+
);
|
|
213
|
+
}
|
|
214
|
+
},
|
|
215
|
+
deserializeConverters: () => [],
|
|
216
|
+
serializeConverters: () => [],
|
|
217
|
+
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "../../../dist/schemas/client-protocol/
|
|
1
|
+
export * from "../../../dist/schemas/client-protocol/v3";
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { createVersionedDataHandler } from "vbare";
|
|
2
2
|
import * as v1 from "../../../dist/schemas/client-protocol/v1";
|
|
3
3
|
import * as v2 from "../../../dist/schemas/client-protocol/v2";
|
|
4
|
+
import * as v3 from "../../../dist/schemas/client-protocol/v3";
|
|
4
5
|
|
|
5
|
-
export const CURRENT_VERSION =
|
|
6
|
+
export const CURRENT_VERSION = 3;
|
|
6
7
|
|
|
7
8
|
// Converter from v1 to v2: Remove connectionToken from Init message
|
|
8
9
|
const v1ToV2 = (v1Data: v1.ToClient): v2.ToClient => {
|
|
@@ -43,13 +44,42 @@ const v2ToV1 = (v2Data: v2.ToClient): v1.ToClient => {
|
|
|
43
44
|
return v2Data as unknown as v1.ToClient;
|
|
44
45
|
};
|
|
45
46
|
|
|
46
|
-
|
|
47
|
+
// Converter from v2 to v3: No changes needed for ToClient
|
|
48
|
+
const v2ToV3 = (v2Data: v2.ToClient): v3.ToClient => {
|
|
49
|
+
return v2Data as unknown as v3.ToClient;
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
// Converter from v3 to v2: No changes needed for ToClient
|
|
53
|
+
const v3ToV2 = (v3Data: v3.ToClient): v2.ToClient => {
|
|
54
|
+
return v3Data as unknown as v2.ToClient;
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
// ToServer identity converters (ToServer is identical across v1, v2, and v3)
|
|
58
|
+
const v1ToServerV2 = (v1Data: v1.ToServer): v2.ToServer => {
|
|
59
|
+
return v1Data as unknown as v2.ToServer;
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
const v2ToServerV3 = (v2Data: v2.ToServer): v3.ToServer => {
|
|
63
|
+
return v2Data as unknown as v3.ToServer;
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
const v3ToServerV2 = (v3Data: v3.ToServer): v2.ToServer => {
|
|
67
|
+
return v3Data as unknown as v2.ToServer;
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
const v2ToServerV1 = (v2Data: v2.ToServer): v1.ToServer => {
|
|
71
|
+
return v2Data as unknown as v1.ToServer;
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
export const TO_SERVER_VERSIONED = createVersionedDataHandler<v3.ToServer>({
|
|
47
75
|
deserializeVersion: (bytes, version) => {
|
|
48
76
|
switch (version) {
|
|
49
77
|
case 1:
|
|
50
78
|
return v1.decodeToServer(bytes);
|
|
51
79
|
case 2:
|
|
52
80
|
return v2.decodeToServer(bytes);
|
|
81
|
+
case 3:
|
|
82
|
+
return v3.decodeToServer(bytes);
|
|
53
83
|
default:
|
|
54
84
|
throw new Error(`Unknown version ${version}`);
|
|
55
85
|
}
|
|
@@ -60,21 +90,25 @@ export const TO_SERVER_VERSIONED = createVersionedDataHandler<v2.ToServer>({
|
|
|
60
90
|
return v1.encodeToServer(data as v1.ToServer);
|
|
61
91
|
case 2:
|
|
62
92
|
return v2.encodeToServer(data as v2.ToServer);
|
|
93
|
+
case 3:
|
|
94
|
+
return v3.encodeToServer(data as v3.ToServer);
|
|
63
95
|
default:
|
|
64
96
|
throw new Error(`Unknown version ${version}`);
|
|
65
97
|
}
|
|
66
98
|
},
|
|
67
|
-
deserializeConverters: () => [
|
|
68
|
-
serializeConverters: () => [
|
|
99
|
+
deserializeConverters: () => [v1ToServerV2, v2ToServerV3],
|
|
100
|
+
serializeConverters: () => [v3ToServerV2, v2ToServerV1],
|
|
69
101
|
});
|
|
70
102
|
|
|
71
|
-
export const TO_CLIENT_VERSIONED = createVersionedDataHandler<
|
|
103
|
+
export const TO_CLIENT_VERSIONED = createVersionedDataHandler<v3.ToClient>({
|
|
72
104
|
deserializeVersion: (bytes, version) => {
|
|
73
105
|
switch (version) {
|
|
74
106
|
case 1:
|
|
75
107
|
return v1.decodeToClient(bytes);
|
|
76
108
|
case 2:
|
|
77
109
|
return v2.decodeToClient(bytes);
|
|
110
|
+
case 3:
|
|
111
|
+
return v3.decodeToClient(bytes);
|
|
78
112
|
default:
|
|
79
113
|
throw new Error(`Unknown version ${version}`);
|
|
80
114
|
}
|
|
@@ -85,22 +119,26 @@ export const TO_CLIENT_VERSIONED = createVersionedDataHandler<v2.ToClient>({
|
|
|
85
119
|
return v1.encodeToClient(data as v1.ToClient);
|
|
86
120
|
case 2:
|
|
87
121
|
return v2.encodeToClient(data as v2.ToClient);
|
|
122
|
+
case 3:
|
|
123
|
+
return v3.encodeToClient(data as v3.ToClient);
|
|
88
124
|
default:
|
|
89
125
|
throw new Error(`Unknown version ${version}`);
|
|
90
126
|
}
|
|
91
127
|
},
|
|
92
|
-
deserializeConverters: () => [v1ToV2],
|
|
93
|
-
serializeConverters: () => [v2ToV1],
|
|
128
|
+
deserializeConverters: () => [v1ToV2, v2ToV3],
|
|
129
|
+
serializeConverters: () => [v3ToV2, v2ToV1],
|
|
94
130
|
});
|
|
95
131
|
|
|
96
132
|
export const HTTP_ACTION_REQUEST_VERSIONED =
|
|
97
|
-
createVersionedDataHandler<
|
|
133
|
+
createVersionedDataHandler<v3.HttpActionRequest>({
|
|
98
134
|
deserializeVersion: (bytes, version) => {
|
|
99
135
|
switch (version) {
|
|
100
136
|
case 1:
|
|
101
137
|
return v1.decodeHttpActionRequest(bytes);
|
|
102
138
|
case 2:
|
|
103
139
|
return v2.decodeHttpActionRequest(bytes);
|
|
140
|
+
case 3:
|
|
141
|
+
return v3.decodeHttpActionRequest(bytes);
|
|
104
142
|
default:
|
|
105
143
|
throw new Error(`Unknown version ${version}`);
|
|
106
144
|
}
|
|
@@ -115,6 +153,10 @@ export const HTTP_ACTION_REQUEST_VERSIONED =
|
|
|
115
153
|
return v2.encodeHttpActionRequest(
|
|
116
154
|
data as v2.HttpActionRequest,
|
|
117
155
|
);
|
|
156
|
+
case 3:
|
|
157
|
+
return v3.encodeHttpActionRequest(
|
|
158
|
+
data as v3.HttpActionRequest,
|
|
159
|
+
);
|
|
118
160
|
default:
|
|
119
161
|
throw new Error(`Unknown version ${version}`);
|
|
120
162
|
}
|
|
@@ -124,13 +166,15 @@ export const HTTP_ACTION_REQUEST_VERSIONED =
|
|
|
124
166
|
});
|
|
125
167
|
|
|
126
168
|
export const HTTP_ACTION_RESPONSE_VERSIONED =
|
|
127
|
-
createVersionedDataHandler<
|
|
169
|
+
createVersionedDataHandler<v3.HttpActionResponse>({
|
|
128
170
|
deserializeVersion: (bytes, version) => {
|
|
129
171
|
switch (version) {
|
|
130
172
|
case 1:
|
|
131
173
|
return v1.decodeHttpActionResponse(bytes);
|
|
132
174
|
case 2:
|
|
133
175
|
return v2.decodeHttpActionResponse(bytes);
|
|
176
|
+
case 3:
|
|
177
|
+
return v3.decodeHttpActionResponse(bytes);
|
|
134
178
|
default:
|
|
135
179
|
throw new Error(`Unknown version ${version}`);
|
|
136
180
|
}
|
|
@@ -145,6 +189,10 @@ export const HTTP_ACTION_RESPONSE_VERSIONED =
|
|
|
145
189
|
return v2.encodeHttpActionResponse(
|
|
146
190
|
data as v2.HttpActionResponse,
|
|
147
191
|
);
|
|
192
|
+
case 3:
|
|
193
|
+
return v3.encodeHttpActionResponse(
|
|
194
|
+
data as v3.HttpActionResponse,
|
|
195
|
+
);
|
|
148
196
|
default:
|
|
149
197
|
throw new Error(`Unknown version ${version}`);
|
|
150
198
|
}
|
|
@@ -153,14 +201,72 @@ export const HTTP_ACTION_RESPONSE_VERSIONED =
|
|
|
153
201
|
serializeConverters: () => [],
|
|
154
202
|
});
|
|
155
203
|
|
|
204
|
+
export const HTTP_QUEUE_SEND_REQUEST_VERSIONED =
|
|
205
|
+
createVersionedDataHandler<v3.HttpQueueSendRequest>({
|
|
206
|
+
deserializeVersion: (bytes, version) => {
|
|
207
|
+
switch (version) {
|
|
208
|
+
case 3:
|
|
209
|
+
return v3.decodeHttpQueueSendRequest(bytes);
|
|
210
|
+
default:
|
|
211
|
+
throw new Error(
|
|
212
|
+
`HttpQueueSendRequest only exists in version 3+, got version ${version}`,
|
|
213
|
+
);
|
|
214
|
+
}
|
|
215
|
+
},
|
|
216
|
+
serializeVersion: (data, version) => {
|
|
217
|
+
switch (version) {
|
|
218
|
+
case 3:
|
|
219
|
+
return v3.encodeHttpQueueSendRequest(
|
|
220
|
+
data as v3.HttpQueueSendRequest,
|
|
221
|
+
);
|
|
222
|
+
default:
|
|
223
|
+
throw new Error(
|
|
224
|
+
`HttpQueueSendRequest only exists in version 3+, got version ${version}`,
|
|
225
|
+
);
|
|
226
|
+
}
|
|
227
|
+
},
|
|
228
|
+
deserializeConverters: () => [],
|
|
229
|
+
serializeConverters: () => [],
|
|
230
|
+
});
|
|
231
|
+
|
|
232
|
+
export const HTTP_QUEUE_SEND_RESPONSE_VERSIONED =
|
|
233
|
+
createVersionedDataHandler<v3.HttpQueueSendResponse>({
|
|
234
|
+
deserializeVersion: (bytes, version) => {
|
|
235
|
+
switch (version) {
|
|
236
|
+
case 3:
|
|
237
|
+
return v3.decodeHttpQueueSendResponse(bytes);
|
|
238
|
+
default:
|
|
239
|
+
throw new Error(
|
|
240
|
+
`HttpQueueSendResponse only exists in version 3+, got version ${version}`,
|
|
241
|
+
);
|
|
242
|
+
}
|
|
243
|
+
},
|
|
244
|
+
serializeVersion: (data, version) => {
|
|
245
|
+
switch (version) {
|
|
246
|
+
case 3:
|
|
247
|
+
return v3.encodeHttpQueueSendResponse(
|
|
248
|
+
data as v3.HttpQueueSendResponse,
|
|
249
|
+
);
|
|
250
|
+
default:
|
|
251
|
+
throw new Error(
|
|
252
|
+
`HttpQueueSendResponse only exists in version 3+, got version ${version}`,
|
|
253
|
+
);
|
|
254
|
+
}
|
|
255
|
+
},
|
|
256
|
+
deserializeConverters: () => [],
|
|
257
|
+
serializeConverters: () => [],
|
|
258
|
+
});
|
|
259
|
+
|
|
156
260
|
export const HTTP_RESPONSE_ERROR_VERSIONED =
|
|
157
|
-
createVersionedDataHandler<
|
|
261
|
+
createVersionedDataHandler<v3.HttpResponseError>({
|
|
158
262
|
deserializeVersion: (bytes, version) => {
|
|
159
263
|
switch (version) {
|
|
160
264
|
case 1:
|
|
161
265
|
return v1.decodeHttpResponseError(bytes);
|
|
162
266
|
case 2:
|
|
163
267
|
return v2.decodeHttpResponseError(bytes);
|
|
268
|
+
case 3:
|
|
269
|
+
return v3.decodeHttpResponseError(bytes);
|
|
164
270
|
default:
|
|
165
271
|
throw new Error(`Unknown version ${version}`);
|
|
166
272
|
}
|
|
@@ -175,6 +281,10 @@ export const HTTP_RESPONSE_ERROR_VERSIONED =
|
|
|
175
281
|
return v2.encodeHttpResponseError(
|
|
176
282
|
data as v2.HttpResponseError,
|
|
177
283
|
);
|
|
284
|
+
case 3:
|
|
285
|
+
return v3.encodeHttpResponseError(
|
|
286
|
+
data as v3.HttpResponseError,
|
|
287
|
+
);
|
|
178
288
|
default:
|
|
179
289
|
throw new Error(`Unknown version ${version}`);
|
|
180
290
|
}
|
|
@@ -184,13 +294,15 @@ export const HTTP_RESPONSE_ERROR_VERSIONED =
|
|
|
184
294
|
});
|
|
185
295
|
|
|
186
296
|
export const HTTP_RESOLVE_RESPONSE_VERSIONED =
|
|
187
|
-
createVersionedDataHandler<
|
|
297
|
+
createVersionedDataHandler<v3.HttpResolveResponse>({
|
|
188
298
|
deserializeVersion: (bytes, version) => {
|
|
189
299
|
switch (version) {
|
|
190
300
|
case 1:
|
|
191
301
|
return v1.decodeHttpResolveResponse(bytes);
|
|
192
302
|
case 2:
|
|
193
303
|
return v2.decodeHttpResolveResponse(bytes);
|
|
304
|
+
case 3:
|
|
305
|
+
return v3.decodeHttpResolveResponse(bytes);
|
|
194
306
|
default:
|
|
195
307
|
throw new Error(`Unknown version ${version}`);
|
|
196
308
|
}
|
|
@@ -205,6 +317,10 @@ export const HTTP_RESOLVE_RESPONSE_VERSIONED =
|
|
|
205
317
|
return v2.encodeHttpResolveResponse(
|
|
206
318
|
data as v2.HttpResolveResponse,
|
|
207
319
|
);
|
|
320
|
+
case 3:
|
|
321
|
+
return v3.encodeHttpResolveResponse(
|
|
322
|
+
data as v3.HttpResolveResponse,
|
|
323
|
+
);
|
|
208
324
|
default:
|
|
209
325
|
throw new Error(`Unknown version ${version}`);
|
|
210
326
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
1
|
+
import { z } from "zod/v4";
|
|
2
2
|
|
|
3
3
|
// Helper schemas
|
|
4
4
|
const UintSchema = z.bigint();
|
|
@@ -84,6 +84,21 @@ export const HttpActionResponseSchema = z.object({
|
|
|
84
84
|
});
|
|
85
85
|
export type HttpActionResponse = z.infer<typeof HttpActionResponseSchema>;
|
|
86
86
|
|
|
87
|
+
// MARK: HTTP Queue
|
|
88
|
+
export const HttpQueueSendRequestSchema = z.object({
|
|
89
|
+
body: z.unknown(),
|
|
90
|
+
name: z.string().optional(),
|
|
91
|
+
wait: z.boolean().optional(),
|
|
92
|
+
timeout: z.number().optional(),
|
|
93
|
+
});
|
|
94
|
+
export type HttpQueueSendRequest = z.infer<typeof HttpQueueSendRequestSchema>;
|
|
95
|
+
|
|
96
|
+
export const HttpQueueSendResponseSchema = z.object({
|
|
97
|
+
status: z.enum(["completed", "timedOut"]),
|
|
98
|
+
response: z.unknown().optional(),
|
|
99
|
+
});
|
|
100
|
+
export type HttpQueueSendResponse = z.infer<typeof HttpQueueSendResponseSchema>;
|
|
101
|
+
|
|
87
102
|
// MARK: HTTP Error
|
|
88
103
|
export const HttpResponseErrorSchema = z.object({
|
|
89
104
|
group: z.string(),
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "../../../dist/schemas/persist/v1";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "../../../dist/schemas/transport/v1";
|
package/src/serde.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as cbor from "cbor-x";
|
|
2
2
|
import invariant from "invariant";
|
|
3
3
|
import type { VersionedDataHandler } from "vbare";
|
|
4
|
-
import type { z } from "zod";
|
|
4
|
+
import type { z } from "zod/v4";
|
|
5
5
|
import { assertUnreachable } from "@/common/utils";
|
|
6
6
|
import type { Encoding } from "@/mod";
|
|
7
7
|
import { jsonParseCompat, jsonStringifyCompat } from "./actor/protocol/serde";
|