rivetkit
Version:
Lightweight libraries for building stateful actors on edge platforms
239 lines (235 loc) • 6.26 kB
JavaScript
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