rivetkit 2.0.24-rc.1 → 2.0.25-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 (231) hide show
  1. package/dist/schemas/actor-persist/v1.ts +6 -0
  2. package/dist/schemas/actor-persist/v2.ts +9 -3
  3. package/dist/schemas/actor-persist/v3.ts +280 -0
  4. package/dist/schemas/client-protocol/v1.ts +6 -0
  5. package/dist/schemas/client-protocol/v2.ts +438 -0
  6. package/dist/schemas/file-system-driver/v1.ts +6 -0
  7. package/dist/schemas/file-system-driver/v2.ts +142 -0
  8. package/dist/tsup/actor/errors.cjs +2 -4
  9. package/dist/tsup/actor/errors.cjs.map +1 -1
  10. package/dist/tsup/actor/errors.d.cts +7 -10
  11. package/dist/tsup/actor/errors.d.ts +7 -10
  12. package/dist/tsup/actor/errors.js +9 -11
  13. package/dist/tsup/{actor-router-consts-B3Lu87yJ.d.cts → actor-router-consts-DzI2szci.d.cts} +5 -9
  14. package/dist/tsup/{actor-router-consts-B3Lu87yJ.d.ts → actor-router-consts-DzI2szci.d.ts} +5 -9
  15. package/dist/tsup/{chunk-ZTH3KYFH.cjs → chunk-3FG5OJ3G.cjs} +3 -3
  16. package/dist/tsup/{chunk-ZTH3KYFH.cjs.map → chunk-3FG5OJ3G.cjs.map} +1 -1
  17. package/dist/tsup/{chunk-BLK27ES3.js → chunk-6JN6W6G3.js} +44 -56
  18. package/dist/tsup/chunk-6JN6W6G3.js.map +1 -0
  19. package/dist/tsup/chunk-7IBNNGQ2.js +514 -0
  20. package/dist/tsup/chunk-7IBNNGQ2.js.map +1 -0
  21. package/dist/tsup/{chunk-36JJ4IQB.cjs → chunk-AZATXPR4.cjs} +4 -8
  22. package/dist/tsup/chunk-AZATXPR4.cjs.map +1 -0
  23. package/dist/tsup/chunk-B7MENRD5.cjs +5694 -0
  24. package/dist/tsup/chunk-B7MENRD5.cjs.map +1 -0
  25. package/dist/tsup/{chunk-BOMZS2TJ.js → chunk-BBVFDEYD.js} +9 -9
  26. package/dist/tsup/chunk-BBVFDEYD.js.map +1 -0
  27. package/dist/tsup/{chunk-KSRXX3Z4.cjs → chunk-D6762AOA.cjs} +20 -25
  28. package/dist/tsup/chunk-D6762AOA.cjs.map +1 -0
  29. package/dist/tsup/{chunk-2JYPS5YM.cjs → chunk-E63WZNMR.cjs} +6 -6
  30. package/dist/tsup/chunk-E63WZNMR.cjs.map +1 -0
  31. package/dist/tsup/{chunk-YBG6R7LX.js → chunk-EDGN4OC7.js} +3 -7
  32. package/dist/tsup/chunk-EDGN4OC7.js.map +1 -0
  33. package/dist/tsup/{chunk-BYMKMOBS.js → chunk-FLOQ3UWM.js} +1844 -1681
  34. package/dist/tsup/chunk-FLOQ3UWM.js.map +1 -0
  35. package/dist/tsup/{chunk-7L65NNWP.cjs → chunk-H7GV5DIW.cjs} +187 -185
  36. package/dist/tsup/chunk-H7GV5DIW.cjs.map +1 -0
  37. package/dist/tsup/{chunk-227FEWMB.js → chunk-HZYZ7JSF.js} +3322 -2251
  38. package/dist/tsup/chunk-HZYZ7JSF.js.map +1 -0
  39. package/dist/tsup/{chunk-FX7TWFQR.js → chunk-IDJK7ILQ.js} +2 -6
  40. package/dist/tsup/chunk-IDJK7ILQ.js.map +1 -0
  41. package/dist/tsup/{chunk-VHGY7PU5.cjs → chunk-ILFXA4AL.cjs} +1900 -1737
  42. package/dist/tsup/chunk-ILFXA4AL.cjs.map +1 -0
  43. package/dist/tsup/chunk-MV6M3FDL.cjs +514 -0
  44. package/dist/tsup/chunk-MV6M3FDL.cjs.map +1 -0
  45. package/dist/tsup/{chunk-PLUN2NQT.js → chunk-NWBKMCWC.js} +189 -187
  46. package/dist/tsup/chunk-NWBKMCWC.js.map +1 -0
  47. package/dist/tsup/{chunk-CD33GT6Z.js → chunk-QIHBDXTO.js} +2 -2
  48. package/dist/tsup/{chunk-G64QUEDJ.js → chunk-W6RDS6NW.js} +23 -28
  49. package/dist/tsup/chunk-W6RDS6NW.js.map +1 -0
  50. package/dist/tsup/{chunk-INNFK746.cjs → chunk-WQU4M4ZC.cjs} +10 -14
  51. package/dist/tsup/chunk-WQU4M4ZC.cjs.map +1 -0
  52. package/dist/tsup/{chunk-SHVX2QUR.cjs → chunk-XKZA47XS.cjs} +17 -17
  53. package/dist/tsup/chunk-XKZA47XS.cjs.map +1 -0
  54. package/dist/tsup/{chunk-HHFKKVLR.cjs → chunk-YHWIOWVA.cjs} +45 -57
  55. package/dist/tsup/chunk-YHWIOWVA.cjs.map +1 -0
  56. package/dist/tsup/{chunk-YBHYXIP6.js → chunk-YVL6IRUM.js} +3 -3
  57. package/dist/tsup/chunk-YVL6IRUM.js.map +1 -0
  58. package/dist/tsup/client/mod.cjs +9 -9
  59. package/dist/tsup/client/mod.d.cts +5 -7
  60. package/dist/tsup/client/mod.d.ts +5 -7
  61. package/dist/tsup/client/mod.js +8 -8
  62. package/dist/tsup/common/log.cjs +3 -3
  63. package/dist/tsup/common/log.js +2 -2
  64. package/dist/tsup/common/websocket.cjs +4 -4
  65. package/dist/tsup/common/websocket.js +3 -3
  66. package/dist/tsup/{conn-B3Vhbgnd.d.ts → config-BRDYDraU.d.cts} +1119 -1047
  67. package/dist/tsup/{conn-DJWL3nGx.d.cts → config-Bo-blHpJ.d.ts} +1119 -1047
  68. package/dist/tsup/driver-helpers/mod.cjs +5 -13
  69. package/dist/tsup/driver-helpers/mod.cjs.map +1 -1
  70. package/dist/tsup/driver-helpers/mod.d.cts +11 -9
  71. package/dist/tsup/driver-helpers/mod.d.ts +11 -9
  72. package/dist/tsup/driver-helpers/mod.js +14 -22
  73. package/dist/tsup/driver-test-suite/mod.cjs +474 -303
  74. package/dist/tsup/driver-test-suite/mod.cjs.map +1 -1
  75. package/dist/tsup/driver-test-suite/mod.d.cts +6 -9
  76. package/dist/tsup/driver-test-suite/mod.d.ts +6 -9
  77. package/dist/tsup/driver-test-suite/mod.js +1085 -914
  78. package/dist/tsup/driver-test-suite/mod.js.map +1 -1
  79. package/dist/tsup/inspector/mod.cjs +6 -6
  80. package/dist/tsup/inspector/mod.d.cts +5 -7
  81. package/dist/tsup/inspector/mod.d.ts +5 -7
  82. package/dist/tsup/inspector/mod.js +5 -5
  83. package/dist/tsup/mod.cjs +10 -16
  84. package/dist/tsup/mod.cjs.map +1 -1
  85. package/dist/tsup/mod.d.cts +23 -25
  86. package/dist/tsup/mod.d.ts +23 -25
  87. package/dist/tsup/mod.js +17 -23
  88. package/dist/tsup/test/mod.cjs +11 -11
  89. package/dist/tsup/test/mod.d.cts +4 -6
  90. package/dist/tsup/test/mod.d.ts +4 -6
  91. package/dist/tsup/test/mod.js +10 -10
  92. package/dist/tsup/utils.cjs +3 -5
  93. package/dist/tsup/utils.cjs.map +1 -1
  94. package/dist/tsup/utils.d.cts +1 -2
  95. package/dist/tsup/utils.d.ts +1 -2
  96. package/dist/tsup/utils.js +2 -4
  97. package/package.json +13 -6
  98. package/src/actor/config.ts +56 -44
  99. package/src/actor/conn/driver.ts +61 -0
  100. package/src/actor/conn/drivers/http.ts +17 -0
  101. package/src/actor/conn/drivers/raw-request.ts +24 -0
  102. package/src/actor/conn/drivers/raw-websocket.ts +65 -0
  103. package/src/actor/conn/drivers/websocket.ts +129 -0
  104. package/src/actor/conn/mod.ts +232 -0
  105. package/src/actor/conn/persisted.ts +81 -0
  106. package/src/actor/conn/state-manager.ts +196 -0
  107. package/src/actor/contexts/action.ts +23 -0
  108. package/src/actor/{context.ts → contexts/actor.ts} +19 -8
  109. package/src/actor/contexts/conn-init.ts +31 -0
  110. package/src/actor/contexts/conn.ts +48 -0
  111. package/src/actor/contexts/create-conn-state.ts +13 -0
  112. package/src/actor/contexts/on-before-connect.ts +13 -0
  113. package/src/actor/contexts/on-connect.ts +22 -0
  114. package/src/actor/contexts/request.ts +48 -0
  115. package/src/actor/contexts/websocket.ts +48 -0
  116. package/src/actor/definition.ts +3 -3
  117. package/src/actor/driver.ts +36 -5
  118. package/src/actor/errors.ts +19 -24
  119. package/src/actor/instance/connection-manager.ts +465 -0
  120. package/src/actor/instance/event-manager.ts +292 -0
  121. package/src/actor/instance/kv.ts +15 -0
  122. package/src/actor/instance/mod.ts +1107 -0
  123. package/src/actor/instance/persisted.ts +67 -0
  124. package/src/actor/instance/schedule-manager.ts +349 -0
  125. package/src/actor/instance/state-manager.ts +502 -0
  126. package/src/actor/mod.ts +13 -16
  127. package/src/actor/protocol/old.ts +131 -43
  128. package/src/actor/protocol/serde.ts +19 -4
  129. package/src/actor/router-endpoints.ts +61 -586
  130. package/src/actor/router-websocket-endpoints.ts +408 -0
  131. package/src/actor/router.ts +63 -197
  132. package/src/actor/schedule.ts +1 -1
  133. package/src/client/actor-conn.ts +183 -249
  134. package/src/client/actor-handle.ts +29 -6
  135. package/src/client/client.ts +0 -4
  136. package/src/client/config.ts +1 -4
  137. package/src/client/mod.ts +0 -1
  138. package/src/client/raw-utils.ts +3 -3
  139. package/src/client/utils.ts +85 -39
  140. package/src/common/actor-router-consts.ts +5 -12
  141. package/src/common/{inline-websocket-adapter2.ts → inline-websocket-adapter.ts} +26 -48
  142. package/src/common/log.ts +1 -1
  143. package/src/common/router.ts +28 -17
  144. package/src/common/utils.ts +2 -0
  145. package/src/driver-helpers/mod.ts +7 -10
  146. package/src/driver-helpers/utils.ts +18 -9
  147. package/src/driver-test-suite/mod.ts +26 -50
  148. package/src/driver-test-suite/test-inline-client-driver.ts +27 -51
  149. package/src/driver-test-suite/tests/actor-conn-hibernation.ts +150 -0
  150. package/src/driver-test-suite/tests/actor-conn-state.ts +1 -4
  151. package/src/driver-test-suite/tests/actor-conn.ts +5 -9
  152. package/src/driver-test-suite/tests/actor-destroy.ts +294 -0
  153. package/src/driver-test-suite/tests/actor-driver.ts +0 -7
  154. package/src/driver-test-suite/tests/actor-handle.ts +12 -12
  155. package/src/driver-test-suite/tests/actor-metadata.ts +1 -1
  156. package/src/driver-test-suite/tests/manager-driver.ts +1 -1
  157. package/src/driver-test-suite/tests/raw-http-direct-registry.ts +8 -8
  158. package/src/driver-test-suite/tests/raw-http-request-properties.ts +6 -5
  159. package/src/driver-test-suite/tests/raw-http.ts +5 -5
  160. package/src/driver-test-suite/tests/raw-websocket-direct-registry.ts +7 -7
  161. package/src/driver-test-suite/tests/request-access.ts +4 -4
  162. package/src/driver-test-suite/utils.ts +6 -10
  163. package/src/drivers/engine/actor-driver.ts +614 -424
  164. package/src/drivers/engine/mod.ts +0 -1
  165. package/src/drivers/file-system/actor.ts +24 -12
  166. package/src/drivers/file-system/global-state.ts +427 -37
  167. package/src/drivers/file-system/manager.ts +71 -83
  168. package/src/drivers/file-system/mod.ts +3 -0
  169. package/src/drivers/file-system/utils.ts +18 -8
  170. package/src/engine-process/mod.ts +38 -38
  171. package/src/inspector/utils.ts +7 -5
  172. package/src/manager/driver.ts +11 -4
  173. package/src/manager/gateway.ts +4 -29
  174. package/src/manager/protocol/mod.ts +0 -2
  175. package/src/manager/protocol/query.ts +0 -4
  176. package/src/manager/router.ts +67 -64
  177. package/src/manager-api/actors.ts +13 -0
  178. package/src/mod.ts +1 -3
  179. package/src/registry/mod.ts +20 -20
  180. package/src/registry/serve.ts +9 -14
  181. package/src/remote-manager-driver/actor-websocket-client.ts +1 -16
  182. package/src/remote-manager-driver/api-endpoints.ts +13 -1
  183. package/src/remote-manager-driver/api-utils.ts +8 -0
  184. package/src/remote-manager-driver/metadata.ts +58 -0
  185. package/src/remote-manager-driver/mod.ts +47 -62
  186. package/src/remote-manager-driver/ws-proxy.ts +1 -1
  187. package/src/schemas/actor-persist/mod.ts +1 -1
  188. package/src/schemas/actor-persist/versioned.ts +56 -31
  189. package/src/schemas/client-protocol/mod.ts +1 -1
  190. package/src/schemas/client-protocol/versioned.ts +41 -21
  191. package/src/schemas/client-protocol-zod/mod.ts +103 -0
  192. package/src/schemas/file-system-driver/mod.ts +1 -1
  193. package/src/schemas/file-system-driver/versioned.ts +42 -19
  194. package/src/serde.ts +33 -11
  195. package/src/test/mod.ts +7 -3
  196. package/src/utils/node.ts +173 -0
  197. package/src/utils.ts +0 -4
  198. package/dist/tsup/chunk-227FEWMB.js.map +0 -1
  199. package/dist/tsup/chunk-2JYPS5YM.cjs.map +0 -1
  200. package/dist/tsup/chunk-36JJ4IQB.cjs.map +0 -1
  201. package/dist/tsup/chunk-7L65NNWP.cjs.map +0 -1
  202. package/dist/tsup/chunk-BLK27ES3.js.map +0 -1
  203. package/dist/tsup/chunk-BOMZS2TJ.js.map +0 -1
  204. package/dist/tsup/chunk-BYMKMOBS.js.map +0 -1
  205. package/dist/tsup/chunk-FX7TWFQR.js.map +0 -1
  206. package/dist/tsup/chunk-G64QUEDJ.js.map +0 -1
  207. package/dist/tsup/chunk-HHFKKVLR.cjs.map +0 -1
  208. package/dist/tsup/chunk-INNFK746.cjs.map +0 -1
  209. package/dist/tsup/chunk-KSRXX3Z4.cjs.map +0 -1
  210. package/dist/tsup/chunk-O44LFKSB.cjs +0 -4623
  211. package/dist/tsup/chunk-O44LFKSB.cjs.map +0 -1
  212. package/dist/tsup/chunk-PLUN2NQT.js.map +0 -1
  213. package/dist/tsup/chunk-S4UJG7ZE.js +0 -1119
  214. package/dist/tsup/chunk-S4UJG7ZE.js.map +0 -1
  215. package/dist/tsup/chunk-SHVX2QUR.cjs.map +0 -1
  216. package/dist/tsup/chunk-VFB23BYZ.cjs +0 -1119
  217. package/dist/tsup/chunk-VFB23BYZ.cjs.map +0 -1
  218. package/dist/tsup/chunk-VHGY7PU5.cjs.map +0 -1
  219. package/dist/tsup/chunk-YBG6R7LX.js.map +0 -1
  220. package/dist/tsup/chunk-YBHYXIP6.js.map +0 -1
  221. package/src/actor/action.ts +0 -178
  222. package/src/actor/conn-drivers.ts +0 -216
  223. package/src/actor/conn-socket.ts +0 -8
  224. package/src/actor/conn.ts +0 -272
  225. package/src/actor/instance.ts +0 -2336
  226. package/src/actor/persisted.ts +0 -49
  227. package/src/actor/unstable-react.ts +0 -110
  228. package/src/driver-test-suite/tests/actor-reconnect.ts +0 -170
  229. package/src/drivers/engine/kv.ts +0 -3
  230. package/src/manager/hono-websocket-adapter.ts +0 -393
  231. /package/dist/tsup/{chunk-CD33GT6Z.js.map → chunk-QIHBDXTO.js.map} +0 -0
@@ -95,20 +95,6 @@ var InvalidEncoding = class extends ActorError {
95
95
  );
96
96
  }
97
97
  };
98
- var ConnNotFound = class extends ActorError {
99
- constructor(id) {
100
- super("connection", "not_found", `Connection not found for ID: ${id}`, {
101
- public: true
102
- });
103
- }
104
- };
105
- var IncorrectConnToken = class extends ActorError {
106
- constructor() {
107
- super("connection", "incorrect_token", "Incorrect connection token.", {
108
- public: true
109
- });
110
- }
111
- };
112
98
  var MessageTooLong = class extends ActorError {
113
99
  constructor() {
114
100
  super(
@@ -184,16 +170,26 @@ var ActorNotFound = class extends ActorError {
184
170
  );
185
171
  }
186
172
  };
187
- var ActorAlreadyExists = class extends ActorError {
173
+ var ActorDuplicateKey = class extends ActorError {
188
174
  constructor(name, key) {
189
175
  super(
190
176
  "actor",
191
- "already_exists",
177
+ "duplicate_key",
192
178
  `Actor already exists with name '${name}' and key '${JSON.stringify(key)}' (https://www.rivet.dev/docs/actors/clients/#actor-client)`,
193
179
  { public: true }
194
180
  );
195
181
  }
196
182
  };
183
+ var ActorStopping = class extends ActorError {
184
+ constructor(identifier) {
185
+ super(
186
+ "actor",
187
+ "stopping",
188
+ identifier ? `Actor stopping: ${identifier}` : "Actor stopping",
189
+ { public: true }
190
+ );
191
+ }
192
+ };
197
193
  var ProxyError = class extends ActorError {
198
194
  constructor(operation, error) {
199
195
  super(
@@ -253,12 +249,12 @@ var DatabaseNotEnabled = class extends ActorError {
253
249
  );
254
250
  }
255
251
  };
256
- var FetchHandlerNotDefined = class extends ActorError {
252
+ var RequestHandlerNotDfeined = class extends ActorError {
257
253
  constructor() {
258
254
  super(
259
255
  "handler",
260
- "fetch_not_defined",
261
- "Raw HTTP handler not defined. Actor must implement `onFetch` to handle raw HTTP requests. (https://www.rivet.dev/docs/actors/fetch-and-websocket-handler/)",
256
+ "request_not_defined",
257
+ "Raw request handler not defined. Actor must implement `onRequest` to handle raw HTTP requests. (https://www.rivet.dev/docs/actors/fetch-and-websocket-handler/)",
262
258
  { public: true }
263
259
  );
264
260
  this.statusCode = 404;
@@ -275,12 +271,12 @@ var WebSocketHandlerNotDefined = class extends ActorError {
275
271
  this.statusCode = 404;
276
272
  }
277
273
  };
278
- var InvalidFetchResponse = class extends ActorError {
274
+ var InvalidRequestHandlerResponse = class extends ActorError {
279
275
  constructor() {
280
276
  super(
281
277
  "handler",
282
- "invalid_fetch_response",
283
- "Actor's onFetch handler must return a Response object. Returning void/undefined is not allowed. (https://www.rivet.dev/docs/actors/fetch-and-websocket-handler/)",
278
+ "invalid_request_handler_response",
279
+ "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/)",
284
280
  { public: true }
285
281
  );
286
282
  this.statusCode = 500;
@@ -336,8 +332,6 @@ export {
336
332
  ActionTimedOut,
337
333
  ActionNotFound,
338
334
  InvalidEncoding,
339
- ConnNotFound,
340
- IncorrectConnToken,
341
335
  MessageTooLong,
342
336
  MalformedMessage,
343
337
  InvalidStateType,
@@ -346,19 +340,20 @@ export {
346
340
  InvalidQueryJSON,
347
341
  InvalidRequest,
348
342
  ActorNotFound,
349
- ActorAlreadyExists,
343
+ ActorDuplicateKey,
344
+ ActorStopping,
350
345
  ProxyError,
351
346
  InvalidActionRequest,
352
347
  InvalidParams,
353
348
  Unauthorized,
354
349
  Forbidden,
355
350
  DatabaseNotEnabled,
356
- FetchHandlerNotDefined,
351
+ RequestHandlerNotDfeined,
357
352
  WebSocketHandlerNotDefined,
358
- InvalidFetchResponse,
353
+ InvalidRequestHandlerResponse,
359
354
  MissingActorHeader,
360
355
  WebSocketsNotEnabled,
361
356
  FeatureNotImplemented,
362
357
  RouteNotFound
363
358
  };
364
- //# sourceMappingURL=chunk-G64QUEDJ.js.map
359
+ //# sourceMappingURL=chunk-W6RDS6NW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/actor/errors.ts"],"sourcesContent":["import type { DeconstructedError } from \"@/common/utils\";\n\nexport const INTERNAL_ERROR_CODE = \"internal_error\";\nexport const INTERNAL_ERROR_DESCRIPTION =\n\t\"Internal error. Read the server logs for more details.\";\nexport type InternalErrorMetadata = {};\n\nexport const USER_ERROR_CODE = \"user_error\";\n\ninterface ActorErrorOptions extends ErrorOptions {\n\t/** Error data can safely be serialized in a response to the client. */\n\tpublic?: boolean;\n\t/** Metadata associated with this error. This will be sent to clients. */\n\tmetadata?: unknown;\n}\n\nexport class ActorError extends Error {\n\t__type = \"ActorError\";\n\n\tpublic public: boolean;\n\tpublic metadata?: unknown;\n\tpublic statusCode = 500;\n\tpublic readonly group: string;\n\tpublic readonly code: string;\n\n\tpublic static isActorError(\n\t\terror: unknown,\n\t): error is ActorError | DeconstructedError {\n\t\treturn (\n\t\t\ttypeof error === \"object\" &&\n\t\t\t(error as ActorError | DeconstructedError).__type === \"ActorError\"\n\t\t);\n\t}\n\n\tconstructor(\n\t\tgroup: string,\n\t\tcode: string,\n\t\tmessage: string,\n\t\topts?: ActorErrorOptions,\n\t) {\n\t\tsuper(message, { cause: opts?.cause });\n\t\tthis.group = group;\n\t\tthis.code = code;\n\t\tthis.public = opts?.public ?? false;\n\t\tthis.metadata = opts?.metadata;\n\n\t\t// Set status code based on error type\n\t\tif (opts?.public) {\n\t\t\tthis.statusCode = 400; // Bad request for public errors\n\t\t}\n\t}\n\n\ttoString() {\n\t\t// Force stringify to return the message\n\t\treturn this.message;\n\t}\n}\n\nexport class InternalError extends ActorError {\n\tconstructor(message: string) {\n\t\tsuper(\"actor\", INTERNAL_ERROR_CODE, message);\n\t}\n}\n\nexport class Unreachable extends InternalError {\n\tconstructor(x: never) {\n\t\tsuper(`Unreachable case: ${x}`);\n\t}\n}\n\nexport class StateNotEnabled extends ActorError {\n\tconstructor() {\n\t\tsuper(\n\t\t\t\"actor\",\n\t\t\t\"state_not_enabled\",\n\t\t\t\"State not enabled. Must implement `createState` or `state` to use state. (https://www.rivet.dev/docs/actors/state/#initializing-state)\",\n\t\t);\n\t}\n}\n\nexport class ConnStateNotEnabled extends ActorError {\n\tconstructor() {\n\t\tsuper(\n\t\t\t\"actor\",\n\t\t\t\"conn_state_not_enabled\",\n\t\t\t\"Connection state not enabled. Must implement `createConnectionState` or `connectionState` to use connection state. (https://www.rivet.dev/docs/actors/connections/#connection-state)\",\n\t\t);\n\t}\n}\n\nexport class VarsNotEnabled extends ActorError {\n\tconstructor() {\n\t\tsuper(\n\t\t\t\"actor\",\n\t\t\t\"vars_not_enabled\",\n\t\t\t\"Variables not enabled. Must implement `createVars` or `vars` to use state. (https://www.rivet.dev/docs/actors/ephemeral-variables/#initializing-variables)\",\n\t\t);\n\t}\n}\n\nexport class ActionTimedOut extends ActorError {\n\tconstructor() {\n\t\tsuper(\n\t\t\t\"action\",\n\t\t\t\"timed_out\",\n\t\t\t\"Action timed out. This can be increased with: `actor({ options: { action: { timeout: ... } } })`\",\n\t\t\t{ public: true },\n\t\t);\n\t}\n}\n\nexport class ActionNotFound extends ActorError {\n\tconstructor(name: string) {\n\t\tsuper(\n\t\t\t\"action\",\n\t\t\t\"not_found\",\n\t\t\t`Action '${name}' not found. Validate the action exists on your actor.`,\n\t\t\t{ public: true },\n\t\t);\n\t}\n}\n\nexport class InvalidEncoding extends ActorError {\n\tconstructor(format?: string) {\n\t\tsuper(\n\t\t\t\"encoding\",\n\t\t\t\"invalid\",\n\t\t\t`Invalid encoding \\`${format}\\`. (https://www.rivet.dev/docs/actors/clients/#actor-client)`,\n\t\t\t{\n\t\t\t\tpublic: true,\n\t\t\t},\n\t\t);\n\t}\n}\n\nexport class MessageTooLong extends ActorError {\n\tconstructor() {\n\t\tsuper(\n\t\t\t\"message\",\n\t\t\t\"too_long\",\n\t\t\t\"Message too long. This can be configured with: `registry.start({ maxIncomingMessageSize: ... })`\",\n\t\t\t{ public: true },\n\t\t);\n\t}\n}\n\nexport class MalformedMessage extends ActorError {\n\tconstructor(cause?: unknown) {\n\t\tsuper(\"message\", \"malformed\", `Malformed message: ${cause}`, {\n\t\t\tpublic: true,\n\t\t\tcause,\n\t\t});\n\t}\n}\n\nexport interface InvalidStateTypeOptions {\n\tpath?: unknown;\n}\n\nexport class InvalidStateType extends ActorError {\n\tconstructor(opts?: InvalidStateTypeOptions) {\n\t\tlet msg = \"\";\n\t\tif (opts?.path) {\n\t\t\tmsg += `Attempted to set invalid state at path \\`${opts.path}\\`.`;\n\t\t} else {\n\t\t\tmsg += \"Attempted to set invalid state.\";\n\t\t}\n\t\tmsg +=\n\t\t\t\" 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)\";\n\t\tsuper(\"state\", \"invalid_type\", msg);\n\t}\n}\n\nexport class Unsupported extends ActorError {\n\tconstructor(feature: string) {\n\t\tsuper(\"feature\", \"unsupported\", `Unsupported feature: ${feature}`);\n\t}\n}\n\n/**\n * Options for the UserError class.\n */\nexport interface UserErrorOptions extends ErrorOptions {\n\t/**\n\t * Machine readable code for this error. Useful for catching different types of errors in try-catch.\n\t */\n\tcode?: string;\n\n\t/**\n\t * Additional metadata related to the error. Useful for understanding context about the error.\n\t */\n\tmetadata?: unknown;\n}\n\n/** Error that can be safely returned to the user. */\nexport class UserError extends ActorError {\n\t/**\n\t * Constructs a new UserError instance.\n\t *\n\t * @param message - The error message to be displayed.\n\t * @param opts - Optional parameters for the error, including a machine-readable code and additional metadata.\n\t */\n\tconstructor(message: string, opts?: UserErrorOptions) {\n\t\tsuper(\"user\", opts?.code ?? USER_ERROR_CODE, message, {\n\t\t\tpublic: true,\n\t\t\tmetadata: opts?.metadata,\n\t\t});\n\t}\n}\n\nexport class InvalidQueryJSON extends ActorError {\n\tconstructor(error?: unknown) {\n\t\tsuper(\"request\", \"invalid_query_json\", `Invalid query JSON: ${error}`, {\n\t\t\tpublic: true,\n\t\t\tcause: error,\n\t\t});\n\t}\n}\n\nexport class InvalidRequest extends ActorError {\n\tconstructor(error?: unknown) {\n\t\tsuper(\"request\", \"invalid\", `Invalid request: ${error}`, {\n\t\t\tpublic: true,\n\t\t\tcause: error,\n\t\t});\n\t}\n}\n\nexport class ActorNotFound extends ActorError {\n\tconstructor(identifier?: string) {\n\t\tsuper(\n\t\t\t\"actor\",\n\t\t\t\"not_found\",\n\t\t\tidentifier\n\t\t\t\t? `Actor not found: ${identifier} (https://www.rivet.dev/docs/actors/clients/#actor-client)`\n\t\t\t\t: \"Actor not found (https://www.rivet.dev/docs/actors/clients/#actor-client)\",\n\t\t\t{ public: true },\n\t\t);\n\t}\n}\n\nexport class ActorDuplicateKey extends ActorError {\n\tconstructor(name: string, key: string[]) {\n\t\tsuper(\n\t\t\t\"actor\",\n\t\t\t\"duplicate_key\",\n\t\t\t`Actor already exists with name '${name}' and key '${JSON.stringify(key)}' (https://www.rivet.dev/docs/actors/clients/#actor-client)`,\n\t\t\t{ public: true },\n\t\t);\n\t}\n}\n\nexport class ActorStopping extends ActorError {\n\tconstructor(identifier?: string) {\n\t\tsuper(\n\t\t\t\"actor\",\n\t\t\t\"stopping\",\n\t\t\tidentifier ? `Actor stopping: ${identifier}` : \"Actor stopping\",\n\t\t\t{ public: true },\n\t\t);\n\t}\n}\n\nexport class ProxyError extends ActorError {\n\tconstructor(operation: string, error?: unknown) {\n\t\tsuper(\n\t\t\t\"proxy\",\n\t\t\t\"error\",\n\t\t\t`Error proxying ${operation}, this is likely an internal error: ${error}`,\n\t\t\t{\n\t\t\t\tpublic: true,\n\t\t\t\tcause: error,\n\t\t\t},\n\t\t);\n\t}\n}\n\nexport class InvalidActionRequest extends ActorError {\n\tconstructor(message: string) {\n\t\tsuper(\"action\", \"invalid_request\", message, { public: true });\n\t}\n}\n\nexport class InvalidParams extends ActorError {\n\tconstructor(message: string) {\n\t\tsuper(\"params\", \"invalid\", message, { public: true });\n\t}\n}\n\nexport class Unauthorized extends ActorError {\n\tconstructor(message?: string) {\n\t\tsuper(\n\t\t\t\"auth\",\n\t\t\t\"unauthorized\",\n\t\t\tmessage ??\n\t\t\t\t\"Unauthorized. Access denied. (https://www.rivet.dev/docs/actors/authentication/)\",\n\t\t\t{\n\t\t\t\tpublic: true,\n\t\t\t},\n\t\t);\n\t\tthis.statusCode = 401;\n\t}\n}\n\nexport class Forbidden extends ActorError {\n\tconstructor(message?: string, opts?: { metadata?: unknown }) {\n\t\tsuper(\n\t\t\t\"auth\",\n\t\t\t\"forbidden\",\n\t\t\tmessage ??\n\t\t\t\t\"Forbidden. Access denied. (https://www.rivet.dev/docs/actors/authentication/)\",\n\t\t\t{\n\t\t\t\tpublic: true,\n\t\t\t\tmetadata: opts?.metadata,\n\t\t\t},\n\t\t);\n\t\tthis.statusCode = 403;\n\t}\n}\n\nexport class DatabaseNotEnabled extends ActorError {\n\tconstructor() {\n\t\tsuper(\n\t\t\t\"database\",\n\t\t\t\"not_enabled\",\n\t\t\t\"Database not enabled. Must implement `database` to use database.\",\n\t\t);\n\t}\n}\n\nexport class RequestHandlerNotDfeined extends ActorError {\n\tconstructor() {\n\t\tsuper(\n\t\t\t\"handler\",\n\t\t\t\"request_not_defined\",\n\t\t\t\"Raw request handler not defined. Actor must implement `onRequest` to handle raw HTTP requests. (https://www.rivet.dev/docs/actors/fetch-and-websocket-handler/)\",\n\t\t\t{ public: true },\n\t\t);\n\t\tthis.statusCode = 404;\n\t}\n}\n\nexport class WebSocketHandlerNotDefined extends ActorError {\n\tconstructor() {\n\t\tsuper(\n\t\t\t\"handler\",\n\t\t\t\"websocket_not_defined\",\n\t\t\t\"Raw WebSocket handler not defined. Actor must implement `onWebSocket` to handle raw WebSocket connections. (https://www.rivet.dev/docs/actors/fetch-and-websocket-handler/)\",\n\t\t\t{ public: true },\n\t\t);\n\t\tthis.statusCode = 404;\n\t}\n}\n\nexport class InvalidRequestHandlerResponse extends ActorError {\n\tconstructor() {\n\t\tsuper(\n\t\t\t\"handler\",\n\t\t\t\"invalid_request_handler_response\",\n\t\t\t\"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/)\",\n\t\t\t{ public: true },\n\t\t);\n\t\tthis.statusCode = 500;\n\t}\n}\n\n// Manager-specific errors\nexport class MissingActorHeader extends ActorError {\n\tconstructor() {\n\t\tsuper(\n\t\t\t\"request\",\n\t\t\t\"missing_actor_header\",\n\t\t\t\"Missing x-rivet-actor header when x-rivet-target=actor\",\n\t\t\t{ public: true },\n\t\t);\n\t\tthis.statusCode = 400;\n\t}\n}\n\nexport class WebSocketsNotEnabled extends ActorError {\n\tconstructor() {\n\t\tsuper(\n\t\t\t\"driver\",\n\t\t\t\"websockets_not_enabled\",\n\t\t\t\"WebSockets are not enabled for this driver\",\n\t\t\t{ public: true },\n\t\t);\n\t\tthis.statusCode = 400;\n\t}\n}\n\nexport class FeatureNotImplemented extends ActorError {\n\tconstructor(feature: string) {\n\t\tsuper(\"feature\", \"not_implemented\", `${feature} is not implemented`, {\n\t\t\tpublic: true,\n\t\t});\n\t\tthis.statusCode = 501;\n\t}\n}\n\nexport class RouteNotFound extends ActorError {\n\tconstructor() {\n\t\tsuper(\"route\", \"not_found\", \"Route not found\", { public: true });\n\t\tthis.statusCode = 404;\n\t}\n}\n"],"mappings":"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","names":[]}
@@ -4,9 +4,7 @@
4
4
 
5
5
 
6
6
 
7
-
8
-
9
- var _chunkHHFKKVLRcjs = require('./chunk-HHFKKVLR.cjs');
7
+ var _chunkYHWIOWVAcjs = require('./chunk-YHWIOWVA.cjs');
10
8
 
11
9
  // src/inspector/protocol/common.ts
12
10
  var _v4 = require('zod/v4'); var _v42 = _interopRequireDefault(_v4);
@@ -49,24 +47,22 @@ var ActorQuerySchema = _zod.z.union([
49
47
  })
50
48
  ]);
51
49
  var ConnectRequestSchema = _zod.z.object({
52
- query: ActorQuerySchema.describe(_chunkHHFKKVLRcjs.HEADER_ACTOR_QUERY),
53
- encoding: _chunkHHFKKVLRcjs.EncodingSchema.describe(_chunkHHFKKVLRcjs.HEADER_ENCODING),
54
- connParams: _zod.z.string().optional().describe(_chunkHHFKKVLRcjs.HEADER_CONN_PARAMS)
50
+ query: ActorQuerySchema.describe(_chunkYHWIOWVAcjs.HEADER_ACTOR_QUERY),
51
+ encoding: _chunkYHWIOWVAcjs.EncodingSchema.describe(_chunkYHWIOWVAcjs.HEADER_ENCODING),
52
+ connParams: _zod.z.string().optional().describe(_chunkYHWIOWVAcjs.HEADER_CONN_PARAMS)
55
53
  });
56
54
  var ConnectWebSocketRequestSchema = _zod.z.object({
57
55
  query: ActorQuerySchema.describe("query"),
58
- encoding: _chunkHHFKKVLRcjs.EncodingSchema.describe("encoding"),
56
+ encoding: _chunkYHWIOWVAcjs.EncodingSchema.describe("encoding"),
59
57
  connParams: _zod.z.unknown().optional().describe("conn_params")
60
58
  });
61
59
  var ConnMessageRequestSchema = _zod.z.object({
62
- actorId: _zod.z.string().describe(_chunkHHFKKVLRcjs.HEADER_ACTOR_ID),
63
- connId: _zod.z.string().describe(_chunkHHFKKVLRcjs.HEADER_CONN_ID),
64
- encoding: _chunkHHFKKVLRcjs.EncodingSchema.describe(_chunkHHFKKVLRcjs.HEADER_ENCODING),
65
- connToken: _zod.z.string().describe(_chunkHHFKKVLRcjs.HEADER_CONN_TOKEN)
60
+ actorId: _zod.z.string().describe(_chunkYHWIOWVAcjs.HEADER_ACTOR_ID),
61
+ encoding: _chunkYHWIOWVAcjs.EncodingSchema.describe(_chunkYHWIOWVAcjs.HEADER_ENCODING)
66
62
  });
67
63
  var ResolveRequestSchema = _zod.z.object({
68
- query: ActorQuerySchema.describe(_chunkHHFKKVLRcjs.HEADER_ACTOR_QUERY),
69
- connParams: _zod.z.string().optional().describe(_chunkHHFKKVLRcjs.HEADER_CONN_PARAMS)
64
+ query: ActorQuerySchema.describe(_chunkYHWIOWVAcjs.HEADER_ACTOR_QUERY),
65
+ connParams: _zod.z.string().optional().describe(_chunkYHWIOWVAcjs.HEADER_CONN_PARAMS)
70
66
  });
71
67
 
72
68
  // src/inspector/protocol/common.ts
@@ -236,4 +232,4 @@ var CreateActorSchema = _v42.default.object({
236
232
 
237
233
 
238
234
  exports.ActorId = ActorId; exports.ActorFeature = ActorFeature; exports.ActorLogEntry = ActorLogEntry; exports.ActorSchema = ActorSchema; exports.OperationSchema = OperationSchema; exports.PatchSchema = PatchSchema; exports.ConnectionSchema = ConnectionSchema; exports.RealtimeEventSchema = RealtimeEventSchema; exports.RecordedRealtimeEventSchema = RecordedRealtimeEventSchema; exports.DatabaseQuerySchema = DatabaseQuerySchema; exports.TableSchema = TableSchema; exports.TablesSchema = TablesSchema; exports.ColumnSchema = ColumnSchema; exports.ColumnsSchema = ColumnsSchema; exports.ForeignKeySchema = ForeignKeySchema; exports.ForeignKeysSchema = ForeignKeysSchema; exports.BuildSchema = BuildSchema; exports.BuildsSchema = BuildsSchema; exports.CreateActorSchema = CreateActorSchema;
239
- //# sourceMappingURL=chunk-INNFK746.cjs.map
235
+ //# sourceMappingURL=chunk-WQU4M4ZC.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/chunk-WQU4M4ZC.cjs","../../src/inspector/protocol/common.ts","../../src/manager/protocol/query.ts"],"names":["z","ActorFeature"],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACA;ACRA,oEAAc;ADUd;AACA;AEXA,0BAAkB;AAYX,IAAM,mBAAA,EAAqB,GAAA;AAE3B,IAAM,eAAA,EAAiB,MAAA,CAAE,KAAA,CAAM,MAAA,CAAE,MAAA,CAAO,CAAA,CAAE,GAAA,CAAI,kBAAkB,CAAC,CAAA;AAIjE,IAAM,oBAAA,EAAsB,MAAA,CAAE,MAAA,CAAO;AAAA,EAC3C,IAAA,EAAM,MAAA,CAAE,MAAA,CAAO,CAAA;AAAA,EACf,GAAA,EAAK,cAAA;AAAA,EACL,KAAA,EAAO,MAAA,CAAE,OAAA,CAAQ,CAAA,CAAE,QAAA,CAAS,CAAA;AAAA,EAC5B,MAAA,EAAQ,MAAA,CAAE,MAAA,CAAO,CAAA,CAAE,QAAA,CAAS;AAC7B,CAAC,CAAA;AAEM,IAAM,uBAAA,EAAyB,MAAA,CAAE,MAAA,CAAO;AAAA,EAC9C,IAAA,EAAM,MAAA,CAAE,MAAA,CAAO,CAAA;AAAA,EACf,GAAA,EAAK;AACN,CAAC,CAAA;AAEM,IAAM,yBAAA,EAA2B,MAAA,CAAE,MAAA,CAAO;AAAA,EAChD,IAAA,EAAM,MAAA,CAAE,MAAA,CAAO,CAAA;AAAA,EACf,GAAA,EAAK,cAAA;AAAA,EACL,KAAA,EAAO,MAAA,CAAE,OAAA,CAAQ,CAAA,CAAE,QAAA,CAAS,CAAA;AAAA,EAC5B,MAAA,EAAQ,MAAA,CAAE,MAAA,CAAO,CAAA,CAAE,QAAA,CAAS;AAC7B,CAAC,CAAA;AAEM,IAAM,iBAAA,EAAmB,MAAA,CAAE,KAAA,CAAM;AAAA,EACvC,MAAA,CAAE,MAAA,CAAO;AAAA,IACR,QAAA,EAAU,MAAA,CAAE,MAAA,CAAO;AAAA,MAClB,IAAA,EAAM,MAAA,CAAE,MAAA,CAAO,CAAA;AAAA,MACf,OAAA,EAAS,MAAA,CAAE,MAAA,CAAO;AAAA,IACnB,CAAC;AAAA,EACF,CAAC,CAAA;AAAA,EACD,MAAA,CAAE,MAAA,CAAO;AAAA,IACR,SAAA,EAAW;AAAA,EACZ,CAAC,CAAA;AAAA,EACD,MAAA,CAAE,MAAA,CAAO;AAAA,IACR,iBAAA,EAAmB;AAAA,EACpB,CAAC,CAAA;AAAA,EACD,MAAA,CAAE,MAAA,CAAO;AAAA,IACR,MAAA,EAAQ;AAAA,EACT,CAAC;AACF,CAAC,CAAA;AAEM,IAAM,qBAAA,EAAuB,MAAA,CAAE,MAAA,CAAO;AAAA,EAC5C,KAAA,EAAO,gBAAA,CAAiB,QAAA,CAAS,oCAAkB,CAAA;AAAA,EACnD,QAAA,EAAU,gCAAA,CAAe,QAAA,CAAS,iCAAe,CAAA;AAAA,EACjD,UAAA,EAAY,MAAA,CAAE,MAAA,CAAO,CAAA,CAAE,QAAA,CAAS,CAAA,CAAE,QAAA,CAAS,oCAAkB;AAC9D,CAAC,CAAA;AAEM,IAAM,8BAAA,EAAgC,MAAA,CAAE,MAAA,CAAO;AAAA,EACrD,KAAA,EAAO,gBAAA,CAAiB,QAAA,CAAS,OAAO,CAAA;AAAA,EACxC,QAAA,EAAU,gCAAA,CAAe,QAAA,CAAS,UAAU,CAAA;AAAA,EAC5C,UAAA,EAAY,MAAA,CAAE,OAAA,CAAQ,CAAA,CAAE,QAAA,CAAS,CAAA,CAAE,QAAA,CAAS,aAAa;AAC1D,CAAC,CAAA;AAEM,IAAM,yBAAA,EAA2B,MAAA,CAAE,MAAA,CAAO;AAAA,EAChD,OAAA,EAAS,MAAA,CAAE,MAAA,CAAO,CAAA,CAAE,QAAA,CAAS,iCAAe,CAAA;AAAA,EAC5C,QAAA,EAAU,gCAAA,CAAe,QAAA,CAAS,iCAAe;AAClD,CAAC,CAAA;AAEM,IAAM,qBAAA,EAAuB,MAAA,CAAE,MAAA,CAAO;AAAA,EAC5C,KAAA,EAAO,gBAAA,CAAiB,QAAA,CAAS,oCAAkB,CAAA;AAAA,EACnD,UAAA,EAAY,MAAA,CAAE,MAAA,CAAO,CAAA,CAAE,QAAA,CAAS,CAAA,CAAE,QAAA,CAAS,oCAAkB;AAC9D,CAAC,CAAA;AFTD;AACA;AChEO,IAAM,QAAA,EAAUA,YAAAA,CAAE,MAAA,CAAO,CAAA,CAAE,KAAA,CAAM,SAAS,CAAA;AAG1C,IAAK,aAAA,kBAAL,CAAA,CAAKC,aAAAA,EAAAA,GAAL;AACN,EAAAA,aAAAA,CAAA,MAAA,EAAA,EAAO,MAAA;AACP,EAAAA,aAAAA,CAAA,QAAA,EAAA,EAAS,QAAA;AACT,EAAAA,aAAAA,CAAA,aAAA,EAAA,EAAc,aAAA;AACd,EAAAA,aAAAA,CAAA,OAAA,EAAA,EAAQ,OAAA;AACR,EAAAA,aAAAA,CAAA,SAAA,EAAA,EAAU,SAAA;AACV,EAAAA,aAAAA,CAAA,SAAA,EAAA,EAAU,SAAA;AACV,EAAAA,aAAAA,CAAA,SAAA,EAAA,EAAU,SAAA;AACV,EAAAA,aAAAA,CAAA,kBAAA,EAAA,EAAmB,mBAAA;AACnB,EAAAA,aAAAA,CAAA,UAAA,EAAA,EAAW,UAAA;AATA,EAAA,OAAAA,aAAAA;AAAA,CAAA,CAAA,CAAA,aAAA,GAAA,CAAA,CAAA,CAAA;AAYL,IAAM,cAAA,EAAgBD,YAAAA,CAAE,MAAA,CAAO;AAAA,EACrC,KAAA,EAAOA,YAAAA,CAAE,MAAA,CAAO,CAAA;AAAA,EAChB,OAAA,EAASA,YAAAA,CAAE,MAAA,CAAO,CAAA;AAAA,EAClB,SAAA,EAAWA,YAAAA,CAAE,MAAA,CAAO,CAAA;AAAA,EACpB,QAAA,EAAUA,YAAAA,CAAE,MAAA,CAAOA,YAAAA,CAAE,MAAA,CAAO,CAAA,EAAGA,YAAAA,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,QAAA,CAAS;AAClD,CAAC,CAAA;AAEM,IAAM,YAAA,EAAcA,YAAAA,CAAE,MAAA,CAAO;AAAA,EACnC,EAAA,EAAI,OAAA;AAAA,EACJ,IAAA,EAAMA,YAAAA,CAAE,MAAA,CAAO,CAAA;AAAA,EACf,GAAA,EAAKA,YAAAA,CAAE,KAAA,CAAMA,YAAAA,CAAE,MAAA,CAAO,CAAC,CAAA;AAAA,EACvB,IAAA,EAAMA,YAAAA,CAAE,MAAA,CAAOA,YAAAA,CAAE,MAAA,CAAO,CAAA,EAAGA,YAAAA,CAAE,MAAA,CAAO,CAAC,CAAA,CAAE,QAAA,CAAS,CAAA;AAAA,EAChD,MAAA,EAAQA,YAAAA,CAAE,MAAA,CAAO,CAAA,CAAE,QAAA,CAAS,CAAA;AAAA,EAC5B,SAAA,EAAWA,YAAAA,CAAE,MAAA,CAAO,CAAA,CAAE,QAAA,CAAS,CAAA;AAAA,EAC/B,SAAA,EAAWA,YAAAA,CAAE,MAAA,CAAO,CAAA,CAAE,QAAA,CAAS,CAAA;AAAA,EAC/B,WAAA,EAAaA,YAAAA,CAAE,MAAA,CAAO,CAAA,CAAE,QAAA,CAAS,CAAA;AAAA,EACjC,QAAA,EAAUA,YAAAA,CAAE,KAAA,CAAMA,YAAAA,CAAE,IAAA,CAAK,YAAY,CAAC,CAAA,CAAE,QAAA,CAAS;AAClD,CAAC,CAAA;AAOM,IAAM,gBAAA,EAAkBA,YAAAA,CAAE,kBAAA,CAAmB,IAAA,EAAM;AAAA,EACzDA,YAAAA,CAAE,MAAA,CAAO;AAAA,IACR,EAAA,EAAIA,YAAAA,CAAE,OAAA,CAAQ,QAAQ,CAAA;AAAA,IACtB,IAAA,EAAMA,YAAAA,CAAE,MAAA,CAAO;AAAA,EAChB,CAAC,CAAA;AAAA,EACDA,YAAAA,CAAE,MAAA,CAAO;AAAA,IACR,EAAA,EAAIA,YAAAA,CAAE,OAAA,CAAQ,KAAK,CAAA;AAAA,IACnB,IAAA,EAAMA,YAAAA,CAAE,MAAA,CAAO,CAAA;AAAA,IACf,KAAA,EAAOA,YAAAA,CAAE,OAAA,CAAQ;AAAA,EAClB,CAAC,CAAA;AAAA,EACDA,YAAAA,CAAE,MAAA,CAAO;AAAA,IACR,EAAA,EAAIA,YAAAA,CAAE,OAAA,CAAQ,SAAS,CAAA;AAAA,IACvB,IAAA,EAAMA,YAAAA,CAAE,MAAA,CAAO,CAAA;AAAA,IACf,KAAA,EAAOA,YAAAA,CAAE,OAAA,CAAQ;AAAA,EAClB,CAAC,CAAA;AAAA,EACDA,YAAAA,CAAE,MAAA,CAAO;AAAA,IACR,EAAA,EAAIA,YAAAA,CAAE,OAAA,CAAQ,MAAM,CAAA;AAAA,IACpB,IAAA,EAAMA,YAAAA,CAAE,MAAA,CAAO,CAAA;AAAA,IACf,IAAA,EAAMA,YAAAA,CAAE,MAAA,CAAO;AAAA,EAChB,CAAC,CAAA;AAAA,EACDA,YAAAA,CAAE,MAAA,CAAO;AAAA,IACR,EAAA,EAAIA,YAAAA,CAAE,OAAA,CAAQ,MAAM,CAAA;AAAA,IACpB,IAAA,EAAMA,YAAAA,CAAE,MAAA,CAAO,CAAA;AAAA,IACf,IAAA,EAAMA,YAAAA,CAAE,MAAA,CAAO;AAAA,EAChB,CAAC,CAAA;AAAA,EACDA,YAAAA,CAAE,MAAA,CAAO;AAAA,IACR,EAAA,EAAIA,YAAAA,CAAE,OAAA,CAAQ,MAAM,CAAA;AAAA,IACpB,IAAA,EAAMA,YAAAA,CAAE,MAAA,CAAO,CAAA;AAAA,IACf,KAAA,EAAOA,YAAAA,CAAE,OAAA,CAAQ;AAAA,EAClB,CAAC;AACF,CAAC,CAAA;AAGM,IAAM,YAAA,EAAcA,YAAAA,CAAE,KAAA,CAAM,eAAe,CAAA;AAK3C,IAAM,iBAAA,EAAmBA,YAAAA,CAAE,MAAA,CAAO;AAAA,EACxC,MAAA,EAAQA,YAAAA,CAAE,MAAA,CAAOA,YAAAA,CAAE,MAAA,CAAO,CAAA,EAAGA,YAAAA,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,QAAA,CAAS,CAAA;AAAA,EAC/C,EAAA,EAAIA,YAAAA,CAAE,MAAA,CAAO,CAAA;AAAA,EACb,YAAA,EAAcA,YAAAA,CAAE,OAAA,CAAQ,CAAA,CAAE,QAAA,CAAS,CAAA;AAAA,EACnC,KAAA,EAAOA,YAAAA,CAAE,GAAA,CAAI,CAAA,CAAE,QAAA,CAAS,CAAA;AAAA,EACxB,IAAA,EAAMA,YAAAA,CAAE,MAAA,CAAOA,YAAAA,CAAE,MAAA,CAAO,CAAA,EAAGA,YAAAA,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,QAAA,CAAS;AAC9C,CAAC,CAAA;AAKM,IAAM,oBAAA,EAAsBA,YAAAA,CAAE,kBAAA,CAAmB,MAAA,EAAQ;AAAA,EAC/DA,YAAAA,CAAE,MAAA,CAAO;AAAA,IACR,IAAA,EAAMA,YAAAA,CAAE,OAAA,CAAQ,QAAQ,CAAA;AAAA,IACxB,IAAA,EAAMA,YAAAA,CAAE,MAAA,CAAO,CAAA;AAAA,IACf,IAAA,EAAMA,YAAAA,CAAE,KAAA,CAAMA,YAAAA,CAAE,GAAA,CAAI,CAAC,CAAA;AAAA,IACrB,MAAA,EAAQA,YAAAA,CAAE,MAAA,CAAO;AAAA,EAClB,CAAC,CAAA;AAAA,EACDA,YAAAA,CAAE,MAAA,CAAO;AAAA,IACR,IAAA,EAAMA,YAAAA,CAAE,OAAA,CAAQ,WAAW,CAAA;AAAA,IAC3B,SAAA,EAAWA,YAAAA,CAAE,MAAA,CAAO,CAAA;AAAA,IACpB,IAAA,EAAMA,YAAAA,CAAE,KAAA,CAAMA,YAAAA,CAAE,GAAA,CAAI,CAAC;AAAA,EACtB,CAAC,CAAA;AAAA,EACDA,YAAAA,CAAE,MAAA,CAAO;AAAA,IACR,IAAA,EAAMA,YAAAA,CAAE,OAAA,CAAQ,WAAW,CAAA;AAAA,IAC3B,SAAA,EAAWA,YAAAA,CAAE,MAAA,CAAO,CAAA;AAAA,IACpB,MAAA,EAAQA,YAAAA,CAAE,MAAA,CAAO;AAAA,EAClB,CAAC,CAAA;AAAA,EACDA,YAAAA,CAAE,MAAA,CAAO;AAAA,IACR,IAAA,EAAMA,YAAAA,CAAE,OAAA,CAAQ,aAAa,CAAA;AAAA,IAC7B,SAAA,EAAWA,YAAAA,CAAE,MAAA,CAAO,CAAA;AAAA,IACpB,MAAA,EAAQA,YAAAA,CAAE,MAAA,CAAO;AAAA,EAClB,CAAC,CAAA;AAAA,EACDA,YAAAA,CAAE,MAAA,CAAO;AAAA,IACR,IAAA,EAAMA,YAAAA,CAAE,OAAA,CAAQ,OAAO,CAAA;AAAA,IACvB,SAAA,EAAWA,YAAAA,CAAE,MAAA,CAAO,CAAA;AAAA,IACpB,IAAA,EAAMA,YAAAA,CAAE,KAAA,CAAMA,YAAAA,CAAE,GAAA,CAAI,CAAC,CAAA;AAAA,IACrB,MAAA,EAAQA,YAAAA,CAAE,MAAA,CAAO;AAAA,EAClB,CAAC;AACF,CAAC,CAAA;AAEM,IAAM,4BAAA,EAA8B,mBAAA,CAAoB,GAAA;AAAA,EAC9DA,YAAAA,CAAE,MAAA,CAAO;AAAA,IACR,EAAA,EAAIA,YAAAA,CAAE,MAAA,CAAO,CAAA;AAAA,IACb,SAAA,EAAWA,YAAAA,CAAE,MAAA,CAAO;AAAA,EACrB,CAAC;AACF,CAAA;AAKO,IAAM,oBAAA,EAAsBA,YAAAA,CAAE,MAAA,CAAO;AAAA,EAC3C,GAAA,EAAKA,YAAAA,CAAE,MAAA,CAAO,CAAA;AAAA,EACd,IAAA,EAAMA,YAAAA,CAAE,KAAA,CAAMA,YAAAA,CAAE,MAAA,CAAO,CAAA,CAAE,EAAA,CAAGA,YAAAA,CAAE,MAAA,CAAO,CAAC,CAAC;AACxC,CAAC,CAAA;AAGM,IAAM,YAAA,EAAcA,YAAAA,CAAE,MAAA,CAAO;AAAA,EACnC,MAAA,EAAQA,YAAAA,CAAE,MAAA,CAAO,CAAA;AAAA,EACjB,IAAA,EAAMA,YAAAA,CAAE,MAAA,CAAO,CAAA;AAAA,EACf,IAAA,EAAMA,YAAAA,CAAE,IAAA,CAAK,CAAC,OAAA,EAAS,MAAM,CAAC;AAC/B,CAAC,CAAA;AAGM,IAAM,aAAA,EAAeA,YAAAA,CAAE,KAAA,CAAM,WAAW,CAAA;AAGxC,IAAM,aAAA,EAAeA,YAAAA,CAAE,MAAA,CAAO;AAAA,EACpC,GAAA,EAAKA,YAAAA,CAAE,MAAA,CAAO,CAAA;AAAA,EACd,IAAA,EAAMA,YAAAA,CAAE,MAAA,CAAO,CAAA;AAAA,EACf,IAAA,EAAMA,YAAAA,CACJ,MAAA,CAAO,CAAA,CACP,WAAA,CAAY,CAAA,CACZ,SAAA,CAAU,CAAC,GAAA,EAAA,GAAQ;AACnB,IAAA,OAAOA,YAAAA,CACL,IAAA,CAAK,CAAC,SAAA,EAAW,MAAA,EAAQ,MAAA,EAAQ,MAAA,EAAQ,SAAA,EAAW,QAAQ,CAAC,CAAA,CAC7D,KAAA,CAAM,GAAG,CAAA;AAAA,EACZ,CAAC,CAAA;AAAA,EACF,OAAA,EAASA,YAAAA,CAAE,MAAA,CAAO,OAAA,CAAQ,CAAA;AAAA,EAC1B,UAAA,EAAYA,YAAAA,CAAE,MAAA,CAAO,CAAA,CAAE,QAAA,CAAS,CAAA;AAAA,EAChC,EAAA,EAAIA,YAAAA,CAAE,MAAA,CAAO,OAAA,CAAQ,CAAA,CAAE,QAAA,CAAS;AACjC,CAAC,CAAA;AAGM,IAAM,cAAA,EAAgBA,YAAAA,CAAE,KAAA,CAAM,YAAY,CAAA;AAG1C,IAAM,iBAAA,EAAmBA,YAAAA,CAAE,MAAA,CAAO;AAAA,EACxC,EAAA,EAAIA,YAAAA,CAAE,MAAA,CAAO,CAAA;AAAA,EACb,KAAA,EAAOA,YAAAA,CAAE,MAAA,CAAO,CAAA;AAAA,EAChB,IAAA,EAAMA,YAAAA,CAAE,MAAA,CAAO,CAAA;AAAA,EACf,EAAA,EAAIA,YAAAA,CAAE,MAAA,CAAO;AACd,CAAC,CAAA;AAGM,IAAM,kBAAA,EAAoBA,YAAAA,CAAE,KAAA,CAAM,gBAAgB,CAAA;AAKlD,IAAM,YAAA,EAAcA,YAAAA,CAAE,MAAA,CAAO;AAAA,EACnC,IAAA,EAAMA,YAAAA,CAAE,MAAA,CAAO,CAAA;AAAA,EACf,SAAA,EAAWA,YAAAA,CAAE,MAAA,CAAO,CAAA,CAAE,QAAA,CAAS,CAAA;AAAA,EAC/B,IAAA,EAAMA,YAAAA,CAAE,MAAA,CAAOA,YAAAA,CAAE,MAAA,CAAO,CAAA,EAAGA,YAAAA,CAAE,MAAA,CAAO,CAAC,CAAA,CAAE,QAAA,CAAS;AACjD,CAAC,CAAA;AAEM,IAAM,aAAA,EAAeA,YAAAA,CAAE,KAAA,CAAM,WAAW,CAAA;AAGxC,IAAM,kBAAA,EAAoBA,YAAAA,CAAE,MAAA,CAAO;AAAA,EACzC,IAAA,EAAMA,YAAAA,CAAE,MAAA,CAAO,CAAA;AAAA;AAAA,EAEf,GAAA,EAAKA,YAAAA,CAAE,KAAA,CAAMA,YAAAA,CAAE,MAAA,CAAO,CAAA,CAAE,GAAA,CAAI,kBAAkB,CAAC,CAAA;AAAA,EAC/C,KAAA,EAAOA,YAAAA,CAAE,GAAA,CAAI;AACd,CAAC,CAAA;ADkBD;AACA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,oxBAAC","file":"/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/chunk-WQU4M4ZC.cjs","sourcesContent":[null,"import z from \"zod/v4\";\nimport { ActorKeySchema, MAX_ACTOR_KEY_SIZE } from \"@/manager/protocol/query\";\n\nexport const ActorId = z.string().brand(\"ActorId\");\nexport type ActorId = z.infer<typeof ActorId>;\n\nexport enum ActorFeature {\n\tLogs = \"logs\",\n\tConfig = \"config\",\n\tConnections = \"connections\",\n\tState = \"state\",\n\tConsole = \"console\",\n\tRuntime = \"runtime\",\n\tMetrics = \"metrics\",\n\tEventsMonitoring = \"events-monitoring\",\n\tDatabase = \"database\",\n}\n\nexport const ActorLogEntry = z.object({\n\tlevel: z.string(),\n\tmessage: z.string(),\n\ttimestamp: z.string(),\n\tmetadata: z.record(z.string(), z.any()).optional(),\n});\n\nexport const ActorSchema = z.object({\n\tid: ActorId,\n\tname: z.string(),\n\tkey: z.array(z.string()),\n\ttags: z.record(z.string(), z.string()).optional(),\n\tregion: z.string().optional(),\n\tcreatedAt: z.string().optional(),\n\tstartedAt: z.string().optional(),\n\tdestroyedAt: z.string().optional(),\n\tfeatures: z.array(z.enum(ActorFeature)).optional(),\n});\n\nexport type Actor = z.infer<typeof ActorSchema>;\nexport type ActorLogEntry = z.infer<typeof ActorLogEntry>;\n\n// MARK: State\n\nexport const OperationSchema = z.discriminatedUnion(\"op\", [\n\tz.object({\n\t\top: z.literal(\"remove\"),\n\t\tpath: z.string(),\n\t}),\n\tz.object({\n\t\top: z.literal(\"add\"),\n\t\tpath: z.string(),\n\t\tvalue: z.unknown(),\n\t}),\n\tz.object({\n\t\top: z.literal(\"replace\"),\n\t\tpath: z.string(),\n\t\tvalue: z.unknown(),\n\t}),\n\tz.object({\n\t\top: z.literal(\"move\"),\n\t\tpath: z.string(),\n\t\tfrom: z.string(),\n\t}),\n\tz.object({\n\t\top: z.literal(\"copy\"),\n\t\tpath: z.string(),\n\t\tfrom: z.string(),\n\t}),\n\tz.object({\n\t\top: z.literal(\"test\"),\n\t\tpath: z.string(),\n\t\tvalue: z.unknown(),\n\t}),\n]);\nexport type Operation = z.infer<typeof OperationSchema>;\n\nexport const PatchSchema = z.array(OperationSchema);\nexport type Patch = z.infer<typeof PatchSchema>;\n\n// MARK: Connections\n\nexport const ConnectionSchema = z.object({\n\tparams: z.record(z.string(), z.any()).optional(),\n\tid: z.string(),\n\tstateEnabled: z.boolean().optional(),\n\tstate: z.any().optional(),\n\tauth: z.record(z.string(), z.any()).optional(),\n});\nexport type Connection = z.infer<typeof ConnectionSchema>;\n\n// MARK: Realtime Events\n\nexport const RealtimeEventSchema = z.discriminatedUnion(\"type\", [\n\tz.object({\n\t\ttype: z.literal(\"action\"),\n\t\tname: z.string(),\n\t\targs: z.array(z.any()),\n\t\tconnId: z.string(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(\"broadcast\"),\n\t\teventName: z.string(),\n\t\targs: z.array(z.any()),\n\t}),\n\tz.object({\n\t\ttype: z.literal(\"subscribe\"),\n\t\teventName: z.string(),\n\t\tconnId: z.string(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(\"unsubscribe\"),\n\t\teventName: z.string(),\n\t\tconnId: z.string(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(\"event\"),\n\t\teventName: z.string(),\n\t\targs: z.array(z.any()),\n\t\tconnId: z.string(),\n\t}),\n]);\nexport type RealtimeEvent = z.infer<typeof RealtimeEventSchema>;\nexport const RecordedRealtimeEventSchema = RealtimeEventSchema.and(\n\tz.object({\n\t\tid: z.string(),\n\t\ttimestamp: z.number(),\n\t}),\n);\nexport type RecordedRealtimeEvent = z.infer<typeof RecordedRealtimeEventSchema>;\n\n// MARK: Database\n\nexport const DatabaseQuerySchema = z.object({\n\tsql: z.string(),\n\targs: z.array(z.string().or(z.number())),\n});\nexport type DatabaseQuery = z.infer<typeof DatabaseQuerySchema>;\n\nexport const TableSchema = z.object({\n\tschema: z.string(),\n\tname: z.string(),\n\ttype: z.enum([\"table\", \"view\"]),\n});\nexport type Table = z.infer<typeof TableSchema>;\n\nexport const TablesSchema = z.array(TableSchema);\nexport type Tables = z.infer<typeof TablesSchema>;\n\nexport const ColumnSchema = z.object({\n\tcid: z.number(),\n\tname: z.string(),\n\ttype: z\n\t\t.string()\n\t\t.toLowerCase()\n\t\t.transform((val) => {\n\t\t\treturn z\n\t\t\t\t.enum([\"integer\", \"text\", \"real\", \"blob\", \"numeric\", \"serial\"])\n\t\t\t\t.parse(val);\n\t\t}),\n\tnotnull: z.coerce.boolean(),\n\tdflt_value: z.string().nullable(),\n\tpk: z.coerce.boolean().nullable(),\n});\nexport type Column = z.infer<typeof ColumnSchema>;\n\nexport const ColumnsSchema = z.array(ColumnSchema);\nexport type Columns = z.infer<typeof ColumnsSchema>;\n\nexport const ForeignKeySchema = z.object({\n\tid: z.number(),\n\ttable: z.string(),\n\tfrom: z.string(),\n\tto: z.string(),\n});\nexport type ForeignKey = z.infer<typeof ForeignKeySchema>;\n\nexport const ForeignKeysSchema = z.array(ForeignKeySchema);\nexport type ForeignKeys = z.infer<typeof ForeignKeysSchema>;\n\n// MARK: Builds\n\nexport const BuildSchema = z.object({\n\tname: z.string(),\n\tcreatedAt: z.string().optional(),\n\ttags: z.record(z.string(), z.string()).optional(),\n});\nexport type Build = z.infer<typeof BuildSchema>;\nexport const BuildsSchema = z.array(BuildSchema);\nexport type Builds = z.infer<typeof BuildsSchema>;\n\nexport const CreateActorSchema = z.object({\n\tname: z.string(),\n\t// FIXME: Replace with ActorKeySchema when ready\n\tkey: z.array(z.string().max(MAX_ACTOR_KEY_SIZE)),\n\tinput: z.any(),\n});\nexport type CreateActor = z.infer<typeof CreateActorSchema>;\n","import { z } from \"zod\";\nimport { EncodingSchema } from \"@/actor/protocol/serde\";\nimport {\n\tHEADER_ACTOR_ID,\n\tHEADER_ACTOR_QUERY,\n\tHEADER_CONN_PARAMS,\n\tHEADER_ENCODING,\n} from \"@/common/actor-router-consts\";\n\n// Maximum size of a key component in bytes\n// Set to 128 bytes to allow for separators and escape characters in the full key\n// Cloudflare's maximum key size is 512 bytes, so we need to be significantly smaller\nexport const MAX_ACTOR_KEY_SIZE = 128;\n\nexport const ActorKeySchema = z.array(z.string().max(MAX_ACTOR_KEY_SIZE));\n\nexport type ActorKey = z.infer<typeof ActorKeySchema>;\n\nexport const CreateRequestSchema = z.object({\n\tname: z.string(),\n\tkey: ActorKeySchema,\n\tinput: z.unknown().optional(),\n\tregion: z.string().optional(),\n});\n\nexport const GetForKeyRequestSchema = z.object({\n\tname: z.string(),\n\tkey: ActorKeySchema,\n});\n\nexport const GetOrCreateRequestSchema = z.object({\n\tname: z.string(),\n\tkey: ActorKeySchema,\n\tinput: z.unknown().optional(),\n\tregion: z.string().optional(),\n});\n\nexport const ActorQuerySchema = z.union([\n\tz.object({\n\t\tgetForId: z.object({\n\t\t\tname: z.string(),\n\t\t\tactorId: z.string(),\n\t\t}),\n\t}),\n\tz.object({\n\t\tgetForKey: GetForKeyRequestSchema,\n\t}),\n\tz.object({\n\t\tgetOrCreateForKey: GetOrCreateRequestSchema,\n\t}),\n\tz.object({\n\t\tcreate: CreateRequestSchema,\n\t}),\n]);\n\nexport const ConnectRequestSchema = z.object({\n\tquery: ActorQuerySchema.describe(HEADER_ACTOR_QUERY),\n\tencoding: EncodingSchema.describe(HEADER_ENCODING),\n\tconnParams: z.string().optional().describe(HEADER_CONN_PARAMS),\n});\n\nexport const ConnectWebSocketRequestSchema = z.object({\n\tquery: ActorQuerySchema.describe(\"query\"),\n\tencoding: EncodingSchema.describe(\"encoding\"),\n\tconnParams: z.unknown().optional().describe(\"conn_params\"),\n});\n\nexport const ConnMessageRequestSchema = z.object({\n\tactorId: z.string().describe(HEADER_ACTOR_ID),\n\tencoding: EncodingSchema.describe(HEADER_ENCODING),\n});\n\nexport const ResolveRequestSchema = z.object({\n\tquery: ActorQuerySchema.describe(HEADER_ACTOR_QUERY),\n\tconnParams: z.string().optional().describe(HEADER_CONN_PARAMS),\n});\n\nexport type ActorQuery = z.infer<typeof ActorQuerySchema>;\nexport type GetForKeyRequest = z.infer<typeof GetForKeyRequestSchema>;\nexport type GetOrCreateRequest = z.infer<typeof GetOrCreateRequestSchema>;\nexport type ConnectQuery = z.infer<typeof ConnectRequestSchema>;\n/**\n * Interface representing a request to create a actor.\n */\nexport type CreateRequest = z.infer<typeof CreateRequestSchema>;\n"]}
@@ -1,20 +1,20 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } async function _asyncNullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return await rhsFn(); } }
2
2
 
3
3
 
4
- var _chunkVHGY7PU5cjs = require('./chunk-VHGY7PU5.cjs');
4
+ var _chunkILFXA4ALcjs = require('./chunk-ILFXA4AL.cjs');
5
5
 
6
6
 
7
- var _chunk36JJ4IQBcjs = require('./chunk-36JJ4IQB.cjs');
7
+ var _chunkAZATXPR4cjs = require('./chunk-AZATXPR4.cjs');
8
8
 
9
9
 
10
- var _chunkO44LFKSBcjs = require('./chunk-O44LFKSB.cjs');
10
+ var _chunkB7MENRD5cjs = require('./chunk-B7MENRD5.cjs');
11
11
 
12
12
 
13
13
 
14
- var _chunkVFB23BYZcjs = require('./chunk-VFB23BYZ.cjs');
14
+ var _chunkMV6M3FDLcjs = require('./chunk-MV6M3FDL.cjs');
15
15
 
16
16
 
17
- var _chunk7L65NNWPcjs = require('./chunk-7L65NNWP.cjs');
17
+ var _chunkH7GV5DIWcjs = require('./chunk-H7GV5DIW.cjs');
18
18
 
19
19
  // src/test/mod.ts
20
20
  var _net = require('net');
@@ -24,33 +24,33 @@ var _vitest = require('vitest');
24
24
 
25
25
  // src/test/config.ts
26
26
  var _zod = require('zod');
27
- var ConfigSchema = _chunkVFB23BYZcjs.RunnerConfigSchema.removeDefault().extend({
27
+ var ConfigSchema = _chunkMV6M3FDLcjs.RunnerConfigSchema.removeDefault().extend({
28
28
  hostname: _zod.z.string().optional().default(_nullishCoalesce(process.env.HOSTNAME, () => ( "127.0.0.1"))),
29
29
  port: _zod.z.number().optional().default(Number.parseInt(_nullishCoalesce(process.env.PORT, () => ( "8080"))))
30
30
  }).default({});
31
31
 
32
32
  // src/test/log.ts
33
33
  function logger() {
34
- return _chunk7L65NNWPcjs.getLogger.call(void 0, "test");
34
+ return _chunkH7GV5DIWcjs.getLogger.call(void 0, "test");
35
35
  }
36
36
 
37
37
  // src/test/mod.ts
38
- function serve(registry, inputConfig) {
38
+ async function serve(registry, inputConfig) {
39
39
  inputConfig ??= {};
40
40
  const config = ConfigSchema.parse(inputConfig);
41
41
  let upgradeWebSocket;
42
42
  if (!config.getUpgradeWebSocket) {
43
43
  config.getUpgradeWebSocket = () => upgradeWebSocket;
44
44
  }
45
- const runConfig = _chunkVFB23BYZcjs.RunnerConfigSchema.parse(inputConfig);
46
- const driver = _nullishCoalesce(inputConfig.driver, () => ( _chunkVHGY7PU5cjs.createFileSystemOrMemoryDriver.call(void 0, false)));
45
+ const runConfig = _chunkMV6M3FDLcjs.RunnerConfigSchema.parse(inputConfig);
46
+ const driver = await _asyncNullishCoalesce(inputConfig.driver, async () => ( await _chunkILFXA4ALcjs.createFileSystemOrMemoryDriver.call(void 0, false)));
47
47
  const managerDriver = driver.manager(registry.config, config);
48
- const client = _chunkO44LFKSBcjs.createClientWithDriver.call(void 0,
48
+ const client = _chunkB7MENRD5cjs.createClientWithDriver.call(void 0,
49
49
  managerDriver,
50
- _chunkVFB23BYZcjs.ClientConfigSchema.parse({})
50
+ _chunkMV6M3FDLcjs.ClientConfigSchema.parse({})
51
51
  );
52
- _chunk36JJ4IQBcjs.configureInspectorAccessToken.call(void 0, config, managerDriver);
53
- const { router } = _chunkVHGY7PU5cjs.createManagerRouter.call(void 0,
52
+ _chunkAZATXPR4cjs.configureInspectorAccessToken.call(void 0, config, managerDriver);
53
+ const { router } = _chunkILFXA4ALcjs.createManagerRouter.call(void 0,
54
54
  registry.config,
55
55
  runConfig,
56
56
  managerDriver,
@@ -80,7 +80,7 @@ async function setupTest(c, registry) {
80
80
  mockDriverContext.current = ctx;
81
81
  };
82
82
  const port = await getPort();
83
- const server = serve(registry, { port });
83
+ const server = await serve(registry, { port });
84
84
  c.onTestFinished(
85
85
  async () => await new Promise((resolve) => server.close(() => resolve()))
86
86
  );
@@ -127,4 +127,4 @@ async function getPort() {
127
127
 
128
128
 
129
129
  exports.setupTest = setupTest; exports.getPort = getPort;
130
- //# sourceMappingURL=chunk-SHVX2QUR.cjs.map
130
+ //# sourceMappingURL=chunk-XKZA47XS.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/chunk-XKZA47XS.cjs","../../src/test/mod.ts","../../src/test/config.ts","../../src/test/log.ts"],"names":["server"],"mappings":"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","file":"/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/chunk-XKZA47XS.cjs","sourcesContent":[null,"import { createServer } from \"node:net\";\nimport { serve as honoServe, type ServerType } from \"@hono/node-server\";\nimport { createNodeWebSocket } from \"@hono/node-ws\";\nimport { type TestContext, vi } from \"vitest\";\nimport { ClientConfigSchema } from \"@/client/config\";\nimport { type Client, createClient } from \"@/client/mod\";\nimport { chooseDefaultDriver } from \"@/drivers/default\";\nimport { createFileSystemOrMemoryDriver } from \"@/drivers/file-system/mod\";\nimport {\n\tconfigureInspectorAccessToken,\n\tgetInspectorUrl,\n} from \"@/inspector/utils\";\nimport { createManagerRouter } from \"@/manager/router\";\nimport { createClientWithDriver } from \"@/mod\";\nimport type { Registry } from \"@/registry/mod\";\nimport { RunnerConfigSchema } from \"@/registry/run-config\";\nimport { ConfigSchema, type InputConfig } from \"./config\";\nimport { logger } from \"./log\";\n\nasync function serve(\n\tregistry: Registry<any>,\n\tinputConfig?: InputConfig,\n): Promise<ServerType> {\n\t// Configure default configuration\n\tinputConfig ??= {};\n\n\tconst config = ConfigSchema.parse(inputConfig);\n\n\tlet upgradeWebSocket: any;\n\tif (!config.getUpgradeWebSocket) {\n\t\tconfig.getUpgradeWebSocket = () => upgradeWebSocket!;\n\t}\n\n\t// Create router\n\tconst runConfig = RunnerConfigSchema.parse(inputConfig);\n\tconst driver =\n\t\tinputConfig.driver ?? (await createFileSystemOrMemoryDriver(false));\n\tconst managerDriver = driver.manager(registry.config, config);\n\tconst client = createClientWithDriver(\n\t\tmanagerDriver,\n\t\tClientConfigSchema.parse({}),\n\t);\n\tconfigureInspectorAccessToken(config, managerDriver);\n\tconst { router } = createManagerRouter(\n\t\tregistry.config,\n\t\trunConfig,\n\t\tmanagerDriver,\n\t\tdriver,\n\t\tclient,\n\t);\n\n\t// Inject WebSocket\n\tconst nodeWebSocket = createNodeWebSocket({ app: router });\n\tupgradeWebSocket = nodeWebSocket.upgradeWebSocket;\n\n\tconst server = honoServe({\n\t\tfetch: router.fetch,\n\t\thostname: config.hostname,\n\t\tport: config.port,\n\t});\n\tnodeWebSocket.injectWebSocket(server);\n\n\tlogger().info({\n\t\tmsg: \"rivetkit started\",\n\t\thostname: config.hostname,\n\t\tport: config.port,\n\t\tdefinitions: Object.keys(registry.config.use).length,\n\t});\n\n\treturn server;\n}\n\nexport interface SetupTestResult<A extends Registry<any>> {\n\tclient: Client<A>;\n\tmockDriver: {\n\t\tactorDriver: {\n\t\t\tsetCreateVarsContext: (ctx: any) => void;\n\t\t};\n\t};\n}\n\n// Must use `TestContext` since global hooks do not work when running concurrently\nexport async function setupTest<A extends Registry<any>>(\n\tc: TestContext,\n\tregistry: A,\n): Promise<SetupTestResult<A>> {\n\tvi.useFakeTimers();\n\n\t// Set up mock driver for testing createVars context\n\tconst mockDriverContext: any = {};\n\tconst setDriverContextFn = (ctx: any) => {\n\t\tmockDriverContext.current = ctx;\n\t};\n\n\t// We don't need to modify the driver context anymore since we're testing with the actual context\n\n\t// Start server with a random port\n\tconst port = await getPort();\n\tconst server = await serve(registry, { port });\n\tc.onTestFinished(\n\t\tasync () =>\n\t\t\tawait new Promise((resolve) => server.close(() => resolve())),\n\t);\n\n\tthrow \"TODO: Fix engine port\";\n\n\t// // TODO: Figure out how to make this the correct endpoint\n\t// // Create client\n\t// const client = createClient<A>(`http://127.0.0.1:${port}`);\n\t// c.onTestFinished(async () => await client.dispose());\n\t//\n\t// return {\n\t// \tclient,\n\t// \tmockDriver: {\n\t// \t\tactorDriver: {\n\t// \t\t\tsetCreateVarsContext: setDriverContextFn,\n\t// \t\t},\n\t// \t},\n\t// };\n}\n\nexport async function getPort(): Promise<number> {\n\t// Pick random port between 10000 and 65535 (avoiding well-known and registered ports)\n\tconst MIN_PORT = 10000;\n\tconst MAX_PORT = 65535;\n\tconst getRandomPort = () =>\n\t\tMath.floor(Math.random() * (MAX_PORT - MIN_PORT + 1)) + MIN_PORT;\n\n\tlet port = getRandomPort();\n\tlet maxAttempts = 10;\n\n\twhile (maxAttempts > 0) {\n\t\ttry {\n\t\t\t// Try to create a server on the port to check if it's available\n\t\t\tconst server = await new Promise<any>((resolve, reject) => {\n\t\t\t\tconst server = createServer();\n\n\t\t\t\tserver.once(\"error\", (err: Error & { code?: string }) => {\n\t\t\t\t\tif (err.code === \"EADDRINUSE\") {\n\t\t\t\t\t\treject(new Error(`Port ${port} is in use`));\n\t\t\t\t\t} else {\n\t\t\t\t\t\treject(err);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tserver.once(\"listening\", () => {\n\t\t\t\t\tresolve(server);\n\t\t\t\t});\n\n\t\t\t\tserver.listen(port);\n\t\t\t});\n\n\t\t\t// Close the server since we're just checking availability\n\t\t\tawait new Promise<void>((resolve) => {\n\t\t\t\tserver.close(() => resolve());\n\t\t\t});\n\n\t\t\treturn port;\n\t\t} catch (err) {\n\t\t\t// If port is in use, try a different one\n\t\t\tmaxAttempts--;\n\t\t\tif (maxAttempts <= 0) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tport = getRandomPort();\n\t\t}\n\t}\n\n\tthrow new Error(\"Could not find an available port after multiple attempts\");\n}\n","import { z } from \"zod\";\nimport { RunnerConfigSchema } from \"@/registry/run-config\";\n\nexport const ConfigSchema = RunnerConfigSchema.removeDefault()\n\t.extend({\n\t\thostname: z\n\t\t\t.string()\n\t\t\t.optional()\n\t\t\t.default(process.env.HOSTNAME ?? \"127.0.0.1\"),\n\t\tport: z\n\t\t\t.number()\n\t\t\t.optional()\n\t\t\t.default(Number.parseInt(process.env.PORT ?? \"8080\")),\n\t})\n\t.default({});\nexport type InputConfig = z.input<typeof ConfigSchema>;\n","import { getLogger } from \"@/common/log\";\n\nexport function logger() {\n\treturn getLogger(\"test\");\n}\n"]}
@@ -1,14 +1,14 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2
2
 
3
3
 
4
- var _chunk7L65NNWPcjs = require('./chunk-7L65NNWP.cjs');
4
+ var _chunkH7GV5DIWcjs = require('./chunk-H7GV5DIW.cjs');
5
5
 
6
6
 
7
- var _chunkKSRXX3Z4cjs = require('./chunk-KSRXX3Z4.cjs');
7
+ var _chunkD6762AOAcjs = require('./chunk-D6762AOA.cjs');
8
8
 
9
9
  // src/actor/log.ts
10
10
  function loggerWithoutContext() {
11
- return _chunk7L65NNWPcjs.getLogger.call(void 0, "actor-runtime");
11
+ return _chunkH7GV5DIWcjs.getLogger.call(void 0, "actor-runtime");
12
12
  }
13
13
 
14
14
  // src/actor/utils.ts
@@ -18,7 +18,7 @@ function assertUnreachable2(x) {
18
18
  value: `${x}`,
19
19
  stack: new Error().stack
20
20
  });
21
- throw new (0, _chunkKSRXX3Z4cjs.Unreachable)(x);
21
+ throw new (0, _chunkD6762AOAcjs.Unreachable)(x);
22
22
  }
23
23
  var DeadlineError = class extends Error {
24
24
  constructor() {
@@ -68,14 +68,14 @@ function isConnStatePath(path) {
68
68
  }
69
69
 
70
70
  // src/common/actor-router-consts.ts
71
- var PATH_CONNECT_WEBSOCKET = "/connect/websocket";
72
- var PATH_RAW_WEBSOCKET_PREFIX = "/raw/websocket/";
71
+ var PATH_CONNECT = "/connect";
72
+ var PATH_WEBSOCKET_BASE = "/websocket";
73
+ var PATH_WEBSOCKET_PREFIX = "/websocket/";
74
+ var PATH_INSPECTOR_CONNECT = "/inspector/connect";
73
75
  var HEADER_ACTOR_QUERY = "x-rivet-query";
74
76
  var HEADER_ENCODING = "x-rivet-encoding";
75
77
  var HEADER_CONN_PARAMS = "x-rivet-conn-params";
76
78
  var HEADER_ACTOR_ID = "x-rivet-actor";
77
- var HEADER_CONN_ID = "x-rivet-conn";
78
- var HEADER_CONN_TOKEN = "x-rivet-conn-token";
79
79
  var HEADER_RIVET_TOKEN = "x-rivet-token";
80
80
  var HEADER_RIVET_TARGET = "x-rivet-target";
81
81
  var HEADER_RIVET_ACTOR = "x-rivet-actor";
@@ -85,11 +85,7 @@ var WS_PROTOCOL_TARGET = "rivet_target.";
85
85
  var WS_PROTOCOL_ACTOR = "rivet_actor.";
86
86
  var WS_PROTOCOL_ENCODING = "rivet_encoding.";
87
87
  var WS_PROTOCOL_CONN_PARAMS = "rivet_conn_params.";
88
- var WS_PROTOCOL_CONN_ID = "rivet_conn.";
89
- var WS_PROTOCOL_CONN_TOKEN = "rivet_conn_token.";
90
- var WS_PROTOCOL_TOKEN = "rivet_token.";
91
- var WS_PROTOCOL_TRANSPORT = "test_transport.";
92
- var WS_PROTOCOL_PATH = "test_path.";
88
+ var WS_TEST_PROTOCOL_PATH = "test_path.";
93
89
  var ALLOWED_PUBLIC_HEADERS = [
94
90
  "Content-Type",
95
91
  "User-Agent",
@@ -97,8 +93,6 @@ var ALLOWED_PUBLIC_HEADERS = [
97
93
  HEADER_ENCODING,
98
94
  HEADER_CONN_PARAMS,
99
95
  HEADER_ACTOR_ID,
100
- HEADER_CONN_ID,
101
- HEADER_CONN_TOKEN,
102
96
  HEADER_RIVET_TARGET,
103
97
  HEADER_RIVET_ACTOR,
104
98
  HEADER_RIVET_NAMESPACE,
@@ -116,9 +110,15 @@ var CachedSerializer = class {
116
110
  #data;
117
111
  #cache = /* @__PURE__ */ new Map();
118
112
  #versionedDataHandler;
119
- constructor(data, versionedDataHandler) {
113
+ #zodSchema;
114
+ #toJson;
115
+ #toBare;
116
+ constructor(data, versionedDataHandler, zodSchema, toJson, toBare) {
120
117
  this.#data = data;
121
118
  this.#versionedDataHandler = versionedDataHandler;
119
+ this.#zodSchema = zodSchema;
120
+ this.#toJson = toJson;
121
+ this.#toBare = toBare;
122
122
  }
123
123
  get rawData() {
124
124
  return this.#data;
@@ -131,7 +131,10 @@ var CachedSerializer = class {
131
131
  const serialized = serializeWithEncoding(
132
132
  encoding,
133
133
  this.#data,
134
- this.#versionedDataHandler
134
+ this.#versionedDataHandler,
135
+ this.#zodSchema,
136
+ this.#toJson,
137
+ this.#toBare
135
138
  );
136
139
  this.#cache.set(encoding, serialized);
137
140
  return serialized;
@@ -150,17 +153,6 @@ function base64EncodeArrayBuffer(arrayBuffer) {
150
153
  const uint8Array = new Uint8Array(arrayBuffer);
151
154
  return base64EncodeUint8Array(uint8Array);
152
155
  }
153
- function encodeDataToString(message) {
154
- if (typeof message === "string") {
155
- return message;
156
- } else if (message instanceof ArrayBuffer) {
157
- return base64EncodeArrayBuffer(message);
158
- } else if (message instanceof Uint8Array) {
159
- return base64EncodeUint8Array(message);
160
- } else {
161
- assertUnreachable2(message);
162
- }
163
- }
164
156
  function base64DecodeToUint8Array(base64) {
165
157
  if (typeof Buffer !== "undefined") {
166
158
  return new Uint8Array(Buffer.from(base64, "base64"));
@@ -224,55 +216,56 @@ function uint8ArrayToBase64(uint8Array) {
224
216
  }
225
217
  return btoa(binary);
226
218
  }
227
- function encodingIsBinary(encoding) {
228
- if (encoding === "json") {
229
- return false;
230
- } else if (encoding === "cbor" || encoding === "bare") {
231
- return true;
232
- } else {
233
- _chunk7L65NNWPcjs.assertUnreachable.call(void 0, encoding);
234
- }
235
- }
236
219
  function contentTypeForEncoding(encoding) {
237
220
  if (encoding === "json") {
238
221
  return "application/json";
239
222
  } else if (encoding === "cbor" || encoding === "bare") {
240
223
  return "application/octet-stream";
241
224
  } else {
242
- _chunk7L65NNWPcjs.assertUnreachable.call(void 0, encoding);
225
+ _chunkH7GV5DIWcjs.assertUnreachable.call(void 0, encoding);
243
226
  }
244
227
  }
245
- function serializeWithEncoding(encoding, value, versionedDataHandler) {
228
+ function serializeWithEncoding(encoding, value, versionedDataHandler, zodSchema, toJson, toBare) {
246
229
  if (encoding === "json") {
247
- return jsonStringifyCompat(value);
230
+ const jsonValue = toJson(value);
231
+ const validated = zodSchema.parse(jsonValue);
232
+ return jsonStringifyCompat(validated);
248
233
  } else if (encoding === "cbor") {
249
- return cbor.encode(value);
234
+ const jsonValue = toJson(value);
235
+ const validated = zodSchema.parse(jsonValue);
236
+ return cbor.encode(validated);
250
237
  } else if (encoding === "bare") {
251
238
  if (!versionedDataHandler) {
252
239
  throw new Error(
253
240
  "VersionedDataHandler is required for 'bare' encoding"
254
241
  );
255
242
  }
256
- return versionedDataHandler.serializeWithEmbeddedVersion(value);
243
+ const bareValue = toBare(value);
244
+ return versionedDataHandler.serializeWithEmbeddedVersion(bareValue);
257
245
  } else {
258
- _chunk7L65NNWPcjs.assertUnreachable.call(void 0, encoding);
246
+ _chunkH7GV5DIWcjs.assertUnreachable.call(void 0, encoding);
259
247
  }
260
248
  }
261
- function deserializeWithEncoding(encoding, buffer, versionedDataHandler) {
249
+ function deserializeWithEncoding(encoding, buffer, versionedDataHandler, zodSchema, fromJson, fromBare) {
262
250
  if (encoding === "json") {
251
+ let parsed;
263
252
  if (typeof buffer === "string") {
264
- return jsonParseCompat(buffer);
253
+ parsed = jsonParseCompat(buffer);
265
254
  } else {
266
255
  const decoder = new TextDecoder("utf-8");
267
256
  const jsonString = decoder.decode(buffer);
268
- return jsonParseCompat(jsonString);
257
+ parsed = jsonParseCompat(jsonString);
269
258
  }
259
+ const validated = zodSchema.parse(parsed);
260
+ return fromJson(validated);
270
261
  } else if (encoding === "cbor") {
271
262
  _invariant2.default.call(void 0,
272
263
  typeof buffer !== "string",
273
264
  "buffer cannot be string for cbor encoding"
274
265
  );
275
- return cbor.decode(buffer);
266
+ const decoded = cbor.decode(buffer);
267
+ const validated = zodSchema.parse(decoded);
268
+ return fromJson(validated);
276
269
  } else if (encoding === "bare") {
277
270
  _invariant2.default.call(void 0,
278
271
  typeof buffer !== "string",
@@ -283,9 +276,10 @@ function deserializeWithEncoding(encoding, buffer, versionedDataHandler) {
283
276
  "VersionedDataHandler is required for 'bare' encoding"
284
277
  );
285
278
  }
286
- return versionedDataHandler.deserializeWithEmbeddedVersion(buffer);
279
+ const bareValue = versionedDataHandler.deserializeWithEmbeddedVersion(buffer);
280
+ return fromBare(bareValue);
287
281
  } else {
288
- _chunk7L65NNWPcjs.assertUnreachable.call(void 0, encoding);
282
+ _chunkH7GV5DIWcjs.assertUnreachable.call(void 0, encoding);
289
283
  }
290
284
  }
291
285
 
@@ -323,11 +317,5 @@ function deserializeWithEncoding(encoding, buffer, versionedDataHandler) {
323
317
 
324
318
 
325
319
 
326
-
327
-
328
-
329
-
330
-
331
-
332
- exports.uint8ArrayToBase64 = uint8ArrayToBase64; exports.encodingIsBinary = encodingIsBinary; exports.contentTypeForEncoding = contentTypeForEncoding; exports.serializeWithEncoding = serializeWithEncoding; exports.deserializeWithEncoding = deserializeWithEncoding; exports.loggerWithoutContext = loggerWithoutContext; exports.assertUnreachable = assertUnreachable2; exports.DeadlineError = DeadlineError; exports.deadline = deadline; exports.generateSecureToken = generateSecureToken; exports.generateRandomString = generateRandomString; exports.isStatePath = isStatePath; exports.isConnStatePath = isConnStatePath; exports.EncodingSchema = EncodingSchema; exports.CachedSerializer = CachedSerializer; exports.encodeDataToString = encodeDataToString; exports.jsonStringifyCompat = jsonStringifyCompat; exports.PATH_CONNECT_WEBSOCKET = PATH_CONNECT_WEBSOCKET; exports.PATH_RAW_WEBSOCKET_PREFIX = PATH_RAW_WEBSOCKET_PREFIX; exports.HEADER_ACTOR_QUERY = HEADER_ACTOR_QUERY; exports.HEADER_ENCODING = HEADER_ENCODING; exports.HEADER_CONN_PARAMS = HEADER_CONN_PARAMS; exports.HEADER_ACTOR_ID = HEADER_ACTOR_ID; exports.HEADER_CONN_ID = HEADER_CONN_ID; exports.HEADER_CONN_TOKEN = HEADER_CONN_TOKEN; exports.HEADER_RIVET_TOKEN = HEADER_RIVET_TOKEN; exports.HEADER_RIVET_TARGET = HEADER_RIVET_TARGET; exports.HEADER_RIVET_ACTOR = HEADER_RIVET_ACTOR; exports.WS_PROTOCOL_STANDARD = WS_PROTOCOL_STANDARD; exports.WS_PROTOCOL_TARGET = WS_PROTOCOL_TARGET; exports.WS_PROTOCOL_ACTOR = WS_PROTOCOL_ACTOR; exports.WS_PROTOCOL_ENCODING = WS_PROTOCOL_ENCODING; exports.WS_PROTOCOL_CONN_PARAMS = WS_PROTOCOL_CONN_PARAMS; exports.WS_PROTOCOL_CONN_ID = WS_PROTOCOL_CONN_ID; exports.WS_PROTOCOL_CONN_TOKEN = WS_PROTOCOL_CONN_TOKEN; exports.WS_PROTOCOL_TOKEN = WS_PROTOCOL_TOKEN; exports.WS_PROTOCOL_TRANSPORT = WS_PROTOCOL_TRANSPORT; exports.WS_PROTOCOL_PATH = WS_PROTOCOL_PATH; exports.ALLOWED_PUBLIC_HEADERS = ALLOWED_PUBLIC_HEADERS;
333
- //# sourceMappingURL=chunk-HHFKKVLR.cjs.map
320
+ exports.uint8ArrayToBase64 = uint8ArrayToBase64; exports.contentTypeForEncoding = contentTypeForEncoding; exports.serializeWithEncoding = serializeWithEncoding; exports.deserializeWithEncoding = deserializeWithEncoding; exports.loggerWithoutContext = loggerWithoutContext; exports.assertUnreachable = assertUnreachable2; exports.DeadlineError = DeadlineError; exports.deadline = deadline; exports.generateSecureToken = generateSecureToken; exports.generateRandomString = generateRandomString; exports.isStatePath = isStatePath; exports.isConnStatePath = isConnStatePath; exports.EncodingSchema = EncodingSchema; exports.CachedSerializer = CachedSerializer; exports.jsonStringifyCompat = jsonStringifyCompat; exports.PATH_CONNECT = PATH_CONNECT; exports.PATH_WEBSOCKET_BASE = PATH_WEBSOCKET_BASE; exports.PATH_WEBSOCKET_PREFIX = PATH_WEBSOCKET_PREFIX; exports.PATH_INSPECTOR_CONNECT = PATH_INSPECTOR_CONNECT; exports.HEADER_ACTOR_QUERY = HEADER_ACTOR_QUERY; exports.HEADER_ENCODING = HEADER_ENCODING; exports.HEADER_CONN_PARAMS = HEADER_CONN_PARAMS; exports.HEADER_ACTOR_ID = HEADER_ACTOR_ID; exports.HEADER_RIVET_TOKEN = HEADER_RIVET_TOKEN; exports.HEADER_RIVET_TARGET = HEADER_RIVET_TARGET; exports.HEADER_RIVET_ACTOR = HEADER_RIVET_ACTOR; exports.WS_PROTOCOL_STANDARD = WS_PROTOCOL_STANDARD; exports.WS_PROTOCOL_TARGET = WS_PROTOCOL_TARGET; exports.WS_PROTOCOL_ACTOR = WS_PROTOCOL_ACTOR; exports.WS_PROTOCOL_ENCODING = WS_PROTOCOL_ENCODING; exports.WS_PROTOCOL_CONN_PARAMS = WS_PROTOCOL_CONN_PARAMS; exports.WS_TEST_PROTOCOL_PATH = WS_TEST_PROTOCOL_PATH; exports.ALLOWED_PUBLIC_HEADERS = ALLOWED_PUBLIC_HEADERS;
321
+ //# sourceMappingURL=chunk-YHWIOWVA.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/chunk-YHWIOWVA.cjs","../../src/actor/log.ts","../../src/actor/utils.ts","../../src/common/actor-router-consts.ts","../../src/serde.ts","../../src/actor/protocol/serde.ts"],"names":["assertUnreachable"],"mappings":"AAAA;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACA;ACLO,SAAS,oBAAA,CAAA,EAAuB;AACtC,EAAA,OAAO,yCAAA,eAAyB,CAAA;AACjC;ADOA;AACA;AEVO,SAASA,kBAAAA,CAAkB,CAAA,EAAiB;AAClD,EAAA,oBAAA,CAAqB,CAAA,CAAE,KAAA,CAAM;AAAA,IAC5B,GAAA,EAAK,aAAA;AAAA,IACL,KAAA,EAAO,CAAA,EAAA;AACA,IAAA;AACP,EAAA;AACgB,EAAA;AAClB;AA+Ba;AACZ,EAAA;AACO,IAAA;AACP,EAAA;AACD;AAEgB;AACT,EAAA;AACA,EAAA;AAGA,EAAA;AAEC,EAAA;AACN,IAAA;AACI,IAAA;AACH,MAAA;AACA,IAAA;AACC,EAAA;AACF,IAAA;AACA,EAAA;AACF;AAwBgB;AACT,EAAA;AACC,EAAA;AAEA,EAAA;AAIR;AAEgB;AACT,EAAA;AAEF,EAAA;AACK,EAAA;AACF,IAAA;AACN,IAAA;AACD,EAAA;AACO,EAAA;AACR;AAKgB;AACR,EAAA;AACR;AAKgB;AACL,EAAA;AACF,IAAA;AACR,EAAA;AACM,EAAA;AACF,EAAA;AACI,IAAA;AACR,EAAA;AACM,EAAA;AAEC,EAAA;AACR;AF5DY;AACA;AGlEC;AACA;AACA;AACA;AAGA;AAEA;AAGA;AAEA;AAEA;AAGA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AAIA;AAOA;AACZ,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACD;AH+CY;AACA;AIrGA;AACL;AJuGK;AACA;AKxGH;AAaI;AAUA;AACZ,EAAA;AACS,EAAA;AACT,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AAEA,EAAA;AAOM,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACN,EAAA;AAEW,EAAA;AACH,IAAA;AACR,EAAA;AAEiB,EAAA;AACV,IAAA;AACF,IAAA;AACH,MAAA;AACM,IAAA;AACA,MAAA;AACL,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACD,MAAA;AACK,MAAA;AACL,MAAA;AACD,IAAA;AACD,EAAA;AACD;AA8CS;AACJ,EAAA;AACE,EAAA;AACG,EAAA;AACR,IAAA;AACD,EAAA;AACO,EAAA;AACR;AAES;AACF,EAAA;AACC,EAAA;AACR;AAeS;AAEJ,EAAA;AACI,IAAA;AACR,EAAA;AAGM,EAAA;AACA,EAAA;AACA,EAAA;AACG,EAAA;AACD,IAAA;AACR,EAAA;AACO,EAAA;AACR;AAES;AACD,EAAA;AACR;AAGgB;AACR,EAAA;AACF,IAAA;AACH,MAAA;AACD,IAAA;AACC,MAAA;AACD,IAAA;AACC,MAAA;AACD,IAAA;AAIC,IAAA;AAKA,MAAA;AACD,IAAA;AAEO,IAAA;AACP,EAAA;AACF;AAGgB;AACR,EAAA;AAGL,IAAA;AAMI,MAAA;AACH,QAAA;AACD,MAAA;AACC,QAAA;AACD,MAAA;AACC,QAAA;AACD,MAAA;AAGI,MAAA;AACH,QAAA;AACD,MAAA;AAGM,MAAA;AACL,QAAA;AACD,MAAA;AACD,IAAA;AAEO,IAAA;AACP,EAAA;AACF;ALZY;AACA;AItMI;AAEX,EAAA;AACI,IAAA;AACR,EAAA;AAGI,EAAA;AACE,EAAA;AACG,EAAA;AACR,IAAA;AACD,EAAA;AACO,EAAA;AACR;AAYgB;AACX,EAAA;AACI,IAAA;AACR,EAAA;AACQ,IAAA;AACD,EAAA;AACN,IAAA;AACD,EAAA;AACD;AAcgB;AAQX,EAAA;AACG,IAAA;AACA,IAAA;AACC,IAAA;AACR,EAAA;AACO,IAAA;AACA,IAAA;AACM,IAAA;AACb,EAAA;AACM,IAAA;AACE,MAAA;AACL,QAAA;AACD,MAAA;AACD,IAAA;AACM,IAAA;AACC,IAAA;AACD,EAAA;AACN,IAAA;AACD,EAAA;AACD;AAEgB;AAQX,EAAA;AACC,IAAA;AACA,IAAA;AACH,MAAA;AACM,IAAA;AACA,MAAA;AACA,MAAA;AACN,MAAA;AACD,IAAA;AACM,IAAA;AACC,IAAA;AACR,EAAA;AACC,IAAA;AACC,MAAA;AACA,MAAA;AACD,IAAA;AAEM,IAAA;AAEA,IAAA;AAEC,IAAA;AACR,EAAA;AACC,IAAA;AACC,MAAA;AACA,MAAA;AACD,IAAA;AACK,IAAA;AACE,MAAA;AACL,QAAA;AACD,MAAA;AACD,IAAA;AACM,IAAA;AAEC,IAAA;AACD,EAAA;AACN,IAAA;AACD,EAAA;AACD;AJ0JY;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/chunk-YHWIOWVA.cjs","sourcesContent":[null,"import { getLogger } from \"@/common/log\";\n\n/** Prever to use ActorInstance.rlog child logger. This does not provide context in the log, should only be used as a last resort if you cannot pass the actor's child logger. */\nexport function loggerWithoutContext() {\n\treturn getLogger(\"actor-runtime\");\n}\n","import * as errors from \"./errors\";\nimport { loggerWithoutContext } from \"./log\";\n\nexport function assertUnreachable(x: never): never {\n\tloggerWithoutContext().error({\n\t\tmsg: \"unreachable\",\n\t\tvalue: `${x}`,\n\t\tstack: new Error().stack,\n\t});\n\tthrow new errors.Unreachable(x);\n}\n\nexport const throttle = <\n\t// biome-ignore lint/suspicious/noExplicitAny: we want to allow any function\n\tFn extends (...args: any) => any,\n>(\n\tfn: Fn,\n\tdelay: number,\n) => {\n\tlet lastRan = false;\n\tlet lastArgs: Parameters<Fn> | null = null;\n\n\treturn (...args: Parameters<Fn>) => {\n\t\tif (!lastRan) {\n\t\t\tfn.apply(this, args);\n\t\t\tlastRan = true;\n\t\t\tconst timer = () =>\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tlastRan = false;\n\t\t\t\t\tif (lastArgs) {\n\t\t\t\t\t\tfn.apply(this, lastArgs);\n\t\t\t\t\t\tlastRan = true;\n\t\t\t\t\t\tlastArgs = null;\n\t\t\t\t\t\ttimer();\n\t\t\t\t\t}\n\t\t\t\t}, delay);\n\t\t\ttimer();\n\t\t} else lastArgs = args;\n\t};\n};\n\nexport class DeadlineError extends Error {\n\tconstructor() {\n\t\tsuper(\"Promise did not complete before deadline.\");\n\t}\n}\n\nexport function deadline<T>(promise: Promise<T>, timeout: number): Promise<T> {\n\tconst controller = new AbortController();\n\tconst signal = controller.signal;\n\n\t// Set a timeout to abort the operation\n\tconst timeoutId = setTimeout(() => controller.abort(), timeout);\n\n\treturn Promise.race<T>([\n\t\tpromise,\n\t\tnew Promise<T>((_, reject) => {\n\t\t\tsignal.addEventListener(\"abort\", () => reject(new DeadlineError()));\n\t\t}),\n\t]).finally(() => {\n\t\tclearTimeout(timeoutId);\n\t});\n}\n\nexport class Lock<T> {\n\tprivate _locked = false;\n\tprivate _waiting: Array<() => void> = [];\n\n\tconstructor(private _value: T) {}\n\n\tasync lock(fn: (value: T) => Promise<void>): Promise<void> {\n\t\tif (this._locked) {\n\t\t\tawait new Promise<void>((resolve) => this._waiting.push(resolve));\n\t\t}\n\t\tthis._locked = true;\n\n\t\ttry {\n\t\t\tawait fn(this._value);\n\t\t} finally {\n\t\t\tthis._locked = false;\n\t\t\tconst next = this._waiting.shift();\n\t\t\tif (next) next();\n\t\t}\n\t}\n}\n\nexport function generateSecureToken(length = 32) {\n\tconst array = new Uint8Array(length);\n\tcrypto.getRandomValues(array);\n\t// Replace base64 chars that are not URL safe with URL-safe chars and strip padding\n\treturn btoa(String.fromCharCode(...array))\n\t\t.replace(/\\+/g, \"-\")\n\t\t.replace(/\\//g, \"_\")\n\t\t.replace(/=/g, \"\");\n}\n\nexport function generateRandomString(length = 32) {\n\tconst characters =\n\t\t\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n\tlet result = \"\";\n\tfor (let i = 0; i < length; i++) {\n\t\tconst randomIndex = Math.floor(Math.random() * characters.length);\n\t\tresult += characters[randomIndex];\n\t}\n\treturn result;\n}\n\n/**\n * Checks if a path is an actor state path within the persisted actor data.\n */\nexport function isStatePath(path: string): boolean {\n\treturn path === \"state\" || path.startsWith(\"state.\");\n}\n\n/**\n * Checks if a path is a connection state path within the persisted actor data.\n */\nexport function isConnStatePath(path: string): boolean {\n\tif (!path.startsWith(\"connections.\")) {\n\t\treturn false;\n\t}\n\tconst stateIndex = path.indexOf(\".state\", 12); // Start after \"connections.\"\n\tif (stateIndex === -1) {\n\t\treturn false;\n\t}\n\tconst afterState = stateIndex + 6; // \".state\".length = 6\n\t// Check if \".state\" is followed by end of string or \".\"\n\treturn path.length === afterState || path[afterState] === \".\";\n}\n","// NOTE: This is in a separate file from the router since it needs to be shared between the client & the server. If this was in the router file, the client would end up importing the *entire* actor router and tree shaking would not work.\n\n// MARK: Paths\nexport const PATH_CONNECT = \"/connect\";\nexport const PATH_WEBSOCKET_BASE = \"/websocket\";\nexport const PATH_WEBSOCKET_PREFIX = \"/websocket/\";\nexport const PATH_INSPECTOR_CONNECT = \"/inspector/connect\";\n\n// MARK: Headers\nexport const HEADER_ACTOR_QUERY = \"x-rivet-query\";\n\nexport const HEADER_ENCODING = \"x-rivet-encoding\";\n\n// IMPORTANT: Params must be in headers or in an E2EE part of the request (i.e. NOT the URL or query string) in order to ensure that tokens can be securely passed in params.\nexport const HEADER_CONN_PARAMS = \"x-rivet-conn-params\";\n\nexport const HEADER_ACTOR_ID = \"x-rivet-actor\";\n\nexport const HEADER_RIVET_TOKEN = \"x-rivet-token\";\n\n// MARK: Manager Gateway Headers\nexport const HEADER_RIVET_TARGET = \"x-rivet-target\";\nexport const HEADER_RIVET_ACTOR = \"x-rivet-actor\";\nexport const HEADER_RIVET_NAMESPACE = \"x-rivet-namespace\";\n\n// MARK: WebSocket Protocol Prefixes\n/** Some servers (such as node-ws & Cloudflare) require explicitly match a certain WebSocket protocol. This gives us a static protocol to match against. */\nexport const WS_PROTOCOL_STANDARD = \"rivet\";\nexport const WS_PROTOCOL_TARGET = \"rivet_target.\";\nexport const WS_PROTOCOL_ACTOR = \"rivet_actor.\";\nexport const WS_PROTOCOL_ENCODING = \"rivet_encoding.\";\nexport const WS_PROTOCOL_CONN_PARAMS = \"rivet_conn_params.\";\nexport const WS_PROTOCOL_TOKEN = \"rivet_token.\";\n\n// MARK: WebSocket Inline Test Protocol Prefixes\nexport const WS_TEST_PROTOCOL_PATH = \"test_path.\";\n\n/**\n * Headers that publics can send from public clients.\n *\n * Used for CORS.\n **/\nexport const ALLOWED_PUBLIC_HEADERS = [\n\t\"Content-Type\",\n\t\"User-Agent\",\n\tHEADER_ACTOR_QUERY,\n\tHEADER_ENCODING,\n\tHEADER_CONN_PARAMS,\n\tHEADER_ACTOR_ID,\n\tHEADER_RIVET_TARGET,\n\tHEADER_RIVET_ACTOR,\n\tHEADER_RIVET_NAMESPACE,\n\tHEADER_RIVET_TOKEN,\n];\n","import * as cbor from \"cbor-x\";\nimport invariant from \"invariant\";\nimport type { z } from \"zod\";\nimport { assertUnreachable } from \"@/common/utils\";\nimport type { VersionedDataHandler } from \"@/common/versioned-data\";\nimport type { Encoding } from \"@/mod\";\nimport { jsonParseCompat, jsonStringifyCompat } from \"./actor/protocol/serde\";\n\nexport function uint8ArrayToBase64(uint8Array: Uint8Array): string {\n\t// Check if Buffer is available (Node.js)\n\tif (typeof Buffer !== \"undefined\") {\n\t\treturn Buffer.from(uint8Array).toString(\"base64\");\n\t}\n\n\t// Browser environment - use btoa\n\tlet binary = \"\";\n\tconst len = uint8Array.byteLength;\n\tfor (let i = 0; i < len; i++) {\n\t\tbinary += String.fromCharCode(uint8Array[i]);\n\t}\n\treturn btoa(binary);\n}\n\nexport function encodingIsBinary(encoding: Encoding): boolean {\n\tif (encoding === \"json\") {\n\t\treturn false;\n\t} else if (encoding === \"cbor\" || encoding === \"bare\") {\n\t\treturn true;\n\t} else {\n\t\tassertUnreachable(encoding);\n\t}\n}\n\nexport function contentTypeForEncoding(encoding: Encoding): string {\n\tif (encoding === \"json\") {\n\t\treturn \"application/json\";\n\t} else if (encoding === \"cbor\" || encoding === \"bare\") {\n\t\treturn \"application/octet-stream\";\n\t} else {\n\t\tassertUnreachable(encoding);\n\t}\n}\n\nexport function wsBinaryTypeForEncoding(\n\tencoding: Encoding,\n): \"arraybuffer\" | \"blob\" {\n\tif (encoding === \"json\") {\n\t\treturn \"blob\";\n\t} else if (encoding === \"cbor\" || encoding === \"bare\") {\n\t\treturn \"arraybuffer\";\n\t} else {\n\t\tassertUnreachable(encoding);\n\t}\n}\n\nexport function serializeWithEncoding<TBare, TJson, T = TBare>(\n\tencoding: Encoding,\n\tvalue: T,\n\tversionedDataHandler: VersionedDataHandler<TBare> | undefined,\n\tzodSchema: z.ZodType<TJson>,\n\ttoJson: (value: T) => TJson,\n\ttoBare: (value: T) => TBare,\n): Uint8Array | string {\n\tif (encoding === \"json\") {\n\t\tconst jsonValue = toJson(value);\n\t\tconst validated = zodSchema.parse(jsonValue);\n\t\treturn jsonStringifyCompat(validated);\n\t} else if (encoding === \"cbor\") {\n\t\tconst jsonValue = toJson(value);\n\t\tconst validated = zodSchema.parse(jsonValue);\n\t\treturn cbor.encode(validated);\n\t} else if (encoding === \"bare\") {\n\t\tif (!versionedDataHandler) {\n\t\t\tthrow new Error(\n\t\t\t\t\"VersionedDataHandler is required for 'bare' encoding\",\n\t\t\t);\n\t\t}\n\t\tconst bareValue = toBare(value);\n\t\treturn versionedDataHandler.serializeWithEmbeddedVersion(bareValue);\n\t} else {\n\t\tassertUnreachable(encoding);\n\t}\n}\n\nexport function deserializeWithEncoding<TBare, TJson, T = TBare>(\n\tencoding: Encoding,\n\tbuffer: Uint8Array | string,\n\tversionedDataHandler: VersionedDataHandler<TBare> | undefined,\n\tzodSchema: z.ZodType<TJson>,\n\tfromJson: (value: TJson) => T,\n\tfromBare: (value: TBare) => T,\n): T {\n\tif (encoding === \"json\") {\n\t\tlet parsed: unknown;\n\t\tif (typeof buffer === \"string\") {\n\t\t\tparsed = jsonParseCompat(buffer);\n\t\t} else {\n\t\t\tconst decoder = new TextDecoder(\"utf-8\");\n\t\t\tconst jsonString = decoder.decode(buffer);\n\t\t\tparsed = jsonParseCompat(jsonString);\n\t\t}\n\t\tconst validated = zodSchema.parse(parsed);\n\t\treturn fromJson(validated);\n\t} else if (encoding === \"cbor\") {\n\t\tinvariant(\n\t\t\ttypeof buffer !== \"string\",\n\t\t\t\"buffer cannot be string for cbor encoding\",\n\t\t);\n\t\t// Decode CBOR to get JavaScript values (similar to JSON.parse)\n\t\tconst decoded: unknown = cbor.decode(buffer);\n\t\t// Validate with Zod schema (CBOR produces same structure as JSON)\n\t\tconst validated = zodSchema.parse(decoded);\n\t\t// CBOR decoding produces JS objects, use fromJson\n\t\treturn fromJson(validated);\n\t} else if (encoding === \"bare\") {\n\t\tinvariant(\n\t\t\ttypeof buffer !== \"string\",\n\t\t\t\"buffer cannot be string for bare encoding\",\n\t\t);\n\t\tif (!versionedDataHandler) {\n\t\t\tthrow new Error(\n\t\t\t\t\"VersionedDataHandler is required for 'bare' encoding\",\n\t\t\t);\n\t\t}\n\t\tconst bareValue =\n\t\t\tversionedDataHandler.deserializeWithEmbeddedVersion(buffer);\n\t\treturn fromBare(bareValue);\n\t} else {\n\t\tassertUnreachable(encoding);\n\t}\n}\n","import * as cbor from \"cbor-x\";\nimport { z } from \"zod\";\nimport * as errors from \"@/actor/errors\";\nimport type { VersionedDataHandler } from \"@/common/versioned-data\";\nimport { serializeWithEncoding } from \"@/serde\";\nimport { loggerWithoutContext } from \"../log\";\nimport { assertUnreachable } from \"../utils\";\n\n/** Data that can be deserialized. */\nexport type InputData = string | Buffer | Blob | ArrayBufferLike | Uint8Array;\n\n/** Data that's been serialized. */\nexport type OutputData = string | Uint8Array;\n\nexport const EncodingSchema = z.enum([\"json\", \"cbor\", \"bare\"]);\n\n/**\n * Encoding used to communicate between the client & actor.\n */\nexport type Encoding = z.infer<typeof EncodingSchema>;\n\n/**\n * Helper class that helps serialize data without re-serializing for the same encoding.\n */\nexport class CachedSerializer<TBare, TJson, T = TBare> {\n\t#data: T;\n\t#cache = new Map<Encoding, OutputData>();\n\t#versionedDataHandler: VersionedDataHandler<TBare>;\n\t#zodSchema: z.ZodType<TJson>;\n\t#toJson: (value: T) => TJson;\n\t#toBare: (value: T) => TBare;\n\n\tconstructor(\n\t\tdata: T,\n\t\tversionedDataHandler: VersionedDataHandler<TBare>,\n\t\tzodSchema: z.ZodType<TJson>,\n\t\ttoJson: (value: T) => TJson,\n\t\ttoBare: (value: T) => TBare,\n\t) {\n\t\tthis.#data = data;\n\t\tthis.#versionedDataHandler = versionedDataHandler;\n\t\tthis.#zodSchema = zodSchema;\n\t\tthis.#toJson = toJson;\n\t\tthis.#toBare = toBare;\n\t}\n\n\tpublic get rawData(): T {\n\t\treturn this.#data;\n\t}\n\n\tpublic serialize(encoding: Encoding): OutputData {\n\t\tconst cached = this.#cache.get(encoding);\n\t\tif (cached) {\n\t\t\treturn cached;\n\t\t} else {\n\t\t\tconst serialized = serializeWithEncoding(\n\t\t\t\tencoding,\n\t\t\t\tthis.#data,\n\t\t\t\tthis.#versionedDataHandler,\n\t\t\t\tthis.#zodSchema,\n\t\t\t\tthis.#toJson,\n\t\t\t\tthis.#toBare,\n\t\t\t);\n\t\t\tthis.#cache.set(encoding, serialized);\n\t\t\treturn serialized;\n\t\t}\n\t}\n}\n\n///**\n// * Use `CachedSerializer` if serializing the same data repeatedly.\n// */\n//export function serialize<T>(value: T, encoding: Encoding): OutputData {\n//\tif (encoding === \"json\") {\n//\t\treturn JSON.stringify(value);\n//\t} else if (encoding === \"cbor\") {\n//\t\t// TODO: Remove this hack, but cbor-x can't handle anything extra in data structures\n//\t\tconst cleanValue = JSON.parse(JSON.stringify(value));\n//\t\treturn cbor.encode(cleanValue);\n//\t} else {\n//\t\tassertUnreachable(encoding);\n//\t}\n//}\n//\n//export async function deserialize(data: InputData, encoding: Encoding) {\n//\tif (encoding === \"json\") {\n//\t\tif (typeof data !== \"string\") {\n//\t\t\tlogger().warn(\"received non-string for json parse\");\n//\t\t\tthrow new errors.MalformedMessage();\n//\t\t} else {\n//\t\t\treturn JSON.parse(data);\n//\t\t}\n//\t} else if (encoding === \"cbor\") {\n//\t\tif (data instanceof Blob) {\n//\t\t\tconst arrayBuffer = await data.arrayBuffer();\n//\t\t\treturn cbor.decode(new Uint8Array(arrayBuffer));\n//\t\t} else if (data instanceof Uint8Array) {\n//\t\t\treturn cbor.decode(data);\n//\t\t} else if (\n//\t\t\tdata instanceof ArrayBuffer ||\n//\t\t\tdata instanceof SharedArrayBuffer\n//\t\t) {\n//\t\t\treturn cbor.decode(new Uint8Array(data));\n//\t\t} else {\n//\t\t\tlogger().warn(\"received non-binary type for cbor parse\");\n//\t\t\tthrow new errors.MalformedMessage();\n//\t\t}\n//\t} else {\n//\t\tassertUnreachable(encoding);\n//\t}\n//}\n\n// TODO: Encode base 128\nfunction base64EncodeUint8Array(uint8Array: Uint8Array): string {\n\tlet binary = \"\";\n\tconst len = uint8Array.byteLength;\n\tfor (let i = 0; i < len; i++) {\n\t\tbinary += String.fromCharCode(uint8Array[i]);\n\t}\n\treturn btoa(binary);\n}\n\nfunction base64EncodeArrayBuffer(arrayBuffer: ArrayBuffer): string {\n\tconst uint8Array = new Uint8Array(arrayBuffer);\n\treturn base64EncodeUint8Array(uint8Array);\n}\n\n/** Converts data that was encoded to a string. Some formats (like SSE) don't support raw binary data. */\nexport function encodeDataToString(message: OutputData): string {\n\tif (typeof message === \"string\") {\n\t\treturn message;\n\t} else if (message instanceof ArrayBuffer) {\n\t\treturn base64EncodeArrayBuffer(message);\n\t} else if (message instanceof Uint8Array) {\n\t\treturn base64EncodeUint8Array(message);\n\t} else {\n\t\tassertUnreachable(message);\n\t}\n}\n\nfunction base64DecodeToUint8Array(base64: string): Uint8Array {\n\t// Check if Buffer is available (Node.js)\n\tif (typeof Buffer !== \"undefined\") {\n\t\treturn new Uint8Array(Buffer.from(base64, \"base64\"));\n\t}\n\n\t// Browser environment - use atob\n\tconst binary = atob(base64);\n\tconst len = binary.length;\n\tconst bytes = new Uint8Array(len);\n\tfor (let i = 0; i < len; i++) {\n\t\tbytes[i] = binary.charCodeAt(i);\n\t}\n\treturn bytes;\n}\n\nfunction base64DecodeToArrayBuffer(base64: string): ArrayBuffer {\n\treturn base64DecodeToUint8Array(base64).buffer as ArrayBuffer;\n}\n\n/** Stringifies with compat for values that BARE & CBOR supports. */\nexport function jsonStringifyCompat(input: any): string {\n\treturn JSON.stringify(input, (_key, value) => {\n\t\tif (typeof value === \"bigint\") {\n\t\t\treturn [\"$BigInt\", value.toString()];\n\t\t} else if (value instanceof ArrayBuffer) {\n\t\t\treturn [\"$ArrayBuffer\", base64EncodeArrayBuffer(value)];\n\t\t} else if (value instanceof Uint8Array) {\n\t\t\treturn [\"$Uint8Array\", base64EncodeUint8Array(value)];\n\t\t}\n\n\t\t// Escape user arrays that start with $ by prepending another $\n\t\tif (\n\t\t\tArray.isArray(value) &&\n\t\t\tvalue.length === 2 &&\n\t\t\ttypeof value[0] === \"string\" &&\n\t\t\tvalue[0].startsWith(\"$\")\n\t\t) {\n\t\t\treturn [\"$\" + value[0], value[1]];\n\t\t}\n\n\t\treturn value;\n\t});\n}\n\n/** Parses JSON with compat for values that BARE & CBOR supports. */\nexport function jsonParseCompat(input: string): any {\n\treturn JSON.parse(input, (_key, value) => {\n\t\t// Handle arrays with $ prefix\n\t\tif (\n\t\t\tArray.isArray(value) &&\n\t\t\tvalue.length === 2 &&\n\t\t\ttypeof value[0] === \"string\" &&\n\t\t\tvalue[0].startsWith(\"$\")\n\t\t) {\n\t\t\t// Known special types\n\t\t\tif (value[0] === \"$BigInt\") {\n\t\t\t\treturn BigInt(value[1]);\n\t\t\t} else if (value[0] === \"$ArrayBuffer\") {\n\t\t\t\treturn base64DecodeToArrayBuffer(value[1]);\n\t\t\t} else if (value[0] === \"$Uint8Array\") {\n\t\t\t\treturn base64DecodeToUint8Array(value[1]);\n\t\t\t}\n\n\t\t\t// Unescape user arrays that started with $ ($$foo -> $foo)\n\t\t\tif (value[0].startsWith(\"$$\")) {\n\t\t\t\treturn [value[0].substring(1), value[1]];\n\t\t\t}\n\n\t\t\t// Unknown type starting with $ - this is an error\n\t\t\tthrow new Error(\n\t\t\t\t`Unknown JSON encoding type: ${value[0]}. This may indicate corrupted data or a version mismatch.`,\n\t\t\t);\n\t\t}\n\n\t\treturn value;\n\t});\n}\n"]}