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,645 @@
1
+ import {
2
+ WORKFLOW_GUARD_KV_KEY,
3
+ workflow
4
+ } from "./chunk-WMPW7JYC.js";
5
+ import {
6
+ actor,
7
+ queue
8
+ } from "./chunk-QUD664YZ.js";
9
+ import {
10
+ db
11
+ } from "./chunk-KJSYAUOM.js";
12
+ import {
13
+ getLogger,
14
+ promiseWithResolvers
15
+ } from "./chunk-325TLXJT.js";
16
+
17
+ // src/driver-test-suite/log.ts
18
+ function logger() {
19
+ return getLogger("test-suite");
20
+ }
21
+
22
+ // fixtures/driver-test-suite/hibernation.ts
23
+ var HIBERNATION_SLEEP_TIMEOUT = 500;
24
+ var hibernationActor = actor({
25
+ state: {
26
+ sleepCount: 0,
27
+ wakeCount: 0
28
+ },
29
+ createConnState: (c) => {
30
+ return {
31
+ count: 0,
32
+ connectCount: 0,
33
+ disconnectCount: 0
34
+ };
35
+ },
36
+ onWake: (c) => {
37
+ c.state.wakeCount += 1;
38
+ },
39
+ onSleep: (c) => {
40
+ c.state.sleepCount += 1;
41
+ },
42
+ onConnect: (c, conn) => {
43
+ conn.state.connectCount += 1;
44
+ },
45
+ onDisconnect: (c, conn) => {
46
+ conn.state.disconnectCount += 1;
47
+ },
48
+ actions: {
49
+ // Basic RPC that returns a simple value
50
+ ping: (c) => {
51
+ return "pong";
52
+ },
53
+ // Increment the connection's count
54
+ connIncrement: (c) => {
55
+ c.conn.state.count += 1;
56
+ return c.conn.state.count;
57
+ },
58
+ // Get the connection's count
59
+ getConnCount: (c) => {
60
+ return c.conn.state.count;
61
+ },
62
+ // Get the connection's lifecycle counts
63
+ getConnLifecycleCounts: (c) => {
64
+ return {
65
+ connectCount: c.conn.state.connectCount,
66
+ disconnectCount: c.conn.state.disconnectCount
67
+ };
68
+ },
69
+ // Get all connection IDs
70
+ getConnectionIds: (c) => {
71
+ return c.conns.entries().map((x) => x[0]).toArray();
72
+ },
73
+ // Get actor sleep/wake counts
74
+ getActorCounts: (c) => {
75
+ return {
76
+ sleepCount: c.state.sleepCount,
77
+ wakeCount: c.state.wakeCount
78
+ };
79
+ },
80
+ // Trigger sleep
81
+ triggerSleep: (c) => {
82
+ c.sleep();
83
+ }
84
+ },
85
+ options: {
86
+ sleepTimeout: HIBERNATION_SLEEP_TIMEOUT
87
+ }
88
+ });
89
+
90
+ // fixtures/driver-test-suite/sleep.ts
91
+ var SLEEP_TIMEOUT = 1e3;
92
+ var sleep = actor({
93
+ state: { startCount: 0, sleepCount: 0 },
94
+ onWake: (c) => {
95
+ c.state.startCount += 1;
96
+ },
97
+ onSleep: (c) => {
98
+ c.state.sleepCount += 1;
99
+ },
100
+ actions: {
101
+ triggerSleep: (c) => {
102
+ c.sleep();
103
+ },
104
+ getCounts: (c) => {
105
+ return {
106
+ startCount: c.state.startCount,
107
+ sleepCount: c.state.sleepCount
108
+ };
109
+ },
110
+ setAlarm: async (c, duration) => {
111
+ await c.schedule.after(duration, "onAlarm");
112
+ },
113
+ onAlarm: (c) => {
114
+ c.log.info("alarm called");
115
+ }
116
+ },
117
+ options: {
118
+ sleepTimeout: SLEEP_TIMEOUT
119
+ }
120
+ });
121
+ var sleepWithLongRpc = actor({
122
+ state: { startCount: 0, sleepCount: 0 },
123
+ createVars: () => ({}),
124
+ onWake: (c) => {
125
+ c.state.startCount += 1;
126
+ },
127
+ onSleep: (c) => {
128
+ c.state.sleepCount += 1;
129
+ },
130
+ actions: {
131
+ getCounts: (c) => {
132
+ return {
133
+ startCount: c.state.startCount,
134
+ sleepCount: c.state.sleepCount
135
+ };
136
+ },
137
+ longRunningRpc: async (c) => {
138
+ c.log.info("starting long running rpc");
139
+ c.vars.longRunningResolve = promiseWithResolvers((reason) => c.log.warn({ msg: "unhandled long running rpc rejection", reason }));
140
+ c.broadcast("waiting");
141
+ await c.vars.longRunningResolve.promise;
142
+ c.log.info("finished long running rpc");
143
+ },
144
+ finishLongRunningRpc: (c) => {
145
+ var _a;
146
+ return (_a = c.vars.longRunningResolve) == null ? void 0 : _a.resolve();
147
+ }
148
+ },
149
+ options: {
150
+ sleepTimeout: SLEEP_TIMEOUT
151
+ }
152
+ });
153
+ var sleepWithRawHttp = actor({
154
+ state: { startCount: 0, sleepCount: 0, requestCount: 0 },
155
+ onWake: (c) => {
156
+ c.state.startCount += 1;
157
+ },
158
+ onSleep: (c) => {
159
+ c.state.sleepCount += 1;
160
+ },
161
+ onRequest: async (c, request) => {
162
+ c.state.requestCount += 1;
163
+ const url = new URL(request.url);
164
+ if (url.pathname === "/long-request") {
165
+ const duration = parseInt(
166
+ url.searchParams.get("duration") || "1000"
167
+ );
168
+ c.log.info({ msg: "starting long fetch request", duration });
169
+ await new Promise((resolve) => setTimeout(resolve, duration));
170
+ c.log.info("finished long fetch request");
171
+ return new Response(JSON.stringify({ completed: true }), {
172
+ headers: { "Content-Type": "application/json" }
173
+ });
174
+ }
175
+ return new Response("Not Found", { status: 404 });
176
+ },
177
+ actions: {
178
+ getCounts: (c) => {
179
+ return {
180
+ startCount: c.state.startCount,
181
+ sleepCount: c.state.sleepCount,
182
+ requestCount: c.state.requestCount
183
+ };
184
+ }
185
+ },
186
+ options: {
187
+ sleepTimeout: SLEEP_TIMEOUT
188
+ }
189
+ });
190
+ var sleepWithRawWebSocket = actor({
191
+ state: { startCount: 0, sleepCount: 0, connectionCount: 0 },
192
+ onWake: (c) => {
193
+ c.state.startCount += 1;
194
+ },
195
+ onSleep: (c) => {
196
+ c.state.sleepCount += 1;
197
+ },
198
+ onWebSocket: (c, websocket) => {
199
+ c.state.connectionCount += 1;
200
+ c.log.info({
201
+ msg: "websocket connected",
202
+ connectionCount: c.state.connectionCount
203
+ });
204
+ websocket.send(
205
+ JSON.stringify({
206
+ type: "connected",
207
+ connectionCount: c.state.connectionCount
208
+ })
209
+ );
210
+ websocket.addEventListener("message", (event) => {
211
+ const data = event.data;
212
+ if (typeof data === "string") {
213
+ try {
214
+ const parsed = JSON.parse(data);
215
+ if (parsed.type === "getCounts") {
216
+ websocket.send(
217
+ JSON.stringify({
218
+ type: "counts",
219
+ startCount: c.state.startCount,
220
+ sleepCount: c.state.sleepCount,
221
+ connectionCount: c.state.connectionCount
222
+ })
223
+ );
224
+ } else if (parsed.type === "keepAlive") {
225
+ websocket.send(JSON.stringify({ type: "ack" }));
226
+ }
227
+ } catch {
228
+ websocket.send(data);
229
+ }
230
+ }
231
+ });
232
+ websocket.addEventListener("close", () => {
233
+ c.state.connectionCount -= 1;
234
+ c.log.info({
235
+ msg: "websocket disconnected",
236
+ connectionCount: c.state.connectionCount
237
+ });
238
+ });
239
+ },
240
+ actions: {
241
+ getCounts: (c) => {
242
+ return {
243
+ startCount: c.state.startCount,
244
+ sleepCount: c.state.sleepCount,
245
+ connectionCount: c.state.connectionCount
246
+ };
247
+ }
248
+ },
249
+ options: {
250
+ sleepTimeout: SLEEP_TIMEOUT
251
+ }
252
+ });
253
+ var sleepWithNoSleepOption = actor({
254
+ state: { startCount: 0, sleepCount: 0 },
255
+ onWake: (c) => {
256
+ c.state.startCount += 1;
257
+ },
258
+ onSleep: (c) => {
259
+ c.state.sleepCount += 1;
260
+ },
261
+ actions: {
262
+ getCounts: (c) => {
263
+ return {
264
+ startCount: c.state.startCount,
265
+ sleepCount: c.state.sleepCount
266
+ };
267
+ }
268
+ },
269
+ options: {
270
+ sleepTimeout: SLEEP_TIMEOUT,
271
+ noSleep: true
272
+ }
273
+ });
274
+
275
+ // fixtures/driver-test-suite/run.ts
276
+ var RUN_SLEEP_TIMEOUT = 1e3;
277
+ var runWithTicks = actor({
278
+ state: {
279
+ tickCount: 0,
280
+ lastTickAt: 0,
281
+ runStarted: false,
282
+ runExited: false
283
+ },
284
+ run: async (c) => {
285
+ c.state.runStarted = true;
286
+ c.log.info("run handler started");
287
+ while (!c.aborted) {
288
+ c.state.tickCount += 1;
289
+ c.state.lastTickAt = Date.now();
290
+ c.log.info({ msg: "tick", tickCount: c.state.tickCount });
291
+ await new Promise((resolve) => {
292
+ const timeout = setTimeout(resolve, 50);
293
+ c.abortSignal.addEventListener(
294
+ "abort",
295
+ () => {
296
+ clearTimeout(timeout);
297
+ resolve();
298
+ },
299
+ { once: true }
300
+ );
301
+ });
302
+ }
303
+ c.state.runExited = true;
304
+ c.log.info("run handler exiting gracefully");
305
+ },
306
+ actions: {
307
+ getState: (c) => ({
308
+ tickCount: c.state.tickCount,
309
+ lastTickAt: c.state.lastTickAt,
310
+ runStarted: c.state.runStarted,
311
+ runExited: c.state.runExited
312
+ })
313
+ },
314
+ options: {
315
+ sleepTimeout: RUN_SLEEP_TIMEOUT,
316
+ runStopTimeout: 1e3
317
+ }
318
+ });
319
+ var runWithQueueConsumer = actor({
320
+ state: {
321
+ messagesReceived: [],
322
+ runStarted: false,
323
+ wakeCount: 0
324
+ },
325
+ onWake: (c) => {
326
+ c.state.wakeCount += 1;
327
+ },
328
+ run: async (c) => {
329
+ c.state.runStarted = true;
330
+ c.log.info("run handler started, waiting for messages");
331
+ while (!c.aborted) {
332
+ const message = await c.queue.next({ names: ["messages"] });
333
+ if (message) {
334
+ c.log.info({ msg: "received message", body: message.body });
335
+ c.state.messagesReceived.push({
336
+ name: message.name,
337
+ body: message.body
338
+ });
339
+ }
340
+ }
341
+ c.log.info("run handler exiting gracefully");
342
+ },
343
+ actions: {
344
+ getState: (c) => ({
345
+ messagesReceived: c.state.messagesReceived,
346
+ runStarted: c.state.runStarted,
347
+ wakeCount: c.state.wakeCount
348
+ }),
349
+ sendMessage: async (c, body) => {
350
+ const client = c.client();
351
+ const handle = client.runWithQueueConsumer.getForId(c.actorId);
352
+ await handle.send("messages", body);
353
+ return true;
354
+ }
355
+ },
356
+ options: {
357
+ sleepTimeout: RUN_SLEEP_TIMEOUT,
358
+ runStopTimeout: 1e3
359
+ }
360
+ });
361
+ var runWithEarlyExit = actor({
362
+ state: {
363
+ runStarted: false,
364
+ destroyCalled: false
365
+ },
366
+ run: async (c) => {
367
+ c.state.runStarted = true;
368
+ c.log.info("run handler started, will exit after delay");
369
+ await new Promise((resolve) => setTimeout(resolve, 200));
370
+ c.log.info("run handler exiting early");
371
+ },
372
+ onDestroy: (c) => {
373
+ c.state.destroyCalled = true;
374
+ },
375
+ actions: {
376
+ getState: (c) => ({
377
+ runStarted: c.state.runStarted,
378
+ destroyCalled: c.state.destroyCalled
379
+ })
380
+ },
381
+ options: {
382
+ sleepTimeout: RUN_SLEEP_TIMEOUT
383
+ }
384
+ });
385
+ var runWithError = actor({
386
+ state: {
387
+ runStarted: false,
388
+ destroyCalled: false
389
+ },
390
+ run: async (c) => {
391
+ c.state.runStarted = true;
392
+ c.log.info("run handler started, will throw error");
393
+ await new Promise((resolve) => setTimeout(resolve, 200));
394
+ throw new Error("intentional error in run handler");
395
+ },
396
+ onDestroy: (c) => {
397
+ c.state.destroyCalled = true;
398
+ },
399
+ actions: {
400
+ getState: (c) => ({
401
+ runStarted: c.state.runStarted,
402
+ destroyCalled: c.state.destroyCalled
403
+ })
404
+ },
405
+ options: {
406
+ sleepTimeout: RUN_SLEEP_TIMEOUT
407
+ }
408
+ });
409
+ var runWithoutHandler = actor({
410
+ state: {
411
+ wakeCount: 0
412
+ },
413
+ onWake: (c) => {
414
+ c.state.wakeCount += 1;
415
+ },
416
+ actions: {
417
+ getState: (c) => ({
418
+ wakeCount: c.state.wakeCount
419
+ })
420
+ },
421
+ options: {
422
+ sleepTimeout: RUN_SLEEP_TIMEOUT
423
+ }
424
+ });
425
+
426
+ // fixtures/driver-test-suite/workflow.ts
427
+ import { Loop } from "@rivetkit/workflow-engine";
428
+ var WORKFLOW_QUEUE_NAME = "workflow-default";
429
+ var workflowCounterActor = actor({
430
+ state: {
431
+ runCount: 0,
432
+ guardTriggered: false,
433
+ history: []
434
+ },
435
+ run: workflow(async (ctx) => {
436
+ await ctx.loop("counter", async (loopCtx) => {
437
+ try {
438
+ loopCtx.state;
439
+ } catch {
440
+ }
441
+ await loopCtx.step("increment", async () => {
442
+ incrementWorkflowCounter(loopCtx);
443
+ });
444
+ await loopCtx.sleep("idle", 25);
445
+ return Loop.continue(void 0);
446
+ });
447
+ }),
448
+ actions: {
449
+ getState: async (c) => {
450
+ const guardFlag = await c.kv.get(WORKFLOW_GUARD_KV_KEY);
451
+ if (guardFlag === "true") {
452
+ c.state.guardTriggered = true;
453
+ }
454
+ return c.state;
455
+ }
456
+ },
457
+ options: {
458
+ sleepTimeout: 50
459
+ }
460
+ });
461
+ var workflowQueueActor = actor({
462
+ state: {
463
+ received: []
464
+ },
465
+ queues: {
466
+ [WORKFLOW_QUEUE_NAME]: queue()
467
+ },
468
+ run: workflow(async (ctx) => {
469
+ await ctx.loop("queue", async (loopCtx) => {
470
+ const message = await loopCtx.queue.next("queue-wait", {
471
+ names: [WORKFLOW_QUEUE_NAME],
472
+ completable: true
473
+ });
474
+ if (!message.complete) {
475
+ return Loop.continue(void 0);
476
+ }
477
+ const complete = message.complete;
478
+ await loopCtx.step("store-message", async () => {
479
+ await storeWorkflowQueueMessage(loopCtx, message.body, complete);
480
+ });
481
+ return Loop.continue(void 0);
482
+ });
483
+ }),
484
+ actions: {
485
+ getMessages: (c) => c.state.received,
486
+ sendAndWait: async (c, payload) => {
487
+ const client = c.client();
488
+ const handle = client.workflowQueueActor.getForId(c.actorId);
489
+ return await handle.send(
490
+ WORKFLOW_QUEUE_NAME,
491
+ payload,
492
+ { wait: true, timeout: 1e3 }
493
+ );
494
+ }
495
+ }
496
+ });
497
+ var workflowAccessActor = actor({
498
+ db: db({
499
+ onMigrate: async (rawDb) => {
500
+ await rawDb.execute(`
501
+ CREATE TABLE IF NOT EXISTS workflow_access_log (
502
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
503
+ created_at INTEGER NOT NULL
504
+ )
505
+ `);
506
+ }
507
+ }),
508
+ state: {
509
+ outsideDbError: null,
510
+ outsideClientError: null,
511
+ insideDbCount: 0,
512
+ insideClientAvailable: false
513
+ },
514
+ run: workflow(async (ctx) => {
515
+ await ctx.loop("access", async (loopCtx) => {
516
+ let outsideDbError = null;
517
+ let outsideClientError = null;
518
+ try {
519
+ loopCtx.db;
520
+ } catch (error) {
521
+ outsideDbError = error instanceof Error ? error.message : String(error);
522
+ }
523
+ try {
524
+ loopCtx.client();
525
+ } catch (error) {
526
+ outsideClientError = error instanceof Error ? error.message : String(error);
527
+ }
528
+ await loopCtx.step("access-step", async () => {
529
+ await updateWorkflowAccessState(
530
+ loopCtx,
531
+ outsideDbError,
532
+ outsideClientError
533
+ );
534
+ });
535
+ await loopCtx.sleep("idle", 25);
536
+ return Loop.continue(void 0);
537
+ });
538
+ }),
539
+ actions: {
540
+ getState: (c) => c.state
541
+ }
542
+ });
543
+ var workflowSleepActor = actor({
544
+ state: {
545
+ ticks: 0
546
+ },
547
+ run: workflow(async (ctx) => {
548
+ await ctx.loop("sleep", async (loopCtx) => {
549
+ await loopCtx.step("tick", async () => {
550
+ incrementWorkflowSleepTick(loopCtx);
551
+ });
552
+ await loopCtx.sleep("delay", 40);
553
+ return Loop.continue(void 0);
554
+ });
555
+ }),
556
+ actions: {
557
+ getState: (c) => c.state
558
+ },
559
+ options: {
560
+ sleepTimeout: 50
561
+ }
562
+ });
563
+ var workflowStopTeardownActor = actor({
564
+ state: {
565
+ wakeAts: [],
566
+ sleepAts: []
567
+ },
568
+ queues: {
569
+ never: queue()
570
+ },
571
+ onWake: (c) => {
572
+ c.state.wakeAts.push(Date.now());
573
+ },
574
+ onSleep: (c) => {
575
+ c.state.sleepAts.push(Date.now());
576
+ },
577
+ run: workflow(async (ctx) => {
578
+ await ctx.loop("wait-forever", async (loopCtx) => {
579
+ await loopCtx.queue.next("wait-for-never", {
580
+ names: ["never"]
581
+ });
582
+ return Loop.continue(void 0);
583
+ });
584
+ }),
585
+ actions: {
586
+ getTimeline: (c) => ({
587
+ wakeAts: [...c.state.wakeAts],
588
+ sleepAts: [...c.state.sleepAts]
589
+ })
590
+ },
591
+ options: {
592
+ sleepTimeout: 75,
593
+ runStopTimeout: 2e3
594
+ }
595
+ });
596
+ function incrementWorkflowCounter(ctx) {
597
+ ctx.state.runCount += 1;
598
+ ctx.state.history.push(ctx.state.runCount);
599
+ }
600
+ async function storeWorkflowQueueMessage(ctx, body, complete) {
601
+ ctx.state.received.push(body);
602
+ await complete({ echo: body });
603
+ }
604
+ async function updateWorkflowAccessState(ctx, outsideDbError, outsideClientError) {
605
+ var _a;
606
+ await ctx.db.execute(
607
+ `INSERT INTO workflow_access_log (created_at) VALUES (${Date.now()})`
608
+ );
609
+ const counts = await ctx.db.execute(
610
+ `SELECT COUNT(*) as count FROM workflow_access_log`
611
+ );
612
+ const client = ctx.client();
613
+ ctx.state.outsideDbError = outsideDbError;
614
+ ctx.state.outsideClientError = outsideClientError;
615
+ ctx.state.insideDbCount = ((_a = counts[0]) == null ? void 0 : _a.count) ?? 0;
616
+ ctx.state.insideClientAvailable = typeof client.workflowQueueActor.getForId === "function";
617
+ }
618
+ function incrementWorkflowSleepTick(ctx) {
619
+ ctx.state.ticks += 1;
620
+ }
621
+
622
+ export {
623
+ logger,
624
+ HIBERNATION_SLEEP_TIMEOUT,
625
+ hibernationActor,
626
+ SLEEP_TIMEOUT,
627
+ sleep,
628
+ sleepWithLongRpc,
629
+ sleepWithRawHttp,
630
+ sleepWithRawWebSocket,
631
+ sleepWithNoSleepOption,
632
+ RUN_SLEEP_TIMEOUT,
633
+ runWithTicks,
634
+ runWithQueueConsumer,
635
+ runWithEarlyExit,
636
+ runWithError,
637
+ runWithoutHandler,
638
+ WORKFLOW_QUEUE_NAME,
639
+ workflowCounterActor,
640
+ workflowQueueActor,
641
+ workflowAccessActor,
642
+ workflowSleepActor,
643
+ workflowStopTeardownActor
644
+ };
645
+ //# sourceMappingURL=chunk-D4BYUPNQ.js.map