@haex-space/vault-sdk 2.5.37 → 2.5.42

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.
@@ -72,39 +72,50 @@ var HAEXTENSION_METHODS = {
72
72
  filesystem: {
73
73
  saveFile: "haextension:filesystem:save-file",
74
74
  openFile: "haextension:filesystem:open-file",
75
- showImage: "haextension:filesystem:show-image",
76
- sync: {
77
- // Spaces
78
- listSpaces: "haextension:filesystem:sync:list-spaces",
79
- createSpace: "haextension:filesystem:sync:create-space",
80
- deleteSpace: "haextension:filesystem:sync:delete-space",
81
- // Files
82
- listFiles: "haextension:filesystem:sync:list-files",
83
- getFile: "haextension:filesystem:sync:get-file",
84
- uploadFile: "haextension:filesystem:sync:upload-file",
85
- downloadFile: "haextension:filesystem:sync:download-file",
86
- deleteFile: "haextension:filesystem:sync:delete-file",
87
- // Backends
88
- listBackends: "haextension:filesystem:sync:list-backends",
89
- addBackend: "haextension:filesystem:sync:add-backend",
90
- removeBackend: "haextension:filesystem:sync:remove-backend",
91
- testBackend: "haextension:filesystem:sync:test-backend",
92
- // Sync Rules
93
- listSyncRules: "haextension:filesystem:sync:list-sync-rules",
94
- addSyncRule: "haextension:filesystem:sync:add-sync-rule",
95
- updateSyncRule: "haextension:filesystem:sync:update-sync-rule",
96
- removeSyncRule: "haextension:filesystem:sync:remove-sync-rule",
97
- // Sync Operations
98
- getSyncStatus: "haextension:filesystem:sync:get-sync-status",
99
- triggerSync: "haextension:filesystem:sync:trigger-sync",
100
- pauseSync: "haextension:filesystem:sync:pause-sync",
101
- resumeSync: "haextension:filesystem:sync:resume-sync",
102
- // Conflict Resolution
103
- resolveConflict: "haextension:filesystem:sync:resolve-conflict",
104
- // UI Helpers
105
- selectFolder: "haextension:filesystem:sync:select-folder",
106
- scanLocal: "haextension:filesystem:sync:scan-local"
107
- }
75
+ showImage: "haextension:filesystem:show-image"
76
+ },
77
+ filesync: {
78
+ // Spaces
79
+ listSpaces: "haextension:filesync:list-spaces",
80
+ createSpace: "haextension:filesync:create-space",
81
+ deleteSpace: "haextension:filesync:delete-space",
82
+ // Files
83
+ listFiles: "haextension:filesync:list-files",
84
+ getFile: "haextension:filesync:get-file",
85
+ uploadFile: "haextension:filesync:upload-file",
86
+ downloadFile: "haextension:filesync:download-file",
87
+ deleteFile: "haextension:filesync:delete-file",
88
+ // Backends
89
+ listBackends: "haextension:filesync:list-backends",
90
+ addBackend: "haextension:filesync:add-backend",
91
+ removeBackend: "haextension:filesync:remove-backend",
92
+ testBackend: "haextension:filesync:test-backend",
93
+ // Sync Rules
94
+ listSyncRules: "haextension:filesync:list-sync-rules",
95
+ addSyncRule: "haextension:filesync:add-sync-rule",
96
+ updateSyncRule: "haextension:filesync:update-sync-rule",
97
+ removeSyncRule: "haextension:filesync:remove-sync-rule",
98
+ // Sync Operations
99
+ getSyncStatus: "haextension:filesync:get-sync-status",
100
+ triggerSync: "haextension:filesync:trigger-sync",
101
+ pauseSync: "haextension:filesync:pause-sync",
102
+ resumeSync: "haextension:filesync:resume-sync",
103
+ // Conflict Resolution
104
+ resolveConflict: "haextension:filesync:resolve-conflict",
105
+ // UI Helpers
106
+ selectFolder: "haextension:filesync:select-folder",
107
+ scanLocal: "haextension:filesync:scan-local",
108
+ // Sync Queue (persistent upload/download queue)
109
+ addToQueue: "haextension:filesync:add-to-queue",
110
+ getQueue: "haextension:filesync:get-queue",
111
+ getQueueSummary: "haextension:filesync:get-queue-summary",
112
+ startQueueEntry: "haextension:filesync:start-queue-entry",
113
+ completeQueueEntry: "haextension:filesync:complete-queue-entry",
114
+ failQueueEntry: "haextension:filesync:fail-queue-entry",
115
+ retryFailedQueue: "haextension:filesync:retry-failed-queue",
116
+ removeQueueEntry: "haextension:filesync:remove-queue-entry",
117
+ clearQueue: "haextension:filesync:clear-queue",
118
+ recoverQueue: "haextension:filesync:recover-queue"
108
119
  },
109
120
  storage: {
110
121
  getItem: "haextension:storage:get-item",
@@ -113,6 +124,19 @@ var HAEXTENSION_METHODS = {
113
124
  clear: "haextension:storage:clear",
114
125
  keys: "haextension:storage:keys"
115
126
  },
127
+ // Remote Storage API (S3, WebDAV, FTP, etc.)
128
+ remoteStorage: {
129
+ // Backend Management
130
+ listBackends: "haextension:remote-storage:list-backends",
131
+ addBackend: "haextension:remote-storage:add-backend",
132
+ removeBackend: "haextension:remote-storage:remove-backend",
133
+ testBackend: "haextension:remote-storage:test-backend",
134
+ // Storage Operations
135
+ upload: "haextension:remote-storage:upload",
136
+ download: "haextension:remote-storage:download",
137
+ delete: "haextension:remote-storage:delete",
138
+ list: "haextension:remote-storage:list"
139
+ },
116
140
  web: {
117
141
  fetch: "haextension:web:fetch"
118
142
  },
@@ -250,7 +274,7 @@ var FileSyncAPI = class {
250
274
  */
251
275
  async listSpacesAsync() {
252
276
  return this.client.request(
253
- HAEXTENSION_METHODS.filesystem.sync.listSpaces
277
+ HAEXTENSION_METHODS.filesync.listSpaces
254
278
  );
255
279
  }
256
280
  /**
@@ -258,7 +282,7 @@ var FileSyncAPI = class {
258
282
  */
259
283
  async createSpaceAsync(options) {
260
284
  return this.client.request(
261
- HAEXTENSION_METHODS.filesystem.sync.createSpace,
285
+ HAEXTENSION_METHODS.filesync.createSpace,
262
286
  options
263
287
  );
264
288
  }
@@ -266,7 +290,7 @@ var FileSyncAPI = class {
266
290
  * Delete a file space
267
291
  */
268
292
  async deleteSpaceAsync(spaceId) {
269
- await this.client.request(HAEXTENSION_METHODS.filesystem.sync.deleteSpace, {
293
+ await this.client.request(HAEXTENSION_METHODS.filesync.deleteSpace, {
270
294
  spaceId
271
295
  });
272
296
  }
@@ -278,7 +302,7 @@ var FileSyncAPI = class {
278
302
  */
279
303
  async listFilesAsync(options) {
280
304
  return this.client.request(
281
- HAEXTENSION_METHODS.filesystem.sync.listFiles,
305
+ HAEXTENSION_METHODS.filesync.listFiles,
282
306
  options
283
307
  );
284
308
  }
@@ -288,7 +312,7 @@ var FileSyncAPI = class {
288
312
  */
289
313
  async scanLocalAsync(options) {
290
314
  return this.client.request(
291
- HAEXTENSION_METHODS.filesystem.sync.scanLocal,
315
+ HAEXTENSION_METHODS.filesync.scanLocal,
292
316
  options
293
317
  );
294
318
  }
@@ -297,7 +321,7 @@ var FileSyncAPI = class {
297
321
  */
298
322
  async getFileAsync(fileId) {
299
323
  return this.client.request(
300
- HAEXTENSION_METHODS.filesystem.sync.getFile,
324
+ HAEXTENSION_METHODS.filesync.getFile,
301
325
  { fileId }
302
326
  );
303
327
  }
@@ -306,7 +330,7 @@ var FileSyncAPI = class {
306
330
  */
307
331
  async uploadFileAsync(options) {
308
332
  return this.client.request(
309
- HAEXTENSION_METHODS.filesystem.sync.uploadFile,
333
+ HAEXTENSION_METHODS.filesync.uploadFile,
310
334
  options
311
335
  );
312
336
  }
@@ -315,7 +339,7 @@ var FileSyncAPI = class {
315
339
  */
316
340
  async downloadFileAsync(options) {
317
341
  await this.client.request(
318
- HAEXTENSION_METHODS.filesystem.sync.downloadFile,
342
+ HAEXTENSION_METHODS.filesync.downloadFile,
319
343
  options
320
344
  );
321
345
  }
@@ -323,7 +347,7 @@ var FileSyncAPI = class {
323
347
  * Delete a file from the sync system
324
348
  */
325
349
  async deleteFileAsync(fileId) {
326
- await this.client.request(HAEXTENSION_METHODS.filesystem.sync.deleteFile, {
350
+ await this.client.request(HAEXTENSION_METHODS.filesync.deleteFile, {
327
351
  fileId
328
352
  });
329
353
  }
@@ -335,7 +359,7 @@ var FileSyncAPI = class {
335
359
  */
336
360
  async listBackendsAsync() {
337
361
  return this.client.request(
338
- HAEXTENSION_METHODS.filesystem.sync.listBackends
362
+ HAEXTENSION_METHODS.filesync.listBackends
339
363
  );
340
364
  }
341
365
  /**
@@ -343,7 +367,7 @@ var FileSyncAPI = class {
343
367
  */
344
368
  async addBackendAsync(options) {
345
369
  return this.client.request(
346
- HAEXTENSION_METHODS.filesystem.sync.addBackend,
370
+ HAEXTENSION_METHODS.filesync.addBackend,
347
371
  options
348
372
  );
349
373
  }
@@ -351,7 +375,7 @@ var FileSyncAPI = class {
351
375
  * Remove a storage backend
352
376
  */
353
377
  async removeBackendAsync(backendId) {
354
- await this.client.request(HAEXTENSION_METHODS.filesystem.sync.removeBackend, {
378
+ await this.client.request(HAEXTENSION_METHODS.filesync.removeBackend, {
355
379
  backendId
356
380
  });
357
381
  }
@@ -360,7 +384,7 @@ var FileSyncAPI = class {
360
384
  */
361
385
  async testBackendAsync(backendId) {
362
386
  return this.client.request(
363
- HAEXTENSION_METHODS.filesystem.sync.testBackend,
387
+ HAEXTENSION_METHODS.filesync.testBackend,
364
388
  { backendId }
365
389
  );
366
390
  }
@@ -372,7 +396,7 @@ var FileSyncAPI = class {
372
396
  */
373
397
  async listSyncRulesAsync() {
374
398
  return this.client.request(
375
- HAEXTENSION_METHODS.filesystem.sync.listSyncRules
399
+ HAEXTENSION_METHODS.filesync.listSyncRules
376
400
  );
377
401
  }
378
402
  /**
@@ -380,7 +404,7 @@ var FileSyncAPI = class {
380
404
  */
381
405
  async addSyncRuleAsync(options) {
382
406
  return this.client.request(
383
- HAEXTENSION_METHODS.filesystem.sync.addSyncRule,
407
+ HAEXTENSION_METHODS.filesync.addSyncRule,
384
408
  options
385
409
  );
386
410
  }
@@ -389,7 +413,7 @@ var FileSyncAPI = class {
389
413
  */
390
414
  async updateSyncRuleAsync(options) {
391
415
  return this.client.request(
392
- HAEXTENSION_METHODS.filesystem.sync.updateSyncRule,
416
+ HAEXTENSION_METHODS.filesync.updateSyncRule,
393
417
  options
394
418
  );
395
419
  }
@@ -397,7 +421,7 @@ var FileSyncAPI = class {
397
421
  * Remove a sync rule
398
422
  */
399
423
  async removeSyncRuleAsync(ruleId) {
400
- await this.client.request(HAEXTENSION_METHODS.filesystem.sync.removeSyncRule, {
424
+ await this.client.request(HAEXTENSION_METHODS.filesync.removeSyncRule, {
401
425
  ruleId
402
426
  });
403
427
  }
@@ -409,26 +433,26 @@ var FileSyncAPI = class {
409
433
  */
410
434
  async getSyncStatusAsync() {
411
435
  return this.client.request(
412
- HAEXTENSION_METHODS.filesystem.sync.getSyncStatus
436
+ HAEXTENSION_METHODS.filesync.getSyncStatus
413
437
  );
414
438
  }
415
439
  /**
416
440
  * Trigger a manual sync
417
441
  */
418
442
  async triggerSyncAsync() {
419
- await this.client.request(HAEXTENSION_METHODS.filesystem.sync.triggerSync);
443
+ await this.client.request(HAEXTENSION_METHODS.filesync.triggerSync);
420
444
  }
421
445
  /**
422
446
  * Pause syncing
423
447
  */
424
448
  async pauseSyncAsync() {
425
- await this.client.request(HAEXTENSION_METHODS.filesystem.sync.pauseSync);
449
+ await this.client.request(HAEXTENSION_METHODS.filesync.pauseSync);
426
450
  }
427
451
  /**
428
452
  * Resume syncing
429
453
  */
430
454
  async resumeSyncAsync() {
431
- await this.client.request(HAEXTENSION_METHODS.filesystem.sync.resumeSync);
455
+ await this.client.request(HAEXTENSION_METHODS.filesync.resumeSync);
432
456
  }
433
457
  // --------------------------------------------------------------------------
434
458
  // Conflict Resolution
@@ -437,7 +461,7 @@ var FileSyncAPI = class {
437
461
  * Resolve a file conflict
438
462
  */
439
463
  async resolveConflictAsync(fileId, resolution) {
440
- await this.client.request(HAEXTENSION_METHODS.filesystem.sync.resolveConflict, {
464
+ await this.client.request(HAEXTENSION_METHODS.filesync.resolveConflict, {
441
465
  fileId,
442
466
  resolution
443
467
  });
@@ -450,9 +474,91 @@ var FileSyncAPI = class {
450
474
  */
451
475
  async selectFolderAsync() {
452
476
  return this.client.request(
453
- HAEXTENSION_METHODS.filesystem.sync.selectFolder
477
+ HAEXTENSION_METHODS.filesync.selectFolder
454
478
  );
455
479
  }
480
+ // --------------------------------------------------------------------------
481
+ // Sync Queue
482
+ // --------------------------------------------------------------------------
483
+ /**
484
+ * Add files to the sync queue
485
+ */
486
+ async addToQueueAsync(options) {
487
+ return this.client.request(
488
+ HAEXTENSION_METHODS.filesync.addToQueue,
489
+ options
490
+ );
491
+ }
492
+ /**
493
+ * Get queue entries for the current device
494
+ */
495
+ async getQueueAsync(options) {
496
+ return this.client.request(
497
+ HAEXTENSION_METHODS.filesync.getQueue,
498
+ options
499
+ );
500
+ }
501
+ /**
502
+ * Get aggregated queue summary for the current device
503
+ */
504
+ async getQueueSummaryAsync() {
505
+ return this.client.request(
506
+ HAEXTENSION_METHODS.filesync.getQueueSummary
507
+ );
508
+ }
509
+ /**
510
+ * Mark a queue entry as started (in_progress)
511
+ */
512
+ async startQueueEntryAsync(entryId) {
513
+ await this.client.request(HAEXTENSION_METHODS.filesync.startQueueEntry, {
514
+ entryId
515
+ });
516
+ }
517
+ /**
518
+ * Mark a queue entry as completed
519
+ */
520
+ async completeQueueEntryAsync(entryId) {
521
+ await this.client.request(HAEXTENSION_METHODS.filesync.completeQueueEntry, {
522
+ entryId
523
+ });
524
+ }
525
+ /**
526
+ * Mark a queue entry as failed
527
+ */
528
+ async failQueueEntryAsync(entryId, errorMessage) {
529
+ await this.client.request(HAEXTENSION_METHODS.filesync.failQueueEntry, {
530
+ entryId,
531
+ errorMessage
532
+ });
533
+ }
534
+ /**
535
+ * Retry all failed queue entries (reset to pending)
536
+ */
537
+ async retryFailedQueueAsync() {
538
+ await this.client.request(HAEXTENSION_METHODS.filesync.retryFailedQueue);
539
+ }
540
+ /**
541
+ * Remove a queue entry
542
+ */
543
+ async removeQueueEntryAsync(entryId) {
544
+ await this.client.request(HAEXTENSION_METHODS.filesync.removeQueueEntry, {
545
+ entryId
546
+ });
547
+ }
548
+ /**
549
+ * Clear all queue entries for a sync rule
550
+ */
551
+ async clearQueueAsync(ruleId) {
552
+ await this.client.request(HAEXTENSION_METHODS.filesync.clearQueue, {
553
+ ruleId
554
+ });
555
+ }
556
+ /**
557
+ * Reset in_progress entries to pending (for recovery after crash)
558
+ */
559
+ async recoverQueueAsync() {
560
+ await this.client.request(HAEXTENSION_METHODS.filesync.recoverQueue);
561
+ }
456
562
  };
457
563
 
458
564
  // src/api/filesystem.ts
@@ -683,6 +789,111 @@ var PermissionsAPI = class {
683
789
  }
684
790
  };
685
791
 
792
+ // src/api/remoteStorage.ts
793
+ var RemoteStorageAPI = class {
794
+ constructor(client) {
795
+ this.client = client;
796
+ this.backends = new BackendManagement(client);
797
+ }
798
+ /**
799
+ * Upload data to a storage backend
800
+ * @param backendId - Backend ID to upload to
801
+ * @param key - Object key (path in the bucket)
802
+ * @param data - Data to upload
803
+ */
804
+ async upload(backendId, key, data) {
805
+ const base64 = btoa(String.fromCharCode(...data));
806
+ await this.client.request(HAEXTENSION_METHODS.remoteStorage.upload, {
807
+ backendId,
808
+ key,
809
+ data: base64
810
+ });
811
+ }
812
+ /**
813
+ * Download data from a storage backend
814
+ * @param backendId - Backend ID to download from
815
+ * @param key - Object key (path in the bucket)
816
+ * @returns Downloaded data as Uint8Array
817
+ */
818
+ async download(backendId, key) {
819
+ const base64 = await this.client.request(
820
+ HAEXTENSION_METHODS.remoteStorage.download,
821
+ { backendId, key }
822
+ );
823
+ const binary = atob(base64);
824
+ const bytes = new Uint8Array(binary.length);
825
+ for (let i = 0; i < binary.length; i++) {
826
+ bytes[i] = binary.charCodeAt(i);
827
+ }
828
+ return bytes;
829
+ }
830
+ /**
831
+ * Delete an object from a storage backend
832
+ * @param backendId - Backend ID
833
+ * @param key - Object key to delete
834
+ */
835
+ async delete(backendId, key) {
836
+ await this.client.request(HAEXTENSION_METHODS.remoteStorage.delete, {
837
+ backendId,
838
+ key
839
+ });
840
+ }
841
+ /**
842
+ * List objects in a storage backend
843
+ * @param backendId - Backend ID
844
+ * @param prefix - Optional prefix to filter objects
845
+ * @returns List of objects
846
+ */
847
+ async list(backendId, prefix) {
848
+ return this.client.request(
849
+ HAEXTENSION_METHODS.remoteStorage.list,
850
+ { backendId, prefix }
851
+ );
852
+ }
853
+ };
854
+ var BackendManagement = class {
855
+ constructor(client) {
856
+ this.client = client;
857
+ }
858
+ /**
859
+ * List all available storage backends
860
+ */
861
+ async list() {
862
+ return this.client.request(
863
+ HAEXTENSION_METHODS.remoteStorage.listBackends
864
+ );
865
+ }
866
+ /**
867
+ * Add a new storage backend
868
+ * @param request - Backend configuration
869
+ * @returns Created backend info
870
+ */
871
+ async add(request) {
872
+ return this.client.request(
873
+ HAEXTENSION_METHODS.remoteStorage.addBackend,
874
+ request
875
+ );
876
+ }
877
+ /**
878
+ * Remove a storage backend
879
+ * @param backendId - Backend ID to remove
880
+ */
881
+ async remove(backendId) {
882
+ await this.client.request(HAEXTENSION_METHODS.remoteStorage.removeBackend, {
883
+ backendId
884
+ });
885
+ }
886
+ /**
887
+ * Test connection to a storage backend
888
+ * @param backendId - Backend ID to test
889
+ */
890
+ async test(backendId) {
891
+ await this.client.request(HAEXTENSION_METHODS.remoteStorage.testBackend, {
892
+ backendId
893
+ });
894
+ }
895
+ };
896
+
686
897
  // src/messages.ts
687
898
  var HAEXSPACE_MESSAGE_TYPES = {
688
899
  /** Debug message for development/troubleshooting */
@@ -1012,7 +1223,18 @@ var TAURI_COMMANDS = {
1012
1223
  resolveConflict: "webview_filesync_resolve_conflict",
1013
1224
  // UI Helpers (selectFolder doesn't need extension info)
1014
1225
  selectFolder: "filesync_select_folder",
1015
- scanLocal: "webview_filesync_scan_local"
1226
+ scanLocal: "webview_filesync_scan_local",
1227
+ // Sync Queue
1228
+ addToQueue: "webview_filesync_add_to_queue",
1229
+ getQueue: "webview_filesync_get_queue",
1230
+ getQueueSummary: "webview_filesync_get_queue_summary",
1231
+ startQueueEntry: "webview_filesync_start_queue_entry",
1232
+ completeQueueEntry: "webview_filesync_complete_queue_entry",
1233
+ failQueueEntry: "webview_filesync_fail_queue_entry",
1234
+ retryFailedQueue: "webview_filesync_retry_failed_queue",
1235
+ removeQueueEntry: "webview_filesync_remove_queue_entry",
1236
+ clearQueue: "webview_filesync_clear_queue",
1237
+ recoverQueue: "webview_filesync_recover_queue"
1016
1238
  }
1017
1239
  };
1018
1240
 
@@ -1128,115 +1350,158 @@ var filesyncHandlers = {
1128
1350
  // ==========================================================================
1129
1351
  // Spaces
1130
1352
  // ==========================================================================
1131
- [HAEXTENSION_METHODS.filesystem.sync.listSpaces]: {
1353
+ [HAEXTENSION_METHODS.filesync.listSpaces]: {
1132
1354
  command: TAURI_COMMANDS.filesync.listSpaces,
1133
1355
  args: () => ({})
1134
1356
  },
1135
- [HAEXTENSION_METHODS.filesystem.sync.createSpace]: {
1357
+ [HAEXTENSION_METHODS.filesync.createSpace]: {
1136
1358
  command: TAURI_COMMANDS.filesync.createSpace,
1137
1359
  args: (p) => ({ request: p })
1138
1360
  },
1139
- [HAEXTENSION_METHODS.filesystem.sync.deleteSpace]: {
1361
+ [HAEXTENSION_METHODS.filesync.deleteSpace]: {
1140
1362
  command: TAURI_COMMANDS.filesync.deleteSpace,
1141
1363
  args: (p) => ({ spaceId: p.spaceId })
1142
1364
  },
1143
1365
  // ==========================================================================
1144
1366
  // Files
1145
1367
  // ==========================================================================
1146
- [HAEXTENSION_METHODS.filesystem.sync.listFiles]: {
1368
+ [HAEXTENSION_METHODS.filesync.listFiles]: {
1147
1369
  command: TAURI_COMMANDS.filesync.listFiles,
1148
1370
  args: (p) => ({ request: p })
1149
1371
  },
1150
- [HAEXTENSION_METHODS.filesystem.sync.getFile]: {
1372
+ [HAEXTENSION_METHODS.filesync.getFile]: {
1151
1373
  command: TAURI_COMMANDS.filesync.getFile,
1152
1374
  args: (p) => ({ fileId: p.fileId })
1153
1375
  },
1154
- [HAEXTENSION_METHODS.filesystem.sync.uploadFile]: {
1376
+ [HAEXTENSION_METHODS.filesync.uploadFile]: {
1155
1377
  command: TAURI_COMMANDS.filesync.uploadFile,
1156
1378
  args: (p) => ({ request: p })
1157
1379
  },
1158
- [HAEXTENSION_METHODS.filesystem.sync.downloadFile]: {
1380
+ [HAEXTENSION_METHODS.filesync.downloadFile]: {
1159
1381
  command: TAURI_COMMANDS.filesync.downloadFile,
1160
1382
  args: (p) => ({ request: p })
1161
1383
  },
1162
- [HAEXTENSION_METHODS.filesystem.sync.deleteFile]: {
1384
+ [HAEXTENSION_METHODS.filesync.deleteFile]: {
1163
1385
  command: TAURI_COMMANDS.filesync.deleteFile,
1164
1386
  args: (p) => ({ fileId: p.fileId })
1165
1387
  },
1166
1388
  // ==========================================================================
1167
1389
  // Backends
1168
1390
  // ==========================================================================
1169
- [HAEXTENSION_METHODS.filesystem.sync.listBackends]: {
1391
+ [HAEXTENSION_METHODS.filesync.listBackends]: {
1170
1392
  command: TAURI_COMMANDS.filesync.listBackends,
1171
1393
  args: () => ({})
1172
1394
  },
1173
- [HAEXTENSION_METHODS.filesystem.sync.addBackend]: {
1395
+ [HAEXTENSION_METHODS.filesync.addBackend]: {
1174
1396
  command: TAURI_COMMANDS.filesync.addBackend,
1175
1397
  args: (p) => ({ request: p })
1176
1398
  },
1177
- [HAEXTENSION_METHODS.filesystem.sync.removeBackend]: {
1399
+ [HAEXTENSION_METHODS.filesync.removeBackend]: {
1178
1400
  command: TAURI_COMMANDS.filesync.removeBackend,
1179
1401
  args: (p) => ({ backendId: p.backendId })
1180
1402
  },
1181
- [HAEXTENSION_METHODS.filesystem.sync.testBackend]: {
1403
+ [HAEXTENSION_METHODS.filesync.testBackend]: {
1182
1404
  command: TAURI_COMMANDS.filesync.testBackend,
1183
1405
  args: (p) => ({ backendId: p.backendId })
1184
1406
  },
1185
1407
  // ==========================================================================
1186
1408
  // Sync Rules
1187
1409
  // ==========================================================================
1188
- [HAEXTENSION_METHODS.filesystem.sync.listSyncRules]: {
1410
+ [HAEXTENSION_METHODS.filesync.listSyncRules]: {
1189
1411
  command: TAURI_COMMANDS.filesync.listSyncRules,
1190
1412
  args: () => ({})
1191
1413
  },
1192
- [HAEXTENSION_METHODS.filesystem.sync.addSyncRule]: {
1414
+ [HAEXTENSION_METHODS.filesync.addSyncRule]: {
1193
1415
  command: TAURI_COMMANDS.filesync.addSyncRule,
1194
1416
  args: (p) => ({ request: p })
1195
1417
  },
1196
- [HAEXTENSION_METHODS.filesystem.sync.updateSyncRule]: {
1418
+ [HAEXTENSION_METHODS.filesync.updateSyncRule]: {
1197
1419
  command: TAURI_COMMANDS.filesync.updateSyncRule,
1198
1420
  args: (p) => ({ request: p })
1199
1421
  },
1200
- [HAEXTENSION_METHODS.filesystem.sync.removeSyncRule]: {
1422
+ [HAEXTENSION_METHODS.filesync.removeSyncRule]: {
1201
1423
  command: TAURI_COMMANDS.filesync.removeSyncRule,
1202
1424
  args: (p) => ({ ruleId: p.ruleId })
1203
1425
  },
1204
1426
  // ==========================================================================
1205
1427
  // Sync Operations
1206
1428
  // ==========================================================================
1207
- [HAEXTENSION_METHODS.filesystem.sync.getSyncStatus]: {
1429
+ [HAEXTENSION_METHODS.filesync.getSyncStatus]: {
1208
1430
  command: TAURI_COMMANDS.filesync.getSyncStatus,
1209
1431
  args: () => ({})
1210
1432
  },
1211
- [HAEXTENSION_METHODS.filesystem.sync.triggerSync]: {
1433
+ [HAEXTENSION_METHODS.filesync.triggerSync]: {
1212
1434
  command: TAURI_COMMANDS.filesync.triggerSync,
1213
1435
  args: () => ({})
1214
1436
  },
1215
- [HAEXTENSION_METHODS.filesystem.sync.pauseSync]: {
1437
+ [HAEXTENSION_METHODS.filesync.pauseSync]: {
1216
1438
  command: TAURI_COMMANDS.filesync.pauseSync,
1217
1439
  args: () => ({})
1218
1440
  },
1219
- [HAEXTENSION_METHODS.filesystem.sync.resumeSync]: {
1441
+ [HAEXTENSION_METHODS.filesync.resumeSync]: {
1220
1442
  command: TAURI_COMMANDS.filesync.resumeSync,
1221
1443
  args: () => ({})
1222
1444
  },
1223
1445
  // ==========================================================================
1224
1446
  // Conflict Resolution
1225
1447
  // ==========================================================================
1226
- [HAEXTENSION_METHODS.filesystem.sync.resolveConflict]: {
1448
+ [HAEXTENSION_METHODS.filesync.resolveConflict]: {
1227
1449
  command: TAURI_COMMANDS.filesync.resolveConflict,
1228
1450
  args: (p) => ({ request: p })
1229
1451
  },
1230
1452
  // ==========================================================================
1231
1453
  // UI Helpers
1232
1454
  // ==========================================================================
1233
- [HAEXTENSION_METHODS.filesystem.sync.selectFolder]: {
1455
+ [HAEXTENSION_METHODS.filesync.selectFolder]: {
1234
1456
  command: TAURI_COMMANDS.filesync.selectFolder,
1235
1457
  args: () => ({})
1236
1458
  },
1237
- [HAEXTENSION_METHODS.filesystem.sync.scanLocal]: {
1459
+ [HAEXTENSION_METHODS.filesync.scanLocal]: {
1238
1460
  command: TAURI_COMMANDS.filesync.scanLocal,
1239
1461
  args: (p) => ({ request: p })
1462
+ },
1463
+ // ==========================================================================
1464
+ // Sync Queue
1465
+ // ==========================================================================
1466
+ [HAEXTENSION_METHODS.filesync.addToQueue]: {
1467
+ command: TAURI_COMMANDS.filesync.addToQueue,
1468
+ args: (p) => ({ request: p })
1469
+ },
1470
+ [HAEXTENSION_METHODS.filesync.getQueue]: {
1471
+ command: TAURI_COMMANDS.filesync.getQueue,
1472
+ args: (p) => ({ request: p ?? {} })
1473
+ },
1474
+ [HAEXTENSION_METHODS.filesync.getQueueSummary]: {
1475
+ command: TAURI_COMMANDS.filesync.getQueueSummary,
1476
+ args: () => ({})
1477
+ },
1478
+ [HAEXTENSION_METHODS.filesync.startQueueEntry]: {
1479
+ command: TAURI_COMMANDS.filesync.startQueueEntry,
1480
+ args: (p) => ({ entryId: p.entryId })
1481
+ },
1482
+ [HAEXTENSION_METHODS.filesync.completeQueueEntry]: {
1483
+ command: TAURI_COMMANDS.filesync.completeQueueEntry,
1484
+ args: (p) => ({ entryId: p.entryId })
1485
+ },
1486
+ [HAEXTENSION_METHODS.filesync.failQueueEntry]: {
1487
+ command: TAURI_COMMANDS.filesync.failQueueEntry,
1488
+ args: (p) => ({ entryId: p.entryId, errorMessage: p.errorMessage })
1489
+ },
1490
+ [HAEXTENSION_METHODS.filesync.retryFailedQueue]: {
1491
+ command: TAURI_COMMANDS.filesync.retryFailedQueue,
1492
+ args: () => ({})
1493
+ },
1494
+ [HAEXTENSION_METHODS.filesync.removeQueueEntry]: {
1495
+ command: TAURI_COMMANDS.filesync.removeQueueEntry,
1496
+ args: (p) => ({ entryId: p.entryId })
1497
+ },
1498
+ [HAEXTENSION_METHODS.filesync.clearQueue]: {
1499
+ command: TAURI_COMMANDS.filesync.clearQueue,
1500
+ args: (p) => ({ ruleId: p.ruleId })
1501
+ },
1502
+ [HAEXTENSION_METHODS.filesync.recoverQueue]: {
1503
+ command: TAURI_COMMANDS.filesync.recoverQueue,
1504
+ args: () => ({})
1240
1505
  }
1241
1506
  };
1242
1507
 
@@ -1548,6 +1813,7 @@ var HaexVaultSdk = class {
1548
1813
  this.filesystem = new FilesystemAPI(this);
1549
1814
  this.web = new WebAPI(this);
1550
1815
  this.permissions = new PermissionsAPI(this);
1816
+ this.remoteStorage = new RemoteStorageAPI(this);
1551
1817
  installConsoleForwarding(this.config.debug);
1552
1818
  this.readyPromise = new Promise((resolve) => {
1553
1819
  this.resolveReady = resolve;