rivetkit 2.0.2 → 2.0.4-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 (403) hide show
  1. package/README.md +3 -5
  2. package/dist/browser/client.d.ts +2485 -0
  3. package/dist/browser/client.js +5182 -0
  4. package/dist/browser/client.js.map +1 -0
  5. package/dist/browser/inspector/client.d.ts +130 -0
  6. package/dist/browser/inspector/client.js +2854 -0
  7. package/dist/browser/inspector/client.js.map +1 -0
  8. package/dist/browser/v3-DnYObHH3.d.ts +279 -0
  9. package/dist/inspector.tar.gz +0 -0
  10. package/dist/schemas/actor-inspector/v1.ts +784 -0
  11. package/dist/schemas/actor-inspector/v2.ts +796 -0
  12. package/dist/schemas/actor-inspector/v3.ts +899 -0
  13. package/dist/schemas/actor-persist/v1.ts +225 -0
  14. package/dist/schemas/actor-persist/v2.ts +268 -0
  15. package/dist/schemas/actor-persist/v3.ts +280 -0
  16. package/dist/schemas/actor-persist/v4.ts +406 -0
  17. package/dist/schemas/client-protocol/v1.ts +441 -0
  18. package/dist/schemas/client-protocol/v2.ts +438 -0
  19. package/dist/schemas/client-protocol/v3.ts +554 -0
  20. package/dist/schemas/file-system-driver/v1.ts +108 -0
  21. package/dist/schemas/file-system-driver/v2.ts +142 -0
  22. package/dist/schemas/file-system-driver/v3.ts +167 -0
  23. package/dist/schemas/persist/v1.ts +781 -0
  24. package/dist/schemas/transport/v1.ts +697 -0
  25. package/dist/tsup/actor/errors.cjs +106 -0
  26. package/dist/tsup/actor/errors.cjs.map +1 -0
  27. package/dist/tsup/actor/errors.d.cts +188 -0
  28. package/dist/tsup/actor/errors.d.ts +188 -0
  29. package/dist/tsup/actor/errors.js +106 -0
  30. package/dist/tsup/actor/errors.js.map +1 -0
  31. package/dist/tsup/actor-router-consts-D29T1Z-K.d.cts +24 -0
  32. package/dist/tsup/actor-router-consts-D29T1Z-K.d.ts +24 -0
  33. package/dist/tsup/chunk-325TLXJT.js +1060 -0
  34. package/dist/tsup/chunk-325TLXJT.js.map +1 -0
  35. package/dist/tsup/chunk-424PT5DM.js +23 -0
  36. package/dist/tsup/chunk-424PT5DM.js.map +1 -0
  37. package/dist/tsup/chunk-4JVIG3SS.cjs +6289 -0
  38. package/dist/tsup/chunk-4JVIG3SS.cjs.map +1 -0
  39. package/dist/tsup/chunk-6LJAZ5R4.cjs +96 -0
  40. package/dist/tsup/chunk-6LJAZ5R4.cjs.map +1 -0
  41. package/dist/tsup/chunk-6XU3FMCB.cjs +534 -0
  42. package/dist/tsup/chunk-6XU3FMCB.cjs.map +1 -0
  43. package/dist/tsup/chunk-7HTNH26M.js +509 -0
  44. package/dist/tsup/chunk-7HTNH26M.js.map +1 -0
  45. package/dist/tsup/chunk-AUVH72RE.cjs +5977 -0
  46. package/dist/tsup/chunk-AUVH72RE.cjs.map +1 -0
  47. package/dist/tsup/chunk-D4BYUPNQ.js +645 -0
  48. package/dist/tsup/chunk-D4BYUPNQ.js.map +1 -0
  49. package/dist/tsup/chunk-HDQ2JUQT.cjs +23 -0
  50. package/dist/tsup/chunk-HDQ2JUQT.cjs.map +1 -0
  51. package/dist/tsup/chunk-HHXX2VRM.js +6289 -0
  52. package/dist/tsup/chunk-HHXX2VRM.js.map +1 -0
  53. package/dist/tsup/chunk-JEAEA2PB.js +49 -0
  54. package/dist/tsup/chunk-JEAEA2PB.js.map +1 -0
  55. package/dist/tsup/chunk-JYSEG3VF.cjs +642 -0
  56. package/dist/tsup/chunk-JYSEG3VF.cjs.map +1 -0
  57. package/dist/tsup/chunk-K6DGYILQ.js +2657 -0
  58. package/dist/tsup/chunk-K6DGYILQ.js.map +1 -0
  59. package/dist/tsup/chunk-KJSYAUOM.js +96 -0
  60. package/dist/tsup/chunk-KJSYAUOM.js.map +1 -0
  61. package/dist/tsup/chunk-L47L3ZWJ.cjs +509 -0
  62. package/dist/tsup/chunk-L47L3ZWJ.cjs.map +1 -0
  63. package/dist/tsup/chunk-LXUQ667X.js +2006 -0
  64. package/dist/tsup/chunk-LXUQ667X.js.map +1 -0
  65. package/dist/tsup/chunk-MXNPAB5W.js +5977 -0
  66. package/dist/tsup/chunk-MXNPAB5W.js.map +1 -0
  67. package/dist/tsup/chunk-N4KRDJ56.js +72 -0
  68. package/dist/tsup/chunk-N4KRDJ56.js.map +1 -0
  69. package/dist/tsup/chunk-NIYZDWMW.cjs +2006 -0
  70. package/dist/tsup/chunk-NIYZDWMW.cjs.map +1 -0
  71. package/dist/tsup/chunk-PQZHDKRW.cjs +1060 -0
  72. package/dist/tsup/chunk-PQZHDKRW.cjs.map +1 -0
  73. package/dist/tsup/chunk-PVOE6BU7.cjs +1050 -0
  74. package/dist/tsup/chunk-PVOE6BU7.cjs.map +1 -0
  75. package/dist/tsup/chunk-Q4UD2GA4.cjs +1810 -0
  76. package/dist/tsup/chunk-Q4UD2GA4.cjs.map +1 -0
  77. package/dist/tsup/chunk-QUD664YZ.js +1810 -0
  78. package/dist/tsup/chunk-QUD664YZ.js.map +1 -0
  79. package/dist/tsup/chunk-RTOCTWME.js +1050 -0
  80. package/dist/tsup/chunk-RTOCTWME.js.map +1 -0
  81. package/dist/tsup/chunk-SAZZ4SB2.cjs +2657 -0
  82. package/dist/tsup/chunk-SAZZ4SB2.cjs.map +1 -0
  83. package/dist/tsup/chunk-SR3KQE7Q.cjs +72 -0
  84. package/dist/tsup/chunk-SR3KQE7Q.cjs.map +1 -0
  85. package/dist/tsup/chunk-V2GHLYC6.cjs +49 -0
  86. package/dist/tsup/chunk-V2GHLYC6.cjs.map +1 -0
  87. package/dist/tsup/chunk-V3WG7XTW.cjs +645 -0
  88. package/dist/tsup/chunk-V3WG7XTW.cjs.map +1 -0
  89. package/dist/tsup/chunk-VKVNIQRQ.js +257 -0
  90. package/dist/tsup/chunk-VKVNIQRQ.js.map +1 -0
  91. package/dist/tsup/chunk-WMPW7JYC.js +642 -0
  92. package/dist/tsup/chunk-WMPW7JYC.js.map +1 -0
  93. package/dist/tsup/chunk-Z7HNQ2WF.js +534 -0
  94. package/dist/tsup/chunk-Z7HNQ2WF.js.map +1 -0
  95. package/dist/tsup/chunk-ZFY5J2EP.cjs +257 -0
  96. package/dist/tsup/chunk-ZFY5J2EP.cjs.map +1 -0
  97. package/dist/tsup/client/mod.cjs +33 -0
  98. package/dist/tsup/client/mod.cjs.map +1 -0
  99. package/dist/tsup/client/mod.d.cts +64 -0
  100. package/dist/tsup/client/mod.d.ts +64 -0
  101. package/dist/tsup/client/mod.js +33 -0
  102. package/dist/tsup/client/mod.js.map +1 -0
  103. package/dist/tsup/common/log.cjs +21 -0
  104. package/dist/tsup/common/log.cjs.map +1 -0
  105. package/dist/tsup/common/log.d.cts +34 -0
  106. package/dist/tsup/common/log.d.ts +34 -0
  107. package/dist/tsup/common/log.js +21 -0
  108. package/dist/tsup/common/log.js.map +1 -0
  109. package/dist/tsup/common/websocket.cjs +10 -0
  110. package/dist/tsup/common/websocket.cjs.map +1 -0
  111. package/dist/tsup/common/websocket.d.cts +3 -0
  112. package/dist/tsup/common/websocket.d.ts +3 -0
  113. package/dist/tsup/common/websocket.js +10 -0
  114. package/dist/tsup/common/websocket.js.map +1 -0
  115. package/dist/tsup/config-BiNoIHRs.d.cts +80 -0
  116. package/dist/tsup/config-BiNoIHRs.d.ts +80 -0
  117. package/dist/tsup/config-P3XujgRr.d.ts +2594 -0
  118. package/dist/tsup/config-_gfywqqI.d.cts +2594 -0
  119. package/dist/tsup/context-Bxd8Cx4H.d.cts +75 -0
  120. package/dist/tsup/context-uNA4TRn3.d.ts +75 -0
  121. package/dist/tsup/db/drizzle/mod.cjs +49 -0
  122. package/dist/tsup/db/drizzle/mod.cjs.map +1 -0
  123. package/dist/tsup/db/drizzle/mod.d.cts +17 -0
  124. package/dist/tsup/db/drizzle/mod.d.ts +17 -0
  125. package/dist/tsup/db/drizzle/mod.js +49 -0
  126. package/dist/tsup/db/drizzle/mod.js.map +1 -0
  127. package/dist/tsup/db/mod.cjs +9 -0
  128. package/dist/tsup/db/mod.cjs.map +1 -0
  129. package/dist/tsup/db/mod.d.cts +9 -0
  130. package/dist/tsup/db/mod.d.ts +9 -0
  131. package/dist/tsup/db/mod.js +9 -0
  132. package/dist/tsup/db/mod.js.map +1 -0
  133. package/dist/tsup/driver-BcLvZcKl.d.cts +13 -0
  134. package/dist/tsup/driver-CPGHKXyh.d.ts +13 -0
  135. package/dist/tsup/driver-helpers/mod.cjs +53 -0
  136. package/dist/tsup/driver-helpers/mod.cjs.map +1 -0
  137. package/dist/tsup/driver-helpers/mod.d.cts +47 -0
  138. package/dist/tsup/driver-helpers/mod.d.ts +47 -0
  139. package/dist/tsup/driver-helpers/mod.js +53 -0
  140. package/dist/tsup/driver-helpers/mod.js.map +1 -0
  141. package/dist/tsup/driver-test-suite/mod.cjs +4974 -0
  142. package/dist/tsup/driver-test-suite/mod.cjs.map +1 -0
  143. package/dist/tsup/driver-test-suite/mod.d.cts +73 -0
  144. package/dist/tsup/driver-test-suite/mod.d.ts +73 -0
  145. package/dist/tsup/driver-test-suite/mod.js +4974 -0
  146. package/dist/tsup/driver-test-suite/mod.js.map +1 -0
  147. package/dist/tsup/inspector/mod.cjs +164 -0
  148. package/dist/tsup/inspector/mod.cjs.map +1 -0
  149. package/dist/tsup/inspector/mod.d.cts +130 -0
  150. package/dist/tsup/inspector/mod.d.ts +130 -0
  151. package/dist/tsup/inspector/mod.js +164 -0
  152. package/dist/tsup/inspector/mod.js.map +1 -0
  153. package/dist/tsup/keys-CydblqMh.d.cts +13 -0
  154. package/dist/tsup/keys-CydblqMh.d.ts +13 -0
  155. package/dist/tsup/mod.cjs +82 -0
  156. package/dist/tsup/mod.cjs.map +1 -0
  157. package/dist/tsup/mod.d.cts +126 -0
  158. package/dist/tsup/mod.d.ts +126 -0
  159. package/dist/tsup/mod.js +82 -0
  160. package/dist/tsup/mod.js.map +1 -0
  161. package/dist/tsup/serve-test-suite/mod.cjs +2601 -0
  162. package/dist/tsup/serve-test-suite/mod.cjs.map +1 -0
  163. package/dist/tsup/serve-test-suite/mod.d.cts +9 -0
  164. package/dist/tsup/serve-test-suite/mod.d.ts +9 -0
  165. package/dist/tsup/serve-test-suite/mod.js +2601 -0
  166. package/dist/tsup/serve-test-suite/mod.js.map +1 -0
  167. package/dist/tsup/test/mod.cjs +90 -0
  168. package/dist/tsup/test/mod.cjs.map +1 -0
  169. package/dist/tsup/test/mod.d.cts +26 -0
  170. package/dist/tsup/test/mod.d.ts +26 -0
  171. package/dist/tsup/test/mod.js +90 -0
  172. package/dist/tsup/test/mod.js.map +1 -0
  173. package/dist/tsup/utils-fwx3o3K9.d.cts +18 -0
  174. package/dist/tsup/utils-fwx3o3K9.d.ts +18 -0
  175. package/dist/tsup/utils.cjs +43 -0
  176. package/dist/tsup/utils.cjs.map +1 -0
  177. package/dist/tsup/utils.d.cts +148 -0
  178. package/dist/tsup/utils.d.ts +148 -0
  179. package/dist/tsup/utils.js +43 -0
  180. package/dist/tsup/utils.js.map +1 -0
  181. package/dist/tsup/v3-DnYObHH3.d.cts +279 -0
  182. package/dist/tsup/v3-DnYObHH3.d.ts +279 -0
  183. package/dist/tsup/workflow/mod.cjs +16 -0
  184. package/dist/tsup/workflow/mod.cjs.map +1 -0
  185. package/dist/tsup/workflow/mod.d.cts +25 -0
  186. package/dist/tsup/workflow/mod.d.ts +25 -0
  187. package/dist/tsup/workflow/mod.js +16 -0
  188. package/dist/tsup/workflow/mod.js.map +1 -0
  189. package/package.json +293 -5
  190. package/src/actor/config.ts +1221 -0
  191. package/src/actor/conn/driver.ts +61 -0
  192. package/src/actor/conn/drivers/http.ts +17 -0
  193. package/src/actor/conn/drivers/raw-request.ts +24 -0
  194. package/src/actor/conn/drivers/raw-websocket.ts +65 -0
  195. package/src/actor/conn/drivers/websocket.ts +144 -0
  196. package/src/actor/conn/mod.ts +288 -0
  197. package/src/actor/conn/persisted.ts +81 -0
  198. package/src/actor/conn/state-manager.ts +196 -0
  199. package/src/actor/contexts/action.ts +47 -0
  200. package/src/actor/contexts/base/actor.ts +347 -0
  201. package/src/actor/contexts/base/conn-init.ts +68 -0
  202. package/src/actor/contexts/base/conn.ts +73 -0
  203. package/src/actor/contexts/before-action-response.ts +42 -0
  204. package/src/actor/contexts/before-connect.ts +31 -0
  205. package/src/actor/contexts/connect.ts +42 -0
  206. package/src/actor/contexts/create-conn-state.ts +32 -0
  207. package/src/actor/contexts/create-vars.ts +39 -0
  208. package/src/actor/contexts/create.ts +39 -0
  209. package/src/actor/contexts/destroy.ts +42 -0
  210. package/src/actor/contexts/disconnect.ts +43 -0
  211. package/src/actor/contexts/index.ts +33 -0
  212. package/src/actor/contexts/request.ts +80 -0
  213. package/src/actor/contexts/run.ts +47 -0
  214. package/src/actor/contexts/sleep.ts +42 -0
  215. package/src/actor/contexts/state-change.ts +42 -0
  216. package/src/actor/contexts/wake.ts +42 -0
  217. package/src/actor/contexts/websocket.ts +80 -0
  218. package/src/actor/database.ts +13 -0
  219. package/src/actor/definition.ts +64 -0
  220. package/src/actor/driver.ts +114 -0
  221. package/src/actor/errors.ts +556 -0
  222. package/src/actor/instance/connection-manager.ts +574 -0
  223. package/src/actor/instance/event-manager.ts +314 -0
  224. package/src/actor/instance/keys.ts +146 -0
  225. package/src/actor/instance/kv.ts +241 -0
  226. package/src/actor/instance/mod.ts +1658 -0
  227. package/src/actor/instance/persisted.ts +67 -0
  228. package/src/actor/instance/queue-manager.ts +603 -0
  229. package/src/actor/instance/queue.ts +345 -0
  230. package/src/actor/instance/schedule-manager.ts +392 -0
  231. package/src/actor/instance/state-manager.ts +542 -0
  232. package/src/actor/instance/traces-driver.ts +128 -0
  233. package/src/actor/keys.test.ts +275 -0
  234. package/src/actor/keys.ts +89 -0
  235. package/src/actor/log.ts +6 -0
  236. package/src/actor/mod.ts +110 -0
  237. package/src/actor/protocol/old.ts +416 -0
  238. package/src/actor/protocol/serde.ts +222 -0
  239. package/src/actor/router-endpoints.ts +400 -0
  240. package/src/actor/router-websocket-endpoints.test.ts +54 -0
  241. package/src/actor/router-websocket-endpoints.ts +405 -0
  242. package/src/actor/router.ts +380 -0
  243. package/src/actor/schedule.ts +17 -0
  244. package/src/actor/schema.ts +291 -0
  245. package/src/actor/utils.test.ts +48 -0
  246. package/src/actor/utils.ts +158 -0
  247. package/src/client/actor-common.ts +32 -0
  248. package/src/client/actor-conn.ts +1262 -0
  249. package/src/client/actor-handle.ts +344 -0
  250. package/src/client/actor-query.ts +112 -0
  251. package/src/client/client.ts +558 -0
  252. package/src/client/config.ts +151 -0
  253. package/src/client/errors.ts +76 -0
  254. package/src/client/log.ts +5 -0
  255. package/src/client/mod.browser.ts +2 -0
  256. package/src/client/mod.ts +70 -0
  257. package/src/client/queue.ts +146 -0
  258. package/src/client/raw-utils.ts +149 -0
  259. package/src/client/test.ts +44 -0
  260. package/src/client/utils.ts +252 -0
  261. package/src/common/actor-router-consts.ts +59 -0
  262. package/src/common/cors.ts +57 -0
  263. package/src/common/eventsource-interface.ts +47 -0
  264. package/src/common/eventsource.ts +44 -0
  265. package/src/common/inline-websocket-adapter.ts +154 -0
  266. package/src/common/log-levels.ts +27 -0
  267. package/src/common/log.ts +229 -0
  268. package/src/common/logfmt.ts +221 -0
  269. package/src/common/network.ts +2 -0
  270. package/src/common/router.ts +174 -0
  271. package/src/common/utils.ts +339 -0
  272. package/src/common/websocket-interface.ts +7 -0
  273. package/src/common/websocket.ts +43 -0
  274. package/src/db/config.ts +100 -0
  275. package/src/db/drizzle/mod.ts +226 -0
  276. package/src/db/drizzle/sqlite-core.ts +22 -0
  277. package/src/db/mod.ts +125 -0
  278. package/src/db/shared.ts +92 -0
  279. package/src/db/sqlite-vfs.ts +12 -0
  280. package/src/devtools-loader/index.ts +33 -0
  281. package/src/devtools-loader/log.ts +5 -0
  282. package/src/driver-helpers/mod.ts +33 -0
  283. package/src/driver-helpers/utils.ts +54 -0
  284. package/src/driver-test-suite/log.ts +5 -0
  285. package/src/driver-test-suite/mod.ts +293 -0
  286. package/src/driver-test-suite/test-inline-client-driver.ts +307 -0
  287. package/src/driver-test-suite/tests/access-control.ts +218 -0
  288. package/src/driver-test-suite/tests/action-features.ts +203 -0
  289. package/src/driver-test-suite/tests/actor-conn-hibernation.ts +152 -0
  290. package/src/driver-test-suite/tests/actor-conn-state.ts +300 -0
  291. package/src/driver-test-suite/tests/actor-conn.ts +596 -0
  292. package/src/driver-test-suite/tests/actor-db-raw.ts +73 -0
  293. package/src/driver-test-suite/tests/actor-db.ts +477 -0
  294. package/src/driver-test-suite/tests/actor-destroy.ts +294 -0
  295. package/src/driver-test-suite/tests/actor-driver.ts +18 -0
  296. package/src/driver-test-suite/tests/actor-error-handling.ts +150 -0
  297. package/src/driver-test-suite/tests/actor-handle.ts +312 -0
  298. package/src/driver-test-suite/tests/actor-inline-client.ts +163 -0
  299. package/src/driver-test-suite/tests/actor-inspector.ts +264 -0
  300. package/src/driver-test-suite/tests/actor-kv.ts +65 -0
  301. package/src/driver-test-suite/tests/actor-metadata.ts +116 -0
  302. package/src/driver-test-suite/tests/actor-onstatechange.ts +95 -0
  303. package/src/driver-test-suite/tests/actor-queue.ts +325 -0
  304. package/src/driver-test-suite/tests/actor-run.ts +181 -0
  305. package/src/driver-test-suite/tests/actor-schedule.ts +97 -0
  306. package/src/driver-test-suite/tests/actor-sleep.ts +415 -0
  307. package/src/driver-test-suite/tests/actor-state.ts +54 -0
  308. package/src/driver-test-suite/tests/actor-stateless.ts +70 -0
  309. package/src/driver-test-suite/tests/actor-vars.ts +97 -0
  310. package/src/driver-test-suite/tests/actor-workflow.ts +118 -0
  311. package/src/driver-test-suite/tests/manager-driver.ts +388 -0
  312. package/src/driver-test-suite/tests/raw-http-direct-registry.ts +227 -0
  313. package/src/driver-test-suite/tests/raw-http-request-properties.ts +454 -0
  314. package/src/driver-test-suite/tests/raw-http.ts +359 -0
  315. package/src/driver-test-suite/tests/raw-websocket-direct-registry.ts +393 -0
  316. package/src/driver-test-suite/tests/raw-websocket.ts +513 -0
  317. package/src/driver-test-suite/tests/request-access.ts +240 -0
  318. package/src/driver-test-suite/utils.ts +80 -0
  319. package/src/drivers/default.ts +38 -0
  320. package/src/drivers/engine/actor-driver.ts +1027 -0
  321. package/src/drivers/engine/config.ts +43 -0
  322. package/src/drivers/engine/log.ts +5 -0
  323. package/src/drivers/engine/mod.ts +36 -0
  324. package/src/drivers/file-system/actor.ts +102 -0
  325. package/src/drivers/file-system/global-state.ts +1445 -0
  326. package/src/drivers/file-system/kv-limits.ts +70 -0
  327. package/src/drivers/file-system/log.ts +5 -0
  328. package/src/drivers/file-system/manager.ts +300 -0
  329. package/src/drivers/file-system/mod.ts +78 -0
  330. package/src/drivers/file-system/sqlite-runtime.ts +210 -0
  331. package/src/drivers/file-system/utils.ts +125 -0
  332. package/src/engine-process/constants.ts +2 -0
  333. package/src/engine-process/log.ts +5 -0
  334. package/src/engine-process/mod.ts +464 -0
  335. package/src/globals.d.ts +35 -0
  336. package/src/inspector/actor-inspector.ts +352 -0
  337. package/src/inspector/config.ts +49 -0
  338. package/src/inspector/handler.ts +273 -0
  339. package/src/inspector/log.ts +5 -0
  340. package/src/inspector/mod.browser.ts +8 -0
  341. package/src/inspector/mod.ts +4 -0
  342. package/src/inspector/serve-ui.ts +40 -0
  343. package/src/inspector/transport.ts +18 -0
  344. package/src/inspector/utils.ts +32 -0
  345. package/src/manager/driver.ts +106 -0
  346. package/src/manager/gateway.ts +668 -0
  347. package/src/manager/log.ts +5 -0
  348. package/src/manager/mod.ts +2 -0
  349. package/src/manager/protocol/mod.ts +22 -0
  350. package/src/manager/protocol/query.ts +85 -0
  351. package/src/manager/router-schema.ts +22 -0
  352. package/src/manager/router.ts +660 -0
  353. package/src/manager-api/actors.ts +83 -0
  354. package/src/manager-api/common.ts +4 -0
  355. package/src/mod.ts +24 -0
  356. package/src/registry/config/driver.ts +21 -0
  357. package/src/registry/config/index.ts +510 -0
  358. package/src/registry/config/legacy-runner.ts +157 -0
  359. package/src/registry/config/runner.ts +21 -0
  360. package/src/registry/config/serverless.ts +94 -0
  361. package/src/registry/index.ts +194 -0
  362. package/src/registry/log.ts +5 -0
  363. package/src/remote-manager-driver/actor-http-client.ts +84 -0
  364. package/src/remote-manager-driver/actor-websocket-client.ts +81 -0
  365. package/src/remote-manager-driver/api-endpoints.ts +159 -0
  366. package/src/remote-manager-driver/api-utils.ts +69 -0
  367. package/src/remote-manager-driver/log.ts +5 -0
  368. package/src/remote-manager-driver/metadata.ts +64 -0
  369. package/src/remote-manager-driver/mod.ts +414 -0
  370. package/src/remote-manager-driver/ws-proxy.ts +189 -0
  371. package/src/schemas/actor-inspector/mod.ts +1 -0
  372. package/src/schemas/actor-inspector/versioned.ts +233 -0
  373. package/src/schemas/actor-persist/mod.ts +1 -0
  374. package/src/schemas/actor-persist/versioned.ts +217 -0
  375. package/src/schemas/client-protocol/mod.ts +1 -0
  376. package/src/schemas/client-protocol/versioned.ts +330 -0
  377. package/src/schemas/client-protocol-zod/mod.ts +118 -0
  378. package/src/schemas/file-system-driver/mod.ts +1 -0
  379. package/src/schemas/file-system-driver/versioned.ts +135 -0
  380. package/src/schemas/persist/mod.ts +1 -0
  381. package/src/schemas/transport/mod.ts +1 -0
  382. package/src/serde.ts +138 -0
  383. package/src/serve-test-suite/mod.ts +148 -0
  384. package/src/serverless/configure.ts +82 -0
  385. package/src/serverless/log.ts +5 -0
  386. package/src/serverless/router.test.ts +299 -0
  387. package/src/serverless/router.ts +215 -0
  388. package/src/test/log.ts +5 -0
  389. package/src/test/mod.ts +99 -0
  390. package/src/utils/crypto.ts +24 -0
  391. package/src/utils/endpoint-parser.test.ts +202 -0
  392. package/src/utils/endpoint-parser.ts +124 -0
  393. package/src/utils/env-vars.ts +78 -0
  394. package/src/utils/node.ts +178 -0
  395. package/src/utils/router.ts +83 -0
  396. package/src/utils/serve.ts +212 -0
  397. package/src/utils.test.ts +34 -0
  398. package/src/utils.ts +437 -0
  399. package/src/workflow/constants.ts +2 -0
  400. package/src/workflow/context.ts +597 -0
  401. package/src/workflow/driver.ts +194 -0
  402. package/src/workflow/inspector.ts +268 -0
  403. package/src/workflow/mod.ts +128 -0
@@ -0,0 +1,697 @@
1
+ // @generated - post-processed by compile-bare.ts
2
+ import * as bare from "@rivetkit/bare-ts"
3
+
4
+ const config = /* @__PURE__ */ bare.Config({})
5
+
6
+ export type u32 = number
7
+ export type u64 = bigint
8
+
9
+ export type WorkflowCbor = ArrayBuffer
10
+
11
+ export function readWorkflowCbor(bc: bare.ByteCursor): WorkflowCbor {
12
+ return bare.readData(bc)
13
+ }
14
+
15
+ export function writeWorkflowCbor(bc: bare.ByteCursor, x: WorkflowCbor): void {
16
+ bare.writeData(bc, x)
17
+ }
18
+
19
+ export type WorkflowNameIndex = u32
20
+
21
+ export function readWorkflowNameIndex(bc: bare.ByteCursor): WorkflowNameIndex {
22
+ return bare.readU32(bc)
23
+ }
24
+
25
+ export function writeWorkflowNameIndex(bc: bare.ByteCursor, x: WorkflowNameIndex): void {
26
+ bare.writeU32(bc, x)
27
+ }
28
+
29
+ export type WorkflowLoopIterationMarker = {
30
+ readonly loop: WorkflowNameIndex,
31
+ readonly iteration: u32,
32
+ }
33
+
34
+ export function readWorkflowLoopIterationMarker(bc: bare.ByteCursor): WorkflowLoopIterationMarker {
35
+ return {
36
+ loop: readWorkflowNameIndex(bc),
37
+ iteration: bare.readU32(bc),
38
+ }
39
+ }
40
+
41
+ export function writeWorkflowLoopIterationMarker(bc: bare.ByteCursor, x: WorkflowLoopIterationMarker): void {
42
+ writeWorkflowNameIndex(bc, x.loop)
43
+ bare.writeU32(bc, x.iteration)
44
+ }
45
+
46
+ export type WorkflowPathSegment =
47
+ | { readonly tag: "WorkflowNameIndex", readonly val: WorkflowNameIndex }
48
+ | { readonly tag: "WorkflowLoopIterationMarker", readonly val: WorkflowLoopIterationMarker }
49
+
50
+ export function readWorkflowPathSegment(bc: bare.ByteCursor): WorkflowPathSegment {
51
+ const offset = bc.offset
52
+ const tag = bare.readU8(bc)
53
+ switch (tag) {
54
+ case 0:
55
+ return { tag: "WorkflowNameIndex", val: readWorkflowNameIndex(bc) }
56
+ case 1:
57
+ return { tag: "WorkflowLoopIterationMarker", val: readWorkflowLoopIterationMarker(bc) }
58
+ default: {
59
+ bc.offset = offset
60
+ throw new bare.BareError(offset, "invalid tag")
61
+ }
62
+ }
63
+ }
64
+
65
+ export function writeWorkflowPathSegment(bc: bare.ByteCursor, x: WorkflowPathSegment): void {
66
+ switch (x.tag) {
67
+ case "WorkflowNameIndex": {
68
+ bare.writeU8(bc, 0)
69
+ writeWorkflowNameIndex(bc, x.val)
70
+ break
71
+ }
72
+ case "WorkflowLoopIterationMarker": {
73
+ bare.writeU8(bc, 1)
74
+ writeWorkflowLoopIterationMarker(bc, x.val)
75
+ break
76
+ }
77
+ }
78
+ }
79
+
80
+ export type WorkflowLocation = readonly WorkflowPathSegment[]
81
+
82
+ export function readWorkflowLocation(bc: bare.ByteCursor): WorkflowLocation {
83
+ const len = bare.readUintSafe(bc)
84
+ if (len === 0) { return [] }
85
+ const result = [readWorkflowPathSegment(bc)]
86
+ for (let i = 1; i < len; i++) {
87
+ result[i] = readWorkflowPathSegment(bc)
88
+ }
89
+ return result
90
+ }
91
+
92
+ export function writeWorkflowLocation(bc: bare.ByteCursor, x: WorkflowLocation): void {
93
+ bare.writeUintSafe(bc, x.length)
94
+ for (let i = 0; i < x.length; i++) {
95
+ writeWorkflowPathSegment(bc, x[i])
96
+ }
97
+ }
98
+
99
+ export enum WorkflowEntryStatus {
100
+ PENDING = "PENDING",
101
+ RUNNING = "RUNNING",
102
+ COMPLETED = "COMPLETED",
103
+ FAILED = "FAILED",
104
+ EXHAUSTED = "EXHAUSTED",
105
+ }
106
+
107
+ export function readWorkflowEntryStatus(bc: bare.ByteCursor): WorkflowEntryStatus {
108
+ const offset = bc.offset
109
+ const tag = bare.readU8(bc)
110
+ switch (tag) {
111
+ case 0:
112
+ return WorkflowEntryStatus.PENDING
113
+ case 1:
114
+ return WorkflowEntryStatus.RUNNING
115
+ case 2:
116
+ return WorkflowEntryStatus.COMPLETED
117
+ case 3:
118
+ return WorkflowEntryStatus.FAILED
119
+ case 4:
120
+ return WorkflowEntryStatus.EXHAUSTED
121
+ default: {
122
+ bc.offset = offset
123
+ throw new bare.BareError(offset, "invalid tag")
124
+ }
125
+ }
126
+ }
127
+
128
+ export function writeWorkflowEntryStatus(bc: bare.ByteCursor, x: WorkflowEntryStatus): void {
129
+ switch (x) {
130
+ case WorkflowEntryStatus.PENDING: {
131
+ bare.writeU8(bc, 0)
132
+ break
133
+ }
134
+ case WorkflowEntryStatus.RUNNING: {
135
+ bare.writeU8(bc, 1)
136
+ break
137
+ }
138
+ case WorkflowEntryStatus.COMPLETED: {
139
+ bare.writeU8(bc, 2)
140
+ break
141
+ }
142
+ case WorkflowEntryStatus.FAILED: {
143
+ bare.writeU8(bc, 3)
144
+ break
145
+ }
146
+ case WorkflowEntryStatus.EXHAUSTED: {
147
+ bare.writeU8(bc, 4)
148
+ break
149
+ }
150
+ }
151
+ }
152
+
153
+ export enum WorkflowSleepState {
154
+ PENDING = "PENDING",
155
+ COMPLETED = "COMPLETED",
156
+ INTERRUPTED = "INTERRUPTED",
157
+ }
158
+
159
+ export function readWorkflowSleepState(bc: bare.ByteCursor): WorkflowSleepState {
160
+ const offset = bc.offset
161
+ const tag = bare.readU8(bc)
162
+ switch (tag) {
163
+ case 0:
164
+ return WorkflowSleepState.PENDING
165
+ case 1:
166
+ return WorkflowSleepState.COMPLETED
167
+ case 2:
168
+ return WorkflowSleepState.INTERRUPTED
169
+ default: {
170
+ bc.offset = offset
171
+ throw new bare.BareError(offset, "invalid tag")
172
+ }
173
+ }
174
+ }
175
+
176
+ export function writeWorkflowSleepState(bc: bare.ByteCursor, x: WorkflowSleepState): void {
177
+ switch (x) {
178
+ case WorkflowSleepState.PENDING: {
179
+ bare.writeU8(bc, 0)
180
+ break
181
+ }
182
+ case WorkflowSleepState.COMPLETED: {
183
+ bare.writeU8(bc, 1)
184
+ break
185
+ }
186
+ case WorkflowSleepState.INTERRUPTED: {
187
+ bare.writeU8(bc, 2)
188
+ break
189
+ }
190
+ }
191
+ }
192
+
193
+ export enum WorkflowBranchStatusType {
194
+ PENDING = "PENDING",
195
+ RUNNING = "RUNNING",
196
+ COMPLETED = "COMPLETED",
197
+ FAILED = "FAILED",
198
+ CANCELLED = "CANCELLED",
199
+ }
200
+
201
+ export function readWorkflowBranchStatusType(bc: bare.ByteCursor): WorkflowBranchStatusType {
202
+ const offset = bc.offset
203
+ const tag = bare.readU8(bc)
204
+ switch (tag) {
205
+ case 0:
206
+ return WorkflowBranchStatusType.PENDING
207
+ case 1:
208
+ return WorkflowBranchStatusType.RUNNING
209
+ case 2:
210
+ return WorkflowBranchStatusType.COMPLETED
211
+ case 3:
212
+ return WorkflowBranchStatusType.FAILED
213
+ case 4:
214
+ return WorkflowBranchStatusType.CANCELLED
215
+ default: {
216
+ bc.offset = offset
217
+ throw new bare.BareError(offset, "invalid tag")
218
+ }
219
+ }
220
+ }
221
+
222
+ export function writeWorkflowBranchStatusType(bc: bare.ByteCursor, x: WorkflowBranchStatusType): void {
223
+ switch (x) {
224
+ case WorkflowBranchStatusType.PENDING: {
225
+ bare.writeU8(bc, 0)
226
+ break
227
+ }
228
+ case WorkflowBranchStatusType.RUNNING: {
229
+ bare.writeU8(bc, 1)
230
+ break
231
+ }
232
+ case WorkflowBranchStatusType.COMPLETED: {
233
+ bare.writeU8(bc, 2)
234
+ break
235
+ }
236
+ case WorkflowBranchStatusType.FAILED: {
237
+ bare.writeU8(bc, 3)
238
+ break
239
+ }
240
+ case WorkflowBranchStatusType.CANCELLED: {
241
+ bare.writeU8(bc, 4)
242
+ break
243
+ }
244
+ }
245
+ }
246
+
247
+ function read0(bc: bare.ByteCursor): WorkflowCbor | null {
248
+ return bare.readBool(bc)
249
+ ? readWorkflowCbor(bc)
250
+ : null
251
+ }
252
+
253
+ function write0(bc: bare.ByteCursor, x: WorkflowCbor | null): void {
254
+ bare.writeBool(bc, x !== null)
255
+ if (x !== null) {
256
+ writeWorkflowCbor(bc, x)
257
+ }
258
+ }
259
+
260
+ function read1(bc: bare.ByteCursor): string | null {
261
+ return bare.readBool(bc)
262
+ ? bare.readString(bc)
263
+ : null
264
+ }
265
+
266
+ function write1(bc: bare.ByteCursor, x: string | null): void {
267
+ bare.writeBool(bc, x !== null)
268
+ if (x !== null) {
269
+ bare.writeString(bc, x)
270
+ }
271
+ }
272
+
273
+ export type WorkflowStepEntry = {
274
+ readonly output: WorkflowCbor | null,
275
+ readonly error: string | null,
276
+ }
277
+
278
+ export function readWorkflowStepEntry(bc: bare.ByteCursor): WorkflowStepEntry {
279
+ return {
280
+ output: read0(bc),
281
+ error: read1(bc),
282
+ }
283
+ }
284
+
285
+ export function writeWorkflowStepEntry(bc: bare.ByteCursor, x: WorkflowStepEntry): void {
286
+ write0(bc, x.output)
287
+ write1(bc, x.error)
288
+ }
289
+
290
+ export type WorkflowLoopEntry = {
291
+ readonly state: WorkflowCbor,
292
+ readonly iteration: u32,
293
+ readonly output: WorkflowCbor | null,
294
+ }
295
+
296
+ export function readWorkflowLoopEntry(bc: bare.ByteCursor): WorkflowLoopEntry {
297
+ return {
298
+ state: readWorkflowCbor(bc),
299
+ iteration: bare.readU32(bc),
300
+ output: read0(bc),
301
+ }
302
+ }
303
+
304
+ export function writeWorkflowLoopEntry(bc: bare.ByteCursor, x: WorkflowLoopEntry): void {
305
+ writeWorkflowCbor(bc, x.state)
306
+ bare.writeU32(bc, x.iteration)
307
+ write0(bc, x.output)
308
+ }
309
+
310
+ export type WorkflowSleepEntry = {
311
+ readonly deadline: u64,
312
+ readonly state: WorkflowSleepState,
313
+ }
314
+
315
+ export function readWorkflowSleepEntry(bc: bare.ByteCursor): WorkflowSleepEntry {
316
+ return {
317
+ deadline: bare.readU64(bc),
318
+ state: readWorkflowSleepState(bc),
319
+ }
320
+ }
321
+
322
+ export function writeWorkflowSleepEntry(bc: bare.ByteCursor, x: WorkflowSleepEntry): void {
323
+ bare.writeU64(bc, x.deadline)
324
+ writeWorkflowSleepState(bc, x.state)
325
+ }
326
+
327
+ export type WorkflowMessageEntry = {
328
+ readonly name: string,
329
+ readonly messageData: WorkflowCbor,
330
+ }
331
+
332
+ export function readWorkflowMessageEntry(bc: bare.ByteCursor): WorkflowMessageEntry {
333
+ return {
334
+ name: bare.readString(bc),
335
+ messageData: readWorkflowCbor(bc),
336
+ }
337
+ }
338
+
339
+ export function writeWorkflowMessageEntry(bc: bare.ByteCursor, x: WorkflowMessageEntry): void {
340
+ bare.writeString(bc, x.name)
341
+ writeWorkflowCbor(bc, x.messageData)
342
+ }
343
+
344
+ export type WorkflowRollbackCheckpointEntry = {
345
+ readonly name: string,
346
+ }
347
+
348
+ export function readWorkflowRollbackCheckpointEntry(bc: bare.ByteCursor): WorkflowRollbackCheckpointEntry {
349
+ return {
350
+ name: bare.readString(bc),
351
+ }
352
+ }
353
+
354
+ export function writeWorkflowRollbackCheckpointEntry(bc: bare.ByteCursor, x: WorkflowRollbackCheckpointEntry): void {
355
+ bare.writeString(bc, x.name)
356
+ }
357
+
358
+ export type WorkflowBranchStatus = {
359
+ readonly status: WorkflowBranchStatusType,
360
+ readonly output: WorkflowCbor | null,
361
+ readonly error: string | null,
362
+ }
363
+
364
+ export function readWorkflowBranchStatus(bc: bare.ByteCursor): WorkflowBranchStatus {
365
+ return {
366
+ status: readWorkflowBranchStatusType(bc),
367
+ output: read0(bc),
368
+ error: read1(bc),
369
+ }
370
+ }
371
+
372
+ export function writeWorkflowBranchStatus(bc: bare.ByteCursor, x: WorkflowBranchStatus): void {
373
+ writeWorkflowBranchStatusType(bc, x.status)
374
+ write0(bc, x.output)
375
+ write1(bc, x.error)
376
+ }
377
+
378
+ function read2(bc: bare.ByteCursor): ReadonlyMap<string, WorkflowBranchStatus> {
379
+ const len = bare.readUintSafe(bc)
380
+ const result = new Map<string, WorkflowBranchStatus>()
381
+ for (let i = 0; i < len; i++) {
382
+ const offset = bc.offset
383
+ const key = bare.readString(bc)
384
+ if (result.has(key)) {
385
+ bc.offset = offset
386
+ throw new bare.BareError(offset, "duplicated key")
387
+ }
388
+ result.set(key, readWorkflowBranchStatus(bc))
389
+ }
390
+ return result
391
+ }
392
+
393
+ function write2(bc: bare.ByteCursor, x: ReadonlyMap<string, WorkflowBranchStatus>): void {
394
+ bare.writeUintSafe(bc, x.size)
395
+ for(const kv of x) {
396
+ bare.writeString(bc, kv[0])
397
+ writeWorkflowBranchStatus(bc, kv[1])
398
+ }
399
+ }
400
+
401
+ export type WorkflowJoinEntry = {
402
+ readonly branches: ReadonlyMap<string, WorkflowBranchStatus>,
403
+ }
404
+
405
+ export function readWorkflowJoinEntry(bc: bare.ByteCursor): WorkflowJoinEntry {
406
+ return {
407
+ branches: read2(bc),
408
+ }
409
+ }
410
+
411
+ export function writeWorkflowJoinEntry(bc: bare.ByteCursor, x: WorkflowJoinEntry): void {
412
+ write2(bc, x.branches)
413
+ }
414
+
415
+ export type WorkflowRaceEntry = {
416
+ readonly winner: string | null,
417
+ readonly branches: ReadonlyMap<string, WorkflowBranchStatus>,
418
+ }
419
+
420
+ export function readWorkflowRaceEntry(bc: bare.ByteCursor): WorkflowRaceEntry {
421
+ return {
422
+ winner: read1(bc),
423
+ branches: read2(bc),
424
+ }
425
+ }
426
+
427
+ export function writeWorkflowRaceEntry(bc: bare.ByteCursor, x: WorkflowRaceEntry): void {
428
+ write1(bc, x.winner)
429
+ write2(bc, x.branches)
430
+ }
431
+
432
+ export type WorkflowRemovedEntry = {
433
+ readonly originalType: string,
434
+ readonly originalName: string | null,
435
+ }
436
+
437
+ export function readWorkflowRemovedEntry(bc: bare.ByteCursor): WorkflowRemovedEntry {
438
+ return {
439
+ originalType: bare.readString(bc),
440
+ originalName: read1(bc),
441
+ }
442
+ }
443
+
444
+ export function writeWorkflowRemovedEntry(bc: bare.ByteCursor, x: WorkflowRemovedEntry): void {
445
+ bare.writeString(bc, x.originalType)
446
+ write1(bc, x.originalName)
447
+ }
448
+
449
+ export type WorkflowEntryKind =
450
+ | { readonly tag: "WorkflowStepEntry", readonly val: WorkflowStepEntry }
451
+ | { readonly tag: "WorkflowLoopEntry", readonly val: WorkflowLoopEntry }
452
+ | { readonly tag: "WorkflowSleepEntry", readonly val: WorkflowSleepEntry }
453
+ | { readonly tag: "WorkflowMessageEntry", readonly val: WorkflowMessageEntry }
454
+ | { readonly tag: "WorkflowRollbackCheckpointEntry", readonly val: WorkflowRollbackCheckpointEntry }
455
+ | { readonly tag: "WorkflowJoinEntry", readonly val: WorkflowJoinEntry }
456
+ | { readonly tag: "WorkflowRaceEntry", readonly val: WorkflowRaceEntry }
457
+ | { readonly tag: "WorkflowRemovedEntry", readonly val: WorkflowRemovedEntry }
458
+
459
+ export function readWorkflowEntryKind(bc: bare.ByteCursor): WorkflowEntryKind {
460
+ const offset = bc.offset
461
+ const tag = bare.readU8(bc)
462
+ switch (tag) {
463
+ case 0:
464
+ return { tag: "WorkflowStepEntry", val: readWorkflowStepEntry(bc) }
465
+ case 1:
466
+ return { tag: "WorkflowLoopEntry", val: readWorkflowLoopEntry(bc) }
467
+ case 2:
468
+ return { tag: "WorkflowSleepEntry", val: readWorkflowSleepEntry(bc) }
469
+ case 3:
470
+ return { tag: "WorkflowMessageEntry", val: readWorkflowMessageEntry(bc) }
471
+ case 4:
472
+ return { tag: "WorkflowRollbackCheckpointEntry", val: readWorkflowRollbackCheckpointEntry(bc) }
473
+ case 5:
474
+ return { tag: "WorkflowJoinEntry", val: readWorkflowJoinEntry(bc) }
475
+ case 6:
476
+ return { tag: "WorkflowRaceEntry", val: readWorkflowRaceEntry(bc) }
477
+ case 7:
478
+ return { tag: "WorkflowRemovedEntry", val: readWorkflowRemovedEntry(bc) }
479
+ default: {
480
+ bc.offset = offset
481
+ throw new bare.BareError(offset, "invalid tag")
482
+ }
483
+ }
484
+ }
485
+
486
+ export function writeWorkflowEntryKind(bc: bare.ByteCursor, x: WorkflowEntryKind): void {
487
+ switch (x.tag) {
488
+ case "WorkflowStepEntry": {
489
+ bare.writeU8(bc, 0)
490
+ writeWorkflowStepEntry(bc, x.val)
491
+ break
492
+ }
493
+ case "WorkflowLoopEntry": {
494
+ bare.writeU8(bc, 1)
495
+ writeWorkflowLoopEntry(bc, x.val)
496
+ break
497
+ }
498
+ case "WorkflowSleepEntry": {
499
+ bare.writeU8(bc, 2)
500
+ writeWorkflowSleepEntry(bc, x.val)
501
+ break
502
+ }
503
+ case "WorkflowMessageEntry": {
504
+ bare.writeU8(bc, 3)
505
+ writeWorkflowMessageEntry(bc, x.val)
506
+ break
507
+ }
508
+ case "WorkflowRollbackCheckpointEntry": {
509
+ bare.writeU8(bc, 4)
510
+ writeWorkflowRollbackCheckpointEntry(bc, x.val)
511
+ break
512
+ }
513
+ case "WorkflowJoinEntry": {
514
+ bare.writeU8(bc, 5)
515
+ writeWorkflowJoinEntry(bc, x.val)
516
+ break
517
+ }
518
+ case "WorkflowRaceEntry": {
519
+ bare.writeU8(bc, 6)
520
+ writeWorkflowRaceEntry(bc, x.val)
521
+ break
522
+ }
523
+ case "WorkflowRemovedEntry": {
524
+ bare.writeU8(bc, 7)
525
+ writeWorkflowRemovedEntry(bc, x.val)
526
+ break
527
+ }
528
+ }
529
+ }
530
+
531
+ export type WorkflowEntry = {
532
+ readonly id: string,
533
+ readonly location: WorkflowLocation,
534
+ readonly kind: WorkflowEntryKind,
535
+ }
536
+
537
+ export function readWorkflowEntry(bc: bare.ByteCursor): WorkflowEntry {
538
+ return {
539
+ id: bare.readString(bc),
540
+ location: readWorkflowLocation(bc),
541
+ kind: readWorkflowEntryKind(bc),
542
+ }
543
+ }
544
+
545
+ export function writeWorkflowEntry(bc: bare.ByteCursor, x: WorkflowEntry): void {
546
+ bare.writeString(bc, x.id)
547
+ writeWorkflowLocation(bc, x.location)
548
+ writeWorkflowEntryKind(bc, x.kind)
549
+ }
550
+
551
+ function read3(bc: bare.ByteCursor): u64 | null {
552
+ return bare.readBool(bc)
553
+ ? bare.readU64(bc)
554
+ : null
555
+ }
556
+
557
+ function write3(bc: bare.ByteCursor, x: u64 | null): void {
558
+ bare.writeBool(bc, x !== null)
559
+ if (x !== null) {
560
+ bare.writeU64(bc, x)
561
+ }
562
+ }
563
+
564
+ export type WorkflowEntryMetadata = {
565
+ readonly status: WorkflowEntryStatus,
566
+ readonly error: string | null,
567
+ readonly attempts: u32,
568
+ readonly lastAttemptAt: u64,
569
+ readonly createdAt: u64,
570
+ readonly completedAt: u64 | null,
571
+ readonly rollbackCompletedAt: u64 | null,
572
+ readonly rollbackError: string | null,
573
+ }
574
+
575
+ export function readWorkflowEntryMetadata(bc: bare.ByteCursor): WorkflowEntryMetadata {
576
+ return {
577
+ status: readWorkflowEntryStatus(bc),
578
+ error: read1(bc),
579
+ attempts: bare.readU32(bc),
580
+ lastAttemptAt: bare.readU64(bc),
581
+ createdAt: bare.readU64(bc),
582
+ completedAt: read3(bc),
583
+ rollbackCompletedAt: read3(bc),
584
+ rollbackError: read1(bc),
585
+ }
586
+ }
587
+
588
+ export function writeWorkflowEntryMetadata(bc: bare.ByteCursor, x: WorkflowEntryMetadata): void {
589
+ writeWorkflowEntryStatus(bc, x.status)
590
+ write1(bc, x.error)
591
+ bare.writeU32(bc, x.attempts)
592
+ bare.writeU64(bc, x.lastAttemptAt)
593
+ bare.writeU64(bc, x.createdAt)
594
+ write3(bc, x.completedAt)
595
+ write3(bc, x.rollbackCompletedAt)
596
+ write1(bc, x.rollbackError)
597
+ }
598
+
599
+ function read4(bc: bare.ByteCursor): readonly string[] {
600
+ const len = bare.readUintSafe(bc)
601
+ if (len === 0) { return [] }
602
+ const result = [bare.readString(bc)]
603
+ for (let i = 1; i < len; i++) {
604
+ result[i] = bare.readString(bc)
605
+ }
606
+ return result
607
+ }
608
+
609
+ function write4(bc: bare.ByteCursor, x: readonly string[]): void {
610
+ bare.writeUintSafe(bc, x.length)
611
+ for (let i = 0; i < x.length; i++) {
612
+ bare.writeString(bc, x[i])
613
+ }
614
+ }
615
+
616
+ function read5(bc: bare.ByteCursor): readonly WorkflowEntry[] {
617
+ const len = bare.readUintSafe(bc)
618
+ if (len === 0) { return [] }
619
+ const result = [readWorkflowEntry(bc)]
620
+ for (let i = 1; i < len; i++) {
621
+ result[i] = readWorkflowEntry(bc)
622
+ }
623
+ return result
624
+ }
625
+
626
+ function write5(bc: bare.ByteCursor, x: readonly WorkflowEntry[]): void {
627
+ bare.writeUintSafe(bc, x.length)
628
+ for (let i = 0; i < x.length; i++) {
629
+ writeWorkflowEntry(bc, x[i])
630
+ }
631
+ }
632
+
633
+ function read6(bc: bare.ByteCursor): ReadonlyMap<string, WorkflowEntryMetadata> {
634
+ const len = bare.readUintSafe(bc)
635
+ const result = new Map<string, WorkflowEntryMetadata>()
636
+ for (let i = 0; i < len; i++) {
637
+ const offset = bc.offset
638
+ const key = bare.readString(bc)
639
+ if (result.has(key)) {
640
+ bc.offset = offset
641
+ throw new bare.BareError(offset, "duplicated key")
642
+ }
643
+ result.set(key, readWorkflowEntryMetadata(bc))
644
+ }
645
+ return result
646
+ }
647
+
648
+ function write6(bc: bare.ByteCursor, x: ReadonlyMap<string, WorkflowEntryMetadata>): void {
649
+ bare.writeUintSafe(bc, x.size)
650
+ for(const kv of x) {
651
+ bare.writeString(bc, kv[0])
652
+ writeWorkflowEntryMetadata(bc, kv[1])
653
+ }
654
+ }
655
+
656
+ export type WorkflowHistory = {
657
+ readonly nameRegistry: readonly string[],
658
+ readonly entries: readonly WorkflowEntry[],
659
+ readonly entryMetadata: ReadonlyMap<string, WorkflowEntryMetadata>,
660
+ }
661
+
662
+ export function readWorkflowHistory(bc: bare.ByteCursor): WorkflowHistory {
663
+ return {
664
+ nameRegistry: read4(bc),
665
+ entries: read5(bc),
666
+ entryMetadata: read6(bc),
667
+ }
668
+ }
669
+
670
+ export function writeWorkflowHistory(bc: bare.ByteCursor, x: WorkflowHistory): void {
671
+ write4(bc, x.nameRegistry)
672
+ write5(bc, x.entries)
673
+ write6(bc, x.entryMetadata)
674
+ }
675
+
676
+ export function encodeWorkflowHistory(x: WorkflowHistory): Uint8Array {
677
+ const bc = new bare.ByteCursor(
678
+ new Uint8Array(config.initialBufferLength),
679
+ config
680
+ )
681
+ writeWorkflowHistory(bc, x)
682
+ return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset)
683
+ }
684
+
685
+ export function decodeWorkflowHistory(bytes: Uint8Array): WorkflowHistory {
686
+ const bc = new bare.ByteCursor(bytes, config)
687
+ const result = readWorkflowHistory(bc)
688
+ if (bc.offset < bc.view.byteLength) {
689
+ throw new bare.BareError(bc.offset, "remaining bytes")
690
+ }
691
+ return result
692
+ }
693
+
694
+
695
+ function assert(condition: boolean, message?: string): asserts condition {
696
+ if (!condition) throw new Error(message ?? "Assertion failed")
697
+ }