rivetkit 2.0.2 → 2.0.3

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 (253) hide show
  1. package/dist/schemas/actor-persist/v1.ts +228 -0
  2. package/dist/schemas/client-protocol/v1.ts +429 -0
  3. package/dist/schemas/file-system-driver/v1.ts +102 -0
  4. package/dist/tsup/actor/errors.cjs +69 -0
  5. package/dist/tsup/actor/errors.cjs.map +1 -0
  6. package/dist/tsup/actor/errors.d.cts +143 -0
  7. package/dist/tsup/actor/errors.d.ts +143 -0
  8. package/dist/tsup/actor/errors.js +69 -0
  9. package/dist/tsup/actor/errors.js.map +1 -0
  10. package/dist/tsup/chunk-2CRLFV6Z.cjs +202 -0
  11. package/dist/tsup/chunk-2CRLFV6Z.cjs.map +1 -0
  12. package/dist/tsup/chunk-3H7O2A7I.js +525 -0
  13. package/dist/tsup/chunk-3H7O2A7I.js.map +1 -0
  14. package/dist/tsup/chunk-42I3OZ3Q.js +15 -0
  15. package/dist/tsup/chunk-42I3OZ3Q.js.map +1 -0
  16. package/dist/tsup/chunk-4NSUQZ2H.js +1790 -0
  17. package/dist/tsup/chunk-4NSUQZ2H.js.map +1 -0
  18. package/dist/tsup/chunk-6PDXBYI5.js +132 -0
  19. package/dist/tsup/chunk-6PDXBYI5.js.map +1 -0
  20. package/dist/tsup/chunk-6WKQDDUD.cjs +1790 -0
  21. package/dist/tsup/chunk-6WKQDDUD.cjs.map +1 -0
  22. package/dist/tsup/chunk-CTBOSFUH.cjs +116 -0
  23. package/dist/tsup/chunk-CTBOSFUH.cjs.map +1 -0
  24. package/dist/tsup/chunk-EGVZZFE2.js +2857 -0
  25. package/dist/tsup/chunk-EGVZZFE2.js.map +1 -0
  26. package/dist/tsup/chunk-FCCPJNMA.cjs +132 -0
  27. package/dist/tsup/chunk-FCCPJNMA.cjs.map +1 -0
  28. package/dist/tsup/chunk-FLMTTN27.js +244 -0
  29. package/dist/tsup/chunk-FLMTTN27.js.map +1 -0
  30. package/dist/tsup/chunk-GIR3AFFI.cjs +315 -0
  31. package/dist/tsup/chunk-GIR3AFFI.cjs.map +1 -0
  32. package/dist/tsup/chunk-INGJP237.js +315 -0
  33. package/dist/tsup/chunk-INGJP237.js.map +1 -0
  34. package/dist/tsup/chunk-KJCJLKRM.js +116 -0
  35. package/dist/tsup/chunk-KJCJLKRM.js.map +1 -0
  36. package/dist/tsup/chunk-KUPQZYUQ.cjs +15 -0
  37. package/dist/tsup/chunk-KUPQZYUQ.cjs.map +1 -0
  38. package/dist/tsup/chunk-O2MBYIXO.cjs +2857 -0
  39. package/dist/tsup/chunk-O2MBYIXO.cjs.map +1 -0
  40. package/dist/tsup/chunk-OGAPU3UG.cjs +525 -0
  41. package/dist/tsup/chunk-OGAPU3UG.cjs.map +1 -0
  42. package/dist/tsup/chunk-OV6AYD4S.js +4406 -0
  43. package/dist/tsup/chunk-OV6AYD4S.js.map +1 -0
  44. package/dist/tsup/chunk-PO4VLDWA.js +47 -0
  45. package/dist/tsup/chunk-PO4VLDWA.js.map +1 -0
  46. package/dist/tsup/chunk-R2OPSKIV.cjs +244 -0
  47. package/dist/tsup/chunk-R2OPSKIV.cjs.map +1 -0
  48. package/dist/tsup/chunk-TZJKSBUQ.cjs +47 -0
  49. package/dist/tsup/chunk-TZJKSBUQ.cjs.map +1 -0
  50. package/dist/tsup/chunk-UBUC5C3G.cjs +189 -0
  51. package/dist/tsup/chunk-UBUC5C3G.cjs.map +1 -0
  52. package/dist/tsup/chunk-UIM22YJL.cjs +4406 -0
  53. package/dist/tsup/chunk-UIM22YJL.cjs.map +1 -0
  54. package/dist/tsup/chunk-URVFQMYI.cjs +230 -0
  55. package/dist/tsup/chunk-URVFQMYI.cjs.map +1 -0
  56. package/dist/tsup/chunk-UVUPOS46.js +230 -0
  57. package/dist/tsup/chunk-UVUPOS46.js.map +1 -0
  58. package/dist/tsup/chunk-VRRHBNJC.js +189 -0
  59. package/dist/tsup/chunk-VRRHBNJC.js.map +1 -0
  60. package/dist/tsup/chunk-XFSS33EQ.js +202 -0
  61. package/dist/tsup/chunk-XFSS33EQ.js.map +1 -0
  62. package/dist/tsup/client/mod.cjs +32 -0
  63. package/dist/tsup/client/mod.cjs.map +1 -0
  64. package/dist/tsup/client/mod.d.cts +26 -0
  65. package/dist/tsup/client/mod.d.ts +26 -0
  66. package/dist/tsup/client/mod.js +32 -0
  67. package/dist/tsup/client/mod.js.map +1 -0
  68. package/dist/tsup/common/log.cjs +13 -0
  69. package/dist/tsup/common/log.cjs.map +1 -0
  70. package/dist/tsup/common/log.d.cts +20 -0
  71. package/dist/tsup/common/log.d.ts +20 -0
  72. package/dist/tsup/common/log.js +13 -0
  73. package/dist/tsup/common/log.js.map +1 -0
  74. package/dist/tsup/common/websocket.cjs +10 -0
  75. package/dist/tsup/common/websocket.cjs.map +1 -0
  76. package/dist/tsup/common/websocket.d.cts +3 -0
  77. package/dist/tsup/common/websocket.d.ts +3 -0
  78. package/dist/tsup/common/websocket.js +10 -0
  79. package/dist/tsup/common/websocket.js.map +1 -0
  80. package/dist/tsup/common-CpqORuCq.d.cts +218 -0
  81. package/dist/tsup/common-CpqORuCq.d.ts +218 -0
  82. package/dist/tsup/connection-BR_Ve4ku.d.cts +2117 -0
  83. package/dist/tsup/connection-BwUMoe6n.d.ts +2117 -0
  84. package/dist/tsup/driver-helpers/mod.cjs +33 -0
  85. package/dist/tsup/driver-helpers/mod.cjs.map +1 -0
  86. package/dist/tsup/driver-helpers/mod.d.cts +18 -0
  87. package/dist/tsup/driver-helpers/mod.d.ts +18 -0
  88. package/dist/tsup/driver-helpers/mod.js +33 -0
  89. package/dist/tsup/driver-helpers/mod.js.map +1 -0
  90. package/dist/tsup/driver-test-suite/mod.cjs +4619 -0
  91. package/dist/tsup/driver-test-suite/mod.cjs.map +1 -0
  92. package/dist/tsup/driver-test-suite/mod.d.cts +57 -0
  93. package/dist/tsup/driver-test-suite/mod.d.ts +57 -0
  94. package/dist/tsup/driver-test-suite/mod.js +4619 -0
  95. package/dist/tsup/driver-test-suite/mod.js.map +1 -0
  96. package/dist/tsup/inspector/mod.cjs +53 -0
  97. package/dist/tsup/inspector/mod.cjs.map +1 -0
  98. package/dist/tsup/inspector/mod.d.cts +408 -0
  99. package/dist/tsup/inspector/mod.d.ts +408 -0
  100. package/dist/tsup/inspector/mod.js +53 -0
  101. package/dist/tsup/inspector/mod.js.map +1 -0
  102. package/dist/tsup/mod.cjs +73 -0
  103. package/dist/tsup/mod.cjs.map +1 -0
  104. package/dist/tsup/mod.d.cts +100 -0
  105. package/dist/tsup/mod.d.ts +100 -0
  106. package/dist/tsup/mod.js +73 -0
  107. package/dist/tsup/mod.js.map +1 -0
  108. package/dist/tsup/router-endpoints-AYkXG8Tl.d.cts +66 -0
  109. package/dist/tsup/router-endpoints-DAbqVFx2.d.ts +66 -0
  110. package/dist/tsup/test/mod.cjs +21 -0
  111. package/dist/tsup/test/mod.cjs.map +1 -0
  112. package/dist/tsup/test/mod.d.cts +27 -0
  113. package/dist/tsup/test/mod.d.ts +27 -0
  114. package/dist/tsup/test/mod.js +21 -0
  115. package/dist/tsup/test/mod.js.map +1 -0
  116. package/dist/tsup/utils-CT0cv4jd.d.cts +17 -0
  117. package/dist/tsup/utils-CT0cv4jd.d.ts +17 -0
  118. package/dist/tsup/utils.cjs +26 -0
  119. package/dist/tsup/utils.cjs.map +1 -0
  120. package/dist/tsup/utils.d.cts +36 -0
  121. package/dist/tsup/utils.d.ts +36 -0
  122. package/dist/tsup/utils.js +26 -0
  123. package/dist/tsup/utils.js.map +1 -0
  124. package/package.json +208 -5
  125. package/src/actor/action.ts +182 -0
  126. package/src/actor/config.ts +765 -0
  127. package/src/actor/connection.ts +260 -0
  128. package/src/actor/context.ts +171 -0
  129. package/src/actor/database.ts +23 -0
  130. package/src/actor/definition.ts +86 -0
  131. package/src/actor/driver.ts +84 -0
  132. package/src/actor/errors.ts +360 -0
  133. package/src/actor/generic-conn-driver.ts +234 -0
  134. package/src/actor/instance.ts +1800 -0
  135. package/src/actor/log.ts +15 -0
  136. package/src/actor/mod.ts +113 -0
  137. package/src/actor/persisted.ts +42 -0
  138. package/src/actor/protocol/old.ts +281 -0
  139. package/src/actor/protocol/serde.ts +131 -0
  140. package/src/actor/router-endpoints.ts +685 -0
  141. package/src/actor/router.ts +263 -0
  142. package/src/actor/schedule.ts +17 -0
  143. package/src/actor/unstable-react.ts +110 -0
  144. package/src/actor/utils.ts +98 -0
  145. package/src/client/actor-common.ts +30 -0
  146. package/src/client/actor-conn.ts +804 -0
  147. package/src/client/actor-handle.ts +208 -0
  148. package/src/client/client.ts +623 -0
  149. package/src/client/errors.ts +41 -0
  150. package/src/client/http-client-driver.ts +326 -0
  151. package/src/client/log.ts +7 -0
  152. package/src/client/mod.ts +56 -0
  153. package/src/client/raw-utils.ts +92 -0
  154. package/src/client/test.ts +44 -0
  155. package/src/client/utils.ts +150 -0
  156. package/src/common/eventsource-interface.ts +47 -0
  157. package/src/common/eventsource.ts +80 -0
  158. package/src/common/fake-event-source.ts +266 -0
  159. package/src/common/inline-websocket-adapter2.ts +445 -0
  160. package/src/common/log-levels.ts +27 -0
  161. package/src/common/log.ts +139 -0
  162. package/src/common/logfmt.ts +228 -0
  163. package/src/common/network.ts +2 -0
  164. package/src/common/router.ts +87 -0
  165. package/src/common/utils.ts +322 -0
  166. package/src/common/versioned-data.ts +95 -0
  167. package/src/common/websocket-interface.ts +49 -0
  168. package/src/common/websocket.ts +43 -0
  169. package/src/driver-helpers/mod.ts +22 -0
  170. package/src/driver-helpers/utils.ts +17 -0
  171. package/src/driver-test-suite/log.ts +7 -0
  172. package/src/driver-test-suite/mod.ts +213 -0
  173. package/src/driver-test-suite/test-inline-client-driver.ts +402 -0
  174. package/src/driver-test-suite/tests/action-features.ts +136 -0
  175. package/src/driver-test-suite/tests/actor-auth.ts +591 -0
  176. package/src/driver-test-suite/tests/actor-conn-state.ts +249 -0
  177. package/src/driver-test-suite/tests/actor-conn.ts +349 -0
  178. package/src/driver-test-suite/tests/actor-driver.ts +25 -0
  179. package/src/driver-test-suite/tests/actor-error-handling.ts +158 -0
  180. package/src/driver-test-suite/tests/actor-handle.ts +259 -0
  181. package/src/driver-test-suite/tests/actor-inline-client.ts +152 -0
  182. package/src/driver-test-suite/tests/actor-inspector.ts +570 -0
  183. package/src/driver-test-suite/tests/actor-metadata.ts +116 -0
  184. package/src/driver-test-suite/tests/actor-onstatechange.ts +95 -0
  185. package/src/driver-test-suite/tests/actor-schedule.ts +108 -0
  186. package/src/driver-test-suite/tests/actor-sleep.ts +413 -0
  187. package/src/driver-test-suite/tests/actor-state.ts +54 -0
  188. package/src/driver-test-suite/tests/actor-vars.ts +93 -0
  189. package/src/driver-test-suite/tests/manager-driver.ts +365 -0
  190. package/src/driver-test-suite/tests/raw-http-direct-registry.ts +226 -0
  191. package/src/driver-test-suite/tests/raw-http-request-properties.ts +414 -0
  192. package/src/driver-test-suite/tests/raw-http.ts +347 -0
  193. package/src/driver-test-suite/tests/raw-websocket-direct-registry.ts +392 -0
  194. package/src/driver-test-suite/tests/raw-websocket.ts +484 -0
  195. package/src/driver-test-suite/tests/request-access.ts +244 -0
  196. package/src/driver-test-suite/utils.ts +68 -0
  197. package/src/drivers/default.ts +31 -0
  198. package/src/drivers/engine/actor-driver.ts +360 -0
  199. package/src/drivers/engine/api-endpoints.ts +128 -0
  200. package/src/drivers/engine/api-utils.ts +70 -0
  201. package/src/drivers/engine/config.ts +39 -0
  202. package/src/drivers/engine/keys.test.ts +266 -0
  203. package/src/drivers/engine/keys.ts +89 -0
  204. package/src/drivers/engine/kv.ts +3 -0
  205. package/src/drivers/engine/log.ts +7 -0
  206. package/src/drivers/engine/manager-driver.ts +391 -0
  207. package/src/drivers/engine/mod.ts +36 -0
  208. package/src/drivers/engine/ws-proxy.ts +170 -0
  209. package/src/drivers/file-system/actor.ts +91 -0
  210. package/src/drivers/file-system/global-state.ts +673 -0
  211. package/src/drivers/file-system/log.ts +7 -0
  212. package/src/drivers/file-system/manager.ts +306 -0
  213. package/src/drivers/file-system/mod.ts +48 -0
  214. package/src/drivers/file-system/utils.ts +109 -0
  215. package/src/globals.d.ts +6 -0
  216. package/src/inline-client-driver/log.ts +7 -0
  217. package/src/inline-client-driver/mod.ts +385 -0
  218. package/src/inspector/actor.ts +298 -0
  219. package/src/inspector/config.ts +83 -0
  220. package/src/inspector/log.ts +5 -0
  221. package/src/inspector/manager.ts +86 -0
  222. package/src/inspector/mod.ts +2 -0
  223. package/src/inspector/protocol/actor.ts +10 -0
  224. package/src/inspector/protocol/common.ts +196 -0
  225. package/src/inspector/protocol/manager.ts +10 -0
  226. package/src/inspector/protocol/mod.ts +2 -0
  227. package/src/inspector/utils.ts +76 -0
  228. package/src/manager/auth.ts +121 -0
  229. package/src/manager/driver.ts +80 -0
  230. package/src/manager/hono-websocket-adapter.ts +333 -0
  231. package/src/manager/log.ts +7 -0
  232. package/src/manager/mod.ts +2 -0
  233. package/src/manager/protocol/mod.ts +24 -0
  234. package/src/manager/protocol/query.ts +89 -0
  235. package/src/manager/router.ts +1792 -0
  236. package/src/mod.ts +20 -0
  237. package/src/registry/config.ts +32 -0
  238. package/src/registry/log.ts +7 -0
  239. package/src/registry/mod.ts +124 -0
  240. package/src/registry/run-config.ts +54 -0
  241. package/src/registry/serve.ts +53 -0
  242. package/src/schemas/actor-persist/mod.ts +1 -0
  243. package/src/schemas/actor-persist/versioned.ts +25 -0
  244. package/src/schemas/client-protocol/mod.ts +1 -0
  245. package/src/schemas/client-protocol/versioned.ts +63 -0
  246. package/src/schemas/file-system-driver/mod.ts +1 -0
  247. package/src/schemas/file-system-driver/versioned.ts +28 -0
  248. package/src/serde.ts +84 -0
  249. package/src/test/config.ts +16 -0
  250. package/src/test/log.ts +7 -0
  251. package/src/test/mod.ts +153 -0
  252. package/src/utils.ts +172 -0
  253. package/README.md +0 -13
package/package.json CHANGED
@@ -1,8 +1,211 @@
1
1
  {
2
2
  "name": "rivetkit",
3
- "version": "2.0.2",
4
- "description": "",
5
- "keywords": [],
6
- "author": "",
7
- "license": "Apache-2.0"
3
+ "version": "2.0.3",
4
+ "license": "Apache-2.0",
5
+ "keywords": [
6
+ "rivetkit",
7
+ "stateful",
8
+ "serverless",
9
+ "actors",
10
+ "agents",
11
+ "realtime",
12
+ "websocket",
13
+ "actors",
14
+ "framework"
15
+ ],
16
+ "files": [
17
+ "dist",
18
+ "src",
19
+ "deno.json",
20
+ "bun.json",
21
+ "package.json"
22
+ ],
23
+ "type": "module",
24
+ "exports": {
25
+ ".": {
26
+ "import": {
27
+ "types": "./dist/tsup/mod.d.ts",
28
+ "default": "./dist/tsup/mod.js"
29
+ },
30
+ "require": {
31
+ "types": "./dist/tsup/mod.d.cts",
32
+ "default": "./dist/tsup/mod.cjs"
33
+ }
34
+ },
35
+ "./client": {
36
+ "import": {
37
+ "types": "./dist/tsup/client/mod.d.ts",
38
+ "default": "./dist/tsup/client/mod.js"
39
+ },
40
+ "require": {
41
+ "types": "./dist/tsup/client/mod.d.cts",
42
+ "default": "./dist/tsup/client/mod.cjs"
43
+ }
44
+ },
45
+ "./log": {
46
+ "import": {
47
+ "types": "./dist/tsup/common/log.d.ts",
48
+ "default": "./dist/tsup/common/log.js"
49
+ },
50
+ "require": {
51
+ "types": "./dist/tsup/common/log.d.cts",
52
+ "default": "./dist/tsup/common/log.cjs"
53
+ }
54
+ },
55
+ "./errors": {
56
+ "import": {
57
+ "types": "./dist/tsup/actor/errors.d.ts",
58
+ "default": "./dist/tsup/actor/errors.js"
59
+ },
60
+ "require": {
61
+ "types": "./dist/tsup/actor/errors.d.cts",
62
+ "default": "./dist/tsup/actor/errors.cjs"
63
+ }
64
+ },
65
+ "./utils": {
66
+ "import": {
67
+ "types": "./dist/tsup/utils.d.ts",
68
+ "default": "./dist/tsup/utils.js"
69
+ },
70
+ "require": {
71
+ "types": "./dist/tsup/utils.d.cts",
72
+ "default": "./dist/tsup/utils.cjs"
73
+ }
74
+ },
75
+ "./driver-helpers": {
76
+ "import": {
77
+ "types": "./dist/tsup/driver-helpers/mod.d.ts",
78
+ "default": "./dist/tsup/driver-helpers/mod.js"
79
+ },
80
+ "require": {
81
+ "types": "./dist/tsup/driver-helpers/mod.d.cts",
82
+ "default": "./dist/tsup/driver-helpers/mod.cjs"
83
+ }
84
+ },
85
+ "./driver-helpers/websocket": {
86
+ "import": {
87
+ "types": "./dist/tsup/common/websocket.d.ts",
88
+ "default": "./dist/tsup/common/websocket.js"
89
+ },
90
+ "require": {
91
+ "types": "./dist/tsup/common/websocket.d.cts",
92
+ "default": "./dist/tsup/common/websocket.cjs"
93
+ }
94
+ },
95
+ "./driver-test-suite": {
96
+ "import": {
97
+ "types": "./dist/tsup/driver-test-suite/mod.d.ts",
98
+ "default": "./dist/tsup/driver-test-suite/mod.js"
99
+ },
100
+ "require": {
101
+ "types": "./dist/tsup/driver-test-suite/mod.d.cts",
102
+ "default": "./dist/tsup/driver-test-suite/mod.cjs"
103
+ }
104
+ },
105
+ "./topologies/coordinate": {
106
+ "import": {
107
+ "types": "./dist/tsup/topologies/coordinate/mod.d.ts",
108
+ "default": "./dist/tsup/topologies/coordinate/mod.js"
109
+ },
110
+ "require": {
111
+ "types": "./dist/tsup/topologies/coordinate/mod.d.cts",
112
+ "default": "./dist/tsup/topologies/coordinate/mod.cjs"
113
+ }
114
+ },
115
+ "./topologies/partition": {
116
+ "import": {
117
+ "types": "./dist/tsup/topologies/partition/mod.d.ts",
118
+ "default": "./dist/tsup/topologies/partition/mod.js"
119
+ },
120
+ "require": {
121
+ "types": "./dist/tsup/topologies/partition/mod.d.cts",
122
+ "default": "./dist/tsup/topologies/partition/mod.cjs"
123
+ }
124
+ },
125
+ "./test": {
126
+ "import": {
127
+ "types": "./dist/tsup/test/mod.d.ts",
128
+ "default": "./dist/tsup/test/mod.js"
129
+ },
130
+ "require": {
131
+ "types": "./dist/tsup/test/mod.d.cts",
132
+ "default": "./dist/tsup/test/mod.cjs"
133
+ }
134
+ },
135
+ "./inspector": {
136
+ "import": {
137
+ "types": "./dist/tsup/inspector/mod.d.ts",
138
+ "default": "./dist/tsup/inspector/mod.js"
139
+ },
140
+ "require": {
141
+ "types": "./dist/tsup/inspector/mod.d.cts",
142
+ "default": "./dist/tsup/inspector/mod.cjs"
143
+ }
144
+ }
145
+ },
146
+ "engines": {
147
+ "node": ">=22.0.0"
148
+ },
149
+ "sideEffects": false,
150
+ "dependencies": {
151
+ "@bare-ts/lib": "~0.3.0",
152
+ "@hono/standard-validator": "^0.1.3",
153
+ "@hono/zod-openapi": "^0.19.10",
154
+ "@rivetkit/engine-runner": "https://pkg.pr.new/rivet-gg/engine/@rivetkit/engine-runner@664a377",
155
+ "@rivetkit/fast-json-patch": "^3.1.2",
156
+ "cbor-x": "^1.6.0",
157
+ "hono": "^4.7.0",
158
+ "invariant": "^2.2.4",
159
+ "nanoevents": "^9.1.0",
160
+ "on-change": "^5.0.1",
161
+ "p-retry": "^6.2.1",
162
+ "zod": "^3.25.76"
163
+ },
164
+ "devDependencies": {
165
+ "@bare-ts/tools": "^0.13.0",
166
+ "@hono/node-server": "^1.18.2",
167
+ "@hono/node-ws": "^1.1.1",
168
+ "@rivet-gg/actor-core": "^25.1.0",
169
+ "@types/invariant": "^2",
170
+ "@types/node": "^22.13.1",
171
+ "@types/ws": "^8",
172
+ "@vitest/ui": "3.1.1",
173
+ "bundle-require": "^5.1.0",
174
+ "eventsource": "^3.0.5",
175
+ "tsup": "^8.4.0",
176
+ "tsx": "^4.19.4",
177
+ "typescript": "^5.7.3",
178
+ "vitest": "^3.1.1",
179
+ "ws": "^8.18.1"
180
+ },
181
+ "peerDependencies": {
182
+ "@hono/node-server": "^1.14.0",
183
+ "@hono/node-ws": "^1.1.1",
184
+ "eventsource": "^3.0.5",
185
+ "ws": "^8.0.0"
186
+ },
187
+ "peerDependenciesMeta": {
188
+ "@hono/node-server": {
189
+ "optional": true
190
+ },
191
+ "@hono/node-ws": {
192
+ "optional": true
193
+ },
194
+ "eventsource": {
195
+ "optional": true
196
+ },
197
+ "ws": {
198
+ "optional": true
199
+ }
200
+ },
201
+ "stableVersion": "0.8.0",
202
+ "scripts": {
203
+ "dev": "pnpm build --watch",
204
+ "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/test/mod.ts src/inspector/mod.ts",
205
+ "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/file-system-driver/v1.bare -o dist/schemas/file-system-driver/v1.ts && ./scripts/compile-bare.ts compile schemas/actor-persist/v1.bare -o dist/schemas/actor-persist/v1.ts",
206
+ "check-types": "tsc --noEmit",
207
+ "test": "vitest run",
208
+ "test:watch": "vitest",
209
+ "dump-openapi": "tsx scripts/dump-openapi.ts"
210
+ }
8
211
  }
@@ -0,0 +1,182 @@
1
+ import type { ActorKey } from "@/actor/mod";
2
+ import type { Client } from "@/client/client";
3
+ import type { Logger } from "@/common/log";
4
+ import type { Registry } from "@/registry/mod";
5
+ import type { Conn, ConnId } from "./connection";
6
+ import type { ActorContext } from "./context";
7
+ import type { AnyDatabaseProvider, InferDatabaseClient } from "./database";
8
+ import type { SaveStateOptions } from "./instance";
9
+ import type { Schedule } from "./schedule";
10
+
11
+ /**
12
+ * Context for a remote procedure call.
13
+ *
14
+ * @typeParam A Actor this action belongs to
15
+ */
16
+ export class ActionContext<
17
+ TState,
18
+ TConnParams,
19
+ TConnState,
20
+ TVars,
21
+ TInput,
22
+ TAuthData,
23
+ TDatabase extends AnyDatabaseProvider,
24
+ > {
25
+ #actorContext: ActorContext<
26
+ TState,
27
+ TConnParams,
28
+ TConnState,
29
+ TVars,
30
+ TInput,
31
+ TAuthData,
32
+ TDatabase
33
+ >;
34
+
35
+ /**
36
+ * Should not be called directly.
37
+ *
38
+ * @param actorContext - The actor context
39
+ * @param conn - The connection associated with the action
40
+ */
41
+ constructor(
42
+ actorContext: ActorContext<
43
+ TState,
44
+ TConnParams,
45
+ TConnState,
46
+ TVars,
47
+ TInput,
48
+ TAuthData,
49
+ TDatabase
50
+ >,
51
+ public readonly conn: Conn<
52
+ TState,
53
+ TConnParams,
54
+ TConnState,
55
+ TVars,
56
+ TInput,
57
+ TAuthData,
58
+ TDatabase
59
+ >,
60
+ ) {
61
+ this.#actorContext = actorContext;
62
+ }
63
+
64
+ /**
65
+ * Get the actor state
66
+ */
67
+ get state(): TState {
68
+ return this.#actorContext.state;
69
+ }
70
+
71
+ /**
72
+ * Get the actor variables
73
+ */
74
+ get vars(): TVars {
75
+ return this.#actorContext.vars;
76
+ }
77
+
78
+ /**
79
+ * Broadcasts an event to all connected clients.
80
+ */
81
+ broadcast(name: string, ...args: any[]): void {
82
+ this.#actorContext.broadcast(name, ...args);
83
+ }
84
+
85
+ /**
86
+ * Gets the logger instance.
87
+ */
88
+ get log(): Logger {
89
+ return this.#actorContext.log;
90
+ }
91
+
92
+ /**
93
+ * Gets actor ID.
94
+ */
95
+ get actorId(): string {
96
+ return this.#actorContext.actorId;
97
+ }
98
+
99
+ /**
100
+ * Gets the actor name.
101
+ */
102
+ get name(): string {
103
+ return this.#actorContext.name;
104
+ }
105
+
106
+ /**
107
+ * Gets the actor key.
108
+ */
109
+ get key(): ActorKey {
110
+ return this.#actorContext.key;
111
+ }
112
+
113
+ /**
114
+ * Gets the region.
115
+ */
116
+ get region(): string {
117
+ return this.#actorContext.region;
118
+ }
119
+
120
+ /**
121
+ * Gets the scheduler.
122
+ */
123
+ get schedule(): Schedule {
124
+ return this.#actorContext.schedule;
125
+ }
126
+
127
+ /**
128
+ * Gets the map of connections.
129
+ */
130
+ get conns(): Map<
131
+ ConnId,
132
+ Conn<TState, TConnParams, TConnState, TVars, TInput, TAuthData, TDatabase>
133
+ > {
134
+ return this.#actorContext.conns;
135
+ }
136
+
137
+ /**
138
+ * Returns the client for the given registry.
139
+ */
140
+ client<R extends Registry<any>>(): Client<R> {
141
+ return this.#actorContext.client<R>();
142
+ }
143
+
144
+ /**
145
+ * @experimental
146
+ */
147
+ get db(): InferDatabaseClient<TDatabase> {
148
+ return this.#actorContext.db;
149
+ }
150
+
151
+ /**
152
+ * Forces the state to get saved.
153
+ */
154
+ async saveState(opts: SaveStateOptions): Promise<void> {
155
+ return this.#actorContext.saveState(opts);
156
+ }
157
+
158
+ /**
159
+ * Prevents the actor from sleeping until promise is complete.
160
+ */
161
+ waitUntil(promise: Promise<void>): void {
162
+ this.#actorContext.waitUntil(promise);
163
+ }
164
+
165
+ /**
166
+ * AbortSignal that fires when the actor is stopping.
167
+ */
168
+ get abortSignal(): AbortSignal {
169
+ return this.#actorContext.abortSignal;
170
+ }
171
+
172
+ /**
173
+ * Forces the actor to sleep.
174
+ *
175
+ * Not supported on all drivers.
176
+ *
177
+ * @experimental
178
+ */
179
+ sleep() {
180
+ this.#actorContext.sleep();
181
+ }
182
+ }