@veltdev/types
Version:
Velt is an SDK to add collaborative features to your product within minutes. Example: Comments like Figma, Frame.io, Google docs or sheets, Recording like Loom, Huddles like Slack and much more.
112 lines (111 loc) • 2.86 kB
TypeScript
export interface CrdtVersion {
versionId: string;
versionName?: string;
state: Uint8Array | number[];
timestamp: number;
}
export interface CrdtVersionWithEncryptedState extends Omit<CrdtVersion, 'state'> {
encryptedState: string;
}
export interface CrdtUpdateDataQuery {
id: string;
state: Uint8Array | number[];
data?: unknown;
}
export interface CrdtOnDataChangeQuery {
id: string;
callback: (data: any) => void;
}
export interface CrdtGetDataQuery {
id: string;
}
export interface CrdtOnStateChangeQuery {
id: string;
callback: (data: any) => void;
}
export interface CrdtUpdateStateQuery {
id: string;
state: Uint8Array | number[];
}
export interface CrdtRegisterSyncUserQuery {
id: string;
}
export interface CrdtOnRegisteredUserChangeQuery {
id: string;
callback: (data: any) => void;
}
export interface CrdtSetPresenceQuery {
id: string;
}
export interface CrdtOnPresenceChangeQuery {
id: string;
callback: (data: any) => void;
}
export interface CrdtSaveVersionQuery {
id: string;
versionId: string;
versionName?: string;
state: Uint8Array | number[];
}
export interface CrdtGetVersionQuery {
id: string;
versionId: string;
}
export interface CrdtGetVersionsQuery {
id: string;
}
export interface CrdtDeleteVersionQuery {
id: string;
versionId: string;
}
export interface CrdtPushMessageQuery {
id: string;
data: number[];
yjsClientId: number;
messageType?: 'sync' | 'awareness';
/** User-facing value for event emission only (not stored in database) */
eventData?: unknown;
/** Yjs data type: 'text' | 'map' | 'array' | 'xml' | 'xmltext' */
type?: string;
/** Content key used in Y.Doc shared types */
contentKey?: string;
/** Editor/library source: 'tiptap', 'plate', 'codemirror', etc. */
source?: string;
}
export interface CrdtOnMessageQuery {
id: string;
callback: (message: CrdtMessageData) => void;
afterTs?: number;
}
export interface CrdtMessageData {
data: number[];
yjsClientId: number;
timestamp: number;
}
export interface CrdtSnapshotData {
state?: Uint8Array | number[];
vector?: Uint8Array | number[];
timestamp?: number;
}
export interface CrdtGetSnapshotQuery {
id: string;
}
export interface CrdtSaveSnapshotQuery {
id: string;
state: Uint8Array | number[];
vector: Uint8Array | number[];
/** Yjs data type: 'text' | 'map' | 'array' | 'xml' | 'xmltext' */
type?: string;
/** Content key used in Y.Doc shared types */
contentKey?: string;
/** Editor/library source: 'tiptap', 'plate', 'codemirror', etc. */
source?: string;
}
export interface CrdtGetMessagesQuery {
id: string;
afterTs?: number;
}
export interface CrdtPruneMessagesQuery {
id: string;
beforeTs: number;
}