UNPKG

rivetkit

Version:

Lightweight libraries for building stateful actors on edge platforms

1 lines 57.8 kB
{"version":3,"sources":["/Users/nathan/rivetkit/packages/rivetkit/dist/tsup/chunk-CA3X5M6H.cjs","../../src/registry/run-config.ts","../../src/drivers/engine/config.ts","../../src/client/config.ts","../../src/actor/protocol/old.ts","../../src/common/versioned-data.ts","../schemas/client-protocol/v1.ts","../../src/schemas/client-protocol/versioned.ts","../../src/actor/action.ts","../../src/inspector/config.ts","../../src/driver-helpers/utils.ts","../schemas/actor-persist/v1.ts","../../src/schemas/actor-persist/versioned.ts"],"names":["config"],"mappings":"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","file":"/Users/nathan/rivetkit/packages/rivetkit/dist/tsup/chunk-CA3X5M6H.cjs","sourcesContent":[null,"import type { cors } from \"hono/cors\";\nimport type { Logger } from \"pino\";\nimport { z } from \"zod\";\nimport type { ActorDriverBuilder } from \"@/actor/driver\";\nimport { LogLevelSchema } from \"@/common/log\";\nimport { EngingConfigSchema as EngineConfigSchema } from \"@/drivers/engine/config\";\nimport { InspectorConfigSchema } from \"@/inspector/config\";\nimport type { ManagerDriverBuilder } from \"@/manager/driver\";\nimport type { GetUpgradeWebSocket } from \"@/utils\";\nimport { getEnvUniversal } from \"@/utils\";\n\ntype CorsOptions = NonNullable<Parameters<typeof cors>[0]>;\n\nexport const DriverConfigSchema = z.object({\n\t/** Machine-readable name to identify this driver by. */\n\tname: z.string(),\n\tmanager: z.custom<ManagerDriverBuilder>(),\n\tactor: z.custom<ActorDriverBuilder>(),\n});\n\nexport type DriverConfig = z.infer<typeof DriverConfigSchema>;\n\n/** Base config used for the actor config across all platforms. */\nexport const RunnerConfigSchema = z\n\t.object({\n\t\tdriver: DriverConfigSchema.optional(),\n\n\t\t/** CORS configuration for the router. Uses Hono's CORS middleware options. */\n\t\tcors: z.custom<CorsOptions>().optional(),\n\n\t\t/** @experimental */\n\t\tmaxIncomingMessageSize: z.number().optional().default(65_536),\n\n\t\t/** @experimental */\n\t\tinspector: InspectorConfigSchema,\n\n\t\t/** @experimental */\n\t\tdisableDefaultServer: z.boolean().optional().default(false),\n\n\t\t/** @experimental */\n\t\tdefaultServerPort: z.number().default(6420),\n\n\t\t/** @experimental */\n\t\trunEngine: z\n\t\t\t.boolean()\n\t\t\t.optional()\n\t\t\t.default(() => getEnvUniversal(\"RIVET_RUN_ENGINE\") === \"1\"),\n\n\t\t/** @experimental */\n\t\trunEngineVersion: z\n\t\t\t.string()\n\t\t\t.optional()\n\t\t\t.default(() => getEnvUniversal(\"RIVET_RUN_ENGINE_VERSION\") ?? \"25.7.3\"),\n\n\t\t/** @experimental */\n\t\toverrideServerAddress: z.string().optional(),\n\n\t\t/** @experimental */\n\t\tdisableActorDriver: z.boolean().optional().default(false),\n\n\t\t/**\n\t\t * @experimental\n\t\t *\n\t\t * Whether to run runners normally or have them managed\n\t\t * serverlessly (by the Rivet Engine for example).\n\t\t */\n\t\trunnerKind: z\n\t\t\t.enum([\"serverless\", \"normal\"])\n\t\t\t.optional()\n\t\t\t.default(() =>\n\t\t\t\tgetEnvUniversal(\"RIVET_RUNNER_KIND\") === \"serverless\"\n\t\t\t\t\t? \"serverless\"\n\t\t\t\t\t: \"normal\",\n\t\t\t),\n\t\ttotalSlots: z.number().optional(),\n\n\t\t/**\n\t\t * @experimental\n\t\t *\n\t\t * Base path for the router. This is used to prefix all routes.\n\t\t * For example, if the base path is `/api`, then the route `/actors` will be\n\t\t * available at `/api/actors`.\n\t\t */\n\t\tbasePath: z.string().optional().default(\"/\"),\n\n\t\t/**\n\t\t * @experimental\n\t\t *\n\t\t * Disable welcome message.\n\t\t * */\n\t\tnoWelcome: z.boolean().optional().default(false),\n\n\t\t/**\n\t\t * @experimental\n\t\t * */\n\t\tlogging: z\n\t\t\t.object({\n\t\t\t\tbaseLogger: z.custom<Logger>().optional(),\n\t\t\t\tlevel: LogLevelSchema.optional(),\n\t\t\t})\n\t\t\t.optional()\n\t\t\t.default({}),\n\n\t\t/**\n\t\t * @experimental\n\t\t *\n\t\t * Automatically configure serverless runners in the engine.\n\t\t * Can only be used when runnerKind is \"serverless\".\n\t\t * If true, uses default configuration. Can also provide custom configuration.\n\t\t */\n\t\tautoConfigureServerless: z\n\t\t\t.union([\n\t\t\t\tz.boolean(),\n\t\t\t\tz.object({\n\t\t\t\t\turl: z.string().optional(),\n\t\t\t\t\theaders: z.record(z.string(), z.string()).optional(),\n\t\t\t\t\tmaxRunners: z.number().optional(),\n\t\t\t\t\tminRunners: z.number().optional(),\n\t\t\t\t\trequestLifespan: z.number().optional(),\n\t\t\t\t\trunnersMargin: z.number().optional(),\n\t\t\t\t\tslotsPerRunner: z.number().optional(),\n\t\t\t\t}),\n\t\t\t])\n\t\t\t.optional(),\n\n\t\t// This is a function to allow for lazy configuration of upgradeWebSocket on the\n\t\t// fly. This is required since the dependencies that upgradeWebSocket\n\t\t// (specifically Node.js) can sometimes only be specified after the router is\n\t\t// created or must be imported async using `await import(...)`\n\t\tgetUpgradeWebSocket: z.custom<GetUpgradeWebSocket>().optional(),\n\t})\n\t.merge(EngineConfigSchema.removeDefault())\n\t.default({});\n\nexport type RunnerConfig = z.infer<typeof RunnerConfigSchema>;\nexport type RunnerConfigInput = z.input<typeof RunnerConfigSchema>;\n","import { z } from \"zod\";\nimport { ClientConfigSchema } from \"@/client/config\";\nimport { getEnvUniversal } from \"@/utils\";\n\nexport const EngingConfigSchema = z\n\t.object({\n\t\t/** Unique key for this runner. Runners connecting a given key will replace any other runner connected with the same key. */\n\t\trunnerKey: z\n\t\t\t.string()\n\t\t\t.default(\n\t\t\t\t() => getEnvUniversal(\"RIVET_RUNNER_KEY\") ?? crypto.randomUUID(),\n\t\t\t),\n\n\t\t/** How many actors this runner can run. */\n\t\ttotalSlots: z.number().default(100_000),\n\t})\n\t// We include the client config since this includes the common properties like endpoint, namespace, etc.\n\t.merge(ClientConfigSchema)\n\t.default({});\n\nexport type EngineConfig = z.infer<typeof EngingConfigSchema>;\nexport type EngineConfigInput = z.input<typeof EngingConfigSchema>;\n","import z from \"zod\";\nimport { TransportSchema } from \"@/actor/protocol/old\";\nimport { EncodingSchema } from \"@/actor/protocol/serde\";\nimport { type GetUpgradeWebSocket, getEnvUniversal } from \"@/utils\";\n\nexport const ClientConfigSchema = z.object({\n\t/** Endpoint to connect to for Rivet Engine or RivetKit manager API. */\n\tendpoint: z\n\t\t.string()\n\t\t.optional()\n\t\t.transform(\n\t\t\t(x) =>\n\t\t\t\tx ??\n\t\t\t\tgetEnvUniversal(\"RIVET_ENGINE\") ??\n\t\t\t\tgetEnvUniversal(\"RIVET_ENDPOINT\"),\n\t\t),\n\n\t/** Token to use to authenticate with the API. */\n\ttoken: z\n\t\t.string()\n\t\t.optional()\n\t\t.transform((x) => x ?? getEnvUniversal(\"RIVET_TOKEN\")),\n\n\t/** Namespace to connect to. */\n\tnamespace: z\n\t\t.string()\n\t\t.default(() => getEnvUniversal(\"RIVET_NAMESPACE\") ?? \"default\"),\n\n\t/** Name of the runner. This is used to group together runners in to different pools. */\n\trunnerName: z\n\t\t.string()\n\t\t.default(() => getEnvUniversal(\"RIVET_RUNNER\") ?? \"rivetkit\"),\n\n\tencoding: EncodingSchema.default(\"bare\"),\n\n\ttransport: TransportSchema.default(\"websocket\"),\n\n\theaders: z.record(z.string()).optional().default({}),\n\n\t// See RunConfig.getUpgradeWebSocket\n\tgetUpgradeWebSocket: z.custom<GetUpgradeWebSocket>().optional(),\n});\n\nexport type ClientConfig = z.infer<typeof ClientConfigSchema>;\n\nexport type ClientConfigInput = z.input<typeof ClientConfigSchema>;\n","import * as cbor from \"cbor-x\";\nimport { z } from \"zod\";\nimport type { AnyDatabaseProvider } from \"@/actor/database\";\nimport * as errors from \"@/actor/errors\";\nimport {\n\tCachedSerializer,\n\ttype Encoding,\n\ttype InputData,\n} from \"@/actor/protocol/serde\";\nimport { deconstructError } from \"@/common/utils\";\nimport type * as protocol from \"@/schemas/client-protocol/mod\";\nimport {\n\tTO_CLIENT_VERSIONED,\n\tTO_SERVER_VERSIONED,\n} from \"@/schemas/client-protocol/versioned\";\nimport { deserializeWithEncoding } from \"@/serde\";\nimport { assertUnreachable, bufferToArrayBuffer } from \"../../utils\";\nimport { ActionContext } from \"../action\";\nimport type { Conn } from \"../conn\";\nimport type { ActorInstance } from \"../instance\";\n\nexport const TransportSchema = z.enum([\"websocket\", \"sse\"]);\n\n/**\n * Transport mechanism used to communicate between client & actor.\n */\nexport type Transport = z.infer<typeof TransportSchema>;\n\ninterface MessageEventOpts {\n\tencoding: Encoding;\n\tmaxIncomingMessageSize: number;\n}\n\nfunction getValueLength(value: InputData): number {\n\tif (typeof value === \"string\") {\n\t\treturn value.length;\n\t} else if (value instanceof Blob) {\n\t\treturn value.size;\n\t} else if (\n\t\tvalue instanceof ArrayBuffer ||\n\t\tvalue instanceof SharedArrayBuffer ||\n\t\tvalue instanceof Uint8Array\n\t) {\n\t\treturn value.byteLength;\n\t} else {\n\t\tassertUnreachable(value);\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} else if (data instanceof Blob) {\n\t\tconst arrayBuffer = await data.arrayBuffer();\n\t\treturn new Uint8Array(arrayBuffer);\n\t} else if (data instanceof Uint8Array) {\n\t\treturn data;\n\t} else if (data instanceof ArrayBuffer || data instanceof SharedArrayBuffer) {\n\t\treturn new Uint8Array(data);\n\t} else {\n\t\tthrow new errors.MalformedMessage();\n\t}\n}\n\nexport async function parseMessage(\n\tvalue: InputData,\n\topts: MessageEventOpts,\n): Promise<protocol.ToServer> {\n\t// Validate value length\n\tconst length = getValueLength(value);\n\tif (length > opts.maxIncomingMessageSize) {\n\t\tthrow new errors.MessageTooLong();\n\t}\n\n\t// Convert value\n\tlet buffer = await inputDataToBuffer(value);\n\n\t// HACK: For some reason, the output buffer needs to be cloned when using BARE encoding\n\t//\n\t// THis is likely because the input data is of type `Buffer` and there is an inconsistency in implementation that I am not aware of\n\tif (buffer instanceof Buffer) {\n\t\tbuffer = new Uint8Array(buffer);\n\t}\n\n\t// Deserialize message\n\treturn deserializeWithEncoding(opts.encoding, buffer, TO_SERVER_VERSIONED);\n}\n\nexport interface ProcessMessageHandler<\n\tS,\n\tCP,\n\tCS,\n\tV,\n\tI,\n\tDB extends AnyDatabaseProvider,\n> {\n\tonExecuteAction?: (\n\t\tctx: ActionContext<S, CP, CS, V, I, DB>,\n\t\tname: string,\n\t\targs: unknown[],\n\t) => Promise<unknown>;\n\tonSubscribe?: (\n\t\teventName: string,\n\t\tconn: Conn<S, CP, CS, V, I, DB>,\n\t) => Promise<void>;\n\tonUnsubscribe?: (\n\t\teventName: string,\n\t\tconn: Conn<S, CP, CS, V, I, DB>,\n\t) => Promise<void>;\n}\n\nexport async function processMessage<\n\tS,\n\tCP,\n\tCS,\n\tV,\n\tI,\n\tDB extends AnyDatabaseProvider,\n>(\n\tmessage: protocol.ToServer,\n\tactor: ActorInstance<S, CP, CS, V, I, DB>,\n\tconn: Conn<S, CP, CS, V, I, DB>,\n\thandler: ProcessMessageHandler<S, CP, CS, V, I, DB>,\n) {\n\tlet actionId: bigint | undefined;\n\tlet actionName: string | undefined;\n\n\ttry {\n\t\tif (message.body.tag === \"ActionRequest\") {\n\t\t\t// Action request\n\n\t\t\tif (handler.onExecuteAction === undefined) {\n\t\t\t\tthrow new errors.Unsupported(\"Action\");\n\t\t\t}\n\n\t\t\tconst { id, name, args: argsRaw } = message.body.val;\n\t\t\tactionId = id;\n\t\t\tactionName = name;\n\t\t\tconst args = cbor.decode(new Uint8Array(argsRaw));\n\n\t\t\tactor.rLog.debug({\n\t\t\t\tmsg: \"processing action request\",\n\t\t\t\tactionId: id,\n\t\t\t\tactionName: name,\n\t\t\t});\n\n\t\t\tconst ctx = new ActionContext<S, CP, CS, V, I, DB>(\n\t\t\t\tactor.actorContext,\n\t\t\t\tconn,\n\t\t\t);\n\n\t\t\t// Process the action request and wait for the result\n\t\t\t// This will wait for async actions to complete\n\t\t\tconst output = await handler.onExecuteAction(ctx, name, args);\n\n\t\t\tactor.rLog.debug({\n\t\t\t\tmsg: \"sending action response\",\n\t\t\t\tactionId: id,\n\t\t\t\tactionName: name,\n\t\t\t\toutputType: typeof output,\n\t\t\t\tisPromise: output instanceof Promise,\n\t\t\t});\n\n\t\t\t// Send the response back to the client\n\t\t\tconn._sendMessage(\n\t\t\t\tnew CachedSerializer<protocol.ToClient>(\n\t\t\t\t\t{\n\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\ttag: \"ActionResponse\",\n\t\t\t\t\t\t\tval: {\n\t\t\t\t\t\t\t\tid: id,\n\t\t\t\t\t\t\t\toutput: bufferToArrayBuffer(cbor.encode(output)),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tTO_CLIENT_VERSIONED,\n\t\t\t\t),\n\t\t\t);\n\n\t\t\tactor.rLog.debug({ msg: \"action response sent\", id, name: name });\n\t\t} else if (message.body.tag === \"SubscriptionRequest\") {\n\t\t\t// Subscription request\n\n\t\t\tif (\n\t\t\t\thandler.onSubscribe === undefined ||\n\t\t\t\thandler.onUnsubscribe === undefined\n\t\t\t) {\n\t\t\t\tthrow new errors.Unsupported(\"Subscriptions\");\n\t\t\t}\n\n\t\t\tconst { eventName, subscribe } = message.body.val;\n\t\t\tactor.rLog.debug({\n\t\t\t\tmsg: \"processing subscription request\",\n\t\t\t\teventName,\n\t\t\t\tsubscribe,\n\t\t\t});\n\n\t\t\tif (subscribe) {\n\t\t\t\tawait handler.onSubscribe(eventName, conn);\n\t\t\t} else {\n\t\t\t\tawait handler.onUnsubscribe(eventName, conn);\n\t\t\t}\n\n\t\t\tactor.rLog.debug({\n\t\t\t\tmsg: \"subscription request completed\",\n\t\t\t\teventName,\n\t\t\t\tsubscribe,\n\t\t\t});\n\t\t} else {\n\t\t\tassertUnreachable(message.body);\n\t\t}\n\t} catch (error) {\n\t\tconst { group, code, message, metadata } = deconstructError(\n\t\t\terror,\n\t\t\tactor.rLog,\n\t\t\t{\n\t\t\t\tconnectionId: conn.id,\n\t\t\t\tactionId,\n\t\t\t\tactionName,\n\t\t\t},\n\t\t);\n\n\t\tactor.rLog.debug({\n\t\t\tmsg: \"sending error response\",\n\t\t\tactionId,\n\t\t\tactionName,\n\t\t\tcode,\n\t\t\tmessage,\n\t\t});\n\n\t\t// Build response\n\t\tconn._sendMessage(\n\t\t\tnew CachedSerializer<protocol.ToClient>(\n\t\t\t\t{\n\t\t\t\t\tbody: {\n\t\t\t\t\t\ttag: \"Error\",\n\t\t\t\t\t\tval: {\n\t\t\t\t\t\t\tgroup,\n\t\t\t\t\t\t\tcode,\n\t\t\t\t\t\t\tmessage,\n\t\t\t\t\t\t\tmetadata: bufferToArrayBuffer(cbor.encode(metadata)),\n\t\t\t\t\t\t\tactionId: actionId ?? null,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tTO_CLIENT_VERSIONED,\n\t\t\t),\n\t\t);\n\n\t\tactor.rLog.debug({ msg: \"error response sent\", actionId, actionName });\n\t}\n}\n\n///**\n// * Use `CachedSerializer` if serializing the same data repeatedly.\n// */\n//export function serialize<T>(value: T, encoding: Encoding): OutputData {\n//\tif (encoding === \"json\") {\n//\t\treturn JSON.stringify(value);\n//\t} else if (encoding === \"cbor\") {\n//\t\t// TODO: Remove this hack, but cbor-x can't handle anything extra in data structures\n//\t\tconst cleanValue = JSON.parse(JSON.stringify(value));\n//\t\treturn cbor.encode(cleanValue);\n//\t} else {\n//\t\tassertUnreachable(encoding);\n//\t}\n//}\n//\n//export async function deserialize(data: InputData, encoding: Encoding) {\n//\tif (encoding === \"json\") {\n//\t\tif (typeof data !== \"string\") {\n//\t\t\tactor.rLog.warn(\"received non-string for json parse\");\n//\t\t\tthrow new errors.MalformedMessage();\n//\t\t} else {\n//\t\t\treturn JSON.parse(data);\n//\t\t}\n//\t} else if (encoding === \"cbor\") {\n//\t\tif (data instanceof Blob) {\n//\t\t\tconst arrayBuffer = await data.arrayBuffer();\n//\t\t\treturn cbor.decode(new Uint8Array(arrayBuffer));\n//\t\t} else if (data instanceof Uint8Array) {\n//\t\t\treturn cbor.decode(data);\n//\t\t} else if (\n//\t\t\tdata instanceof ArrayBuffer ||\n//\t\t\tdata instanceof SharedArrayBuffer\n//\t\t) {\n//\t\t\treturn cbor.decode(new Uint8Array(data));\n//\t\t} else {\n//\t\t\tactor.rLog.warn(\"received non-binary type for cbor parse\");\n//\t\t\tthrow new errors.MalformedMessage();\n//\t\t}\n//\t} else {\n//\t\tassertUnreachable(encoding);\n//\t}\n//}\n","export interface VersionedData<T> {\n\tversion: number;\n\tdata: T;\n}\n\nexport type MigrationFn<TFrom, TTo> = (data: TFrom) => TTo;\n\nexport interface VersionedDataConfig<T> {\n\tcurrentVersion: number;\n\tmigrations: Map<number, MigrationFn<any, any>>;\n\tserializeVersion: (data: T) => Uint8Array;\n\tdeserializeVersion: (bytes: Uint8Array) => T;\n}\n\nexport class VersionedDataHandler<T> {\n\tconstructor(private config: VersionedDataConfig<T>) {}\n\n\tserializeWithEmbeddedVersion(data: T): Uint8Array {\n\t\tconst versioned: VersionedData<Uint8Array> = {\n\t\t\tversion: this.config.currentVersion,\n\t\t\tdata: this.config.serializeVersion(data),\n\t\t};\n\n\t\treturn this.embedVersion(versioned);\n\t}\n\n\tdeserializeWithEmbeddedVersion(bytes: Uint8Array): T {\n\t\tconst versioned = this.extractVersion(bytes);\n\t\treturn this.deserialize(versioned.data, versioned.version);\n\t}\n\n\tserialize(data: T, version: number): Uint8Array {\n\t\treturn this.config.serializeVersion(data);\n\t}\n\n\tdeserialize(bytes: Uint8Array, version: number): T {\n\t\tif (version === this.config.currentVersion) {\n\t\t\treturn this.config.deserializeVersion(bytes);\n\t\t}\n\n\t\tif (version > this.config.currentVersion) {\n\t\t\tthrow new Error(\n\t\t\t\t`Cannot decode data from version ${version}, current version is ${this.config.currentVersion}`,\n\t\t\t);\n\t\t}\n\n\t\tlet currentData: any = this.config.deserializeVersion(bytes);\n\t\tlet currentVersion = version;\n\n\t\twhile (currentVersion < this.config.currentVersion) {\n\t\t\tconst migration = this.config.migrations.get(currentVersion);\n\t\t\tif (!migration) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`No migration found from version ${currentVersion} to ${currentVersion + 1}`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tcurrentData = migration(currentData);\n\t\t\tcurrentVersion++;\n\t\t}\n\n\t\treturn currentData;\n\t}\n\n\tprivate embedVersion(data: VersionedData<Uint8Array>): Uint8Array {\n\t\tconst versionBytes = new Uint8Array(2);\n\t\tnew DataView(versionBytes.buffer).setUint16(0, data.version, true);\n\n\t\tconst result = new Uint8Array(versionBytes.length + data.data.length);\n\t\tresult.set(versionBytes);\n\t\tresult.set(data.data, versionBytes.length);\n\n\t\treturn result;\n\t}\n\n\tprivate extractVersion(bytes: Uint8Array): VersionedData<Uint8Array> {\n\t\tif (bytes.length < 2) {\n\t\t\tthrow new Error(\"Invalid versioned data: too short\");\n\t\t}\n\n\t\tconst version = new DataView(bytes.buffer, bytes.byteOffset).getUint16(\n\t\t\t0,\n\t\t\ttrue,\n\t\t);\n\t\tconst data = bytes.slice(2);\n\n\t\treturn { version, data };\n\t}\n}\n\nexport function createVersionedDataHandler<T>(\n\tconfig: VersionedDataConfig<T>,\n): VersionedDataHandler<T> {\n\treturn new VersionedDataHandler(config);\n}\n","import * as bare from \"@bare-ts/lib\"\n\nconst config = /* @__PURE__ */ bare.Config({})\n\nexport type uint = bigint\n\nexport type Init = {\n readonly actorId: string,\n readonly connectionId: string,\n readonly connectionToken: string,\n}\n\nexport function readInit(bc: bare.ByteCursor): Init {\n return {\n actorId: bare.readString(bc),\n connectionId: bare.readString(bc),\n connectionToken: bare.readString(bc),\n }\n}\n\nexport function writeInit(bc: bare.ByteCursor, x: Init): void {\n bare.writeString(bc, x.actorId)\n bare.writeString(bc, x.connectionId)\n bare.writeString(bc, x.connectionToken)\n}\n\nfunction read0(bc: bare.ByteCursor): ArrayBuffer | null {\n return bare.readBool(bc)\n ? bare.readData(bc)\n : null\n}\n\nfunction write0(bc: bare.ByteCursor, x: ArrayBuffer | null): void {\n bare.writeBool(bc, x !== null)\n if (x !== null) {\n bare.writeData(bc, x)\n }\n}\n\nfunction read1(bc: bare.ByteCursor): uint | null {\n return bare.readBool(bc)\n ? bare.readUint(bc)\n : null\n}\n\nfunction write1(bc: bare.ByteCursor, x: uint | null): void {\n bare.writeBool(bc, x !== null)\n if (x !== null) {\n bare.writeUint(bc, x)\n }\n}\n\nexport type Error = {\n readonly group: string,\n readonly code: string,\n readonly message: string,\n readonly metadata: ArrayBuffer | null,\n readonly actionId: uint | null,\n}\n\nexport function readError(bc: bare.ByteCursor): Error {\n return {\n group: bare.readString(bc),\n code: bare.readString(bc),\n message: bare.readString(bc),\n metadata: read0(bc),\n actionId: read1(bc),\n }\n}\n\nexport function writeError(bc: bare.ByteCursor, x: Error): void {\n bare.writeString(bc, x.group)\n bare.writeString(bc, x.code)\n bare.writeString(bc, x.message)\n write0(bc, x.metadata)\n write1(bc, x.actionId)\n}\n\nexport type ActionResponse = {\n readonly id: uint,\n readonly output: ArrayBuffer,\n}\n\nexport function readActionResponse(bc: bare.ByteCursor): ActionResponse {\n return {\n id: bare.readUint(bc),\n output: bare.readData(bc),\n }\n}\n\nexport function writeActionResponse(bc: bare.ByteCursor, x: ActionResponse): void {\n bare.writeUint(bc, x.id)\n bare.writeData(bc, x.output)\n}\n\nexport type Event = {\n readonly name: string,\n readonly args: ArrayBuffer,\n}\n\nexport function readEvent(bc: bare.ByteCursor): Event {\n return {\n name: bare.readString(bc),\n args: bare.readData(bc),\n }\n}\n\nexport function writeEvent(bc: bare.ByteCursor, x: Event): void {\n bare.writeString(bc, x.name)\n bare.writeData(bc, x.args)\n}\n\nexport type ToClientBody =\n | { readonly tag: \"Init\", readonly val: Init }\n | { readonly tag: \"Error\", readonly val: Error }\n | { readonly tag: \"ActionResponse\", readonly val: ActionResponse }\n | { readonly tag: \"Event\", readonly val: Event }\n\nexport function readToClientBody(bc: bare.ByteCursor): ToClientBody {\n const offset = bc.offset\n const tag = bare.readU8(bc)\n switch (tag) {\n case 0:\n return { tag: \"Init\", val: readInit(bc) }\n case 1:\n return { tag: \"Error\", val: readError(bc) }\n case 2:\n return { tag: \"ActionResponse\", val: readActionResponse(bc) }\n case 3:\n return { tag: \"Event\", val: readEvent(bc) }\n default: {\n bc.offset = offset\n throw new bare.BareError(offset, \"invalid tag\")\n }\n }\n}\n\nexport function writeToClientBody(bc: bare.ByteCursor, x: ToClientBody): void {\n switch (x.tag) {\n case \"Init\": {\n bare.writeU8(bc, 0)\n writeInit(bc, x.val)\n break\n }\n case \"Error\": {\n bare.writeU8(bc, 1)\n writeError(bc, x.val)\n break\n }\n case \"ActionResponse\": {\n bare.writeU8(bc, 2)\n writeActionResponse(bc, x.val)\n break\n }\n case \"Event\": {\n bare.writeU8(bc, 3)\n writeEvent(bc, x.val)\n break\n }\n }\n}\n\nexport type ToClient = {\n readonly body: ToClientBody,\n}\n\nexport function readToClient(bc: bare.ByteCursor): ToClient {\n return {\n body: readToClientBody(bc),\n }\n}\n\nexport function writeToClient(bc: bare.ByteCursor, x: ToClient): void {\n writeToClientBody(bc, x.body)\n}\n\nexport function encodeToClient(x: ToClient): Uint8Array {\n const bc = new bare.ByteCursor(\n new Uint8Array(config.initialBufferLength),\n config\n )\n writeToClient(bc, x)\n return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset)\n}\n\nexport function decodeToClient(bytes: Uint8Array): ToClient {\n const bc = new bare.ByteCursor(bytes, config)\n const result = readToClient(bc)\n if (bc.offset < bc.view.byteLength) {\n throw new bare.BareError(bc.offset, \"remaining bytes\")\n }\n return result\n}\n\nexport type ActionRequest = {\n readonly id: uint,\n readonly name: string,\n readonly args: ArrayBuffer,\n}\n\nexport function readActionRequest(bc: bare.ByteCursor): ActionRequest {\n return {\n id: bare.readUint(bc),\n name: bare.readString(bc),\n args: bare.readData(bc),\n }\n}\n\nexport function writeActionRequest(bc: bare.ByteCursor, x: ActionRequest): void {\n bare.writeUint(bc, x.id)\n bare.writeString(bc, x.name)\n bare.writeData(bc, x.args)\n}\n\nexport type SubscriptionRequest = {\n readonly eventName: string,\n readonly subscribe: boolean,\n}\n\nexport function readSubscriptionRequest(bc: bare.ByteCursor): SubscriptionRequest {\n return {\n eventName: bare.readString(bc),\n subscribe: bare.readBool(bc),\n }\n}\n\nexport function writeSubscriptionRequest(bc: bare.ByteCursor, x: SubscriptionRequest): void {\n bare.writeString(bc, x.eventName)\n bare.writeBool(bc, x.subscribe)\n}\n\nexport type ToServerBody =\n | { readonly tag: \"ActionRequest\", readonly val: ActionRequest }\n | { readonly tag: \"SubscriptionRequest\", readonly val: SubscriptionRequest }\n\nexport function readToServerBody(bc: bare.ByteCursor): ToServerBody {\n const offset = bc.offset\n const tag = bare.readU8(bc)\n switch (tag) {\n case 0:\n return { tag: \"ActionRequest\", val: readActionRequest(bc) }\n case 1:\n return { tag: \"SubscriptionRequest\", val: readSubscriptionRequest(bc) }\n default: {\n bc.offset = offset\n throw new bare.BareError(offset, \"invalid tag\")\n }\n }\n}\n\nexport function writeToServerBody(bc: bare.ByteCursor, x: ToServerBody): void {\n switch (x.tag) {\n case \"ActionRequest\": {\n bare.writeU8(bc, 0)\n writeActionRequest(bc, x.val)\n break\n }\n case \"SubscriptionRequest\": {\n bare.writeU8(bc, 1)\n writeSubscriptionRequest(bc, x.val)\n break\n }\n }\n}\n\nexport type ToServer = {\n readonly body: ToServerBody,\n}\n\nexport function readToServer(bc: bare.ByteCursor): ToServer {\n return {\n body: readToServerBody(bc),\n }\n}\n\nexport function writeToServer(bc: bare.ByteCursor, x: ToServer): void {\n writeToServerBody(bc, x.body)\n}\n\nexport function encodeToServer(x: ToServer): Uint8Array {\n const bc = new bare.ByteCursor(\n new Uint8Array(config.initialBufferLength),\n config\n )\n writeToServer(bc, x)\n return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset)\n}\n\nexport function decodeToServer(bytes: Uint8Array): ToServer {\n const bc = new bare.ByteCursor(bytes, config)\n const result = readToServer(bc)\n if (bc.offset < bc.view.byteLength) {\n throw new bare.BareError(bc.offset, \"remaining bytes\")\n }\n return result\n}\n\nexport type HttpActionRequest = {\n readonly args: ArrayBuffer,\n}\n\nexport function readHttpActionRequest(bc: bare.ByteCursor): HttpActionRequest {\n return {\n args: bare.readData(bc),\n }\n}\n\nexport function writeHttpActionRequest(bc: bare.ByteCursor, x: HttpActionRequest): void {\n bare.writeData(bc, x.args)\n}\n\nexport function encodeHttpActionRequest(x: HttpActionRequest): Uint8Array {\n const bc = new bare.ByteCursor(\n new Uint8Array(config.initialBufferLength),\n config\n )\n writeHttpActionRequest(bc, x)\n return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset)\n}\n\nexport function decodeHttpActionRequest(bytes: Uint8Array): HttpActionRequest {\n const bc = new bare.ByteCursor(bytes, config)\n const result = readHttpActionRequest(bc)\n if (bc.offset < bc.view.byteLength) {\n throw new bare.BareError(bc.offset, \"remaining bytes\")\n }\n return result\n}\n\nexport type HttpActionResponse = {\n readonly output: ArrayBuffer,\n}\n\nexport function readHttpActionResponse(bc: bare.ByteCursor): HttpActionResponse {\n return {\n output: bare.readData(bc),\n }\n}\n\nexport function writeHttpActionResponse(bc: bare.ByteCursor, x: HttpActionResponse): void {\n bare.writeData(bc, x.output)\n}\n\nexport function encodeHttpActionResponse(x: HttpActionResponse): Uint8Array {\n const bc = new bare.ByteCursor(\n new Uint8Array(config.initialBufferLength),\n config\n )\n writeHttpActionResponse(bc, x)\n return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset)\n}\n\nexport function decodeHttpActionResponse(bytes: Uint8Array): HttpActionResponse {\n const bc = new bare.ByteCursor(bytes, config)\n const result = readHttpActionResponse(bc)\n if (bc.offset < bc.view.byteLength) {\n throw new bare.BareError(bc.offset, \"remaining bytes\")\n }\n return result\n}\n\nexport type HttpResponseError = {\n readonly group: string,\n readonly code: string,\n readonly message: string,\n readonly metadata: ArrayBuffer | null,\n}\n\nexport function readHttpResponseError(bc: bare.ByteCursor): HttpResponseError {\n return {\n group: bare.readString(bc),\n code: bare.readString(bc),\n message: bare.readString(bc),\n metadata: read0(bc),\n }\n}\n\nexport function writeHttpResponseError(bc: bare.ByteCursor, x: HttpResponseError): void {\n bare.writeString(bc, x.group)\n bare.writeString(bc, x.code)\n bare.writeString(bc, x.message)\n write0(bc, x.metadata)\n}\n\nexport function encodeHttpResponseError(x: HttpResponseError): Uint8Array {\n const bc = new bare.ByteCursor(\n new Uint8Array(config.initialBufferLength),\n config\n )\n writeHttpResponseError(bc, x)\n return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset)\n}\n\nexport function decodeHttpResponseError(bytes: Uint8Array): HttpResponseError {\n const bc = new bare.ByteCursor(bytes, config)\n const result = readHttpResponseError(bc)\n if (bc.offset < bc.view.byteLength) {\n throw new bare.BareError(bc.offset, \"remaining bytes\")\n }\n return result\n}\n\nexport type HttpResolveRequest = null\n\nexport type HttpResolveResponse = {\n readonly actorId: string,\n}\n\nexport function readHttpResolveResponse(bc: bare.ByteCursor): HttpResolveResponse {\n return {\n actorId: bare.readString(bc),\n }\n}\n\nexport function writeHttpResolveResponse(bc: bare.ByteCursor, x: HttpResolveResponse): void {\n bare.writeString(bc, x.actorId)\n}\n\nexport function encodeHttpResolveResponse(x: HttpResolveResponse): Uint8Array {\n const bc = new bare.ByteCursor(\n new Uint8Array(config.initialBufferLength),\n config\n )\n writeHttpResolveResponse(bc, x)\n return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset)\n}\n\nexport function decodeHttpResolveResponse(bytes: Uint8Array): HttpResolveResponse {\n const bc = new bare.ByteCursor(bytes, config)\n const result = readHttpResolveResponse(bc)\n if (bc.offset < bc.view.byteLength) {\n throw new bare.BareError(bc.offset, \"remaining bytes\")\n }\n return result\n}\n","import {\n\tcreateVersionedDataHandler,\n\ttype MigrationFn,\n} from \"@/common/versioned-data\";\nimport * as v1 from \"../../../dist/schemas/client-protocol/v1\";\n\nexport const CURRENT_VERSION = 1;\n\nconst migrations = new Map<number, MigrationFn<any, any>>();\n\nexport const TO_SERVER_VERSIONED = createVersionedDataHandler<v1.ToServer>({\n\tcurrentVersion: CURRENT_VERSION,\n\tmigrations,\n\tserializeVersion: (data) => v1.encodeToServer(data),\n\tdeserializeVersion: (bytes) => v1.decodeToServer(bytes),\n});\n\nexport const TO_CLIENT_VERSIONED = createVersionedDataHandler<v1.ToClient>({\n\tcurrentVersion: CURRENT_VERSION,\n\tmigrations,\n\tserializeVersion: (data) => v1.encodeToClient(data),\n\tdeserializeVersion: (bytes) => v1.decodeToClient(bytes),\n});\n\nexport const HTTP_ACTION_REQUEST_VERSIONED =\n\tcreateVersionedDataHandler<v1.HttpActionRequest>({\n\t\tcurrentVersion: CURRENT_VERSION,\n\t\tmigrations,\n\t\tserializeVersion: (data) => v1.encodeHttpActionRequest(data),\n\t\tdeserializeVersion: (bytes) => v1.decodeHttpActionRequest(bytes),\n\t});\n\nexport const HTTP_ACTION_RESPONSE_VERSIONED =\n\tcreateVersionedDataHandler<v1.HttpActionResponse>({\n\t\tcurrentVersion: CURRENT_VERSION,\n\t\tmigrations,\n\t\tserializeVersion: (data) => v1.encodeHttpActionResponse(data),\n\t\tdeserializeVersion: (bytes) => v1.decodeHttpActionResponse(bytes),\n\t});\n\nexport const HTTP_RESPONSE_ERROR_VERSIONED =\n\tcreateVersionedDataHandler<v1.HttpResponseError>({\n\t\tcurrentVersion: CURRENT_VERSION,\n\t\tmigrations,\n\t\tserializeVersion: (data) => v1.encodeHttpResponseError(data),\n\t\tdeserializeVersion: (bytes) => v1.decodeHttpResponseError(bytes),\n\t});\n\nexport const HTTP_RESOLVE_REQUEST_VERSIONED =\n\tcreateVersionedDataHandler<v1.HttpResolveRequest>({\n\t\tcurrentVersion: CURRENT_VERSION,\n\t\tmigrations,\n\t\tserializeVersion: (_) => new Uint8Array(),\n\t\tdeserializeVersion: (bytes) => null,\n\t});\n\nexport const HTTP_RESOLVE_RESPONSE_VERSIONED =\n\tcreateVersionedDataHandler<v1.HttpResolveResponse>({\n\t\tcurrentVersion: CURRENT_VERSION,\n\t\tmigrations,\n\t\tserializeVersion: (data) => v1.encodeHttpResolveResponse(data),\n\t\tdeserializeVersion: (bytes) => v1.decodeHttpResolveResponse(bytes),\n\t});\n","import type { ActorKey } from \"@/actor/mod\";\nimport type { Client } from \"@/client/client\";\nimport type { Logger } from \"@/common/log\";\nimport type { Registry } from \"@/registry/mod\";\nimport type { Conn, ConnId } from \"./conn\";\nimport type { ActorContext } from \"./context\";\nimport type { AnyDatabaseProvider, InferDatabaseClient } from \"./database\";\nimport type { SaveStateOptions } from \"./instance\";\nimport type { Schedule } from \"./schedule\";\n\n/**\n * Context for a remote procedure call.\n *\n * @typeParam A Actor this action belongs to\n */\nexport class ActionContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n> {\n\t#actorContext: ActorContext<\n\t\tTState,\n\t\tTConnParams,\n\t\tTConnState,\n\t\tTVars,\n\t\tTInput,\n\t\tTDatabase\n\t>;\n\n\t/**\n\t * Should not be called directly.\n\t *\n\t * @param actorContext - The actor context\n\t * @param conn - The connection associated with the action\n\t */\n\tconstructor(\n\t\tactorContext: ActorContext<\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>,\n\t\tpublic readonly conn: 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>,\n\t) {\n\t\tthis.#actorContext = actorContext;\n\t}\n\n\t/**\n\t * Get the actor state\n\t */\n\tget state(): TState {\n\t\treturn this.#actorContext.state;\n\t}\n\n\t/**\n\t * Get the actor variables\n\t */\n\tget vars(): TVars {\n\t\treturn this.#actorContext.vars;\n\t}\n\n\t/**\n\t * Broadcasts an event to all connected clients.\n\t */\n\tbroadcast(name: string, ...args: any[]): void {\n\t\tthis.#actorContext.broadcast(name, ...args);\n\t}\n\n\t/**\n\t * Gets the logger instance.\n\t */\n\tget log(): Logger {\n\t\treturn this.#actorContext.log;\n\t}\n\n\t/**\n\t * Gets actor ID.\n\t */\n\tget actorId(): string {\n\t\treturn this.#actorContext.actorId;\n\t}\n\n\t/**\n\t * Gets the actor name.\n\t */\n\tget name(): string {\n\t\treturn this.#actorContext.name;\n\t}\n\n\t/**\n\t * Gets the actor key.\n\t */\n\tget key(): ActorKey {\n\t\treturn this.#actorContext.key;\n\t}\n\n\t/**\n\t * Gets the region.\n\t */\n\tget region(): string {\n\t\treturn this.#actorContext.region;\n\t}\n\n\t/**\n\t * Gets the scheduler.\n\t */\n\tget schedule(): Schedule {\n\t\treturn this.#actorContext.schedule;\n\t}\n\n\t/**\n\t * Gets the map of connections.\n\t */\n\tget conns(): Map<\n\t\tConnId,\n\t\tConn<TState, TConnParams, TConnState, TVars, TInput, TDatabase>\n\t> {\n\t\treturn this.#actorContext.conns;\n\t}\n\n\t/**\n\t * Returns the client for the given registry.\n\t */\n\tclient<R extends Registry<any>>(): Client<R> {\n\t\treturn this.#actorContext.client<R>();\n\t}\n\n\t/**\n\t * @experimental\n\t */\n\tget db(): InferDatabaseClient<TDatabase> {\n\t\treturn this.#actorContext.db;\n\t}\n\n\t/**\n\t * Forces the state to get saved.\n\t */\n\tasync saveState(opts: SaveStateOptions): Promise<void> {\n\t\treturn this.#actorContext.saveState(opts);\n\t}\n\n\t/**\n\t * Prevents the actor from sleeping until promise is complete.\n\t */\n\twaitUntil(promise: Promise<void>): void {\n\t\tthis.#actorContext.waitUntil(promise);\n\t}\n\n\t/**\n\t * AbortSignal that fires when the actor is stopping.\n\t */\n\tget abortSignal(): AbortSignal {\n\t\treturn this.#actorContext.abortSignal;\n\t}\n\n\t/**\n\t * Forces the actor to sleep.\n\t *\n\t * Not supported on all drivers.\n\t *\n\t * @experimental\n\t */\n\tsleep() {\n\t\tthis.#actorContext.sleep();\n\t}\n}\n","import type { cors } from \"hono/cors\";\nimport { z } from \"zod\";\nimport { HEADER_ACTOR_QUERY } from \"@/driver-helpers/mod\";\nimport { getEnvUniversal } from \"@/utils\";\n\ntype CorsOptions = NonNullable<Parameters<typeof cors>[0]>;\n\nconst defaultTokenFn = () => {\n\tconst envToken = getEnvUniversal(\"RIVETKIT_INSPECTOR_TOKEN\");\n\n\tif (envToken) {\n\t\treturn envToken;\n\t}\n\n\treturn \"\";\n};\n\nconst defaultEnabled = () => {\n\treturn (\n\t\tgetEnvUniversal(\"NODE_ENV\") !== \"production\" ||\n\t\t!getEnvUniversal(\"RIVETKIT_INSPECTOR_DISABLE\")\n\t);\n};\n\nconst defaultInspectorOrigins = [\n\t\"http://localhost:43708\",\n\t\"http://localhost:43709\",\n\t\"https://studio.rivet.gg\",\n\t\"https://inspect.rivet.dev\",\n];\n\nconst defaultCors: CorsOptions = {\n\torigin: (origin) => {\n\t\tif (\n\t\t\tdefaultInspectorOrigins.includes(origin) ||\n\t\t\t(origin.startsWith(\"https://\") && origin.endsWith(\"rivet-dev.vercel.app\"))\n\t\t) {\n\t\t\treturn origin;\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t},\n\tallowMethods: [\"GET\", \"POST\", \"PUT\", \"PATCH\", \"DELETE\", \"OPTIONS\"],\n\tallowHeaders: [\n\t\t\"Authorization\",\n\t\t\"Content-Type\",\n\t\t\"User-Agent\",\n\t\t\"baggage\",\n\t\t\"sentry-trace\",\n\t\t\"x-rivet-actor\",\n\t\t\"x-rivet-target\",\n\t],\n\tmaxAge: 3600,\n\tcredentials: true,\n};\n\nexport const InspectorConfigSchema = z\n\t.object({\n\t\tenabled: z\n\t\t\t.boolean()\n\t\t\t.or(\n\t\t\t\tz.object({\n\t\t\t\t\tactor: z.boolean().optional().default(true),\n\t\t\t\t\tmanager: z.boolean().optional().default(true),\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.optional()\n\t\t\t.default(defaultEnabled),\n\t\t/** CORS configuration for the router. Uses Hono's CORS middleware options. */\n\t\tcors: z\n\t\t\t.custom<CorsOptions>()\n\t\t\t.optional()\n\t\t\t.default(() => defaultCors),\n\n\t\t/**\n\t\t * Token used to access the Inspector.\n\t\t */\n\t\ttoken: z\n\t\t\t.function()\n\t\t\t.returns(z.string())\n\t\t\t.optional()\n\t\t\t.default(() => defaultTokenFn),\n\n\t\t/**\n\t\t * Default RivetKit server endpoint for Rivet Inspector to connect to. This should be the same endpoint as what you use for your Rivet client to connect to RivetKit.\n\t\t *\n\t\t * This is a convenience property just for printing out the inspector URL.\n\t\t */\n\t\tdefaultEndpoint: z.string().optional(),\n\t})\n\t.optional()\n\t.default(() => ({\n\t\tenabled: defaultEnabled(),\n\t\ttoken: defaultTokenFn,\n\t\tcors: defaultCors,\n\t}));\nexport type InspectorConfig = z.infer<typeof InspectorConfigSchema>;\n","import * as cbor from \"cbor-x\";\nimport type * as schema from \"@/schemas/actor-persist/mod\";\nimport { PERSISTED_ACTOR_VERSIONED } from \"@/schemas/actor-persist/versioned\";\nimport { bufferToArrayBuffer } from \"@/utils\";\n\nexport function serializeEmptyPersistData(\n\tinput: unknown | undefined,\n): Uint8Array {\n\tconst persistData: schema.PersistedActor = {\n\t\tinput: input !== undefined ? bufferToArrayBuffer(cbor.encode(input)) : null,\n\t\thasInitialized: false,\n\t\tstate: bufferToArrayBuffer(cbor.encode(undefined)),\n\t\tconnections: [],\n\t\tscheduledEvents: [],\n\t};\n\treturn PERSISTED_ACTOR_VERS