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,280 @@
1
+ // @generated - post-processed by compile-bare.ts
2
+
3
+ import * as bare from "@rivetkit/bare-ts"
4
+
5
+ const config = /* @__PURE__ */ bare.Config({})
6
+
7
+ export type i64 = bigint
8
+ export type u16 = number
9
+
10
+ export type GatewayId = ArrayBuffer
11
+
12
+ export function readGatewayId(bc: bare.ByteCursor): GatewayId {
13
+ return bare.readFixedData(bc, 4)
14
+ }
15
+
16
+ export function writeGatewayId(bc: bare.ByteCursor, x: GatewayId): void {
17
+ assert(x.byteLength === 4)
18
+ bare.writeFixedData(bc, x)
19
+ }
20
+
21
+ export type RequestId = ArrayBuffer
22
+
23
+ export function readRequestId(bc: bare.ByteCursor): RequestId {
24
+ return bare.readFixedData(bc, 4)
25
+ }
26
+
27
+ export function writeRequestId(bc: bare.ByteCursor, x: RequestId): void {
28
+ assert(x.byteLength === 4)
29
+ bare.writeFixedData(bc, x)
30
+ }
31
+
32
+ export type MessageIndex = u16
33
+
34
+ export function readMessageIndex(bc: bare.ByteCursor): MessageIndex {
35
+ return bare.readU16(bc)
36
+ }
37
+
38
+ export function writeMessageIndex(bc: bare.ByteCursor, x: MessageIndex): void {
39
+ bare.writeU16(bc, x)
40
+ }
41
+
42
+ export function encodeMessageIndex(x: MessageIndex): Uint8Array {
43
+ const bc = new bare.ByteCursor(
44
+ new Uint8Array(config.initialBufferLength),
45
+ config
46
+ )
47
+ writeMessageIndex(bc, x)
48
+ return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset)
49
+ }
50
+
51
+ export function decodeMessageIndex(bytes: Uint8Array): MessageIndex {
52
+ const bc = new bare.ByteCursor(bytes, config)
53
+ const result = readMessageIndex(bc)
54
+ if (bc.offset < bc.view.byteLength) {
55
+ throw new bare.BareError(bc.offset, "remaining bytes")
56
+ }
57
+ return result
58
+ }
59
+
60
+ export type Cbor = ArrayBuffer
61
+
62
+ export function readCbor(bc: bare.ByteCursor): Cbor {
63
+ return bare.readData(bc)
64
+ }
65
+
66
+ export function writeCbor(bc: bare.ByteCursor, x: Cbor): void {
67
+ bare.writeData(bc, x)
68
+ }
69
+
70
+ export type Subscription = {
71
+ readonly eventName: string,
72
+ }
73
+
74
+ export function readSubscription(bc: bare.ByteCursor): Subscription {
75
+ return {
76
+ eventName: bare.readString(bc),
77
+ }
78
+ }
79
+
80
+ export function writeSubscription(bc: bare.ByteCursor, x: Subscription): void {
81
+ bare.writeString(bc, x.eventName)
82
+ }
83
+
84
+ function read0(bc: bare.ByteCursor): readonly Subscription[] {
85
+ const len = bare.readUintSafe(bc)
86
+ if (len === 0) { return [] }
87
+ const result = [readSubscription(bc)]
88
+ for (let i = 1; i < len; i++) {
89
+ result[i] = readSubscription(bc)
90
+ }
91
+ return result
92
+ }
93
+
94
+ function write0(bc: bare.ByteCursor, x: readonly Subscription[]): void {
95
+ bare.writeUintSafe(bc, x.length)
96
+ for (let i = 0; i < x.length; i++) {
97
+ writeSubscription(bc, x[i])
98
+ }
99
+ }
100
+
101
+ function read1(bc: bare.ByteCursor): ReadonlyMap<string, string> {
102
+ const len = bare.readUintSafe(bc)
103
+ const result = new Map<string, string>()
104
+ for (let i = 0; i < len; i++) {
105
+ const offset = bc.offset
106
+ const key = bare.readString(bc)
107
+ if (result.has(key)) {
108
+ bc.offset = offset
109
+ throw new bare.BareError(offset, "duplicated key")
110
+ }
111
+ result.set(key, bare.readString(bc))
112
+ }
113
+ return result
114
+ }
115
+
116
+ function write1(bc: bare.ByteCursor, x: ReadonlyMap<string, string>): void {
117
+ bare.writeUintSafe(bc, x.size)
118
+ for(const kv of x) {
119
+ bare.writeString(bc, kv[0])
120
+ bare.writeString(bc, kv[1])
121
+ }
122
+ }
123
+
124
+ export type Conn = {
125
+ readonly id: string,
126
+ readonly parameters: Cbor,
127
+ readonly state: Cbor,
128
+ readonly subscriptions: readonly Subscription[],
129
+ readonly gatewayId: GatewayId,
130
+ readonly requestId: RequestId,
131
+ readonly serverMessageIndex: u16,
132
+ readonly clientMessageIndex: u16,
133
+ readonly requestPath: string,
134
+ readonly requestHeaders: ReadonlyMap<string, string>,
135
+ }
136
+
137
+ export function readConn(bc: bare.ByteCursor): Conn {
138
+ return {
139
+ id: bare.readString(bc),
140
+ parameters: readCbor(bc),
141
+ state: readCbor(bc),
142
+ subscriptions: read0(bc),
143
+ gatewayId: readGatewayId(bc),
144
+ requestId: readRequestId(bc),
145
+ serverMessageIndex: bare.readU16(bc),
146
+ clientMessageIndex: bare.readU16(bc),
147
+ requestPath: bare.readString(bc),
148
+ requestHeaders: read1(bc),
149
+ }
150
+ }
151
+
152
+ export function writeConn(bc: bare.ByteCursor, x: Conn): void {
153
+ bare.writeString(bc, x.id)
154
+ writeCbor(bc, x.parameters)
155
+ writeCbor(bc, x.state)
156
+ write0(bc, x.subscriptions)
157
+ writeGatewayId(bc, x.gatewayId)
158
+ writeRequestId(bc, x.requestId)
159
+ bare.writeU16(bc, x.serverMessageIndex)
160
+ bare.writeU16(bc, x.clientMessageIndex)
161
+ bare.writeString(bc, x.requestPath)
162
+ write1(bc, x.requestHeaders)
163
+ }
164
+
165
+ export function encodeConn(x: Conn): Uint8Array {
166
+ const bc = new bare.ByteCursor(
167
+ new Uint8Array(config.initialBufferLength),
168
+ config
169
+ )
170
+ writeConn(bc, x)
171
+ return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset)
172
+ }
173
+
174
+ export function decodeConn(bytes: Uint8Array): Conn {
175
+ const bc = new bare.ByteCursor(bytes, config)
176
+ const result = readConn(bc)
177
+ if (bc.offset < bc.view.byteLength) {
178
+ throw new bare.BareError(bc.offset, "remaining bytes")
179
+ }
180
+ return result
181
+ }
182
+
183
+ function read2(bc: bare.ByteCursor): Cbor | null {
184
+ return bare.readBool(bc)
185
+ ? readCbor(bc)
186
+ : null
187
+ }
188
+
189
+ function write2(bc: bare.ByteCursor, x: Cbor | null): void {
190
+ bare.writeBool(bc, x !== null)
191
+ if (x !== null) {
192
+ writeCbor(bc, x)
193
+ }
194
+ }
195
+
196
+ export type ScheduleEvent = {
197
+ readonly eventId: string,
198
+ readonly timestamp: i64,
199
+ readonly action: string,
200
+ readonly args: Cbor | null,
201
+ }
202
+
203
+ export function readScheduleEvent(bc: bare.ByteCursor): ScheduleEvent {
204
+ return {
205
+ eventId: bare.readString(bc),
206
+ timestamp: bare.readI64(bc),
207
+ action: bare.readString(bc),
208
+ args: read2(bc),
209
+ }
210
+ }
211
+
212
+ export function writeScheduleEvent(bc: bare.ByteCursor, x: ScheduleEvent): void {
213
+ bare.writeString(bc, x.eventId)
214
+ bare.writeI64(bc, x.timestamp)
215
+ bare.writeString(bc, x.action)
216
+ write2(bc, x.args)
217
+ }
218
+
219
+ function read3(bc: bare.ByteCursor): readonly ScheduleEvent[] {
220
+ const len = bare.readUintSafe(bc)
221
+ if (len === 0) { return [] }
222
+ const result = [readScheduleEvent(bc)]
223
+ for (let i = 1; i < len; i++) {
224
+ result[i] = readScheduleEvent(bc)
225
+ }
226
+ return result
227
+ }
228
+
229
+ function write3(bc: bare.ByteCursor, x: readonly ScheduleEvent[]): void {
230
+ bare.writeUintSafe(bc, x.length)
231
+ for (let i = 0; i < x.length; i++) {
232
+ writeScheduleEvent(bc, x[i])
233
+ }
234
+ }
235
+
236
+ export type Actor = {
237
+ readonly input: Cbor | null,
238
+ readonly hasInitialized: boolean,
239
+ readonly state: Cbor,
240
+ readonly scheduledEvents: readonly ScheduleEvent[],
241
+ }
242
+
243
+ export function readActor(bc: bare.ByteCursor): Actor {
244
+ return {
245
+ input: read2(bc),
246
+ hasInitialized: bare.readBool(bc),
247
+ state: readCbor(bc),
248
+ scheduledEvents: read3(bc),
249
+ }
250
+ }
251
+
252
+ export function writeActor(bc: bare.ByteCursor, x: Actor): void {
253
+ write2(bc, x.input)
254
+ bare.writeBool(bc, x.hasInitialized)
255
+ writeCbor(bc, x.state)
256
+ write3(bc, x.scheduledEvents)
257
+ }
258
+
259
+ export function encodeActor(x: Actor): Uint8Array {
260
+ const bc = new bare.ByteCursor(
261
+ new Uint8Array(config.initialBufferLength),
262
+ config
263
+ )
264
+ writeActor(bc, x)
265
+ return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset)
266
+ }
267
+
268
+ export function decodeActor(bytes: Uint8Array): Actor {
269
+ const bc = new bare.ByteCursor(bytes, config)
270
+ const result = readActor(bc)
271
+ if (bc.offset < bc.view.byteLength) {
272
+ throw new bare.BareError(bc.offset, "remaining bytes")
273
+ }
274
+ return result
275
+ }
276
+
277
+
278
+ function assert(condition: boolean, message?: string): asserts condition {
279
+ if (!condition) throw new Error(message ?? "Assertion failed")
280
+ }
@@ -0,0 +1,406 @@
1
+ // @generated - post-processed by compile-bare.ts
2
+
3
+ import * as bare from "@rivetkit/bare-ts"
4
+
5
+ const config = /* @__PURE__ */ bare.Config({})
6
+
7
+ export type i64 = bigint
8
+ export type u16 = number
9
+ export type u32 = number
10
+ export type u64 = bigint
11
+
12
+ export type GatewayId = ArrayBuffer
13
+
14
+ export function readGatewayId(bc: bare.ByteCursor): GatewayId {
15
+ return bare.readFixedData(bc, 4)
16
+ }
17
+
18
+ export function writeGatewayId(bc: bare.ByteCursor, x: GatewayId): void {
19
+ assert(x.byteLength === 4)
20
+ bare.writeFixedData(bc, x)
21
+ }
22
+
23
+ export type RequestId = ArrayBuffer
24
+
25
+ export function readRequestId(bc: bare.ByteCursor): RequestId {
26
+ return bare.readFixedData(bc, 4)
27
+ }
28
+
29
+ export function writeRequestId(bc: bare.ByteCursor, x: RequestId): void {
30
+ assert(x.byteLength === 4)
31
+ bare.writeFixedData(bc, x)
32
+ }
33
+
34
+ export type MessageIndex = u16
35
+
36
+ export function readMessageIndex(bc: bare.ByteCursor): MessageIndex {
37
+ return bare.readU16(bc)
38
+ }
39
+
40
+ export function writeMessageIndex(bc: bare.ByteCursor, x: MessageIndex): void {
41
+ bare.writeU16(bc, x)
42
+ }
43
+
44
+ export function encodeMessageIndex(x: MessageIndex): Uint8Array {
45
+ const bc = new bare.ByteCursor(
46
+ new Uint8Array(config.initialBufferLength),
47
+ config
48
+ )
49
+ writeMessageIndex(bc, x)
50
+ return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset)
51
+ }
52
+
53
+ export function decodeMessageIndex(bytes: Uint8Array): MessageIndex {
54
+ const bc = new bare.ByteCursor(bytes, config)
55
+ const result = readMessageIndex(bc)
56
+ if (bc.offset < bc.view.byteLength) {
57
+ throw new bare.BareError(bc.offset, "remaining bytes")
58
+ }
59
+ return result
60
+ }
61
+
62
+ export type Cbor = ArrayBuffer
63
+
64
+ export function readCbor(bc: bare.ByteCursor): Cbor {
65
+ return bare.readData(bc)
66
+ }
67
+
68
+ export function writeCbor(bc: bare.ByteCursor, x: Cbor): void {
69
+ bare.writeData(bc, x)
70
+ }
71
+
72
+ export type Subscription = {
73
+ readonly eventName: string,
74
+ }
75
+
76
+ export function readSubscription(bc: bare.ByteCursor): Subscription {
77
+ return {
78
+ eventName: bare.readString(bc),
79
+ }
80
+ }
81
+
82
+ export function writeSubscription(bc: bare.ByteCursor, x: Subscription): void {
83
+ bare.writeString(bc, x.eventName)
84
+ }
85
+
86
+ function read0(bc: bare.ByteCursor): readonly Subscription[] {
87
+ const len = bare.readUintSafe(bc)
88
+ if (len === 0) { return [] }
89
+ const result = [readSubscription(bc)]
90
+ for (let i = 1; i < len; i++) {
91
+ result[i] = readSubscription(bc)
92
+ }
93
+ return result
94
+ }
95
+
96
+ function write0(bc: bare.ByteCursor, x: readonly Subscription[]): void {
97
+ bare.writeUintSafe(bc, x.length)
98
+ for (let i = 0; i < x.length; i++) {
99
+ writeSubscription(bc, x[i])
100
+ }
101
+ }
102
+
103
+ function read1(bc: bare.ByteCursor): ReadonlyMap<string, string> {
104
+ const len = bare.readUintSafe(bc)
105
+ const result = new Map<string, string>()
106
+ for (let i = 0; i < len; i++) {
107
+ const offset = bc.offset
108
+ const key = bare.readString(bc)
109
+ if (result.has(key)) {
110
+ bc.offset = offset
111
+ throw new bare.BareError(offset, "duplicated key")
112
+ }
113
+ result.set(key, bare.readString(bc))
114
+ }
115
+ return result
116
+ }
117
+
118
+ function write1(bc: bare.ByteCursor, x: ReadonlyMap<string, string>): void {
119
+ bare.writeUintSafe(bc, x.size)
120
+ for(const kv of x) {
121
+ bare.writeString(bc, kv[0])
122
+ bare.writeString(bc, kv[1])
123
+ }
124
+ }
125
+
126
+ export type Conn = {
127
+ readonly id: string,
128
+ readonly parameters: Cbor,
129
+ readonly state: Cbor,
130
+ readonly subscriptions: readonly Subscription[],
131
+ readonly gatewayId: GatewayId,
132
+ readonly requestId: RequestId,
133
+ readonly serverMessageIndex: u16,
134
+ readonly clientMessageIndex: u16,
135
+ readonly requestPath: string,
136
+ readonly requestHeaders: ReadonlyMap<string, string>,
137
+ }
138
+
139
+ export function readConn(bc: bare.ByteCursor): Conn {
140
+ return {
141
+ id: bare.readString(bc),
142
+ parameters: readCbor(bc),
143
+ state: readCbor(bc),
144
+ subscriptions: read0(bc),
145
+ gatewayId: readGatewayId(bc),
146
+ requestId: readRequestId(bc),
147
+ serverMessageIndex: bare.readU16(bc),
148
+ clientMessageIndex: bare.readU16(bc),
149
+ requestPath: bare.readString(bc),
150
+ requestHeaders: read1(bc),
151
+ }
152
+ }
153
+
154
+ export function writeConn(bc: bare.ByteCursor, x: Conn): void {
155
+ bare.writeString(bc, x.id)
156
+ writeCbor(bc, x.parameters)
157
+ writeCbor(bc, x.state)
158
+ write0(bc, x.subscriptions)
159
+ writeGatewayId(bc, x.gatewayId)
160
+ writeRequestId(bc, x.requestId)
161
+ bare.writeU16(bc, x.serverMessageIndex)
162
+ bare.writeU16(bc, x.clientMessageIndex)
163
+ bare.writeString(bc, x.requestPath)
164
+ write1(bc, x.requestHeaders)
165
+ }
166
+
167
+ export function encodeConn(x: Conn): Uint8Array {
168
+ const bc = new bare.ByteCursor(
169
+ new Uint8Array(config.initialBufferLength),
170
+ config
171
+ )
172
+ writeConn(bc, x)
173
+ return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset)
174
+ }
175
+
176
+ export function decodeConn(bytes: Uint8Array): Conn {
177
+ const bc = new bare.ByteCursor(bytes, config)
178
+ const result = readConn(bc)
179
+ if (bc.offset < bc.view.byteLength) {
180
+ throw new bare.BareError(bc.offset, "remaining bytes")
181
+ }
182
+ return result
183
+ }
184
+
185
+ function read2(bc: bare.ByteCursor): Cbor | null {
186
+ return bare.readBool(bc)
187
+ ? readCbor(bc)
188
+ : null
189
+ }
190
+
191
+ function write2(bc: bare.ByteCursor, x: Cbor | null): void {
192
+ bare.writeBool(bc, x !== null)
193
+ if (x !== null) {
194
+ writeCbor(bc, x)
195
+ }
196
+ }
197
+
198
+ export type ScheduleEvent = {
199
+ readonly eventId: string,
200
+ readonly timestamp: i64,
201
+ readonly action: string,
202
+ readonly args: Cbor | null,
203
+ }
204
+
205
+ export function readScheduleEvent(bc: bare.ByteCursor): ScheduleEvent {
206
+ return {
207
+ eventId: bare.readString(bc),
208
+ timestamp: bare.readI64(bc),
209
+ action: bare.readString(bc),
210
+ args: read2(bc),
211
+ }
212
+ }
213
+
214
+ export function writeScheduleEvent(bc: bare.ByteCursor, x: ScheduleEvent): void {
215
+ bare.writeString(bc, x.eventId)
216
+ bare.writeI64(bc, x.timestamp)
217
+ bare.writeString(bc, x.action)
218
+ write2(bc, x.args)
219
+ }
220
+
221
+ function read3(bc: bare.ByteCursor): readonly ScheduleEvent[] {
222
+ const len = bare.readUintSafe(bc)
223
+ if (len === 0) { return [] }
224
+ const result = [readScheduleEvent(bc)]
225
+ for (let i = 1; i < len; i++) {
226
+ result[i] = readScheduleEvent(bc)
227
+ }
228
+ return result
229
+ }
230
+
231
+ function write3(bc: bare.ByteCursor, x: readonly ScheduleEvent[]): void {
232
+ bare.writeUintSafe(bc, x.length)
233
+ for (let i = 0; i < x.length; i++) {
234
+ writeScheduleEvent(bc, x[i])
235
+ }
236
+ }
237
+
238
+ export type Actor = {
239
+ readonly input: Cbor | null,
240
+ readonly hasInitialized: boolean,
241
+ readonly state: Cbor,
242
+ readonly scheduledEvents: readonly ScheduleEvent[],
243
+ }
244
+
245
+ export function readActor(bc: bare.ByteCursor): Actor {
246
+ return {
247
+ input: read2(bc),
248
+ hasInitialized: bare.readBool(bc),
249
+ state: readCbor(bc),
250
+ scheduledEvents: read3(bc),
251
+ }
252
+ }
253
+
254
+ export function writeActor(bc: bare.ByteCursor, x: Actor): void {
255
+ write2(bc, x.input)
256
+ bare.writeBool(bc, x.hasInitialized)
257
+ writeCbor(bc, x.state)
258
+ write3(bc, x.scheduledEvents)
259
+ }
260
+
261
+ export function encodeActor(x: Actor): Uint8Array {
262
+ const bc = new bare.ByteCursor(
263
+ new Uint8Array(config.initialBufferLength),
264
+ config
265
+ )
266
+ writeActor(bc, x)
267
+ return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset)
268
+ }
269
+
270
+ export function decodeActor(bytes: Uint8Array): Actor {
271
+ const bc = new bare.ByteCursor(bytes, config)
272
+ const result = readActor(bc)
273
+ if (bc.offset < bc.view.byteLength) {
274
+ throw new bare.BareError(bc.offset, "remaining bytes")
275
+ }
276
+ return result
277
+ }
278
+
279
+ export type QueueMetadata = {
280
+ readonly nextId: u64,
281
+ readonly size: u32,
282
+ }
283
+
284
+ export function readQueueMetadata(bc: bare.ByteCursor): QueueMetadata {
285
+ return {
286
+ nextId: bare.readU64(bc),
287
+ size: bare.readU32(bc),
288
+ }
289
+ }
290
+
291
+ export function writeQueueMetadata(bc: bare.ByteCursor, x: QueueMetadata): void {
292
+ bare.writeU64(bc, x.nextId)
293
+ bare.writeU32(bc, x.size)
294
+ }
295
+
296
+ export function encodeQueueMetadata(x: QueueMetadata): Uint8Array {
297
+ const bc = new bare.ByteCursor(
298
+ new Uint8Array(config.initialBufferLength),
299
+ config
300
+ )
301
+ writeQueueMetadata(bc, x)
302
+ return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset)
303
+ }
304
+
305
+ export function decodeQueueMetadata(bytes: Uint8Array): QueueMetadata {
306
+ const bc = new bare.ByteCursor(bytes, config)
307
+ const result = readQueueMetadata(bc)
308
+ if (bc.offset < bc.view.byteLength) {
309
+ throw new bare.BareError(bc.offset, "remaining bytes")
310
+ }
311
+ return result
312
+ }
313
+
314
+ function read4(bc: bare.ByteCursor): u32 | null {
315
+ return bare.readBool(bc)
316
+ ? bare.readU32(bc)
317
+ : null
318
+ }
319
+
320
+ function write4(bc: bare.ByteCursor, x: u32 | null): void {
321
+ bare.writeBool(bc, x !== null)
322
+ if (x !== null) {
323
+ bare.writeU32(bc, x)
324
+ }
325
+ }
326
+
327
+ function read5(bc: bare.ByteCursor): i64 | null {
328
+ return bare.readBool(bc)
329
+ ? bare.readI64(bc)
330
+ : null
331
+ }
332
+
333
+ function write5(bc: bare.ByteCursor, x: i64 | null): void {
334
+ bare.writeBool(bc, x !== null)
335
+ if (x !== null) {
336
+ bare.writeI64(bc, x)
337
+ }
338
+ }
339
+
340
+ function read6(bc: bare.ByteCursor): boolean | null {
341
+ return bare.readBool(bc)
342
+ ? bare.readBool(bc)
343
+ : null
344
+ }
345
+
346
+ function write6(bc: bare.ByteCursor, x: boolean | null): void {
347
+ bare.writeBool(bc, x !== null)
348
+ if (x !== null) {
349
+ bare.writeBool(bc, x)
350
+ }
351
+ }
352
+
353
+ export type QueueMessage = {
354
+ readonly name: string,
355
+ readonly body: Cbor,
356
+ readonly createdAt: i64,
357
+ readonly failureCount: u32 | null,
358
+ readonly availableAt: i64 | null,
359
+ readonly inFlight: boolean | null,
360
+ readonly inFlightAt: i64 | null,
361
+ }
362
+
363
+ export function readQueueMessage(bc: bare.ByteCursor): QueueMessage {
364
+ return {
365
+ name: bare.readString(bc),
366
+ body: readCbor(bc),
367
+ createdAt: bare.readI64(bc),
368
+ failureCount: read4(bc),
369
+ availableAt: read5(bc),
370
+ inFlight: read6(bc),
371
+ inFlightAt: read5(bc),
372
+ }
373
+ }
374
+
375
+ export function writeQueueMessage(bc: bare.ByteCursor, x: QueueMessage): void {
376
+ bare.writeString(bc, x.name)
377
+ writeCbor(bc, x.body)
378
+ bare.writeI64(bc, x.createdAt)
379
+ write4(bc, x.failureCount)
380
+ write5(bc, x.availableAt)
381
+ write6(bc, x.inFlight)
382
+ write5(bc, x.inFlightAt)
383
+ }
384
+
385
+ export function encodeQueueMessage(x: QueueMessage): Uint8Array {
386
+ const bc = new bare.ByteCursor(
387
+ new Uint8Array(config.initialBufferLength),
388
+ config
389
+ )
390
+ writeQueueMessage(bc, x)
391
+ return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset)
392
+ }
393
+
394
+ export function decodeQueueMessage(bytes: Uint8Array): QueueMessage {
395
+ const bc = new bare.ByteCursor(bytes, config)
396
+ const result = readQueueMessage(bc)
397
+ if (bc.offset < bc.view.byteLength) {
398
+ throw new bare.BareError(bc.offset, "remaining bytes")
399
+ }
400
+ return result
401
+ }
402
+
403
+
404
+ function assert(condition: boolean, message?: string): asserts condition {
405
+ if (!condition) throw new Error(message ?? "Assertion failed")
406
+ }