@veltdev/sdk-staging 5.0.2-beta.20 → 5.0.2-beta.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -58,3 +58,54 @@ export interface CrdtDeleteVersionQuery {
|
|
|
58
58
|
id: string;
|
|
59
59
|
versionId: string;
|
|
60
60
|
}
|
|
61
|
+
export interface CrdtPushMessageQuery {
|
|
62
|
+
id: string;
|
|
63
|
+
data: number[];
|
|
64
|
+
yjsClientId: number;
|
|
65
|
+
messageType?: 'sync' | 'awareness';
|
|
66
|
+
/** User-facing value for event emission only (not stored in database) */
|
|
67
|
+
eventData?: unknown;
|
|
68
|
+
/** Yjs data type: 'text' | 'map' | 'array' | 'xml' | 'xmltext' */
|
|
69
|
+
type?: string;
|
|
70
|
+
/** Content key used in Y.Doc shared types */
|
|
71
|
+
contentKey?: string;
|
|
72
|
+
/** Editor/library source: 'tiptap', 'plate', 'codemirror', etc. */
|
|
73
|
+
source?: string;
|
|
74
|
+
}
|
|
75
|
+
export interface CrdtOnMessageQuery {
|
|
76
|
+
id: string;
|
|
77
|
+
callback: (message: CrdtMessageData) => void;
|
|
78
|
+
afterTs?: number;
|
|
79
|
+
}
|
|
80
|
+
export interface CrdtMessageData {
|
|
81
|
+
data: number[];
|
|
82
|
+
yjsClientId: number;
|
|
83
|
+
timestamp: number;
|
|
84
|
+
}
|
|
85
|
+
export interface CrdtSnapshotData {
|
|
86
|
+
state?: Uint8Array | number[];
|
|
87
|
+
vector?: Uint8Array | number[];
|
|
88
|
+
timestamp?: number;
|
|
89
|
+
}
|
|
90
|
+
export interface CrdtGetSnapshotQuery {
|
|
91
|
+
id: string;
|
|
92
|
+
}
|
|
93
|
+
export interface CrdtSaveSnapshotQuery {
|
|
94
|
+
id: string;
|
|
95
|
+
state: Uint8Array | number[];
|
|
96
|
+
vector: Uint8Array | number[];
|
|
97
|
+
/** Yjs data type: 'text' | 'map' | 'array' | 'xml' | 'xmltext' */
|
|
98
|
+
type?: string;
|
|
99
|
+
/** Content key used in Y.Doc shared types */
|
|
100
|
+
contentKey?: string;
|
|
101
|
+
/** Editor/library source: 'tiptap', 'plate', 'codemirror', etc. */
|
|
102
|
+
source?: string;
|
|
103
|
+
}
|
|
104
|
+
export interface CrdtGetMessagesQuery {
|
|
105
|
+
id: string;
|
|
106
|
+
afterTs?: number;
|
|
107
|
+
}
|
|
108
|
+
export interface CrdtPruneMessagesQuery {
|
|
109
|
+
id: string;
|
|
110
|
+
beforeTs: number;
|
|
111
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @ts-nocheck
|
|
2
|
-
import { CrdtGetDataQuery, CrdtGetVersionQuery, CrdtOnDataChangeQuery, CrdtOnPresenceChangeQuery, CrdtOnRegisteredUserChangeQuery, CrdtOnStateChangeQuery, CrdtRegisterSyncUserQuery, CrdtSetPresenceQuery, CrdtSaveVersionQuery, CrdtUpdateDataQuery, CrdtUpdateStateQuery } from "../data/crdt.data.model";
|
|
2
|
+
import { CrdtGetDataQuery, CrdtGetMessagesQuery, CrdtGetSnapshotQuery, CrdtGetVersionQuery, CrdtGetVersionsQuery, CrdtMessageData, CrdtOnDataChangeQuery, CrdtOnMessageQuery, CrdtOnPresenceChangeQuery, CrdtOnRegisteredUserChangeQuery, CrdtOnStateChangeQuery, CrdtPruneMessagesQuery, CrdtPushMessageQuery, CrdtRegisterSyncUserQuery, CrdtSaveSnapshotQuery, CrdtSetPresenceQuery, CrdtSaveVersionQuery, CrdtSnapshotData, CrdtUpdateDataQuery, CrdtUpdateStateQuery } from "../data/crdt.data.model";
|
|
3
3
|
import { CrdtEventTypesMap } from "../data/crdt-events.data.model";
|
|
4
4
|
|
|
5
5
|
export declare class CrdtElement {
|
|
@@ -80,6 +80,12 @@ export declare class CrdtElement {
|
|
|
80
80
|
*/
|
|
81
81
|
getVersion: (getVersionQuery: CrdtGetVersionQuery) => Promise<any>;
|
|
82
82
|
|
|
83
|
+
/**
|
|
84
|
+
* Get all versions of a specific CRDT document
|
|
85
|
+
* @param id Document ID
|
|
86
|
+
*/
|
|
87
|
+
getVersions: (getVersionsQuery: CrdtGetVersionsQuery) => Promise<any>;
|
|
88
|
+
|
|
83
89
|
/**
|
|
84
90
|
* Enable webhook
|
|
85
91
|
*/
|
|
@@ -95,6 +101,46 @@ export declare class CrdtElement {
|
|
|
95
101
|
* @param time debounce time in milliseconds
|
|
96
102
|
*/
|
|
97
103
|
setWebhookDebounceTime: (time: number) => void;
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Push a lib0-encoded message to the unified message stream.
|
|
107
|
+
* Uses Firebase push() for chronologically-ordered keys.
|
|
108
|
+
* Carries both sync (type 0) and awareness (type 1) messages.
|
|
109
|
+
* @param pushMessageQuery - contains id, data (encoded bytes), yjsClientId (Y.Doc client ID), optional messageType and eventData
|
|
110
|
+
*/
|
|
111
|
+
pushMessage: (pushMessageQuery: CrdtPushMessageQuery) => Promise<void>;
|
|
112
|
+
/**
|
|
113
|
+
* Subscribe to the unified message stream for real-time sync.
|
|
114
|
+
* Emits each new message individually as it arrives (streaming pattern).
|
|
115
|
+
* Returns an unsubscribe function.
|
|
116
|
+
* @param onMessageQuery - contains id, callback, and optional afterTs for filtering
|
|
117
|
+
*/
|
|
118
|
+
onMessage: (onMessageQuery: CrdtOnMessageQuery) => () => void;
|
|
119
|
+
/**
|
|
120
|
+
* Fetch all messages after a given timestamp (one-time read).
|
|
121
|
+
* Used for message replay during initial load (y-redis pattern).
|
|
122
|
+
* @param getMessagesQuery - contains id and optional afterTs
|
|
123
|
+
*/
|
|
124
|
+
getMessages: (getMessagesQuery: CrdtGetMessagesQuery) => Promise<CrdtMessageData[]>;
|
|
125
|
+
/**
|
|
126
|
+
* Get the latest full-state snapshot for a document.
|
|
127
|
+
* Used as the baseline for message replay during initial load.
|
|
128
|
+
* @param getSnapshotQuery - contains id
|
|
129
|
+
*/
|
|
130
|
+
getSnapshot: (getSnapshotQuery: CrdtGetSnapshotQuery) => Promise<CrdtSnapshotData | null>;
|
|
131
|
+
/**
|
|
132
|
+
* Save a full-state snapshot (state + vector) for fast initial load.
|
|
133
|
+
* Called periodically to create checkpoints, enabling message pruning.
|
|
134
|
+
* @param saveSnapshotQuery - contains id, state (Y.Doc update), and vector (state vector)
|
|
135
|
+
*/
|
|
136
|
+
saveSnapshot: (saveSnapshotQuery: CrdtSaveSnapshotQuery) => Promise<void>;
|
|
137
|
+
/**
|
|
138
|
+
* Remove messages older than the given timestamp from the message stream.
|
|
139
|
+
* Called after saving a snapshot to keep the message stream bounded.
|
|
140
|
+
* @param pruneMessagesQuery - contains id and beforeTs
|
|
141
|
+
*/
|
|
142
|
+
pruneMessages: (pruneMessagesQuery: CrdtPruneMessagesQuery) => Promise<void>;
|
|
143
|
+
|
|
98
144
|
/**
|
|
99
145
|
* To set activity debounce time for batching CRDT edits (Default value is 10 minutes)
|
|
100
146
|
* @param time debounce time in milliseconds (minimum: 10 seconds)
|
|
@@ -193,6 +239,36 @@ export declare class CrdtElement {
|
|
|
193
239
|
*/
|
|
194
240
|
private _getVersions;
|
|
195
241
|
|
|
242
|
+
/**
|
|
243
|
+
* Push a message to the unified message stream
|
|
244
|
+
*/
|
|
245
|
+
private _pushMessage;
|
|
246
|
+
|
|
247
|
+
/**
|
|
248
|
+
* Subscribe to the unified message stream
|
|
249
|
+
*/
|
|
250
|
+
private _onMessage;
|
|
251
|
+
|
|
252
|
+
/**
|
|
253
|
+
* Fetch all messages after a given timestamp
|
|
254
|
+
*/
|
|
255
|
+
private _getMessages;
|
|
256
|
+
|
|
257
|
+
/**
|
|
258
|
+
* Get the latest snapshot for a document
|
|
259
|
+
*/
|
|
260
|
+
private _getSnapshot;
|
|
261
|
+
|
|
262
|
+
/**
|
|
263
|
+
* Save a full-state snapshot
|
|
264
|
+
*/
|
|
265
|
+
private _saveSnapshot;
|
|
266
|
+
|
|
267
|
+
/**
|
|
268
|
+
* Remove messages older than a given timestamp
|
|
269
|
+
*/
|
|
270
|
+
private _pruneMessages;
|
|
271
|
+
|
|
196
272
|
/**
|
|
197
273
|
* Enable webhook
|
|
198
274
|
*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@veltdev/sdk-staging",
|
|
3
|
-
"version": "5.0.2-beta.
|
|
3
|
+
"version": "5.0.2-beta.21",
|
|
4
4
|
"description": "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.",
|
|
5
5
|
"homepage": "https://velt.dev",
|
|
6
6
|
"keywords": [
|