@tthr/client 0.0.8 → 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 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
  */
@@ -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;AAQ3D;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;;;;;;OAUG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAcD;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,aAAa,CAAwC;IAC7D,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,oBAAoB,CAAK;IACjC,OAAO,CAAC,cAAc,CAAQ;IAC9B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,cAAc,CAA8B;gBAExC,OAAO,EAAE,mBAAmB;IAIxC;;OAEG;YACW,YAAY;IAU1B;;OAEG;IACH,OAAO,CAAC,UAAU;IAKlB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAQhB;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAgC9B,OAAO,CAAC,eAAe;IAuCvB,OAAO,CAAC,aAAa;IA+BrB,OAAO,CAAC,eAAe;IAsBvB;;OAEG;IACG,KAAK,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IA2BlE;;OAEG;IACG,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC;IAiChG;;;OAGG;IACH,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI;IAc7C;;OAEG;IACH,SAAS,CAAC,CAAC,GAAG,OAAO,EACnB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAChC,MAAM,IAAI;IAyBb,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,IAAI;IAMZ,OAAO,CAAC,UAAU;IAIlB;;OAEG;IACH,UAAU,IAAI,IAAI;CAQnB"}
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
- this.send({
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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tthr/client",
3
- "version": "0.0.8",
3
+ "version": "0.0.11",
4
4
  "description": "Tether core client - vanilla JavaScript SDK",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",