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,1060 @@
1
+ import {
2
+ ActorError,
3
+ INTERNAL_ERROR_CODE,
4
+ INTERNAL_ERROR_DESCRIPTION
5
+ } from "./chunk-7HTNH26M.js";
6
+
7
+ // src/utils/env-vars.ts
8
+ var getRivetEngine = () => getEnvUniversal("RIVET_ENGINE");
9
+ var getRivetEndpoint = () => getEnvUniversal("RIVET_ENDPOINT");
10
+ var getRivetToken = () => getEnvUniversal("RIVET_TOKEN");
11
+ var getRivetNamespace = () => getEnvUniversal("RIVET_NAMESPACE");
12
+ var getRivetRunner = () => getEnvUniversal("RIVET_RUNNER");
13
+ var getRivetTotalSlots = () => {
14
+ const value = getEnvUniversal("RIVET_TOTAL_SLOTS");
15
+ return value !== void 0 ? parseInt(value, 10) : void 0;
16
+ };
17
+ var getRivetRunnerKey = () => getEnvUniversal("RIVET_RUNNER_KEY");
18
+ var getRivetRunEngine = () => getEnvUniversal("RIVET_RUN_ENGINE") === "1";
19
+ var getRivetRunEngineVersion = () => getEnvUniversal("RIVET_RUN_ENGINE_VERSION");
20
+ var getRivetRunnerKind = () => getEnvUniversal("RIVET_RUNNER_KIND");
21
+ var getRivetRunnerVersion = () => {
22
+ const value = getEnvUniversal("RIVET_RUNNER_VERSION");
23
+ return value !== void 0 ? parseInt(value, 10) : void 0;
24
+ };
25
+ var getRivetPublicEndpoint = () => getEnvUniversal("RIVET_PUBLIC_ENDPOINT");
26
+ var getRivetPublicToken = () => getEnvUniversal("RIVET_PUBLIC_TOKEN");
27
+ var getRivetkitInspectorToken = () => getEnvUniversal("RIVET_INSPECTOR_TOKEN");
28
+ var getRivetkitInspectorDisable = () => getEnvUniversal("RIVET_INSPECTOR_DISABLE") === "1";
29
+ var getRivetkitStoragePath = () => getEnvUniversal("RIVETKIT_STORAGE_PATH");
30
+ var getLogLevel = () => getEnvUniversal("RIVET_LOG_LEVEL") ?? getEnvUniversal("LOG_LEVEL");
31
+ var getLogTarget = () => getEnvUniversal("RIVET_LOG_TARGET") === "1";
32
+ var getLogTimestamp = () => getEnvUniversal("RIVET_LOG_TIMESTAMP") === "1";
33
+ var getLogMessage = () => getEnvUniversal("RIVET_LOG_MESSAGE") === "1";
34
+ var getLogErrorStack = () => getEnvUniversal("RIVET_LOG_ERROR_STACK") === "1";
35
+ var getLogHeaders = () => getEnvUniversal("RIVET_LOG_HEADERS") === "1";
36
+ var getNodeEnv = () => getEnvUniversal("NODE_ENV");
37
+ var getNextPhase = () => getEnvUniversal("NEXT_PHASE");
38
+ var isDev = () => getNodeEnv() !== "production";
39
+ var getRivetExperimentalOtel = () => getEnvUniversal("RIVET_EXPERIMENTAL_OTEL") === "1";
40
+
41
+ // src/common/utils.ts
42
+ function assertUnreachable(x) {
43
+ throw new Error(`Unreachable case: ${x}`);
44
+ }
45
+ function isCborSerializable(value, onInvalid, currentPath = "") {
46
+ if (value === null || value === void 0) {
47
+ return true;
48
+ }
49
+ if (typeof value === "number") {
50
+ if (!Number.isFinite(value)) {
51
+ onInvalid == null ? void 0 : onInvalid(currentPath);
52
+ return false;
53
+ }
54
+ return true;
55
+ }
56
+ if (typeof value === "boolean" || typeof value === "string") {
57
+ return true;
58
+ }
59
+ if (typeof value === "bigint") {
60
+ return true;
61
+ }
62
+ if (value instanceof Date) {
63
+ return true;
64
+ }
65
+ if (value instanceof Uint8Array || value instanceof Uint8ClampedArray || value instanceof Uint16Array || value instanceof Uint32Array || value instanceof BigUint64Array || value instanceof Int8Array || value instanceof Int16Array || value instanceof Int32Array || value instanceof BigInt64Array || value instanceof Float32Array || value instanceof Float64Array) {
66
+ return true;
67
+ }
68
+ if (value instanceof Map) {
69
+ for (const [key, val] of value.entries()) {
70
+ const keyPath = currentPath ? `${currentPath}.key(${String(key)})` : `key(${String(key)})`;
71
+ const valPath = currentPath ? `${currentPath}.value(${String(key)})` : `value(${String(key)})`;
72
+ if (!isCborSerializable(key, onInvalid, keyPath) || !isCborSerializable(val, onInvalid, valPath)) {
73
+ return false;
74
+ }
75
+ }
76
+ return true;
77
+ }
78
+ if (value instanceof Set) {
79
+ let index = 0;
80
+ for (const item of value.values()) {
81
+ const itemPath = currentPath ? `${currentPath}.set[${index}]` : `set[${index}]`;
82
+ if (!isCborSerializable(item, onInvalid, itemPath)) {
83
+ return false;
84
+ }
85
+ index++;
86
+ }
87
+ return true;
88
+ }
89
+ if (value instanceof RegExp) {
90
+ return true;
91
+ }
92
+ if (value instanceof Error) {
93
+ return true;
94
+ }
95
+ if (Array.isArray(value)) {
96
+ for (let i = 0; i < value.length; i++) {
97
+ const itemPath = currentPath ? `${currentPath}[${i}]` : `[${i}]`;
98
+ if (!isCborSerializable(value[i], onInvalid, itemPath)) {
99
+ return false;
100
+ }
101
+ }
102
+ return true;
103
+ }
104
+ if (typeof value === "object") {
105
+ const proto = Object.getPrototypeOf(value);
106
+ if (proto !== null && proto !== Object.prototype) {
107
+ const protoConstructor = value.constructor;
108
+ if (protoConstructor && typeof protoConstructor.name === "string") {
109
+ }
110
+ }
111
+ for (const key in value) {
112
+ const propPath = currentPath ? `${currentPath}.${key}` : key;
113
+ if (!isCborSerializable(
114
+ value[key],
115
+ onInvalid,
116
+ propPath
117
+ )) {
118
+ return false;
119
+ }
120
+ }
121
+ return true;
122
+ }
123
+ onInvalid == null ? void 0 : onInvalid(currentPath);
124
+ return false;
125
+ }
126
+ function deconstructError(error, logger2, extraLog, exposeInternalError = false) {
127
+ let statusCode;
128
+ let public_;
129
+ let group;
130
+ let code;
131
+ let message;
132
+ let metadata;
133
+ if (ActorError.isActorError(error) && error.public) {
134
+ statusCode = "statusCode" in error && error.statusCode ? error.statusCode : 400;
135
+ public_ = true;
136
+ group = error.group;
137
+ code = error.code;
138
+ message = getErrorMessage(error);
139
+ metadata = error.metadata;
140
+ logger2.info({
141
+ msg: "public error",
142
+ group,
143
+ code,
144
+ message,
145
+ ...EXTRA_ERROR_LOG,
146
+ ...extraLog
147
+ });
148
+ } else if (exposeInternalError) {
149
+ if (ActorError.isActorError(error)) {
150
+ statusCode = 500;
151
+ public_ = false;
152
+ group = error.group;
153
+ code = error.code;
154
+ message = getErrorMessage(error);
155
+ metadata = error.metadata;
156
+ logger2.info({
157
+ msg: "internal error",
158
+ group,
159
+ code,
160
+ message,
161
+ stack: error == null ? void 0 : error.stack,
162
+ ...EXTRA_ERROR_LOG,
163
+ ...extraLog
164
+ });
165
+ } else {
166
+ statusCode = 500;
167
+ public_ = false;
168
+ group = "rivetkit";
169
+ code = INTERNAL_ERROR_CODE;
170
+ message = getErrorMessage(error);
171
+ logger2.info({
172
+ msg: "internal error",
173
+ group,
174
+ code,
175
+ message,
176
+ stack: error == null ? void 0 : error.stack,
177
+ ...EXTRA_ERROR_LOG,
178
+ ...extraLog
179
+ });
180
+ }
181
+ } else {
182
+ statusCode = 500;
183
+ public_ = false;
184
+ group = "rivetkit";
185
+ code = INTERNAL_ERROR_CODE;
186
+ message = INTERNAL_ERROR_DESCRIPTION;
187
+ metadata = {
188
+ //url: `https://hub.rivet.dev/projects/${actorMetadata.project.slug}/environments/${actorMetadata.environment.slug}/actors?actorId=${actorMetadata.actor.id}`,
189
+ };
190
+ logger2.warn({
191
+ msg: "internal error",
192
+ error: getErrorMessage(error),
193
+ stack: error == null ? void 0 : error.stack,
194
+ ...EXTRA_ERROR_LOG,
195
+ ...extraLog
196
+ });
197
+ }
198
+ return {
199
+ __type: "ActorError",
200
+ statusCode,
201
+ public: public_,
202
+ group,
203
+ code,
204
+ message,
205
+ metadata
206
+ };
207
+ }
208
+ function stringifyError(error) {
209
+ if (error instanceof Error) {
210
+ if (typeof process !== "undefined" && getLogErrorStack()) {
211
+ return `${error.name}: ${error.message}${error.stack ? `
212
+ ${error.stack}` : ""}`;
213
+ } else {
214
+ return `${error.name}: ${error.message}`;
215
+ }
216
+ } else if (typeof error === "string") {
217
+ return error;
218
+ } else if (typeof error === "object" && error !== null) {
219
+ try {
220
+ return `${JSON.stringify(error)}`;
221
+ } catch {
222
+ return "[cannot stringify error]";
223
+ }
224
+ } else {
225
+ return `Unknown error: ${getErrorMessage(error)}`;
226
+ }
227
+ }
228
+ function getErrorMessage(err) {
229
+ if (err && typeof err === "object" && "message" in err && typeof err.message === "string") {
230
+ return err.message;
231
+ } else {
232
+ return String(err);
233
+ }
234
+ }
235
+ function noopNext() {
236
+ return async () => {
237
+ };
238
+ }
239
+
240
+ // package.json
241
+ var package_default = {
242
+ name: "rivetkit",
243
+ version: "2.0.4-rc.1",
244
+ description: "Lightweight libraries for building stateful actors on edge platforms",
245
+ license: "Apache-2.0",
246
+ keywords: [
247
+ "rivetkit",
248
+ "stateful",
249
+ "serverless",
250
+ "actors",
251
+ "agents",
252
+ "realtime",
253
+ "websocket",
254
+ "actors",
255
+ "framework"
256
+ ],
257
+ files: [
258
+ "dist",
259
+ "src",
260
+ "deno.json",
261
+ "bun.json",
262
+ "package.json"
263
+ ],
264
+ type: "module",
265
+ exports: {
266
+ ".": {
267
+ import: {
268
+ types: "./dist/tsup/mod.d.ts",
269
+ default: "./dist/tsup/mod.js"
270
+ },
271
+ require: {
272
+ types: "./dist/tsup/mod.d.cts",
273
+ default: "./dist/tsup/mod.cjs"
274
+ }
275
+ },
276
+ "./workflow": {
277
+ import: {
278
+ types: "./dist/tsup/workflow/mod.d.ts",
279
+ default: "./dist/tsup/workflow/mod.js"
280
+ },
281
+ require: {
282
+ types: "./dist/tsup/workflow/mod.d.cts",
283
+ default: "./dist/tsup/workflow/mod.cjs"
284
+ }
285
+ },
286
+ "./client": {
287
+ import: {
288
+ browser: {
289
+ types: "./dist/browser/client.d.ts",
290
+ default: "./dist/browser/client.js"
291
+ },
292
+ types: "./dist/tsup/client/mod.d.ts",
293
+ default: "./dist/tsup/client/mod.js"
294
+ },
295
+ require: {
296
+ types: "./dist/tsup/client/mod.d.cts",
297
+ default: "./dist/tsup/client/mod.cjs"
298
+ }
299
+ },
300
+ "./log": {
301
+ import: {
302
+ types: "./dist/tsup/common/log.d.ts",
303
+ default: "./dist/tsup/common/log.js"
304
+ },
305
+ require: {
306
+ types: "./dist/tsup/common/log.d.cts",
307
+ default: "./dist/tsup/common/log.cjs"
308
+ }
309
+ },
310
+ "./errors": {
311
+ import: {
312
+ types: "./dist/tsup/actor/errors.d.ts",
313
+ default: "./dist/tsup/actor/errors.js"
314
+ },
315
+ require: {
316
+ types: "./dist/tsup/actor/errors.d.cts",
317
+ default: "./dist/tsup/actor/errors.cjs"
318
+ }
319
+ },
320
+ "./utils": {
321
+ import: {
322
+ types: "./dist/tsup/utils.d.ts",
323
+ default: "./dist/tsup/utils.js"
324
+ },
325
+ require: {
326
+ types: "./dist/tsup/utils.d.cts",
327
+ default: "./dist/tsup/utils.cjs"
328
+ }
329
+ },
330
+ "./driver-helpers": {
331
+ import: {
332
+ types: "./dist/tsup/driver-helpers/mod.d.ts",
333
+ default: "./dist/tsup/driver-helpers/mod.js"
334
+ },
335
+ require: {
336
+ types: "./dist/tsup/driver-helpers/mod.d.cts",
337
+ default: "./dist/tsup/driver-helpers/mod.cjs"
338
+ }
339
+ },
340
+ "./driver-helpers/websocket": {
341
+ import: {
342
+ types: "./dist/tsup/common/websocket.d.ts",
343
+ default: "./dist/tsup/common/websocket.js"
344
+ },
345
+ require: {
346
+ types: "./dist/tsup/common/websocket.d.cts",
347
+ default: "./dist/tsup/common/websocket.cjs"
348
+ }
349
+ },
350
+ "./driver-test-suite": {
351
+ import: {
352
+ types: "./dist/tsup/driver-test-suite/mod.d.ts",
353
+ default: "./dist/tsup/driver-test-suite/mod.js"
354
+ },
355
+ require: {
356
+ types: "./dist/tsup/driver-test-suite/mod.d.cts",
357
+ default: "./dist/tsup/driver-test-suite/mod.cjs"
358
+ }
359
+ },
360
+ "./serve-test-suite": {
361
+ import: {
362
+ types: "./dist/tsup/serve-test-suite/mod.d.ts",
363
+ default: "./dist/tsup/serve-test-suite/mod.js"
364
+ },
365
+ require: {
366
+ types: "./dist/tsup/serve-test-suite/mod.d.cts",
367
+ default: "./dist/tsup/serve-test-suite/mod.cjs"
368
+ }
369
+ },
370
+ "./topologies/coordinate": {
371
+ import: {
372
+ types: "./dist/tsup/topologies/coordinate/mod.d.ts",
373
+ default: "./dist/tsup/topologies/coordinate/mod.js"
374
+ },
375
+ require: {
376
+ types: "./dist/tsup/topologies/coordinate/mod.d.cts",
377
+ default: "./dist/tsup/topologies/coordinate/mod.cjs"
378
+ }
379
+ },
380
+ "./topologies/partition": {
381
+ import: {
382
+ types: "./dist/tsup/topologies/partition/mod.d.ts",
383
+ default: "./dist/tsup/topologies/partition/mod.js"
384
+ },
385
+ require: {
386
+ types: "./dist/tsup/topologies/partition/mod.d.cts",
387
+ default: "./dist/tsup/topologies/partition/mod.cjs"
388
+ }
389
+ },
390
+ "./test": {
391
+ import: {
392
+ types: "./dist/tsup/test/mod.d.ts",
393
+ default: "./dist/tsup/test/mod.js"
394
+ },
395
+ require: {
396
+ types: "./dist/tsup/test/mod.d.cts",
397
+ default: "./dist/tsup/test/mod.cjs"
398
+ }
399
+ },
400
+ "./inspector": {
401
+ import: {
402
+ types: "./dist/tsup/inspector/mod.d.ts",
403
+ default: "./dist/tsup/inspector/mod.js"
404
+ },
405
+ require: {
406
+ types: "./dist/tsup/inspector/mod.d.cts",
407
+ default: "./dist/tsup/inspector/mod.cjs"
408
+ }
409
+ },
410
+ "./inspector/client": {
411
+ import: {
412
+ types: "./dist/browser/inspector/client.d.ts",
413
+ default: "./dist/browser/inspector/client.js"
414
+ }
415
+ },
416
+ "./db": {
417
+ import: {
418
+ types: "./dist/tsup/db/mod.d.ts",
419
+ default: "./dist/tsup/db/mod.js"
420
+ },
421
+ require: {
422
+ types: "./dist/tsup/db/mod.d.cts",
423
+ default: "./dist/tsup/db/mod.cjs"
424
+ }
425
+ },
426
+ "./db/drizzle": {
427
+ import: {
428
+ types: "./dist/tsup/db/drizzle/mod.d.ts",
429
+ default: "./dist/tsup/db/drizzle/mod.js"
430
+ },
431
+ require: {
432
+ types: "./dist/tsup/db/drizzle/mod.d.cts",
433
+ default: "./dist/tsup/db/drizzle/mod.cjs"
434
+ }
435
+ }
436
+ },
437
+ engines: {
438
+ node: ">=22.0.0"
439
+ },
440
+ sideEffects: [
441
+ "./dist/tsup/chunk-*.js",
442
+ "./dist/tsup/chunk-*.cjs"
443
+ ],
444
+ scripts: {
445
+ build: "tsup src/mod.ts src/client/mod.ts src/common/log.ts src/common/websocket.ts src/actor/errors.ts src/topologies/coordinate/mod.ts src/topologies/partition/mod.ts src/utils.ts src/driver-helpers/mod.ts src/driver-test-suite/mod.ts src/serve-test-suite/mod.ts src/test/mod.ts src/inspector/mod.ts src/workflow/mod.ts src/db/mod.ts src/db/drizzle/mod.ts",
446
+ "build:browser": "tsup --config tsup.browser.config.ts",
447
+ "build:schema": "./scripts/compile-bare.ts compile schemas/client-protocol/v1.bare -o dist/schemas/client-protocol/v1.ts && ./scripts/compile-bare.ts compile schemas/client-protocol/v2.bare -o dist/schemas/client-protocol/v2.ts && ./scripts/compile-bare.ts compile schemas/client-protocol/v3.bare -o dist/schemas/client-protocol/v3.ts && ./scripts/compile-bare.ts compile schemas/file-system-driver/v1.bare -o dist/schemas/file-system-driver/v1.ts && ./scripts/compile-bare.ts compile schemas/file-system-driver/v2.bare -o dist/schemas/file-system-driver/v2.ts && ./scripts/compile-bare.ts compile schemas/file-system-driver/v3.bare -o dist/schemas/file-system-driver/v3.ts && ./scripts/compile-bare.ts compile schemas/actor-persist/v1.bare -o dist/schemas/actor-persist/v1.ts && ./scripts/compile-bare.ts compile schemas/actor-persist/v2.bare -o dist/schemas/actor-persist/v2.ts && ./scripts/compile-bare.ts compile schemas/actor-persist/v3.bare -o dist/schemas/actor-persist/v3.ts && ./scripts/compile-bare.ts compile schemas/actor-persist/v4.bare -o dist/schemas/actor-persist/v4.ts && ./scripts/compile-bare.ts compile schemas/persist/v1.bare -o dist/schemas/persist/v1.ts && ./scripts/compile-bare.ts compile schemas/transport/v1.bare -o dist/schemas/transport/v1.ts && ./scripts/compile-bare.ts compile schemas/actor-inspector/v1.bare -o dist/schemas/actor-inspector/v1.ts && ./scripts/compile-bare.ts compile schemas/actor-inspector/v2.bare -o dist/schemas/actor-inspector/v2.ts && ./scripts/compile-bare.ts compile schemas/actor-inspector/v3.bare -o dist/schemas/actor-inspector/v3.ts",
448
+ "check-types": "tsc --noEmit",
449
+ lint: "biome check .",
450
+ "lint:fix": "biome check --write .",
451
+ format: "biome format .",
452
+ "format:write": "biome format --write .",
453
+ test: "vitest run",
454
+ "test:watch": "vitest",
455
+ "manager-openapi-gen": "tsx scripts/manager-openapi-gen.ts",
456
+ "dump-asyncapi": "tsx scripts/dump-asyncapi.ts",
457
+ "registry-config-schema-gen": "tsx scripts/registry-config-schema-gen.ts",
458
+ "actor-config-schema-gen": "tsx scripts/actor-config-schema-gen.ts",
459
+ "build:pack-inspector": "tsx scripts/pack-inspector.ts"
460
+ },
461
+ dependencies: {
462
+ "@hono/standard-validator": "^0.1.3",
463
+ "@hono/zod-openapi": "^1.1.5",
464
+ "@rivetkit/bare-ts": "^0.6.2",
465
+ "@rivetkit/engine-runner": "workspace:*",
466
+ "@rivetkit/fast-json-patch": "^3.1.2",
467
+ "@rivetkit/on-change": "^6.0.2-rc.1",
468
+ "@rivetkit/sqlite-vfs": "workspace:*",
469
+ "@rivetkit/traces": "workspace:*",
470
+ "@rivetkit/virtual-websocket": "workspace:*",
471
+ "@rivetkit/workflow-engine": "workspace:*",
472
+ "cbor-x": "^1.6.0",
473
+ "get-port": "^7.1.0",
474
+ hono: "^4.7.0",
475
+ invariant: "^2.2.4",
476
+ nanoevents: "^9.1.0",
477
+ "p-retry": "^6.2.1",
478
+ pino: "^9.5.0",
479
+ tar: "^7.5.0",
480
+ uuid: "^12.0.0",
481
+ vbare: "^0.0.4",
482
+ "@rivetkit/sqlite": "^0.1.1",
483
+ zod: "^4.1.0"
484
+ },
485
+ devDependencies: {
486
+ "@bare-ts/tools": "^0.13.0",
487
+ "@biomejs/biome": "^2.3",
488
+ "@hono/node-server": "^1.18.2",
489
+ "@hono/node-ws": "^1.1.1",
490
+ "@standard-schema/spec": "^1.0.0",
491
+ "@types/invariant": "^2",
492
+ "@types/node": "^22.13.1",
493
+ "@types/ws": "^8",
494
+ "@vitest/ui": "3.1.1",
495
+ "cli-table3": "^0.6.5",
496
+ commander: "^12.1.0",
497
+ eventsource: "^4.0.0",
498
+ "local-pkg": "^0.5.1",
499
+ tsup: "^8.4.0",
500
+ tsx: "^4.19.4",
501
+ typescript: "^5.7.3",
502
+ "vite-tsconfig-paths": "^5.1.4",
503
+ vitest: "^3.1.1",
504
+ ws: "^8.18.1",
505
+ "zod-to-json-schema": "^3.25.0"
506
+ },
507
+ peerDependencies: {
508
+ "@hono/node-server": "^1.14.0",
509
+ "@hono/node-ws": "^1.1.1",
510
+ "drizzle-kit": "^0.31.2",
511
+ "drizzle-orm": "^0.44.2",
512
+ eventsource: "^4.0.0",
513
+ ws: "^8.0.0"
514
+ },
515
+ peerDependenciesMeta: {
516
+ "@hono/node-server": {
517
+ optional: true
518
+ },
519
+ "@hono/node-ws": {
520
+ optional: true
521
+ },
522
+ "drizzle-kit": {
523
+ optional: true
524
+ },
525
+ "drizzle-orm": {
526
+ optional: true
527
+ },
528
+ eventsource: {
529
+ optional: true
530
+ },
531
+ ws: {
532
+ optional: true
533
+ }
534
+ },
535
+ stableVersion: "0.8.0"
536
+ };
537
+
538
+ // src/common/log.ts
539
+ import {
540
+ pino,
541
+ stdTimeFunctions
542
+ } from "pino";
543
+ import { z } from "zod/v4";
544
+
545
+ // src/common/log-levels.ts
546
+ var LogLevels = {
547
+ TRACE: 0,
548
+ DEBUG: 1,
549
+ INFO: 2,
550
+ WARN: 3,
551
+ ERROR: 4,
552
+ CRITICAL: 5
553
+ };
554
+
555
+ // src/common/logfmt.ts
556
+ var LOG_LEVEL_COLORS = {
557
+ [LogLevels.CRITICAL]: "\x1B[31m",
558
+ // Red
559
+ [LogLevels.ERROR]: "\x1B[31m",
560
+ // Red
561
+ [LogLevels.WARN]: "\x1B[33m",
562
+ // Yellow
563
+ [LogLevels.INFO]: "\x1B[32m",
564
+ // Green
565
+ [LogLevels.DEBUG]: "\x1B[36m",
566
+ // Cyan
567
+ [LogLevels.TRACE]: "\x1B[36m"
568
+ // Cyan
569
+ };
570
+ var RESET_COLOR = "\x1B[0m";
571
+ function stringify(data) {
572
+ let line = "";
573
+ const entries = Object.entries(data);
574
+ for (let i = 0; i < entries.length; i++) {
575
+ const [key, valueRaw] = entries[i];
576
+ let isNull = false;
577
+ let valueString;
578
+ if (valueRaw == null) {
579
+ isNull = true;
580
+ valueString = "";
581
+ } else {
582
+ valueString = valueRaw.toString();
583
+ }
584
+ if (valueString.length > 512 && key !== "msg" && key !== "error")
585
+ valueString = `${valueString.slice(0, 512)}...`;
586
+ const needsQuoting = valueString.indexOf(" ") > -1 || valueString.indexOf("=") > -1;
587
+ const needsEscaping = valueString.indexOf('"') > -1 || valueString.indexOf("\\") > -1;
588
+ valueString = valueString.replace(/\n/g, "\\n");
589
+ if (needsEscaping) valueString = valueString.replace(/["\\]/g, "\\$&");
590
+ if (needsQuoting || needsEscaping) valueString = `"${valueString}"`;
591
+ if (valueString === "" && !isNull) valueString = '""';
592
+ if (LOGGER_CONFIG.enableColor) {
593
+ let color = "\x1B[2m";
594
+ if (key === "level") {
595
+ const level = LogLevels[valueString];
596
+ const levelColor = LOG_LEVEL_COLORS[level];
597
+ if (levelColor) {
598
+ color = levelColor;
599
+ }
600
+ } else if (key === "msg") {
601
+ color = "\x1B[32m";
602
+ } else if (key === "trace") {
603
+ color = "\x1B[34m";
604
+ }
605
+ line += `\x1B[0m\x1B[1m${key}\x1B[0m\x1B[2m=\x1B[0m${color}${valueString}${RESET_COLOR}`;
606
+ } else {
607
+ line += `${key}=${valueString}`;
608
+ }
609
+ if (i !== entries.length - 1) {
610
+ line += " ";
611
+ }
612
+ }
613
+ return line;
614
+ }
615
+ function formatTimestamp(date) {
616
+ const year = date.getUTCFullYear();
617
+ const month = String(date.getUTCMonth() + 1).padStart(2, "0");
618
+ const day = String(date.getUTCDate()).padStart(2, "0");
619
+ const hours = String(date.getUTCHours()).padStart(2, "0");
620
+ const minutes = String(date.getUTCMinutes()).padStart(2, "0");
621
+ const seconds = String(date.getUTCSeconds()).padStart(2, "0");
622
+ const milliseconds = String(date.getUTCMilliseconds()).padStart(3, "0");
623
+ return `${year}-${month}-${day}T${hours}:${minutes}:${seconds}.${milliseconds}Z`;
624
+ }
625
+ function castToLogValue(v) {
626
+ if (typeof v === "string" || typeof v === "number" || typeof v === "bigint" || typeof v === "boolean" || v === null || v === void 0) {
627
+ return v;
628
+ }
629
+ if (v instanceof Error) {
630
+ return String(v);
631
+ }
632
+ try {
633
+ return JSON.stringify(v);
634
+ } catch {
635
+ return "[cannot stringify]";
636
+ }
637
+ }
638
+ var LOGGER_CONFIG = {
639
+ enableColor: false,
640
+ enableSpreadObject: false,
641
+ enableErrorStack: false
642
+ };
643
+
644
+ // src/common/log.ts
645
+ var baseLogger;
646
+ var configuredLogLevel;
647
+ var loggerCache = /* @__PURE__ */ new Map();
648
+ var LogLevelSchema = z.enum([
649
+ "trace",
650
+ "debug",
651
+ "info",
652
+ "warn",
653
+ "error",
654
+ "fatal",
655
+ "silent"
656
+ ]);
657
+ function getPinoLevel(logLevel) {
658
+ if (logLevel) {
659
+ return logLevel;
660
+ }
661
+ if (configuredLogLevel) {
662
+ return configuredLogLevel;
663
+ }
664
+ const raw = (getLogLevel() || "warn").toString().toLowerCase();
665
+ const parsed = LogLevelSchema.safeParse(raw);
666
+ if (parsed.success) {
667
+ return parsed.data;
668
+ }
669
+ return "info";
670
+ }
671
+ function getIncludeTarget() {
672
+ return getLogTarget();
673
+ }
674
+ function configureBaseLogger(logger2) {
675
+ baseLogger = logger2;
676
+ loggerCache.clear();
677
+ }
678
+ function customWrite(level, o) {
679
+ const entries = {};
680
+ if (getLogTimestamp() && o.time) {
681
+ const date = typeof o.time === "number" ? new Date(o.time) : /* @__PURE__ */ new Date();
682
+ entries.ts = formatTimestamp(date);
683
+ }
684
+ entries.level = level.toUpperCase();
685
+ if (o.target) {
686
+ entries.target = o.target;
687
+ }
688
+ if (o.msg) {
689
+ entries.msg = o.msg;
690
+ }
691
+ for (const [key, value] of Object.entries(o)) {
692
+ if (key !== "time" && key !== "level" && key !== "target" && key !== "msg" && key !== "pid" && key !== "hostname") {
693
+ entries[key] = castToLogValue(value);
694
+ }
695
+ }
696
+ const output = stringify(entries);
697
+ console.log(output);
698
+ }
699
+ function configureDefaultLogger(logLevel) {
700
+ if (logLevel) {
701
+ configuredLogLevel = logLevel;
702
+ }
703
+ baseLogger = pino({
704
+ level: getPinoLevel(logLevel),
705
+ messageKey: "msg",
706
+ // Do not include pid/hostname in output
707
+ base: {},
708
+ // Keep a string level in the output
709
+ formatters: {
710
+ level(_label, number) {
711
+ return { level: number };
712
+ }
713
+ },
714
+ timestamp: getLogTimestamp() ? stdTimeFunctions.epochTime : false,
715
+ browser: {
716
+ write: {
717
+ fatal: customWrite.bind(null, "fatal"),
718
+ error: customWrite.bind(null, "error"),
719
+ warn: customWrite.bind(null, "warn"),
720
+ info: customWrite.bind(null, "info"),
721
+ debug: customWrite.bind(null, "debug"),
722
+ trace: customWrite.bind(null, "trace")
723
+ }
724
+ },
725
+ hooks: {
726
+ logMethod(inputArgs, method, level) {
727
+ var _a;
728
+ const levelMap = {
729
+ 10: "trace",
730
+ 20: "debug",
731
+ 30: "info",
732
+ 40: "warn",
733
+ 50: "error",
734
+ 60: "fatal"
735
+ };
736
+ const levelName = levelMap[level] || "info";
737
+ const time = getLogTimestamp() ? Date.now() : void 0;
738
+ const bindings = ((_a = this.bindings) == null ? void 0 : _a.call(this)) || {};
739
+ if (inputArgs.length >= 2) {
740
+ const [objOrMsg, msg] = inputArgs;
741
+ if (typeof objOrMsg === "object" && objOrMsg !== null) {
742
+ customWrite(levelName, {
743
+ ...bindings,
744
+ ...objOrMsg,
745
+ msg,
746
+ time
747
+ });
748
+ } else {
749
+ customWrite(levelName, {
750
+ ...bindings,
751
+ msg: String(objOrMsg),
752
+ time
753
+ });
754
+ }
755
+ } else if (inputArgs.length === 1) {
756
+ const [objOrMsg] = inputArgs;
757
+ if (typeof objOrMsg === "object" && objOrMsg !== null) {
758
+ customWrite(levelName, {
759
+ ...bindings,
760
+ ...objOrMsg,
761
+ time
762
+ });
763
+ } else {
764
+ customWrite(levelName, {
765
+ ...bindings,
766
+ msg: String(objOrMsg),
767
+ time
768
+ });
769
+ }
770
+ }
771
+ }
772
+ }
773
+ });
774
+ loggerCache.clear();
775
+ }
776
+ function getBaseLogger() {
777
+ if (!baseLogger) {
778
+ configureDefaultLogger();
779
+ }
780
+ return baseLogger;
781
+ }
782
+ function getLogger(name = "default") {
783
+ const cached = loggerCache.get(name);
784
+ if (cached) {
785
+ return cached;
786
+ }
787
+ const base = getBaseLogger();
788
+ const child = getIncludeTarget() ? base.child({ target: name }) : base;
789
+ loggerCache.set(name, child);
790
+ return child;
791
+ }
792
+
793
+ // src/utils.ts
794
+ function joinSignals(...signals) {
795
+ const validSignals = signals.filter(
796
+ (signal) => signal != null
797
+ );
798
+ if (validSignals.length === 0) {
799
+ return new AbortController().signal;
800
+ }
801
+ if (validSignals.length === 1) {
802
+ return validSignals[0];
803
+ }
804
+ const signalAny = AbortSignal.any;
805
+ if (typeof signalAny === "function") {
806
+ return signalAny(validSignals);
807
+ }
808
+ const controller = new AbortController();
809
+ const cleanups = [];
810
+ const abortWithSignal = (signal) => {
811
+ if (controller.signal.aborted) {
812
+ return;
813
+ }
814
+ for (const cleanup of cleanups) {
815
+ cleanup();
816
+ }
817
+ const reason = signal.reason;
818
+ controller.abort(reason);
819
+ };
820
+ for (const signal of validSignals) {
821
+ if (signal.aborted) {
822
+ abortWithSignal(signal);
823
+ break;
824
+ }
825
+ const onAbort = () => abortWithSignal(signal);
826
+ signal.addEventListener("abort", onAbort, { once: true });
827
+ cleanups.push(() => signal.removeEventListener("abort", onAbort));
828
+ }
829
+ return controller.signal;
830
+ }
831
+ function sleep(ms) {
832
+ return new Promise((resolve) => setTimeout(resolve, ms));
833
+ }
834
+ function interval(ms) {
835
+ return () => sleep(ms);
836
+ }
837
+ var VERSION2 = package_default.version;
838
+ var _userAgent;
839
+ function logger() {
840
+ return getLogger("utils");
841
+ }
842
+ function httpUserAgent() {
843
+ if (_userAgent !== void 0) {
844
+ return _userAgent;
845
+ }
846
+ let userAgent = `RivetKit/${VERSION2}`;
847
+ const navigatorObj = typeof navigator !== "undefined" ? navigator : void 0;
848
+ if (navigatorObj == null ? void 0 : navigatorObj.userAgent) userAgent += ` ${navigatorObj.userAgent}`;
849
+ _userAgent = userAgent;
850
+ return userAgent;
851
+ }
852
+ function getEnvUniversal(key) {
853
+ if (typeof Deno !== "undefined") {
854
+ return Deno.env.get(key);
855
+ } else if (typeof process !== "undefined") {
856
+ return process.env[key];
857
+ }
858
+ }
859
+ function dbg(x) {
860
+ console.trace(`=== DEBUG ===
861
+ ${x}`);
862
+ return x;
863
+ }
864
+ function toUint8Array(data) {
865
+ if (data instanceof Uint8Array) {
866
+ return data;
867
+ } else if (data instanceof ArrayBuffer) {
868
+ return new Uint8Array(data);
869
+ } else if (ArrayBuffer.isView(data)) {
870
+ return new Uint8Array(
871
+ data.buffer.slice(
872
+ data.byteOffset,
873
+ data.byteOffset + data.byteLength
874
+ )
875
+ );
876
+ } else {
877
+ throw new TypeError("Input must be ArrayBuffer or ArrayBufferView");
878
+ }
879
+ }
880
+ var TIMEOUT_MAX = 2147483647;
881
+ function promiseWithResolvers(onReject) {
882
+ let resolve;
883
+ let reject;
884
+ const promise = new Promise((res, rej) => {
885
+ resolve = res;
886
+ reject = rej;
887
+ });
888
+ promise.catch(onReject);
889
+ return { promise, resolve, reject };
890
+ }
891
+ function setLongTimeout(listener, after) {
892
+ let timeout;
893
+ function start(remaining) {
894
+ if (remaining <= TIMEOUT_MAX) {
895
+ timeout = setTimeout(listener, remaining);
896
+ } else {
897
+ timeout = setTimeout(() => {
898
+ start(remaining - TIMEOUT_MAX);
899
+ }, TIMEOUT_MAX);
900
+ }
901
+ }
902
+ start(after);
903
+ return {
904
+ abort: () => {
905
+ if (timeout !== void 0) clearTimeout(timeout);
906
+ }
907
+ };
908
+ }
909
+ var SinglePromiseQueue = class {
910
+ /** Next operation to execute in the queue. If attempting to enqueue another op, it will override the existing op. */
911
+ #queuedOp;
912
+ /** The currently running promise of #drainLoop. Do not await this, instead await `pending` to await the current cycle. */
913
+ runningDrainLoop;
914
+ /** Pending resolver fro the currently queued entry. */
915
+ #pending;
916
+ /** Queue the next operation and return a promise that resolves when it flushes. */
917
+ enqueue(op) {
918
+ this.#queuedOp = op;
919
+ if (!this.#pending) {
920
+ this.#pending = promiseWithResolvers((reason) => logger().warn({ msg: "unhandled single promise queue rejection", reason }));
921
+ }
922
+ const waitForThisCycle = this.#pending.promise;
923
+ if (!this.runningDrainLoop) {
924
+ this.runningDrainLoop = this.#drainLoop();
925
+ }
926
+ return waitForThisCycle;
927
+ }
928
+ /** Drain queued operations sequentially until there is nothing left. */
929
+ async #drainLoop() {
930
+ try {
931
+ while (this.#queuedOp) {
932
+ const resolver = this.#pending;
933
+ this.#pending = void 0;
934
+ const op = this.#queuedOp;
935
+ this.#queuedOp = void 0;
936
+ try {
937
+ await op();
938
+ resolver == null ? void 0 : resolver.resolve();
939
+ } catch (err) {
940
+ logger().error({
941
+ msg: "error in SinglePromiseQueue drain loop",
942
+ error: stringifyError(err)
943
+ });
944
+ resolver == null ? void 0 : resolver.reject(err);
945
+ }
946
+ }
947
+ } finally {
948
+ this.runningDrainLoop = void 0;
949
+ }
950
+ }
951
+ };
952
+ function bufferToArrayBuffer(buf) {
953
+ return buf.buffer.slice(
954
+ buf.byteOffset,
955
+ buf.byteOffset + buf.byteLength
956
+ );
957
+ }
958
+ function combineUrlPath(endpoint, path, queryParams) {
959
+ const baseUrl = new URL(endpoint);
960
+ const pathParts = path.split("?");
961
+ const pathOnly = pathParts[0];
962
+ const existingQuery = pathParts[1] || "";
963
+ const basePath = baseUrl.pathname.replace(/\/$/, "");
964
+ const cleanPath = pathOnly.startsWith("/") ? pathOnly : `/${pathOnly}`;
965
+ const fullPath = (basePath + cleanPath).replace(/\/\//g, "/");
966
+ const queryParts = [];
967
+ if (existingQuery) {
968
+ queryParts.push(existingQuery);
969
+ }
970
+ if (queryParams) {
971
+ for (const [key, value] of Object.entries(queryParams)) {
972
+ if (value !== void 0) {
973
+ queryParts.push(
974
+ `${encodeURIComponent(key)}=${encodeURIComponent(value)}`
975
+ );
976
+ }
977
+ }
978
+ }
979
+ const fullQuery = queryParts.length > 0 ? `?${queryParts.join("&")}` : "";
980
+ return `${baseUrl.protocol}//${baseUrl.host}${fullPath}${fullQuery}`;
981
+ }
982
+ function arrayBuffersEqual(buf1, buf2) {
983
+ if (buf1.byteLength !== buf2.byteLength) return false;
984
+ const view1 = new Uint8Array(buf1);
985
+ const view2 = new Uint8Array(buf2);
986
+ for (let i = 0; i < view1.length; i++) {
987
+ if (view1[i] !== view2[i]) return false;
988
+ }
989
+ return true;
990
+ }
991
+ var EXTRA_ERROR_LOG = {
992
+ issues: "https://github.com/rivet-dev/rivetkit/issues",
993
+ support: "https://rivet.dev/discord",
994
+ version: VERSION2
995
+ };
996
+ function detectRuntime() {
997
+ const userAgent = typeof navigator !== "undefined" ? navigator.userAgent : "";
998
+ if (userAgent.includes("Deno")) {
999
+ return "deno";
1000
+ }
1001
+ if (userAgent.includes("Bun")) {
1002
+ return "bun";
1003
+ }
1004
+ return "node";
1005
+ }
1006
+
1007
+ export {
1008
+ assertUnreachable,
1009
+ isCborSerializable,
1010
+ deconstructError,
1011
+ stringifyError,
1012
+ noopNext,
1013
+ package_default,
1014
+ joinSignals,
1015
+ sleep,
1016
+ interval,
1017
+ VERSION2 as VERSION,
1018
+ httpUserAgent,
1019
+ getEnvUniversal,
1020
+ dbg,
1021
+ toUint8Array,
1022
+ promiseWithResolvers,
1023
+ setLongTimeout,
1024
+ SinglePromiseQueue,
1025
+ bufferToArrayBuffer,
1026
+ combineUrlPath,
1027
+ arrayBuffersEqual,
1028
+ EXTRA_ERROR_LOG,
1029
+ detectRuntime,
1030
+ getRivetEngine,
1031
+ getRivetEndpoint,
1032
+ getRivetToken,
1033
+ getRivetNamespace,
1034
+ getRivetRunner,
1035
+ getRivetTotalSlots,
1036
+ getRivetRunnerKey,
1037
+ getRivetRunEngine,
1038
+ getRivetRunEngineVersion,
1039
+ getRivetRunnerKind,
1040
+ getRivetRunnerVersion,
1041
+ getRivetPublicEndpoint,
1042
+ getRivetPublicToken,
1043
+ getRivetkitInspectorToken,
1044
+ getRivetkitInspectorDisable,
1045
+ getRivetkitStoragePath,
1046
+ getLogMessage,
1047
+ getLogHeaders,
1048
+ getNodeEnv,
1049
+ getNextPhase,
1050
+ isDev,
1051
+ getRivetExperimentalOtel,
1052
+ LogLevelSchema,
1053
+ getPinoLevel,
1054
+ getIncludeTarget,
1055
+ configureBaseLogger,
1056
+ configureDefaultLogger,
1057
+ getBaseLogger,
1058
+ getLogger
1059
+ };
1060
+ //# sourceMappingURL=chunk-325TLXJT.js.map