import { StandardSchemaV1 } from "@standard-schema/spec"; import { Patch } from "immer"; //#region src/domain/wrpcSchema.d.ts type Maybe = T | unknown; type MaybePromise = T | Promise; type Shape = StandardSchemaV1; type InferShapeInput, Fallback = unknown> = S extends Shape ? I : Fallback; type InferShapeOutput, Fallback = unknown> = S extends Shape ? O : Fallback; type MaybeShapeArgs> = S extends Shape ? [input: InferShapeInput] : []; type MaybeShapeListener> = S extends Shape ? (input: InferShapeOutput) => void : () => void; interface ShapeValidResult { valid: true; data: unknown; } interface ShapeInvalidResult { valid: false; issues: readonly StandardSchemaV1.Issue[]; } type ShapeValidateResult = ShapeValidResult | ShapeInvalidResult; declare const validateShape: (shape?: Maybe, data?: unknown) => Promise; //#endregion //#region src/domain/wrpcRoomBroadcast.d.ts type WrpcRoomBroadcastData = unknown> = { input?: Input; }; type WrpcRoomBroadcastDefinition = unknown> = { input: Input extends Shape ? Input : undefined; }; type WrpcRoomBroadcast = unknown> = WrpcRoomBroadcastDefinition; type WrpcRoomBroadcasts> = unknown> = Broadcasts extends Record ? { broadcasts: Broadcasts; } : { broadcasts?: Broadcasts; }; declare const defineWrpcRoomBroadcast: = unknown>(wrpcRoomBroadcastData: WrpcRoomBroadcastData) => WrpcRoomBroadcast; //#endregion //#region src/domain/wrpcRoomCommand.d.ts type WrpcRoomCommandData = unknown, Output extends Maybe = unknown> = { input?: Input; output?: Output; }; type WrpcRoomCommandDefinition = unknown, Output extends Maybe = unknown> = { input: Input extends Shape ? Input : undefined; output: Output extends Shape ? Output : undefined; }; type WrpcRoomCommand = unknown, Output extends Maybe = unknown> = WrpcRoomCommandDefinition; type WrpcRoomCommands> = unknown> = Commands extends Record ? { commands: Commands; } : { commands?: Commands; }; declare const defineWrpcRoomCommand: = unknown, Output extends Maybe = unknown>(wrpcRoomCommandData: WrpcRoomCommandData) => WrpcRoomCommand; //#endregion //#region src/domain/wrpcRoomConnectionMetadata.d.ts type WrpcRoomConnectionMetadata = unknown> = ConnectionMetadata extends Shape ? { connectionMetadata: ConnectionMetadata; initialConnectionMetadata: InferShapeOutput; } : { connectionMetadata?: ConnectionMetadata; initialConnectionMetadata?: InferShapeOutput; }; //#endregion //#region src/domain/wrpcRoomError.d.ts type WrpcRoomErrors>> = unknown> = { errors?: Errors; }; //#endregion //#region src/domain/wrpcRoomEvent.d.ts type WrpcRoomEventData = unknown> = { input?: Input; }; type WrpcRoomEventDefinition = unknown> = { input: Input extends Shape ? Input : undefined; }; type WrpcRoomEvent = unknown> = WrpcRoomEventDefinition; type WrpcRoomEvents> = unknown> = Events extends Record ? { events: Events; } : { events?: Events; }; declare const defineWrpcRoomEvent: = unknown>(wrpcRoomEventData: WrpcRoomEventData) => WrpcRoomEvent; //#endregion //#region src/domain/wrpcRoomLifecycle.d.ts type WrpcRoomLifecycles, Join extends Maybe> = { create?: Create; join?: Join; }; //#endregion //#region src/domain/wrpcRoomMetadata.d.ts type WrpcRoomMetadata = unknown> = Metadata extends Shape ? { metadata: Metadata; initialMetadata: InferShapeOutput; } : { metadata?: Metadata; initialMetadata?: InferShapeOutput; }; //#endregion //#region src/domain/wrpcRoomSettings.d.ts type WrpcRoomConfig = { maxConnections?: number; locked?: boolean; }; type WrpcRoomSettings = { config?: WrpcRoomConfig; }; //#endregion //#region src/domain/wrpcRoomState.d.ts type WrpcRoomState = unknown> = State extends Shape ? { state: State; initialState: InferShapeOutput; } : { state?: State; initialState?: InferShapeOutput; }; //#endregion //#region src/domain/wrpcRoom.d.ts type WrpcRoomData = unknown, Metadata extends Maybe = unknown, ConnectionMetadata extends Maybe = unknown, Errors extends Maybe>> = unknown, Create extends Maybe = unknown, Join extends Maybe = unknown, Broadcasts extends Maybe> = unknown, Events extends Maybe> = unknown, Commands extends Maybe> = unknown> = WrpcRoomSettings & WrpcRoomState & WrpcRoomMetadata & WrpcRoomConnectionMetadata & WrpcRoomErrors & WrpcRoomLifecycles & WrpcRoomBroadcasts & WrpcRoomEvents & WrpcRoomCommands; type WrpcRoomDefinition = unknown, Metadata extends Maybe = unknown, ConnectionMetadata extends Maybe = unknown, Errors extends Maybe>> = unknown, Create extends Maybe = unknown, Join extends Maybe = unknown, Broadcasts extends Maybe> = unknown, Events extends Maybe> = unknown, Commands extends Maybe> = unknown> = { config?: WrpcRoomConfig; state: State extends Shape ? State : undefined; initialState: InferShapeOutput; metadata: Metadata extends Shape ? Metadata : undefined; initialMetadata: InferShapeOutput; connectionMetadata: ConnectionMetadata extends Shape ? ConnectionMetadata : undefined; initialConnectionMetadata: InferShapeOutput; errors: Errors extends Record> ? Errors : Record>; create: Create extends Shape ? Create : undefined; join: Join extends Shape ? Join : undefined; broadcasts: Broadcasts extends Record ? Broadcasts : Record; events: Events extends Record ? Events : Record; commands: Commands extends Record ? Commands : Record; }; type WrpcRoom = unknown, Metadata extends Maybe = unknown, ConnectionMetadata extends Maybe = unknown, Errors extends Maybe>> = unknown, Create extends Maybe = unknown, Join extends Maybe = unknown, Broadcasts extends Maybe> = unknown, Events extends Maybe> = unknown, Commands extends Maybe> = unknown, WrpcRoomBase extends Maybe = unknown> = WrpcRoomDefinition & { wrpcRoomBase?: WrpcRoomBase; extend: = State, NewRoomMetadata extends Maybe = unknown, NewConnectionMetadata extends Maybe = unknown, NewErrors extends Maybe>> = unknown, NewCreate extends Maybe = unknown, NewJoin extends Maybe = unknown, NewBroadcasts extends Maybe> = unknown, NewEvents extends Maybe> = unknown, NewCommands extends Maybe> = unknown>(extender: (wrpcRoomBase: WrpcRoomDefinition) => WrpcRoomData) => WrpcRoom>; }; declare const defineWrpcRoom: = unknown, Metadata extends Maybe = unknown, ConnectionMetadata extends Maybe = unknown, Errors extends Maybe>> = unknown, Create extends Maybe = unknown, Join extends Maybe = unknown, Broadcasts extends Maybe> = unknown, Events extends Maybe> = unknown, Commands extends Maybe> = unknown, WrpcRoomBase extends Maybe = unknown>(wrpcRoomData: WrpcRoomData, wrpcRoomBase?: WrpcRoomBase) => WrpcRoom; //#endregion //#region src/domain/wrpc.d.ts type WrpcData> = unknown> = WrpcRooms extends Record ? { rooms: WrpcRooms; } : { rooms?: WrpcRooms; }; type WrpcDefinition> = unknown> = { rooms: WrpcRooms extends Record ? WrpcRooms : Record; }; type Wrpc> = unknown> = WrpcDefinition; declare const defineWrpc: > = unknown>(wrpcData: WrpcData) => Wrpc; //#endregion //#region src/domain/wrpcError.d.ts declare enum WrpcErrorCode { ValidationError = "validation_error", RoomNotFound = "room_not_found", AlreadyInRoom = "already_in_room", RoomFull = "room_full", RoomLocked = "room_locked", EventNotFound = "event_not_found", CommandNotFound = "command_not_found", RuntimeError = "runtime_error" } interface WrpcErrorConfig { code: Code; message?: string; defined?: boolean; data?: Data; } declare class WrpcError extends Error { readonly code: Code; readonly defined: boolean; readonly data: Data; constructor(config: WrpcErrorConfig); } //#endregion //#region src/domain/wrpcMessage.d.ts declare enum WrpcMessageType { Config = "config", State = "state", Metadata = "metadata", ConnectionMetadata = "connectionMetadata", Create = "create", Join = "join", Host = "host", Leave = "leave", Broadcast = "broadcast", Event = "event", Command = "command", Removed = "removed", Error = "error" } type WrpcMessageConfig = WrpcMessageRoom & { type: WrpcMessageType.Config; config: WrpcRoomConfig; }; type WrpcMessageState = WrpcMessageRoom & { type: WrpcMessageType.State; patches?: Patch[]; }; type WrpcMessageMetadata = WrpcMessageRoom & { type: WrpcMessageType.Metadata; patches?: Patch[]; }; type WrpcMessageConnectionMetadata = WrpcMessageRoom & { type: WrpcMessageType.ConnectionMetadata; patches?: Patch[]; }; type WrpcMessageRequest = { requestId: number; }; type WrpcMessageRoom = { roomId: string; }; type WrpcMessageCreateRequest = WrpcMessageRequest & { type: WrpcMessageType.Create; name: string; input: unknown; }; type WrpcMessageCreateResponse = WrpcMessageRoom & WrpcMessageRequest & { type: WrpcMessageType.Create; }; type WrpcMessageCreate = WrpcMessageCreateRequest | WrpcMessageCreateResponse; type WrpcMessageJoinRequest = WrpcMessageRoom & WrpcMessageRequest & { type: WrpcMessageType.Join; input: unknown; }; type WrpcMessageJoinResponse = WrpcMessageRoom & WrpcMessageRequest & { type: WrpcMessageType.Join; config: WrpcRoomConfig; state: unknown; metadata: unknown; connectionMetadata: unknown; }; type WrpcMessageJoin = WrpcMessageJoinRequest | WrpcMessageJoinResponse; type WrpcMessageHostRequest = WrpcMessageRequest & { type: WrpcMessageType.Host; name: string; createInput: unknown; joinInput: unknown; }; type WrpcMessageHostResponse = WrpcMessageRoom & WrpcMessageRequest & { type: WrpcMessageType.Host; config: WrpcRoomConfig; state: unknown; metadata: unknown; connectionMetadata: unknown; }; type WrpcMessageHost = WrpcMessageHostRequest | WrpcMessageHostResponse; type WrpcMessageLeaveRequest = WrpcMessageRoom & WrpcMessageRequest & { type: WrpcMessageType.Leave; }; type WrpcMessageLeaveResponse = WrpcMessageRoom & WrpcMessageRequest & { type: WrpcMessageType.Leave; }; type WrpcMessageLeave = WrpcMessageLeaveRequest | WrpcMessageLeaveResponse; type WrpcMessageBroadcast = WrpcMessageRoom & { type: WrpcMessageType.Broadcast; name: string; input: unknown; }; type WrpcMessageEvent = WrpcMessageRoom & { type: WrpcMessageType.Event; name: string; input: unknown; }; type WrpcMessageCommandRequest = WrpcMessageRoom & WrpcMessageRequest & { type: WrpcMessageType.Command; name: string; input: unknown; }; type WrpcMessageCommandResponse = WrpcMessageRoom & WrpcMessageRequest & { type: WrpcMessageType.Command; name: string; output: unknown; }; type WrpcMessageRemoved = WrpcMessageRoom & { type: WrpcMessageType.Removed; }; type WrpcMessageError = Partial & { type: WrpcMessageType.Error; code: WrpcErrorCode; defined?: boolean; message?: string; data?: unknown; }; type WrpcMessageClientRoom = WrpcMessageEvent | WrpcMessageCommandRequest; type WrpcMessageServerRoom = WrpcMessageConfig | WrpcMessageState | WrpcMessageMetadata | WrpcMessageConnectionMetadata | WrpcMessageBroadcast | WrpcMessageRemoved; type WrpcMessageClient = WrpcMessageCreateRequest | WrpcMessageJoinRequest | WrpcMessageHostRequest | WrpcMessageLeaveRequest | WrpcMessageClientRoom; type WrpcMessageServer = WrpcMessageCreateResponse | WrpcMessageJoinResponse | WrpcMessageHostResponse | WrpcMessageLeaveResponse | WrpcMessageCommandResponse | WrpcMessageServerRoom | WrpcMessageError; type WrpcMessage = WrpcMessageClient | WrpcMessageServer; //#endregion //#region src/domain/wrpcRoomBroadcastUtils.d.ts type ExtractBroadcastNames>> = Broadcasts extends Record ? keyof Broadcasts : never; type ExtractBroadcastInput>, Name extends ExtractBroadcastNames, Fallback = unknown> = Broadcasts extends Record ? Broadcasts[Name] extends WrpcRoomBroadcast ? Input extends Shape ? Input : Fallback : Fallback : Fallback; //#endregion //#region src/domain/wrpcRoomCommandUtils.d.ts type ExtractCommandNames>> = Commands extends Record ? keyof Commands : never; type ExtractCommandInput>, Name extends ExtractCommandNames, Fallback = unknown> = Commands extends Record ? Commands[Name] extends WrpcRoomCommand ? Input extends Shape ? Input : Fallback : Fallback : Fallback; type ExtractCommandOutput>, Name extends ExtractCommandNames, Fallback = unknown> = Commands extends Record ? Commands[Name] extends WrpcRoomCommand ? Output extends Shape ? Output : Fallback : Fallback : Fallback; //#endregion //#region src/domain/wrpcRoomErrorUtils.d.ts type ExtractErrorNames>>> = Errors extends Record> ? keyof Errors : never; type ExtractErrorData>>, Name extends ExtractErrorNames, Fallback = unknown> = Errors extends Record> ? Name extends keyof Errors ? Errors[Name] extends Shape ? Errors[Name] : Fallback : Fallback : Fallback; type ExtractRoomErrors>>> = Errors extends Record> ? { [K in keyof Errors]: WrpcError : undefined> }[keyof Errors] : never; //#endregion //#region src/domain/wrpcRoomEventUtils.d.ts type ExtractEventNames>> = Events extends Record ? keyof Events : never; type ExtractEventInput>, Name extends ExtractEventNames, Fallback = unknown> = Events extends Record ? Events[Name] extends WrpcRoomEvent ? Input extends Shape ? Input : Fallback : Fallback : Fallback; //#endregion //#region src/domain/wrpcValidationError.d.ts declare class WrpcValidationError extends WrpcError { constructor(issues: readonly StandardSchemaV1.Issue[]); } //#endregion export { ExtractBroadcastInput, ExtractBroadcastNames, ExtractCommandInput, ExtractCommandNames, ExtractCommandOutput, ExtractErrorData, ExtractErrorNames, ExtractEventInput, ExtractEventNames, ExtractRoomErrors, InferShapeInput, InferShapeOutput, Maybe, MaybePromise, MaybeShapeArgs, MaybeShapeListener, Shape, ShapeInvalidResult, ShapeValidResult, ShapeValidateResult, Wrpc, WrpcData, WrpcDefinition, WrpcError, WrpcErrorCode, WrpcErrorConfig, WrpcMessage, WrpcMessageBroadcast, WrpcMessageClient, WrpcMessageClientRoom, WrpcMessageCommandRequest, WrpcMessageCommandResponse, WrpcMessageConfig, WrpcMessageConnectionMetadata, WrpcMessageCreate, WrpcMessageCreateRequest, WrpcMessageCreateResponse, WrpcMessageError, WrpcMessageEvent, WrpcMessageHost, WrpcMessageHostRequest, WrpcMessageHostResponse, WrpcMessageJoin, WrpcMessageJoinRequest, WrpcMessageJoinResponse, WrpcMessageLeave, WrpcMessageLeaveRequest, WrpcMessageLeaveResponse, WrpcMessageMetadata, WrpcMessageRemoved, WrpcMessageRequest, WrpcMessageRoom, WrpcMessageServer, WrpcMessageServerRoom, WrpcMessageState, WrpcMessageType, WrpcRoom, WrpcRoomBroadcast, WrpcRoomBroadcasts, WrpcRoomCommand, WrpcRoomCommands, WrpcRoomConfig, WrpcRoomConnectionMetadata, WrpcRoomData, WrpcRoomDefinition, WrpcRoomErrors, WrpcRoomEvent, WrpcRoomEvents, WrpcRoomLifecycles, WrpcRoomMetadata, WrpcRoomSettings, WrpcRoomState, WrpcValidationError, defineWrpc, defineWrpcRoom, defineWrpcRoomBroadcast, defineWrpcRoomCommand, defineWrpcRoomEvent, validateShape }; //# sourceMappingURL=main.d.mts.map