rivetkit 2.3.0-rc.6 → 2.3.0-rc.7

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 (122) hide show
  1. package/dist/browser/client.d.ts +37 -8
  2. package/dist/browser/client.js +64 -34
  3. package/dist/browser/client.js.map +1 -1
  4. package/dist/browser/inspector/client.js +4 -3
  5. package/dist/browser/inspector/client.js.map +1 -1
  6. package/dist/tsup/actor/errors.cjs +2 -2
  7. package/dist/tsup/actor/errors.js +1 -1
  8. package/dist/tsup/agent-os/index.cjs +7 -5
  9. package/dist/tsup/agent-os/index.cjs.map +1 -1
  10. package/dist/tsup/agent-os/index.d.cts +26 -5
  11. package/dist/tsup/agent-os/index.d.ts +26 -5
  12. package/dist/tsup/agent-os/index.js +7 -5
  13. package/dist/tsup/agent-os/index.js.map +1 -1
  14. package/dist/tsup/{chunk-2G64KSZQ.cjs → chunk-2H4ISA4Y.cjs} +10 -10
  15. package/dist/tsup/chunk-2H4ISA4Y.cjs.map +1 -0
  16. package/dist/tsup/{chunk-ZI5QJMKO.js → chunk-4DJMFOSU.js} +2 -2
  17. package/dist/tsup/{chunk-RTC2AZGB.js → chunk-4LTY5TOO.js} +132 -4
  18. package/dist/tsup/chunk-4LTY5TOO.js.map +1 -0
  19. package/dist/tsup/{chunk-DEO7MMWQ.js → chunk-52TPEKEC.js} +2 -2
  20. package/dist/tsup/{chunk-HTR4YLNT.cjs → chunk-55E7IR6D.cjs} +4 -4
  21. package/dist/tsup/{chunk-HTR4YLNT.cjs.map → chunk-55E7IR6D.cjs.map} +1 -1
  22. package/dist/tsup/{chunk-QAZLM4WT.cjs → chunk-63WNTDRC.cjs} +3 -3
  23. package/dist/tsup/{chunk-QAZLM4WT.cjs.map → chunk-63WNTDRC.cjs.map} +1 -1
  24. package/dist/tsup/{chunk-EMO6E3PJ.js → chunk-CMV6N5OX.js} +3 -3
  25. package/dist/tsup/{chunk-T6YVRM4K.js → chunk-D5G75T7J.js} +3 -1
  26. package/dist/tsup/chunk-D5G75T7J.js.map +1 -0
  27. package/dist/tsup/{chunk-LIXXFXVR.cjs → chunk-FEOG44WH.cjs} +137 -9
  28. package/dist/tsup/chunk-FEOG44WH.cjs.map +1 -0
  29. package/dist/tsup/{chunk-M5C7YNI5.cjs → chunk-G5HUSWP4.cjs} +8 -8
  30. package/dist/tsup/{chunk-M5C7YNI5.cjs.map → chunk-G5HUSWP4.cjs.map} +1 -1
  31. package/dist/tsup/{chunk-6S25NVAP.js → chunk-HERL2VQ2.js} +7 -5
  32. package/dist/tsup/chunk-HERL2VQ2.js.map +1 -0
  33. package/dist/tsup/{chunk-JALSAX7Z.cjs → chunk-SJLPZEA3.cjs} +3 -3
  34. package/dist/tsup/{chunk-JALSAX7Z.cjs.map → chunk-SJLPZEA3.cjs.map} +1 -1
  35. package/dist/tsup/{chunk-WQ4HNA4W.cjs → chunk-SRNOPUC6.cjs} +4 -2
  36. package/dist/tsup/chunk-SRNOPUC6.cjs.map +1 -0
  37. package/dist/tsup/{chunk-KIWH5H3K.js → chunk-TMLOKTRB.js} +3 -3
  38. package/dist/tsup/chunk-TMLOKTRB.js.map +1 -0
  39. package/dist/tsup/{chunk-CAF6JDJE.js → chunk-VFIY6GWO.js} +4 -4
  40. package/dist/tsup/chunk-VFIY6GWO.js.map +1 -0
  41. package/dist/tsup/{chunk-FLODVLYW.js → chunk-VJ4Y4WBT.js} +10 -34
  42. package/dist/tsup/chunk-VJ4Y4WBT.js.map +1 -0
  43. package/dist/tsup/{chunk-K5BA2LEO.cjs → chunk-X6HIFXNK.cjs} +14 -12
  44. package/dist/tsup/chunk-X6HIFXNK.cjs.map +1 -0
  45. package/dist/tsup/{chunk-ENK7C66G.cjs → chunk-ZGPX6KAH.cjs} +169 -193
  46. package/dist/tsup/chunk-ZGPX6KAH.cjs.map +1 -0
  47. package/dist/tsup/client/mod.cjs +7 -7
  48. package/dist/tsup/client/mod.d.cts +2 -2
  49. package/dist/tsup/client/mod.d.ts +2 -2
  50. package/dist/tsup/client/mod.js +6 -6
  51. package/dist/tsup/common/log.cjs +3 -3
  52. package/dist/tsup/common/log.js +2 -2
  53. package/dist/tsup/common/websocket.cjs +4 -4
  54. package/dist/tsup/common/websocket.js +3 -3
  55. package/dist/tsup/{config-0Ta55UV0.d.ts → config-Ak1lv4gF.d.ts} +27 -6
  56. package/dist/tsup/{config-Ca8dN4cS.d.cts → config-DU_xj4qZ.d.cts} +27 -6
  57. package/dist/tsup/{context-B_IWbWne.d.ts → context-DAAp4Lpg.d.ts} +1 -1
  58. package/dist/tsup/{context-CUrQ9MHc.d.cts → context-Dt_L55q8.d.cts} +1 -1
  59. package/dist/tsup/inspector/mod.cjs +6 -6
  60. package/dist/tsup/inspector/mod.js +5 -5
  61. package/dist/tsup/mod.cjs +470 -316
  62. package/dist/tsup/mod.cjs.map +1 -1
  63. package/dist/tsup/mod.d.cts +3 -3
  64. package/dist/tsup/mod.d.ts +3 -3
  65. package/dist/tsup/mod.js +391 -237
  66. package/dist/tsup/mod.js.map +1 -1
  67. package/dist/tsup/process-metrics-NW754INA.js +118 -0
  68. package/dist/tsup/process-metrics-NW754INA.js.map +1 -0
  69. package/dist/tsup/process-metrics-TYAGKCEJ.cjs +118 -0
  70. package/dist/tsup/process-metrics-TYAGKCEJ.cjs.map +1 -0
  71. package/dist/tsup/test/mod.cjs +10 -10
  72. package/dist/tsup/test/mod.d.cts +1 -1
  73. package/dist/tsup/test/mod.d.ts +1 -1
  74. package/dist/tsup/test/mod.js +6 -6
  75. package/dist/tsup/utils.cjs +3 -3
  76. package/dist/tsup/utils.js +2 -2
  77. package/dist/tsup/workflow/mod.cjs +41 -16
  78. package/dist/tsup/workflow/mod.cjs.map +1 -1
  79. package/dist/tsup/workflow/mod.d.cts +3 -3
  80. package/dist/tsup/workflow/mod.d.ts +3 -3
  81. package/dist/tsup/workflow/mod.js +35 -10
  82. package/dist/tsup/workflow/mod.js.map +1 -1
  83. package/package.json +11 -10
  84. package/src/actor/config.ts +3 -0
  85. package/src/actor/errors.ts +2 -2
  86. package/src/agent-os/actor/session.ts +2 -2
  87. package/src/client/actor-conn.ts +6 -34
  88. package/src/client/actor-handle.ts +2 -1
  89. package/src/client/queue.ts +2 -1
  90. package/src/client/utils.ts +0 -1
  91. package/src/common/encoding.ts +243 -5
  92. package/src/common/inline-websocket-adapter.ts +12 -12
  93. package/src/common/log.ts +1 -0
  94. package/src/common/router.ts +2 -2
  95. package/src/common/utils.ts +0 -148
  96. package/src/drivers/engine/actor-driver.ts +11 -11
  97. package/src/engine-client/actor-websocket-client.ts +2 -1
  98. package/src/engine-client/mod.ts +3 -2
  99. package/src/registry/index.ts +46 -109
  100. package/src/registry/napi-runtime.ts +11 -34
  101. package/src/registry/native.ts +193 -104
  102. package/src/registry/process-metrics.ts +183 -0
  103. package/src/registry/runtime.ts +5 -12
  104. package/src/registry/wasm-runtime.ts +2 -13
  105. package/src/registry/write-through-proxy.ts +40 -0
  106. package/src/serde.ts +2 -2
  107. package/src/workflow/context.ts +32 -5
  108. package/src/workflow/inspector.ts +2 -1
  109. package/dist/tsup/chunk-2G64KSZQ.cjs.map +0 -1
  110. package/dist/tsup/chunk-6S25NVAP.js.map +0 -1
  111. package/dist/tsup/chunk-CAF6JDJE.js.map +0 -1
  112. package/dist/tsup/chunk-ENK7C66G.cjs.map +0 -1
  113. package/dist/tsup/chunk-FLODVLYW.js.map +0 -1
  114. package/dist/tsup/chunk-K5BA2LEO.cjs.map +0 -1
  115. package/dist/tsup/chunk-KIWH5H3K.js.map +0 -1
  116. package/dist/tsup/chunk-LIXXFXVR.cjs.map +0 -1
  117. package/dist/tsup/chunk-RTC2AZGB.js.map +0 -1
  118. package/dist/tsup/chunk-T6YVRM4K.js.map +0 -1
  119. package/dist/tsup/chunk-WQ4HNA4W.cjs.map +0 -1
  120. /package/dist/tsup/{chunk-ZI5QJMKO.js.map → chunk-4DJMFOSU.js.map} +0 -0
  121. /package/dist/tsup/{chunk-DEO7MMWQ.js.map → chunk-52TPEKEC.js.map} +0 -0
  122. /package/dist/tsup/{chunk-EMO6E3PJ.js.map → chunk-CMV6N5OX.js.map} +0 -0
@@ -116,7 +116,7 @@ function decodeBridgeRivetErrorPayload(value) {
116
116
  if (!isRivetErrorLike(payload)) {
117
117
  return void 0;
118
118
  }
119
- if (payload.actor !== void 0 && !isActorSpecifier(payload.actor)) {
119
+ if (payload.actor !== void 0 && payload.actor !== null && !isActorSpecifier(payload.actor)) {
120
120
  return void 0;
121
121
  }
122
122
  return payload;
@@ -133,7 +133,7 @@ function decodeBridgeRivetError(value) {
133
133
  metadata: payload.metadata,
134
134
  public: payload.public,
135
135
  statusCode: payload.statusCode,
136
- actor: payload.actor
136
+ actor: _nullishCoalesce(payload.actor, () => ( void 0))
137
137
  });
138
138
  }
139
139
  function isRivetErrorCode(error, group, code) {
@@ -242,4 +242,4 @@ function unsupportedFeature(feature) {
242
242
 
243
243
 
244
244
  exports.INTERNAL_ERROR_CODE = INTERNAL_ERROR_CODE; exports.INTERNAL_ERROR_DESCRIPTION = INTERNAL_ERROR_DESCRIPTION; exports.USER_ERROR_CODE = USER_ERROR_CODE; exports.BRIDGE_RIVET_ERROR_PREFIX = BRIDGE_RIVET_ERROR_PREFIX; exports.isRivetErrorLike = isRivetErrorLike; exports.RivetError = RivetError; exports.UserError = UserError; exports.toRivetError = toRivetError; exports.encodeBridgeRivetError = encodeBridgeRivetError; exports.decodeBridgeRivetErrorPayload = decodeBridgeRivetErrorPayload; exports.decodeBridgeRivetError = decodeBridgeRivetError; exports.isRivetErrorCode = isRivetErrorCode; exports.internalError = internalError; exports.invalidEncoding = invalidEncoding; exports.invalidRequest = invalidRequest; exports.actorNotFound = actorNotFound; exports.actorStopping = actorStopping; exports.actorRestarting = actorRestarting; exports.forbiddenError = forbiddenError; exports.unsupportedFeature = unsupportedFeature;
245
- //# sourceMappingURL=chunk-QAZLM4WT.cjs.map
245
+ //# sourceMappingURL=chunk-63WNTDRC.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/chunk-QAZLM4WT.cjs","../../src/actor/errors.ts"],"names":[],"mappings":"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AACR,EAAA;AACN,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACC,MAAA;AACA,MAAA;AACD,IAAA;AACD,EAAA;AACD;AAEgB;AACR,EAAA;AACN,IAAA;AACA,IAAA;AACA,IAAA;AAGE,IAAA;AACH,EAAA;AACD;AAEgB;AACR,EAAA;AACN,IAAA;AACA,IAAA;AACA,IAAA;AACE,IAAA;AACH,EAAA;AACD;AAOgB;AACR,EAAA;AACN,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACC,MAAA;AACA,MAAA;AACA,MAAA;AACC,QAAA;AACA,QAAA;AACA,QAAA;AAGD,MAAA;AACD,IAAA;AACD,EAAA;AACD;AAEgB;AACR,EAAA;AACN,IAAA;AACA,IAAA;AACA,EAAA;AACF;AAEgB;AACR,EAAA;AACN,IAAA;AACA,IAAA;AACA,IAAA;AACD,EAAA;AACD;ADzJU;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-QAZLM4WT.cjs","sourcesContent":[null,"import type { DeconstructedError } from \"@/common/utils\";\n\nexport const INTERNAL_ERROR_CODE = \"internal_error\";\nexport const INTERNAL_ERROR_DESCRIPTION = \"An internal error occurred\";\nexport type InternalErrorMetadata = Record<string, never>;\n\nexport const USER_ERROR_CODE = \"user_error\";\nexport const BRIDGE_RIVET_ERROR_PREFIX = \"__RIVET_ERROR_JSON__:\";\n\nexport interface RivetErrorOptions 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. */\n\tmetadata?: unknown;\n\t/** Explicit HTTP status override for router responses. */\n\tstatusCode?: number;\n\t/** Actor context associated with this error. */\n\tactor?: ActorSpecifier;\n}\n\n/** Identifies the actor that was handling work when an error was produced. */\nexport interface ActorSpecifier {\n\tactorId: string;\n\tgeneration: number;\n\tkey?: string;\n}\n\nexport interface RivetErrorLike {\n\t__type?: \"ActorError\" | \"RivetError\";\n\tgroup: string;\n\tcode: string;\n\tmessage: string;\n\tmetadata?: unknown;\n\tpublic?: boolean;\n\tstatusCode?: number;\n\tactor?: ActorSpecifier;\n}\n\nexport interface BridgeRivetErrorPayload extends RivetErrorLike {}\n\nexport interface UserErrorOptions extends ErrorOptions {\n\t/**\n\t * Machine readable code for this error. Useful for catching different types of\n\t * errors in try-catch.\n\t */\n\tcode?: string;\n\t/**\n\t * Additional metadata related to the error. Useful for understanding context\n\t * about the error.\n\t */\n\tmetadata?: unknown;\n}\n\nfunction looksLikeRivetErrorOptions(\n\tvalue: unknown,\n): value is RivetErrorOptions {\n\treturn (\n\t\ttypeof value === \"object\" &&\n\t\tvalue !== null &&\n\t\t(\"public\" in value ||\n\t\t\t\"metadata\" in value ||\n\t\t\t\"statusCode\" in value ||\n\t\t\t\"actor\" in value ||\n\t\t\t\"cause\" in value)\n\t);\n}\n\nfunction isTypedErrorTag(value: unknown): value is \"ActorError\" | \"RivetError\" {\n\treturn value === \"ActorError\" || value === \"RivetError\";\n}\n\nfunction errorMessage(error: unknown, fallback = String(error)): string {\n\tif (\n\t\terror &&\n\t\ttypeof error === \"object\" &&\n\t\t\"message\" in error &&\n\t\ttypeof error.message === \"string\"\n\t) {\n\t\treturn error.message;\n\t}\n\n\treturn fallback;\n}\n\nexport function isRivetErrorLike(\n\terror: unknown,\n): error is RivetError | DeconstructedError | RivetErrorLike {\n\treturn (\n\t\ttypeof error === \"object\" &&\n\t\terror !== null &&\n\t\t\"group\" in error &&\n\t\ttypeof error.group === \"string\" &&\n\t\t\"code\" in error &&\n\t\ttypeof error.code === \"string\" &&\n\t\t\"message\" in error &&\n\t\ttypeof error.message === \"string\" &&\n\t\t(!(\"__type\" in error) || isTypedErrorTag(error.__type))\n\t);\n}\n\nfunction isActorSpecifier(value: unknown): value is ActorSpecifier {\n\treturn (\n\t\ttypeof value === \"object\" &&\n\t\tvalue !== null &&\n\t\t\"actorId\" in value &&\n\t\ttypeof value.actorId === \"string\" &&\n\t\t\"generation\" in value &&\n\t\ttypeof value.generation === \"number\" &&\n\t\t(!(\"key\" in value) || value.key === undefined || typeof value.key === \"string\")\n\t);\n}\n\nexport class RivetError extends Error {\n\t__type = \"RivetError\" as const;\n\n\tpublic public: boolean;\n\tpublic metadata?: unknown;\n\tpublic statusCode: number;\n\tpublic actor?: ActorSpecifier;\n\tpublic readonly group: string;\n\tpublic readonly code: string;\n\n\tpublic static isRivetError(\n\t\terror: unknown,\n\t): error is RivetError | DeconstructedError {\n\t\treturn isRivetErrorLike(error);\n\t}\n\n\tpublic static isActorError(\n\t\terror: unknown,\n\t): error is RivetError | DeconstructedError {\n\t\treturn isRivetErrorLike(error);\n\t}\n\n\tconstructor(\n\t\tgroup: string,\n\t\tcode: string,\n\t\tmessage: string,\n\t\toptions?: RivetErrorOptions | unknown,\n\t) {\n\t\tconst normalized = looksLikeRivetErrorOptions(options)\n\t\t\t? options\n\t\t\t: { metadata: options };\n\n\t\tsuper(message, { cause: normalized.cause });\n\t\tthis.name = \"RivetError\";\n\t\tthis.group = group;\n\t\tthis.code = code;\n\t\tthis.public = normalized.public ?? false;\n\t\tthis.metadata = normalized.metadata;\n\t\tthis.statusCode = normalized.statusCode ?? (this.public ? 400 : 500);\n\t\tthis.actor = normalized.actor;\n\t}\n\n\ttoString() {\n\t\treturn this.message;\n\t}\n}\n\nexport { RivetError as ActorError };\n\nexport class UserError extends RivetError {\n\tconstructor(message: string, options?: UserErrorOptions) {\n\t\tsuper(\"user\", options?.code ?? USER_ERROR_CODE, message, {\n\t\t\tpublic: true,\n\t\t\tmetadata: options?.metadata,\n\t\t\tcause: options?.cause,\n\t\t});\n\t}\n}\n\nexport function toRivetError(\n\terror: unknown,\n\tfallback?: Partial<RivetErrorLike>,\n): RivetError {\n\tif (typeof error === \"string\") {\n\t\tconst bridged = decodeBridgeRivetError(error);\n\t\tif (bridged) {\n\t\t\treturn bridged;\n\t\t}\n\t}\n\n\tif (error instanceof Error) {\n\t\tconst bridged = decodeBridgeRivetError(error.message);\n\t\tif (bridged) {\n\t\t\treturn bridged;\n\t\t}\n\t}\n\n\tif (isRivetErrorLike(error)) {\n\t\treturn new RivetError(error.group, error.code, error.message, {\n\t\t\tpublic: error.public,\n\t\t\tstatusCode: error.statusCode,\n\t\t\tmetadata: error.metadata,\n\t\t\tactor: error.actor,\n\t\t\tcause: error instanceof Error ? error.cause : undefined,\n\t\t});\n\t}\n\n\treturn new RivetError(\n\t\tfallback?.group ?? \"actor\",\n\t\tfallback?.code ?? INTERNAL_ERROR_CODE,\n\t\terrorMessage(error, fallback?.message ?? \"Unknown error\"),\n\t\t{\n\t\t\tpublic: fallback?.public,\n\t\t\tstatusCode: fallback?.statusCode,\n\t\t\tmetadata: fallback?.metadata,\n\t\t\tactor: fallback?.actor,\n\t\t\tcause: error instanceof Error ? error : undefined,\n\t\t},\n\t);\n}\n\nexport function encodeBridgeRivetError(error: RivetErrorLike): string {\n\treturn `${BRIDGE_RIVET_ERROR_PREFIX}${JSON.stringify({\n\t\tgroup: error.group,\n\t\tcode: error.code,\n\t\tmessage: error.message,\n\t\tmetadata: error.metadata,\n\t\tpublic: error.public,\n\t\tstatusCode: error.statusCode,\n\t\tactor: error.actor,\n\t})}`;\n}\n\nexport function decodeBridgeRivetErrorPayload(\n\tvalue: string,\n): BridgeRivetErrorPayload | undefined {\n\tif (!value.startsWith(BRIDGE_RIVET_ERROR_PREFIX)) {\n\t\treturn undefined;\n\t}\n\n\ttry {\n\t\tconst payload = JSON.parse(\n\t\t\tvalue.slice(BRIDGE_RIVET_ERROR_PREFIX.length),\n\t\t) as BridgeRivetErrorPayload;\n\t\tif (!isRivetErrorLike(payload)) {\n\t\t\treturn undefined;\n\t\t}\n\t\tif (payload.actor !== undefined && !isActorSpecifier(payload.actor)) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn payload;\n\t} catch {\n\t\treturn undefined;\n\t}\n}\n\nexport function decodeBridgeRivetError(value: string): RivetError | undefined {\n\tconst payload = decodeBridgeRivetErrorPayload(value);\n\tif (!payload) {\n\t\treturn undefined;\n\t}\n\n\treturn new RivetError(payload.group, payload.code, payload.message, {\n\t\tmetadata: payload.metadata,\n\t\tpublic: payload.public,\n\t\tstatusCode: payload.statusCode,\n\t\tactor: payload.actor,\n\t});\n}\n\nexport function isRivetErrorCode(\n\terror: unknown,\n\tgroup: string,\n\tcode: string,\n): error is RivetError {\n\treturn (\n\t\tisRivetErrorLike(error) && error.group === group && error.code === code\n\t);\n}\n\nexport function internalError(\n\tmessage: string,\n\toptions?: Partial<RivetErrorOptions> & {\n\t\tgroup?: string;\n\t\tcode?: string;\n\t},\n): RivetError {\n\treturn new RivetError(\n\t\toptions?.group ?? \"actor\",\n\t\toptions?.code ?? INTERNAL_ERROR_CODE,\n\t\tmessage,\n\t\t{\n\t\t\tpublic: options?.public,\n\t\t\tstatusCode: options?.statusCode,\n\t\t\tmetadata: options?.metadata,\n\t\t\tactor: options?.actor,\n\t\t\tcause: options?.cause,\n\t\t},\n\t);\n}\n\nexport function invalidEncoding(format?: string): RivetError {\n\treturn new RivetError(\n\t\t\"encoding\",\n\t\t\"invalid\",\n\t\t`Invalid encoding \\`${format}\\`. (https://www.rivet.dev/docs/clients/javascript)`,\n\t\t{\n\t\t\tpublic: true,\n\t\t},\n\t);\n}\n\nexport function invalidRequest(error?: unknown): RivetError {\n\treturn new RivetError(\n\t\t\"request\",\n\t\t\"invalid\",\n\t\t`Invalid request: ${errorMessage(error, String(error))}`,\n\t\t{\n\t\t\tpublic: true,\n\t\t\tcause: error instanceof Error ? error : undefined,\n\t\t},\n\t);\n}\n\nexport function actorNotFound(identifier?: string): RivetError {\n\treturn new RivetError(\n\t\t\"actor\",\n\t\t\"not_found\",\n\t\tidentifier\n\t\t\t? `Actor not found: ${identifier} (https://www.rivet.dev/docs/clients/javascript)`\n\t\t\t: \"Actor not found (https://www.rivet.dev/docs/clients/javascript)\",\n\t\t{ public: true },\n\t);\n}\n\nexport function actorStopping(identifier?: string): RivetError {\n\treturn new RivetError(\n\t\t\"actor\",\n\t\t\"stopping\",\n\t\tidentifier ? `Actor stopping: ${identifier}` : \"Actor stopping\",\n\t\t{ public: true },\n\t);\n}\n\nexport interface ActorRestartingOptions {\n\tphase?: \"stopping\" | \"sleeping\" | \"waking\" | \"runner_shutdown\";\n\tretryAfterMs?: number;\n}\n\nexport function actorRestarting(opts?: ActorRestartingOptions): RivetError {\n\treturn new RivetError(\n\t\t\"actor\",\n\t\t\"restarting\",\n\t\t\"Actor is restarting. Retry the request.\",\n\t\t{\n\t\t\tpublic: true,\n\t\t\tstatusCode: 503,\n\t\t\tmetadata: {\n\t\t\t\tretryable: true,\n\t\t\t\t...(opts?.phase ? { phase: opts.phase } : {}),\n\t\t\t\t...(opts?.retryAfterMs !== undefined\n\t\t\t\t\t? { retryAfterMs: opts.retryAfterMs }\n\t\t\t\t\t: {}),\n\t\t\t},\n\t\t},\n\t);\n}\n\nexport function forbiddenError(): RivetError {\n\treturn new RivetError(\"auth\", \"forbidden\", \"Forbidden\", {\n\t\tpublic: true,\n\t\tstatusCode: 403,\n\t});\n}\n\nexport function unsupportedFeature(feature: string): RivetError {\n\treturn new RivetError(\n\t\t\"feature\",\n\t\t\"unsupported\",\n\t\t`Unsupported feature: ${feature}`,\n\t);\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/chunk-63WNTDRC.cjs","../../src/actor/errors.ts"],"names":[],"mappings":"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AACR,EAAA;AACN,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACC,MAAA;AACA,MAAA;AACD,IAAA;AACD,EAAA;AACD;AAEgB;AACR,EAAA;AACN,IAAA;AACA,IAAA;AACA,IAAA;AAGE,IAAA;AACH,EAAA;AACD;AAEgB;AACR,EAAA;AACN,IAAA;AACA,IAAA;AACA,IAAA;AACE,IAAA;AACH,EAAA;AACD;AAOgB;AACR,EAAA;AACN,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACC,MAAA;AACA,MAAA;AACA,MAAA;AACC,QAAA;AACA,QAAA;AACA,QAAA;AAGD,MAAA;AACD,IAAA;AACD,EAAA;AACD;AAEgB;AACR,EAAA;AACN,IAAA;AACA,IAAA;AACA,EAAA;AACF;AAEgB;AACR,EAAA;AACN,IAAA;AACA,IAAA;AACA,IAAA;AACD,EAAA;AACD;ADzJU;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-63WNTDRC.cjs","sourcesContent":[null,"import type { DeconstructedError } from \"@/common/utils\";\n\nexport const INTERNAL_ERROR_CODE = \"internal_error\";\nexport const INTERNAL_ERROR_DESCRIPTION = \"An internal error occurred\";\nexport type InternalErrorMetadata = Record<string, never>;\n\nexport const USER_ERROR_CODE = \"user_error\";\nexport const BRIDGE_RIVET_ERROR_PREFIX = \"__RIVET_ERROR_JSON__:\";\n\nexport interface RivetErrorOptions 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. */\n\tmetadata?: unknown;\n\t/** Explicit HTTP status override for router responses. */\n\tstatusCode?: number;\n\t/** Actor context associated with this error. */\n\tactor?: ActorSpecifier;\n}\n\n/** Identifies the actor that was handling work when an error was produced. */\nexport interface ActorSpecifier {\n\tactorId: string;\n\tgeneration: number;\n\tkey?: string;\n}\n\nexport interface RivetErrorLike {\n\t__type?: \"ActorError\" | \"RivetError\";\n\tgroup: string;\n\tcode: string;\n\tmessage: string;\n\tmetadata?: unknown;\n\tpublic?: boolean;\n\tstatusCode?: number;\n\tactor?: ActorSpecifier;\n}\n\nexport interface BridgeRivetErrorPayload extends RivetErrorLike {}\n\nexport interface UserErrorOptions extends ErrorOptions {\n\t/**\n\t * Machine readable code for this error. Useful for catching different types of\n\t * errors in try-catch.\n\t */\n\tcode?: string;\n\t/**\n\t * Additional metadata related to the error. Useful for understanding context\n\t * about the error.\n\t */\n\tmetadata?: unknown;\n}\n\nfunction looksLikeRivetErrorOptions(\n\tvalue: unknown,\n): value is RivetErrorOptions {\n\treturn (\n\t\ttypeof value === \"object\" &&\n\t\tvalue !== null &&\n\t\t(\"public\" in value ||\n\t\t\t\"metadata\" in value ||\n\t\t\t\"statusCode\" in value ||\n\t\t\t\"actor\" in value ||\n\t\t\t\"cause\" in value)\n\t);\n}\n\nfunction isTypedErrorTag(value: unknown): value is \"ActorError\" | \"RivetError\" {\n\treturn value === \"ActorError\" || value === \"RivetError\";\n}\n\nfunction errorMessage(error: unknown, fallback = String(error)): string {\n\tif (\n\t\terror &&\n\t\ttypeof error === \"object\" &&\n\t\t\"message\" in error &&\n\t\ttypeof error.message === \"string\"\n\t) {\n\t\treturn error.message;\n\t}\n\n\treturn fallback;\n}\n\nexport function isRivetErrorLike(\n\terror: unknown,\n): error is RivetError | DeconstructedError | RivetErrorLike {\n\treturn (\n\t\ttypeof error === \"object\" &&\n\t\terror !== null &&\n\t\t\"group\" in error &&\n\t\ttypeof error.group === \"string\" &&\n\t\t\"code\" in error &&\n\t\ttypeof error.code === \"string\" &&\n\t\t\"message\" in error &&\n\t\ttypeof error.message === \"string\" &&\n\t\t(!(\"__type\" in error) || isTypedErrorTag(error.__type))\n\t);\n}\n\nfunction isActorSpecifier(value: unknown): value is ActorSpecifier {\n\treturn (\n\t\ttypeof value === \"object\" &&\n\t\tvalue !== null &&\n\t\t\"actorId\" in value &&\n\t\ttypeof value.actorId === \"string\" &&\n\t\t\"generation\" in value &&\n\t\ttypeof value.generation === \"number\" &&\n\t\t(!(\"key\" in value) || value.key === undefined || typeof value.key === \"string\")\n\t);\n}\n\nexport class RivetError extends Error {\n\t__type = \"RivetError\" as const;\n\n\tpublic public: boolean;\n\tpublic metadata?: unknown;\n\tpublic statusCode: number;\n\tpublic actor?: ActorSpecifier;\n\tpublic readonly group: string;\n\tpublic readonly code: string;\n\n\tpublic static isRivetError(\n\t\terror: unknown,\n\t): error is RivetError | DeconstructedError {\n\t\treturn isRivetErrorLike(error);\n\t}\n\n\tpublic static isActorError(\n\t\terror: unknown,\n\t): error is RivetError | DeconstructedError {\n\t\treturn isRivetErrorLike(error);\n\t}\n\n\tconstructor(\n\t\tgroup: string,\n\t\tcode: string,\n\t\tmessage: string,\n\t\toptions?: RivetErrorOptions | unknown,\n\t) {\n\t\tconst normalized = looksLikeRivetErrorOptions(options)\n\t\t\t? options\n\t\t\t: { metadata: options };\n\n\t\tsuper(message, { cause: normalized.cause });\n\t\tthis.name = \"RivetError\";\n\t\tthis.group = group;\n\t\tthis.code = code;\n\t\tthis.public = normalized.public ?? false;\n\t\tthis.metadata = normalized.metadata;\n\t\tthis.statusCode = normalized.statusCode ?? (this.public ? 400 : 500);\n\t\tthis.actor = normalized.actor;\n\t}\n\n\ttoString() {\n\t\treturn this.message;\n\t}\n}\n\nexport { RivetError as ActorError };\n\nexport class UserError extends RivetError {\n\tconstructor(message: string, options?: UserErrorOptions) {\n\t\tsuper(\"user\", options?.code ?? USER_ERROR_CODE, message, {\n\t\t\tpublic: true,\n\t\t\tmetadata: options?.metadata,\n\t\t\tcause: options?.cause,\n\t\t});\n\t}\n}\n\nexport function toRivetError(\n\terror: unknown,\n\tfallback?: Partial<RivetErrorLike>,\n): RivetError {\n\tif (typeof error === \"string\") {\n\t\tconst bridged = decodeBridgeRivetError(error);\n\t\tif (bridged) {\n\t\t\treturn bridged;\n\t\t}\n\t}\n\n\tif (error instanceof Error) {\n\t\tconst bridged = decodeBridgeRivetError(error.message);\n\t\tif (bridged) {\n\t\t\treturn bridged;\n\t\t}\n\t}\n\n\tif (isRivetErrorLike(error)) {\n\t\treturn new RivetError(error.group, error.code, error.message, {\n\t\t\tpublic: error.public,\n\t\t\tstatusCode: error.statusCode,\n\t\t\tmetadata: error.metadata,\n\t\t\tactor: error.actor,\n\t\t\tcause: error instanceof Error ? error.cause : undefined,\n\t\t});\n\t}\n\n\treturn new RivetError(\n\t\tfallback?.group ?? \"actor\",\n\t\tfallback?.code ?? INTERNAL_ERROR_CODE,\n\t\terrorMessage(error, fallback?.message ?? \"Unknown error\"),\n\t\t{\n\t\t\tpublic: fallback?.public,\n\t\t\tstatusCode: fallback?.statusCode,\n\t\t\tmetadata: fallback?.metadata,\n\t\t\tactor: fallback?.actor,\n\t\t\tcause: error instanceof Error ? error : undefined,\n\t\t},\n\t);\n}\n\nexport function encodeBridgeRivetError(error: RivetErrorLike): string {\n\treturn `${BRIDGE_RIVET_ERROR_PREFIX}${JSON.stringify({\n\t\tgroup: error.group,\n\t\tcode: error.code,\n\t\tmessage: error.message,\n\t\tmetadata: error.metadata,\n\t\tpublic: error.public,\n\t\tstatusCode: error.statusCode,\n\t\tactor: error.actor,\n\t})}`;\n}\n\nexport function decodeBridgeRivetErrorPayload(\n\tvalue: string,\n): BridgeRivetErrorPayload | undefined {\n\tif (!value.startsWith(BRIDGE_RIVET_ERROR_PREFIX)) {\n\t\treturn undefined;\n\t}\n\n\ttry {\n\t\tconst payload = JSON.parse(\n\t\t\tvalue.slice(BRIDGE_RIVET_ERROR_PREFIX.length),\n\t\t) as BridgeRivetErrorPayload;\n\t\tif (!isRivetErrorLike(payload)) {\n\t\t\treturn undefined;\n\t\t}\n\t\tif (payload.actor !== undefined && payload.actor !== null && !isActorSpecifier(payload.actor)) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn payload;\n\t} catch {\n\t\treturn undefined;\n\t}\n}\n\nexport function decodeBridgeRivetError(value: string): RivetError | undefined {\n\tconst payload = decodeBridgeRivetErrorPayload(value);\n\tif (!payload) {\n\t\treturn undefined;\n\t}\n\n\treturn new RivetError(payload.group, payload.code, payload.message, {\n\t\tmetadata: payload.metadata,\n\t\tpublic: payload.public,\n\t\tstatusCode: payload.statusCode,\n\t\tactor: payload.actor ?? undefined,\n\t});\n}\n\nexport function isRivetErrorCode(\n\terror: unknown,\n\tgroup: string,\n\tcode: string,\n): error is RivetError {\n\treturn (\n\t\tisRivetErrorLike(error) && error.group === group && error.code === code\n\t);\n}\n\nexport function internalError(\n\tmessage: string,\n\toptions?: Partial<RivetErrorOptions> & {\n\t\tgroup?: string;\n\t\tcode?: string;\n\t},\n): RivetError {\n\treturn new RivetError(\n\t\toptions?.group ?? \"actor\",\n\t\toptions?.code ?? INTERNAL_ERROR_CODE,\n\t\tmessage,\n\t\t{\n\t\t\tpublic: options?.public,\n\t\t\tstatusCode: options?.statusCode,\n\t\t\tmetadata: options?.metadata,\n\t\t\tactor: options?.actor,\n\t\t\tcause: options?.cause,\n\t\t},\n\t);\n}\n\nexport function invalidEncoding(format?: string): RivetError {\n\treturn new RivetError(\n\t\t\"encoding\",\n\t\t\"invalid\",\n\t\t`Invalid encoding \\`${format}\\`. (https://www.rivet.dev/docs/clients/javascript)`,\n\t\t{\n\t\t\tpublic: true,\n\t\t},\n\t);\n}\n\nexport function invalidRequest(error?: unknown): RivetError {\n\treturn new RivetError(\n\t\t\"request\",\n\t\t\"invalid\",\n\t\t`Invalid request: ${errorMessage(error, String(error))}`,\n\t\t{\n\t\t\tpublic: true,\n\t\t\tcause: error instanceof Error ? error : undefined,\n\t\t},\n\t);\n}\n\nexport function actorNotFound(identifier?: string): RivetError {\n\treturn new RivetError(\n\t\t\"actor\",\n\t\t\"not_found\",\n\t\tidentifier\n\t\t\t? `Actor not found: ${identifier} (https://www.rivet.dev/docs/clients/javascript)`\n\t\t\t: \"Actor not found (https://www.rivet.dev/docs/clients/javascript)\",\n\t\t{ public: true },\n\t);\n}\n\nexport function actorStopping(identifier?: string): RivetError {\n\treturn new RivetError(\n\t\t\"actor\",\n\t\t\"stopping\",\n\t\tidentifier ? `Actor stopping: ${identifier}` : \"Actor stopping\",\n\t\t{ public: true },\n\t);\n}\n\nexport interface ActorRestartingOptions {\n\tphase?: \"stopping\" | \"sleeping\" | \"waking\" | \"runner_shutdown\";\n\tretryAfterMs?: number;\n}\n\nexport function actorRestarting(opts?: ActorRestartingOptions): RivetError {\n\treturn new RivetError(\n\t\t\"actor\",\n\t\t\"restarting\",\n\t\t\"Actor is restarting. Retry the request.\",\n\t\t{\n\t\t\tpublic: true,\n\t\t\tstatusCode: 503,\n\t\t\tmetadata: {\n\t\t\t\tretryable: true,\n\t\t\t\t...(opts?.phase ? { phase: opts.phase } : {}),\n\t\t\t\t...(opts?.retryAfterMs !== undefined\n\t\t\t\t\t? { retryAfterMs: opts.retryAfterMs }\n\t\t\t\t\t: {}),\n\t\t\t},\n\t\t},\n\t);\n}\n\nexport function forbiddenError(): RivetError {\n\treturn new RivetError(\"auth\", \"forbidden\", \"Forbidden\", {\n\t\tpublic: true,\n\t\tstatusCode: 403,\n\t});\n}\n\nexport function unsupportedFeature(feature: string): RivetError {\n\treturn new RivetError(\n\t\t\"feature\",\n\t\t\"unsupported\",\n\t\t`Unsupported feature: ${feature}`,\n\t);\n}\n"]}
@@ -2,11 +2,11 @@ import {
2
2
  ClientConfigSchema,
3
3
  RemoteEngineControlClient,
4
4
  createClientWithDriver
5
- } from "./chunk-FLODVLYW.js";
5
+ } from "./chunk-VJ4Y4WBT.js";
6
6
  import {
7
7
  VERSION,
8
8
  getLogger
9
- } from "./chunk-6S25NVAP.js";
9
+ } from "./chunk-HERL2VQ2.js";
10
10
 
11
11
  // src/devtools-loader/log.ts
12
12
  function logger() {
@@ -46,4 +46,4 @@ function createClient(endpointOrConfig) {
46
46
  export {
47
47
  createClient
48
48
  };
49
- //# sourceMappingURL=chunk-EMO6E3PJ.js.map
49
+ //# sourceMappingURL=chunk-CMV6N5OX.js.map
@@ -4,6 +4,7 @@ var DEFAULT_SLEEP_GRACE_PERIOD = 15e3;
4
4
  var ACTOR_CONTEXT_INTERNAL_SYMBOL = /* @__PURE__ */ Symbol(
5
5
  "rivetkit.actor_context_internal"
6
6
  );
7
+ var RAW_STATE_SYMBOL = /* @__PURE__ */ Symbol("rivetkit.raw_state");
7
8
  var CONN_STATE_MANAGER_SYMBOL = /* @__PURE__ */ Symbol("rivetkit.conn_state_manager");
8
9
  var zFunction = () => z.custom((val) => typeof val === "function");
9
10
  var WorkflowInspectorConfigSchema = z.object({
@@ -268,6 +269,7 @@ var DocActorConfigSchema = z.object({
268
269
 
269
270
  export {
270
271
  ACTOR_CONTEXT_INTERNAL_SYMBOL,
272
+ RAW_STATE_SYMBOL,
271
273
  CONN_STATE_MANAGER_SYMBOL,
272
274
  RUN_FUNCTION_CONFIG_SYMBOL,
273
275
  getRunFunction,
@@ -275,4 +277,4 @@ export {
275
277
  getRunInspectorConfig,
276
278
  ActorConfigSchema
277
279
  };
278
- //# sourceMappingURL=chunk-T6YVRM4K.js.map
280
+ //# sourceMappingURL=chunk-D5G75T7J.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/actor/config.ts"],"sourcesContent":["import { z } from \"zod/v4\";\nimport type { UniversalWebSocket } from \"@/common/websocket-interface\";\nimport type {\n\tAnyDatabaseProvider,\n\tInferDatabaseClient,\n\tRawDatabaseClient,\n\tDrizzleDatabaseClient,\n\tNativeDatabaseProvider,\n} from \"@/common/database/config\";\nimport type { Client } from \"@/client/client\";\nimport type { Registry } from \"@/registry\";\nimport type { BaseActorDefinition } from \"./definition\";\nimport type {\n\tEventSchemaConfig,\n\tPrimitiveSchema,\n\tQueueSchemaConfig,\n} from \"./schema\";\nimport type {\n\tInferEventArgs,\n\tInferQueueCompleteMap,\n\tInferSchemaMap,\n} from \"./schema\";\n\nexport const DEFAULT_SLEEP_GRACE_PERIOD = 15_000;\n\nexport const ACTOR_CONTEXT_INTERNAL_SYMBOL = Symbol(\n\t\"rivetkit.actor_context_internal\",\n);\nexport const RAW_STATE_SYMBOL = Symbol(\"rivetkit.raw_state\");\nexport const CONN_DRIVER_SYMBOL = Symbol(\"rivetkit.conn_driver\");\nexport const CONN_STATE_MANAGER_SYMBOL = Symbol(\"rivetkit.conn_state_manager\");\n\nexport interface ActorLogger {\n\tlevel: any;\n\tfatal: any;\n\ttrace: any;\n\tsilent: any;\n\tmsgPrefix: any;\n\tdebug: any;\n\tinfo: any;\n\twarn: any;\n\terror: any;\n\t[key: string]: any;\n}\n\ntype ActorKvValueType = \"text\" | \"arrayBuffer\" | \"binary\";\ntype ActorKvKeyType = \"text\" | \"binary\";\ntype ActorKvValueTypeMap = {\n\ttext: string;\n\tarrayBuffer: ArrayBuffer;\n\tbinary: Uint8Array;\n};\ntype ActorKvKeyTypeMap = {\n\ttext: string;\n\tbinary: Uint8Array;\n};\ntype ActorKvValueOptions<T extends ActorKvValueType = \"text\"> = {\n\ttype?: T;\n};\ntype ActorKvListOptions<\n\tT extends ActorKvValueType = \"text\",\n\tK extends ActorKvKeyType = \"text\",\n> = ActorKvValueOptions<T> & {\n\tkeyType?: K;\n\treverse?: boolean;\n\tlimit?: number;\n};\n\ntype ActorClientFor<T> = T extends Registry<any> ? Client<T> : T;\n\nexport interface ActorKv {\n\tget<T extends ActorKvValueType = \"text\">(\n\t\tkey: Uint8Array | string,\n\t\toptions?: ActorKvValueOptions<T>,\n\t): Promise<ActorKvValueTypeMap[T] | null>;\n\tput<T extends ActorKvValueType = \"text\">(\n\t\tkey: Uint8Array | string,\n\t\tvalue: Uint8Array | string | ArrayBuffer,\n\t\toptions?: ActorKvValueOptions<T>,\n\t): Promise<void>;\n\tdelete(key: Uint8Array | string): Promise<void>;\n\tbatchPut(entries: [Uint8Array, Uint8Array][]): Promise<void>;\n\tbatchGet(keys: Uint8Array[]): Promise<(Uint8Array | null)[]>;\n\tbatchDelete(keys: Uint8Array[]): Promise<void>;\n\tdeleteRange(start: Uint8Array, end: Uint8Array): Promise<void>;\n\tlistPrefix<\n\t\tT extends ActorKvValueType = \"text\",\n\t\tK extends ActorKvKeyType = \"text\",\n\t>(\n\t\tprefix: Uint8Array | string,\n\t\toptions?: ActorKvListOptions<T, K>,\n\t): Promise<Array<[ActorKvKeyTypeMap[K], ActorKvValueTypeMap[T]]>>;\n\tlistRange<\n\t\tT extends ActorKvValueType = \"text\",\n\t\tK extends ActorKvKeyType = \"text\",\n\t>(\n\t\tstart: Uint8Array | string,\n\t\tend: Uint8Array | string,\n\t\toptions?: ActorKvListOptions<T, K>,\n\t): Promise<Array<[ActorKvKeyTypeMap[K], ActorKvValueTypeMap[T]]>>;\n\tlist<T extends ActorKvValueType = \"text\", K extends ActorKvKeyType = \"text\">(\n\t\tprefix: Uint8Array | string,\n\t\toptions?: ActorKvListOptions<T, K>,\n\t): Promise<Array<[ActorKvKeyTypeMap[K], ActorKvValueTypeMap[T]]>>;\n\t[key: string]: any;\n}\n\nexport interface ActorSchedule {\n\tafter(duration: number, action: string, ...args: unknown[]): Promise<void>;\n\tat(timestamp: number, action: string, ...args: unknown[]): Promise<void>;\n\t[key: string]: any;\n}\n\nexport type QueueMessageOf<Name extends string, Body> = {\n\tid: number | bigint;\n\tname: Name;\n\tbody: Body;\n\tcreatedAt: number;\n\t[key: string]: unknown;\n};\n\nexport type QueueName<TQueues extends QueueSchemaConfig> = keyof TQueues & string;\nexport type QueueFilterName<TQueues extends QueueSchemaConfig> =\n\tkeyof TQueues extends never ? string : QueueName<TQueues>;\n\ntype QueueMessageForName<\n\tTQueues extends QueueSchemaConfig,\n\tTName extends QueueFilterName<TQueues>,\n> = keyof TQueues extends never\n\t? QueueMessageOf<string, unknown>\n\t: TName extends QueueName<TQueues>\n\t\t? QueueMessageOf<TName, InferSchemaMap<TQueues>[TName]>\n\t\t: never;\n\ntype QueueCompleteArgs<T> = undefined extends T\n\t? [response?: T]\n\t: [response: T];\n\ntype QueueCompleteArgsForName<\n\tTQueues extends QueueSchemaConfig,\n\tTName extends QueueFilterName<TQueues>,\n> = keyof TQueues extends never\n\t? [response?: unknown]\n\t: TName extends QueueName<TQueues>\n\t\t? [InferQueueCompleteMap<TQueues>[TName]] extends [never]\n\t\t\t? [response?: unknown]\n\t\t\t: QueueCompleteArgs<InferQueueCompleteMap<TQueues>[TName]>\n\t\t: [response?: unknown];\n\ntype QueueCompletableMessageForName<\n\tTQueues extends QueueSchemaConfig,\n\tTName extends QueueFilterName<TQueues>,\n> = QueueMessageForName<TQueues, TName> & {\n\tcomplete(...args: QueueCompleteArgsForName<TQueues, TName>): Promise<void>;\n};\n\ntype QueueCompletionResultForName<\n\tTQueues extends QueueSchemaConfig,\n\tTName extends QueueFilterName<TQueues>,\n> = keyof TQueues extends never\n\t? unknown | undefined\n\t: TName extends QueueName<TQueues>\n\t\t? InferQueueCompleteMap<TQueues>[TName] | undefined\n\t\t: unknown | undefined;\n\nexport type QueueResultMessageForName<\n\tTQueues extends QueueSchemaConfig,\n\tTName extends QueueFilterName<TQueues>,\n\tTCompletable extends boolean,\n> = TCompletable extends true\n\t? QueueCompletableMessageForName<TQueues, TName>\n\t: QueueMessageForName<TQueues, TName>;\n\nexport interface QueueNextOptions<\n\tTName extends string = string,\n\tTCompletable extends boolean = boolean,\n> {\n\tnames?: readonly TName[];\n\ttimeout?: number;\n\tsignal?: AbortSignal;\n\tcompletable?: TCompletable;\n}\n\nexport interface QueueNextBatchOptions<\n\tTName extends string = string,\n\tTCompletable extends boolean = boolean,\n> {\n\tnames?: readonly TName[];\n\tcount?: number;\n\ttimeout?: number;\n\tsignal?: AbortSignal;\n\tcompletable?: TCompletable;\n}\n\nexport interface QueueWaitOptions<TCompletable extends boolean = boolean> {\n\ttimeout?: number;\n\tsignal?: AbortSignal;\n\tcompletable?: TCompletable;\n}\n\nexport interface QueueEnqueueAndWaitOptions {\n\ttimeout?: number;\n\tsignal?: AbortSignal;\n}\n\nexport interface QueueTryNextOptions<\n\tTName extends string = string,\n\tTCompletable extends boolean = boolean,\n> {\n\tnames?: readonly TName[];\n\tcompletable?: TCompletable;\n}\n\nexport interface QueueTryNextBatchOptions<\n\tTName extends string = string,\n\tTCompletable extends boolean = boolean,\n> {\n\tnames?: readonly TName[];\n\tcount?: number;\n\tcompletable?: TCompletable;\n}\n\nexport interface QueueIterOptions<\n\tTName extends string = string,\n\tTCompletable extends boolean = boolean,\n> {\n\tnames?: readonly TName[];\n\tsignal?: AbortSignal;\n\tcompletable?: TCompletable;\n}\n\nexport interface ActorQueue<TQueues extends QueueSchemaConfig = Record<never, never>> {\n\tsend<TName extends QueueFilterName<TQueues>>(\n\t\tname: TName,\n\t\tbody: QueueMessageForName<TQueues, TName>[\"body\"],\n\t): Promise<any>;\n\tnext<\n\t\tconst TName extends QueueFilterName<TQueues>,\n\t\tconst TCompletable extends boolean = false,\n\t>(\n\t\topts?: QueueNextOptions<TName, TCompletable>,\n\t): Promise<any>;\n\tnextBatch<\n\t\tconst TName extends QueueFilterName<TQueues>,\n\t\tconst TCompletable extends boolean = false,\n\t>(\n\t\topts?: QueueNextBatchOptions<TName, TCompletable>,\n\t): Promise<any[]>;\n\twaitForNames<\n\t\tconst TName extends QueueFilterName<TQueues>,\n\t\tconst TCompletable extends boolean = false,\n\t>(\n\t\tnames: readonly TName[],\n\t\topts?: QueueWaitOptions<TCompletable>,\n\t): Promise<any>;\n\tenqueueAndWait<const TName extends QueueFilterName<TQueues>>(\n\t\tname: TName,\n\t\tbody: QueueMessageForName<TQueues, TName>[\"body\"],\n\t\topts?: QueueEnqueueAndWaitOptions,\n\t): Promise<QueueCompletionResultForName<TQueues, TName>>;\n\ttryNext<\n\t\tconst TName extends QueueFilterName<TQueues>,\n\t\tconst TCompletable extends boolean = false,\n\t>(\n\t\topts?: QueueTryNextOptions<TName, TCompletable>,\n\t): Promise<any>;\n\ttryNextBatch<\n\t\tconst TName extends QueueFilterName<TQueues>,\n\t\tconst TCompletable extends boolean = false,\n\t>(\n\t\topts?: QueueTryNextBatchOptions<TName, TCompletable>,\n\t): Promise<any[]>;\n\titer<\n\t\tconst TName extends QueueFilterName<TQueues>,\n\t\tconst TCompletable extends boolean = false,\n\t>(\n\t\topts?: QueueIterOptions<TName, TCompletable>,\n\t): AsyncIterable<any>;\n\t[key: string]: any;\n}\n\nexport interface Conn<\n\tTState = unknown,\n\tTConnParams = unknown,\n\tTConnState = unknown,\n\tTVars = unknown,\n\tTInput = unknown,\n\tTDatabase extends AnyDatabaseProvider = AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig = Record<never, never>,\n\tTQueues extends QueueSchemaConfig = Record<never, never>,\n> {\n\tid: string;\n\tparams: TConnParams;\n\tstate: TConnState;\n\tisHibernatable: boolean;\n\tsend(name: string, ...args: any[]): void;\n\tdisconnect(reason?: string): Promise<void>;\n\t[key: string]: any;\n}\n\nexport type AnyConn = Conn<any, any, any, any, any, any, any, any>;\n\nexport interface ActorContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig = Record<never, never>,\n\tTQueues extends QueueSchemaConfig = Record<never, never>,\n> {\n\t[ACTOR_CONTEXT_INTERNAL_SYMBOL]?: unknown;\n\t/** Returns the raw unwrapped state without the write-through proxy. */\n\t[RAW_STATE_SYMBOL](): TState;\n\tstate: TState;\n\tvars: TVars;\n\treadonly kv: ActorKv;\n\treadonly db: InferDatabaseClient<TDatabase>;\n\treadonly schedule: ActorSchedule;\n\treadonly queue: ActorQueue<TQueues>;\n\treadonly actorId: string;\n\treadonly name: string;\n\treadonly key: string[];\n\treadonly region: string;\n\treadonly conns: Map<string, Conn<TState, TConnParams, TConnState, TVars, TInput, TDatabase, TEvents, TQueues>>;\n\treadonly log: ActorLogger;\n\treadonly abortSignal: AbortSignal;\n\treadonly aborted: boolean;\n\treadonly request?: Request;\n\t/** @deprecated No-op. Always returns `false`. Use `keepAwake(promise)` or `waitUntil(promise)` instead. Will be removed in 2.2.0. */\n\treadonly preventSleep: boolean;\n\tbroadcast(name: string, ...args: any[]): void;\n\tsaveState(opts?: { immediate?: boolean; maxWait?: number }): Promise<void>;\n\tkeepAwake<T>(promise: Promise<T>): Promise<T>;\n\twaitUntil(promise: Promise<unknown>): void;\n\t/** @deprecated No-op. Use `keepAwake(promise)` to hold the actor awake for a specific promise. Will be removed in 2.2.0. */\n\tsetPreventSleep(preventSleep: boolean): void;\n\tsleep(): void;\n\tdestroy(): void;\n\tclient<T = any>(): ActorClientFor<T>;\n\t[key: string]: any;\n}\n\nexport type ActionContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig = Record<never, never>,\n\tTQueues extends QueueSchemaConfig = Record<never, never>,\n> = ActorContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase,\n\tTEvents,\n\tTQueues\n> & {\n\tconn: Conn<\n\t\tTState,\n\t\tTConnParams,\n\t\tTConnState,\n\t\tTVars,\n\t\tTInput,\n\t\tTDatabase,\n\t\tTEvents,\n\t\tTQueues\n\t>;\n};\n\nexport type BeforeActionResponseContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig = Record<never, never>,\n\tTQueues extends QueueSchemaConfig = Record<never, never>,\n> = ActionContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase,\n\tTEvents,\n\tTQueues\n>;\n\nexport type BeforeConnectContext<\n\tTState,\n\tTVars,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig = Record<never, never>,\n\tTQueues extends QueueSchemaConfig = Record<never, never>,\n> = ActorContext<\n\tTState,\n\tunknown,\n\tunknown,\n\tTVars,\n\tTInput,\n\tTDatabase,\n\tTEvents,\n\tTQueues\n>;\n\nexport type ConnectContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig = Record<never, never>,\n\tTQueues extends QueueSchemaConfig = Record<never, never>,\n> = ActionContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase,\n\tTEvents,\n\tTQueues\n>;\n\nexport type CreateConnStateContext<\n\tTState,\n\tTVars,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig = Record<never, never>,\n\tTQueues extends QueueSchemaConfig = Record<never, never>,\n> = ActorContext<\n\tTState,\n\tunknown,\n\tunknown,\n\tTVars,\n\tTInput,\n\tTDatabase,\n\tTEvents,\n\tTQueues\n>;\n\nexport type CreateContext<\n\tTState,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig = Record<never, never>,\n\tTQueues extends QueueSchemaConfig = Record<never, never>,\n> = ActorContext<\n\tTState,\n\tunknown,\n\tunknown,\n\tunknown,\n\tTInput,\n\tTDatabase,\n\tTEvents,\n\tTQueues\n>;\n\nexport type CreateVarsContext<\n\tTState,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig = Record<never, never>,\n\tTQueues extends QueueSchemaConfig = Record<never, never>,\n> = CreateContext<TState, TInput, TDatabase, TEvents, TQueues>;\n\nexport type DestroyContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig = Record<never, never>,\n\tTQueues extends QueueSchemaConfig = Record<never, never>,\n> = ActorContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase,\n\tTEvents,\n\tTQueues\n>;\n\nexport type DisconnectContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig = Record<never, never>,\n\tTQueues extends QueueSchemaConfig = Record<never, never>,\n> = ActionContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase,\n\tTEvents,\n\tTQueues\n>;\n\nexport type RequestContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig = Record<never, never>,\n\tTQueues extends QueueSchemaConfig = Record<never, never>,\n> = ActionContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase,\n\tTEvents,\n\tTQueues\n>;\n\nexport type RunContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig = Record<never, never>,\n\tTQueues extends QueueSchemaConfig = Record<never, never>,\n> = ActorContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase,\n\tTEvents,\n\tTQueues\n>;\n\nexport type SleepContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig = Record<never, never>,\n\tTQueues extends QueueSchemaConfig = Record<never, never>,\n> = RunContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase,\n\tTEvents,\n\tTQueues\n>;\n\nexport type StateChangeContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig = Record<never, never>,\n\tTQueues extends QueueSchemaConfig = Record<never, never>,\n> = RunContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase,\n\tTEvents,\n\tTQueues\n>;\n\nexport type WakeContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig = Record<never, never>,\n\tTQueues extends QueueSchemaConfig = Record<never, never>,\n> = RunContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase,\n\tTEvents,\n\tTQueues\n>;\n\nexport type MigrateContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig = Record<never, never>,\n\tTQueues extends QueueSchemaConfig = Record<never, never>,\n> = WakeContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase,\n\tTEvents,\n\tTQueues\n>;\n\nexport type WebSocketContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig = Record<never, never>,\n\tTQueues extends QueueSchemaConfig = Record<never, never>,\n> = ActionContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase,\n\tTEvents,\n\tTQueues\n>;\n\nexport type ActorContextOf<AD extends BaseActorDefinition<any, any, any, any, any, any, any, any, any>> =\n\tAD extends BaseActorDefinition<\n\t\tinfer TState,\n\t\tinfer TConnParams,\n\t\tinfer TConnState,\n\t\tinfer TVars,\n\t\tinfer TInput,\n\t\tinfer TDatabase,\n\t\tinfer TEvents,\n\t\tinfer TQueues,\n\t\tany\n\t>\n\t\t? ActorContext<\n\t\t\t\tTState,\n\t\t\t\tTConnParams,\n\t\t\t\tTConnState,\n\t\t\t\tTVars,\n\t\t\t\tTInput,\n\t\t\t\tTDatabase,\n\t\t\t\tTEvents,\n\t\t\t\tTQueues\n\t\t\t>\n\t\t: never;\n\nexport interface ActorTypes<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n> {\n\tstate?: TState;\n\tconnParams?: TConnParams;\n\tconnState?: TConnState;\n\tvars?: TVars;\n\tinput?: TInput;\n\tdatabase?: TDatabase;\n}\n\n// Helper for validating function types - accepts generic for specific function signatures\nconst zFunction = <\n\tT extends (...args: any[]) => any = (...args: unknown[]) => unknown,\n>() => z.custom<T>((val) => typeof val === \"function\");\n\nexport type InspectorUnsubscribe = () => void;\n\nexport interface WorkflowInspectorConfig<THistory = unknown> {\n\tgetHistory: () => THistory | null;\n\tonHistoryUpdated?: (\n\t\tlistener: (history: THistory) => void,\n\t) => InspectorUnsubscribe;\n\treplayFromStep?: (entryId?: string) => Promise<THistory | null>;\n}\n\nexport interface RunInspectorConfig<THistory = unknown> {\n\tworkflow?: WorkflowInspectorConfig<THistory>;\n}\n\nconst WorkflowInspectorConfigSchema = z.object({\n\tgetHistory: zFunction<WorkflowInspectorConfig<unknown>[\"getHistory\"]>(),\n\tonHistoryUpdated:\n\t\tzFunction<\n\t\t\tNonNullable<WorkflowInspectorConfig<unknown>[\"onHistoryUpdated\"]>\n\t\t>().optional(),\n\treplayFromStep:\n\t\tzFunction<\n\t\t\tNonNullable<WorkflowInspectorConfig<unknown>[\"replayFromStep\"]>\n\t\t>().optional(),\n});\n\nconst RunInspectorConfigSchema = z\n\t.object({\n\t\tworkflow: WorkflowInspectorConfigSchema.optional(),\n\t})\n\t.optional();\n\n// Schema for run handler with metadata\nexport const RunConfigSchema = z.object({\n\t/** Display name for the actor in the Inspector UI. */\n\tname: z.string().optional(),\n\t/** Icon for the actor in the Inspector UI. Can be an emoji or FontAwesome icon name. */\n\ticon: z.string().optional(),\n\t/** The run handler function. */\n\trun: zFunction(),\n\t/** Inspector integration for long-running run handlers. */\n\tinspector: RunInspectorConfigSchema.optional(),\n});\ntype RunConfigRuntime = z.infer<typeof RunConfigSchema>;\nexport type RunConfig<\n\tTState = unknown,\n\tTConnParams = unknown,\n\tTConnState = unknown,\n\tTVars = unknown,\n\tTInput = unknown,\n\tTDatabase extends AnyDatabaseProvider = AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig = Record<never, never>,\n\tTQueues extends QueueSchemaConfig = Record<never, never>,\n> = Omit<RunConfigRuntime, \"run\"> & {\n\trun: (\n\t\tc: RunContext<\n\t\t\tTState,\n\t\t\tTConnParams,\n\t\t\tTConnState,\n\t\t\tTVars,\n\t\t\tTInput,\n\t\t\tTDatabase,\n\t\t\tTEvents,\n\t\t\tTQueues\n\t\t>,\n\t) => void | Promise<void>;\n};\n\ntype AnyRunConfig = RunConfig<\n\tany,\n\tany,\n\tany,\n\tany,\n\tany,\n\tAnyDatabaseProvider,\n\tany,\n\tany\n>;\n\nexport const RUN_FUNCTION_CONFIG_SYMBOL = Symbol.for(\n\t\"rivetkit.run_function_config\",\n);\n\ninterface RunFunctionConfig {\n\tname?: string;\n\ticon?: string;\n\tinspector?: RunInspectorConfig;\n\tinspectorFactory?: (actor: unknown) => RunInspectorConfig | undefined;\n}\n\ntype RunFunctionWithConfig = ((...args: any[]) => any) & {\n\t[RUN_FUNCTION_CONFIG_SYMBOL]?: RunFunctionConfig;\n};\n\n// Run can be either a function or an object with name/icon/run\nconst zRunHandler = z.union([zFunction(), RunConfigSchema]).optional();\n\n/** Extract the run function from either a function or RunConfig object. */\nexport function getRunFunction(\n\trun: ((...args: any[]) => any) | AnyRunConfig | undefined,\n): ((...args: any[]) => any) | undefined {\n\tif (!run) return undefined;\n\tif (typeof run === \"function\") return run;\n\treturn run.run;\n}\n\n/** Extract run metadata (name/icon) from RunConfig if provided. */\nexport function getRunMetadata(\n\trun: ((...args: any[]) => any) | AnyRunConfig | undefined,\n): { name?: string; icon?: string } {\n\tif (!run) return {};\n\tif (typeof run === \"function\") {\n\t\tconst config = (run as RunFunctionWithConfig)[\n\t\t\tRUN_FUNCTION_CONFIG_SYMBOL\n\t\t];\n\t\tif (!config) return {};\n\t\treturn { name: config.name, icon: config.icon };\n\t}\n\treturn { name: run.name, icon: run.icon };\n}\n\n/** Extract run inspector configuration if provided. */\nexport function getRunInspectorConfig(\n\trun: ((...args: any[]) => any) | AnyRunConfig | undefined,\n\tactor?: unknown,\n): RunInspectorConfig | undefined {\n\tif (!run) return undefined;\n\tif (typeof run === \"function\") {\n\t\tconst config = (run as RunFunctionWithConfig)[\n\t\t\tRUN_FUNCTION_CONFIG_SYMBOL\n\t\t];\n\t\treturn config?.inspectorFactory\n\t\t\t? config.inspectorFactory(actor)\n\t\t\t: config?.inspector;\n\t}\n\treturn run.inspector;\n}\n\n// This schema is used to validate the input at runtime. The generic types are defined below in `ActorConfig`.\n//\n// We don't use Zod generics with `z.custom` because:\n// (a) there seems to be a weird bug in either Zod, tsup, or TSC that causese external packages to have different types from `z.infer` than from within the same package and\n// (b) it makes the type definitions incredibly difficult to read as opposed to vanilla TypeScript.\nconst GlobalActorOptionsBaseSchema = z\n\t.object({\n\t\t/** Display name for the actor in the Inspector UI. */\n\t\tname: z.string().optional(),\n\t\t/** Icon for the actor in the Inspector UI. Can be an emoji or FontAwesome icon name. */\n\t\ticon: z.string().optional(),\n\t\t/**\n\t\t * Can hibernate WebSockets for onWebSocket.\n\t\t *\n\t\t * WebSockets using actions/events are hibernatable by default.\n\t\t *\n\t\t * @experimental\n\t\t **/\n\t\tcanHibernateWebSocket: z\n\t\t\t.union([z.boolean(), zFunction<(request: Request) => boolean>()])\n\t\t\t.default(false),\n\t})\n\t.strict();\n\nexport const GlobalActorOptionsSchema = GlobalActorOptionsBaseSchema.prefault(\n\t() => ({}),\n);\n\nexport type GlobalActorOptions = z.infer<typeof GlobalActorOptionsSchema>;\nexport type GlobalActorOptionsInput = z.input<typeof GlobalActorOptionsSchema>;\n\nconst InstanceActorOptionsBaseSchema = z\n\t.object({\n\t\tcreateVarsTimeout: z.number().positive().default(5000),\n\t\tcreateConnStateTimeout: z.number().positive().default(5000),\n\t\tonBeforeConnectTimeout: z.number().positive().default(5000),\n\t\tonConnectTimeout: z.number().positive().default(5000),\n\t\tonMigrateTimeout: z.number().positive().default(30_000),\n\t\tsleepGracePeriod: z\n\t\t\t.number()\n\t\t\t.positive()\n\t\t\t.default(DEFAULT_SLEEP_GRACE_PERIOD),\n\t\t/** @deprecated `onDestroyTimeout` is folded into `sleepGracePeriod`, which now bounds the entire graceful shutdown window for both sleep and destroy. Will be removed in 2.2.0. */\n\t\tonDestroyTimeout: z.number().positive().optional(),\n\t\t/** @deprecated `waitUntilTimeout` is folded into `sleepGracePeriod`, which now bounds the entire graceful shutdown window for both sleep and destroy. Will be removed in 2.2.0. */\n\t\twaitUntilTimeout: z.number().positive().optional(),\n\t\tstateSaveInterval: z.number().positive().default(1_000),\n\t\tactionTimeout: z.number().positive().default(60_000),\n\t\tconnectionLivenessTimeout: z.number().positive().default(2500),\n\t\tconnectionLivenessInterval: z.number().positive().default(5000),\n\t\t/** @deprecated Use `c.keepAwake(promise)` to scope keep-awake to a specific operation, or keep `noSleep` for actors that must stay awake indefinitely. Will be removed in 2.2.0. */\n\t\tnoSleep: z.boolean().default(false),\n\t\tsleepTimeout: z.number().positive().default(30_000),\n\t\tmaxQueueSize: z.number().positive().default(1000),\n\t\tmaxQueueMessageSize: z\n\t\t\t.number()\n\t\t\t.positive()\n\t\t\t.default(64 * 1024),\n\t\t/** Override RivetKit's workflow preload budget for this actor. Set to 0 to disable workflow preloading. */\n\t\tpreloadMaxWorkflowBytes: z.number().nonnegative().optional(),\n\t\t/** Override RivetKit's connections preload budget for this actor. Set to 0 to disable connections preloading. */\n\t\tpreloadMaxConnectionsBytes: z.number().nonnegative().optional(),\n\t})\n\t.strict();\n\nexport const InstanceActorOptionsSchema =\n\tInstanceActorOptionsBaseSchema.prefault(() => ({}));\n\nexport type InstanceActorOptions = z.infer<typeof InstanceActorOptionsSchema>;\nexport type InstanceActorOptionsInput = z.input<\n\ttypeof InstanceActorOptionsSchema\n>;\n\nexport const ActorOptionsSchema = GlobalActorOptionsBaseSchema.extend(\n\tInstanceActorOptionsBaseSchema.shape,\n)\n\t.strict()\n\t.prefault(() => ({}));\n\nexport type ActorOptions = z.infer<typeof ActorOptionsSchema>;\nexport type ActorOptionsInput = z.input<typeof ActorOptionsSchema>;\n\nexport const ActorConfigSchema = z\n\t.object({\n\t\tonCreate: zFunction().optional(),\n\t\tonDestroy: zFunction().optional(),\n\t\tonMigrate: zFunction().optional(),\n\t\tonWake: zFunction().optional(),\n\t\tonSleep: zFunction().optional(),\n\t\trun: zRunHandler,\n\t\tonStateChange: zFunction().optional(),\n\t\tonBeforeConnect: zFunction().optional(),\n\t\tonConnect: zFunction().optional(),\n\t\tonDisconnect: zFunction().optional(),\n\t\tonBeforeActionResponse: zFunction().optional(),\n\t\tonRequest: zFunction().optional(),\n\t\tonWebSocket: zFunction().optional(),\n\t\tactions: z.record(z.string(), zFunction()).default(() => ({})),\n\t\tactionInputSchemas: z.record(z.string(), z.any()).optional(),\n\t\tconnParamsSchema: z.any().optional(),\n\t\tevents: z.record(z.string(), z.any()).optional(),\n\t\tqueues: z.record(z.string(), z.any()).optional(),\n\t\tstate: z.any().optional(),\n\t\tcreateState: zFunction().optional(),\n\t\tconnState: z.any().optional(),\n\t\tcreateConnState: zFunction().optional(),\n\t\tvars: z.any().optional(),\n\t\tdb: z.any().optional(),\n\t\tcreateVars: zFunction().optional(),\n\t\toptions: ActorOptionsSchema,\n\t})\n\t.strict()\n\t.refine(\n\t\t(data) => !(data.state !== undefined && data.createState !== undefined),\n\t\t{\n\t\t\tmessage: \"Cannot define both 'state' and 'createState'\",\n\t\t\tpath: [\"state\"],\n\t\t},\n\t)\n\t.refine(\n\t\t(data) =>\n\t\t\t!(\n\t\t\t\tdata.connState !== undefined &&\n\t\t\t\tdata.createConnState !== undefined\n\t\t\t),\n\t\t{\n\t\t\tmessage: \"Cannot define both 'connState' and 'createConnState'\",\n\t\t\tpath: [\"connState\"],\n\t\t},\n\t)\n\t.refine(\n\t\t(data) => !(data.vars !== undefined && data.createVars !== undefined),\n\t\t{\n\t\t\tmessage: \"Cannot define both 'vars' and 'createVars'\",\n\t\t\tpath: [\"vars\"],\n\t\t},\n\t);\n\n// Creates state config\n//\n// This must have only one or the other or else TState will not be able to be inferred\n//\n// Data returned from this handler will be available on `c.state`.\ntype CreateState<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig,\n\tTQueues extends QueueSchemaConfig,\n> =\n\t| { state: TState }\n\t| {\n\t\t\tcreateState: (\n\t\t\t\tc: CreateContext<TState, TInput, TDatabase, TEvents, TQueues>,\n\t\t\t\tinput: TInput,\n\t\t\t) => TState | Promise<TState>;\n\t }\n\t| Record<never, never>;\n\n// Creates connection state config\n//\n// This must have only one or the other or else TState will not be able to be inferred\n//\n// Data returned from this handler will be available on `c.conn.state`.\n// The pending connection is not visible in `c.conns` until this succeeds.\ntype CreateConnState<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig,\n\tTQueues extends QueueSchemaConfig,\n> =\n\t| { connState: TConnState }\n\t| {\n\t\t\tcreateConnState: (\n\t\t\t\tc: CreateConnStateContext<\n\t\t\t\t\tTState,\n\t\t\t\t\tTVars,\n\t\t\t\t\tTInput,\n\t\t\t\t\tTDatabase,\n\t\t\t\t\tTEvents,\n\t\t\t\t\tTQueues\n\t\t\t\t>,\n\t\t\t\tparams: TConnParams,\n\t\t\t) => TConnState | Promise<TConnState>;\n\t }\n\t| Record<never, never>;\n\n// Creates vars config\n//\n// This must have only one or the other or else TState will not be able to be inferred\n/**\n * @experimental\n */\ntype CreateVars<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig,\n\tTQueues extends QueueSchemaConfig,\n> =\n\t| {\n\t\t\t/**\n\t\t\t * @experimental\n\t\t\t */\n\t\t\tvars: TVars;\n\t }\n\t| {\n\t\t\t/**\n\t\t\t * @experimental\n\t\t\t */\n\t\t\tcreateVars: (\n\t\t\t\tc: CreateVarsContext<\n\t\t\t\t\tTState,\n\t\t\t\t\tTInput,\n\t\t\t\t\tTDatabase,\n\t\t\t\t\tTEvents,\n\t\t\t\t\tTQueues\n\t\t\t\t>,\n\t\t\t\tdriverCtx: any,\n\t\t\t) => TVars | Promise<TVars>;\n\t }\n\t| Record<never, never>;\n\nexport interface Actions<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig = Record<never, never>,\n\tTQueues extends QueueSchemaConfig = Record<never, never>,\n> {\n\t[Action: string]: (\n\t\tc: ActionContext<\n\t\t\tTState,\n\t\t\tTConnParams,\n\t\t\tTConnState,\n\t\t\tTVars,\n\t\t\tTInput,\n\t\t\tTDatabase,\n\t\t\tTEvents,\n\t\t\tTQueues\n\t\t>,\n\t\t...args: any[]\n\t) => any;\n}\n\n//export type ActorConfig<TState, TConnParams, TConnState, TVars, TInput, TAuthData> = BaseActorConfig<TState, TConnParams, TConnState, TVars, TInput, TAuthData> &\n//\tActorConfigLifecycle<TState, TConnParams, TConnState, TVars, TInput, TAuthData> &\n//\tCreateState<TState, TConnParams, TConnState, TVars, TInput, TAuthData> &\n//\tCreateConnState<TState, TConnParams, TConnState, TVars, TInput, TAuthData>;\n\n/**\n * @experimental\n */\nexport type AuthIntent = \"get\" | \"create\" | \"connect\" | \"action\" | \"message\";\n\ninterface BaseActorConfig<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig,\n\tTQueues extends QueueSchemaConfig,\n\tTActions extends Actions<\n\t\tTState,\n\t\tTConnParams,\n\t\tTConnState,\n\t\tTVars,\n\t\tTInput,\n\t\tTDatabase,\n\t\tTEvents,\n\t\tTQueues\n\t>,\n> {\n\t/**\n\t * Called when the actor is first initialized.\n\t *\n\t * Use this hook to initialize your actor's state.\n\t * This is called before any other lifecycle hooks.\n\t */\n\tonCreate?: (\n\t\tc: CreateContext<TState, TInput, TDatabase, TEvents, TQueues>,\n\t\tinput: TInput,\n\t) => void | Promise<void>;\n\n\t/**\n\t * Called when the actor is destroyed.\n\t */\n\tonDestroy?: (\n\t\tc: DestroyContext<\n\t\t\tTState,\n\t\t\tTConnParams,\n\t\t\tTConnState,\n\t\t\tTVars,\n\t\t\tTInput,\n\t\t\tTDatabase,\n\t\t\tTEvents,\n\t\t\tTQueues\n\t\t>,\n\t) => void | Promise<void>;\n\n\t/**\n\t * Called on every actor start after persisted state loads and before onWake.\n\t *\n\t * Use this hook for repeatable schema migrations or other startup work that\n\t * must run on both first boot and wake.\n\t */\n\tonMigrate?: (\n\t\tc: MigrateContext<\n\t\t\tTState,\n\t\t\tTConnParams,\n\t\t\tTConnState,\n\t\t\tTVars,\n\t\t\tTInput,\n\t\t\tTDatabase,\n\t\t\tTEvents,\n\t\t\tTQueues\n\t\t>,\n\t\tisNew: boolean,\n\t) => void | Promise<void>;\n\n\t/**\n\t * Called when the actor is started and ready to receive connections and action.\n\t *\n\t * Use this hook to initialize resources needed for the actor's operation\n\t * (timers, external connections, etc.)\n\t *\n\t * @returns Void or a Promise that resolves when startup is complete\n\t */\n\tonWake?: (\n\t\tc: WakeContext<\n\t\t\tTState,\n\t\t\tTConnParams,\n\t\t\tTConnState,\n\t\t\tTVars,\n\t\t\tTInput,\n\t\t\tTDatabase,\n\t\t\tTEvents,\n\t\t\tTQueues\n\t\t>,\n\t) => void | Promise<void>;\n\n\t/**\n\t * Called when the actor is stopping or sleeping.\n\t *\n\t * Use this hook to clean up resources, save state, or perform\n\t * any shutdown operations before the actor sleeps or stops.\n\t *\n\t * Not supported on all platforms.\n\t *\n\t * @returns Void or a Promise that resolves when shutdown is complete\n\t */\n\tonSleep?: (\n\t\tc: SleepContext<\n\t\t\tTState,\n\t\t\tTConnParams,\n\t\t\tTConnState,\n\t\t\tTVars,\n\t\t\tTInput,\n\t\t\tTDatabase,\n\t\t\tTEvents,\n\t\t\tTQueues\n\t\t>,\n\t) => void | Promise<void>;\n\n\t/**\n\t * Called after the actor starts up. Does not block actor startup.\n\t *\n\t * Use this for background tasks like:\n\t * - Reading from queues in a loop\n\t * - Tick loops for periodic work\n\t * - Custom workflow logic\n\t *\n\t * **Important:** The actor may go to sleep at any time during the `run`\n\t * handler. Wrap work that must keep the actor awake with\n\t * `c.keepAwake(promise)` to block idle sleep and shutdown finalize until\n\t * the promise settles, or use `c.waitUntil(promise)` to let the graceful\n\t * shutdown window (`sleepGracePeriod`) cover deferred work.\n\t *\n\t * The handler receives an abort signal via `c.abortSignal` and a\n\t * `c.aborted` alias. Use these to gracefully exit when shutdown starts.\n\t *\n\t * If this handler exits, the actor will follow the normal idle sleep timeout\n\t * once it becomes idle.\n\t * If this handler throws, the actor logs the error and then sleeps once it\n\t * becomes idle.\n\t * Call `c.destroy()` explicitly if a run handler should destroy the actor.\n\t *\n\t * Can be either a function or a RunConfig object with optional name/icon metadata.\n\t *\n\t * @returns Void or a Promise.\n\t */\n\trun?:\n\t\t| ((\n\t\t\t\tc: RunContext<\n\t\t\t\t\tTState,\n\t\t\t\t\tTConnParams,\n\t\t\t\t\tTConnState,\n\t\t\t\t\tTVars,\n\t\t\t\t\tTInput,\n\t\t\t\t\tTDatabase,\n\t\t\t\t\tTEvents,\n\t\t\t\t\tTQueues\n\t\t\t\t>,\n\t\t ) => void | Promise<void>)\n\t\t| RunConfig<\n\t\t\t\tTState,\n\t\t\t\tTConnParams,\n\t\t\t\tTConnState,\n\t\t\t\tTVars,\n\t\t\t\tTInput,\n\t\t\t\tTDatabase,\n\t\t\t\tTEvents,\n\t\t\t\tTQueues\n\t\t >;\n\n\t/**\n\t * Called when the actor's state changes.\n\t *\n\t * Use this hook to react to state changes, such as updating\n\t * external systems or triggering events.\n\t *\n\t * State changes made within this hook will NOT trigger\n\t * another onStateChange call, preventing infinite recursion.\n\t *\n\t * @param newState The updated state\n\t */\n\tonStateChange?: (\n\t\tc: StateChangeContext<\n\t\t\tTState,\n\t\t\tTConnParams,\n\t\t\tTConnState,\n\t\t\tTVars,\n\t\t\tTInput,\n\t\t\tTDatabase,\n\t\t\tTEvents,\n\t\t\tTQueues\n\t\t>,\n\t\tnewState: TState,\n\t) => void;\n\n\t/**\n\t * Called before a client connects to the actor.\n\t *\n\t * Use this hook to determine if a connection should be accepted\n\t * and to validate client-provided parameters. The pending connection\n\t * is not visible in `c.conns` while this hook runs.\n\t *\n\t * @param opts Connection parameters including client-provided data\n\t * @returns Void or a Promise.\n\t * @throws Throw an error to reject the connection\n\t */\n\tonBeforeConnect?: (\n\t\tc: BeforeConnectContext<\n\t\t\tTState,\n\t\t\tTVars,\n\t\t\tTInput,\n\t\t\tTDatabase,\n\t\t\tTEvents,\n\t\t\tTQueues\n\t\t>,\n\t\tparams: TConnParams,\n\t) => void | Promise<void>;\n\n\t/**\n\t * Called when a client successfully connects to the actor.\n\t *\n\t * Use this hook to perform actions when a connection is established,\n\t * such as sending initial data or updating the actor's state. The\n\t * connection is visible in `c.conns` before this hook runs.\n\t *\n\t * @param conn The connection object\n\t * @returns Void or a Promise that resolves when connection handling is complete\n\t */\n\tonConnect?: (\n\t\tc: ConnectContext<\n\t\t\tTState,\n\t\t\tTConnParams,\n\t\t\tTConnState,\n\t\t\tTVars,\n\t\t\tTInput,\n\t\t\tTDatabase,\n\t\t\tTEvents,\n\t\t\tTQueues\n\t\t>,\n\t\tconn: Conn<\n\t\t\tTState,\n\t\t\tTConnParams,\n\t\t\tTConnState,\n\t\t\tTVars,\n\t\t\tTInput,\n\t\t\tTDatabase,\n\t\t\tTEvents,\n\t\t\tTQueues\n\t\t>,\n\t) => void | Promise<void>;\n\n\t/**\n\t * Called when a client disconnects from the actor.\n\t *\n\t * Use this hook to clean up resources associated with the connection\n\t * or update the actor's state.\n\t *\n\t * @param conn The connection that is being closed\n\t * @returns Void or a Promise that resolves when disconnect handling is complete\n\t */\n\tonDisconnect?: (\n\t\tc: DisconnectContext<\n\t\t\tTState,\n\t\t\tTConnParams,\n\t\t\tTConnState,\n\t\t\tTVars,\n\t\t\tTInput,\n\t\t\tTDatabase,\n\t\t\tTEvents,\n\t\t\tTQueues\n\t\t>,\n\t\tconn: Conn<\n\t\t\tTState,\n\t\t\tTConnParams,\n\t\t\tTConnState,\n\t\t\tTVars,\n\t\t\tTInput,\n\t\t\tTDatabase,\n\t\t\tTEvents,\n\t\t\tTQueues\n\t\t>,\n\t) => void | Promise<void>;\n\n\t/**\n\t * Called before sending an action response to the client.\n\t *\n\t * Use this hook to modify or transform the output of an action before it's sent\n\t * to the client. This is useful for formatting responses, adding metadata,\n\t * or applying transformations to the output.\n\t *\n\t * @param name The name of the action that was called\n\t * @param args The arguments that were passed to the action\n\t * @param output The output that will be sent to the client\n\t * @returns The modified output to send to the client\n\t */\n\tonBeforeActionResponse?: <Out>(\n\t\tc: BeforeActionResponseContext<\n\t\t\tTState,\n\t\t\tTConnParams,\n\t\t\tTConnState,\n\t\t\tTVars,\n\t\t\tTInput,\n\t\t\tTDatabase,\n\t\t\tTEvents,\n\t\t\tTQueues\n\t\t>,\n\t\tname: string,\n\t\targs: unknown[],\n\t\toutput: Out,\n\t) => Out | Promise<Out>;\n\n\t/**\n\t * Called when a raw HTTP request is made to the actor.\n\t *\n\t * This handler receives raw HTTP requests made to `/actors/{actorName}/http/*` endpoints.\n\t * Use this hook to handle custom HTTP patterns, REST APIs, or other HTTP-based protocols.\n\t *\n\t * @param c The request context with access to the connection\n\t * @param request The raw HTTP request object\n\t * @param opts Additional options\n\t * @returns A Response object to send back, or void to continue with default routing\n\t */\n\tonRequest?: (\n\t\tc: RequestContext<\n\t\t\tTState,\n\t\t\tTConnParams,\n\t\t\tTConnState,\n\t\t\tTVars,\n\t\t\tTInput,\n\t\t\tTDatabase,\n\t\t\tTEvents,\n\t\t\tTQueues\n\t\t>,\n\t\trequest: Request,\n\t) => Response | Promise<Response>;\n\n\t/**\n\t * Called when a raw WebSocket connection is established to the actor.\n\t *\n\t * This handler receives WebSocket connections made to `/actors/{actorName}/websocket/*` endpoints.\n\t * Use this hook to handle custom WebSocket protocols, binary streams, or other WebSocket-based communication.\n\t *\n\t * @param c The WebSocket context with access to the connection\n\t * @param websocket The actor-facing raw WebSocket connection\n\t * @param opts Additional options including the original HTTP upgrade request\n\t */\n\tonWebSocket?: (\n\t\tc: WebSocketContext<\n\t\t\tTState,\n\t\t\tTConnParams,\n\t\t\tTConnState,\n\t\t\tTVars,\n\t\t\tTInput,\n\t\t\tTDatabase,\n\t\t\tTEvents,\n\t\t\tTQueues\n\t\t>,\n\t\twebsocket: UniversalWebSocket,\n\t) => void | Promise<void>;\n\n\tactions?: TActions;\n\n\t/**\n\t * Optional schema map for validating action argument tuples in native runtimes.\n\t */\n\tactionInputSchemas?: Record<string, PrimitiveSchema>;\n\n\t/**\n\t * Optional schema for validating connection params in native runtimes.\n\t */\n\tconnParamsSchema?: PrimitiveSchema;\n\n\t/**\n\t * Schema map for events broadcasted by this actor.\n\t */\n\tevents?: TEvents;\n\n\t/**\n\t * Schema map for queue payloads sent by this actor.\n\t */\n\tqueues?: TQueues;\n}\n\ntype ActorDatabaseConfig<TDatabase extends AnyDatabaseProvider> =\n\t| {\n\t\t\t/**\n\t\t\t * @experimental\n\t\t\t */\n\t\t\tdb: TDatabase;\n\t }\n\t| Record<never, never>;\n\n// 1. Infer schema\n// 2. Omit keys that we'll manually define (because of generics)\n// 3. Define our own types that have generic constraints\nexport type ActorConfig<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig = Record<never, never>,\n\tTQueues extends QueueSchemaConfig = Record<never, never>,\n> = Omit<\n\tz.infer<typeof ActorConfigSchema>,\n\t| \"actions\"\n\t| \"events\"\n\t| \"queues\"\n\t| \"onCreate\"\n\t| \"onDestroy\"\n\t| \"onMigrate\"\n\t| \"onWake\"\n\t| \"onSleep\"\n\t| \"run\"\n\t| \"onStateChange\"\n\t| \"onBeforeConnect\"\n\t| \"onConnect\"\n\t| \"onDisconnect\"\n\t| \"onBeforeActionResponse\"\n\t| \"onRequest\"\n\t| \"onWebSocket\"\n\t| \"state\"\n\t| \"createState\"\n\t| \"connState\"\n\t| \"createConnState\"\n\t| \"vars\"\n\t| \"createVars\"\n\t| \"db\"\n> &\n\tBaseActorConfig<\n\t\tTState,\n\t\tTConnParams,\n\t\tTConnState,\n\t\tTVars,\n\t\tTInput,\n\t\tTDatabase,\n\t\tTEvents,\n\t\tTQueues,\n\t\tActions<\n\t\t\tTState,\n\t\t\tTConnParams,\n\t\t\tTConnState,\n\t\t\tTVars,\n\t\t\tTInput,\n\t\t\tTDatabase,\n\t\t\tTEvents,\n\t\t\tTQueues\n\t\t>\n\t> &\n\tCreateState<\n\t\tTState,\n\t\tTConnParams,\n\t\tTConnState,\n\t\tTVars,\n\t\tTInput,\n\t\tTDatabase,\n\t\tTEvents,\n\t\tTQueues\n\t> &\n\tCreateConnState<\n\t\tTState,\n\t\tTConnParams,\n\t\tTConnState,\n\t\tTVars,\n\t\tTInput,\n\t\tTDatabase,\n\t\tTEvents,\n\t\tTQueues\n\t> &\n\tCreateVars<\n\t\tTState,\n\t\tTConnParams,\n\t\tTConnState,\n\t\tTVars,\n\t\tTInput,\n\t\tTDatabase,\n\t\tTEvents,\n\t\tTQueues\n\t> &\n\tActorDatabaseConfig<TDatabase>;\n\n// See description on `ActorConfig`\nexport type ActorConfigInput<\n\tTState = undefined,\n\tTConnParams = undefined,\n\tTConnState = undefined,\n\tTVars = undefined,\n\tTInput = undefined,\n\tTDatabase extends AnyDatabaseProvider = undefined,\n\tTEvents extends EventSchemaConfig = Record<never, never>,\n\tTQueues extends QueueSchemaConfig = Record<never, never>,\n\tTActions extends Actions<\n\t\tTState,\n\t\tTConnParams,\n\t\tTConnState,\n\t\tTVars,\n\t\tTInput,\n\t\tTDatabase,\n\t\tTEvents,\n\t\tTQueues\n\t> = Record<never, never>,\n> = {\n\ttypes?: ActorTypes<\n\t\tTState,\n\t\tTConnParams,\n\t\tTConnState,\n\t\tTVars,\n\t\tTInput,\n\t\tTDatabase\n\t>;\n} & Omit<\n\tz.input<typeof ActorConfigSchema>,\n\t| \"actions\"\n\t| \"events\"\n\t| \"queues\"\n\t| \"onCreate\"\n\t| \"onDestroy\"\n\t| \"onMigrate\"\n\t| \"onWake\"\n\t| \"onSleep\"\n\t| \"run\"\n\t| \"onStateChange\"\n\t| \"onBeforeConnect\"\n\t| \"onConnect\"\n\t| \"onDisconnect\"\n\t| \"onBeforeActionResponse\"\n\t| \"onRequest\"\n\t| \"onWebSocket\"\n\t| \"state\"\n\t| \"createState\"\n\t| \"connState\"\n\t| \"createConnState\"\n\t| \"vars\"\n\t| \"createVars\"\n\t| \"db\"\n> &\n\tBaseActorConfig<\n\t\tTState,\n\t\tTConnParams,\n\t\tTConnState,\n\t\tTVars,\n\t\tTInput,\n\t\tTDatabase,\n\t\tTEvents,\n\t\tTQueues,\n\t\tTActions\n\t> &\n\tCreateState<\n\t\tTState,\n\t\tTConnParams,\n\t\tTConnState,\n\t\tTVars,\n\t\tTInput,\n\t\tTDatabase,\n\t\tTEvents,\n\t\tTQueues\n\t> &\n\tCreateConnState<\n\t\tTState,\n\t\tTConnParams,\n\t\tTConnState,\n\t\tTVars,\n\t\tTInput,\n\t\tTDatabase,\n\t\tTEvents,\n\t\tTQueues\n\t> &\n\tCreateVars<\n\t\tTState,\n\t\tTConnParams,\n\t\tTConnState,\n\t\tTVars,\n\t\tTInput,\n\t\tTDatabase,\n\t\tTEvents,\n\t\tTQueues\n\t> &\n\tActorDatabaseConfig<TDatabase>;\n\n// For testing type definitions:\nexport function test<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig,\n\tTQueues extends QueueSchemaConfig,\n\tTActions extends Actions<\n\t\tTState,\n\t\tTConnParams,\n\t\tTConnState,\n\t\tTVars,\n\t\tTInput,\n\t\tTDatabase,\n\t\tTEvents,\n\t\tTQueues\n\t>,\n>(\n\tinput: ActorConfigInput<\n\t\tTState,\n\t\tTConnParams,\n\t\tTConnState,\n\t\tTVars,\n\t\tTInput,\n\t\tTDatabase,\n\t\tTEvents,\n\t\tTQueues,\n\t\tTActions\n\t>,\n): ActorConfig<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase,\n\tTEvents,\n\tTQueues\n> {\n\tconst config = ActorConfigSchema.parse(input) as ActorConfig<\n\t\tTState,\n\t\tTConnParams,\n\t\tTConnState,\n\t\tTVars,\n\t\tTInput,\n\t\tTDatabase,\n\t\tTEvents,\n\t\tTQueues\n\t>;\n\treturn config;\n}\n\n// MARK: Documentation Schema\n// This schema is JSON-serializable for documentation generation.\n// It excludes function types and focuses on the configurable options.\n\nexport const DocActorOptionsSchema = z\n\t.object({\n\t\tname: z\n\t\t\t.string()\n\t\t\t.optional()\n\t\t\t.describe(\"Display name for the actor in the Inspector UI.\"),\n\t\ticon: z\n\t\t\t.string()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Icon for the actor in the Inspector UI. Can be an emoji (e.g., '🚀') or FontAwesome icon name (e.g., 'rocket').\",\n\t\t\t),\n\t\tcreateVarsTimeout: z\n\t\t\t.number()\n\t\t\t.optional()\n\t\t\t.describe(\"Timeout in ms for createVars handler. Default: 5000\"),\n\t\tcreateConnStateTimeout: z\n\t\t\t.number()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Timeout in ms for createConnState handler. Default: 5000\",\n\t\t\t),\n\t\tonMigrateTimeout: z\n\t\t\t.number()\n\t\t\t.optional()\n\t\t\t.describe(\"Timeout in ms for onMigrate handler. Default: 30000\"),\n\t\tonBeforeConnectTimeout: z\n\t\t\t.number()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Timeout in ms for onBeforeConnect handler. Default: 5000\",\n\t\t\t),\n\t\tonConnectTimeout: z\n\t\t\t.number()\n\t\t\t.optional()\n\t\t\t.describe(\"Timeout in ms for onConnect handler. Default: 5000\"),\n\t\tsleepGracePeriod: z\n\t\t\t.number()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t`Max time in ms for the graceful shutdown window. Covers lifecycle hooks (onSleep, onDestroy), the run handler wait, async raw WebSocket handlers, disconnect callbacks, and final state serialization. Default: ${DEFAULT_SLEEP_GRACE_PERIOD}.`,\n\t\t\t),\n\t\tonDestroyTimeout: z\n\t\t\t.number()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Deprecated. Folded into sleepGracePeriod, which now bounds the entire graceful shutdown window for both sleep and destroy. Will be removed in 2.2.0.\",\n\t\t\t),\n\t\twaitUntilTimeout: z\n\t\t\t.number()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Deprecated. Folded into sleepGracePeriod, which now bounds the entire graceful shutdown window for both sleep and destroy. Will be removed in 2.2.0.\",\n\t\t\t),\n\t\tstateSaveInterval: z\n\t\t\t.number()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Interval in ms between automatic state saves. Default: 1000\",\n\t\t\t),\n\t\tactionTimeout: z\n\t\t\t.number()\n\t\t\t.optional()\n\t\t\t.describe(\"Timeout in ms for action handlers. Default: 60000\"),\n\t\tconnectionLivenessTimeout: z\n\t\t\t.number()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Timeout in ms for connection liveness checks. Default: 2500\",\n\t\t\t),\n\t\tconnectionLivenessInterval: z\n\t\t\t.number()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Interval in ms between connection liveness checks. Default: 5000\",\n\t\t\t),\n\t\tnoSleep: z\n\t\t\t.boolean()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Deprecated. If true, the actor will never sleep. Use c.keepAwake(promise) to scope keep-awake to a specific operation instead. Default: false\",\n\t\t\t),\n\t\tsleepTimeout: z\n\t\t\t.number()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Time in ms of inactivity before the actor sleeps. Default: 30000\",\n\t\t\t),\n\t\tmaxQueueSize: z\n\t\t\t.number()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Maximum number of queue messages before rejecting new messages. Default: 1000\",\n\t\t\t),\n\t\tmaxQueueMessageSize: z\n\t\t\t.number()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Maximum size of each queue message in bytes. Default: 65536\",\n\t\t\t),\n\t\tcanHibernateWebSocket: z\n\t\t\t.boolean()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Whether WebSockets using onWebSocket can be hibernated. WebSockets using actions/events are hibernatable by default. Default: false\",\n\t\t\t),\n\t\tpreloadMaxWorkflowBytes: z\n\t\t\t.number()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Override RivetKit's workflow preload budget for this actor. Set to 0 to disable workflow preloading.\",\n\t\t\t),\n\t\tpreloadMaxConnectionsBytes: z\n\t\t\t.number()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Override RivetKit's connections preload budget for this actor. Set to 0 to disable connections preloading.\",\n\t\t\t),\n\t})\n\t.describe(\"Actor options for timeouts and behavior configuration.\");\n\nexport const DocActorConfigSchema = z\n\t.object({\n\t\tstate: z\n\t\t\t.unknown()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Initial state value for the actor. Cannot be used with createState.\",\n\t\t\t),\n\t\tcreateState: z\n\t\t\t.unknown()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Function to create initial state. Receives context and input. Cannot be used with state.\",\n\t\t\t),\n\t\tconnState: z\n\t\t\t.unknown()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Initial connection state value. Cannot be used with createConnState.\",\n\t\t\t),\n\t\tcreateConnState: z\n\t\t\t.unknown()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Function to create connection state. Receives context and connection params. The pending connection is not visible in c.conns until this succeeds. Cannot be used with connState.\",\n\t\t\t),\n\t\tvars: z\n\t\t\t.unknown()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Initial ephemeral variables value. Cannot be used with createVars.\",\n\t\t\t),\n\t\tcreateVars: z\n\t\t\t.unknown()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Function to create ephemeral variables. Receives context and driver context. Cannot be used with vars.\",\n\t\t\t),\n\t\tdb: z\n\t\t\t.unknown()\n\t\t\t.optional()\n\t\t\t.describe(\"Database provider instance for the actor.\"),\n\t\tonCreate: z\n\t\t\t.unknown()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Called when the actor is first initialized. Use to initialize state.\",\n\t\t\t),\n\t\tonDestroy: z\n\t\t\t.unknown()\n\t\t\t.optional()\n\t\t\t.describe(\"Called when the actor is destroyed.\"),\n\t\tonMigrate: z\n\t\t\t.unknown()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Called on every actor start after persisted state loads and before onWake. Use for repeatable schema migrations.\",\n\t\t\t),\n\t\tonWake: z\n\t\t\t.unknown()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Called when the actor wakes up and is ready to receive connections and actions.\",\n\t\t\t),\n\t\tonSleep: z\n\t\t\t.unknown()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Called when the actor is stopping or sleeping. Use to clean up resources.\",\n\t\t\t),\n\t\trun: z\n\t\t\t.unknown()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Called after actor starts. Does not block startup. Use for background tasks like queue processing or tick loops. If it exits, the actor follows the normal idle sleep timeout once idle. If it throws, the actor logs the error and then follows the normal idle sleep timeout once idle.\",\n\t\t\t),\n\t\tonStateChange: z\n\t\t\t.unknown()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Called when the actor's state changes. State changes within this hook won't trigger recursion.\",\n\t\t\t),\n\t\tonBeforeConnect: z\n\t\t\t.unknown()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Called before a client connects. Throw an error to reject the connection. The pending connection is not visible in c.conns while this runs.\",\n\t\t\t),\n\t\tonConnect: z\n\t\t\t.unknown()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Called when a client successfully connects. The connection is visible in c.conns before this runs.\",\n\t\t\t),\n\t\tonDisconnect: z\n\t\t\t.unknown()\n\t\t\t.optional()\n\t\t\t.describe(\"Called when a client disconnects.\"),\n\t\tonBeforeActionResponse: z\n\t\t\t.unknown()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Called before sending an action response. Use to transform output.\",\n\t\t\t),\n\t\tonRequest: z\n\t\t\t.unknown()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Called for raw HTTP requests to /actors/{name}/http/* endpoints.\",\n\t\t\t),\n\t\tonWebSocket: z\n\t\t\t.unknown()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Called for raw WebSocket connections to /actors/{name}/websocket/* endpoints.\",\n\t\t\t),\n\t\tactions: z\n\t\t\t.record(z.string(), z.unknown())\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Map of action name to handler function. Defaults to an empty object.\",\n\t\t\t),\n\t\tactionInputSchemas: z\n\t\t\t.record(z.string(), z.unknown())\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Optional schema map for validating action argument tuples in native runtimes.\",\n\t\t\t),\n\t\tconnParamsSchema: z\n\t\t\t.unknown()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Optional schema for validating connection params in native runtimes.\",\n\t\t\t),\n\t\tevents: z\n\t\t\t.record(z.string(), z.unknown())\n\t\t\t.optional()\n\t\t\t.describe(\"Map of event names to schemas.\"),\n\t\tqueues: z\n\t\t\t.record(z.string(), z.unknown())\n\t\t\t.optional()\n\t\t\t.describe(\"Map of queue names to schemas.\"),\n\t\toptions: DocActorOptionsSchema.optional(),\n\t})\n\t.describe(\"Actor configuration passed to the actor() function.\");\n"],"mappings":"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","names":[]}
@@ -1,6 +1,6 @@
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 }; }
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 }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }
2
2
 
3
- var _chunkK5BA2LEOcjs = require('./chunk-K5BA2LEO.cjs');
3
+ var _chunkX6HIFXNKcjs = require('./chunk-X6HIFXNK.cjs');
4
4
 
5
5
  // src/serde.ts
6
6
  var _cborx = require('cbor-x'); var cbor = _interopRequireWildcard(_cborx);
@@ -12,6 +12,83 @@ var JSON_COMPAT_BIGINT = "$BigInt";
12
12
  var JSON_COMPAT_ARRAY_BUFFER = "$ArrayBuffer";
13
13
  var JSON_COMPAT_UINT8_ARRAY = "$Uint8Array";
14
14
  var JSON_COMPAT_UNDEFINED = "$Undefined";
15
+ var JSON_COMPAT_SET = "$Set";
16
+ function isTypedArray(value) {
17
+ return value instanceof Uint8ClampedArray || value instanceof Uint16Array || value instanceof Uint32Array || value instanceof BigUint64Array || value instanceof Int8Array || value instanceof Int16Array || value instanceof Int32Array || value instanceof BigInt64Array || value instanceof Float32Array || value instanceof Float64Array;
18
+ }
19
+ function assertJsonCompatValue(value, path = "") {
20
+ var _a;
21
+ if (value === null || value === void 0 || typeof value === "string" || typeof value === "number" || typeof value === "boolean" || typeof value === "bigint") {
22
+ return;
23
+ }
24
+ if (typeof value === "function") {
25
+ throw new TypeError(
26
+ `Value at ${path || "root"} is a function and is not CBOR serializable`
27
+ );
28
+ }
29
+ if (typeof value === "symbol") {
30
+ throw new TypeError(
31
+ `Value at ${path || "root"} is a symbol and is not CBOR serializable`
32
+ );
33
+ }
34
+ if (value instanceof Date || value instanceof RegExp || value instanceof Error || value instanceof ArrayBuffer || value instanceof Uint8Array || isTypedArray(value)) {
35
+ return;
36
+ }
37
+ if (value instanceof WeakMap) {
38
+ throw new TypeError(
39
+ `Value at ${path || "root"} is a WeakMap and is not CBOR serializable`
40
+ );
41
+ }
42
+ if (value instanceof WeakSet) {
43
+ throw new TypeError(
44
+ `Value at ${path || "root"} is a WeakSet and is not CBOR serializable`
45
+ );
46
+ }
47
+ if (value instanceof WeakRef) {
48
+ throw new TypeError(
49
+ `Value at ${path || "root"} is a WeakRef and is not CBOR serializable`
50
+ );
51
+ }
52
+ if (value instanceof Promise) {
53
+ throw new TypeError(
54
+ `Value at ${path || "root"} is a Promise and is not CBOR serializable`
55
+ );
56
+ }
57
+ if (value instanceof Map) {
58
+ for (const [k, v] of value.entries()) {
59
+ assertJsonCompatValue(k, `${path || "root"}.key(${String(k)})`);
60
+ assertJsonCompatValue(v, `${path || "root"}.value(${String(k)})`);
61
+ }
62
+ return;
63
+ }
64
+ if (value instanceof Set) {
65
+ let index = 0;
66
+ for (const item of value.values()) {
67
+ assertJsonCompatValue(item, `${path || "root"}.set[${index}]`);
68
+ index++;
69
+ }
70
+ return;
71
+ }
72
+ if (Array.isArray(value)) {
73
+ for (let i = 0; i < value.length; i++) {
74
+ assertJsonCompatValue(value[i], `${path || "root"}[${i}]`);
75
+ }
76
+ return;
77
+ }
78
+ if (isPlainObject(value)) {
79
+ for (const key in value) {
80
+ assertJsonCompatValue(
81
+ value[key],
82
+ path ? `${path}.${key}` : key
83
+ );
84
+ }
85
+ return;
86
+ }
87
+ const typeName = typeof value === "object" && value !== null ? _nullishCoalesce(((_a = value.constructor) == null ? void 0 : _a.name), () => ( typeof value)) : typeof value;
88
+ throw new TypeError(
89
+ `Value at ${path || "root"} of type "${typeName}" is not CBOR serializable`
90
+ );
91
+ }
15
92
  var EncodingSchema = _v4.z.enum(["json", "cbor", "bare"]);
16
93
  async function inputDataToBuffer(data) {
17
94
  if (typeof data === "string") {
@@ -46,9 +123,16 @@ function isPlainObject(value) {
46
123
  return proto === Object.prototype || proto === null;
47
124
  }
48
125
  function encodeJsonCompatValue(input) {
126
+ var _a;
127
+ if (input === null) {
128
+ return input;
129
+ }
49
130
  if (input === void 0) {
50
131
  return [JSON_COMPAT_UNDEFINED, 0];
51
132
  }
133
+ if (typeof input === "string" || typeof input === "number" || typeof input === "boolean") {
134
+ return input;
135
+ }
52
136
  if (typeof input === "bigint") {
53
137
  return [JSON_COMPAT_BIGINT, input.toString()];
54
138
  }
@@ -58,8 +142,32 @@ function encodeJsonCompatValue(input) {
58
142
  if (input instanceof Uint8Array) {
59
143
  return [JSON_COMPAT_UINT8_ARRAY, base64EncodeUint8Array(input)];
60
144
  }
145
+ if (isTypedArray(input)) {
146
+ return input;
147
+ }
148
+ if (input instanceof Date || input instanceof RegExp || input instanceof Error) {
149
+ return input;
150
+ }
151
+ if (input instanceof Set) {
152
+ const encoded = [...input.values()].map(
153
+ (v) => encodeJsonCompatValue(v)
154
+ );
155
+ return [JSON_COMPAT_SET, encoded];
156
+ }
157
+ if (input instanceof Map) {
158
+ const encoded = /* @__PURE__ */ new Map();
159
+ for (const [k, v] of input.entries()) {
160
+ encoded.set(
161
+ encodeJsonCompatValue(k),
162
+ encodeJsonCompatValue(v)
163
+ );
164
+ }
165
+ return encoded;
166
+ }
61
167
  if (Array.isArray(input)) {
62
- const encoded = input.map((value) => encodeJsonCompatValue(value));
168
+ const encoded = input.map(
169
+ (value) => encodeJsonCompatValue(value)
170
+ );
63
171
  if (encoded.length === 2 && typeof encoded[0] === "string" && encoded[0].startsWith("$")) {
64
172
  return ["$" + encoded[0], encoded[1]];
65
173
  }
@@ -72,7 +180,10 @@ function encodeJsonCompatValue(input) {
72
180
  }
73
181
  return encoded;
74
182
  }
75
- return input;
183
+ const typeName = typeof input === "object" && input !== null ? _nullishCoalesce(((_a = input.constructor) == null ? void 0 : _a.name), () => ( typeof input)) : typeof input;
184
+ throw new TypeError(
185
+ `Value of type "${typeName}" is not CBOR serializable`
186
+ );
76
187
  }
77
188
  function reviveJsonCompatValue(input, options = {}) {
78
189
  if (typeof input === "bigint") {
@@ -81,6 +192,16 @@ function reviveJsonCompatValue(input, options = {}) {
81
192
  }
82
193
  return input;
83
194
  }
195
+ if (input instanceof Map) {
196
+ const revived = /* @__PURE__ */ new Map();
197
+ for (const [k, v] of input.entries()) {
198
+ revived.set(
199
+ reviveJsonCompatValue(k, options),
200
+ reviveJsonCompatValue(v, options)
201
+ );
202
+ }
203
+ return revived;
204
+ }
84
205
  if (Array.isArray(input)) {
85
206
  if (input.length === 2 && typeof input[0] === "string" && input[0].startsWith("$")) {
86
207
  if (input[0] === JSON_COMPAT_BIGINT) {
@@ -95,6 +216,12 @@ function reviveJsonCompatValue(input, options = {}) {
95
216
  if (input[0] === JSON_COMPAT_UNDEFINED) {
96
217
  return void 0;
97
218
  }
219
+ if (input[0] === JSON_COMPAT_SET) {
220
+ const items = input[1].map(
221
+ (v) => reviveJsonCompatValue(v, options)
222
+ );
223
+ return new Set(items);
224
+ }
98
225
  if (input[0].startsWith("$$")) {
99
226
  return [
100
227
  input[0].substring(1),
@@ -175,7 +302,7 @@ function contentTypeForEncoding(encoding) {
175
302
  } else if (encoding === "cbor" || encoding === "bare") {
176
303
  return "application/octet-stream";
177
304
  } else {
178
- _chunkK5BA2LEOcjs.assertUnreachable.call(void 0, encoding);
305
+ _chunkX6HIFXNKcjs.assertUnreachable.call(void 0, encoding);
179
306
  }
180
307
  }
181
308
  function encodeCborCompat(value) {
@@ -213,7 +340,7 @@ function serializeWithEncoding(encoding, value, versionedDataHandler, version, z
213
340
  version
214
341
  );
215
342
  } else {
216
- _chunkK5BA2LEOcjs.assertUnreachable.call(void 0, encoding);
343
+ _chunkX6HIFXNKcjs.assertUnreachable.call(void 0, encoding);
217
344
  }
218
345
  }
219
346
  function deserializeWithEncoding(encoding, buffer, versionedDataHandler, zodSchema, fromJson, fromBare) {
@@ -249,7 +376,7 @@ function deserializeWithEncoding(encoding, buffer, versionedDataHandler, zodSche
249
376
  const bareValue = versionedDataHandler.deserializeWithEmbeddedVersion(buffer);
250
377
  return fromBare(bareValue);
251
378
  } else {
252
- _chunkK5BA2LEOcjs.assertUnreachable.call(void 0, encoding);
379
+ _chunkX6HIFXNKcjs.assertUnreachable.call(void 0, encoding);
253
380
  }
254
381
  }
255
382
 
@@ -264,5 +391,6 @@ function deserializeWithEncoding(encoding, buffer, versionedDataHandler, zodSche
264
391
 
265
392
 
266
393
 
267
- exports.uint8ArrayToBase64 = uint8ArrayToBase64; exports.contentTypeForEncoding = contentTypeForEncoding; exports.encodeCborCompat = encodeCborCompat; exports.decodeCborCompat = decodeCborCompat; exports.decodeCborJsonCompat = decodeCborJsonCompat; exports.serializeWithEncoding = serializeWithEncoding; exports.deserializeWithEncoding = deserializeWithEncoding; exports.EncodingSchema = EncodingSchema; exports.inputDataToBuffer = inputDataToBuffer; exports.jsonStringifyCompat = jsonStringifyCompat;
268
- //# sourceMappingURL=chunk-LIXXFXVR.cjs.map
394
+
395
+ exports.uint8ArrayToBase64 = uint8ArrayToBase64; exports.contentTypeForEncoding = contentTypeForEncoding; exports.encodeCborCompat = encodeCborCompat; exports.decodeCborCompat = decodeCborCompat; exports.decodeCborJsonCompat = decodeCborJsonCompat; exports.serializeWithEncoding = serializeWithEncoding; exports.deserializeWithEncoding = deserializeWithEncoding; exports.assertJsonCompatValue = assertJsonCompatValue; exports.EncodingSchema = EncodingSchema; exports.inputDataToBuffer = inputDataToBuffer; exports.jsonStringifyCompat = jsonStringifyCompat;
396
+ //# sourceMappingURL=chunk-FEOG44WH.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/chunk-FEOG44WH.cjs","../../src/serde.ts","../../src/common/encoding.ts"],"names":[],"mappings":"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","file":"/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/chunk-FEOG44WH.cjs","sourcesContent":[null,"import * as cbor from \"cbor-x\";\nimport invariant from \"invariant\";\nimport type { VersionedDataHandler } from \"vbare\";\nimport type { z } from \"zod/v4\";\nimport { assertUnreachable } from \"@/common/utils\";\nimport type { JsonCompatValue, Encoding } from \"@/common/encoding\";\nimport {\n\tencodeJsonCompatValue,\n\tjsonParseCompat,\n\tjsonStringifyCompat,\n\treviveJsonCompatValue,\n} from \"./common/encoding\";\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 encodeCborCompat(value: JsonCompatValue): Uint8Array {\n\treturn cbor.encode(encodeJsonCompatValue(value));\n}\n\nexport function decodeCborCompat<T>(buffer: Uint8Array): T {\n\treturn reviveJsonCompatValue(cbor.decode(buffer)) as T;\n}\n\nexport function decodeCborJsonCompat<T>(buffer: Uint8Array): T {\n\treturn reviveJsonCompatValue(cbor.decode(buffer), {\n\t\tcoerceSafeIntegerBigInts: true,\n\t}) as 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\tversion: number | 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\tif (version === undefined) {\n\t\t\tthrow new Error(\"version is required for 'bare' encoding\");\n\t\t}\n\t\tconst bareValue = toBare(value);\n\t\treturn versionedDataHandler.serializeWithEmbeddedVersion(\n\t\t\tbareValue,\n\t\t\tversion,\n\t\t);\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 = decodeCborCompat(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 { z } from \"zod/v4\";\nimport type { VersionedDataHandler } from \"vbare\";\nimport { serializeWithEncoding } from \"@/serde\";\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\nconst JSON_COMPAT_BIGINT = \"$BigInt\";\nconst JSON_COMPAT_ARRAY_BUFFER = \"$ArrayBuffer\";\nconst JSON_COMPAT_UINT8_ARRAY = \"$Uint8Array\";\nconst JSON_COMPAT_UNDEFINED = \"$Undefined\";\nconst JSON_COMPAT_SET = \"$Set\";\n\n/**\n * Types that cbor-x encodes natively without any compat transforms.\n */\nexport type CborSerializable =\n\t| string\n\t| number\n\t| boolean\n\t| null\n\t| undefined\n\t| bigint\n\t| Date\n\t| RegExp\n\t| Error\n\t| ArrayBuffer\n\t| Uint8Array\n\t| Uint8ClampedArray\n\t| Uint16Array\n\t| Uint32Array\n\t| BigUint64Array\n\t| Int8Array\n\t| Int16Array\n\t| Int32Array\n\t| BigInt64Array\n\t| Float32Array\n\t| Float64Array\n\t| CborSerializable[]\n\t| Map<CborSerializable, CborSerializable>\n\t| { [key: string]: CborSerializable };\n\n/**\n * User-facing serializable type. Extends CborSerializable with Set (encoded\n * as a `$Set` tagged array by the JSON compat layer).\n */\nexport type JsonCompatValue =\n\t| CborSerializable\n\t| Set<JsonCompatValue>\n\t| JsonCompatValue[]\n\t| Map<JsonCompatValue, JsonCompatValue>\n\t| { [key: string]: JsonCompatValue };\n\nfunction isTypedArray(value: unknown): boolean {\n\treturn (\n\t\tvalue instanceof Uint8ClampedArray ||\n\t\tvalue instanceof Uint16Array ||\n\t\tvalue instanceof Uint32Array ||\n\t\tvalue instanceof BigUint64Array ||\n\t\tvalue instanceof Int8Array ||\n\t\tvalue instanceof Int16Array ||\n\t\tvalue instanceof Int32Array ||\n\t\tvalue instanceof BigInt64Array ||\n\t\tvalue instanceof Float32Array ||\n\t\tvalue instanceof Float64Array\n\t);\n}\n\n/**\n * Recursively validates that a value is CBOR serializable. Throws TypeError\n * with a descriptive message for non-serializable values.\n */\nexport function assertJsonCompatValue(\n\tvalue: unknown,\n\tpath = \"\",\n): asserts value is JsonCompatValue {\n\tif (\n\t\tvalue === null ||\n\t\tvalue === undefined ||\n\t\ttypeof value === \"string\" ||\n\t\ttypeof value === \"number\" ||\n\t\ttypeof value === \"boolean\" ||\n\t\ttypeof value === \"bigint\"\n\t) {\n\t\treturn;\n\t}\n\n\tif (typeof value === \"function\") {\n\t\tthrow new TypeError(\n\t\t\t`Value at ${path || \"root\"} is a function and is not CBOR serializable`,\n\t\t);\n\t}\n\n\tif (typeof value === \"symbol\") {\n\t\tthrow new TypeError(\n\t\t\t`Value at ${path || \"root\"} is a symbol and is not CBOR serializable`,\n\t\t);\n\t}\n\n\tif (\n\t\tvalue instanceof Date ||\n\t\tvalue instanceof RegExp ||\n\t\tvalue instanceof Error ||\n\t\tvalue instanceof ArrayBuffer ||\n\t\tvalue instanceof Uint8Array ||\n\t\tisTypedArray(value)\n\t) {\n\t\treturn;\n\t}\n\n\tif (value instanceof WeakMap) {\n\t\tthrow new TypeError(\n\t\t\t`Value at ${path || \"root\"} is a WeakMap and is not CBOR serializable`,\n\t\t);\n\t}\n\n\tif (value instanceof WeakSet) {\n\t\tthrow new TypeError(\n\t\t\t`Value at ${path || \"root\"} is a WeakSet and is not CBOR serializable`,\n\t\t);\n\t}\n\n\tif (value instanceof WeakRef) {\n\t\tthrow new TypeError(\n\t\t\t`Value at ${path || \"root\"} is a WeakRef and is not CBOR serializable`,\n\t\t);\n\t}\n\n\tif (value instanceof Promise) {\n\t\tthrow new TypeError(\n\t\t\t`Value at ${path || \"root\"} is a Promise and is not CBOR serializable`,\n\t\t);\n\t}\n\n\tif (value instanceof Map) {\n\t\tfor (const [k, v] of value.entries()) {\n\t\t\tassertJsonCompatValue(k, `${path || \"root\"}.key(${String(k)})`);\n\t\t\tassertJsonCompatValue(v, `${path || \"root\"}.value(${String(k)})`);\n\t\t}\n\t\treturn;\n\t}\n\n\tif (value instanceof Set) {\n\t\tlet index = 0;\n\t\tfor (const item of value.values()) {\n\t\t\tassertJsonCompatValue(item, `${path || \"root\"}.set[${index}]`);\n\t\t\tindex++;\n\t\t}\n\t\treturn;\n\t}\n\n\tif (Array.isArray(value)) {\n\t\tfor (let i = 0; i < value.length; i++) {\n\t\t\tassertJsonCompatValue(value[i], `${path || \"root\"}[${i}]`);\n\t\t}\n\t\treturn;\n\t}\n\n\tif (isPlainObject(value)) {\n\t\tfor (const key in value) {\n\t\t\tassertJsonCompatValue(\n\t\t\t\tvalue[key as keyof typeof value],\n\t\t\t\tpath ? `${path}.${key}` : key,\n\t\t\t);\n\t\t}\n\t\treturn;\n\t}\n\n\tconst typeName =\n\t\ttypeof value === \"object\" && value !== null\n\t\t\t? value.constructor?.name ?? typeof value\n\t\t\t: typeof value;\n\tthrow new TypeError(\n\t\t`Value at ${path || \"root\"} of type \"${typeName}\" is not CBOR serializable`,\n\t);\n}\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#version: number;\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\tversion: number,\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.#version = version;\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}\n\n\t\tconst serialized = serializeWithEncoding(\n\t\t\tencoding,\n\t\t\tthis.#data,\n\t\t\tthis.#versionedDataHandler,\n\t\t\tthis.#version,\n\t\t\tthis.#zodSchema,\n\t\t\tthis.#toJson,\n\t\t\tthis.#toBare,\n\t\t);\n\t\tthis.#cache.set(encoding, serialized);\n\t\treturn serialized;\n\t}\n}\n\nexport async function inputDataToBuffer(\n\tdata: InputData,\n): Promise<Uint8Array | string> {\n\tif (typeof data === \"string\") {\n\t\treturn data;\n\t}\n\tif (data instanceof Blob) {\n\t\treturn new Uint8Array(await data.arrayBuffer());\n\t}\n\tif (data instanceof Uint8Array) {\n\t\treturn data;\n\t}\n\tif (data instanceof ArrayBuffer || data instanceof SharedArrayBuffer) {\n\t\treturn new Uint8Array(data);\n\t}\n\tthrow new Error(\"Malformed message\");\n}\n\nfunction base64EncodeUint8Array(uint8Array: Uint8Array): string {\n\tlet binary = \"\";\n\tfor (const value of uint8Array) {\n\t\tbinary += String.fromCharCode(value);\n\t}\n\treturn btoa(binary);\n}\n\nfunction base64EncodeArrayBuffer(arrayBuffer: ArrayBuffer): string {\n\treturn base64EncodeUint8Array(new Uint8Array(arrayBuffer));\n}\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n\tif (value === null || typeof value !== \"object\") {\n\t\treturn false;\n\t}\n\n\tconst proto = Object.getPrototypeOf(value);\n\treturn proto === Object.prototype || proto === null;\n}\n\nexport function encodeJsonCompatValue(input: JsonCompatValue): unknown {\n\t// Primitives\n\tif (input === null) {\n\t\treturn input;\n\t}\n\tif (input === undefined) {\n\t\treturn [JSON_COMPAT_UNDEFINED, 0];\n\t}\n\tif (\n\t\ttypeof input === \"string\" ||\n\t\ttypeof input === \"number\" ||\n\t\ttypeof input === \"boolean\"\n\t) {\n\t\treturn input;\n\t}\n\tif (typeof input === \"bigint\") {\n\t\treturn [JSON_COMPAT_BIGINT, input.toString()];\n\t}\n\n\t// Binary types with custom encoding\n\tif (input instanceof ArrayBuffer) {\n\t\treturn [JSON_COMPAT_ARRAY_BUFFER, base64EncodeArrayBuffer(input)];\n\t}\n\tif (input instanceof Uint8Array) {\n\t\treturn [JSON_COMPAT_UINT8_ARRAY, base64EncodeUint8Array(input)];\n\t}\n\n\t// TypedArrays pass through for cbor-x native handling\n\tif (isTypedArray(input)) {\n\t\treturn input;\n\t}\n\n\t// Date, RegExp, and Error pass through for cbor-x native handling\n\tif (input instanceof Date || input instanceof RegExp || input instanceof Error) {\n\t\treturn input;\n\t}\n\n\t// Set uses custom tag encoding\n\tif (input instanceof Set) {\n\t\tconst encoded = [...input.values()].map((v) =>\n\t\t\tencodeJsonCompatValue(v as JsonCompatValue),\n\t\t);\n\t\treturn [JSON_COMPAT_SET, encoded];\n\t}\n\n\t// Map recurses into keys and values\n\tif (input instanceof Map) {\n\t\tconst encoded = new Map<unknown, unknown>();\n\t\tfor (const [k, v] of input.entries()) {\n\t\t\tencoded.set(\n\t\t\t\tencodeJsonCompatValue(k as JsonCompatValue),\n\t\t\t\tencodeJsonCompatValue(v as JsonCompatValue),\n\t\t\t);\n\t\t}\n\t\treturn encoded;\n\t}\n\n\t// Arrays\n\tif (Array.isArray(input)) {\n\t\tconst encoded = input.map((value) =>\n\t\t\tencodeJsonCompatValue(value as JsonCompatValue),\n\t\t);\n\t\tif (\n\t\t\tencoded.length === 2 &&\n\t\t\ttypeof encoded[0] === \"string\" &&\n\t\t\t(encoded[0] as string).startsWith(\"$\")\n\t\t) {\n\t\t\treturn [\"$\" + encoded[0], encoded[1]];\n\t\t}\n\t\treturn encoded;\n\t}\n\n\t// Plain objects\n\tif (isPlainObject(input)) {\n\t\tconst encoded: Record<string, unknown> = {};\n\t\tfor (const [key, value] of Object.entries(input)) {\n\t\t\tencoded[key] = encodeJsonCompatValue(value as JsonCompatValue);\n\t\t}\n\t\treturn encoded;\n\t}\n\n\t// Not serializable\n\tconst typeName =\n\t\ttypeof input === \"object\" && input !== null\n\t\t\t? (input as object).constructor?.name ?? typeof input\n\t\t\t: typeof input;\n\tthrow new TypeError(\n\t\t`Value of type \"${typeName}\" is not CBOR serializable`,\n\t);\n}\n\nexport interface JsonCompatReviveOptions {\n\tcoerceSafeIntegerBigInts?: boolean;\n}\n\nexport function reviveJsonCompatValue(\n\tinput: any,\n\toptions: JsonCompatReviveOptions = {},\n): any {\n\tif (typeof input === \"bigint\") {\n\t\tif (\n\t\t\toptions.coerceSafeIntegerBigInts &&\n\t\t\tinput >= BigInt(Number.MIN_SAFE_INTEGER) &&\n\t\t\tinput <= BigInt(Number.MAX_SAFE_INTEGER)\n\t\t) {\n\t\t\treturn Number(input);\n\t\t}\n\t\treturn input;\n\t}\n\tif (input instanceof Map) {\n\t\tconst revived = new Map();\n\t\tfor (const [k, v] of input.entries()) {\n\t\t\trevived.set(\n\t\t\t\treviveJsonCompatValue(k, options),\n\t\t\t\treviveJsonCompatValue(v, options),\n\t\t\t);\n\t\t}\n\t\treturn revived;\n\t}\n\tif (Array.isArray(input)) {\n\t\tif (\n\t\t\tinput.length === 2 &&\n\t\t\ttypeof input[0] === \"string\" &&\n\t\t\tinput[0].startsWith(\"$\")\n\t\t) {\n\t\t\tif (input[0] === JSON_COMPAT_BIGINT) {\n\t\t\t\treturn BigInt(input[1]);\n\t\t\t}\n\t\t\tif (input[0] === JSON_COMPAT_ARRAY_BUFFER) {\n\t\t\t\treturn base64DecodeToArrayBuffer(input[1]);\n\t\t\t}\n\t\t\tif (input[0] === JSON_COMPAT_UINT8_ARRAY) {\n\t\t\t\treturn base64DecodeToUint8Array(input[1]);\n\t\t\t}\n\t\t\tif (input[0] === JSON_COMPAT_UNDEFINED) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\tif (input[0] === JSON_COMPAT_SET) {\n\t\t\t\tconst items = (input[1] as unknown[]).map((v) =>\n\t\t\t\t\treviveJsonCompatValue(v, options),\n\t\t\t\t);\n\t\t\t\treturn new Set(items);\n\t\t\t}\n\t\t\tif (input[0].startsWith(\"$$\")) {\n\t\t\t\treturn [\n\t\t\t\t\tinput[0].substring(1),\n\t\t\t\t\treviveJsonCompatValue(input[1], options),\n\t\t\t\t];\n\t\t\t}\n\t\t\tthrow new Error(\n\t\t\t\t`Unknown JSON encoding type: ${input[0]}. This may indicate corrupted data or a version mismatch.`,\n\t\t\t);\n\t\t}\n\t\treturn input.map((value) => reviveJsonCompatValue(value, options));\n\t}\n\tif (isPlainObject(input)) {\n\t\tconst decoded: Record<string, unknown> = {};\n\t\tfor (const [key, value] of Object.entries(input)) {\n\t\t\tdecoded[key] = reviveJsonCompatValue(value, options);\n\t\t}\n\t\treturn decoded;\n\t}\n\treturn input;\n}\n\n/** Converts data that was encoded to a string. Some formats do not support raw binary data. */\nexport function encodeDataToString(message: OutputData): string {\n\tif (typeof message === \"string\") {\n\t\treturn message;\n\t}\n\tif (message instanceof Uint8Array) {\n\t\treturn base64EncodeUint8Array(message);\n\t}\n\tassertUnreachable(message);\n}\n\nfunction base64DecodeToUint8Array(base64: string): Uint8Array {\n\tif (typeof Buffer !== \"undefined\") {\n\t\treturn new Uint8Array(Buffer.from(base64, \"base64\"));\n\t}\n\n\tconst binary = atob(base64);\n\tconst bytes = new Uint8Array(binary.length);\n\tfor (let i = 0; i < binary.length; 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 [JSON_COMPAT_BIGINT, value.toString()];\n\t\t}\n\t\tif (value instanceof ArrayBuffer) {\n\t\t\treturn [\n\t\t\t\tJSON_COMPAT_ARRAY_BUFFER,\n\t\t\t\tbase64EncodeArrayBuffer(value),\n\t\t\t];\n\t\t}\n\t\tif (value instanceof Uint8Array) {\n\t\t\treturn [\n\t\t\t\tJSON_COMPAT_UINT8_ARRAY,\n\t\t\t\tbase64EncodeUint8Array(value),\n\t\t\t];\n\t\t}\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\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 reviveJsonCompatValue(JSON.parse(input));\n}\n"]}
@@ -2,19 +2,19 @@
2
2
 
3
3
 
4
4
 
5
- var _chunkENK7C66Gcjs = require('./chunk-ENK7C66G.cjs');
5
+ var _chunkZGPX6KAHcjs = require('./chunk-ZGPX6KAH.cjs');
6
6
 
7
7
 
8
8
 
9
- var _chunkK5BA2LEOcjs = require('./chunk-K5BA2LEO.cjs');
9
+ var _chunkX6HIFXNKcjs = require('./chunk-X6HIFXNK.cjs');
10
10
 
11
11
  // src/devtools-loader/log.ts
12
12
  function logger() {
13
- return _chunkK5BA2LEOcjs.getLogger.call(void 0, "devtools");
13
+ return _chunkX6HIFXNKcjs.getLogger.call(void 0, "devtools");
14
14
  }
15
15
 
16
16
  // src/devtools-loader/index.ts
17
- var DEFAULT_DEVTOOLS_URL = (version = _chunkK5BA2LEOcjs.VERSION) => `https://releases.rivet.dev/rivet/latest/devtools/mod.js?v=${version}`;
17
+ var DEFAULT_DEVTOOLS_URL = (version = _chunkX6HIFXNKcjs.VERSION) => `https://releases.rivet.dev/rivet/latest/devtools/mod.js?v=${version}`;
18
18
  var scriptId = "rivetkit-devtools-script";
19
19
  function injectDevtools(config) {
20
20
  if (!window) {
@@ -35,15 +35,15 @@ function injectDevtools(config) {
35
35
  // src/client/mod.ts
36
36
  function createClient(endpointOrConfig) {
37
37
  const configInput = endpointOrConfig === void 0 ? {} : typeof endpointOrConfig === "string" ? { endpoint: endpointOrConfig } : endpointOrConfig;
38
- const config = _chunkENK7C66Gcjs.ClientConfigSchema.parse(configInput);
39
- const driver = new (0, _chunkENK7C66Gcjs.RemoteEngineControlClient)(config);
38
+ const config = _chunkZGPX6KAHcjs.ClientConfigSchema.parse(configInput);
39
+ const driver = new (0, _chunkZGPX6KAHcjs.RemoteEngineControlClient)(config);
40
40
  if (config.devtools) {
41
41
  injectDevtools(config);
42
42
  }
43
- return _chunkENK7C66Gcjs.createClientWithDriver.call(void 0, driver, config);
43
+ return _chunkZGPX6KAHcjs.createClientWithDriver.call(void 0, driver, config);
44
44
  }
45
45
 
46
46
 
47
47
 
48
48
  exports.createClient = createClient;
49
- //# sourceMappingURL=chunk-M5C7YNI5.cjs.map
49
+ //# sourceMappingURL=chunk-G5HUSWP4.cjs.map