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,345 @@
1
+ import * as errors from "../errors";
2
+ import type { AnyDatabaseProvider } from "../database";
3
+ import type {
4
+ EventSchemaConfig,
5
+ InferQueueCompleteMap,
6
+ InferSchemaMap,
7
+ QueueSchemaConfig,
8
+ } from "../schema";
9
+ import { joinAbortSignals } from "../utils";
10
+ import type { QueueManager, QueueMessage } from "./queue-manager";
11
+
12
+ export type QueueMessageOf<Name extends string, Body> = Omit<
13
+ QueueMessage,
14
+ "name" | "body"
15
+ > & {
16
+ name: Name;
17
+ body: Body;
18
+ };
19
+
20
+ export type QueueName<TQueues extends QueueSchemaConfig> = keyof TQueues & string;
21
+ export type QueueFilterName<TQueues extends QueueSchemaConfig> =
22
+ keyof TQueues extends never ? string : QueueName<TQueues>;
23
+
24
+ type QueueMessageForName<
25
+ TQueues extends QueueSchemaConfig,
26
+ TName extends QueueFilterName<TQueues>,
27
+ > = keyof TQueues extends never
28
+ ? QueueMessage
29
+ : TName extends QueueName<TQueues>
30
+ ? QueueMessageOf<TName, InferSchemaMap<TQueues>[TName]>
31
+ : never;
32
+
33
+ type QueueCompleteArgs<T> = undefined extends T
34
+ ? [response?: T]
35
+ : [response: T];
36
+
37
+ type QueueCompleteArgsForName<
38
+ TQueues extends QueueSchemaConfig,
39
+ TName extends QueueFilterName<TQueues>,
40
+ > = keyof TQueues extends never
41
+ ? [response?: unknown]
42
+ : TName extends QueueName<TQueues>
43
+ ? [InferQueueCompleteMap<TQueues>[TName]] extends [never]
44
+ ? [response?: unknown]
45
+ : QueueCompleteArgs<InferQueueCompleteMap<TQueues>[TName]>
46
+ : [response?: unknown];
47
+
48
+ type QueueCompletableMessageForName<
49
+ TQueues extends QueueSchemaConfig,
50
+ TName extends QueueFilterName<TQueues>,
51
+ > = QueueMessageForName<TQueues, TName> & {
52
+ complete(
53
+ ...args: QueueCompleteArgsForName<TQueues, TName>
54
+ ): Promise<void>;
55
+ };
56
+
57
+ export type QueueResultMessageForName<
58
+ TQueues extends QueueSchemaConfig,
59
+ TName extends QueueFilterName<TQueues>,
60
+ TCompletable extends boolean,
61
+ > = TCompletable extends true
62
+ ? QueueCompletableMessageForName<TQueues, TName>
63
+ : QueueMessageForName<TQueues, TName>;
64
+
65
+ /** Options for receiving queue messages. */
66
+ export interface QueueNextOptions<
67
+ TName extends string = string,
68
+ TCompletable extends boolean = boolean,
69
+ > {
70
+ /** Queue names to receive from. If omitted, reads from all queue names. */
71
+ names?: readonly TName[];
72
+ /** Timeout in milliseconds. Omit to wait indefinitely. */
73
+ timeout?: number;
74
+ /** Optional abort signal for this receive call. */
75
+ signal?: AbortSignal;
76
+ /** Whether to return completable messages. */
77
+ completable?: TCompletable;
78
+ }
79
+
80
+ /** Options for receiving queue message batches. */
81
+ export interface QueueNextBatchOptions<
82
+ TName extends string = string,
83
+ TCompletable extends boolean = boolean,
84
+ > {
85
+ /** Queue names to receive from. If omitted, reads from all queue names. */
86
+ names?: readonly TName[];
87
+ /** Maximum number of messages to receive. Defaults to 1. */
88
+ count?: number;
89
+ /** Timeout in milliseconds. Omit to wait indefinitely. */
90
+ timeout?: number;
91
+ /** Optional abort signal for this receive call. */
92
+ signal?: AbortSignal;
93
+ /** Whether to return completable messages. */
94
+ completable?: TCompletable;
95
+ }
96
+
97
+ /** Options for non-blocking queue reads. */
98
+ export interface QueueTryNextOptions<
99
+ TName extends string = string,
100
+ TCompletable extends boolean = boolean,
101
+ > {
102
+ /** Queue names to receive from. If omitted, reads from all queue names. */
103
+ names?: readonly TName[];
104
+ /** Whether to return completable messages. */
105
+ completable?: TCompletable;
106
+ }
107
+
108
+ /** Options for non-blocking queue batch reads. */
109
+ export interface QueueTryNextBatchOptions<
110
+ TName extends string = string,
111
+ TCompletable extends boolean = boolean,
112
+ > {
113
+ /** Queue names to receive from. If omitted, reads from all queue names. */
114
+ names?: readonly TName[];
115
+ /** Maximum number of messages to receive. Defaults to 1. */
116
+ count?: number;
117
+ /** Whether to return completable messages. */
118
+ completable?: TCompletable;
119
+ }
120
+
121
+ /** Options for queue async iteration. */
122
+ export interface QueueIterOptions<
123
+ TName extends string = string,
124
+ TCompletable extends boolean = boolean,
125
+ > {
126
+ /** Queue names to receive from. If omitted, reads from all queue names. */
127
+ names?: readonly TName[];
128
+ /** Optional abort signal for this iterator. */
129
+ signal?: AbortSignal;
130
+ /** Whether to return completable messages. */
131
+ completable?: TCompletable;
132
+ }
133
+
134
+ /** User-facing queue interface exposed on ActorContext. */
135
+ export class ActorQueue<
136
+ S,
137
+ CP,
138
+ CS,
139
+ V,
140
+ I,
141
+ DB extends AnyDatabaseProvider,
142
+ TEvents extends EventSchemaConfig = Record<never, never>,
143
+ TQueues extends QueueSchemaConfig = Record<never, never>,
144
+ > {
145
+ #queueManager: QueueManager<S, CP, CS, V, I, DB, TEvents, TQueues>;
146
+ #abortSignal: AbortSignal;
147
+ #pendingCompletableMessageIds = new Set<string>();
148
+
149
+ constructor(
150
+ queueManager: QueueManager<S, CP, CS, V, I, DB, TEvents, TQueues>,
151
+ abortSignal: AbortSignal,
152
+ ) {
153
+ this.#queueManager = queueManager;
154
+ this.#abortSignal = abortSignal;
155
+ }
156
+
157
+ async next<
158
+ const TName extends QueueFilterName<TQueues>,
159
+ const TCompletable extends boolean = false,
160
+ >(
161
+ opts?: QueueNextOptions<TName, TCompletable>,
162
+ ): Promise<QueueResultMessageForName<TQueues, TName, TCompletable> | undefined> {
163
+ const resolvedOpts = (opts ?? {}) as QueueNextOptions<
164
+ TName,
165
+ TCompletable
166
+ >;
167
+ const messages = await this.nextBatch<TName, TCompletable>({
168
+ ...(resolvedOpts as QueueNextBatchOptions<TName, TCompletable>),
169
+ count: 1,
170
+ });
171
+ return messages[0];
172
+ }
173
+
174
+ async nextBatch<
175
+ const TName extends QueueFilterName<TQueues>,
176
+ const TCompletable extends boolean = false,
177
+ >(
178
+ opts?: QueueNextBatchOptions<TName, TCompletable>,
179
+ ): Promise<Array<QueueResultMessageForName<TQueues, TName, TCompletable>>> {
180
+ const resolvedOpts = (opts ?? {}) as QueueNextBatchOptions<
181
+ TName,
182
+ TCompletable
183
+ >;
184
+ const completable = resolvedOpts.completable === true;
185
+
186
+ if (this.#pendingCompletableMessageIds.size > 0) {
187
+ throw new errors.QueuePreviousMessageNotCompleted();
188
+ }
189
+
190
+ const names = this.#normalizeNames(resolvedOpts.names);
191
+ const count = Math.max(1, resolvedOpts.count ?? 1);
192
+ const { signal, cleanup } = joinAbortSignals(
193
+ this.#abortSignal,
194
+ resolvedOpts.signal,
195
+ );
196
+ const messages = await this.#queueManager
197
+ .receive(
198
+ names,
199
+ count,
200
+ resolvedOpts.timeout,
201
+ signal,
202
+ completable,
203
+ )
204
+ .finally(cleanup);
205
+ if (!completable) {
206
+ return messages as Array<
207
+ QueueResultMessageForName<TQueues, TName, TCompletable>
208
+ >;
209
+ }
210
+ return messages.map((message) => this.#makeCompletableMessage(message)) as unknown as Array<
211
+ QueueResultMessageForName<TQueues, TName, TCompletable>
212
+ >;
213
+ }
214
+
215
+ async tryNext<
216
+ const TName extends QueueFilterName<TQueues>,
217
+ const TCompletable extends boolean = false,
218
+ >(
219
+ opts?: QueueTryNextOptions<TName, TCompletable>,
220
+ ): Promise<QueueResultMessageForName<TQueues, TName, TCompletable> | undefined> {
221
+ const resolvedOpts = (opts ?? {}) as QueueTryNextOptions<
222
+ TName,
223
+ TCompletable
224
+ >;
225
+ const messages = await this.tryNextBatch<TName, TCompletable>({
226
+ ...(resolvedOpts as QueueTryNextBatchOptions<TName, TCompletable>),
227
+ count: 1,
228
+ });
229
+ return messages[0];
230
+ }
231
+
232
+ async tryNextBatch<
233
+ const TName extends QueueFilterName<TQueues>,
234
+ const TCompletable extends boolean = false,
235
+ >(
236
+ opts?: QueueTryNextBatchOptions<TName, TCompletable>,
237
+ ): Promise<Array<QueueResultMessageForName<TQueues, TName, TCompletable>>> {
238
+ const resolvedOpts = (opts ?? {}) as QueueTryNextBatchOptions<
239
+ TName,
240
+ TCompletable
241
+ >;
242
+ if (resolvedOpts.completable === true) {
243
+ return (await this.nextBatch<TName, true>({
244
+ names: resolvedOpts.names,
245
+ count: resolvedOpts.count,
246
+ timeout: 0,
247
+ completable: true,
248
+ })) as Array<QueueResultMessageForName<TQueues, TName, TCompletable>>;
249
+ }
250
+ return (await this.nextBatch<TName, false>({
251
+ names: resolvedOpts.names,
252
+ count: resolvedOpts.count,
253
+ timeout: 0,
254
+ })) as Array<QueueResultMessageForName<TQueues, TName, TCompletable>>;
255
+ }
256
+
257
+ async *iter<
258
+ const TName extends QueueFilterName<TQueues>,
259
+ const TCompletable extends boolean = false,
260
+ >(
261
+ opts?: QueueIterOptions<TName, TCompletable>,
262
+ ): AsyncIterableIterator<
263
+ QueueResultMessageForName<TQueues, TName, TCompletable>
264
+ > {
265
+ const resolvedOpts = (opts ?? {}) as QueueIterOptions<
266
+ TName,
267
+ TCompletable
268
+ >;
269
+ while (!this.#abortSignal.aborted) {
270
+ try {
271
+ const message = resolvedOpts.completable === true
272
+ ? await this.next<TName, true>({
273
+ names: resolvedOpts.names,
274
+ signal: resolvedOpts.signal,
275
+ completable: true,
276
+ })
277
+ : await this.next<TName, false>({
278
+ names: resolvedOpts.names,
279
+ signal: resolvedOpts.signal,
280
+ });
281
+ if (!message) {
282
+ continue;
283
+ }
284
+ yield message as QueueResultMessageForName<
285
+ TQueues,
286
+ TName,
287
+ TCompletable
288
+ >;
289
+ } catch (error) {
290
+ if (error instanceof errors.ActorAborted) {
291
+ return;
292
+ }
293
+ throw error;
294
+ }
295
+ }
296
+ }
297
+
298
+ /** Sends a message to the specified queue. */
299
+ send<K extends keyof TQueues & string>(
300
+ name: K,
301
+ body: InferSchemaMap<TQueues>[K],
302
+ ): Promise<QueueMessage>;
303
+ send(
304
+ name: keyof TQueues extends never ? string : never,
305
+ body: unknown,
306
+ ): Promise<QueueMessage>;
307
+ async send(name: string, body: unknown): Promise<QueueMessage> {
308
+ return await this.#queueManager.enqueue(name, body);
309
+ }
310
+
311
+ #normalizeNames(names: readonly string[] | undefined): string[] | undefined {
312
+ if (!names || names.length === 0) {
313
+ return undefined;
314
+ }
315
+ return [...new Set(names)];
316
+ }
317
+
318
+ #makeCompletableMessage(
319
+ message: QueueMessage,
320
+ ): QueueMessage & {
321
+ complete: (response?: unknown) => Promise<void>;
322
+ } {
323
+ const messageId = message.id.toString();
324
+ this.#pendingCompletableMessageIds.add(messageId);
325
+
326
+ let completed = false;
327
+ const completableMessage = {
328
+ ...message,
329
+ complete: async (response?: unknown) => {
330
+ if (completed) {
331
+ throw new errors.QueueAlreadyCompleted();
332
+ }
333
+ completed = true;
334
+ try {
335
+ await this.#queueManager.completeMessage(message, response);
336
+ this.#pendingCompletableMessageIds.delete(messageId);
337
+ } catch (error) {
338
+ completed = false;
339
+ throw error;
340
+ }
341
+ },
342
+ };
343
+ return completableMessage;
344
+ }
345
+ }