UNPKG

rivetkit

Version:

Lightweight libraries for building stateful actors on edge platforms

239 lines (235 loc) 6.26 kB
import { EncodingSchema, HEADER_ACTOR_ID, HEADER_ACTOR_QUERY, HEADER_CONN_ID, HEADER_CONN_PARAMS, HEADER_CONN_TOKEN, HEADER_ENCODING } from "./chunk-MLQIYKAZ.js"; // src/inspector/protocol/common.ts import z2 from "zod/v4"; // src/manager/protocol/query.ts import { z } from "zod"; var MAX_ACTOR_KEY_SIZE = 128; var ActorKeySchema = z.array(z.string().max(MAX_ACTOR_KEY_SIZE)); var CreateRequestSchema = z.object({ name: z.string(), key: ActorKeySchema, input: z.unknown().optional(), region: z.string().optional() }); var GetForKeyRequestSchema = z.object({ name: z.string(), key: ActorKeySchema }); var GetOrCreateRequestSchema = z.object({ name: z.string(), key: ActorKeySchema, input: z.unknown().optional(), region: z.string().optional() }); var ActorQuerySchema = z.union([ z.object({ getForId: z.object({ name: z.string(), actorId: z.string() }) }), z.object({ getForKey: GetForKeyRequestSchema }), z.object({ getOrCreateForKey: GetOrCreateRequestSchema }), z.object({ create: CreateRequestSchema }) ]); var ConnectRequestSchema = z.object({ query: ActorQuerySchema.describe(HEADER_ACTOR_QUERY), encoding: EncodingSchema.describe(HEADER_ENCODING), connParams: z.string().optional().describe(HEADER_CONN_PARAMS) }); var ConnectWebSocketRequestSchema = z.object({ query: ActorQuerySchema.describe("query"), encoding: EncodingSchema.describe("encoding"), connParams: z.unknown().optional().describe("conn_params") }); var ConnMessageRequestSchema = z.object({ actorId: z.string().describe(HEADER_ACTOR_ID), connId: z.string().describe(HEADER_CONN_ID), encoding: EncodingSchema.describe(HEADER_ENCODING), connToken: z.string().describe(HEADER_CONN_TOKEN) }); var ResolveRequestSchema = z.object({ query: ActorQuerySchema.describe(HEADER_ACTOR_QUERY), connParams: z.string().optional().describe(HEADER_CONN_PARAMS) }); // src/inspector/protocol/common.ts var ActorId = z2.string().brand("ActorId"); var ActorFeature = /* @__PURE__ */ ((ActorFeature2) => { ActorFeature2["Logs"] = "logs"; ActorFeature2["Config"] = "config"; ActorFeature2["Connections"] = "connections"; ActorFeature2["State"] = "state"; ActorFeature2["Console"] = "console"; ActorFeature2["Runtime"] = "runtime"; ActorFeature2["Metrics"] = "metrics"; ActorFeature2["EventsMonitoring"] = "events-monitoring"; ActorFeature2["Database"] = "database"; return ActorFeature2; })(ActorFeature || {}); var ActorLogEntry = z2.object({ level: z2.string(), message: z2.string(), timestamp: z2.string(), metadata: z2.record(z2.string(), z2.any()).optional() }); var ActorSchema = z2.object({ id: ActorId, name: z2.string(), key: z2.array(z2.string()), tags: z2.record(z2.string(), z2.string()).optional(), region: z2.string().optional(), createdAt: z2.string().optional(), startedAt: z2.string().optional(), destroyedAt: z2.string().optional(), features: z2.array(z2.enum(ActorFeature)).optional() }); var OperationSchema = z2.discriminatedUnion("op", [ z2.object({ op: z2.literal("remove"), path: z2.string() }), z2.object({ op: z2.literal("add"), path: z2.string(), value: z2.unknown() }), z2.object({ op: z2.literal("replace"), path: z2.string(), value: z2.unknown() }), z2.object({ op: z2.literal("move"), path: z2.string(), from: z2.string() }), z2.object({ op: z2.literal("copy"), path: z2.string(), from: z2.string() }), z2.object({ op: z2.literal("test"), path: z2.string(), value: z2.unknown() }) ]); var PatchSchema = z2.array(OperationSchema); var ConnectionSchema = z2.object({ params: z2.record(z2.string(), z2.any()).optional(), id: z2.string(), stateEnabled: z2.boolean().optional(), state: z2.any().optional(), auth: z2.record(z2.string(), z2.any()).optional() }); var RealtimeEventSchema = z2.discriminatedUnion("type", [ z2.object({ type: z2.literal("action"), name: z2.string(), args: z2.array(z2.any()), connId: z2.string() }), z2.object({ type: z2.literal("broadcast"), eventName: z2.string(), args: z2.array(z2.any()) }), z2.object({ type: z2.literal("subscribe"), eventName: z2.string(), connId: z2.string() }), z2.object({ type: z2.literal("unsubscribe"), eventName: z2.string(), connId: z2.string() }), z2.object({ type: z2.literal("event"), eventName: z2.string(), args: z2.array(z2.any()), connId: z2.string() }) ]); var RecordedRealtimeEventSchema = RealtimeEventSchema.and( z2.object({ id: z2.string(), timestamp: z2.number() }) ); var DatabaseQuerySchema = z2.object({ sql: z2.string(), args: z2.array(z2.string().or(z2.number())) }); var TableSchema = z2.object({ schema: z2.string(), name: z2.string(), type: z2.enum(["table", "view"]) }); var TablesSchema = z2.array(TableSchema); var ColumnSchema = z2.object({ cid: z2.number(), name: z2.string(), type: z2.string().toLowerCase().transform((val) => { return z2.enum(["integer", "text", "real", "blob", "numeric", "serial"]).parse(val); }), notnull: z2.coerce.boolean(), dflt_value: z2.string().nullable(), pk: z2.coerce.boolean().nullable() }); var ColumnsSchema = z2.array(ColumnSchema); var ForeignKeySchema = z2.object({ id: z2.number(), table: z2.string(), from: z2.string(), to: z2.string() }); var ForeignKeysSchema = z2.array(ForeignKeySchema); var BuildSchema = z2.object({ name: z2.string(), createdAt: z2.string().optional(), tags: z2.record(z2.string(), z2.string()).optional() }); var BuildsSchema = z2.array(BuildSchema); var CreateActorSchema = z2.object({ name: z2.string(), // FIXME: Replace with ActorKeySchema when ready key: z2.array(z2.string().max(MAX_ACTOR_KEY_SIZE)), input: z2.any() }); export { ActorId, ActorFeature, ActorLogEntry, ActorSchema, OperationSchema, PatchSchema, ConnectionSchema, RealtimeEventSchema, RecordedRealtimeEventSchema, DatabaseQuerySchema, TableSchema, TablesSchema, ColumnSchema, ColumnsSchema, ForeignKeySchema, ForeignKeysSchema, BuildSchema, BuildsSchema, CreateActorSchema }; //# sourceMappingURL=chunk-KGDZYQYE.js.map