rivetkit 2.1.5 → 2.1.6-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 (333) hide show
  1. package/dist/browser/client.d.ts +593 -588
  2. package/dist/browser/client.js +215 -35
  3. package/dist/browser/client.js.map +1 -1
  4. package/dist/browser/inspector/client.js +109 -10
  5. package/dist/browser/inspector/client.js.map +1 -1
  6. package/dist/inspector.tar.gz +0 -0
  7. package/dist/tsup/actor/errors.cjs +2 -2
  8. package/dist/tsup/actor/errors.js +1 -1
  9. package/dist/tsup/{actor-router-consts-D29T1Z-K.d.cts → actor-router-consts-DU-1IdQj.d.cts} +1 -1
  10. package/dist/tsup/{actor-router-consts-D29T1Z-K.d.ts → actor-router-consts-DU-1IdQj.d.ts} +1 -1
  11. package/dist/tsup/chunk-2ELYUO6C.cjs +112 -0
  12. package/dist/tsup/chunk-2ELYUO6C.cjs.map +1 -0
  13. package/dist/tsup/chunk-2LY7RW3Y.cjs +2316 -0
  14. package/dist/tsup/chunk-2LY7RW3Y.cjs.map +1 -0
  15. package/dist/tsup/{chunk-L47L3ZWJ.cjs → chunk-6G7ZNM27.cjs} +11 -6
  16. package/dist/tsup/chunk-6G7ZNM27.cjs.map +1 -0
  17. package/dist/tsup/{chunk-PB5AEMKQ.cjs → chunk-A4KEUCB6.cjs} +84 -34
  18. package/dist/tsup/chunk-A4KEUCB6.cjs.map +1 -0
  19. package/dist/tsup/{chunk-7HTNH26M.js → chunk-AKUJ5OTO.js} +11 -6
  20. package/dist/tsup/chunk-AKUJ5OTO.js.map +1 -0
  21. package/dist/tsup/{chunk-TADUYCHF.js → chunk-C22JYHVT.js} +77 -27
  22. package/dist/tsup/chunk-C22JYHVT.js.map +1 -0
  23. package/dist/tsup/chunk-C4EB42ET.js +1459 -0
  24. package/dist/tsup/chunk-C4EB42ET.js.map +1 -0
  25. package/dist/tsup/chunk-CGGGBIDP.cjs +1459 -0
  26. package/dist/tsup/chunk-CGGGBIDP.cjs.map +1 -0
  27. package/dist/tsup/chunk-CMQPDBBR.cjs +1486 -0
  28. package/dist/tsup/chunk-CMQPDBBR.cjs.map +1 -0
  29. package/dist/tsup/{chunk-GQGRQDRL.cjs → chunk-DH6UINWA.cjs} +4 -4
  30. package/dist/tsup/{chunk-GQGRQDRL.cjs.map → chunk-DH6UINWA.cjs.map} +1 -1
  31. package/dist/tsup/chunk-DK46YYCJ.js +1486 -0
  32. package/dist/tsup/chunk-DK46YYCJ.js.map +1 -0
  33. package/dist/tsup/chunk-EGWXXBZV.js +2316 -0
  34. package/dist/tsup/chunk-EGWXXBZV.js.map +1 -0
  35. package/dist/tsup/{chunk-S662Y6ZU.js → chunk-EONWXYMN.js} +2 -2
  36. package/dist/tsup/{chunk-N4KRDJ56.js → chunk-GFGRBYO2.js} +35 -6
  37. package/dist/tsup/chunk-GFGRBYO2.js.map +1 -0
  38. package/dist/tsup/{chunk-IIJNPVPQ.cjs → chunk-GUHXWPGB.cjs} +1515 -1479
  39. package/dist/tsup/chunk-GUHXWPGB.cjs.map +1 -0
  40. package/dist/tsup/{chunk-TI5PXQGG.cjs → chunk-HNE2AK6C.cjs} +2375 -3713
  41. package/dist/tsup/chunk-HNE2AK6C.cjs.map +1 -0
  42. package/dist/tsup/{chunk-2OK7S6QF.js → chunk-I5I6OALK.js} +2 -2
  43. package/dist/tsup/chunk-IHQAF2HV.cjs +23 -0
  44. package/dist/tsup/chunk-IHQAF2HV.cjs.map +1 -0
  45. package/dist/tsup/{chunk-U5SMSA27.cjs → chunk-JJNZQDUN.cjs} +667 -2517
  46. package/dist/tsup/chunk-JJNZQDUN.cjs.map +1 -0
  47. package/dist/tsup/{chunk-ZPWOYQHN.js → chunk-JJSPHLJN.js} +219 -287
  48. package/dist/tsup/chunk-JJSPHLJN.js.map +1 -0
  49. package/dist/tsup/chunk-JRKPV5NJ.js +481 -0
  50. package/dist/tsup/chunk-JRKPV5NJ.js.map +1 -0
  51. package/dist/tsup/{chunk-VKVNIQRQ.js → chunk-K7MVU5SI.js} +36 -41
  52. package/dist/tsup/chunk-K7MVU5SI.js.map +1 -0
  53. package/dist/tsup/{chunk-KJSYAUOM.js → chunk-MLK3GY6P.js} +43 -27
  54. package/dist/tsup/chunk-MLK3GY6P.js.map +1 -0
  55. package/dist/tsup/{chunk-HYPIHCDT.cjs → chunk-MPLMTJY5.cjs} +123 -23
  56. package/dist/tsup/chunk-MPLMTJY5.cjs.map +1 -0
  57. package/dist/tsup/{chunk-MIX2KB6U.js → chunk-PQWI44WD.js} +1755 -3093
  58. package/dist/tsup/chunk-PQWI44WD.js.map +1 -0
  59. package/dist/tsup/{chunk-SR3KQE7Q.cjs → chunk-SQFCIDCG.cjs} +35 -6
  60. package/dist/tsup/chunk-SQFCIDCG.cjs.map +1 -0
  61. package/dist/tsup/{chunk-WY2SHWXQ.js → chunk-SVHJSM2E.js} +110 -24
  62. package/dist/tsup/chunk-SVHJSM2E.js.map +1 -0
  63. package/dist/tsup/chunk-T5KYKM6R.js +49 -0
  64. package/dist/tsup/chunk-T5KYKM6R.js.map +1 -0
  65. package/dist/tsup/{chunk-7WF2QSIC.cjs → chunk-TJ7DKW6F.cjs} +123 -37
  66. package/dist/tsup/chunk-TJ7DKW6F.cjs.map +1 -0
  67. package/dist/tsup/chunk-UQZRMTM3.js +23 -0
  68. package/dist/tsup/chunk-UQZRMTM3.js.map +1 -0
  69. package/dist/tsup/{chunk-JC6BEPE7.cjs → chunk-V3JSZR5P.cjs} +3 -3
  70. package/dist/tsup/{chunk-JC6BEPE7.cjs.map → chunk-V3JSZR5P.cjs.map} +1 -1
  71. package/dist/tsup/{chunk-OAXJWGMU.cjs → chunk-VBR35EQF.cjs} +271 -339
  72. package/dist/tsup/chunk-VBR35EQF.cjs.map +1 -0
  73. package/dist/tsup/{chunk-EIATSBYZ.js → chunk-VWYO36X4.js} +117 -17
  74. package/dist/tsup/chunk-VWYO36X4.js.map +1 -0
  75. package/dist/tsup/{chunk-JPXO2H55.js → chunk-WW27B6DM.js} +1452 -1416
  76. package/dist/tsup/chunk-WW27B6DM.js.map +1 -0
  77. package/dist/tsup/chunk-YAE3MEJM.cjs +49 -0
  78. package/dist/tsup/chunk-YAE3MEJM.cjs.map +1 -0
  79. package/dist/tsup/{chunk-SRIM3GHD.js → chunk-YGYGANCA.js} +473 -2323
  80. package/dist/tsup/chunk-YGYGANCA.js.map +1 -0
  81. package/dist/tsup/chunk-YZJWZBY5.cjs +481 -0
  82. package/dist/tsup/chunk-YZJWZBY5.cjs.map +1 -0
  83. package/dist/tsup/{chunk-ZFY5J2EP.cjs → chunk-ZZLJ5TSM.cjs} +39 -44
  84. package/dist/tsup/chunk-ZZLJ5TSM.cjs.map +1 -0
  85. package/dist/tsup/client/mod.cjs +10 -7
  86. package/dist/tsup/client/mod.cjs.map +1 -1
  87. package/dist/tsup/client/mod.d.cts +6 -6
  88. package/dist/tsup/client/mod.d.ts +6 -6
  89. package/dist/tsup/client/mod.js +11 -8
  90. package/dist/tsup/common/log.cjs +3 -3
  91. package/dist/tsup/common/log.js +2 -2
  92. package/dist/tsup/common/websocket.cjs +4 -4
  93. package/dist/tsup/common/websocket.js +3 -3
  94. package/dist/tsup/{config-Qj-zLJPc.d.ts → config-C2Wwnc69.d.ts} +142 -208
  95. package/dist/tsup/{config-BiNoIHRs.d.ts → config-DROwzBLT.d.cts} +82 -6
  96. package/dist/tsup/{config-BiNoIHRs.d.cts → config-DROwzBLT.d.ts} +82 -6
  97. package/dist/tsup/{config-iPj5l1bL.d.cts → config-ehT-_3BB.d.cts} +142 -208
  98. package/dist/tsup/{context-DzvH1PBK.d.cts → context-DGMJuAyc.d.ts} +16 -3
  99. package/dist/tsup/{context-CQCMuHND.d.ts → context-Dpp2RJbW.d.cts} +16 -3
  100. package/dist/tsup/db/drizzle/mod.cjs +3 -3
  101. package/dist/tsup/db/drizzle/mod.d.cts +1 -1
  102. package/dist/tsup/db/drizzle/mod.d.ts +1 -1
  103. package/dist/tsup/db/drizzle/mod.js +2 -2
  104. package/dist/tsup/db/mod.cjs +3 -3
  105. package/dist/tsup/db/mod.d.cts +1 -1
  106. package/dist/tsup/db/mod.d.ts +1 -1
  107. package/dist/tsup/db/mod.js +2 -2
  108. package/dist/tsup/{driver-Jo8v-kbU.d.ts → driver-CYZP9QYo.d.ts} +1 -1
  109. package/dist/tsup/{driver-iV8J-WMv.d.cts → driver-CoTFpipv.d.cts} +1 -1
  110. package/dist/tsup/driver-helpers/mod.cjs +7 -5
  111. package/dist/tsup/driver-helpers/mod.cjs.map +1 -1
  112. package/dist/tsup/driver-helpers/mod.d.cts +17 -18
  113. package/dist/tsup/driver-helpers/mod.d.ts +17 -18
  114. package/dist/tsup/driver-helpers/mod.js +11 -9
  115. package/dist/tsup/driver-test-suite/mod.cjs +1275 -228
  116. package/dist/tsup/driver-test-suite/mod.cjs.map +1 -1
  117. package/dist/tsup/driver-test-suite/mod.d.cts +6 -5
  118. package/dist/tsup/driver-test-suite/mod.d.ts +6 -5
  119. package/dist/tsup/driver-test-suite/mod.js +1581 -534
  120. package/dist/tsup/driver-test-suite/mod.js.map +1 -1
  121. package/dist/tsup/inspector/mod.cjs +4 -4
  122. package/dist/tsup/inspector/mod.js +3 -3
  123. package/dist/tsup/mod.cjs +15 -9
  124. package/dist/tsup/mod.cjs.map +1 -1
  125. package/dist/tsup/mod.d.cts +9 -9
  126. package/dist/tsup/mod.d.ts +9 -9
  127. package/dist/tsup/mod.js +19 -13
  128. package/dist/tsup/sandbox/client.cjs +28 -0
  129. package/dist/tsup/sandbox/client.cjs.map +1 -0
  130. package/dist/tsup/sandbox/client.d.cts +88 -0
  131. package/dist/tsup/sandbox/client.d.ts +88 -0
  132. package/dist/tsup/sandbox/client.js +28 -0
  133. package/dist/tsup/sandbox/client.js.map +1 -0
  134. package/dist/tsup/sandbox/index.cjs +761 -0
  135. package/dist/tsup/sandbox/index.cjs.map +1 -0
  136. package/dist/tsup/sandbox/index.d.cts +120 -0
  137. package/dist/tsup/sandbox/index.d.ts +120 -0
  138. package/dist/tsup/sandbox/index.js +761 -0
  139. package/dist/tsup/sandbox/index.js.map +1 -0
  140. package/dist/tsup/sandbox/providers/computesdk.cjs +3 -0
  141. package/dist/tsup/sandbox/providers/computesdk.cjs.map +1 -0
  142. package/dist/tsup/sandbox/providers/computesdk.d.cts +7 -0
  143. package/dist/tsup/sandbox/providers/computesdk.d.ts +7 -0
  144. package/dist/tsup/sandbox/providers/computesdk.js +3 -0
  145. package/dist/tsup/sandbox/providers/computesdk.js.map +1 -0
  146. package/dist/tsup/sandbox/providers/daytona.cjs +3 -0
  147. package/dist/tsup/sandbox/providers/daytona.cjs.map +1 -0
  148. package/dist/tsup/sandbox/providers/daytona.d.cts +1 -0
  149. package/dist/tsup/sandbox/providers/daytona.d.ts +1 -0
  150. package/dist/tsup/sandbox/providers/daytona.js +3 -0
  151. package/dist/tsup/sandbox/providers/daytona.js.map +1 -0
  152. package/dist/tsup/sandbox/providers/docker.cjs +3 -0
  153. package/dist/tsup/sandbox/providers/docker.cjs.map +1 -0
  154. package/dist/tsup/sandbox/providers/docker.d.cts +1 -0
  155. package/dist/tsup/sandbox/providers/docker.d.ts +1 -0
  156. package/dist/tsup/sandbox/providers/docker.js +3 -0
  157. package/dist/tsup/sandbox/providers/docker.js.map +1 -0
  158. package/dist/tsup/sandbox/providers/e2b.cjs +3 -0
  159. package/dist/tsup/sandbox/providers/e2b.cjs.map +1 -0
  160. package/dist/tsup/sandbox/providers/e2b.d.cts +1 -0
  161. package/dist/tsup/sandbox/providers/e2b.d.ts +1 -0
  162. package/dist/tsup/sandbox/providers/e2b.js +3 -0
  163. package/dist/tsup/sandbox/providers/e2b.js.map +1 -0
  164. package/dist/tsup/sandbox/providers/local.cjs +3 -0
  165. package/dist/tsup/sandbox/providers/local.cjs.map +1 -0
  166. package/dist/tsup/sandbox/providers/local.d.cts +1 -0
  167. package/dist/tsup/sandbox/providers/local.d.ts +1 -0
  168. package/dist/tsup/sandbox/providers/local.js +3 -0
  169. package/dist/tsup/sandbox/providers/local.js.map +1 -0
  170. package/dist/tsup/sandbox/providers/modal.cjs +3 -0
  171. package/dist/tsup/sandbox/providers/modal.cjs.map +1 -0
  172. package/dist/tsup/sandbox/providers/modal.d.cts +1 -0
  173. package/dist/tsup/sandbox/providers/modal.d.ts +1 -0
  174. package/dist/tsup/sandbox/providers/modal.js +3 -0
  175. package/dist/tsup/sandbox/providers/modal.js.map +1 -0
  176. package/dist/tsup/sandbox/providers/vercel.cjs +3 -0
  177. package/dist/tsup/sandbox/providers/vercel.cjs.map +1 -0
  178. package/dist/tsup/sandbox/providers/vercel.d.cts +1 -0
  179. package/dist/tsup/sandbox/providers/vercel.d.ts +1 -0
  180. package/dist/tsup/sandbox/providers/vercel.js +3 -0
  181. package/dist/tsup/sandbox/providers/vercel.js.map +1 -0
  182. package/dist/tsup/serve-test-suite/mod.cjs +451 -327
  183. package/dist/tsup/serve-test-suite/mod.cjs.map +1 -1
  184. package/dist/tsup/serve-test-suite/mod.js +362 -238
  185. package/dist/tsup/serve-test-suite/mod.js.map +1 -1
  186. package/dist/tsup/test/mod.cjs +17 -14
  187. package/dist/tsup/test/mod.cjs.map +1 -1
  188. package/dist/tsup/test/mod.d.cts +4 -4
  189. package/dist/tsup/test/mod.d.ts +4 -4
  190. package/dist/tsup/test/mod.js +14 -11
  191. package/dist/tsup/test/mod.js.map +1 -1
  192. package/dist/tsup/utils.cjs +3 -3
  193. package/dist/tsup/utils.js +2 -2
  194. package/dist/tsup/workflow/mod.cjs +6 -6
  195. package/dist/tsup/workflow/mod.d.cts +13 -9
  196. package/dist/tsup/workflow/mod.d.ts +13 -9
  197. package/dist/tsup/workflow/mod.js +5 -5
  198. package/package.json +114 -15
  199. package/src/actor/config.ts +94 -88
  200. package/src/actor/conn/drivers/websocket.ts +2 -1
  201. package/src/actor/contexts/base/actor.ts +27 -4
  202. package/src/actor/database.ts +6 -1
  203. package/src/actor/driver.ts +27 -8
  204. package/src/actor/errors.ts +10 -5
  205. package/src/actor/instance/connection-manager.ts +4 -3
  206. package/src/actor/instance/kv.ts +52 -9
  207. package/src/actor/instance/mod.ts +135 -84
  208. package/src/actor/instance/queue-manager.ts +2 -5
  209. package/src/actor/instance/queue.ts +31 -29
  210. package/src/actor/instance/state-manager.ts +7 -1
  211. package/src/actor/instance/traces-driver.ts +34 -36
  212. package/src/actor/metrics.ts +137 -0
  213. package/src/actor/protocol/old.ts +9 -12
  214. package/src/actor/router-websocket-endpoints.ts +12 -6
  215. package/src/actor/router.ts +46 -9
  216. package/src/actor/schema.ts +14 -22
  217. package/src/client/actor-common.ts +65 -0
  218. package/src/client/actor-conn.ts +71 -9
  219. package/src/client/actor-handle.ts +22 -5
  220. package/src/client/client.ts +32 -6
  221. package/src/client/config.ts +18 -21
  222. package/src/client/mod.ts +1 -0
  223. package/src/client/queue.ts +8 -6
  224. package/src/common/inline-websocket-adapter.ts +8 -2
  225. package/src/common/router.ts +1 -4
  226. package/src/common/utils.ts +2 -5
  227. package/src/db/config.ts +10 -5
  228. package/src/db/drizzle/mod.ts +51 -41
  229. package/src/db/mod.ts +54 -29
  230. package/src/db/shared.ts +42 -8
  231. package/src/driver-helpers/mod.ts +2 -1
  232. package/src/driver-helpers/sqlite-pool.ts +42 -0
  233. package/src/driver-helpers/utils.ts +0 -20
  234. package/src/driver-test-suite/mod.ts +11 -1
  235. package/src/driver-test-suite/tests/access-control.ts +19 -12
  236. package/src/driver-test-suite/tests/action-features.ts +20 -8
  237. package/src/driver-test-suite/tests/actor-conn.ts +94 -8
  238. package/src/driver-test-suite/tests/actor-db-kv-stats.ts +282 -0
  239. package/src/driver-test-suite/tests/actor-db-raw.ts +6 -2
  240. package/src/driver-test-suite/tests/actor-db.ts +101 -31
  241. package/src/driver-test-suite/tests/actor-inspector.ts +174 -32
  242. package/src/driver-test-suite/tests/actor-kv.ts +79 -33
  243. package/src/driver-test-suite/tests/actor-lifecycle.ts +4 -12
  244. package/src/driver-test-suite/tests/actor-queue.ts +125 -17
  245. package/src/driver-test-suite/tests/actor-run.ts +59 -55
  246. package/src/driver-test-suite/tests/actor-sandbox.ts +78 -0
  247. package/src/driver-test-suite/tests/actor-schedule.ts +1 -4
  248. package/src/driver-test-suite/tests/actor-sleep.ts +111 -0
  249. package/src/driver-test-suite/tests/actor-workflow.ts +387 -3
  250. package/src/driver-test-suite/tests/conn-error-serialization.ts +3 -1
  251. package/src/driver-test-suite/tests/raw-websocket.ts +5 -1
  252. package/src/drivers/default.ts +1 -3
  253. package/src/drivers/engine/actor-driver.ts +94 -21
  254. package/src/drivers/engine/config.ts +4 -12
  255. package/src/drivers/engine/mod.ts +1 -5
  256. package/src/drivers/file-system/actor.ts +43 -8
  257. package/src/drivers/file-system/global-state.ts +180 -64
  258. package/src/drivers/file-system/kv-limits.ts +1 -1
  259. package/src/drivers/file-system/sqlite-runtime.ts +13 -4
  260. package/src/engine-process/mod.ts +5 -1
  261. package/src/inspector/actor-inspector.ts +47 -21
  262. package/src/inspector/config.ts +1 -4
  263. package/src/inspector/mod.browser.ts +2 -2
  264. package/src/inspector/mod.ts +4 -1
  265. package/src/inspector/serve-ui.ts +0 -1
  266. package/src/inspector/workflow-history-json.ts +309 -0
  267. package/src/manager/gateway.ts +6 -2
  268. package/src/manager/router.ts +3 -3
  269. package/src/registry/config/index.ts +65 -12
  270. package/src/registry/config/runner.ts +19 -4
  271. package/src/registry/index.ts +42 -89
  272. package/src/sandbox/actor/db.ts +36 -0
  273. package/src/sandbox/actor/index.ts +476 -0
  274. package/src/sandbox/actor/session.ts +350 -0
  275. package/src/sandbox/actor.test.ts +36 -0
  276. package/src/sandbox/client.test.ts +484 -0
  277. package/src/sandbox/client.ts +707 -0
  278. package/src/sandbox/config.ts +151 -0
  279. package/src/sandbox/index.ts +41 -0
  280. package/src/sandbox/providers/computesdk.ts +1 -0
  281. package/src/sandbox/providers/daytona.ts +1 -0
  282. package/src/sandbox/providers/docker.ts +1 -0
  283. package/src/sandbox/providers/e2b.ts +1 -0
  284. package/src/sandbox/providers/local.ts +1 -0
  285. package/src/sandbox/providers/modal.ts +1 -0
  286. package/src/sandbox/providers/vercel.ts +1 -0
  287. package/src/sandbox/session-persist-driver.ts +180 -0
  288. package/src/sandbox/types.ts +138 -0
  289. package/src/serverless/configure.ts +5 -3
  290. package/src/serverless/router.test.ts +17 -9
  291. package/src/serverless/router.ts +20 -13
  292. package/src/test/mod.ts +3 -4
  293. package/src/utils/endpoint-parser.test.ts +6 -2
  294. package/src/utils/endpoint-parser.ts +6 -2
  295. package/src/utils/env-vars.ts +0 -2
  296. package/src/utils/node.ts +1 -1
  297. package/src/utils/serve.ts +10 -5
  298. package/src/utils.ts +6 -1
  299. package/src/workflow/constants.ts +1 -2
  300. package/src/workflow/context.ts +42 -9
  301. package/src/workflow/driver.ts +57 -23
  302. package/src/workflow/inspector.ts +7 -13
  303. package/src/workflow/mod.ts +91 -4
  304. package/dist/tsup/chunk-6LJAZ5R4.cjs +0 -96
  305. package/dist/tsup/chunk-6LJAZ5R4.cjs.map +0 -1
  306. package/dist/tsup/chunk-7HTNH26M.js.map +0 -1
  307. package/dist/tsup/chunk-7WF2QSIC.cjs.map +0 -1
  308. package/dist/tsup/chunk-D2SPAJVT.cjs +0 -645
  309. package/dist/tsup/chunk-D2SPAJVT.cjs.map +0 -1
  310. package/dist/tsup/chunk-EIATSBYZ.js.map +0 -1
  311. package/dist/tsup/chunk-HYPIHCDT.cjs.map +0 -1
  312. package/dist/tsup/chunk-IIJNPVPQ.cjs.map +0 -1
  313. package/dist/tsup/chunk-JPXO2H55.js.map +0 -1
  314. package/dist/tsup/chunk-KJSYAUOM.js.map +0 -1
  315. package/dist/tsup/chunk-L47L3ZWJ.cjs.map +0 -1
  316. package/dist/tsup/chunk-MIX2KB6U.js.map +0 -1
  317. package/dist/tsup/chunk-N4KRDJ56.js.map +0 -1
  318. package/dist/tsup/chunk-OAXJWGMU.cjs.map +0 -1
  319. package/dist/tsup/chunk-PB5AEMKQ.cjs.map +0 -1
  320. package/dist/tsup/chunk-R5OQUSLN.js +0 -645
  321. package/dist/tsup/chunk-R5OQUSLN.js.map +0 -1
  322. package/dist/tsup/chunk-SR3KQE7Q.cjs.map +0 -1
  323. package/dist/tsup/chunk-SRIM3GHD.js.map +0 -1
  324. package/dist/tsup/chunk-TADUYCHF.js.map +0 -1
  325. package/dist/tsup/chunk-TI5PXQGG.cjs.map +0 -1
  326. package/dist/tsup/chunk-U5SMSA27.cjs.map +0 -1
  327. package/dist/tsup/chunk-VKVNIQRQ.js.map +0 -1
  328. package/dist/tsup/chunk-WY2SHWXQ.js.map +0 -1
  329. package/dist/tsup/chunk-ZFY5J2EP.cjs.map +0 -1
  330. package/dist/tsup/chunk-ZPWOYQHN.js.map +0 -1
  331. package/src/db/sqlite-vfs.ts +0 -12
  332. /package/dist/tsup/{chunk-S662Y6ZU.js.map → chunk-EONWXYMN.js.map} +0 -0
  333. /package/dist/tsup/{chunk-2OK7S6QF.js.map → chunk-I5I6OALK.js.map} +0 -0
@@ -0,0 +1,282 @@
1
+ import { describe, expect, test } from "vitest";
2
+ import type { DriverTestConfig } from "../mod";
3
+ import { setupDriverTest, waitFor } from "../utils";
4
+
5
+ export function runActorDbKvStatsTests(driverTestConfig: DriverTestConfig) {
6
+ describe("Actor Database KV Stats Tests", () => {
7
+ // -- Warm path tests --
8
+ // These call warmUp first to prime the pager cache and reset
9
+ // stats, then measure the exact KV behavior of subsequent ops.
10
+ // This is the steady-state path for a live actor.
11
+
12
+ test(
13
+ "warm UPDATE uses BATCH_ATOMIC: exactly 1 putBatch, 0 reads, no journal",
14
+ async (c) => {
15
+ const { client } = await setupDriverTest(c, driverTestConfig);
16
+ const actor = client.dbKvStatsActor.getOrCreate([
17
+ `kv-stats-ba-${crypto.randomUUID()}`,
18
+ ]);
19
+
20
+ await actor.warmUp();
21
+
22
+ await actor.increment();
23
+ const stats = await actor.getStats();
24
+ const log = await actor.getLog();
25
+
26
+ expect(stats.putBatchCalls).toBe(1);
27
+ expect(stats.getBatchCalls).toBe(0);
28
+
29
+ const allKeys = log.flatMap((e: { keys: string[] }) => e.keys);
30
+ const journalKeys = allKeys.filter((k: string) => k.includes("journal"));
31
+ expect(journalKeys.length).toBe(0);
32
+ },
33
+ 30_000,
34
+ );
35
+
36
+ test(
37
+ "warm SELECT uses 0 KV round trips",
38
+ async (c) => {
39
+ const { client } = await setupDriverTest(c, driverTestConfig);
40
+ const actor = client.dbKvStatsActor.getOrCreate([
41
+ `kv-stats-2-${crypto.randomUUID()}`,
42
+ ]);
43
+
44
+ await actor.warmUp();
45
+
46
+ await actor.getCount();
47
+ const stats = await actor.getStats();
48
+
49
+ expect(stats.getBatchCalls).toBe(0);
50
+ expect(stats.putBatchCalls).toBe(0);
51
+ },
52
+ 30_000,
53
+ );
54
+
55
+ test(
56
+ "warm SELECT after UPDATE adds no KV round trips",
57
+ async (c) => {
58
+ const { client } = await setupDriverTest(c, driverTestConfig);
59
+ const actor = client.dbKvStatsActor.getOrCreate([
60
+ `kv-stats-3-${crypto.randomUUID()}`,
61
+ ]);
62
+
63
+ await actor.warmUp();
64
+
65
+ await actor.increment();
66
+ const updateStats = await actor.getStats();
67
+
68
+ await actor.resetStats();
69
+ await actor.incrementAndRead();
70
+ const combinedStats = await actor.getStats();
71
+
72
+ expect(combinedStats.putBatchCalls).toBe(updateStats.putBatchCalls);
73
+ expect(combinedStats.getBatchCalls).toBe(updateStats.getBatchCalls);
74
+ },
75
+ 30_000,
76
+ );
77
+
78
+ test(
79
+ "warm multi-page INSERT writes multiple chunk keys",
80
+ async (c) => {
81
+ const { client } = await setupDriverTest(c, driverTestConfig);
82
+ const actor = client.dbKvStatsActor.getOrCreate([
83
+ `kv-stats-4-${crypto.randomUUID()}`,
84
+ ]);
85
+
86
+ // First call creates table/index and primes cache
87
+ await actor.insertWithIndex();
88
+ await actor.resetStats();
89
+
90
+ await actor.insertWithIndex();
91
+ const stats = await actor.getStats();
92
+ const log = await actor.getLog();
93
+
94
+ expect(stats.putBatchCalls).toBeGreaterThanOrEqual(1);
95
+ expect(stats.putBatchEntries).toBeGreaterThan(1);
96
+
97
+ const putOps = log.filter(
98
+ (e: { op: string }) => e.op === "putBatch" || e.op === "put",
99
+ );
100
+ const allKeys = putOps.flatMap((e: { keys: string[] }) => e.keys);
101
+ const mainChunkKeys = allKeys.filter((k: string) =>
102
+ k.startsWith("chunk:main["),
103
+ );
104
+ expect(mainChunkKeys.length).toBeGreaterThanOrEqual(1);
105
+ },
106
+ 30_000,
107
+ );
108
+
109
+ test(
110
+ "warm ROLLBACK produces no data page writes",
111
+ async (c) => {
112
+ const { client } = await setupDriverTest(c, driverTestConfig);
113
+ const actor = client.dbKvStatsActor.getOrCreate([
114
+ `kv-stats-5-${crypto.randomUUID()}`,
115
+ ]);
116
+
117
+ await actor.rollbackTest();
118
+ await actor.resetStats();
119
+
120
+ await actor.rollbackTest();
121
+ const log = await actor.getLog();
122
+
123
+ const putOps = log.filter(
124
+ (e: { op: string }) => e.op === "putBatch" || e.op === "put",
125
+ );
126
+ const mainChunkKeys = putOps
127
+ .flatMap((e: { keys: string[] }) => e.keys)
128
+ .filter((k: string) => k.startsWith("chunk:main["));
129
+ expect(mainChunkKeys.length).toBe(0);
130
+ },
131
+ 30_000,
132
+ );
133
+
134
+ test(
135
+ "warm multi-statement transaction produces writes",
136
+ async (c) => {
137
+ const { client } = await setupDriverTest(c, driverTestConfig);
138
+ const actor = client.dbKvStatsActor.getOrCreate([
139
+ `kv-stats-6-${crypto.randomUUID()}`,
140
+ ]);
141
+
142
+ await actor.multiStmtTx();
143
+ await actor.resetStats();
144
+
145
+ await actor.multiStmtTx();
146
+ const stats = await actor.getStats();
147
+
148
+ expect(stats.putBatchCalls).toBeGreaterThanOrEqual(1);
149
+ },
150
+ 30_000,
151
+ );
152
+
153
+ // -- Structural property tests --
154
+ // These assert invariants that hold regardless of cache state.
155
+
156
+ test(
157
+ "no WAL or SHM operations occur",
158
+ async (c) => {
159
+ const { client } = await setupDriverTest(c, driverTestConfig);
160
+ const actor = client.dbKvStatsActor.getOrCreate([
161
+ `kv-stats-7-${crypto.randomUUID()}`,
162
+ ]);
163
+
164
+ await actor.warmUp();
165
+
166
+ await actor.increment();
167
+ const log = await actor.getLog();
168
+
169
+ const allKeys = log.flatMap((e: { keys: string[] }) => e.keys);
170
+ const walOrShmKeys = allKeys.filter(
171
+ (k: string) => k.includes("wal") || k.includes("shm"),
172
+ );
173
+ expect(walOrShmKeys.length).toBe(0);
174
+ },
175
+ 30_000,
176
+ );
177
+
178
+ test(
179
+ "every putBatch has at most 128 keys",
180
+ async (c) => {
181
+ const { client } = await setupDriverTest(c, driverTestConfig);
182
+ const actor = client.dbKvStatsActor.getOrCreate([
183
+ `kv-stats-8-${crypto.randomUUID()}`,
184
+ ]);
185
+
186
+ await actor.warmUp();
187
+
188
+ await actor.increment();
189
+ const log = await actor.getLog();
190
+
191
+ const putBatchOps = log.filter(
192
+ (e: { op: string }) => e.op === "putBatch",
193
+ );
194
+ for (const entry of putBatchOps) {
195
+ expect(
196
+ (entry as { keys: string[] }).keys.length,
197
+ ).toBeLessThanOrEqual(128);
198
+ }
199
+ },
200
+ 30_000,
201
+ );
202
+
203
+ // -- Large transaction tests --
204
+
205
+ test(
206
+ "large transaction falls back to journal when exceeding 127 dirty pages",
207
+ async (c) => {
208
+ const { client } = await setupDriverTest(c, driverTestConfig);
209
+ const actor = client.dbKvStatsActor.getOrCreate([
210
+ `kv-stats-9-${crypto.randomUUID()}`,
211
+ ]);
212
+
213
+ await actor.warmUp();
214
+
215
+ await actor.bulkInsertLarge();
216
+ const stats = await actor.getStats();
217
+ const log = await actor.getLog();
218
+
219
+ expect(stats.putBatchCalls).toBeGreaterThan(1);
220
+
221
+ const allKeys = log.flatMap((e: { keys: string[] }) => e.keys);
222
+ const journalKeys = allKeys.filter((k: string) =>
223
+ k.includes("journal"),
224
+ );
225
+ expect(journalKeys.length).toBeGreaterThan(0);
226
+
227
+ const putBatchOps = log.filter(
228
+ (e: { op: string }) => e.op === "putBatch",
229
+ );
230
+ for (const entry of putBatchOps) {
231
+ expect(
232
+ (entry as { keys: string[] }).keys.length,
233
+ ).toBeLessThanOrEqual(128);
234
+ }
235
+ },
236
+ 60_000,
237
+ );
238
+
239
+ test(
240
+ "large transaction data integrity: 200 rows and integrity check pass",
241
+ async (c) => {
242
+ const { client } = await setupDriverTest(c, driverTestConfig);
243
+ const actor = client.dbKvStatsActor.getOrCreate([
244
+ `kv-stats-10-${crypto.randomUUID()}`,
245
+ ]);
246
+
247
+ await actor.bulkInsertLarge();
248
+
249
+ const count = await actor.getRowCount();
250
+ expect(count).toBe(200);
251
+
252
+ const integrity = await actor.runIntegrityCheck();
253
+ expect(integrity).toBe("ok");
254
+ },
255
+ 60_000,
256
+ );
257
+
258
+ test(
259
+ "large transaction survives actor sleep and wake",
260
+ async (c) => {
261
+ const { client } = await setupDriverTest(c, driverTestConfig);
262
+ const actor = client.dbKvStatsActor.getOrCreate([
263
+ `kv-stats-11-${crypto.randomUUID()}`,
264
+ ]);
265
+
266
+ await actor.bulkInsertLarge();
267
+ const countBefore = await actor.getRowCount();
268
+ expect(countBefore).toBe(200);
269
+
270
+ await actor.triggerSleep();
271
+ await waitFor(driverTestConfig, 250);
272
+
273
+ const countAfter = await actor.getRowCount();
274
+ expect(countAfter).toBe(200);
275
+
276
+ const integrity = await actor.runIntegrityCheck();
277
+ expect(integrity).toBe("ok");
278
+ },
279
+ 60_000,
280
+ );
281
+ });
282
+ }
@@ -25,12 +25,16 @@ export function runActorDbRawTests(driverTestConfig: DriverTestConfig) {
25
25
  const { client } = await setupDriverTest(c, driverTestConfig);
26
26
 
27
27
  // First instance adds items
28
- const instance1 = client.dbActorRaw.getOrCreate(["test-persistence"]);
28
+ const instance1 = client.dbActorRaw.getOrCreate([
29
+ "test-persistence",
30
+ ]);
29
31
  await instance1.insertValue("Item 1");
30
32
  await instance1.insertValue("Item 2");
31
33
 
32
34
  // Second instance (same actor) should see persisted data
33
- const instance2 = client.dbActorRaw.getOrCreate(["test-persistence"]);
35
+ const instance2 = client.dbActorRaw.getOrCreate([
36
+ "test-persistence",
37
+ ]);
34
38
  const count = await instance2.getCount();
35
39
  expect(count).toBe(2);
36
40
  });
@@ -52,7 +52,10 @@ export function runActorDbTests(driverTestConfig: DriverTestConfig) {
52
52
  test(
53
53
  "bootstraps schema on startup",
54
54
  async (c) => {
55
- const { client } = await setupDriverTest(c, driverTestConfig);
55
+ const { client } = await setupDriverTest(
56
+ c,
57
+ driverTestConfig,
58
+ );
56
59
  const actor = getDbActor(client, variant).getOrCreate([
57
60
  `db-${variant}-bootstrap-${crypto.randomUUID()}`,
58
61
  ]);
@@ -66,7 +69,10 @@ export function runActorDbTests(driverTestConfig: DriverTestConfig) {
66
69
  test(
67
70
  "supports CRUD, raw SQL, and multi-statement exec",
68
71
  async (c) => {
69
- const { client } = await setupDriverTest(c, driverTestConfig);
72
+ const { client } = await setupDriverTest(
73
+ c,
74
+ driverTestConfig,
75
+ );
70
76
  const actor = getDbActor(client, variant).getOrCreate([
71
77
  `db-${variant}-crud-${crypto.randomUUID()}`,
72
78
  ]);
@@ -78,8 +84,12 @@ export function runActorDbTests(driverTestConfig: DriverTestConfig) {
78
84
 
79
85
  const values = await actor.getValues();
80
86
  expect(values.length).toBeGreaterThanOrEqual(2);
81
- expect(values.some((row) => row.value === "alpha")).toBeTruthy();
82
- expect(values.some((row) => row.value === "beta")).toBeTruthy();
87
+ expect(
88
+ values.some((row) => row.value === "alpha"),
89
+ ).toBeTruthy();
90
+ expect(
91
+ values.some((row) => row.value === "beta"),
92
+ ).toBeTruthy();
83
93
 
84
94
  await actor.updateValue(first.id, "alpha-updated");
85
95
  const updated = await actor.getValue(first.id);
@@ -100,7 +110,8 @@ export function runActorDbTests(driverTestConfig: DriverTestConfig) {
100
110
  expect(rawCount).toBe(1);
101
111
  }
102
112
 
103
- const multiValue = await actor.multiStatementInsert("gamma");
113
+ const multiValue =
114
+ await actor.multiStatementInsert("gamma");
104
115
  expect(multiValue).toBe("gamma-updated");
105
116
  },
106
117
  dbTestTimeout,
@@ -109,7 +120,10 @@ export function runActorDbTests(driverTestConfig: DriverTestConfig) {
109
120
  test(
110
121
  "handles transactions",
111
122
  async (c) => {
112
- const { client } = await setupDriverTest(c, driverTestConfig);
123
+ const { client } = await setupDriverTest(
124
+ c,
125
+ driverTestConfig,
126
+ );
113
127
  const actor = getDbActor(client, variant).getOrCreate([
114
128
  `db-${variant}-tx-${crypto.randomUUID()}`,
115
129
  ]);
@@ -127,7 +141,10 @@ export function runActorDbTests(driverTestConfig: DriverTestConfig) {
127
141
  test(
128
142
  "persists across sleep and wake cycles",
129
143
  async (c) => {
130
- const { client } = await setupDriverTest(c, driverTestConfig);
144
+ const { client } = await setupDriverTest(
145
+ c,
146
+ driverTestConfig,
147
+ );
131
148
  const actor = getDbActor(client, variant).getOrCreate([
132
149
  `db-${variant}-sleep-${crypto.randomUUID()}`,
133
150
  ]);
@@ -149,10 +166,15 @@ export function runActorDbTests(driverTestConfig: DriverTestConfig) {
149
166
  test(
150
167
  "completes onDisconnect DB writes before sleeping",
151
168
  async (c) => {
152
- const { client } = await setupDriverTest(c, driverTestConfig);
169
+ const { client } = await setupDriverTest(
170
+ c,
171
+ driverTestConfig,
172
+ );
153
173
  const key = `db-${variant}-disconnect-${crypto.randomUUID()}`;
154
174
 
155
- const actor = getDbActor(client, variant).getOrCreate([key]);
175
+ const actor = getDbActor(client, variant).getOrCreate([
176
+ key,
177
+ ]);
156
178
  await actor.reset();
157
179
  await actor.configureDisconnectInsert(true, 250);
158
180
 
@@ -167,7 +189,10 @@ export function runActorDbTests(driverTestConfig: DriverTestConfig) {
167
189
  test(
168
190
  "handles high-volume inserts",
169
191
  async (c) => {
170
- const { client } = await setupDriverTest(c, driverTestConfig);
192
+ const { client } = await setupDriverTest(
193
+ c,
194
+ driverTestConfig,
195
+ );
171
196
  const actor = getDbActor(client, variant).getOrCreate([
172
197
  `db-${variant}-high-volume-${crypto.randomUUID()}`,
173
198
  ]);
@@ -187,7 +212,10 @@ export function runActorDbTests(driverTestConfig: DriverTestConfig) {
187
212
  test(
188
213
  "handles payloads across chunk boundaries",
189
214
  async (c) => {
190
- const { client } = await setupDriverTest(c, driverTestConfig);
215
+ const { client } = await setupDriverTest(
216
+ c,
217
+ driverTestConfig,
218
+ );
191
219
  const actor = getDbActor(client, variant).getOrCreate([
192
220
  `db-${variant}-chunk-${crypto.randomUUID()}`,
193
221
  ]);
@@ -205,13 +233,17 @@ export function runActorDbTests(driverTestConfig: DriverTestConfig) {
205
233
  test(
206
234
  "handles large payloads",
207
235
  async (c) => {
208
- const { client } = await setupDriverTest(c, driverTestConfig);
236
+ const { client } = await setupDriverTest(
237
+ c,
238
+ driverTestConfig,
239
+ );
209
240
  const actor = getDbActor(client, variant).getOrCreate([
210
241
  `db-${variant}-large-${crypto.randomUUID()}`,
211
242
  ]);
212
243
 
213
244
  await actor.reset();
214
- const { id } = await actor.insertPayloadOfSize(LARGE_PAYLOAD_SIZE);
245
+ const { id } =
246
+ await actor.insertPayloadOfSize(LARGE_PAYLOAD_SIZE);
215
247
  const storedSize = await actor.getPayloadSize(id);
216
248
  expect(storedSize).toBe(LARGE_PAYLOAD_SIZE);
217
249
  },
@@ -221,7 +253,10 @@ export function runActorDbTests(driverTestConfig: DriverTestConfig) {
221
253
  test(
222
254
  "supports shrink and regrow workloads with vacuum",
223
255
  async (c) => {
224
- const { client } = await setupDriverTest(c, driverTestConfig);
256
+ const { client } = await setupDriverTest(
257
+ c,
258
+ driverTestConfig,
259
+ );
225
260
  const actor = getDbActor(client, variant).getOrCreate([
226
261
  `db-${variant}-shrink-regrow-${crypto.randomUUID()}`,
227
262
  ]);
@@ -256,7 +291,10 @@ export function runActorDbTests(driverTestConfig: DriverTestConfig) {
256
291
  test(
257
292
  "handles repeated updates to the same row",
258
293
  async (c) => {
259
- const { client } = await setupDriverTest(c, driverTestConfig);
294
+ const { client } = await setupDriverTest(
295
+ c,
296
+ driverTestConfig,
297
+ );
260
298
  const actor = getDbActor(client, variant).getOrCreate([
261
299
  `db-${variant}-updates-${crypto.randomUUID()}`,
262
300
  ]);
@@ -289,7 +327,10 @@ export function runActorDbTests(driverTestConfig: DriverTestConfig) {
289
327
  test(
290
328
  "passes integrity checks after mixed workload and sleep",
291
329
  async (c) => {
292
- const { client } = await setupDriverTest(c, driverTestConfig);
330
+ const { client } = await setupDriverTest(
331
+ c,
332
+ driverTestConfig,
333
+ );
293
334
  const actor = getDbActor(client, variant).getOrCreate([
294
335
  `db-${variant}-integrity-${crypto.randomUUID()}`,
295
336
  ]);
@@ -299,11 +340,15 @@ export function runActorDbTests(driverTestConfig: DriverTestConfig) {
299
340
  INTEGRITY_SEED_COUNT,
300
341
  INTEGRITY_CHURN_COUNT,
301
342
  );
302
- expect((await actor.integrityCheck()).toLowerCase()).toBe("ok");
343
+ expect((await actor.integrityCheck()).toLowerCase()).toBe(
344
+ "ok",
345
+ );
303
346
 
304
347
  await actor.triggerSleep();
305
348
  await waitFor(driverTestConfig, SLEEP_WAIT_MS + 100);
306
- expect((await actor.integrityCheck()).toLowerCase()).toBe("ok");
349
+ expect((await actor.integrityCheck()).toLowerCase()).toBe(
350
+ "ok",
351
+ );
307
352
  },
308
353
  dbTestTimeout,
309
354
  );
@@ -315,7 +360,9 @@ export function runActorDbTests(driverTestConfig: DriverTestConfig) {
315
360
  "runs db provider cleanup on sleep",
316
361
  async (c) => {
317
362
  const { client } = await setupDriverTest(c, driverTestConfig);
318
- const observer = client.dbLifecycleObserver.getOrCreate(["observer"]);
363
+ const observer = client.dbLifecycleObserver.getOrCreate([
364
+ "observer",
365
+ ]);
319
366
 
320
367
  const lifecycle = client.dbLifecycle.getOrCreate([
321
368
  `db-lifecycle-sleep-${crypto.randomUUID()}`,
@@ -340,7 +387,9 @@ export function runActorDbTests(driverTestConfig: DriverTestConfig) {
340
387
 
341
388
  expect(after.create).toBeGreaterThanOrEqual(before.create);
342
389
  expect(after.migrate).toBeGreaterThanOrEqual(before.migrate);
343
- expect(after.cleanup).toBeGreaterThanOrEqual(before.cleanup + 1);
390
+ expect(after.cleanup).toBeGreaterThanOrEqual(
391
+ before.cleanup + 1,
392
+ );
344
393
  },
345
394
  lifecycleTestTimeout,
346
395
  );
@@ -349,7 +398,9 @@ export function runActorDbTests(driverTestConfig: DriverTestConfig) {
349
398
  "runs db provider cleanup on destroy",
350
399
  async (c) => {
351
400
  const { client } = await setupDriverTest(c, driverTestConfig);
352
- const observer = client.dbLifecycleObserver.getOrCreate(["observer"]);
401
+ const observer = client.dbLifecycleObserver.getOrCreate([
402
+ "observer",
403
+ ]);
353
404
 
354
405
  const lifecycle = client.dbLifecycle.getOrCreate([
355
406
  `db-lifecycle-destroy-${crypto.randomUUID()}`,
@@ -380,8 +431,11 @@ export function runActorDbTests(driverTestConfig: DriverTestConfig) {
380
431
  "runs db provider cleanup when migration fails",
381
432
  async (c) => {
382
433
  const { client } = await setupDriverTest(c, driverTestConfig);
383
- const observer = client.dbLifecycleObserver.getOrCreate(["observer"]);
384
- const beforeTotalCleanup = await observer.getTotalCleanupCount();
434
+ const observer = client.dbLifecycleObserver.getOrCreate([
435
+ "observer",
436
+ ]);
437
+ const beforeTotalCleanup =
438
+ await observer.getTotalCleanupCount();
385
439
  const key = `db-lifecycle-migrate-failure-${crypto.randomUUID()}`;
386
440
  const lifecycle = client.dbLifecycleFailing.getOrCreate([key]);
387
441
 
@@ -402,7 +456,9 @@ export function runActorDbTests(driverTestConfig: DriverTestConfig) {
402
456
  await waitFor(driverTestConfig, LIFECYCLE_POLL_INTERVAL_MS);
403
457
  }
404
458
 
405
- expect(cleanupCount).toBeGreaterThanOrEqual(beforeTotalCleanup + 1);
459
+ expect(cleanupCount).toBeGreaterThanOrEqual(
460
+ beforeTotalCleanup + 1,
461
+ );
406
462
  },
407
463
  lifecycleTestTimeout,
408
464
  );
@@ -411,7 +467,9 @@ export function runActorDbTests(driverTestConfig: DriverTestConfig) {
411
467
  "handles parallel actor lifecycle churn",
412
468
  async (c) => {
413
469
  const { client } = await setupDriverTest(c, driverTestConfig);
414
- const observer = client.dbLifecycleObserver.getOrCreate(["observer"]);
470
+ const observer = client.dbLifecycleObserver.getOrCreate([
471
+ "observer",
472
+ ]);
415
473
 
416
474
  const actorHandles = Array.from({ length: 12 }, (_, i) =>
417
475
  client.dbLifecycle.getOrCreate([
@@ -423,19 +481,29 @@ export function runActorDbTests(driverTestConfig: DriverTestConfig) {
423
481
  );
424
482
 
425
483
  await Promise.all(
426
- actorHandles.map((handle, i) => handle.insertValue(`phase-1-${i}`)),
484
+ actorHandles.map((handle, i) =>
485
+ handle.insertValue(`phase-1-${i}`),
486
+ ),
487
+ );
488
+ await Promise.all(
489
+ actorHandles.map((handle) => handle.triggerSleep()),
427
490
  );
428
- await Promise.all(actorHandles.map((handle) => handle.triggerSleep()));
429
491
  await waitFor(driverTestConfig, SLEEP_WAIT_MS + 100);
430
492
  await Promise.all(
431
- actorHandles.map((handle, i) => handle.insertValue(`phase-2-${i}`)),
493
+ actorHandles.map((handle, i) =>
494
+ handle.insertValue(`phase-2-${i}`),
495
+ ),
432
496
  );
433
497
 
434
498
  const survivors = actorHandles.slice(0, 6);
435
499
  const destroyed = actorHandles.slice(6);
436
500
 
437
- await Promise.all(destroyed.map((handle) => handle.triggerDestroy()));
438
- await Promise.all(survivors.map((handle) => handle.triggerSleep()));
501
+ await Promise.all(
502
+ destroyed.map((handle) => handle.triggerDestroy()),
503
+ );
504
+ await Promise.all(
505
+ survivors.map((handle) => handle.triggerSleep()),
506
+ );
439
507
  await waitFor(driverTestConfig, SLEEP_WAIT_MS + 100);
440
508
  await Promise.all(survivors.map((handle) => handle.ping()));
441
509
 
@@ -468,7 +536,9 @@ export function runActorDbTests(driverTestConfig: DriverTestConfig) {
468
536
  }
469
537
 
470
538
  for (const actorId of actorIds) {
471
- expect(lifecycleCleanup.get(actorId) ?? 0).toBeGreaterThanOrEqual(1);
539
+ expect(
540
+ lifecycleCleanup.get(actorId) ?? 0,
541
+ ).toBeGreaterThanOrEqual(1);
472
542
  }
473
543
  },
474
544
  lifecycleTestTimeout,