rivetkit 2.0.42 → 2.1.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (322) hide show
  1. package/dist/{tsup/config-CLnylLYY.d.ts → browser/client.d.ts} +2127 -1910
  2. package/dist/browser/client.js +5182 -0
  3. package/dist/browser/client.js.map +1 -0
  4. package/dist/browser/inspector/client.d.ts +130 -0
  5. package/dist/browser/inspector/client.js +2854 -0
  6. package/dist/browser/inspector/client.js.map +1 -0
  7. package/dist/browser/v3-DnYObHH3.d.ts +279 -0
  8. package/dist/schemas/actor-inspector/v2.ts +796 -0
  9. package/dist/schemas/actor-inspector/v3.ts +899 -0
  10. package/dist/schemas/actor-persist/v4.ts +406 -0
  11. package/dist/schemas/client-protocol/v3.ts +554 -0
  12. package/dist/schemas/persist/v1.ts +781 -0
  13. package/dist/schemas/transport/v1.ts +697 -0
  14. package/dist/tsup/actor/errors.cjs +27 -3
  15. package/dist/tsup/actor/errors.cjs.map +1 -1
  16. package/dist/tsup/actor/errors.d.cts +37 -1
  17. package/dist/tsup/actor/errors.d.ts +37 -1
  18. package/dist/tsup/actor/errors.js +26 -1
  19. package/dist/tsup/{actor-router-consts-DzI2szci.d.cts → actor-router-consts-D29T1Z-K.d.cts} +1 -1
  20. package/dist/tsup/{actor-router-consts-DzI2szci.d.ts → actor-router-consts-D29T1Z-K.d.ts} +1 -1
  21. package/dist/tsup/chunk-424PT5DM.js +23 -0
  22. package/dist/tsup/chunk-424PT5DM.js.map +1 -0
  23. package/dist/tsup/{chunk-JDAD2YFA.js → chunk-5ESWDTHJ.js} +148 -273
  24. package/dist/tsup/chunk-5ESWDTHJ.js.map +1 -0
  25. package/dist/tsup/{chunk-FJ3KTN4V.js → chunk-6LIBPELE.js} +119 -11
  26. package/dist/tsup/chunk-6LIBPELE.js.map +1 -0
  27. package/dist/tsup/chunk-6LJAZ5R4.cjs +96 -0
  28. package/dist/tsup/chunk-6LJAZ5R4.cjs.map +1 -0
  29. package/dist/tsup/{chunk-LFVF5SCU.js → chunk-7HTNH26M.js} +126 -1
  30. package/dist/tsup/chunk-7HTNH26M.js.map +1 -0
  31. package/dist/tsup/chunk-7K4CYDGD.js +630 -0
  32. package/dist/tsup/chunk-7K4CYDGD.js.map +1 -0
  33. package/dist/tsup/{chunk-XXGJCOL6.js → chunk-A6YIZWTK.js} +2 -2
  34. package/dist/tsup/chunk-AIYEYMX5.cjs +630 -0
  35. package/dist/tsup/chunk-AIYEYMX5.cjs.map +1 -0
  36. package/dist/tsup/{chunk-Q6W7RJJP.js → chunk-DIGBC2VI.js} +211 -2316
  37. package/dist/tsup/chunk-DIGBC2VI.js.map +1 -0
  38. package/dist/tsup/{chunk-RZW2DNND.cjs → chunk-F6JYU5IK.cjs} +1957 -1039
  39. package/dist/tsup/chunk-F6JYU5IK.cjs.map +1 -0
  40. package/dist/tsup/chunk-HAZL2EPK.cjs +534 -0
  41. package/dist/tsup/chunk-HAZL2EPK.cjs.map +1 -0
  42. package/dist/tsup/chunk-HDQ2JUQT.cjs +23 -0
  43. package/dist/tsup/chunk-HDQ2JUQT.cjs.map +1 -0
  44. package/dist/tsup/chunk-HIDX4C5Y.cjs +1036 -0
  45. package/dist/tsup/chunk-HIDX4C5Y.cjs.map +1 -0
  46. package/dist/tsup/chunk-IVG73YCW.js +534 -0
  47. package/dist/tsup/chunk-IVG73YCW.js.map +1 -0
  48. package/dist/tsup/chunk-KJSYAUOM.js +96 -0
  49. package/dist/tsup/chunk-KJSYAUOM.js.map +1 -0
  50. package/dist/tsup/{chunk-2XQS746M.cjs → chunk-L47L3ZWJ.cjs} +127 -2
  51. package/dist/tsup/chunk-L47L3ZWJ.cjs.map +1 -0
  52. package/dist/tsup/{chunk-H4TB4X25.cjs → chunk-LW6KLR7A.cjs} +126 -18
  53. package/dist/tsup/chunk-LW6KLR7A.cjs.map +1 -0
  54. package/dist/tsup/chunk-LXUQ667X.js +2006 -0
  55. package/dist/tsup/chunk-LXUQ667X.js.map +1 -0
  56. package/dist/tsup/{chunk-GMAVRZSF.js → chunk-M2T62AZQ.js} +1790 -872
  57. package/dist/tsup/chunk-M2T62AZQ.js.map +1 -0
  58. package/dist/tsup/chunk-MZ37VV3P.js +5974 -0
  59. package/dist/tsup/chunk-MZ37VV3P.js.map +1 -0
  60. package/dist/tsup/chunk-N4KRDJ56.js +72 -0
  61. package/dist/tsup/chunk-N4KRDJ56.js.map +1 -0
  62. package/dist/tsup/chunk-NIYZDWMW.cjs +2006 -0
  63. package/dist/tsup/chunk-NIYZDWMW.cjs.map +1 -0
  64. package/dist/tsup/chunk-OMEPCQK2.js +649 -0
  65. package/dist/tsup/chunk-OMEPCQK2.js.map +1 -0
  66. package/dist/tsup/chunk-SR3KQE7Q.cjs +72 -0
  67. package/dist/tsup/chunk-SR3KQE7Q.cjs.map +1 -0
  68. package/dist/tsup/chunk-SSEP6DHP.cjs +2657 -0
  69. package/dist/tsup/chunk-SSEP6DHP.cjs.map +1 -0
  70. package/dist/tsup/chunk-T5YCUGVS.js +1036 -0
  71. package/dist/tsup/chunk-T5YCUGVS.js.map +1 -0
  72. package/dist/tsup/{chunk-EJVBH5VF.cjs → chunk-TPGXWFQT.cjs} +3 -3
  73. package/dist/tsup/{chunk-EJVBH5VF.cjs.map → chunk-TPGXWFQT.cjs.map} +1 -1
  74. package/dist/tsup/{chunk-X35U3YNX.cjs → chunk-TYLXNCA5.cjs} +214 -339
  75. package/dist/tsup/chunk-TYLXNCA5.cjs.map +1 -0
  76. package/dist/tsup/chunk-VKVNIQRQ.js +257 -0
  77. package/dist/tsup/chunk-VKVNIQRQ.js.map +1 -0
  78. package/dist/tsup/chunk-XWBAQO5H.cjs +649 -0
  79. package/dist/tsup/chunk-XWBAQO5H.cjs.map +1 -0
  80. package/dist/tsup/chunk-YQ4LDVD6.cjs +5974 -0
  81. package/dist/tsup/chunk-YQ4LDVD6.cjs.map +1 -0
  82. package/dist/tsup/chunk-ZFY5J2EP.cjs +257 -0
  83. package/dist/tsup/chunk-ZFY5J2EP.cjs.map +1 -0
  84. package/dist/tsup/client/mod.cjs +9 -10
  85. package/dist/tsup/client/mod.cjs.map +1 -1
  86. package/dist/tsup/client/mod.d.cts +11 -5
  87. package/dist/tsup/client/mod.d.ts +11 -5
  88. package/dist/tsup/client/mod.js +8 -8
  89. package/dist/tsup/common/log.cjs +4 -4
  90. package/dist/tsup/common/log.d.cts +2 -2
  91. package/dist/tsup/common/log.d.ts +2 -2
  92. package/dist/tsup/common/log.js +3 -2
  93. package/dist/tsup/common/websocket.cjs +5 -5
  94. package/dist/tsup/common/websocket.js +4 -3
  95. package/dist/tsup/config-BFqid9Gr.d.ts +2574 -0
  96. package/dist/tsup/config-BiNoIHRs.d.cts +80 -0
  97. package/dist/tsup/config-BiNoIHRs.d.ts +80 -0
  98. package/dist/tsup/{config-CZB2-W8x.d.cts → config-CAZphOS1.d.cts} +681 -355
  99. package/dist/tsup/db/drizzle/mod.cjs +49 -0
  100. package/dist/tsup/db/drizzle/mod.cjs.map +1 -0
  101. package/dist/tsup/db/drizzle/mod.d.cts +17 -0
  102. package/dist/tsup/db/drizzle/mod.d.ts +17 -0
  103. package/dist/tsup/db/drizzle/mod.js +49 -0
  104. package/dist/tsup/db/drizzle/mod.js.map +1 -0
  105. package/dist/tsup/db/mod.cjs +9 -0
  106. package/dist/tsup/db/mod.cjs.map +1 -0
  107. package/dist/tsup/db/mod.d.cts +9 -0
  108. package/dist/tsup/db/mod.d.ts +9 -0
  109. package/dist/tsup/db/mod.js +9 -0
  110. package/dist/tsup/db/mod.js.map +1 -0
  111. package/dist/tsup/{driver-D0QX9M11.d.ts → driver-Bxv62E2p.d.ts} +2 -2
  112. package/dist/tsup/{driver-q-zqG7fc.d.cts → driver-DYXwJR5D.d.cts} +2 -2
  113. package/dist/tsup/driver-helpers/mod.cjs +12 -6
  114. package/dist/tsup/driver-helpers/mod.cjs.map +1 -1
  115. package/dist/tsup/driver-helpers/mod.d.cts +12 -5
  116. package/dist/tsup/driver-helpers/mod.d.ts +12 -5
  117. package/dist/tsup/driver-helpers/mod.js +12 -5
  118. package/dist/tsup/driver-test-suite/mod.cjs +1370 -116
  119. package/dist/tsup/driver-test-suite/mod.cjs.map +1 -1
  120. package/dist/tsup/driver-test-suite/mod.d.cts +10 -4
  121. package/dist/tsup/driver-test-suite/mod.d.ts +10 -4
  122. package/dist/tsup/driver-test-suite/mod.js +2093 -838
  123. package/dist/tsup/driver-test-suite/mod.js.map +1 -1
  124. package/dist/tsup/inspector/mod.cjs +29 -3
  125. package/dist/tsup/inspector/mod.cjs.map +1 -1
  126. package/dist/tsup/inspector/mod.d.cts +124 -3
  127. package/dist/tsup/inspector/mod.d.ts +124 -3
  128. package/dist/tsup/inspector/mod.js +72 -45
  129. package/dist/tsup/keys-CydblqMh.d.cts +13 -0
  130. package/dist/tsup/keys-CydblqMh.d.ts +13 -0
  131. package/dist/tsup/mod.cjs +16 -10
  132. package/dist/tsup/mod.cjs.map +1 -1
  133. package/dist/tsup/mod.d.cts +26 -14
  134. package/dist/tsup/mod.d.ts +26 -14
  135. package/dist/tsup/mod.js +20 -13
  136. package/dist/tsup/serve-test-suite/mod.cjs +1165 -83
  137. package/dist/tsup/serve-test-suite/mod.cjs.map +1 -1
  138. package/dist/tsup/serve-test-suite/mod.js +1114 -29
  139. package/dist/tsup/serve-test-suite/mod.js.map +1 -1
  140. package/dist/tsup/test/mod.cjs +84 -11
  141. package/dist/tsup/test/mod.cjs.map +1 -1
  142. package/dist/tsup/test/mod.d.cts +10 -5
  143. package/dist/tsup/test/mod.d.ts +10 -5
  144. package/dist/tsup/test/mod.js +85 -11
  145. package/dist/tsup/test/mod.js.map +1 -1
  146. package/dist/tsup/utils.cjs +10 -4
  147. package/dist/tsup/utils.cjs.map +1 -1
  148. package/dist/tsup/utils.d.cts +72 -2
  149. package/dist/tsup/utils.d.ts +72 -2
  150. package/dist/tsup/utils.js +9 -2
  151. package/dist/tsup/v3-DnYObHH3.d.cts +279 -0
  152. package/dist/tsup/v3-DnYObHH3.d.ts +279 -0
  153. package/dist/tsup/workflow/mod.cjs +16 -0
  154. package/dist/tsup/workflow/mod.cjs.map +1 -0
  155. package/dist/tsup/workflow/mod.d.cts +83 -0
  156. package/dist/tsup/workflow/mod.d.ts +83 -0
  157. package/dist/tsup/workflow/mod.js +16 -0
  158. package/dist/tsup/workflow/mod.js.map +1 -0
  159. package/package.json +62 -5
  160. package/src/actor/config.ts +478 -68
  161. package/src/actor/conn/mod.ts +68 -16
  162. package/src/actor/conn/state-manager.ts +2 -2
  163. package/src/actor/contexts/action.ts +20 -12
  164. package/src/actor/contexts/base/actor.ts +137 -7
  165. package/src/actor/contexts/base/conn-init.ts +27 -7
  166. package/src/actor/contexts/base/conn.ts +27 -18
  167. package/src/actor/contexts/before-action-response.ts +9 -2
  168. package/src/actor/contexts/before-connect.ts +7 -2
  169. package/src/actor/contexts/connect.ts +9 -2
  170. package/src/actor/contexts/create-conn-state.ts +7 -2
  171. package/src/actor/contexts/create-vars.ts +16 -3
  172. package/src/actor/contexts/create.ts +16 -3
  173. package/src/actor/contexts/destroy.ts +9 -3
  174. package/src/actor/contexts/disconnect.ts +10 -4
  175. package/src/actor/contexts/index.ts +4 -3
  176. package/src/actor/contexts/request.ts +23 -6
  177. package/src/actor/contexts/run.ts +47 -0
  178. package/src/actor/contexts/sleep.ts +9 -3
  179. package/src/actor/contexts/state-change.ts +9 -3
  180. package/src/actor/contexts/wake.ts +9 -3
  181. package/src/actor/contexts/websocket.ts +23 -6
  182. package/src/actor/database.ts +8 -18
  183. package/src/actor/definition.ts +20 -6
  184. package/src/actor/driver.ts +32 -3
  185. package/src/actor/errors.ts +127 -0
  186. package/src/actor/instance/connection-manager.ts +183 -80
  187. package/src/actor/instance/event-manager.ts +26 -15
  188. package/src/actor/instance/keys.ts +117 -0
  189. package/src/actor/instance/mod.ts +784 -174
  190. package/src/actor/instance/queue-manager.ts +603 -0
  191. package/src/actor/instance/queue.ts +287 -0
  192. package/src/actor/instance/schedule-manager.ts +49 -7
  193. package/src/actor/instance/state-manager.ts +35 -11
  194. package/src/actor/instance/traces-driver.ts +128 -0
  195. package/src/actor/mod.ts +26 -2
  196. package/src/actor/protocol/old.ts +28 -13
  197. package/src/actor/protocol/serde.ts +1 -1
  198. package/src/actor/router-endpoints.ts +177 -21
  199. package/src/actor/router-websocket-endpoints.ts +18 -29
  200. package/src/actor/router.ts +177 -0
  201. package/src/actor/schema.ts +291 -0
  202. package/src/actor/utils.ts +40 -0
  203. package/src/client/actor-common.ts +1 -1
  204. package/src/client/actor-conn.ts +100 -33
  205. package/src/client/actor-handle.ts +61 -33
  206. package/src/client/client.ts +2 -4
  207. package/src/client/config.ts +1 -1
  208. package/src/client/mod.browser.ts +2 -0
  209. package/src/client/mod.ts +1 -4
  210. package/src/client/queue.ts +146 -0
  211. package/src/client/utils.ts +1 -1
  212. package/src/common/log.ts +1 -1
  213. package/src/common/utils.ts +3 -3
  214. package/src/db/config.ts +100 -0
  215. package/src/db/drizzle/mod.ts +226 -0
  216. package/src/db/drizzle/sqlite-core.ts +22 -0
  217. package/src/db/mod.ts +125 -0
  218. package/src/db/shared.ts +92 -0
  219. package/src/db/sqlite-vfs.ts +12 -0
  220. package/src/driver-helpers/mod.ts +1 -0
  221. package/src/driver-test-suite/mod.ts +69 -43
  222. package/src/driver-test-suite/tests/access-control.ts +218 -0
  223. package/src/driver-test-suite/tests/actor-db-raw.ts +73 -0
  224. package/src/driver-test-suite/tests/actor-db.ts +394 -0
  225. package/src/driver-test-suite/tests/actor-inspector.ts +259 -358
  226. package/src/driver-test-suite/tests/actor-kv.ts +41 -20
  227. package/src/driver-test-suite/tests/actor-queue.ts +324 -0
  228. package/src/driver-test-suite/tests/actor-run.ts +181 -0
  229. package/src/driver-test-suite/tests/actor-schedule.ts +5 -2
  230. package/src/driver-test-suite/tests/actor-sleep.ts +3 -3
  231. package/src/driver-test-suite/tests/actor-stateless.ts +70 -0
  232. package/src/driver-test-suite/tests/actor-workflow.ts +108 -0
  233. package/src/driver-test-suite/tests/manager-driver.ts +11 -0
  234. package/src/driver-test-suite/tests/raw-http-request-properties.ts +1 -1
  235. package/src/driver-test-suite/tests/raw-websocket.ts +12 -12
  236. package/src/drivers/default.ts +7 -2
  237. package/src/drivers/engine/actor-driver.ts +45 -37
  238. package/src/drivers/engine/config.ts +1 -1
  239. package/src/drivers/file-system/actor.ts +20 -2
  240. package/src/drivers/file-system/global-state.ts +569 -258
  241. package/src/drivers/file-system/kv-limits.ts +70 -0
  242. package/src/drivers/file-system/manager.ts +22 -6
  243. package/src/drivers/file-system/mod.ts +39 -16
  244. package/src/drivers/file-system/sqlite-runtime.ts +210 -0
  245. package/src/inspector/actor-inspector.ts +224 -102
  246. package/src/inspector/config.ts +1 -1
  247. package/src/inspector/handler.ts +102 -20
  248. package/src/inspector/mod.browser.ts +8 -0
  249. package/src/inspector/mod.ts +2 -0
  250. package/src/inspector/serve-ui.ts +40 -0
  251. package/src/inspector/transport.ts +18 -0
  252. package/src/inspector/utils.ts +5 -39
  253. package/src/manager/gateway.ts +1 -1
  254. package/src/manager/protocol/mod.ts +1 -1
  255. package/src/manager/protocol/query.ts +1 -1
  256. package/src/manager/router-schema.ts +1 -1
  257. package/src/manager/router.ts +38 -12
  258. package/src/manager-api/actors.ts +1 -1
  259. package/src/manager-api/common.ts +1 -1
  260. package/src/registry/config/driver.ts +1 -1
  261. package/src/registry/config/index.ts +212 -43
  262. package/src/registry/config/legacy-runner.ts +1 -1
  263. package/src/registry/config/runner.ts +1 -1
  264. package/src/registry/config/serverless.ts +1 -1
  265. package/src/registry/index.ts +7 -5
  266. package/src/remote-manager-driver/api-utils.ts +1 -1
  267. package/src/schemas/actor-inspector/mod.ts +1 -1
  268. package/src/schemas/actor-inspector/versioned.ts +195 -8
  269. package/src/schemas/actor-persist/versioned.ts +87 -7
  270. package/src/schemas/client-protocol/mod.ts +1 -1
  271. package/src/schemas/client-protocol/versioned.ts +127 -11
  272. package/src/schemas/client-protocol-zod/mod.ts +16 -1
  273. package/src/schemas/persist/mod.ts +1 -0
  274. package/src/schemas/transport/mod.ts +1 -0
  275. package/src/serde.ts +1 -1
  276. package/src/serve-test-suite/mod.ts +10 -9
  277. package/src/test/mod.ts +15 -56
  278. package/src/utils/endpoint-parser.test.ts +1 -1
  279. package/src/utils/endpoint-parser.ts +1 -1
  280. package/src/utils/env-vars.ts +12 -1
  281. package/src/utils/node.ts +15 -2
  282. package/src/utils.test.ts +34 -0
  283. package/src/utils.ts +140 -6
  284. package/src/workflow/constants.ts +2 -0
  285. package/src/workflow/context.ts +532 -0
  286. package/src/workflow/driver.ts +191 -0
  287. package/src/workflow/inspector.ts +268 -0
  288. package/src/workflow/mod.ts +122 -0
  289. package/dist/tsup/chunk-2IJTYN6K.cjs +0 -278
  290. package/dist/tsup/chunk-2IJTYN6K.cjs.map +0 -1
  291. package/dist/tsup/chunk-2XQS746M.cjs.map +0 -1
  292. package/dist/tsup/chunk-3VP5CSHV.cjs +0 -114
  293. package/dist/tsup/chunk-3VP5CSHV.cjs.map +0 -1
  294. package/dist/tsup/chunk-AQFSQMBG.js +0 -114
  295. package/dist/tsup/chunk-AQFSQMBG.js.map +0 -1
  296. package/dist/tsup/chunk-E6ZE2YEA.js +0 -664
  297. package/dist/tsup/chunk-E6ZE2YEA.js.map +0 -1
  298. package/dist/tsup/chunk-FJ3KTN4V.js.map +0 -1
  299. package/dist/tsup/chunk-GBENOENJ.cjs +0 -8
  300. package/dist/tsup/chunk-GBENOENJ.cjs.map +0 -1
  301. package/dist/tsup/chunk-GD7UXGOE.cjs +0 -4762
  302. package/dist/tsup/chunk-GD7UXGOE.cjs.map +0 -1
  303. package/dist/tsup/chunk-GMAVRZSF.js.map +0 -1
  304. package/dist/tsup/chunk-H4TB4X25.cjs.map +0 -1
  305. package/dist/tsup/chunk-JDAD2YFA.js.map +0 -1
  306. package/dist/tsup/chunk-KCOVZOPS.js +0 -1946
  307. package/dist/tsup/chunk-KCOVZOPS.js.map +0 -1
  308. package/dist/tsup/chunk-KDFWJKMJ.cjs +0 -664
  309. package/dist/tsup/chunk-KDFWJKMJ.cjs.map +0 -1
  310. package/dist/tsup/chunk-LFVF5SCU.js.map +0 -1
  311. package/dist/tsup/chunk-Q6W7RJJP.js.map +0 -1
  312. package/dist/tsup/chunk-RUW5CZ5Z.cjs +0 -1949
  313. package/dist/tsup/chunk-RUW5CZ5Z.cjs.map +0 -1
  314. package/dist/tsup/chunk-RZW2DNND.cjs.map +0 -1
  315. package/dist/tsup/chunk-TCOEBUUE.js +0 -278
  316. package/dist/tsup/chunk-TCOEBUUE.js.map +0 -1
  317. package/dist/tsup/chunk-X35U3YNX.cjs.map +0 -1
  318. package/dist/tsup/keys-Chhy4ylv.d.cts +0 -8
  319. package/dist/tsup/keys-Chhy4ylv.d.ts +0 -8
  320. package/dist/tsup/v1-Gq4avTK3.d.cts +0 -240
  321. package/dist/tsup/v1-Gq4avTK3.d.ts +0 -240
  322. /package/dist/tsup/{chunk-XXGJCOL6.js.map → chunk-A6YIZWTK.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/driver-test-suite/log.ts","../../fixtures/driver-test-suite/hibernation.ts","../../fixtures/driver-test-suite/sleep.ts","../../fixtures/driver-test-suite/run.ts","../../fixtures/driver-test-suite/workflow.ts"],"sourcesContent":["import { getLogger } from \"@/common/log\";\n\nexport function logger() {\n\treturn getLogger(\"test-suite\");\n}\n","import { actor } from \"rivetkit\";\n\nexport const HIBERNATION_SLEEP_TIMEOUT = 500;\n\nexport type HibernationConnState = {\n\tcount: number;\n\tconnectCount: number;\n\tdisconnectCount: number;\n};\n\nexport const hibernationActor = actor({\n\tstate: {\n\t\tsleepCount: 0,\n\t\twakeCount: 0,\n\t},\n\tcreateConnState: (c): HibernationConnState => {\n\t\treturn {\n\t\t\tcount: 0,\n\t\t\tconnectCount: 0,\n\t\t\tdisconnectCount: 0,\n\t\t};\n\t},\n\tonWake: (c) => {\n\t\tc.state.wakeCount += 1;\n\t},\n\tonSleep: (c) => {\n\t\tc.state.sleepCount += 1;\n\t},\n\tonConnect: (c, conn) => {\n\t\tconn.state.connectCount += 1;\n\t},\n\tonDisconnect: (c, conn) => {\n\t\tconn.state.disconnectCount += 1;\n\t},\n\tactions: {\n\t\t// Basic RPC that returns a simple value\n\t\tping: (c) => {\n\t\t\treturn \"pong\";\n\t\t},\n\t\t// Increment the connection's count\n\t\tconnIncrement: (c) => {\n\t\t\tc.conn.state.count += 1;\n\t\t\treturn c.conn.state.count;\n\t\t},\n\t\t// Get the connection's count\n\t\tgetConnCount: (c) => {\n\t\t\treturn c.conn.state.count;\n\t\t},\n\t\t// Get the connection's lifecycle counts\n\t\tgetConnLifecycleCounts: (c) => {\n\t\t\treturn {\n\t\t\t\tconnectCount: c.conn.state.connectCount,\n\t\t\t\tdisconnectCount: c.conn.state.disconnectCount,\n\t\t\t};\n\t\t},\n\t\t// Get all connection IDs\n\t\tgetConnectionIds: (c) => {\n\t\t\treturn c.conns\n\t\t\t\t.entries()\n\t\t\t\t.map((x) => x[0])\n\t\t\t\t.toArray();\n\t\t},\n\t\t// Get actor sleep/wake counts\n\t\tgetActorCounts: (c) => {\n\t\t\treturn {\n\t\t\t\tsleepCount: c.state.sleepCount,\n\t\t\t\twakeCount: c.state.wakeCount,\n\t\t\t};\n\t\t},\n\t\t// Trigger sleep\n\t\ttriggerSleep: (c) => {\n\t\t\tc.sleep();\n\t\t},\n\t},\n\toptions: {\n\t\tsleepTimeout: HIBERNATION_SLEEP_TIMEOUT,\n\t},\n});\n","import { actor, type UniversalWebSocket } from \"rivetkit\";\nimport { promiseWithResolvers } from \"rivetkit/utils\";\n\nexport const SLEEP_TIMEOUT = 1000;\n\nexport const sleep = actor({\n\tstate: { startCount: 0, sleepCount: 0 },\n\tonWake: (c) => {\n\t\tc.state.startCount += 1;\n\t},\n\tonSleep: (c) => {\n\t\tc.state.sleepCount += 1;\n\t},\n\tactions: {\n\t\ttriggerSleep: (c) => {\n\t\t\tc.sleep();\n\t\t},\n\t\tgetCounts: (c) => {\n\t\t\treturn {\n\t\t\t\tstartCount: c.state.startCount,\n\t\t\t\tsleepCount: c.state.sleepCount,\n\t\t\t};\n\t\t},\n\t\tsetAlarm: async (c, duration: number) => {\n\t\t\tawait c.schedule.after(duration, \"onAlarm\");\n\t\t},\n\t\tonAlarm: (c) => {\n\t\t\tc.log.info(\"alarm called\");\n\t\t},\n\t},\n\toptions: {\n\t\tsleepTimeout: SLEEP_TIMEOUT,\n\t},\n});\n\nexport const sleepWithLongRpc = actor({\n\tstate: { startCount: 0, sleepCount: 0 },\n\tcreateVars: () =>\n\t\t({}) as { longRunningResolve: PromiseWithResolvers<void> },\n\tonWake: (c) => {\n\t\tc.state.startCount += 1;\n\t},\n\tonSleep: (c) => {\n\t\tc.state.sleepCount += 1;\n\t},\n\tactions: {\n\t\tgetCounts: (c) => {\n\t\t\treturn {\n\t\t\t\tstartCount: c.state.startCount,\n\t\t\t\tsleepCount: c.state.sleepCount,\n\t\t\t};\n\t\t},\n\t\tlongRunningRpc: async (c) => {\n\t\t\tc.log.info(\"starting long running rpc\");\n\t\t\tc.vars.longRunningResolve = promiseWithResolvers((reason) => c.log.warn({ msg: \"unhandled long running rpc rejection\", reason }));\n\t\t\tc.broadcast(\"waiting\");\n\t\t\tawait c.vars.longRunningResolve.promise;\n\t\t\tc.log.info(\"finished long running rpc\");\n\t\t},\n\t\tfinishLongRunningRpc: (c) => c.vars.longRunningResolve?.resolve(),\n\t},\n\toptions: {\n\t\tsleepTimeout: SLEEP_TIMEOUT,\n\t},\n});\n\nexport const sleepWithRawHttp = actor({\n\tstate: { startCount: 0, sleepCount: 0, requestCount: 0 },\n\tonWake: (c) => {\n\t\tc.state.startCount += 1;\n\t},\n\tonSleep: (c) => {\n\t\tc.state.sleepCount += 1;\n\t},\n\tonRequest: async (c, request) => {\n\t\tc.state.requestCount += 1;\n\t\tconst url = new URL(request.url);\n\n\t\tif (url.pathname === \"/long-request\") {\n\t\t\tconst duration = parseInt(\n\t\t\t\turl.searchParams.get(\"duration\") || \"1000\",\n\t\t\t);\n\t\t\tc.log.info({ msg: \"starting long fetch request\", duration });\n\t\t\tawait new Promise((resolve) => setTimeout(resolve, duration));\n\t\t\tc.log.info(\"finished long fetch request\");\n\t\t\treturn new Response(JSON.stringify({ completed: true }), {\n\t\t\t\theaders: { \"Content-Type\": \"application/json\" },\n\t\t\t});\n\t\t}\n\n\t\treturn new Response(\"Not Found\", { status: 404 });\n\t},\n\tactions: {\n\t\tgetCounts: (c) => {\n\t\t\treturn {\n\t\t\t\tstartCount: c.state.startCount,\n\t\t\t\tsleepCount: c.state.sleepCount,\n\t\t\t\trequestCount: c.state.requestCount,\n\t\t\t};\n\t\t},\n\t},\n\toptions: {\n\t\tsleepTimeout: SLEEP_TIMEOUT,\n\t},\n});\n\nexport const sleepWithRawWebSocket = actor({\n\tstate: { startCount: 0, sleepCount: 0, connectionCount: 0 },\n\tonWake: (c) => {\n\t\tc.state.startCount += 1;\n\t},\n\tonSleep: (c) => {\n\t\tc.state.sleepCount += 1;\n\t},\n\tonWebSocket: (c, websocket: UniversalWebSocket) => {\n\t\tc.state.connectionCount += 1;\n\t\tc.log.info({\n\t\t\tmsg: \"websocket connected\",\n\t\t\tconnectionCount: c.state.connectionCount,\n\t\t});\n\n\t\twebsocket.send(\n\t\t\tJSON.stringify({\n\t\t\t\ttype: \"connected\",\n\t\t\t\tconnectionCount: c.state.connectionCount,\n\t\t\t}),\n\t\t);\n\n\t\twebsocket.addEventListener(\"message\", (event: any) => {\n\t\t\tconst data = event.data;\n\t\t\tif (typeof data === \"string\") {\n\t\t\t\ttry {\n\t\t\t\t\tconst parsed = JSON.parse(data);\n\t\t\t\t\tif (parsed.type === \"getCounts\") {\n\t\t\t\t\t\twebsocket.send(\n\t\t\t\t\t\t\tJSON.stringify({\n\t\t\t\t\t\t\t\ttype: \"counts\",\n\t\t\t\t\t\t\t\tstartCount: c.state.startCount,\n\t\t\t\t\t\t\t\tsleepCount: c.state.sleepCount,\n\t\t\t\t\t\t\t\tconnectionCount: c.state.connectionCount,\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if (parsed.type === \"keepAlive\") {\n\t\t\t\t\t\t// Just acknowledge to keep connection alive\n\t\t\t\t\t\twebsocket.send(JSON.stringify({ type: \"ack\" }));\n\t\t\t\t\t}\n\t\t\t\t} catch {\n\t\t\t\t\t// Echo non-JSON messages\n\t\t\t\t\twebsocket.send(data);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\twebsocket.addEventListener(\"close\", () => {\n\t\t\tc.state.connectionCount -= 1;\n\t\t\tc.log.info({\n\t\t\t\tmsg: \"websocket disconnected\",\n\t\t\t\tconnectionCount: c.state.connectionCount,\n\t\t\t});\n\t\t});\n\t},\n\tactions: {\n\t\tgetCounts: (c) => {\n\t\t\treturn {\n\t\t\t\tstartCount: c.state.startCount,\n\t\t\t\tsleepCount: c.state.sleepCount,\n\t\t\t\tconnectionCount: c.state.connectionCount,\n\t\t\t};\n\t\t},\n\t},\n\toptions: {\n\t\tsleepTimeout: SLEEP_TIMEOUT,\n\t},\n});\n\nexport const sleepWithNoSleepOption = actor({\n\tstate: { startCount: 0, sleepCount: 0 },\n\tonWake: (c) => {\n\t\tc.state.startCount += 1;\n\t},\n\tonSleep: (c) => {\n\t\tc.state.sleepCount += 1;\n\t},\n\tactions: {\n\t\tgetCounts: (c) => {\n\t\t\treturn {\n\t\t\t\tstartCount: c.state.startCount,\n\t\t\t\tsleepCount: c.state.sleepCount,\n\t\t\t};\n\t\t},\n\t},\n\toptions: {\n\t\tsleepTimeout: SLEEP_TIMEOUT,\n\t\tnoSleep: true,\n\t},\n});\n","import { actor } from \"rivetkit\";\nimport type { registry } from \"./registry\";\n\nexport const RUN_SLEEP_TIMEOUT = 1000;\n\n// Actor that tracks tick counts and respects abort signal\nexport const runWithTicks = actor({\n\tstate: {\n\t\ttickCount: 0,\n\t\tlastTickAt: 0,\n\t\trunStarted: false,\n\t\trunExited: false,\n\t},\n\trun: async (c) => {\n\t\tc.state.runStarted = true;\n\t\tc.log.info(\"run handler started\");\n\n\t\twhile (!c.aborted) {\n\t\t\tc.state.tickCount += 1;\n\t\t\tc.state.lastTickAt = Date.now();\n\t\t\tc.log.info({ msg: \"tick\", tickCount: c.state.tickCount });\n\n\t\t\t// Wait 50ms between ticks, or exit early if aborted\n\t\t\tawait new Promise<void>((resolve) => {\n\t\t\t\tconst timeout = setTimeout(resolve, 50);\n\t\t\t\tc.abortSignal.addEventListener(\n\t\t\t\t\t\"abort\",\n\t\t\t\t\t() => {\n\t\t\t\t\t\tclearTimeout(timeout);\n\t\t\t\t\t\tresolve();\n\t\t\t\t\t},\n\t\t\t\t\t{ once: true },\n\t\t\t\t);\n\t\t\t});\n\t\t}\n\n\t\tc.state.runExited = true;\n\t\tc.log.info(\"run handler exiting gracefully\");\n\t},\n\tactions: {\n\t\tgetState: (c) => ({\n\t\t\ttickCount: c.state.tickCount,\n\t\t\tlastTickAt: c.state.lastTickAt,\n\t\t\trunStarted: c.state.runStarted,\n\t\t\trunExited: c.state.runExited,\n\t\t}),\n\t},\n\toptions: {\n\t\tsleepTimeout: RUN_SLEEP_TIMEOUT,\n\t\trunStopTimeout: 1000,\n\t},\n});\n\n// Actor that consumes from a queue in the run handler\nexport const runWithQueueConsumer = actor({\n\tstate: {\n\t\tmessagesReceived: [] as Array<{ name: string; body: unknown }>,\n\t\trunStarted: false,\n\t\twakeCount: 0,\n\t},\n\tonWake: (c) => {\n\t\tc.state.wakeCount += 1;\n\t},\n\trun: async (c) => {\n\t\tc.state.runStarted = true;\n\t\tc.log.info(\"run handler started, waiting for messages\");\n\n\t\twhile (!c.aborted) {\n\t\t\tconst messages = await c.queue.next({ names: [\"messages\"] });\n\t\t\tconst message = messages[0];\n\t\t\tif (message) {\n\t\t\t\tc.log.info({ msg: \"received message\", body: message.body });\n\t\t\t\tc.state.messagesReceived.push({\n\t\t\t\t\tname: message.name,\n\t\t\t\t\tbody: message.body,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tc.log.info(\"run handler exiting gracefully\");\n\t},\n\tactions: {\n\t\tgetState: (c) => ({\n\t\t\tmessagesReceived: c.state.messagesReceived,\n\t\t\trunStarted: c.state.runStarted,\n\t\t\twakeCount: c.state.wakeCount,\n\t\t}),\n\t\tsendMessage: async (c, body: unknown) => {\n\t\t\tconst client = c.client<typeof registry>();\n\t\t\tconst handle = client.runWithQueueConsumer.getForId(c.actorId);\n\t\t\tawait handle.send(\"messages\", body);\n\t\t\treturn true;\n\t\t},\n\t},\n\toptions: {\n\t\tsleepTimeout: RUN_SLEEP_TIMEOUT,\n\t\trunStopTimeout: 1000,\n\t},\n});\n\n// Actor that exits the run handler after a short delay to test crash behavior\nexport const runWithEarlyExit = actor({\n\tstate: {\n\t\trunStarted: false,\n\t\tdestroyCalled: false,\n\t},\n\trun: async (c) => {\n\t\tc.state.runStarted = true;\n\t\tc.log.info(\"run handler started, will exit after delay\");\n\t\t// Wait a bit so we can observe the runStarted state before exit\n\t\tawait new Promise((resolve) => setTimeout(resolve, 200));\n\t\tc.log.info(\"run handler exiting early\");\n\t\t// Exit without respecting abort signal\n\t},\n\tonDestroy: (c) => {\n\t\tc.state.destroyCalled = true;\n\t},\n\tactions: {\n\t\tgetState: (c) => ({\n\t\t\trunStarted: c.state.runStarted,\n\t\t\tdestroyCalled: c.state.destroyCalled,\n\t\t}),\n\t},\n\toptions: {\n\t\tsleepTimeout: RUN_SLEEP_TIMEOUT,\n\t},\n});\n\n// Actor that throws an error in the run handler to test crash behavior\nexport const runWithError = actor({\n\tstate: {\n\t\trunStarted: false,\n\t\tdestroyCalled: false,\n\t},\n\trun: async (c) => {\n\t\tc.state.runStarted = true;\n\t\tc.log.info(\"run handler started, will throw error\");\n\t\tawait new Promise((resolve) => setTimeout(resolve, 200));\n\t\tthrow new Error(\"intentional error in run handler\");\n\t},\n\tonDestroy: (c) => {\n\t\tc.state.destroyCalled = true;\n\t},\n\tactions: {\n\t\tgetState: (c) => ({\n\t\t\trunStarted: c.state.runStarted,\n\t\t\tdestroyCalled: c.state.destroyCalled,\n\t\t}),\n\t},\n\toptions: {\n\t\tsleepTimeout: RUN_SLEEP_TIMEOUT,\n\t},\n});\n\n// Actor without a run handler for comparison\nexport const runWithoutHandler = actor({\n\tstate: {\n\t\twakeCount: 0,\n\t},\n\tonWake: (c) => {\n\t\tc.state.wakeCount += 1;\n\t},\n\tactions: {\n\t\tgetState: (c) => ({\n\t\t\twakeCount: c.state.wakeCount,\n\t\t}),\n\t},\n\toptions: {\n\t\tsleepTimeout: RUN_SLEEP_TIMEOUT,\n\t},\n});\n","import { Loop } from \"@rivetkit/workflow-engine\";\nimport { actor, queue } from \"@/actor/mod\";\nimport { db } from \"@/db/mod\";\nimport { WORKFLOW_GUARD_KV_KEY } from \"@/workflow/constants\";\nimport { workflow } from \"@/workflow/mod\";\nimport type { registry } from \"./registry\";\n\nconst WORKFLOW_QUEUE_NAME = \"workflow-default\";\n\nexport const workflowCounterActor = actor({\n\tstate: {\n\t\trunCount: 0,\n\t\tguardTriggered: false,\n\t\thistory: [] as number[],\n\t},\n\trun: workflow(async (ctx) => {\n\t\tawait ctx.loop({\n\t\t\tname: \"counter\",\n\t\t\trun: async (loopCtx) => {\n\t\t\t\tconst actorLoopCtx = loopCtx as any;\n\t\t\t\ttry {\n\t\t\t\t\t// Accessing state outside a step should throw.\n\t\t\t\t\t// biome-ignore lint/style/noUnusedExpressions: intentionally checking accessor.\n\t\t\t\t\tactorLoopCtx.state;\n\t\t\t\t} catch {}\n\n\t\t\t\tawait loopCtx.step(\"increment\", async () => {\n\t\t\t\t\tactorLoopCtx.state.runCount += 1;\n\t\t\t\t\tactorLoopCtx.state.history.push(actorLoopCtx.state.runCount);\n\t\t\t\t});\n\n\t\t\t\tawait loopCtx.sleep(\"idle\", 25);\n\t\t\t\treturn Loop.continue(undefined);\n\t\t\t},\n\t\t});\n\t}),\n\tactions: {\n\t\tgetState: async (c) => {\n\t\t\tconst guardFlag = await c.kv.get(WORKFLOW_GUARD_KV_KEY);\n\t\t\tif (guardFlag === \"true\") {\n\t\t\t\tc.state.guardTriggered = true;\n\t\t\t}\n\t\t\treturn c.state;\n\t\t},\n\t},\n\toptions: {\n\t\tsleepTimeout: 50,\n\t},\n});\n\nexport const workflowQueueActor = actor({\n\tstate: {\n\t\treceived: [] as unknown[],\n\t},\n\tqueues: {\n\t\t[WORKFLOW_QUEUE_NAME]: queue<unknown, { echo: unknown }>(),\n\t},\n\trun: workflow(async (ctx) => {\n\t\tawait ctx.loop({\n\t\t\tname: \"queue\",\n\t\t\trun: async (loopCtx) => {\n\t\t\t\tconst actorLoopCtx = loopCtx as any;\n\t\t\t\tconst [message] = await loopCtx.queue.next(\"queue-wait\", {\n\t\t\t\t\tnames: [WORKFLOW_QUEUE_NAME],\n\t\t\t\t\tcompletable: true,\n\t\t\t\t});\n\t\t\t\tif (!message || !message.complete) {\n\t\t\t\t\treturn Loop.continue(undefined);\n\t\t\t\t}\n\t\t\t\tconst complete = message.complete;\n\t\t\t\tawait loopCtx.step(\"store-message\", async () => {\n\t\t\t\t\tactorLoopCtx.state.received.push(message.body);\n\t\t\t\t\tawait complete({ echo: message.body });\n\t\t\t\t});\n\t\t\t\treturn Loop.continue(undefined);\n\t\t\t},\n\t\t});\n\t}),\n\tactions: {\n\t\tgetMessages: (c) => c.state.received,\n\t\tsendAndWait: async (c, payload: unknown) => {\n\t\t\tconst client = c.client<typeof registry>();\n\t\t\tconst handle = client.workflowQueueActor.getForId(c.actorId);\n\t\t\treturn await handle.send(\n\t\t\t\tWORKFLOW_QUEUE_NAME,\n\t\t\t\tpayload,\n\t\t\t\t{ wait: true, timeout: 1_000 },\n\t\t\t);\n\t\t},\n\t},\n});\n\nexport const workflowAccessActor = actor({\n\tdb: db({\n\t\tonMigrate: async (rawDb) => {\n\t\t\tawait rawDb.execute(`\n\t\t\t\tCREATE TABLE IF NOT EXISTS workflow_access_log (\n\t\t\t\t\tid INTEGER PRIMARY KEY AUTOINCREMENT,\n\t\t\t\t\tcreated_at INTEGER NOT NULL\n\t\t\t\t)\n\t\t\t`);\n\t\t},\n\t}),\n\tstate: {\n\t\toutsideDbError: null as string | null,\n\t\toutsideClientError: null as string | null,\n\t\tinsideDbCount: 0,\n\t\tinsideClientAvailable: false,\n\t},\n\trun: workflow(async (ctx) => {\n\t\tawait ctx.loop({\n\t\t\tname: \"access\",\n\t\t\trun: async (loopCtx) => {\n\t\t\t\tconst actorLoopCtx = loopCtx as any;\n\t\t\t\tlet outsideDbError: string | null = null;\n\t\t\t\tlet outsideClientError: string | null = null;\n\n\t\t\t\ttry {\n\t\t\t\t\t// Accessing db outside a step should throw.\n\t\t\t\t\t// biome-ignore lint/style/noUnusedExpressions: intentionally checking accessor.\n\t\t\t\t\tactorLoopCtx.db;\n\t\t\t\t} catch (error) {\n\t\t\t\t\toutsideDbError =\n\t\t\t\t\t\terror instanceof Error ? error.message : String(error);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tactorLoopCtx.client();\n\t\t\t\t} catch (error) {\n\t\t\t\t\toutsideClientError =\n\t\t\t\t\t\terror instanceof Error ? error.message : String(error);\n\t\t\t\t}\n\n\t\t\t\tawait loopCtx.step(\"access-step\", async () => {\n\t\t\t\t\tawait loopCtx.db.execute(\n\t\t\t\t\t\t`INSERT INTO workflow_access_log (created_at) VALUES (${Date.now()})`,\n\t\t\t\t\t);\n\t\t\t\t\tconst counts = await loopCtx.db.execute<{ count: number }>(\n\t\t\t\t\t\t`SELECT COUNT(*) as count FROM workflow_access_log`,\n\t\t\t\t\t);\n\t\t\t\t\tconst client = loopCtx.client<typeof registry>();\n\n\t\t\t\t\tloopCtx.state.outsideDbError = outsideDbError;\n\t\t\t\t\tloopCtx.state.outsideClientError = outsideClientError;\n\t\t\t\t\tloopCtx.state.insideDbCount = counts[0]?.count ?? 0;\n\t\t\t\t\tloopCtx.state.insideClientAvailable =\n\t\t\t\t\t\ttypeof client.workflowQueueActor.getForId === \"function\";\n\t\t\t\t});\n\n\t\t\t\tawait loopCtx.sleep(\"idle\", 25);\n\t\t\t\treturn Loop.continue(undefined);\n\t\t\t},\n\t\t});\n\t}),\n\tactions: {\n\t\tgetState: (c) => c.state,\n\t},\n});\n\nexport const workflowSleepActor = actor({\n\tstate: {\n\t\tticks: 0,\n\t},\n\trun: workflow(async (ctx) => {\n\t\tawait ctx.loop({\n\t\t\tname: \"sleep\",\n\t\t\trun: async (loopCtx) => {\n\t\t\t\tconst actorLoopCtx = loopCtx as any;\n\t\t\t\tawait loopCtx.step(\"tick\", async () => {\n\t\t\t\t\tactorLoopCtx.state.ticks += 1;\n\t\t\t\t});\n\t\t\t\tawait loopCtx.sleep(\"delay\", 40);\n\t\t\t\treturn Loop.continue(undefined);\n\t\t\t},\n\t\t});\n\t}),\n\tactions: {\n\t\tgetState: (c) => c.state,\n\t},\n\toptions: {\n\t\tsleepTimeout: 50,\n\t},\n});\n\nexport const workflowStopTeardownActor = actor({\n\tstate: {\n\t\twakeAts: [] as number[],\n\t\tsleepAts: [] as number[],\n\t},\n\tqueues: {\n\t\tnever: queue<unknown>(),\n\t},\n\tonWake: (c) => {\n\t\tc.state.wakeAts.push(Date.now());\n\t},\n\tonSleep: (c) => {\n\t\tc.state.sleepAts.push(Date.now());\n\t},\n\trun: workflow(async (ctx) => {\n\t\tawait ctx.loop({\n\t\t\tname: \"wait-forever\",\n\t\t\trun: async (loopCtx) => {\n\t\t\t\tawait loopCtx.queue.next(\"wait-for-never\", {\n\t\t\t\t\tnames: [\"never\"],\n\t\t\t\t});\n\t\t\t\treturn Loop.continue(undefined);\n\t\t\t},\n\t\t});\n\t}),\n\tactions: {\n\t\tgetTimeline: (c) => ({\n\t\t\twakeAts: [...c.state.wakeAts],\n\t\t\tsleepAts: [...c.state.sleepAts],\n\t\t}),\n\t},\n\toptions: {\n\t\tsleepTimeout: 75,\n\t\trunStopTimeout: 2_000,\n\t},\n});\n\nexport { WORKFLOW_QUEUE_NAME };\n"],"mappings":"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","names":[]}
@@ -0,0 +1,72 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }// src/db/shared.ts
2
+ function isSqliteBindingValue(value) {
3
+ if (value === null || typeof value === "number" || typeof value === "string" || typeof value === "bigint" || value instanceof Uint8Array) {
4
+ return true;
5
+ }
6
+ if (Array.isArray(value)) {
7
+ return value.every((item) => typeof item === "number");
8
+ }
9
+ return false;
10
+ }
11
+ function toSqliteBindings(args) {
12
+ for (const value of args) {
13
+ if (!isSqliteBindingValue(value)) {
14
+ throw new Error(
15
+ `unsupported sqlite binding type: ${typeof value}`
16
+ );
17
+ }
18
+ }
19
+ return args;
20
+ }
21
+ function createActorKvStore(kv) {
22
+ return {
23
+ get: async (key) => {
24
+ const results = await kv.batchGet([key]);
25
+ return _nullishCoalesce(results[0], () => ( null));
26
+ },
27
+ getBatch: async (keys) => {
28
+ return await kv.batchGet(keys);
29
+ },
30
+ put: async (key, value) => {
31
+ await kv.batchPut([[key, value]]);
32
+ },
33
+ putBatch: async (entries) => {
34
+ await kv.batchPut(entries);
35
+ },
36
+ deleteBatch: async (keys) => {
37
+ await kv.batchDelete(keys);
38
+ }
39
+ };
40
+ }
41
+ var AsyncMutex = class {
42
+ #locked = false;
43
+ #waiting = [];
44
+ async acquire() {
45
+ while (this.#locked) {
46
+ await new Promise((resolve) => this.#waiting.push(resolve));
47
+ }
48
+ this.#locked = true;
49
+ }
50
+ release() {
51
+ this.#locked = false;
52
+ const next = this.#waiting.shift();
53
+ if (next) {
54
+ next();
55
+ }
56
+ }
57
+ async run(fn) {
58
+ await this.acquire();
59
+ try {
60
+ return await fn();
61
+ } finally {
62
+ this.release();
63
+ }
64
+ }
65
+ };
66
+
67
+
68
+
69
+
70
+
71
+ exports.toSqliteBindings = toSqliteBindings; exports.createActorKvStore = createActorKvStore; exports.AsyncMutex = AsyncMutex;
72
+ //# sourceMappingURL=chunk-SR3KQE7Q.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/chunk-SR3KQE7Q.cjs","../../src/db/shared.ts"],"names":[],"mappings":"AAAA;ACOA,SAAS,oBAAA,CAAqB,KAAA,EAAyB;AACtD,EAAA,GAAA,CACC,MAAA,IAAU,KAAA,GACV,OAAO,MAAA,IAAU,SAAA,GACjB,OAAO,MAAA,IAAU,SAAA,GACjB,OAAO,MAAA,IAAU,SAAA,GACjB,MAAA,WAAiB,UAAA,EAChB;AACD,IAAA,OAAO,IAAA;AAAA,EACR;AAEA,EAAA,GAAA,CAAI,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG;AACzB,IAAA,OAAO,KAAA,CAAM,KAAA,CAAM,CAAC,IAAA,EAAA,GAAS,OAAO,KAAA,IAAS,QAAQ,CAAA;AAAA,EACtD;AAEA,EAAA,OAAO,KAAA;AACR;AAEO,SAAS,gBAAA,CAAiB,IAAA,EAAiC;AACjE,EAAA,IAAA,CAAA,MAAW,MAAA,GAAS,IAAA,EAAM;AACzB,IAAA,GAAA,CAAI,CAAC,oBAAA,CAAqB,KAAK,CAAA,EAAG;AACjC,MAAA,MAAM,IAAI,KAAA;AAAA,QACT,CAAA,iCAAA,EAAoC,OAAO,KAAK,CAAA;AAAA,MAAA;AACjD,IAAA;AACD,EAAA;AAGD,EAAA;AACD;AAKO;AACN,EAAA;AAAO,IAAA;AAEL,MAAA;AACA,MAAA;AAAqB,IAAA;AACtB,IAAA;AAEC,MAAA;AAA6B,IAAA;AAC9B,IAAA;AAEC,MAAA;AAAgC,IAAA;AACjC,IAAA;AAEC,MAAA;AAAyB,IAAA;AAC1B,IAAA;AAEC,MAAA;AAAyB,IAAA;AAC1B,EAAA;AAEF;AAKO;AAAiB,EAAA;AACb,EAAA;AACkB,EAAA;AAG3B,IAAA;AACC,MAAA;AAAgE,IAAA;AAEjE,IAAA;AAAe,EAAA;AAChB,EAAA;AAGC,IAAA;AACA,IAAA;AACA,IAAA;AACC,MAAA;AAAK,IAAA;AACN,EAAA;AACD,EAAA;AAGC,IAAA;AACA,IAAA;AACC,MAAA;AAAgB,IAAA;AAEhB,MAAA;AAAa,IAAA;AACd,EAAA;AAEF;AD1BA;AACA;AACA;AACA;AACA;AACA","file":"/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/chunk-SR3KQE7Q.cjs","sourcesContent":[null,"import type { DatabaseProviderContext } from \"./config\";\nimport type { Database } from \"@rivetkit/sqlite-vfs\";\nimport type { KvVfsOptions } from \"./sqlite-vfs\";\n\ntype ActorKvOperations = DatabaseProviderContext[\"kv\"];\ntype SqliteBindings = NonNullable<Parameters<Database[\"run\"]>[1]>;\n\nfunction isSqliteBindingValue(value: unknown): boolean {\n\tif (\n\t\tvalue === null ||\n\t\ttypeof value === \"number\" ||\n\t\ttypeof value === \"string\" ||\n\t\ttypeof value === \"bigint\" ||\n\t\tvalue instanceof Uint8Array\n\t) {\n\t\treturn true;\n\t}\n\n\tif (Array.isArray(value)) {\n\t\treturn value.every((item) => typeof item === \"number\");\n\t}\n\n\treturn false;\n}\n\nexport function toSqliteBindings(args: unknown[]): SqliteBindings {\n\tfor (const value of args) {\n\t\tif (!isSqliteBindingValue(value)) {\n\t\t\tthrow new Error(\n\t\t\t\t`unsupported sqlite binding type: ${typeof value}`,\n\t\t\t);\n\t\t}\n\t}\n\n\treturn args as SqliteBindings;\n}\n\n/**\n * Create a KV store wrapper that uses the actor driver's KV operations.\n */\nexport function createActorKvStore(kv: ActorKvOperations): KvVfsOptions {\n\treturn {\n\t\tget: async (key: Uint8Array) => {\n\t\t\tconst results = await kv.batchGet([key]);\n\t\t\treturn results[0] ?? null;\n\t\t},\n\t\tgetBatch: async (keys: Uint8Array[]) => {\n\t\t\treturn await kv.batchGet(keys);\n\t\t},\n\t\tput: async (key: Uint8Array, value: Uint8Array) => {\n\t\t\tawait kv.batchPut([[key, value]]);\n\t\t},\n\t\tputBatch: async (entries: [Uint8Array, Uint8Array][]) => {\n\t\t\tawait kv.batchPut(entries);\n\t\t},\n\t\tdeleteBatch: async (keys: Uint8Array[]) => {\n\t\t\tawait kv.batchDelete(keys);\n\t\t},\n\t};\n}\n\n/**\n * Serialize async operations on a shared non-reentrant resource.\n */\nexport class AsyncMutex {\n\t#locked = false;\n\t#waiting: (() => void)[] = [];\n\n\tasync acquire(): Promise<void> {\n\t\twhile (this.#locked) {\n\t\t\tawait new Promise<void>((resolve) => this.#waiting.push(resolve));\n\t\t}\n\t\tthis.#locked = true;\n\t}\n\n\trelease(): void {\n\t\tthis.#locked = false;\n\t\tconst next = this.#waiting.shift();\n\t\tif (next) {\n\t\t\tnext();\n\t\t}\n\t}\n\n\tasync run<T>(fn: () => Promise<T>): Promise<T> {\n\t\tawait this.acquire();\n\t\ttry {\n\t\t\treturn await fn();\n\t\t} finally {\n\t\t\tthis.release();\n\t\t}\n\t}\n}\n"]}