@tthr/client 0.0.7 → 0.0.11
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/index.d.ts +125 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +248 -7
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -12,6 +12,107 @@ export interface TetherClientOptions {
|
|
|
12
12
|
authToken?: string | (() => string | Promise<string>);
|
|
13
13
|
}
|
|
14
14
|
type SubscriptionCallback<T = unknown> = (data: T) => void;
|
|
15
|
+
/**
|
|
16
|
+
* Options for file upload
|
|
17
|
+
*/
|
|
18
|
+
export interface UploadOptions {
|
|
19
|
+
/** Custom metadata to store with the asset */
|
|
20
|
+
metadata?: Record<string, unknown>;
|
|
21
|
+
/** Progress callback for upload tracking */
|
|
22
|
+
onProgress?: (progress: {
|
|
23
|
+
loaded: number;
|
|
24
|
+
total: number;
|
|
25
|
+
}) => void;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Asset metadata returned from storage operations
|
|
29
|
+
*/
|
|
30
|
+
export interface AssetMetadata {
|
|
31
|
+
id: string;
|
|
32
|
+
filename: string;
|
|
33
|
+
contentType: string;
|
|
34
|
+
size: number;
|
|
35
|
+
sha256?: string;
|
|
36
|
+
createdAt: string;
|
|
37
|
+
metadata?: Record<string, unknown>;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Result of generating an upload URL
|
|
41
|
+
*/
|
|
42
|
+
export interface GenerateUploadUrlResult {
|
|
43
|
+
uploadUrl: string;
|
|
44
|
+
assetId: string;
|
|
45
|
+
expiresAt: string;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Storage API for file uploads and downloads
|
|
49
|
+
*/
|
|
50
|
+
export interface TetherStorage {
|
|
51
|
+
/**
|
|
52
|
+
* Upload a file directly to storage.
|
|
53
|
+
* Returns the asset ID (storageId) to save in your database.
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* const file = fileInput.files[0];
|
|
57
|
+
* const assetId = await client.storage.upload(file);
|
|
58
|
+
* // Save assetId to your database
|
|
59
|
+
* await client.mutation('posts.create', { imageId: assetId, ... });
|
|
60
|
+
*/
|
|
61
|
+
upload(file: File | Blob, options?: UploadOptions): Promise<string>;
|
|
62
|
+
/**
|
|
63
|
+
* Generate an upload URL without uploading.
|
|
64
|
+
* Useful for custom upload handling or server-side uploads.
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* const { uploadUrl, assetId } = await client.storage.generateUploadUrl({
|
|
68
|
+
* filename: 'document.pdf',
|
|
69
|
+
* contentType: 'application/pdf',
|
|
70
|
+
* });
|
|
71
|
+
* // Upload manually to uploadUrl, then confirm:
|
|
72
|
+
* await client.storage.confirmUpload(assetId);
|
|
73
|
+
*/
|
|
74
|
+
generateUploadUrl(options: {
|
|
75
|
+
filename: string;
|
|
76
|
+
contentType: string;
|
|
77
|
+
metadata?: Record<string, unknown>;
|
|
78
|
+
}): Promise<GenerateUploadUrlResult>;
|
|
79
|
+
/**
|
|
80
|
+
* Confirm that an upload has completed.
|
|
81
|
+
* Call this after uploading via a custom method.
|
|
82
|
+
*/
|
|
83
|
+
confirmUpload(assetId: string, sha256?: string): Promise<AssetMetadata>;
|
|
84
|
+
/**
|
|
85
|
+
* Get a signed URL for downloading/viewing an asset.
|
|
86
|
+
* URLs expire after 1 hour by default.
|
|
87
|
+
*
|
|
88
|
+
* @example
|
|
89
|
+
* const url = await client.storage.getUrl(post.imageId);
|
|
90
|
+
* // Use in <img src={url}> or window.open(url)
|
|
91
|
+
*/
|
|
92
|
+
getUrl(assetId: string): Promise<string>;
|
|
93
|
+
/**
|
|
94
|
+
* Get asset metadata without generating a download URL.
|
|
95
|
+
*/
|
|
96
|
+
getMetadata(assetId: string): Promise<AssetMetadata>;
|
|
97
|
+
/**
|
|
98
|
+
* Delete an asset from storage.
|
|
99
|
+
* Also removes the metadata record.
|
|
100
|
+
*/
|
|
101
|
+
delete(assetId: string): Promise<void>;
|
|
102
|
+
/**
|
|
103
|
+
* List assets for the project.
|
|
104
|
+
*/
|
|
105
|
+
list(options?: {
|
|
106
|
+
limit?: number;
|
|
107
|
+
offset?: number;
|
|
108
|
+
contentType?: string;
|
|
109
|
+
}): Promise<{
|
|
110
|
+
assets: AssetMetadata[];
|
|
111
|
+
totalCount: number;
|
|
112
|
+
limit: number;
|
|
113
|
+
offset: number;
|
|
114
|
+
}>;
|
|
115
|
+
}
|
|
15
116
|
/**
|
|
16
117
|
* Options for mutation execution
|
|
17
118
|
*/
|
|
@@ -42,6 +143,14 @@ export declare class TetherClient {
|
|
|
42
143
|
private reconnectDelay;
|
|
43
144
|
private isConnecting;
|
|
44
145
|
private connectPromise;
|
|
146
|
+
private heartbeatInterval;
|
|
147
|
+
private heartbeatTimeout;
|
|
148
|
+
private heartbeatTimer;
|
|
149
|
+
private heartbeatTimeoutTimer;
|
|
150
|
+
private awaitingPong;
|
|
151
|
+
private lastSyncTime;
|
|
152
|
+
/** Storage API for file uploads and downloads */
|
|
153
|
+
readonly storage: TetherStorage;
|
|
45
154
|
constructor(options: TetherClientOptions);
|
|
46
155
|
/**
|
|
47
156
|
* Get the auth token
|
|
@@ -60,6 +169,14 @@ export declare class TetherClient {
|
|
|
60
169
|
*/
|
|
61
170
|
connect(): Promise<void>;
|
|
62
171
|
private createWebSocket;
|
|
172
|
+
/**
|
|
173
|
+
* Start the heartbeat timer
|
|
174
|
+
*/
|
|
175
|
+
private startHeartbeat;
|
|
176
|
+
/**
|
|
177
|
+
* Stop the heartbeat timer
|
|
178
|
+
*/
|
|
179
|
+
private stopHeartbeat;
|
|
63
180
|
private handleMessage;
|
|
64
181
|
private handleReconnect;
|
|
65
182
|
/**
|
|
@@ -82,6 +199,14 @@ export declare class TetherClient {
|
|
|
82
199
|
private sendSubscribe;
|
|
83
200
|
private send;
|
|
84
201
|
private generateId;
|
|
202
|
+
/**
|
|
203
|
+
* Get HTTP headers with auth token
|
|
204
|
+
*/
|
|
205
|
+
private getHeaders;
|
|
206
|
+
/**
|
|
207
|
+
* Create the storage API implementation
|
|
208
|
+
*/
|
|
209
|
+
private createStorageApi;
|
|
85
210
|
/**
|
|
86
211
|
* Disconnect from the server
|
|
87
212
|
*/
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,mBAAmB;IAClC,6EAA6E;IAC7E,GAAG,EAAE,MAAM,CAAC;IACZ,iBAAiB;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;CACvD;AAED,KAAK,oBAAoB,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -16,8 +16,19 @@ export class TetherClient {
|
|
|
16
16
|
reconnectDelay = 1000;
|
|
17
17
|
isConnecting = false;
|
|
18
18
|
connectPromise = null;
|
|
19
|
+
// Heartbeat configuration
|
|
20
|
+
heartbeatInterval = 30000; // 30 seconds
|
|
21
|
+
heartbeatTimeout = 10000; // 10 seconds to receive pong
|
|
22
|
+
heartbeatTimer = null;
|
|
23
|
+
heartbeatTimeoutTimer = null;
|
|
24
|
+
awaitingPong = false;
|
|
25
|
+
// Sync tracking
|
|
26
|
+
lastSyncTime = 0;
|
|
27
|
+
/** Storage API for file uploads and downloads */
|
|
28
|
+
storage;
|
|
19
29
|
constructor(options) {
|
|
20
30
|
this.options = options;
|
|
31
|
+
this.storage = this.createStorageApi();
|
|
21
32
|
}
|
|
22
33
|
/**
|
|
23
34
|
* Get the auth token
|
|
@@ -35,7 +46,7 @@ export class TetherClient {
|
|
|
35
46
|
*/
|
|
36
47
|
getHttpUrl() {
|
|
37
48
|
const base = this.options.url.replace(/\/$/, '');
|
|
38
|
-
return `${base}/api/v1/${this.options.projectId}`;
|
|
49
|
+
return `${base}/api/v1/projects/${this.options.projectId}`;
|
|
39
50
|
}
|
|
40
51
|
/**
|
|
41
52
|
* Get the WebSocket URL
|
|
@@ -90,6 +101,7 @@ export class TetherClient {
|
|
|
90
101
|
if (msg.type === 'connected') {
|
|
91
102
|
this.connectionId = msg.connection_id ?? null;
|
|
92
103
|
this.isConnecting = false;
|
|
104
|
+
this.startHeartbeat();
|
|
93
105
|
resolve();
|
|
94
106
|
}
|
|
95
107
|
}
|
|
@@ -102,17 +114,57 @@ export class TetherClient {
|
|
|
102
114
|
this.ws.onclose = () => {
|
|
103
115
|
this.connectionId = null;
|
|
104
116
|
this.isConnecting = false;
|
|
117
|
+
this.stopHeartbeat();
|
|
105
118
|
this.handleReconnect();
|
|
106
119
|
};
|
|
107
120
|
}
|
|
121
|
+
/**
|
|
122
|
+
* Start the heartbeat timer
|
|
123
|
+
*/
|
|
124
|
+
startHeartbeat() {
|
|
125
|
+
this.stopHeartbeat();
|
|
126
|
+
this.heartbeatTimer = setInterval(() => {
|
|
127
|
+
if (this.ws?.readyState === WebSocket.OPEN) {
|
|
128
|
+
this.awaitingPong = true;
|
|
129
|
+
this.send({ type: 'ping' });
|
|
130
|
+
// Set timeout for pong response
|
|
131
|
+
this.heartbeatTimeoutTimer = setTimeout(() => {
|
|
132
|
+
if (this.awaitingPong) {
|
|
133
|
+
console.warn('Tether: Heartbeat timeout - forcing reconnect');
|
|
134
|
+
this.ws?.close();
|
|
135
|
+
}
|
|
136
|
+
}, this.heartbeatTimeout);
|
|
137
|
+
}
|
|
138
|
+
}, this.heartbeatInterval);
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Stop the heartbeat timer
|
|
142
|
+
*/
|
|
143
|
+
stopHeartbeat() {
|
|
144
|
+
if (this.heartbeatTimer) {
|
|
145
|
+
clearInterval(this.heartbeatTimer);
|
|
146
|
+
this.heartbeatTimer = null;
|
|
147
|
+
}
|
|
148
|
+
if (this.heartbeatTimeoutTimer) {
|
|
149
|
+
clearTimeout(this.heartbeatTimeoutTimer);
|
|
150
|
+
this.heartbeatTimeoutTimer = null;
|
|
151
|
+
}
|
|
152
|
+
this.awaitingPong = false;
|
|
153
|
+
}
|
|
108
154
|
handleMessage(data) {
|
|
109
155
|
try {
|
|
110
156
|
const message = JSON.parse(data);
|
|
111
157
|
switch (message.type) {
|
|
112
158
|
case 'connected':
|
|
113
159
|
this.connectionId = message.connection_id ?? null;
|
|
160
|
+
// Initialize lastSyncTime from server time
|
|
161
|
+
if (message.server_time) {
|
|
162
|
+
this.lastSyncTime = new Date(message.server_time).getTime();
|
|
163
|
+
}
|
|
114
164
|
break;
|
|
115
165
|
case 'data':
|
|
166
|
+
// Update lastSyncTime on every data message
|
|
167
|
+
this.lastSyncTime = Date.now();
|
|
116
168
|
if (message.id) {
|
|
117
169
|
const sub = this.subscriptions.get(message.id);
|
|
118
170
|
if (sub) {
|
|
@@ -124,7 +176,12 @@ export class TetherClient {
|
|
|
124
176
|
console.error('Tether error:', message.error);
|
|
125
177
|
break;
|
|
126
178
|
case 'pong':
|
|
127
|
-
// Heartbeat acknowledged
|
|
179
|
+
// Heartbeat acknowledged - clear timeout
|
|
180
|
+
this.awaitingPong = false;
|
|
181
|
+
if (this.heartbeatTimeoutTimer) {
|
|
182
|
+
clearTimeout(this.heartbeatTimeoutTimer);
|
|
183
|
+
this.heartbeatTimeoutTimer = null;
|
|
184
|
+
}
|
|
128
185
|
break;
|
|
129
186
|
}
|
|
130
187
|
}
|
|
@@ -142,9 +199,9 @@ export class TetherClient {
|
|
|
142
199
|
setTimeout(() => {
|
|
143
200
|
console.log(`Tether: Attempting reconnection (${this.reconnectAttempts}/${this.maxReconnectAttempts})`);
|
|
144
201
|
this.connect().then(() => {
|
|
145
|
-
// Re-subscribe to all active subscriptions
|
|
202
|
+
// Re-subscribe to all active subscriptions with lastSyncTime for catch-up
|
|
146
203
|
for (const [id, sub] of this.subscriptions) {
|
|
147
|
-
this.sendSubscribe(id, sub.query, sub.args);
|
|
204
|
+
this.sendSubscribe(id, sub.query, sub.args, true);
|
|
148
205
|
}
|
|
149
206
|
}).catch(() => {
|
|
150
207
|
// Will retry via onclose handler
|
|
@@ -241,13 +298,18 @@ export class TetherClient {
|
|
|
241
298
|
}
|
|
242
299
|
};
|
|
243
300
|
}
|
|
244
|
-
sendSubscribe(id, query, args) {
|
|
245
|
-
|
|
301
|
+
sendSubscribe(id, query, args, includeLastSync = false) {
|
|
302
|
+
const message = {
|
|
246
303
|
type: 'subscribe',
|
|
247
304
|
id,
|
|
248
305
|
query,
|
|
249
306
|
args,
|
|
250
|
-
}
|
|
307
|
+
};
|
|
308
|
+
// Include lastSyncTime on reconnect so server can send missed changes
|
|
309
|
+
if (includeLastSync && this.lastSyncTime > 0) {
|
|
310
|
+
message.last_sync_time = this.lastSyncTime;
|
|
311
|
+
}
|
|
312
|
+
this.send(message);
|
|
251
313
|
}
|
|
252
314
|
send(message) {
|
|
253
315
|
if (this.ws?.readyState === WebSocket.OPEN) {
|
|
@@ -257,16 +319,195 @@ export class TetherClient {
|
|
|
257
319
|
generateId() {
|
|
258
320
|
return `${Date.now()}-${Math.random().toString(36).slice(2, 9)}`;
|
|
259
321
|
}
|
|
322
|
+
/**
|
|
323
|
+
* Get HTTP headers with auth token
|
|
324
|
+
*/
|
|
325
|
+
async getHeaders() {
|
|
326
|
+
const headers = {
|
|
327
|
+
'Content-Type': 'application/json',
|
|
328
|
+
};
|
|
329
|
+
const token = await this.getAuthToken();
|
|
330
|
+
if (token) {
|
|
331
|
+
headers['Authorization'] = `Bearer ${token}`;
|
|
332
|
+
}
|
|
333
|
+
return headers;
|
|
334
|
+
}
|
|
335
|
+
/**
|
|
336
|
+
* Create the storage API implementation
|
|
337
|
+
*/
|
|
338
|
+
createStorageApi() {
|
|
339
|
+
const client = this;
|
|
340
|
+
return {
|
|
341
|
+
async upload(file, options) {
|
|
342
|
+
// Get filename from File, or generate one for Blob
|
|
343
|
+
const filename = file instanceof File ? file.name : 'upload';
|
|
344
|
+
const contentType = file.type || 'application/octet-stream';
|
|
345
|
+
// Generate upload URL
|
|
346
|
+
const { uploadUrl, assetId } = await this.generateUploadUrl({
|
|
347
|
+
filename,
|
|
348
|
+
contentType,
|
|
349
|
+
metadata: options?.metadata,
|
|
350
|
+
});
|
|
351
|
+
// Upload directly to R2 using XMLHttpRequest for progress tracking
|
|
352
|
+
await new Promise((resolve, reject) => {
|
|
353
|
+
const xhr = new XMLHttpRequest();
|
|
354
|
+
xhr.open('PUT', uploadUrl);
|
|
355
|
+
xhr.setRequestHeader('Content-Type', contentType);
|
|
356
|
+
if (options?.onProgress) {
|
|
357
|
+
xhr.upload.onprogress = (e) => {
|
|
358
|
+
if (e.lengthComputable) {
|
|
359
|
+
options.onProgress({ loaded: e.loaded, total: e.total });
|
|
360
|
+
}
|
|
361
|
+
};
|
|
362
|
+
}
|
|
363
|
+
xhr.onload = () => {
|
|
364
|
+
if (xhr.status >= 200 && xhr.status < 300) {
|
|
365
|
+
resolve();
|
|
366
|
+
}
|
|
367
|
+
else {
|
|
368
|
+
reject(new Error(`Upload failed: ${xhr.status} ${xhr.statusText}`));
|
|
369
|
+
}
|
|
370
|
+
};
|
|
371
|
+
xhr.onerror = () => reject(new Error('Upload failed: network error'));
|
|
372
|
+
xhr.send(file);
|
|
373
|
+
});
|
|
374
|
+
// Confirm upload completed
|
|
375
|
+
await this.confirmUpload(assetId);
|
|
376
|
+
return assetId;
|
|
377
|
+
},
|
|
378
|
+
async generateUploadUrl(opts) {
|
|
379
|
+
const url = `${client.getHttpUrl()}/assets/upload-url`;
|
|
380
|
+
const response = await fetch(url, {
|
|
381
|
+
method: 'POST',
|
|
382
|
+
headers: await client.getHeaders(),
|
|
383
|
+
body: JSON.stringify({
|
|
384
|
+
filename: opts.filename,
|
|
385
|
+
content_type: opts.contentType,
|
|
386
|
+
metadata: opts.metadata,
|
|
387
|
+
}),
|
|
388
|
+
});
|
|
389
|
+
if (!response.ok) {
|
|
390
|
+
const error = await response.json().catch(() => ({ error: response.statusText }));
|
|
391
|
+
throw new Error(error.error || `Failed to generate upload URL: ${response.statusText}`);
|
|
392
|
+
}
|
|
393
|
+
const data = await response.json();
|
|
394
|
+
return {
|
|
395
|
+
uploadUrl: data.upload_url,
|
|
396
|
+
assetId: data.asset_id,
|
|
397
|
+
expiresAt: data.expires_at,
|
|
398
|
+
};
|
|
399
|
+
},
|
|
400
|
+
async confirmUpload(assetId, sha256) {
|
|
401
|
+
const url = `${client.getHttpUrl()}/assets/${assetId}/complete`;
|
|
402
|
+
const response = await fetch(url, {
|
|
403
|
+
method: 'POST',
|
|
404
|
+
headers: await client.getHeaders(),
|
|
405
|
+
body: JSON.stringify({ sha256 }),
|
|
406
|
+
});
|
|
407
|
+
if (!response.ok) {
|
|
408
|
+
const error = await response.json().catch(() => ({ error: response.statusText }));
|
|
409
|
+
throw new Error(error.error || `Failed to confirm upload: ${response.statusText}`);
|
|
410
|
+
}
|
|
411
|
+
const data = await response.json();
|
|
412
|
+
return {
|
|
413
|
+
id: data.asset_id,
|
|
414
|
+
filename: data.filename || '',
|
|
415
|
+
contentType: data.content_type,
|
|
416
|
+
size: data.size,
|
|
417
|
+
sha256: data.sha256,
|
|
418
|
+
createdAt: data.created_at || '',
|
|
419
|
+
metadata: data.metadata,
|
|
420
|
+
};
|
|
421
|
+
},
|
|
422
|
+
async getUrl(assetId) {
|
|
423
|
+
const url = `${client.getHttpUrl()}/assets/${assetId}/url`;
|
|
424
|
+
const response = await fetch(url, {
|
|
425
|
+
headers: await client.getHeaders(),
|
|
426
|
+
});
|
|
427
|
+
if (!response.ok) {
|
|
428
|
+
const error = await response.json().catch(() => ({ error: response.statusText }));
|
|
429
|
+
throw new Error(error.error || `Failed to get asset URL: ${response.statusText}`);
|
|
430
|
+
}
|
|
431
|
+
const data = await response.json();
|
|
432
|
+
return data.url;
|
|
433
|
+
},
|
|
434
|
+
async getMetadata(assetId) {
|
|
435
|
+
const url = `${client.getHttpUrl()}/assets/${assetId}`;
|
|
436
|
+
const response = await fetch(url, {
|
|
437
|
+
headers: await client.getHeaders(),
|
|
438
|
+
});
|
|
439
|
+
if (!response.ok) {
|
|
440
|
+
const error = await response.json().catch(() => ({ error: response.statusText }));
|
|
441
|
+
throw new Error(error.error || `Failed to get asset metadata: ${response.statusText}`);
|
|
442
|
+
}
|
|
443
|
+
const data = await response.json();
|
|
444
|
+
return {
|
|
445
|
+
id: data.id,
|
|
446
|
+
filename: data.filename,
|
|
447
|
+
contentType: data.content_type,
|
|
448
|
+
size: data.size,
|
|
449
|
+
sha256: data.sha256,
|
|
450
|
+
createdAt: data.created_at,
|
|
451
|
+
metadata: data.metadata,
|
|
452
|
+
};
|
|
453
|
+
},
|
|
454
|
+
async delete(assetId) {
|
|
455
|
+
const url = `${client.getHttpUrl()}/assets/${assetId}`;
|
|
456
|
+
const response = await fetch(url, {
|
|
457
|
+
method: 'DELETE',
|
|
458
|
+
headers: await client.getHeaders(),
|
|
459
|
+
});
|
|
460
|
+
if (!response.ok && response.status !== 204) {
|
|
461
|
+
const error = await response.json().catch(() => ({ error: response.statusText }));
|
|
462
|
+
throw new Error(error.error || `Failed to delete asset: ${response.statusText}`);
|
|
463
|
+
}
|
|
464
|
+
},
|
|
465
|
+
async list(options) {
|
|
466
|
+
const params = new URLSearchParams();
|
|
467
|
+
if (options?.limit)
|
|
468
|
+
params.set('limit', options.limit.toString());
|
|
469
|
+
if (options?.offset)
|
|
470
|
+
params.set('offset', options.offset.toString());
|
|
471
|
+
if (options?.contentType)
|
|
472
|
+
params.set('content_type', options.contentType);
|
|
473
|
+
const url = `${client.getHttpUrl()}/assets?${params.toString()}`;
|
|
474
|
+
const response = await fetch(url, {
|
|
475
|
+
headers: await client.getHeaders(),
|
|
476
|
+
});
|
|
477
|
+
if (!response.ok) {
|
|
478
|
+
const error = await response.json().catch(() => ({ error: response.statusText }));
|
|
479
|
+
throw new Error(error.error || `Failed to list assets: ${response.statusText}`);
|
|
480
|
+
}
|
|
481
|
+
const data = await response.json();
|
|
482
|
+
return {
|
|
483
|
+
assets: data.assets.map((a) => ({
|
|
484
|
+
id: a.id,
|
|
485
|
+
filename: a.filename,
|
|
486
|
+
contentType: a.content_type,
|
|
487
|
+
size: a.size,
|
|
488
|
+
sha256: a.sha256,
|
|
489
|
+
createdAt: a.created_at,
|
|
490
|
+
metadata: a.metadata,
|
|
491
|
+
})),
|
|
492
|
+
totalCount: data.total_count,
|
|
493
|
+
limit: data.limit,
|
|
494
|
+
offset: data.offset,
|
|
495
|
+
};
|
|
496
|
+
},
|
|
497
|
+
};
|
|
498
|
+
}
|
|
260
499
|
/**
|
|
261
500
|
* Disconnect from the server
|
|
262
501
|
*/
|
|
263
502
|
disconnect() {
|
|
503
|
+
this.stopHeartbeat();
|
|
264
504
|
if (this.ws) {
|
|
265
505
|
this.ws.close();
|
|
266
506
|
this.ws = null;
|
|
267
507
|
}
|
|
268
508
|
this.subscriptions.clear();
|
|
269
509
|
this.connectionId = null;
|
|
510
|
+
this.lastSyncTime = 0;
|
|
270
511
|
}
|
|
271
512
|
}
|
|
272
513
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|