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.
Files changed (322) hide show
  1. package/dist/{tsup/config-CLnylLYY.d.ts → browser/client.d.ts} +2127 -1910
  2. package/dist/browser/client.js +5182 -0
  3. package/dist/browser/client.js.map +1 -0
  4. package/dist/browser/inspector/client.d.ts +130 -0
  5. package/dist/browser/inspector/client.js +2854 -0
  6. package/dist/browser/inspector/client.js.map +1 -0
  7. package/dist/browser/v3-DnYObHH3.d.ts +279 -0
  8. package/dist/schemas/actor-inspector/v2.ts +796 -0
  9. package/dist/schemas/actor-inspector/v3.ts +899 -0
  10. package/dist/schemas/actor-persist/v4.ts +406 -0
  11. package/dist/schemas/client-protocol/v3.ts +554 -0
  12. package/dist/schemas/persist/v1.ts +781 -0
  13. package/dist/schemas/transport/v1.ts +697 -0
  14. package/dist/tsup/actor/errors.cjs +27 -3
  15. package/dist/tsup/actor/errors.cjs.map +1 -1
  16. package/dist/tsup/actor/errors.d.cts +37 -1
  17. package/dist/tsup/actor/errors.d.ts +37 -1
  18. package/dist/tsup/actor/errors.js +26 -1
  19. package/dist/tsup/{actor-router-consts-DzI2szci.d.cts → actor-router-consts-D29T1Z-K.d.cts} +1 -1
  20. package/dist/tsup/{actor-router-consts-DzI2szci.d.ts → actor-router-consts-D29T1Z-K.d.ts} +1 -1
  21. package/dist/tsup/chunk-424PT5DM.js +23 -0
  22. package/dist/tsup/chunk-424PT5DM.js.map +1 -0
  23. package/dist/tsup/{chunk-JDAD2YFA.js → chunk-5ESWDTHJ.js} +148 -273
  24. package/dist/tsup/chunk-5ESWDTHJ.js.map +1 -0
  25. package/dist/tsup/{chunk-FJ3KTN4V.js → chunk-6LIBPELE.js} +119 -11
  26. package/dist/tsup/chunk-6LIBPELE.js.map +1 -0
  27. package/dist/tsup/chunk-6LJAZ5R4.cjs +96 -0
  28. package/dist/tsup/chunk-6LJAZ5R4.cjs.map +1 -0
  29. package/dist/tsup/{chunk-LFVF5SCU.js → chunk-7HTNH26M.js} +126 -1
  30. package/dist/tsup/chunk-7HTNH26M.js.map +1 -0
  31. package/dist/tsup/chunk-7K4CYDGD.js +630 -0
  32. package/dist/tsup/chunk-7K4CYDGD.js.map +1 -0
  33. package/dist/tsup/{chunk-XXGJCOL6.js → chunk-A6YIZWTK.js} +2 -2
  34. package/dist/tsup/chunk-AIYEYMX5.cjs +630 -0
  35. package/dist/tsup/chunk-AIYEYMX5.cjs.map +1 -0
  36. package/dist/tsup/{chunk-Q6W7RJJP.js → chunk-DIGBC2VI.js} +211 -2316
  37. package/dist/tsup/chunk-DIGBC2VI.js.map +1 -0
  38. package/dist/tsup/{chunk-RZW2DNND.cjs → chunk-F6JYU5IK.cjs} +1957 -1039
  39. package/dist/tsup/chunk-F6JYU5IK.cjs.map +1 -0
  40. package/dist/tsup/chunk-HAZL2EPK.cjs +534 -0
  41. package/dist/tsup/chunk-HAZL2EPK.cjs.map +1 -0
  42. package/dist/tsup/chunk-HDQ2JUQT.cjs +23 -0
  43. package/dist/tsup/chunk-HDQ2JUQT.cjs.map +1 -0
  44. package/dist/tsup/chunk-HIDX4C5Y.cjs +1036 -0
  45. package/dist/tsup/chunk-HIDX4C5Y.cjs.map +1 -0
  46. package/dist/tsup/chunk-IVG73YCW.js +534 -0
  47. package/dist/tsup/chunk-IVG73YCW.js.map +1 -0
  48. package/dist/tsup/chunk-KJSYAUOM.js +96 -0
  49. package/dist/tsup/chunk-KJSYAUOM.js.map +1 -0
  50. package/dist/tsup/{chunk-2XQS746M.cjs → chunk-L47L3ZWJ.cjs} +127 -2
  51. package/dist/tsup/chunk-L47L3ZWJ.cjs.map +1 -0
  52. package/dist/tsup/{chunk-H4TB4X25.cjs → chunk-LW6KLR7A.cjs} +126 -18
  53. package/dist/tsup/chunk-LW6KLR7A.cjs.map +1 -0
  54. package/dist/tsup/chunk-LXUQ667X.js +2006 -0
  55. package/dist/tsup/chunk-LXUQ667X.js.map +1 -0
  56. package/dist/tsup/{chunk-GMAVRZSF.js → chunk-M2T62AZQ.js} +1790 -872
  57. package/dist/tsup/chunk-M2T62AZQ.js.map +1 -0
  58. package/dist/tsup/chunk-MZ37VV3P.js +5974 -0
  59. package/dist/tsup/chunk-MZ37VV3P.js.map +1 -0
  60. package/dist/tsup/chunk-N4KRDJ56.js +72 -0
  61. package/dist/tsup/chunk-N4KRDJ56.js.map +1 -0
  62. package/dist/tsup/chunk-NIYZDWMW.cjs +2006 -0
  63. package/dist/tsup/chunk-NIYZDWMW.cjs.map +1 -0
  64. package/dist/tsup/chunk-OMEPCQK2.js +649 -0
  65. package/dist/tsup/chunk-OMEPCQK2.js.map +1 -0
  66. package/dist/tsup/chunk-SR3KQE7Q.cjs +72 -0
  67. package/dist/tsup/chunk-SR3KQE7Q.cjs.map +1 -0
  68. package/dist/tsup/chunk-SSEP6DHP.cjs +2657 -0
  69. package/dist/tsup/chunk-SSEP6DHP.cjs.map +1 -0
  70. package/dist/tsup/chunk-T5YCUGVS.js +1036 -0
  71. package/dist/tsup/chunk-T5YCUGVS.js.map +1 -0
  72. package/dist/tsup/{chunk-EJVBH5VF.cjs → chunk-TPGXWFQT.cjs} +3 -3
  73. package/dist/tsup/{chunk-EJVBH5VF.cjs.map → chunk-TPGXWFQT.cjs.map} +1 -1
  74. package/dist/tsup/{chunk-X35U3YNX.cjs → chunk-TYLXNCA5.cjs} +214 -339
  75. package/dist/tsup/chunk-TYLXNCA5.cjs.map +1 -0
  76. package/dist/tsup/chunk-VKVNIQRQ.js +257 -0
  77. package/dist/tsup/chunk-VKVNIQRQ.js.map +1 -0
  78. package/dist/tsup/chunk-XWBAQO5H.cjs +649 -0
  79. package/dist/tsup/chunk-XWBAQO5H.cjs.map +1 -0
  80. package/dist/tsup/chunk-YQ4LDVD6.cjs +5974 -0
  81. package/dist/tsup/chunk-YQ4LDVD6.cjs.map +1 -0
  82. package/dist/tsup/chunk-ZFY5J2EP.cjs +257 -0
  83. package/dist/tsup/chunk-ZFY5J2EP.cjs.map +1 -0
  84. package/dist/tsup/client/mod.cjs +9 -10
  85. package/dist/tsup/client/mod.cjs.map +1 -1
  86. package/dist/tsup/client/mod.d.cts +11 -5
  87. package/dist/tsup/client/mod.d.ts +11 -5
  88. package/dist/tsup/client/mod.js +8 -8
  89. package/dist/tsup/common/log.cjs +4 -4
  90. package/dist/tsup/common/log.d.cts +2 -2
  91. package/dist/tsup/common/log.d.ts +2 -2
  92. package/dist/tsup/common/log.js +3 -2
  93. package/dist/tsup/common/websocket.cjs +5 -5
  94. package/dist/tsup/common/websocket.js +4 -3
  95. package/dist/tsup/config-BFqid9Gr.d.ts +2574 -0
  96. package/dist/tsup/config-BiNoIHRs.d.cts +80 -0
  97. package/dist/tsup/config-BiNoIHRs.d.ts +80 -0
  98. package/dist/tsup/{config-CZB2-W8x.d.cts → config-CAZphOS1.d.cts} +681 -355
  99. package/dist/tsup/db/drizzle/mod.cjs +49 -0
  100. package/dist/tsup/db/drizzle/mod.cjs.map +1 -0
  101. package/dist/tsup/db/drizzle/mod.d.cts +17 -0
  102. package/dist/tsup/db/drizzle/mod.d.ts +17 -0
  103. package/dist/tsup/db/drizzle/mod.js +49 -0
  104. package/dist/tsup/db/drizzle/mod.js.map +1 -0
  105. package/dist/tsup/db/mod.cjs +9 -0
  106. package/dist/tsup/db/mod.cjs.map +1 -0
  107. package/dist/tsup/db/mod.d.cts +9 -0
  108. package/dist/tsup/db/mod.d.ts +9 -0
  109. package/dist/tsup/db/mod.js +9 -0
  110. package/dist/tsup/db/mod.js.map +1 -0
  111. package/dist/tsup/{driver-D0QX9M11.d.ts → driver-Bxv62E2p.d.ts} +2 -2
  112. package/dist/tsup/{driver-q-zqG7fc.d.cts → driver-DYXwJR5D.d.cts} +2 -2
  113. package/dist/tsup/driver-helpers/mod.cjs +12 -6
  114. package/dist/tsup/driver-helpers/mod.cjs.map +1 -1
  115. package/dist/tsup/driver-helpers/mod.d.cts +12 -5
  116. package/dist/tsup/driver-helpers/mod.d.ts +12 -5
  117. package/dist/tsup/driver-helpers/mod.js +12 -5
  118. package/dist/tsup/driver-test-suite/mod.cjs +1370 -116
  119. package/dist/tsup/driver-test-suite/mod.cjs.map +1 -1
  120. package/dist/tsup/driver-test-suite/mod.d.cts +10 -4
  121. package/dist/tsup/driver-test-suite/mod.d.ts +10 -4
  122. package/dist/tsup/driver-test-suite/mod.js +2093 -838
  123. package/dist/tsup/driver-test-suite/mod.js.map +1 -1
  124. package/dist/tsup/inspector/mod.cjs +29 -3
  125. package/dist/tsup/inspector/mod.cjs.map +1 -1
  126. package/dist/tsup/inspector/mod.d.cts +124 -3
  127. package/dist/tsup/inspector/mod.d.ts +124 -3
  128. package/dist/tsup/inspector/mod.js +72 -45
  129. package/dist/tsup/keys-CydblqMh.d.cts +13 -0
  130. package/dist/tsup/keys-CydblqMh.d.ts +13 -0
  131. package/dist/tsup/mod.cjs +16 -10
  132. package/dist/tsup/mod.cjs.map +1 -1
  133. package/dist/tsup/mod.d.cts +26 -14
  134. package/dist/tsup/mod.d.ts +26 -14
  135. package/dist/tsup/mod.js +20 -13
  136. package/dist/tsup/serve-test-suite/mod.cjs +1165 -83
  137. package/dist/tsup/serve-test-suite/mod.cjs.map +1 -1
  138. package/dist/tsup/serve-test-suite/mod.js +1114 -29
  139. package/dist/tsup/serve-test-suite/mod.js.map +1 -1
  140. package/dist/tsup/test/mod.cjs +84 -11
  141. package/dist/tsup/test/mod.cjs.map +1 -1
  142. package/dist/tsup/test/mod.d.cts +10 -5
  143. package/dist/tsup/test/mod.d.ts +10 -5
  144. package/dist/tsup/test/mod.js +85 -11
  145. package/dist/tsup/test/mod.js.map +1 -1
  146. package/dist/tsup/utils.cjs +10 -4
  147. package/dist/tsup/utils.cjs.map +1 -1
  148. package/dist/tsup/utils.d.cts +72 -2
  149. package/dist/tsup/utils.d.ts +72 -2
  150. package/dist/tsup/utils.js +9 -2
  151. package/dist/tsup/v3-DnYObHH3.d.cts +279 -0
  152. package/dist/tsup/v3-DnYObHH3.d.ts +279 -0
  153. package/dist/tsup/workflow/mod.cjs +16 -0
  154. package/dist/tsup/workflow/mod.cjs.map +1 -0
  155. package/dist/tsup/workflow/mod.d.cts +83 -0
  156. package/dist/tsup/workflow/mod.d.ts +83 -0
  157. package/dist/tsup/workflow/mod.js +16 -0
  158. package/dist/tsup/workflow/mod.js.map +1 -0
  159. package/package.json +62 -5
  160. package/src/actor/config.ts +478 -68
  161. package/src/actor/conn/mod.ts +68 -16
  162. package/src/actor/conn/state-manager.ts +2 -2
  163. package/src/actor/contexts/action.ts +20 -12
  164. package/src/actor/contexts/base/actor.ts +137 -7
  165. package/src/actor/contexts/base/conn-init.ts +27 -7
  166. package/src/actor/contexts/base/conn.ts +27 -18
  167. package/src/actor/contexts/before-action-response.ts +9 -2
  168. package/src/actor/contexts/before-connect.ts +7 -2
  169. package/src/actor/contexts/connect.ts +9 -2
  170. package/src/actor/contexts/create-conn-state.ts +7 -2
  171. package/src/actor/contexts/create-vars.ts +16 -3
  172. package/src/actor/contexts/create.ts +16 -3
  173. package/src/actor/contexts/destroy.ts +9 -3
  174. package/src/actor/contexts/disconnect.ts +10 -4
  175. package/src/actor/contexts/index.ts +4 -3
  176. package/src/actor/contexts/request.ts +23 -6
  177. package/src/actor/contexts/run.ts +47 -0
  178. package/src/actor/contexts/sleep.ts +9 -3
  179. package/src/actor/contexts/state-change.ts +9 -3
  180. package/src/actor/contexts/wake.ts +9 -3
  181. package/src/actor/contexts/websocket.ts +23 -6
  182. package/src/actor/database.ts +8 -18
  183. package/src/actor/definition.ts +20 -6
  184. package/src/actor/driver.ts +32 -3
  185. package/src/actor/errors.ts +127 -0
  186. package/src/actor/instance/connection-manager.ts +183 -80
  187. package/src/actor/instance/event-manager.ts +26 -15
  188. package/src/actor/instance/keys.ts +117 -0
  189. package/src/actor/instance/mod.ts +784 -174
  190. package/src/actor/instance/queue-manager.ts +603 -0
  191. package/src/actor/instance/queue.ts +287 -0
  192. package/src/actor/instance/schedule-manager.ts +49 -7
  193. package/src/actor/instance/state-manager.ts +35 -11
  194. package/src/actor/instance/traces-driver.ts +128 -0
  195. package/src/actor/mod.ts +26 -2
  196. package/src/actor/protocol/old.ts +28 -13
  197. package/src/actor/protocol/serde.ts +1 -1
  198. package/src/actor/router-endpoints.ts +177 -21
  199. package/src/actor/router-websocket-endpoints.ts +18 -29
  200. package/src/actor/router.ts +177 -0
  201. package/src/actor/schema.ts +291 -0
  202. package/src/actor/utils.ts +40 -0
  203. package/src/client/actor-common.ts +1 -1
  204. package/src/client/actor-conn.ts +100 -33
  205. package/src/client/actor-handle.ts +61 -33
  206. package/src/client/client.ts +2 -4
  207. package/src/client/config.ts +1 -1
  208. package/src/client/mod.browser.ts +2 -0
  209. package/src/client/mod.ts +1 -4
  210. package/src/client/queue.ts +146 -0
  211. package/src/client/utils.ts +1 -1
  212. package/src/common/log.ts +1 -1
  213. package/src/common/utils.ts +3 -3
  214. package/src/db/config.ts +100 -0
  215. package/src/db/drizzle/mod.ts +226 -0
  216. package/src/db/drizzle/sqlite-core.ts +22 -0
  217. package/src/db/mod.ts +125 -0
  218. package/src/db/shared.ts +92 -0
  219. package/src/db/sqlite-vfs.ts +12 -0
  220. package/src/driver-helpers/mod.ts +1 -0
  221. package/src/driver-test-suite/mod.ts +69 -43
  222. package/src/driver-test-suite/tests/access-control.ts +218 -0
  223. package/src/driver-test-suite/tests/actor-db-raw.ts +73 -0
  224. package/src/driver-test-suite/tests/actor-db.ts +394 -0
  225. package/src/driver-test-suite/tests/actor-inspector.ts +259 -358
  226. package/src/driver-test-suite/tests/actor-kv.ts +41 -20
  227. package/src/driver-test-suite/tests/actor-queue.ts +324 -0
  228. package/src/driver-test-suite/tests/actor-run.ts +181 -0
  229. package/src/driver-test-suite/tests/actor-schedule.ts +5 -2
  230. package/src/driver-test-suite/tests/actor-sleep.ts +3 -3
  231. package/src/driver-test-suite/tests/actor-stateless.ts +70 -0
  232. package/src/driver-test-suite/tests/actor-workflow.ts +108 -0
  233. package/src/driver-test-suite/tests/manager-driver.ts +11 -0
  234. package/src/driver-test-suite/tests/raw-http-request-properties.ts +1 -1
  235. package/src/driver-test-suite/tests/raw-websocket.ts +12 -12
  236. package/src/drivers/default.ts +7 -2
  237. package/src/drivers/engine/actor-driver.ts +45 -37
  238. package/src/drivers/engine/config.ts +1 -1
  239. package/src/drivers/file-system/actor.ts +20 -2
  240. package/src/drivers/file-system/global-state.ts +569 -258
  241. package/src/drivers/file-system/kv-limits.ts +70 -0
  242. package/src/drivers/file-system/manager.ts +22 -6
  243. package/src/drivers/file-system/mod.ts +39 -16
  244. package/src/drivers/file-system/sqlite-runtime.ts +210 -0
  245. package/src/inspector/actor-inspector.ts +224 -102
  246. package/src/inspector/config.ts +1 -1
  247. package/src/inspector/handler.ts +102 -20
  248. package/src/inspector/mod.browser.ts +8 -0
  249. package/src/inspector/mod.ts +2 -0
  250. package/src/inspector/serve-ui.ts +40 -0
  251. package/src/inspector/transport.ts +18 -0
  252. package/src/inspector/utils.ts +5 -39
  253. package/src/manager/gateway.ts +1 -1
  254. package/src/manager/protocol/mod.ts +1 -1
  255. package/src/manager/protocol/query.ts +1 -1
  256. package/src/manager/router-schema.ts +1 -1
  257. package/src/manager/router.ts +38 -12
  258. package/src/manager-api/actors.ts +1 -1
  259. package/src/manager-api/common.ts +1 -1
  260. package/src/registry/config/driver.ts +1 -1
  261. package/src/registry/config/index.ts +212 -43
  262. package/src/registry/config/legacy-runner.ts +1 -1
  263. package/src/registry/config/runner.ts +1 -1
  264. package/src/registry/config/serverless.ts +1 -1
  265. package/src/registry/index.ts +7 -5
  266. package/src/remote-manager-driver/api-utils.ts +1 -1
  267. package/src/schemas/actor-inspector/mod.ts +1 -1
  268. package/src/schemas/actor-inspector/versioned.ts +195 -8
  269. package/src/schemas/actor-persist/versioned.ts +87 -7
  270. package/src/schemas/client-protocol/mod.ts +1 -1
  271. package/src/schemas/client-protocol/versioned.ts +127 -11
  272. package/src/schemas/client-protocol-zod/mod.ts +16 -1
  273. package/src/schemas/persist/mod.ts +1 -0
  274. package/src/schemas/transport/mod.ts +1 -0
  275. package/src/serde.ts +1 -1
  276. package/src/serve-test-suite/mod.ts +10 -9
  277. package/src/test/mod.ts +15 -56
  278. package/src/utils/endpoint-parser.test.ts +1 -1
  279. package/src/utils/endpoint-parser.ts +1 -1
  280. package/src/utils/env-vars.ts +12 -1
  281. package/src/utils/node.ts +15 -2
  282. package/src/utils.test.ts +34 -0
  283. package/src/utils.ts +140 -6
  284. package/src/workflow/constants.ts +2 -0
  285. package/src/workflow/context.ts +532 -0
  286. package/src/workflow/driver.ts +191 -0
  287. package/src/workflow/inspector.ts +268 -0
  288. package/src/workflow/mod.ts +122 -0
  289. package/dist/tsup/chunk-2IJTYN6K.cjs +0 -278
  290. package/dist/tsup/chunk-2IJTYN6K.cjs.map +0 -1
  291. package/dist/tsup/chunk-2XQS746M.cjs.map +0 -1
  292. package/dist/tsup/chunk-3VP5CSHV.cjs +0 -114
  293. package/dist/tsup/chunk-3VP5CSHV.cjs.map +0 -1
  294. package/dist/tsup/chunk-AQFSQMBG.js +0 -114
  295. package/dist/tsup/chunk-AQFSQMBG.js.map +0 -1
  296. package/dist/tsup/chunk-E6ZE2YEA.js +0 -664
  297. package/dist/tsup/chunk-E6ZE2YEA.js.map +0 -1
  298. package/dist/tsup/chunk-FJ3KTN4V.js.map +0 -1
  299. package/dist/tsup/chunk-GBENOENJ.cjs +0 -8
  300. package/dist/tsup/chunk-GBENOENJ.cjs.map +0 -1
  301. package/dist/tsup/chunk-GD7UXGOE.cjs +0 -4762
  302. package/dist/tsup/chunk-GD7UXGOE.cjs.map +0 -1
  303. package/dist/tsup/chunk-GMAVRZSF.js.map +0 -1
  304. package/dist/tsup/chunk-H4TB4X25.cjs.map +0 -1
  305. package/dist/tsup/chunk-JDAD2YFA.js.map +0 -1
  306. package/dist/tsup/chunk-KCOVZOPS.js +0 -1946
  307. package/dist/tsup/chunk-KCOVZOPS.js.map +0 -1
  308. package/dist/tsup/chunk-KDFWJKMJ.cjs +0 -664
  309. package/dist/tsup/chunk-KDFWJKMJ.cjs.map +0 -1
  310. package/dist/tsup/chunk-LFVF5SCU.js.map +0 -1
  311. package/dist/tsup/chunk-Q6W7RJJP.js.map +0 -1
  312. package/dist/tsup/chunk-RUW5CZ5Z.cjs +0 -1949
  313. package/dist/tsup/chunk-RUW5CZ5Z.cjs.map +0 -1
  314. package/dist/tsup/chunk-RZW2DNND.cjs.map +0 -1
  315. package/dist/tsup/chunk-TCOEBUUE.js +0 -278
  316. package/dist/tsup/chunk-TCOEBUUE.js.map +0 -1
  317. package/dist/tsup/chunk-X35U3YNX.cjs.map +0 -1
  318. package/dist/tsup/keys-Chhy4ylv.d.cts +0 -8
  319. package/dist/tsup/keys-Chhy4ylv.d.ts +0 -8
  320. package/dist/tsup/v1-Gq4avTK3.d.cts +0 -240
  321. package/dist/tsup/v1-Gq4avTK3.d.ts +0 -240
  322. /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
- export const TO_SERVER_VERSIONED = createVersionedDataHandler<v1.ToServer>({
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<v1.ToClient>({
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 = 3;
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<v3.Actor>({
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
- export const CONN_VERSIONED = createVersionedDataHandler<v3.Conn>({
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/v2";
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 = 2;
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
- export const TO_SERVER_VERSIONED = createVersionedDataHandler<v2.ToServer>({
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: () => [v1ToV2],
68
- serializeConverters: () => [v2ToV1],
99
+ deserializeConverters: () => [v1ToServerV2, v2ToServerV3],
100
+ serializeConverters: () => [v3ToServerV2, v2ToServerV1],
69
101
  });
70
102
 
71
- export const TO_CLIENT_VERSIONED = createVersionedDataHandler<v2.ToClient>({
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<v2.HttpActionRequest>({
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<v2.HttpActionResponse>({
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<v2.HttpResponseError>({
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<v2.HttpResolveResponse>({
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";