@aerostack/sdk-web 0.7.5 → 0.7.7
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.
- package/dist/commonjs/realtime.d.ts +51 -13
- package/dist/commonjs/realtime.d.ts.map +1 -1
- package/dist/commonjs/realtime.js +118 -44
- package/dist/commonjs/realtime.js.map +1 -1
- package/dist/commonjs/sdk.d.ts +1 -0
- package/dist/commonjs/sdk.d.ts.map +1 -1
- package/dist/commonjs/sdk.js +1 -0
- package/dist/commonjs/sdk.js.map +1 -1
- package/dist/esm/realtime.d.ts +51 -13
- package/dist/esm/realtime.d.ts.map +1 -1
- package/dist/esm/realtime.js +118 -44
- package/dist/esm/realtime.js.map +1 -1
- package/dist/esm/sdk.d.ts +1 -0
- package/dist/esm/sdk.d.ts.map +1 -1
- package/dist/esm/sdk.js +1 -0
- package/dist/esm/sdk.js.map +1 -1
- package/package.json +2 -2
- package/src/realtime.ts +156 -41
- package/src/sdk.ts +2 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Aerostack Realtime Client for Web/Browser SDK
|
|
3
3
|
*/
|
|
4
|
-
export type RealtimeEvent = 'INSERT' | 'UPDATE' | 'DELETE' | '*';
|
|
4
|
+
export type RealtimeEvent = 'INSERT' | 'UPDATE' | 'DELETE' | '*' | string;
|
|
5
5
|
export interface RealtimeMessage {
|
|
6
6
|
type: string;
|
|
7
7
|
topic: string;
|
|
@@ -12,42 +12,69 @@ export interface RealtimeSubscriptionOptions {
|
|
|
12
12
|
filter?: Record<string, any>;
|
|
13
13
|
}
|
|
14
14
|
export type RealtimeCallback<T = any> = (payload: RealtimePayload<T>) => void;
|
|
15
|
+
/** Typed payload for realtime events */
|
|
15
16
|
export interface RealtimePayload<T = any> {
|
|
16
|
-
type: 'db_change' | 'chat_message';
|
|
17
|
+
type: 'db_change' | 'chat_message' | 'event';
|
|
17
18
|
topic: string;
|
|
18
|
-
operation
|
|
19
|
+
operation?: RealtimeEvent;
|
|
20
|
+
event?: string;
|
|
19
21
|
data: T;
|
|
20
22
|
old?: T;
|
|
21
|
-
|
|
23
|
+
userId?: string;
|
|
24
|
+
timestamp?: number | string;
|
|
22
25
|
[key: string]: any;
|
|
23
26
|
}
|
|
27
|
+
/** Chat history message returned from REST API */
|
|
28
|
+
export interface HistoryMessage {
|
|
29
|
+
id: string;
|
|
30
|
+
room_id: string;
|
|
31
|
+
user_id: string;
|
|
32
|
+
event: string;
|
|
33
|
+
data: any;
|
|
34
|
+
created_at: number;
|
|
35
|
+
}
|
|
24
36
|
export declare class RealtimeSubscription<T = any> {
|
|
25
37
|
private client;
|
|
26
|
-
|
|
38
|
+
topic: string;
|
|
27
39
|
private options;
|
|
28
40
|
private callbacks;
|
|
29
|
-
private
|
|
41
|
+
private isSubscribed;
|
|
30
42
|
constructor(client: RealtimeClient, topic: string, options?: RealtimeSubscriptionOptions);
|
|
31
|
-
|
|
43
|
+
/** Listen for DB change events (INSERT/UPDATE/DELETE/*) or custom named events */
|
|
44
|
+
on(event: RealtimeEvent | string, callback: RealtimeCallback<T>): this;
|
|
45
|
+
/** Remove a specific callback for an event */
|
|
46
|
+
off(event: RealtimeEvent | string, callback: RealtimeCallback<T>): this;
|
|
32
47
|
subscribe(): this;
|
|
33
48
|
unsubscribe(): void;
|
|
34
|
-
|
|
49
|
+
/** Publish a custom event to all subscribers on this channel */
|
|
50
|
+
publish(event: string, data: any, options?: {
|
|
51
|
+
persist?: boolean;
|
|
52
|
+
}): void;
|
|
53
|
+
/** Fetch persisted message history for this channel (requires persist: true on publish) */
|
|
54
|
+
getHistory(limit?: number, before?: number): Promise<HistoryMessage[]>;
|
|
55
|
+
/** Track this user's presence state on this channel (auto-synced to subscribers) */
|
|
56
|
+
track(state: Record<string, any>): void;
|
|
57
|
+
/** Stop tracking presence on this channel */
|
|
58
|
+
untrack(): void;
|
|
35
59
|
/** @internal */
|
|
36
60
|
_emit(payload: RealtimePayload<T>): void;
|
|
37
61
|
}
|
|
38
62
|
export type RealtimeStatus = 'idle' | 'connecting' | 'connected' | 'reconnecting' | 'disconnected';
|
|
39
63
|
export interface RealtimeClientOptions {
|
|
40
64
|
baseUrl: string;
|
|
41
|
-
|
|
65
|
+
projectId: string;
|
|
42
66
|
token?: string;
|
|
43
|
-
|
|
67
|
+
userId?: string;
|
|
68
|
+
apiKey?: string;
|
|
69
|
+
/** Max reconnect attempts before giving up (default: Infinity) */
|
|
44
70
|
maxReconnectAttempts?: number;
|
|
45
71
|
}
|
|
46
72
|
export declare class RealtimeClient {
|
|
47
73
|
private baseUrl;
|
|
48
|
-
private
|
|
74
|
+
private projectId;
|
|
49
75
|
private token?;
|
|
50
|
-
private
|
|
76
|
+
private userId?;
|
|
77
|
+
private apiKey?;
|
|
51
78
|
private ws;
|
|
52
79
|
private subscriptions;
|
|
53
80
|
private reconnectTimer;
|
|
@@ -57,23 +84,34 @@ export declare class RealtimeClient {
|
|
|
57
84
|
private _connectingPromise;
|
|
58
85
|
private _status;
|
|
59
86
|
private _statusListeners;
|
|
87
|
+
private _httpBaseUrl;
|
|
60
88
|
private _lastPong;
|
|
61
89
|
private _maxReconnectAttempts;
|
|
62
90
|
private _maxRetriesListeners;
|
|
63
91
|
constructor(options: RealtimeClientOptions);
|
|
64
92
|
get status(): RealtimeStatus;
|
|
65
93
|
get connected(): boolean;
|
|
94
|
+
/** Subscribe to connection status changes. Returns unsubscribe fn. */
|
|
66
95
|
onStatusChange(cb: (status: RealtimeStatus) => void): () => void;
|
|
96
|
+
/** Called when max reconnect attempts exceeded. Returns unsubscribe fn. */
|
|
67
97
|
onMaxRetriesExceeded(cb: () => void): () => void;
|
|
68
98
|
private _setStatus;
|
|
99
|
+
/** Update the auth token on a live connection */
|
|
69
100
|
setToken(newToken: string): void;
|
|
70
101
|
connect(): Promise<void>;
|
|
71
102
|
private _doConnect;
|
|
72
103
|
disconnect(): void;
|
|
73
104
|
channel<T = any>(topic: string, options?: RealtimeSubscriptionOptions): RealtimeSubscription<T>;
|
|
74
|
-
|
|
105
|
+
/** Legacy: send a chat message (now persisted to DB) */
|
|
106
|
+
sendChat(roomId: string, text: string, metadata?: Record<string, any>): void;
|
|
107
|
+
/** Legacy: get a chat room subscription */
|
|
108
|
+
chatRoom(roomId: string): RealtimeSubscription;
|
|
109
|
+
/** @internal — Generate unique message ID for ack tracking */
|
|
110
|
+
_generateId(): string;
|
|
75
111
|
/** @internal */
|
|
76
112
|
_send(data: any): void;
|
|
113
|
+
/** @internal — Fetch chat/event history via REST API */
|
|
114
|
+
_fetchHistory(room: string, limit?: number, before?: number): Promise<HistoryMessage[]>;
|
|
77
115
|
private handleMessage;
|
|
78
116
|
private startHeartbeat;
|
|
79
117
|
private stopHeartbeat;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"realtime.d.ts","sourceRoot":"","sources":["../../src/realtime.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"realtime.d.ts","sourceRoot":"","sources":["../../src/realtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,11 +4,12 @@ exports.RealtimeClient = exports.RealtimeSubscription = void 0;
|
|
|
4
4
|
class RealtimeSubscription {
|
|
5
5
|
constructor(client, topic, options = {}) {
|
|
6
6
|
this.callbacks = new Map();
|
|
7
|
-
this.
|
|
7
|
+
this.isSubscribed = false;
|
|
8
8
|
this.client = client;
|
|
9
9
|
this.topic = topic;
|
|
10
10
|
this.options = options;
|
|
11
11
|
}
|
|
12
|
+
/** Listen for DB change events (INSERT/UPDATE/DELETE/*) or custom named events */
|
|
12
13
|
on(event, callback) {
|
|
13
14
|
if (!this.callbacks.has(event)) {
|
|
14
15
|
this.callbacks.set(event, new Set());
|
|
@@ -16,48 +17,79 @@ class RealtimeSubscription {
|
|
|
16
17
|
this.callbacks.get(event).add(callback);
|
|
17
18
|
return this;
|
|
18
19
|
}
|
|
20
|
+
/** Remove a specific callback for an event */
|
|
21
|
+
off(event, callback) {
|
|
22
|
+
this.callbacks.get(event)?.delete(callback);
|
|
23
|
+
return this;
|
|
24
|
+
}
|
|
19
25
|
subscribe() {
|
|
20
|
-
if (this.
|
|
26
|
+
if (this.isSubscribed)
|
|
21
27
|
return this;
|
|
22
28
|
this.client._send({
|
|
23
29
|
type: 'subscribe',
|
|
24
30
|
topic: this.topic,
|
|
25
31
|
filter: this.options.filter
|
|
26
32
|
});
|
|
27
|
-
this.
|
|
33
|
+
this.isSubscribed = true;
|
|
28
34
|
return this;
|
|
29
35
|
}
|
|
30
36
|
unsubscribe() {
|
|
31
|
-
if (!this.
|
|
37
|
+
if (!this.isSubscribed)
|
|
32
38
|
return;
|
|
33
39
|
this.client._send({
|
|
34
40
|
type: 'unsubscribe',
|
|
35
41
|
topic: this.topic
|
|
36
42
|
});
|
|
37
|
-
this.
|
|
43
|
+
this.isSubscribed = false;
|
|
38
44
|
this.callbacks.clear();
|
|
39
45
|
}
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}
|
|
46
|
+
// ─── Phase 1: Pub/Sub — Publish custom events ─────────────────────────
|
|
47
|
+
/** Publish a custom event to all subscribers on this channel */
|
|
48
|
+
publish(event, data, options) {
|
|
49
|
+
this.client._send({
|
|
50
|
+
type: 'publish',
|
|
51
|
+
topic: this.topic,
|
|
52
|
+
event,
|
|
53
|
+
data,
|
|
54
|
+
persist: options?.persist,
|
|
55
|
+
id: this.client._generateId(),
|
|
51
56
|
});
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
}
|
|
58
|
+
// ─── Phase 2: Chat History ────────────────────────────────────────────
|
|
59
|
+
/** Fetch persisted message history for this channel (requires persist: true on publish) */
|
|
60
|
+
async getHistory(limit = 50, before) {
|
|
61
|
+
return this.client._fetchHistory(this.topic, limit, before);
|
|
62
|
+
}
|
|
63
|
+
// ─── Phase 3: Presence ────────────────────────────────────────────────
|
|
64
|
+
/** Track this user's presence state on this channel (auto-synced to subscribers) */
|
|
65
|
+
track(state) {
|
|
66
|
+
this.client._send({
|
|
67
|
+
type: 'track',
|
|
68
|
+
topic: this.topic,
|
|
69
|
+
state,
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
/** Stop tracking presence on this channel */
|
|
73
|
+
untrack() {
|
|
74
|
+
this.client._send({
|
|
75
|
+
type: 'untrack',
|
|
76
|
+
topic: this.topic,
|
|
59
77
|
});
|
|
60
78
|
}
|
|
79
|
+
/** @internal */
|
|
80
|
+
_emit(payload) {
|
|
81
|
+
// DB change events (INSERT/UPDATE/DELETE)
|
|
82
|
+
if (payload.operation) {
|
|
83
|
+
const event = payload.operation;
|
|
84
|
+
this.callbacks.get(event)?.forEach(cb => cb(payload));
|
|
85
|
+
}
|
|
86
|
+
// Custom named events ('player-moved', 'presence:join', etc.)
|
|
87
|
+
if (payload.event) {
|
|
88
|
+
this.callbacks.get(payload.event)?.forEach(cb => cb(payload));
|
|
89
|
+
}
|
|
90
|
+
// Catch-all
|
|
91
|
+
this.callbacks.get('*')?.forEach(cb => cb(payload));
|
|
92
|
+
}
|
|
61
93
|
}
|
|
62
94
|
exports.RealtimeSubscription = RealtimeSubscription;
|
|
63
95
|
class RealtimeClient {
|
|
@@ -71,8 +103,10 @@ class RealtimeClient {
|
|
|
71
103
|
this._connectingPromise = null;
|
|
72
104
|
this._status = 'idle';
|
|
73
105
|
this._statusListeners = new Set();
|
|
106
|
+
// Pong tracking
|
|
74
107
|
this._lastPong = 0;
|
|
75
108
|
this._maxRetriesListeners = new Set();
|
|
109
|
+
// Offline/online detection (browser only)
|
|
76
110
|
this._handleOnline = () => {
|
|
77
111
|
if (this._status !== 'connected') {
|
|
78
112
|
this.reconnectAttempts = 0;
|
|
@@ -85,28 +119,21 @@ class RealtimeClient {
|
|
|
85
119
|
};
|
|
86
120
|
const wsBase = options.baseUrl.replace(/\/v1\/?$/, '').replace(/^http/, 'ws');
|
|
87
121
|
this.baseUrl = `${wsBase}/api/realtime`;
|
|
122
|
+
this._httpBaseUrl = options.baseUrl.replace(/\/v1\/?$/, '');
|
|
123
|
+
this.projectId = options.projectId;
|
|
88
124
|
this.token = options.token;
|
|
125
|
+
this.userId = options.userId;
|
|
89
126
|
this.apiKey = options.apiKey;
|
|
90
|
-
// Attempt to extract projectId from API key if not explicitly passed
|
|
91
|
-
if (options.projectId) {
|
|
92
|
-
this.projectId = options.projectId;
|
|
93
|
-
}
|
|
94
|
-
else if (this.apiKey && this.apiKey.startsWith('ak_')) {
|
|
95
|
-
try {
|
|
96
|
-
// If it's a JWT-style token, we could decode it here.
|
|
97
|
-
// For now, if we don't have projectId, rely on the backend to figure it out
|
|
98
|
-
// or ensure it's passed during initialization.
|
|
99
|
-
}
|
|
100
|
-
catch (e) { }
|
|
101
|
-
}
|
|
102
127
|
this._maxReconnectAttempts = options.maxReconnectAttempts ?? Infinity;
|
|
103
128
|
}
|
|
104
129
|
get status() { return this._status; }
|
|
105
130
|
get connected() { return this._status === 'connected'; }
|
|
131
|
+
/** Subscribe to connection status changes. Returns unsubscribe fn. */
|
|
106
132
|
onStatusChange(cb) {
|
|
107
133
|
this._statusListeners.add(cb);
|
|
108
134
|
return () => this._statusListeners.delete(cb);
|
|
109
135
|
}
|
|
136
|
+
/** Called when max reconnect attempts exceeded. Returns unsubscribe fn. */
|
|
110
137
|
onMaxRetriesExceeded(cb) {
|
|
111
138
|
this._maxRetriesListeners.add(cb);
|
|
112
139
|
return () => this._maxRetriesListeners.delete(cb);
|
|
@@ -115,6 +142,7 @@ class RealtimeClient {
|
|
|
115
142
|
this._status = s;
|
|
116
143
|
this._statusListeners.forEach(cb => cb(s));
|
|
117
144
|
}
|
|
145
|
+
/** Update the auth token on a live connection */
|
|
118
146
|
setToken(newToken) {
|
|
119
147
|
this.token = newToken;
|
|
120
148
|
this._send({ type: 'auth', token: newToken });
|
|
@@ -133,10 +161,11 @@ class RealtimeClient {
|
|
|
133
161
|
this._setStatus('connecting');
|
|
134
162
|
return new Promise((resolve, reject) => {
|
|
135
163
|
const url = new URL(this.baseUrl);
|
|
164
|
+
url.searchParams.set('projectId', this.projectId);
|
|
165
|
+
if (this.userId)
|
|
166
|
+
url.searchParams.set('userId', this.userId);
|
|
136
167
|
if (this.token)
|
|
137
168
|
url.searchParams.set('token', this.token);
|
|
138
|
-
if (this.projectId)
|
|
139
|
-
url.searchParams.set('projectId', this.projectId);
|
|
140
169
|
// SECURITY: Pass API key via Sec-WebSocket-Protocol header only — never as URL query param
|
|
141
170
|
// (URL params appear in CDN logs, browser history, and Referer headers).
|
|
142
171
|
const protocols = [];
|
|
@@ -152,12 +181,12 @@ class RealtimeClient {
|
|
|
152
181
|
this._lastPong = Date.now();
|
|
153
182
|
this.startHeartbeat();
|
|
154
183
|
this._setupOfflineDetection();
|
|
184
|
+
// Flush queued messages
|
|
155
185
|
while (this._sendQueue.length > 0) {
|
|
156
186
|
this.ws.send(JSON.stringify(this._sendQueue.shift()));
|
|
157
187
|
}
|
|
158
188
|
for (const sub of this.subscriptions.values()) {
|
|
159
|
-
|
|
160
|
-
sub.subscribe();
|
|
189
|
+
sub.subscribe();
|
|
161
190
|
}
|
|
162
191
|
resolve();
|
|
163
192
|
};
|
|
@@ -212,8 +241,17 @@ class RealtimeClient {
|
|
|
212
241
|
}
|
|
213
242
|
return sub;
|
|
214
243
|
}
|
|
215
|
-
|
|
216
|
-
|
|
244
|
+
/** Legacy: send a chat message (now persisted to DB) */
|
|
245
|
+
sendChat(roomId, text, metadata) {
|
|
246
|
+
this._send({ type: 'chat', roomId, text, metadata });
|
|
247
|
+
}
|
|
248
|
+
/** Legacy: get a chat room subscription */
|
|
249
|
+
chatRoom(roomId) {
|
|
250
|
+
return this.channel(`chat/${roomId}/${this.projectId}`);
|
|
251
|
+
}
|
|
252
|
+
/** @internal — Generate unique message ID for ack tracking */
|
|
253
|
+
_generateId() {
|
|
254
|
+
return Math.random().toString(36).slice(2) + Date.now().toString(36);
|
|
217
255
|
}
|
|
218
256
|
/** @internal */
|
|
219
257
|
_send(data) {
|
|
@@ -224,14 +262,50 @@ class RealtimeClient {
|
|
|
224
262
|
this._sendQueue.push(data);
|
|
225
263
|
}
|
|
226
264
|
}
|
|
265
|
+
/** @internal — Fetch chat/event history via REST API */
|
|
266
|
+
async _fetchHistory(room, limit = 50, before) {
|
|
267
|
+
const url = new URL(`${this._httpBaseUrl}/api/v1/public/realtime/history`);
|
|
268
|
+
url.searchParams.set('room', room);
|
|
269
|
+
url.searchParams.set('limit', String(limit));
|
|
270
|
+
if (before)
|
|
271
|
+
url.searchParams.set('before', String(before));
|
|
272
|
+
const headers = {};
|
|
273
|
+
if (this.apiKey)
|
|
274
|
+
headers['X-Aerostack-Key'] = this.apiKey;
|
|
275
|
+
if (this.token)
|
|
276
|
+
headers['Authorization'] = `Bearer ${this.token}`;
|
|
277
|
+
const res = await fetch(url.toString(), { headers });
|
|
278
|
+
const json = await res.json();
|
|
279
|
+
return json.messages || [];
|
|
280
|
+
}
|
|
227
281
|
handleMessage(data) {
|
|
282
|
+
// Track pong for liveness
|
|
228
283
|
if (data.type === 'pong') {
|
|
229
284
|
this._lastPong = Date.now();
|
|
230
285
|
return;
|
|
231
286
|
}
|
|
232
|
-
|
|
233
|
-
if (
|
|
234
|
-
|
|
287
|
+
// Ack (fire-and-forget acknowledgment from server)
|
|
288
|
+
if (data.type === 'ack') {
|
|
289
|
+
return;
|
|
290
|
+
}
|
|
291
|
+
// Route to subscription: db_change, chat_message, event, presence:*
|
|
292
|
+
if (data.type === 'db_change' || data.type === 'chat_message' || data.type === 'event') {
|
|
293
|
+
const sub = this.subscriptions.get(data.topic);
|
|
294
|
+
if (sub) {
|
|
295
|
+
sub._emit(data);
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
// Re-key subscription on server-confirmed topic (for non-TS SDKs compatibility)
|
|
299
|
+
if (data.type === 'subscribed' && data.topic) {
|
|
300
|
+
for (const [origTopic, sub] of this.subscriptions.entries()) {
|
|
301
|
+
if (data.topic !== origTopic && data.topic.startsWith(origTopic)) {
|
|
302
|
+
this.subscriptions.delete(origTopic);
|
|
303
|
+
sub.topic = data.topic;
|
|
304
|
+
this.subscriptions.set(data.topic, sub);
|
|
305
|
+
break;
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
}
|
|
235
309
|
}
|
|
236
310
|
startHeartbeat() {
|
|
237
311
|
this.heartbeatTimer = setInterval(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"realtime.js","sourceRoot":"","sources":["../../src/realtime.ts"],"names":[],"mappings":";;;AA4BA,MAAa,oBAAoB;IAO7B,YAAY,MAAsB,EAAE,KAAa,EAAE,UAAuC,EAAE;QAHpF,cAAS,GAAiD,IAAI,GAAG,EAAE,CAAC;QACpE,kBAAa,GAAY,KAAK,CAAC;QAGnC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED,EAAE,CAAC,KAAoB,EAAE,QAA6B;QAClD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,SAAS;QACL,IAAI,IAAI,CAAC,aAAa;YAAE,OAAO,IAAI,CAAC;QACpC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YACd,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;SAC9B,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,WAAW;QACP,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAO;QAChC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YACd,IAAI,EAAE,aAAa;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK;SACpB,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED,IAAI,YAAY,KAAK,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IAEjD,gBAAgB;IAChB,KAAK,CAAC,OAA2B;QAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,SAA0B,CAAC;QACjD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE;YACpC,IAAI,CAAC;gBAAC,EAAE,CAAC,OAAO,CAAC,CAAC;YAAC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBAAC,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,CAAC,CAAC,CAAC;YAAC,CAAC;QACpF,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE;YAClC,IAAI,CAAC;gBAAC,EAAE,CAAC,OAAO,CAAC,CAAC;YAAC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBAAC,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,CAAC,CAAC,CAAC;YAAC,CAAC;QACpF,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAtDD,oDAsDC;AAYD,MAAa,cAAc;IAkBvB,YAAY,OAA8B;QAblC,OAAE,GAAqB,IAAI,CAAC;QAC5B,kBAAa,GAAsC,IAAI,GAAG,EAAE,CAAC;QAC7D,mBAAc,GAAQ,IAAI,CAAC;QAC3B,mBAAc,GAAQ,IAAI,CAAC;QAC3B,sBAAiB,GAAW,CAAC,CAAC;QAC9B,eAAU,GAAU,EAAE,CAAC;QACvB,uBAAkB,GAAyB,IAAI,CAAC;QAChD,YAAO,GAAmB,MAAM,CAAC;QACjC,qBAAgB,GAAqC,IAAI,GAAG,EAAE,CAAC;QAC/D,cAAS,GAAW,CAAC,CAAC;QAEtB,yBAAoB,GAAoB,IAAI,GAAG,EAAE,CAAC;QAwMlD,kBAAa,GAAG,GAAG,EAAE;YACzB,IAAI,IAAI,CAAC,OAAO,KAAK,WAAW,EAAE,CAAC;gBAC/B,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;gBAC3B,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YACpC,CAAC;QACL,CAAC,CAAC;QAEM,mBAAc,GAAG,GAAG,EAAE;YAC1B,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QACpC,CAAC,CAAC;QA/ME,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC9E,IAAI,CAAC,OAAO,GAAG,GAAG,MAAM,eAAe,CAAC;QACxC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,qEAAqE;QACrE,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACvC,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACtD,IAAI,CAAC;gBACD,uDAAuD;gBACvD,4EAA4E;gBAC5E,+CAA+C;YACnD,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QACnB,CAAC;QAED,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,IAAI,QAAQ,CAAC;IAC1E,CAAC;IAED,IAAI,MAAM,KAAqB,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACrD,IAAI,SAAS,KAAc,OAAO,IAAI,CAAC,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC;IAEjE,cAAc,CAAC,EAAoC;QAC/C,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9B,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,oBAAoB,CAAC,EAAc;QAC/B,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClC,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACtD,CAAC;IAEO,UAAU,CAAC,CAAiB;QAChC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,QAAQ,CAAC,QAAgB;QACrB,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;QACtB,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,OAAO;QACT,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI;YAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC/E,IAAI,IAAI,CAAC,kBAAkB;YAAE,OAAO,IAAI,CAAC,kBAAkB,CAAC;QAC5D,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YACrD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACnC,CAAC;IAEO,UAAU;QACd,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAC9B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClC,IAAI,IAAI,CAAC,KAAK;gBAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1D,IAAI,IAAI,CAAC,SAAS;gBAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAEtE,2FAA2F;YAC3F,yEAAyE;YACzE,MAAM,SAAS,GAAa,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBACd,SAAS,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YACnD,CAAC;YAED,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC;gBAC1B,CAAC,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,SAAS,CAAC;gBAC1C,CAAC,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;YAEpC,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,GAAG,EAAE;gBAClB,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;gBAC7B,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;gBAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC5B,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtB,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAC9B,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAChC,IAAI,CAAC,EAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC3D,CAAC;gBACD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC;oBAC5C,IAAI,GAAG,CAAC,YAAY;wBAAE,GAAG,CAAC,SAAS,EAAE,CAAC;gBAC1C,CAAC;gBACD,OAAO,EAAE,CAAC;YACd,CAAC,CAAC;YAEF,IAAI,CAAC,EAAE,CAAC,SAAS,GAAG,CAAC,KAAK,EAAE,EAAE;gBAC1B,IAAI,CAAC;oBACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACpC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;gBAC7B,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACT,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,CAAC,CAAC,CAAC;gBACtD,CAAC;YACL,CAAC,CAAC;YAEF,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,GAAG,EAAE;gBACnB,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;gBAChC,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;gBACf,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC7B,CAAC,CAAC;YAEF,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,CAAC,GAAG,EAAE,EAAE;gBACtB,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAC;gBACjD,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;gBAChC,MAAM,CAAC,GAAG,CAAC,CAAC;YAChB,CAAC,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC;IAED,UAAU;QACN,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QAChC,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACjC,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACV,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;QACnB,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IACzB,CAAC;IAED,OAAO,CAAU,KAAa,EAAE,UAAuC,EAAE;QACrE,IAAI,SAAiB,CAAC;QACtB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,SAAS,GAAG,SAAS,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnD,CAAC;aAAM,IAAI,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC;YAChE,SAAS,GAAG,KAAK,CAAC,CAAC,0BAA0B;QACjD,CAAC;aAAM,CAAC;YACJ,SAAS,GAAG,GAAG,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,mDAAmD;QACjG,CAAC;QACD,IAAI,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,CAAC,GAAG,EAAE,CAAC;YACP,GAAG,GAAG,IAAI,oBAAoB,CAAI,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YAC5D,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,GAA8B,CAAC;IAC1C,CAAC;IAED,QAAQ,CAAC,MAAc,EAAE,IAAY;QACjC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,gBAAgB;IAChB,KAAK,CAAC,IAAS;QACX,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YACnD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QACvC,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;IACL,CAAC;IAEO,aAAa,CAAC,IAAqB;QACvC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC5B,OAAO;QACX,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,GAAG;YAAE,GAAG,CAAC,KAAK,CAAC,IAAW,CAAC,CAAC;IACpC,CAAC;IAEO,cAAc;QAClB,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE;YACnC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;YAC7B,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,GAAG,KAAK,EAAE,CAAC;gBAC5D,OAAO,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;gBAC9D,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;YACrB,CAAC;QACL,CAAC,EAAE,KAAK,CAAC,CAAC;IACd,CAAC;IAEO,aAAa;QACjB,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACnC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC/B,CAAC;IACL,CAAC;IAEO,iBAAiB;QACrB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACvD,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;YAChC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9C,OAAO;QACX,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC,EAAE,KAAK,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC3C,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE;YAClC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QACpC,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,CAAC;IACvB,CAAC;IAEO,aAAa;QACjB,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAClC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC/B,CAAC;IACL,CAAC;IAcO,sBAAsB;QAC1B,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAChC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACtD,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5D,CAAC;IACL,CAAC;IAEO,yBAAyB;QAC7B,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAChC,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACzD,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAC/D,CAAC;IACL,CAAC;CACJ;AAjPD,wCAiPC"}
|
|
1
|
+
{"version":3,"file":"realtime.js","sourceRoot":"","sources":["../../src/realtime.ts"],"names":[],"mappings":"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"}
|
package/dist/commonjs/sdk.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../../src/sdk.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,MAAM,WAAW,UAAU;IACvB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../../src/sdk.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,MAAM,WAAW,UAAU;IACvB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,cAAM,cAAc;IACJ,OAAO,CAAC,GAAG;gBAAH,GAAG,EAAE,GAAG,CAAC,WAAW;IAExC;;OAEG;IACG,OAAO,CAAC,MAAM,EAAE;QAClB,cAAc,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC;QACpC,WAAW,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC;QACjC,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAA;KACtB;CAOJ;AAED;;;GAGG;AACH,qBAAa,GAAG;IACZ,SAAgB,IAAI,EAAE,GAAG,CAAC,iBAAiB,CAAC;IAC5C,SAAgB,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC;IAC9B,SAAgB,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC;IACxC,SAAgB,QAAQ,EAAE,cAAc,CAAC;IACzC,SAAgB,QAAQ,EAAE,cAAc,CAAC;IAEzC,OAAO,CAAC,MAAM,CAAoB;gBAEtB,OAAO,GAAE,UAAe;IAuBpC;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAWlC;AAED,kCAAkC;AAClC,eAAO,MAAM,SAAS,YAAM,CAAC;AAG7B,eAAO,MAAM,YAAY,GAAI,SAAS,UAAU,QAAqB,CAAC"}
|
package/dist/commonjs/sdk.js
CHANGED
package/dist/commonjs/sdk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../src/sdk.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2DAA6C;AAC7C,+CAA+C;
|
|
1
|
+
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../src/sdk.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2DAA6C;AAC7C,+CAA+C;AAiB/C;;GAEG;AACH,MAAM,cAAc;IAChB,YAAoB,GAAoB;QAApB,QAAG,GAAH,GAAG,CAAiB;IAAI,CAAC;IAE7C;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,MAKb;QACG,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;YACpB,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,WAAY;YAC5D,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,UAAU,EAAE,MAAM,CAAC,UAAU;SAChC,CAAC,CAAC;IACP,CAAC;CACJ;AAED;;;GAGG;AACH,MAAa,GAAG;IASZ,YAAY,UAAsB,EAAE;QAChC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,IAAI,4BAA4B,CAAC;QACzF,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC;QAEpD,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC;YAChC,QAAQ,EAAE,SAAS;YACnB,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE;YACpD,MAAM,EAAE,MAAM;SACjB,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,EAAE,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAErE,IAAI,CAAC,QAAQ,GAAG,IAAI,4BAAc,CAAC;YAC/B,OAAO,EAAE,SAAS;YAClB,MAAM,EAAE,MAAM;YACd,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,EAAE;YAClC,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;SACrD,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,MAAc;QACpB,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC;YAChC,GAAG,IAAI,CAAC,MAAM;YACd,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE;YAC9D,MAAM;SACT,CAAC,CAAC;QACF,IAAY,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3D,IAAY,CAAC,EAAE,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAY,CAAC,OAAO,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvD,IAAY,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAClF,CAAC;CACJ;AA9CD,kBA8CC;AAED,kCAAkC;AACrB,QAAA,SAAS,GAAG,GAAG,CAAC;AAE7B,sDAAsD;AAC/C,MAAM,YAAY,GAAG,CAAC,OAAmB,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;AAAzD,QAAA,YAAY,gBAA6C"}
|
package/dist/esm/realtime.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Aerostack Realtime Client for Web/Browser SDK
|
|
3
3
|
*/
|
|
4
|
-
export type RealtimeEvent = 'INSERT' | 'UPDATE' | 'DELETE' | '*';
|
|
4
|
+
export type RealtimeEvent = 'INSERT' | 'UPDATE' | 'DELETE' | '*' | string;
|
|
5
5
|
export interface RealtimeMessage {
|
|
6
6
|
type: string;
|
|
7
7
|
topic: string;
|
|
@@ -12,42 +12,69 @@ export interface RealtimeSubscriptionOptions {
|
|
|
12
12
|
filter?: Record<string, any>;
|
|
13
13
|
}
|
|
14
14
|
export type RealtimeCallback<T = any> = (payload: RealtimePayload<T>) => void;
|
|
15
|
+
/** Typed payload for realtime events */
|
|
15
16
|
export interface RealtimePayload<T = any> {
|
|
16
|
-
type: 'db_change' | 'chat_message';
|
|
17
|
+
type: 'db_change' | 'chat_message' | 'event';
|
|
17
18
|
topic: string;
|
|
18
|
-
operation
|
|
19
|
+
operation?: RealtimeEvent;
|
|
20
|
+
event?: string;
|
|
19
21
|
data: T;
|
|
20
22
|
old?: T;
|
|
21
|
-
|
|
23
|
+
userId?: string;
|
|
24
|
+
timestamp?: number | string;
|
|
22
25
|
[key: string]: any;
|
|
23
26
|
}
|
|
27
|
+
/** Chat history message returned from REST API */
|
|
28
|
+
export interface HistoryMessage {
|
|
29
|
+
id: string;
|
|
30
|
+
room_id: string;
|
|
31
|
+
user_id: string;
|
|
32
|
+
event: string;
|
|
33
|
+
data: any;
|
|
34
|
+
created_at: number;
|
|
35
|
+
}
|
|
24
36
|
export declare class RealtimeSubscription<T = any> {
|
|
25
37
|
private client;
|
|
26
|
-
|
|
38
|
+
topic: string;
|
|
27
39
|
private options;
|
|
28
40
|
private callbacks;
|
|
29
|
-
private
|
|
41
|
+
private isSubscribed;
|
|
30
42
|
constructor(client: RealtimeClient, topic: string, options?: RealtimeSubscriptionOptions);
|
|
31
|
-
|
|
43
|
+
/** Listen for DB change events (INSERT/UPDATE/DELETE/*) or custom named events */
|
|
44
|
+
on(event: RealtimeEvent | string, callback: RealtimeCallback<T>): this;
|
|
45
|
+
/** Remove a specific callback for an event */
|
|
46
|
+
off(event: RealtimeEvent | string, callback: RealtimeCallback<T>): this;
|
|
32
47
|
subscribe(): this;
|
|
33
48
|
unsubscribe(): void;
|
|
34
|
-
|
|
49
|
+
/** Publish a custom event to all subscribers on this channel */
|
|
50
|
+
publish(event: string, data: any, options?: {
|
|
51
|
+
persist?: boolean;
|
|
52
|
+
}): void;
|
|
53
|
+
/** Fetch persisted message history for this channel (requires persist: true on publish) */
|
|
54
|
+
getHistory(limit?: number, before?: number): Promise<HistoryMessage[]>;
|
|
55
|
+
/** Track this user's presence state on this channel (auto-synced to subscribers) */
|
|
56
|
+
track(state: Record<string, any>): void;
|
|
57
|
+
/** Stop tracking presence on this channel */
|
|
58
|
+
untrack(): void;
|
|
35
59
|
/** @internal */
|
|
36
60
|
_emit(payload: RealtimePayload<T>): void;
|
|
37
61
|
}
|
|
38
62
|
export type RealtimeStatus = 'idle' | 'connecting' | 'connected' | 'reconnecting' | 'disconnected';
|
|
39
63
|
export interface RealtimeClientOptions {
|
|
40
64
|
baseUrl: string;
|
|
41
|
-
|
|
65
|
+
projectId: string;
|
|
42
66
|
token?: string;
|
|
43
|
-
|
|
67
|
+
userId?: string;
|
|
68
|
+
apiKey?: string;
|
|
69
|
+
/** Max reconnect attempts before giving up (default: Infinity) */
|
|
44
70
|
maxReconnectAttempts?: number;
|
|
45
71
|
}
|
|
46
72
|
export declare class RealtimeClient {
|
|
47
73
|
private baseUrl;
|
|
48
|
-
private
|
|
74
|
+
private projectId;
|
|
49
75
|
private token?;
|
|
50
|
-
private
|
|
76
|
+
private userId?;
|
|
77
|
+
private apiKey?;
|
|
51
78
|
private ws;
|
|
52
79
|
private subscriptions;
|
|
53
80
|
private reconnectTimer;
|
|
@@ -57,23 +84,34 @@ export declare class RealtimeClient {
|
|
|
57
84
|
private _connectingPromise;
|
|
58
85
|
private _status;
|
|
59
86
|
private _statusListeners;
|
|
87
|
+
private _httpBaseUrl;
|
|
60
88
|
private _lastPong;
|
|
61
89
|
private _maxReconnectAttempts;
|
|
62
90
|
private _maxRetriesListeners;
|
|
63
91
|
constructor(options: RealtimeClientOptions);
|
|
64
92
|
get status(): RealtimeStatus;
|
|
65
93
|
get connected(): boolean;
|
|
94
|
+
/** Subscribe to connection status changes. Returns unsubscribe fn. */
|
|
66
95
|
onStatusChange(cb: (status: RealtimeStatus) => void): () => void;
|
|
96
|
+
/** Called when max reconnect attempts exceeded. Returns unsubscribe fn. */
|
|
67
97
|
onMaxRetriesExceeded(cb: () => void): () => void;
|
|
68
98
|
private _setStatus;
|
|
99
|
+
/** Update the auth token on a live connection */
|
|
69
100
|
setToken(newToken: string): void;
|
|
70
101
|
connect(): Promise<void>;
|
|
71
102
|
private _doConnect;
|
|
72
103
|
disconnect(): void;
|
|
73
104
|
channel<T = any>(topic: string, options?: RealtimeSubscriptionOptions): RealtimeSubscription<T>;
|
|
74
|
-
|
|
105
|
+
/** Legacy: send a chat message (now persisted to DB) */
|
|
106
|
+
sendChat(roomId: string, text: string, metadata?: Record<string, any>): void;
|
|
107
|
+
/** Legacy: get a chat room subscription */
|
|
108
|
+
chatRoom(roomId: string): RealtimeSubscription;
|
|
109
|
+
/** @internal — Generate unique message ID for ack tracking */
|
|
110
|
+
_generateId(): string;
|
|
75
111
|
/** @internal */
|
|
76
112
|
_send(data: any): void;
|
|
113
|
+
/** @internal — Fetch chat/event history via REST API */
|
|
114
|
+
_fetchHistory(room: string, limit?: number, before?: number): Promise<HistoryMessage[]>;
|
|
77
115
|
private handleMessage;
|
|
78
116
|
private startHeartbeat;
|
|
79
117
|
private stopHeartbeat;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"realtime.d.ts","sourceRoot":"","sources":["../../src/realtime.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"realtime.d.ts","sourceRoot":"","sources":["../../src/realtime.ts"],"names":[],"mappings":"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"}
|