200 lines
4.9 KiB
TypeScript
200 lines
4.9 KiB
TypeScript
import AjvPkg, { type ErrorObject } from "ajv";
|
|
import {
|
|
type AgentEvent,
|
|
AgentEventSchema,
|
|
AgentParamsSchema,
|
|
type ChatEvent,
|
|
ChatEventSchema,
|
|
ChatHistoryParamsSchema,
|
|
ChatSendParamsSchema,
|
|
type ConnectParams,
|
|
ConnectParamsSchema,
|
|
type CronAddParams,
|
|
CronAddParamsSchema,
|
|
type CronJob,
|
|
CronJobSchema,
|
|
type CronListParams,
|
|
CronListParamsSchema,
|
|
type CronRemoveParams,
|
|
CronRemoveParamsSchema,
|
|
type CronRunLogEntry,
|
|
type CronRunParams,
|
|
CronRunParamsSchema,
|
|
type CronRunsParams,
|
|
CronRunsParamsSchema,
|
|
type CronStatusParams,
|
|
CronStatusParamsSchema,
|
|
type CronUpdateParams,
|
|
CronUpdateParamsSchema,
|
|
ErrorCodes,
|
|
type ErrorShape,
|
|
ErrorShapeSchema,
|
|
type EventFrame,
|
|
EventFrameSchema,
|
|
errorShape,
|
|
type GatewayFrame,
|
|
GatewayFrameSchema,
|
|
type HelloOk,
|
|
HelloOkSchema,
|
|
type NodePairApproveParams,
|
|
NodePairApproveParamsSchema,
|
|
type NodePairListParams,
|
|
NodePairListParamsSchema,
|
|
type NodePairRejectParams,
|
|
NodePairRejectParamsSchema,
|
|
type NodePairRequestParams,
|
|
NodePairRequestParamsSchema,
|
|
type NodePairVerifyParams,
|
|
NodePairVerifyParamsSchema,
|
|
PROTOCOL_VERSION,
|
|
type PresenceEntry,
|
|
PresenceEntrySchema,
|
|
ProtocolSchemas,
|
|
type RequestFrame,
|
|
RequestFrameSchema,
|
|
type ResponseFrame,
|
|
ResponseFrameSchema,
|
|
SendParamsSchema,
|
|
type ShutdownEvent,
|
|
ShutdownEventSchema,
|
|
type Snapshot,
|
|
SnapshotSchema,
|
|
type StateVersion,
|
|
StateVersionSchema,
|
|
type TickEvent,
|
|
TickEventSchema,
|
|
type WakeParams,
|
|
WakeParamsSchema,
|
|
} from "./schema.js";
|
|
|
|
const ajv = new (
|
|
AjvPkg as unknown as new (
|
|
opts?: object,
|
|
) => import("ajv").default
|
|
)({
|
|
allErrors: true,
|
|
strict: false,
|
|
removeAdditional: false,
|
|
});
|
|
|
|
export const validateConnectParams =
|
|
ajv.compile<ConnectParams>(ConnectParamsSchema);
|
|
export const validateRequestFrame =
|
|
ajv.compile<RequestFrame>(RequestFrameSchema);
|
|
export const validateSendParams = ajv.compile(SendParamsSchema);
|
|
export const validateAgentParams = ajv.compile(AgentParamsSchema);
|
|
export const validateWakeParams = ajv.compile<WakeParams>(WakeParamsSchema);
|
|
export const validateNodePairRequestParams = ajv.compile<NodePairRequestParams>(
|
|
NodePairRequestParamsSchema,
|
|
);
|
|
export const validateNodePairListParams = ajv.compile<NodePairListParams>(
|
|
NodePairListParamsSchema,
|
|
);
|
|
export const validateNodePairApproveParams = ajv.compile<NodePairApproveParams>(
|
|
NodePairApproveParamsSchema,
|
|
);
|
|
export const validateNodePairRejectParams = ajv.compile<NodePairRejectParams>(
|
|
NodePairRejectParamsSchema,
|
|
);
|
|
export const validateNodePairVerifyParams = ajv.compile<NodePairVerifyParams>(
|
|
NodePairVerifyParamsSchema,
|
|
);
|
|
export const validateCronListParams =
|
|
ajv.compile<CronListParams>(CronListParamsSchema);
|
|
export const validateCronStatusParams = ajv.compile<CronStatusParams>(
|
|
CronStatusParamsSchema,
|
|
);
|
|
export const validateCronAddParams =
|
|
ajv.compile<CronAddParams>(CronAddParamsSchema);
|
|
export const validateCronUpdateParams = ajv.compile<CronUpdateParams>(
|
|
CronUpdateParamsSchema,
|
|
);
|
|
export const validateCronRemoveParams = ajv.compile<CronRemoveParams>(
|
|
CronRemoveParamsSchema,
|
|
);
|
|
export const validateCronRunParams =
|
|
ajv.compile<CronRunParams>(CronRunParamsSchema);
|
|
export const validateCronRunsParams =
|
|
ajv.compile<CronRunsParams>(CronRunsParamsSchema);
|
|
export const validateChatHistoryParams = ajv.compile(ChatHistoryParamsSchema);
|
|
export const validateChatSendParams = ajv.compile(ChatSendParamsSchema);
|
|
export const validateChatEvent = ajv.compile(ChatEventSchema);
|
|
|
|
export function formatValidationErrors(
|
|
errors: ErrorObject[] | null | undefined,
|
|
) {
|
|
if (!errors) return "unknown validation error";
|
|
return ajv.errorsText(errors, { separator: "; " });
|
|
}
|
|
|
|
export {
|
|
ConnectParamsSchema,
|
|
HelloOkSchema,
|
|
RequestFrameSchema,
|
|
ResponseFrameSchema,
|
|
EventFrameSchema,
|
|
GatewayFrameSchema,
|
|
PresenceEntrySchema,
|
|
SnapshotSchema,
|
|
ErrorShapeSchema,
|
|
StateVersionSchema,
|
|
AgentEventSchema,
|
|
ChatEventSchema,
|
|
SendParamsSchema,
|
|
AgentParamsSchema,
|
|
WakeParamsSchema,
|
|
NodePairRequestParamsSchema,
|
|
NodePairListParamsSchema,
|
|
NodePairApproveParamsSchema,
|
|
NodePairRejectParamsSchema,
|
|
NodePairVerifyParamsSchema,
|
|
CronJobSchema,
|
|
CronListParamsSchema,
|
|
CronStatusParamsSchema,
|
|
CronAddParamsSchema,
|
|
CronUpdateParamsSchema,
|
|
CronRemoveParamsSchema,
|
|
CronRunParamsSchema,
|
|
CronRunsParamsSchema,
|
|
ChatHistoryParamsSchema,
|
|
ChatSendParamsSchema,
|
|
TickEventSchema,
|
|
ShutdownEventSchema,
|
|
ProtocolSchemas,
|
|
PROTOCOL_VERSION,
|
|
ErrorCodes,
|
|
errorShape,
|
|
};
|
|
|
|
export type {
|
|
GatewayFrame,
|
|
ConnectParams,
|
|
HelloOk,
|
|
RequestFrame,
|
|
ResponseFrame,
|
|
EventFrame,
|
|
PresenceEntry,
|
|
Snapshot,
|
|
ErrorShape,
|
|
StateVersion,
|
|
AgentEvent,
|
|
ChatEvent,
|
|
TickEvent,
|
|
ShutdownEvent,
|
|
WakeParams,
|
|
NodePairRequestParams,
|
|
NodePairListParams,
|
|
NodePairApproveParams,
|
|
NodePairRejectParams,
|
|
NodePairVerifyParams,
|
|
CronJob,
|
|
CronListParams,
|
|
CronStatusParams,
|
|
CronAddParams,
|
|
CronUpdateParams,
|
|
CronRemoveParams,
|
|
CronRunParams,
|
|
CronRunsParams,
|
|
CronRunLogEntry,
|
|
};
|