convex
Version:
Client for the Convex Cloud
174 lines • 4.79 kB
TypeScript
import { JSONValue } from "../../values/index.js";
import { Long } from "../long.js";
/**
* Shared schema
*/
export declare function u64ToLong(encoded: EncodedU64): U64;
export declare function parseServerMessage(encoded: EncodedServerMessage): ServerMessage;
declare type U64 = Long;
declare type EncodedU64 = string;
/**
* Unique nonnegative integer identifying a single query.
*/
export declare type QueryId = number;
export declare type QuerySetVersion = number;
export declare type RequestId = number;
export declare type IdentityVersion = number;
/**
* A serialized representation of decisions made during a query's execution.
*
* A journal is produced when a query function first executes and is re-used
* when a query is re-executed.
*
* Currently this is used to store pagination end cursors to ensure
* that pages of paginated queries will always end at the same cursor. This
* enables gapless, reactive pagination.
*
* `null` is used to represent empty journals.
* @public
*/
export declare type QueryJournal = string | null;
/**
* Client message schema
*/
declare type Connect = {
type: "Connect";
sessionId: string;
connectionCount: number;
lastCloseReason: string | null;
};
export declare type AddQuery = {
type: "Add";
queryId: QueryId;
udfPath: string;
args: JSONValue[];
journal?: QueryJournal;
};
export declare type RemoveQuery = {
type: "Remove";
queryId: QueryId;
};
export declare type QuerySetModification = {
type: "ModifyQuerySet";
baseVersion: QuerySetVersion;
newVersion: QuerySetVersion;
modifications: (AddQuery | RemoveQuery)[];
};
export declare type MutationRequest = {
type: "Mutation";
requestId: RequestId;
udfPath: string;
args: JSONValue[];
};
export declare type ActionRequest = {
type: "Action";
requestId: RequestId;
udfPath: string;
args: JSONValue[];
};
export declare type Authenticate = {
type: "Authenticate";
tokenType: "Admin";
value: string;
baseVersion: IdentityVersion;
} | {
type: "Authenticate";
tokenType: "User";
value: string;
baseVersion: IdentityVersion;
} | {
type: "Authenticate";
tokenType: "None";
baseVersion: IdentityVersion;
};
export declare type ClientMessage = Connect | Authenticate | QuerySetModification | MutationRequest | ActionRequest;
/**
* Server message schema
*/
declare type TS = U64;
declare type EncodedTS = EncodedU64;
declare type LogLines = string[];
export declare type StateVersion = {
querySet: QueryId;
ts: TS;
identity: IdentityVersion;
};
declare type EncodedStateVersion = Omit<StateVersion, "ts"> & {
ts: EncodedTS;
};
declare type StateModification = {
type: "QueryUpdated";
queryId: QueryId;
value: JSONValue;
logLines: LogLines;
journal?: QueryJournal;
} | {
type: "QueryFailed";
queryId: QueryId;
errorMessage: string;
logLines: LogLines;
journal?: QueryJournal;
} | {
type: "QueryRemoved";
queryId: QueryId;
};
export declare type Transition = {
type: "Transition";
startVersion: StateVersion;
endVersion: StateVersion;
modifications: StateModification[];
};
declare type MutationSuccess = {
type: "MutationResponse";
requestId: RequestId;
success: true;
result: JSONValue;
ts: TS;
logLines: LogLines;
};
declare type MutationFailed = {
type: "MutationResponse";
requestId: RequestId;
success: false;
result: string;
logLines: LogLines;
};
export declare type MutationResponse = MutationSuccess | MutationFailed;
declare type ActionSuccess = {
type: "ActionResponse";
requestId: RequestId;
success: true;
result: JSONValue;
logLines: LogLines;
};
declare type ActionFailed = {
type: "ActionResponse";
requestId: RequestId;
success: false;
result: string;
logLines: LogLines;
};
export declare type ActionResponse = ActionSuccess | ActionFailed;
export declare type AuthError = {
type: "AuthError";
error: string;
};
declare type FatalError = {
type: "FatalError";
error: string;
};
declare type Ping = {
type: "Ping";
};
export declare type ServerMessage = Transition | MutationResponse | ActionResponse | FatalError | AuthError | Ping;
declare type EncodedTransition = Omit<Transition, "startVersion" | "endVersion"> & {
startVersion: EncodedStateVersion;
endVersion: EncodedStateVersion;
};
declare type EncodedMutationSuccess = Omit<MutationSuccess, "ts"> & {
ts: EncodedTS;
};
declare type EncodedMutationResponse = MutationFailed | EncodedMutationSuccess;
declare type EncodedServerMessage = EncodedTransition | EncodedMutationResponse | ActionResponse | FatalError | AuthError | Ping;
export {};
//# sourceMappingURL=protocol.d.ts.map