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,556 @@
1
+ import type { DeconstructedError } from "@/common/utils";
2
+
3
+ export const INTERNAL_ERROR_CODE = "internal_error";
4
+ export const INTERNAL_ERROR_DESCRIPTION =
5
+ "Internal error. Read the server logs for more details.";
6
+ export type InternalErrorMetadata = {};
7
+
8
+ export const USER_ERROR_CODE = "user_error";
9
+
10
+ interface ActorErrorOptions extends ErrorOptions {
11
+ /** Error data can safely be serialized in a response to the client. */
12
+ public?: boolean;
13
+ /** Metadata associated with this error. This will be sent to clients. */
14
+ metadata?: unknown;
15
+ }
16
+
17
+ export class ActorError extends Error {
18
+ __type = "ActorError";
19
+
20
+ public public: boolean;
21
+ public metadata?: unknown;
22
+ public statusCode = 500;
23
+ public readonly group: string;
24
+ public readonly code: string;
25
+
26
+ public static isActorError(
27
+ error: unknown,
28
+ ): error is ActorError | DeconstructedError {
29
+ return (
30
+ typeof error === "object" &&
31
+ (error as ActorError | DeconstructedError).__type === "ActorError"
32
+ );
33
+ }
34
+
35
+ constructor(
36
+ group: string,
37
+ code: string,
38
+ message: string,
39
+ opts?: ActorErrorOptions,
40
+ ) {
41
+ super(message, { cause: opts?.cause });
42
+ this.group = group;
43
+ this.code = code;
44
+ this.public = opts?.public ?? false;
45
+ this.metadata = opts?.metadata;
46
+
47
+ // Set status code based on error type
48
+ if (opts?.public) {
49
+ this.statusCode = 400; // Bad request for public errors
50
+ }
51
+ }
52
+
53
+ toString() {
54
+ // Force stringify to return the message
55
+ return this.message;
56
+ }
57
+ }
58
+
59
+ export class InternalError extends ActorError {
60
+ constructor(message: string) {
61
+ super("actor", INTERNAL_ERROR_CODE, message);
62
+ }
63
+ }
64
+
65
+ export class Unreachable extends InternalError {
66
+ constructor(x: never) {
67
+ super(`Unreachable case: ${x}`);
68
+ }
69
+ }
70
+
71
+ export class StateNotEnabled extends ActorError {
72
+ constructor() {
73
+ super(
74
+ "actor",
75
+ "state_not_enabled",
76
+ "State not enabled. Must implement `createState` or `state` to use state. (https://www.rivet.dev/docs/actors/state/#initializing-state)",
77
+ );
78
+ }
79
+ }
80
+
81
+ export class ConnStateNotEnabled extends ActorError {
82
+ constructor() {
83
+ super(
84
+ "actor",
85
+ "conn_state_not_enabled",
86
+ "Connection state not enabled. Must implement `createConnectionState` or `connectionState` to use connection state. (https://www.rivet.dev/docs/actors/connections/#connection-state)",
87
+ );
88
+ }
89
+ }
90
+
91
+ export class VarsNotEnabled extends ActorError {
92
+ constructor() {
93
+ super(
94
+ "actor",
95
+ "vars_not_enabled",
96
+ "Variables not enabled. Must implement `createVars` or `vars` to use state. (https://www.rivet.dev/docs/actors/ephemeral-variables/#initializing-variables)",
97
+ );
98
+ }
99
+ }
100
+
101
+ export class ActionTimedOut extends ActorError {
102
+ constructor() {
103
+ super(
104
+ "action",
105
+ "timed_out",
106
+ "Action timed out. This can be increased with: `actor({ options: { action: { timeout: ... } } })`",
107
+ { public: true },
108
+ );
109
+ }
110
+ }
111
+
112
+ export class ActionNotFound extends ActorError {
113
+ constructor(name: string) {
114
+ super(
115
+ "action",
116
+ "not_found",
117
+ `Action '${name}' not found. Validate the action exists on your actor.`,
118
+ { public: true },
119
+ );
120
+ }
121
+ }
122
+
123
+ export class InvalidEncoding extends ActorError {
124
+ constructor(format?: string) {
125
+ super(
126
+ "encoding",
127
+ "invalid",
128
+ `Invalid encoding \`${format}\`. (https://www.rivet.dev/docs/clients/javascript)`,
129
+ {
130
+ public: true,
131
+ },
132
+ );
133
+ }
134
+ }
135
+
136
+ export class IncomingMessageTooLong extends ActorError {
137
+ constructor() {
138
+ super(
139
+ "message",
140
+ "incoming_too_long",
141
+ "Incoming message too long. This can be configured with: `registry.start({ maxIncomingMessageSize: ... })`",
142
+ { public: true },
143
+ );
144
+ }
145
+ }
146
+
147
+ export class OutgoingMessageTooLong extends ActorError {
148
+ constructor() {
149
+ super(
150
+ "message",
151
+ "outgoing_too_long",
152
+ "Outgoing message too long. This can be configured with: `registry.start({ maxOutgoingMessageSize: ... })`",
153
+ { public: true },
154
+ );
155
+ }
156
+ }
157
+
158
+ export class MalformedMessage extends ActorError {
159
+ constructor(cause?: unknown) {
160
+ super("message", "malformed", `Malformed message: ${cause}`, {
161
+ public: true,
162
+ cause,
163
+ });
164
+ }
165
+ }
166
+
167
+ export interface InvalidStateTypeOptions {
168
+ path?: unknown;
169
+ }
170
+
171
+ export class InvalidStateType extends ActorError {
172
+ constructor(opts?: InvalidStateTypeOptions) {
173
+ let msg = "";
174
+ if (opts?.path) {
175
+ msg += `Attempted to set invalid state at path \`${opts.path}\`.`;
176
+ } else {
177
+ msg += "Attempted to set invalid state.";
178
+ }
179
+ msg +=
180
+ " Valid types include: null, undefined, boolean, string, number, BigInt, Date, RegExp, Error, typed arrays (Uint8Array, Int8Array, Float32Array, etc.), Map, Set, Array, and plain objects. (https://www.rivet.dev/docs/actors/state/#limitations)";
181
+ super("state", "invalid_type", msg);
182
+ }
183
+ }
184
+
185
+ export class Unsupported extends ActorError {
186
+ constructor(feature: string) {
187
+ super("feature", "unsupported", `Unsupported feature: ${feature}`);
188
+ }
189
+ }
190
+
191
+ export class QueueFull extends ActorError {
192
+ constructor(limit: number) {
193
+ super("queue", "full", `Queue is full. Limit is ${limit} messages.`, {
194
+ public: true,
195
+ metadata: { limit },
196
+ });
197
+ }
198
+ }
199
+
200
+ export class QueueMessageTooLarge extends ActorError {
201
+ constructor(size: number, limit: number) {
202
+ super(
203
+ "queue",
204
+ "message_too_large",
205
+ `Queue message too large (${size} bytes). Limit is ${limit} bytes.`,
206
+ { public: true, metadata: { size, limit } },
207
+ );
208
+ }
209
+ }
210
+
211
+ export class QueueMessageInvalid extends ActorError {
212
+ constructor(path?: string) {
213
+ super(
214
+ "queue",
215
+ "message_invalid",
216
+ path
217
+ ? `Queue message body contains unsupported type at ${path}.`
218
+ : "Queue message body contains unsupported type.",
219
+ { public: true, metadata: path ? { path } : undefined },
220
+ );
221
+ }
222
+ }
223
+
224
+ export class EventPayloadInvalid extends ActorError {
225
+ constructor(name: string, issues?: unknown[]) {
226
+ super(
227
+ "event",
228
+ "invalid_payload",
229
+ `Event payload failed validation for '${name}'.`,
230
+ { public: true, metadata: { name, issues } },
231
+ );
232
+ }
233
+ }
234
+
235
+ export class QueuePayloadInvalid extends ActorError {
236
+ constructor(name: string, issues?: unknown[]) {
237
+ super(
238
+ "queue",
239
+ "invalid_payload",
240
+ `Queue payload failed validation for '${name}'.`,
241
+ { public: true, metadata: { name, issues } },
242
+ );
243
+ }
244
+ }
245
+
246
+ export class QueueCompletionPayloadInvalid extends ActorError {
247
+ constructor(name: string, issues?: unknown[]) {
248
+ super(
249
+ "queue",
250
+ "invalid_completion_payload",
251
+ `Queue completion payload failed validation for '${name}'.`,
252
+ { public: true, metadata: { name, issues } },
253
+ );
254
+ }
255
+ }
256
+
257
+ export class QueueAlreadyCompleted extends ActorError {
258
+ constructor() {
259
+ super("queue", "already_completed", "Queue message was already completed.", {
260
+ public: true,
261
+ });
262
+ }
263
+ }
264
+
265
+ export class QueuePreviousMessageNotCompleted extends ActorError {
266
+ constructor() {
267
+ super(
268
+ "queue",
269
+ "previous_message_not_completed",
270
+ "Previous completable queue message is not completed. Call `message.complete(...)` before receiving the next message.",
271
+ { public: true },
272
+ );
273
+ }
274
+ }
275
+
276
+ export class QueueCompleteNotConfigured extends ActorError {
277
+ constructor(name: string) {
278
+ super(
279
+ "queue",
280
+ "complete_not_configured",
281
+ `Queue '${name}' does not support completion responses.`,
282
+ {
283
+ public: true,
284
+ metadata: { name },
285
+ },
286
+ );
287
+ }
288
+ }
289
+
290
+ export class ActorAborted extends ActorError {
291
+ constructor() {
292
+ super("actor", "aborted", "Actor aborted.", { public: true });
293
+ }
294
+ }
295
+
296
+ /**
297
+ * Options for the UserError class.
298
+ */
299
+ export interface UserErrorOptions extends ErrorOptions {
300
+ /**
301
+ * Machine readable code for this error. Useful for catching different types of errors in try-catch.
302
+ */
303
+ code?: string;
304
+
305
+ /**
306
+ * Additional metadata related to the error. Useful for understanding context about the error.
307
+ */
308
+ metadata?: unknown;
309
+ }
310
+
311
+ /** Error that can be safely returned to the user. */
312
+ export class UserError extends ActorError {
313
+ /**
314
+ * Constructs a new UserError instance.
315
+ *
316
+ * @param message - The error message to be displayed.
317
+ * @param opts - Optional parameters for the error, including a machine-readable code and additional metadata.
318
+ */
319
+ constructor(message: string, opts?: UserErrorOptions) {
320
+ super("user", opts?.code ?? USER_ERROR_CODE, message, {
321
+ public: true,
322
+ metadata: opts?.metadata,
323
+ });
324
+ }
325
+ }
326
+
327
+ export class InvalidQueryJSON extends ActorError {
328
+ constructor(error?: unknown) {
329
+ super("request", "invalid_query_json", `Invalid query JSON: ${error}`, {
330
+ public: true,
331
+ cause: error,
332
+ });
333
+ }
334
+ }
335
+
336
+ export class InvalidRequest extends ActorError {
337
+ constructor(error?: unknown) {
338
+ super("request", "invalid", `Invalid request: ${error}`, {
339
+ public: true,
340
+ cause: error,
341
+ });
342
+ }
343
+ }
344
+
345
+ export class ActorNotFound extends ActorError {
346
+ constructor(identifier?: string) {
347
+ super(
348
+ "actor",
349
+ "not_found",
350
+ identifier
351
+ ? `Actor not found: ${identifier} (https://www.rivet.dev/docs/clients/javascript)`
352
+ : "Actor not found (https://www.rivet.dev/docs/clients/javascript)",
353
+ { public: true },
354
+ );
355
+ }
356
+ }
357
+
358
+ export class ActorDuplicateKey extends ActorError {
359
+ constructor(name: string, key: string[]) {
360
+ super(
361
+ "actor",
362
+ "duplicate_key",
363
+ `Actor already exists with name '${name}' and key '${JSON.stringify(key)}' (https://www.rivet.dev/docs/clients/javascript)`,
364
+ { public: true },
365
+ );
366
+ }
367
+ }
368
+
369
+ export class ActorStopping extends ActorError {
370
+ constructor(identifier?: string) {
371
+ super(
372
+ "actor",
373
+ "stopping",
374
+ identifier ? `Actor stopping: ${identifier}` : "Actor stopping",
375
+ { public: true },
376
+ );
377
+ }
378
+ }
379
+
380
+ export class ProxyError extends ActorError {
381
+ constructor(operation: string, error?: unknown) {
382
+ super(
383
+ "proxy",
384
+ "error",
385
+ `Error proxying ${operation}, this is likely an internal error: ${error}`,
386
+ {
387
+ public: true,
388
+ cause: error,
389
+ },
390
+ );
391
+ }
392
+ }
393
+
394
+ export class InvalidActionRequest extends ActorError {
395
+ constructor(message: string) {
396
+ super("action", "invalid_request", message, { public: true });
397
+ }
398
+ }
399
+
400
+ export class InvalidParams extends ActorError {
401
+ constructor(message: string) {
402
+ super("params", "invalid", message, { public: true });
403
+ }
404
+ }
405
+
406
+ export class DatabaseNotEnabled extends ActorError {
407
+ constructor() {
408
+ super(
409
+ "database",
410
+ "not_enabled",
411
+ "Database not enabled. Must implement `database` to use database.",
412
+ );
413
+ }
414
+ }
415
+
416
+ export class RequestHandlerNotDefined extends ActorError {
417
+ constructor() {
418
+ super(
419
+ "handler",
420
+ "request_not_defined",
421
+ "Raw request handler not defined. Actor must implement `onRequest` to handle raw HTTP requests. (https://www.rivet.dev/docs/actors/fetch-and-websocket-handler/)",
422
+ { public: true },
423
+ );
424
+ this.statusCode = 404;
425
+ }
426
+ }
427
+
428
+ export class WebSocketHandlerNotDefined extends ActorError {
429
+ constructor() {
430
+ super(
431
+ "handler",
432
+ "websocket_not_defined",
433
+ "Raw WebSocket handler not defined. Actor must implement `onWebSocket` to handle raw WebSocket connections. (https://www.rivet.dev/docs/actors/fetch-and-websocket-handler/)",
434
+ { public: true },
435
+ );
436
+ this.statusCode = 404;
437
+ }
438
+ }
439
+
440
+ export class InvalidRequestHandlerResponse extends ActorError {
441
+ constructor() {
442
+ super(
443
+ "handler",
444
+ "invalid_request_handler_response",
445
+ "Actor's onRequest handler must return a Response object. Returning void/undefined is not allowed. (https://www.rivet.dev/docs/actors/fetch-and-websocket-handler/)",
446
+ { public: true },
447
+ );
448
+ this.statusCode = 500;
449
+ }
450
+ }
451
+
452
+ export class InvalidCanSubscribeResponse extends ActorError {
453
+ constructor() {
454
+ super(
455
+ "handler",
456
+ "invalid_can_subscribe_response",
457
+ "Event canSubscribe hook must return a boolean value.",
458
+ );
459
+ this.statusCode = 500;
460
+ }
461
+ }
462
+
463
+ export class InvalidCanPublishResponse extends ActorError {
464
+ constructor() {
465
+ super(
466
+ "handler",
467
+ "invalid_can_publish_response",
468
+ "Queue canPublish hook must return a boolean value.",
469
+ );
470
+ this.statusCode = 500;
471
+ }
472
+ }
473
+
474
+ // Manager-specific errors
475
+ export class MissingActorHeader extends ActorError {
476
+ constructor() {
477
+ super(
478
+ "request",
479
+ "missing_actor_header",
480
+ "Missing x-rivet-actor header when x-rivet-target=actor",
481
+ { public: true },
482
+ );
483
+ this.statusCode = 400;
484
+ }
485
+ }
486
+
487
+ export class WebSocketsNotEnabled extends ActorError {
488
+ constructor() {
489
+ super(
490
+ "driver",
491
+ "websockets_not_enabled",
492
+ "WebSockets are not enabled for this driver",
493
+ { public: true },
494
+ );
495
+ this.statusCode = 400;
496
+ }
497
+ }
498
+
499
+ export class FeatureNotImplemented extends ActorError {
500
+ constructor(feature: string) {
501
+ super("feature", "not_implemented", `${feature} is not implemented`, {
502
+ public: true,
503
+ });
504
+ this.statusCode = 501;
505
+ }
506
+ }
507
+
508
+ export class RouteNotFound extends ActorError {
509
+ constructor() {
510
+ super("route", "not_found", "Route not found", { public: true });
511
+ this.statusCode = 404;
512
+ }
513
+ }
514
+
515
+ export class RestrictedFeature extends ActorError {
516
+ constructor(feature: string) {
517
+ super(
518
+ "feature",
519
+ "restricted",
520
+ `Run this actor locally or set the token in run config to use the ${feature}`,
521
+ { public: true },
522
+ );
523
+ this.statusCode = 403;
524
+ }
525
+ }
526
+
527
+ export class Forbidden extends ActorError {
528
+ constructor() {
529
+ super("auth", "forbidden", "Forbidden", { public: true });
530
+ this.statusCode = 403;
531
+ }
532
+ }
533
+
534
+ export class EndpointMismatch extends ActorError {
535
+ constructor(expected: string, received: string) {
536
+ super(
537
+ "config",
538
+ "endpoint_mismatch",
539
+ `Endpoint mismatch: expected "${expected}", received "${received}"`,
540
+ { public: true, metadata: { expected, received } },
541
+ );
542
+ this.statusCode = 400;
543
+ }
544
+ }
545
+
546
+ export class NamespaceMismatch extends ActorError {
547
+ constructor(expected: string, received: string) {
548
+ super(
549
+ "config",
550
+ "namespace_mismatch",
551
+ `Namespace mismatch: expected "${expected}", received "${received}"`,
552
+ { public: true, metadata: { expected, received } },
553
+ );
554
+ this.statusCode = 400;
555
+ }
556
+ }