@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.
package/dist/react.js CHANGED
@@ -400,39 +400,50 @@ var HAEXTENSION_METHODS = {
400
400
  filesystem: {
401
401
  saveFile: "haextension:filesystem:save-file",
402
402
  openFile: "haextension:filesystem:open-file",
403
- showImage: "haextension:filesystem:show-image",
404
- sync: {
405
- // Spaces
406
- listSpaces: "haextension:filesystem:sync:list-spaces",
407
- createSpace: "haextension:filesystem:sync:create-space",
408
- deleteSpace: "haextension:filesystem:sync:delete-space",
409
- // Files
410
- listFiles: "haextension:filesystem:sync:list-files",
411
- getFile: "haextension:filesystem:sync:get-file",
412
- uploadFile: "haextension:filesystem:sync:upload-file",
413
- downloadFile: "haextension:filesystem:sync:download-file",
414
- deleteFile: "haextension:filesystem:sync:delete-file",
415
- // Backends
416
- listBackends: "haextension:filesystem:sync:list-backends",
417
- addBackend: "haextension:filesystem:sync:add-backend",
418
- removeBackend: "haextension:filesystem:sync:remove-backend",
419
- testBackend: "haextension:filesystem:sync:test-backend",
420
- // Sync Rules
421
- listSyncRules: "haextension:filesystem:sync:list-sync-rules",
422
- addSyncRule: "haextension:filesystem:sync:add-sync-rule",
423
- updateSyncRule: "haextension:filesystem:sync:update-sync-rule",
424
- removeSyncRule: "haextension:filesystem:sync:remove-sync-rule",
425
- // Sync Operations
426
- getSyncStatus: "haextension:filesystem:sync:get-sync-status",
427
- triggerSync: "haextension:filesystem:sync:trigger-sync",
428
- pauseSync: "haextension:filesystem:sync:pause-sync",
429
- resumeSync: "haextension:filesystem:sync:resume-sync",
430
- // Conflict Resolution
431
- resolveConflict: "haextension:filesystem:sync:resolve-conflict",
432
- // UI Helpers
433
- selectFolder: "haextension:filesystem:sync:select-folder",
434
- scanLocal: "haextension:filesystem:sync:scan-local"
435
- }
403
+ showImage: "haextension:filesystem:show-image"
404
+ },
405
+ filesync: {
406
+ // Spaces
407
+ listSpaces: "haextension:filesync:list-spaces",
408
+ createSpace: "haextension:filesync:create-space",
409
+ deleteSpace: "haextension:filesync:delete-space",
410
+ // Files
411
+ listFiles: "haextension:filesync:list-files",
412
+ getFile: "haextension:filesync:get-file",
413
+ uploadFile: "haextension:filesync:upload-file",
414
+ downloadFile: "haextension:filesync:download-file",
415
+ deleteFile: "haextension:filesync:delete-file",
416
+ // Backends
417
+ listBackends: "haextension:filesync:list-backends",
418
+ addBackend: "haextension:filesync:add-backend",
419
+ removeBackend: "haextension:filesync:remove-backend",
420
+ testBackend: "haextension:filesync:test-backend",
421
+ // Sync Rules
422
+ listSyncRules: "haextension:filesync:list-sync-rules",
423
+ addSyncRule: "haextension:filesync:add-sync-rule",
424
+ updateSyncRule: "haextension:filesync:update-sync-rule",
425
+ removeSyncRule: "haextension:filesync:remove-sync-rule",
426
+ // Sync Operations
427
+ getSyncStatus: "haextension:filesync:get-sync-status",
428
+ triggerSync: "haextension:filesync:trigger-sync",
429
+ pauseSync: "haextension:filesync:pause-sync",
430
+ resumeSync: "haextension:filesync:resume-sync",
431
+ // Conflict Resolution
432
+ resolveConflict: "haextension:filesync:resolve-conflict",
433
+ // UI Helpers
434
+ selectFolder: "haextension:filesync:select-folder",
435
+ scanLocal: "haextension:filesync:scan-local",
436
+ // Sync Queue (persistent upload/download queue)
437
+ addToQueue: "haextension:filesync:add-to-queue",
438
+ getQueue: "haextension:filesync:get-queue",
439
+ getQueueSummary: "haextension:filesync:get-queue-summary",
440
+ startQueueEntry: "haextension:filesync:start-queue-entry",
441
+ completeQueueEntry: "haextension:filesync:complete-queue-entry",
442
+ failQueueEntry: "haextension:filesync:fail-queue-entry",
443
+ retryFailedQueue: "haextension:filesync:retry-failed-queue",
444
+ removeQueueEntry: "haextension:filesync:remove-queue-entry",
445
+ clearQueue: "haextension:filesync:clear-queue",
446
+ recoverQueue: "haextension:filesync:recover-queue"
436
447
  },
437
448
  storage: {
438
449
  getItem: "haextension:storage:get-item",
@@ -441,6 +452,19 @@ var HAEXTENSION_METHODS = {
441
452
  clear: "haextension:storage:clear",
442
453
  keys: "haextension:storage:keys"
443
454
  },
455
+ // Remote Storage API (S3, WebDAV, FTP, etc.)
456
+ remoteStorage: {
457
+ // Backend Management
458
+ listBackends: "haextension:remote-storage:list-backends",
459
+ addBackend: "haextension:remote-storage:add-backend",
460
+ removeBackend: "haextension:remote-storage:remove-backend",
461
+ testBackend: "haextension:remote-storage:test-backend",
462
+ // Storage Operations
463
+ upload: "haextension:remote-storage:upload",
464
+ download: "haextension:remote-storage:download",
465
+ delete: "haextension:remote-storage:delete",
466
+ list: "haextension:remote-storage:list"
467
+ },
444
468
  web: {
445
469
  fetch: "haextension:web:fetch"
446
470
  },
@@ -578,7 +602,7 @@ var FileSyncAPI = class {
578
602
  */
579
603
  async listSpacesAsync() {
580
604
  return this.client.request(
581
- HAEXTENSION_METHODS.filesystem.sync.listSpaces
605
+ HAEXTENSION_METHODS.filesync.listSpaces
582
606
  );
583
607
  }
584
608
  /**
@@ -586,7 +610,7 @@ var FileSyncAPI = class {
586
610
  */
587
611
  async createSpaceAsync(options) {
588
612
  return this.client.request(
589
- HAEXTENSION_METHODS.filesystem.sync.createSpace,
613
+ HAEXTENSION_METHODS.filesync.createSpace,
590
614
  options
591
615
  );
592
616
  }
@@ -594,7 +618,7 @@ var FileSyncAPI = class {
594
618
  * Delete a file space
595
619
  */
596
620
  async deleteSpaceAsync(spaceId) {
597
- await this.client.request(HAEXTENSION_METHODS.filesystem.sync.deleteSpace, {
621
+ await this.client.request(HAEXTENSION_METHODS.filesync.deleteSpace, {
598
622
  spaceId
599
623
  });
600
624
  }
@@ -606,7 +630,7 @@ var FileSyncAPI = class {
606
630
  */
607
631
  async listFilesAsync(options) {
608
632
  return this.client.request(
609
- HAEXTENSION_METHODS.filesystem.sync.listFiles,
633
+ HAEXTENSION_METHODS.filesync.listFiles,
610
634
  options
611
635
  );
612
636
  }
@@ -616,7 +640,7 @@ var FileSyncAPI = class {
616
640
  */
617
641
  async scanLocalAsync(options) {
618
642
  return this.client.request(
619
- HAEXTENSION_METHODS.filesystem.sync.scanLocal,
643
+ HAEXTENSION_METHODS.filesync.scanLocal,
620
644
  options
621
645
  );
622
646
  }
@@ -625,7 +649,7 @@ var FileSyncAPI = class {
625
649
  */
626
650
  async getFileAsync(fileId) {
627
651
  return this.client.request(
628
- HAEXTENSION_METHODS.filesystem.sync.getFile,
652
+ HAEXTENSION_METHODS.filesync.getFile,
629
653
  { fileId }
630
654
  );
631
655
  }
@@ -634,7 +658,7 @@ var FileSyncAPI = class {
634
658
  */
635
659
  async uploadFileAsync(options) {
636
660
  return this.client.request(
637
- HAEXTENSION_METHODS.filesystem.sync.uploadFile,
661
+ HAEXTENSION_METHODS.filesync.uploadFile,
638
662
  options
639
663
  );
640
664
  }
@@ -643,7 +667,7 @@ var FileSyncAPI = class {
643
667
  */
644
668
  async downloadFileAsync(options) {
645
669
  await this.client.request(
646
- HAEXTENSION_METHODS.filesystem.sync.downloadFile,
670
+ HAEXTENSION_METHODS.filesync.downloadFile,
647
671
  options
648
672
  );
649
673
  }
@@ -651,7 +675,7 @@ var FileSyncAPI = class {
651
675
  * Delete a file from the sync system
652
676
  */
653
677
  async deleteFileAsync(fileId) {
654
- await this.client.request(HAEXTENSION_METHODS.filesystem.sync.deleteFile, {
678
+ await this.client.request(HAEXTENSION_METHODS.filesync.deleteFile, {
655
679
  fileId
656
680
  });
657
681
  }
@@ -663,7 +687,7 @@ var FileSyncAPI = class {
663
687
  */
664
688
  async listBackendsAsync() {
665
689
  return this.client.request(
666
- HAEXTENSION_METHODS.filesystem.sync.listBackends
690
+ HAEXTENSION_METHODS.filesync.listBackends
667
691
  );
668
692
  }
669
693
  /**
@@ -671,7 +695,7 @@ var FileSyncAPI = class {
671
695
  */
672
696
  async addBackendAsync(options) {
673
697
  return this.client.request(
674
- HAEXTENSION_METHODS.filesystem.sync.addBackend,
698
+ HAEXTENSION_METHODS.filesync.addBackend,
675
699
  options
676
700
  );
677
701
  }
@@ -679,7 +703,7 @@ var FileSyncAPI = class {
679
703
  * Remove a storage backend
680
704
  */
681
705
  async removeBackendAsync(backendId) {
682
- await this.client.request(HAEXTENSION_METHODS.filesystem.sync.removeBackend, {
706
+ await this.client.request(HAEXTENSION_METHODS.filesync.removeBackend, {
683
707
  backendId
684
708
  });
685
709
  }
@@ -688,7 +712,7 @@ var FileSyncAPI = class {
688
712
  */
689
713
  async testBackendAsync(backendId) {
690
714
  return this.client.request(
691
- HAEXTENSION_METHODS.filesystem.sync.testBackend,
715
+ HAEXTENSION_METHODS.filesync.testBackend,
692
716
  { backendId }
693
717
  );
694
718
  }
@@ -700,7 +724,7 @@ var FileSyncAPI = class {
700
724
  */
701
725
  async listSyncRulesAsync() {
702
726
  return this.client.request(
703
- HAEXTENSION_METHODS.filesystem.sync.listSyncRules
727
+ HAEXTENSION_METHODS.filesync.listSyncRules
704
728
  );
705
729
  }
706
730
  /**
@@ -708,7 +732,7 @@ var FileSyncAPI = class {
708
732
  */
709
733
  async addSyncRuleAsync(options) {
710
734
  return this.client.request(
711
- HAEXTENSION_METHODS.filesystem.sync.addSyncRule,
735
+ HAEXTENSION_METHODS.filesync.addSyncRule,
712
736
  options
713
737
  );
714
738
  }
@@ -717,7 +741,7 @@ var FileSyncAPI = class {
717
741
  */
718
742
  async updateSyncRuleAsync(options) {
719
743
  return this.client.request(
720
- HAEXTENSION_METHODS.filesystem.sync.updateSyncRule,
744
+ HAEXTENSION_METHODS.filesync.updateSyncRule,
721
745
  options
722
746
  );
723
747
  }
@@ -725,7 +749,7 @@ var FileSyncAPI = class {
725
749
  * Remove a sync rule
726
750
  */
727
751
  async removeSyncRuleAsync(ruleId) {
728
- await this.client.request(HAEXTENSION_METHODS.filesystem.sync.removeSyncRule, {
752
+ await this.client.request(HAEXTENSION_METHODS.filesync.removeSyncRule, {
729
753
  ruleId
730
754
  });
731
755
  }
@@ -737,26 +761,26 @@ var FileSyncAPI = class {
737
761
  */
738
762
  async getSyncStatusAsync() {
739
763
  return this.client.request(
740
- HAEXTENSION_METHODS.filesystem.sync.getSyncStatus
764
+ HAEXTENSION_METHODS.filesync.getSyncStatus
741
765
  );
742
766
  }
743
767
  /**
744
768
  * Trigger a manual sync
745
769
  */
746
770
  async triggerSyncAsync() {
747
- await this.client.request(HAEXTENSION_METHODS.filesystem.sync.triggerSync);
771
+ await this.client.request(HAEXTENSION_METHODS.filesync.triggerSync);
748
772
  }
749
773
  /**
750
774
  * Pause syncing
751
775
  */
752
776
  async pauseSyncAsync() {
753
- await this.client.request(HAEXTENSION_METHODS.filesystem.sync.pauseSync);
777
+ await this.client.request(HAEXTENSION_METHODS.filesync.pauseSync);
754
778
  }
755
779
  /**
756
780
  * Resume syncing
757
781
  */
758
782
  async resumeSyncAsync() {
759
- await this.client.request(HAEXTENSION_METHODS.filesystem.sync.resumeSync);
783
+ await this.client.request(HAEXTENSION_METHODS.filesync.resumeSync);
760
784
  }
761
785
  // --------------------------------------------------------------------------
762
786
  // Conflict Resolution
@@ -765,7 +789,7 @@ var FileSyncAPI = class {
765
789
  * Resolve a file conflict
766
790
  */
767
791
  async resolveConflictAsync(fileId, resolution) {
768
- await this.client.request(HAEXTENSION_METHODS.filesystem.sync.resolveConflict, {
792
+ await this.client.request(HAEXTENSION_METHODS.filesync.resolveConflict, {
769
793
  fileId,
770
794
  resolution
771
795
  });
@@ -778,9 +802,91 @@ var FileSyncAPI = class {
778
802
  */
779
803
  async selectFolderAsync() {
780
804
  return this.client.request(
781
- HAEXTENSION_METHODS.filesystem.sync.selectFolder
805
+ HAEXTENSION_METHODS.filesync.selectFolder
782
806
  );
783
807
  }
808
+ // --------------------------------------------------------------------------
809
+ // Sync Queue
810
+ // --------------------------------------------------------------------------
811
+ /**
812
+ * Add files to the sync queue
813
+ */
814
+ async addToQueueAsync(options) {
815
+ return this.client.request(
816
+ HAEXTENSION_METHODS.filesync.addToQueue,
817
+ options
818
+ );
819
+ }
820
+ /**
821
+ * Get queue entries for the current device
822
+ */
823
+ async getQueueAsync(options) {
824
+ return this.client.request(
825
+ HAEXTENSION_METHODS.filesync.getQueue,
826
+ options
827
+ );
828
+ }
829
+ /**
830
+ * Get aggregated queue summary for the current device
831
+ */
832
+ async getQueueSummaryAsync() {
833
+ return this.client.request(
834
+ HAEXTENSION_METHODS.filesync.getQueueSummary
835
+ );
836
+ }
837
+ /**
838
+ * Mark a queue entry as started (in_progress)
839
+ */
840
+ async startQueueEntryAsync(entryId) {
841
+ await this.client.request(HAEXTENSION_METHODS.filesync.startQueueEntry, {
842
+ entryId
843
+ });
844
+ }
845
+ /**
846
+ * Mark a queue entry as completed
847
+ */
848
+ async completeQueueEntryAsync(entryId) {
849
+ await this.client.request(HAEXTENSION_METHODS.filesync.completeQueueEntry, {
850
+ entryId
851
+ });
852
+ }
853
+ /**
854
+ * Mark a queue entry as failed
855
+ */
856
+ async failQueueEntryAsync(entryId, errorMessage) {
857
+ await this.client.request(HAEXTENSION_METHODS.filesync.failQueueEntry, {
858
+ entryId,
859
+ errorMessage
860
+ });
861
+ }
862
+ /**
863
+ * Retry all failed queue entries (reset to pending)
864
+ */
865
+ async retryFailedQueueAsync() {
866
+ await this.client.request(HAEXTENSION_METHODS.filesync.retryFailedQueue);
867
+ }
868
+ /**
869
+ * Remove a queue entry
870
+ */
871
+ async removeQueueEntryAsync(entryId) {
872
+ await this.client.request(HAEXTENSION_METHODS.filesync.removeQueueEntry, {
873
+ entryId
874
+ });
875
+ }
876
+ /**
877
+ * Clear all queue entries for a sync rule
878
+ */
879
+ async clearQueueAsync(ruleId) {
880
+ await this.client.request(HAEXTENSION_METHODS.filesync.clearQueue, {
881
+ ruleId
882
+ });
883
+ }
884
+ /**
885
+ * Reset in_progress entries to pending (for recovery after crash)
886
+ */
887
+ async recoverQueueAsync() {
888
+ await this.client.request(HAEXTENSION_METHODS.filesync.recoverQueue);
889
+ }
784
890
  };
785
891
 
786
892
  // src/api/filesystem.ts
@@ -1011,6 +1117,111 @@ var PermissionsAPI = class {
1011
1117
  }
1012
1118
  };
1013
1119
 
1120
+ // src/api/remoteStorage.ts
1121
+ var RemoteStorageAPI = class {
1122
+ constructor(client) {
1123
+ this.client = client;
1124
+ this.backends = new BackendManagement(client);
1125
+ }
1126
+ /**
1127
+ * Upload data to a storage backend
1128
+ * @param backendId - Backend ID to upload to
1129
+ * @param key - Object key (path in the bucket)
1130
+ * @param data - Data to upload
1131
+ */
1132
+ async upload(backendId, key, data) {
1133
+ const base64 = btoa(String.fromCharCode(...data));
1134
+ await this.client.request(HAEXTENSION_METHODS.remoteStorage.upload, {
1135
+ backendId,
1136
+ key,
1137
+ data: base64
1138
+ });
1139
+ }
1140
+ /**
1141
+ * Download data from a storage backend
1142
+ * @param backendId - Backend ID to download from
1143
+ * @param key - Object key (path in the bucket)
1144
+ * @returns Downloaded data as Uint8Array
1145
+ */
1146
+ async download(backendId, key) {
1147
+ const base64 = await this.client.request(
1148
+ HAEXTENSION_METHODS.remoteStorage.download,
1149
+ { backendId, key }
1150
+ );
1151
+ const binary = atob(base64);
1152
+ const bytes = new Uint8Array(binary.length);
1153
+ for (let i = 0; i < binary.length; i++) {
1154
+ bytes[i] = binary.charCodeAt(i);
1155
+ }
1156
+ return bytes;
1157
+ }
1158
+ /**
1159
+ * Delete an object from a storage backend
1160
+ * @param backendId - Backend ID
1161
+ * @param key - Object key to delete
1162
+ */
1163
+ async delete(backendId, key) {
1164
+ await this.client.request(HAEXTENSION_METHODS.remoteStorage.delete, {
1165
+ backendId,
1166
+ key
1167
+ });
1168
+ }
1169
+ /**
1170
+ * List objects in a storage backend
1171
+ * @param backendId - Backend ID
1172
+ * @param prefix - Optional prefix to filter objects
1173
+ * @returns List of objects
1174
+ */
1175
+ async list(backendId, prefix) {
1176
+ return this.client.request(
1177
+ HAEXTENSION_METHODS.remoteStorage.list,
1178
+ { backendId, prefix }
1179
+ );
1180
+ }
1181
+ };
1182
+ var BackendManagement = class {
1183
+ constructor(client) {
1184
+ this.client = client;
1185
+ }
1186
+ /**
1187
+ * List all available storage backends
1188
+ */
1189
+ async list() {
1190
+ return this.client.request(
1191
+ HAEXTENSION_METHODS.remoteStorage.listBackends
1192
+ );
1193
+ }
1194
+ /**
1195
+ * Add a new storage backend
1196
+ * @param request - Backend configuration
1197
+ * @returns Created backend info
1198
+ */
1199
+ async add(request) {
1200
+ return this.client.request(
1201
+ HAEXTENSION_METHODS.remoteStorage.addBackend,
1202
+ request
1203
+ );
1204
+ }
1205
+ /**
1206
+ * Remove a storage backend
1207
+ * @param backendId - Backend ID to remove
1208
+ */
1209
+ async remove(backendId) {
1210
+ await this.client.request(HAEXTENSION_METHODS.remoteStorage.removeBackend, {
1211
+ backendId
1212
+ });
1213
+ }
1214
+ /**
1215
+ * Test connection to a storage backend
1216
+ * @param backendId - Backend ID to test
1217
+ */
1218
+ async test(backendId) {
1219
+ await this.client.request(HAEXTENSION_METHODS.remoteStorage.testBackend, {
1220
+ backendId
1221
+ });
1222
+ }
1223
+ };
1224
+
1014
1225
  // src/client/tableName.ts
1015
1226
  function validatePublicKey(publicKey) {
1016
1227
  if (!publicKey || typeof publicKey !== "string" || publicKey.trim() === "") {
@@ -1266,7 +1477,18 @@ var TAURI_COMMANDS = {
1266
1477
  resolveConflict: "webview_filesync_resolve_conflict",
1267
1478
  // UI Helpers (selectFolder doesn't need extension info)
1268
1479
  selectFolder: "filesync_select_folder",
1269
- scanLocal: "webview_filesync_scan_local"
1480
+ scanLocal: "webview_filesync_scan_local",
1481
+ // Sync Queue
1482
+ addToQueue: "webview_filesync_add_to_queue",
1483
+ getQueue: "webview_filesync_get_queue",
1484
+ getQueueSummary: "webview_filesync_get_queue_summary",
1485
+ startQueueEntry: "webview_filesync_start_queue_entry",
1486
+ completeQueueEntry: "webview_filesync_complete_queue_entry",
1487
+ failQueueEntry: "webview_filesync_fail_queue_entry",
1488
+ retryFailedQueue: "webview_filesync_retry_failed_queue",
1489
+ removeQueueEntry: "webview_filesync_remove_queue_entry",
1490
+ clearQueue: "webview_filesync_clear_queue",
1491
+ recoverQueue: "webview_filesync_recover_queue"
1270
1492
  }
1271
1493
  };
1272
1494
 
@@ -1382,115 +1604,158 @@ var filesyncHandlers = {
1382
1604
  // ==========================================================================
1383
1605
  // Spaces
1384
1606
  // ==========================================================================
1385
- [HAEXTENSION_METHODS.filesystem.sync.listSpaces]: {
1607
+ [HAEXTENSION_METHODS.filesync.listSpaces]: {
1386
1608
  command: TAURI_COMMANDS.filesync.listSpaces,
1387
1609
  args: () => ({})
1388
1610
  },
1389
- [HAEXTENSION_METHODS.filesystem.sync.createSpace]: {
1611
+ [HAEXTENSION_METHODS.filesync.createSpace]: {
1390
1612
  command: TAURI_COMMANDS.filesync.createSpace,
1391
1613
  args: (p) => ({ request: p })
1392
1614
  },
1393
- [HAEXTENSION_METHODS.filesystem.sync.deleteSpace]: {
1615
+ [HAEXTENSION_METHODS.filesync.deleteSpace]: {
1394
1616
  command: TAURI_COMMANDS.filesync.deleteSpace,
1395
1617
  args: (p) => ({ spaceId: p.spaceId })
1396
1618
  },
1397
1619
  // ==========================================================================
1398
1620
  // Files
1399
1621
  // ==========================================================================
1400
- [HAEXTENSION_METHODS.filesystem.sync.listFiles]: {
1622
+ [HAEXTENSION_METHODS.filesync.listFiles]: {
1401
1623
  command: TAURI_COMMANDS.filesync.listFiles,
1402
1624
  args: (p) => ({ request: p })
1403
1625
  },
1404
- [HAEXTENSION_METHODS.filesystem.sync.getFile]: {
1626
+ [HAEXTENSION_METHODS.filesync.getFile]: {
1405
1627
  command: TAURI_COMMANDS.filesync.getFile,
1406
1628
  args: (p) => ({ fileId: p.fileId })
1407
1629
  },
1408
- [HAEXTENSION_METHODS.filesystem.sync.uploadFile]: {
1630
+ [HAEXTENSION_METHODS.filesync.uploadFile]: {
1409
1631
  command: TAURI_COMMANDS.filesync.uploadFile,
1410
1632
  args: (p) => ({ request: p })
1411
1633
  },
1412
- [HAEXTENSION_METHODS.filesystem.sync.downloadFile]: {
1634
+ [HAEXTENSION_METHODS.filesync.downloadFile]: {
1413
1635
  command: TAURI_COMMANDS.filesync.downloadFile,
1414
1636
  args: (p) => ({ request: p })
1415
1637
  },
1416
- [HAEXTENSION_METHODS.filesystem.sync.deleteFile]: {
1638
+ [HAEXTENSION_METHODS.filesync.deleteFile]: {
1417
1639
  command: TAURI_COMMANDS.filesync.deleteFile,
1418
1640
  args: (p) => ({ fileId: p.fileId })
1419
1641
  },
1420
1642
  // ==========================================================================
1421
1643
  // Backends
1422
1644
  // ==========================================================================
1423
- [HAEXTENSION_METHODS.filesystem.sync.listBackends]: {
1645
+ [HAEXTENSION_METHODS.filesync.listBackends]: {
1424
1646
  command: TAURI_COMMANDS.filesync.listBackends,
1425
1647
  args: () => ({})
1426
1648
  },
1427
- [HAEXTENSION_METHODS.filesystem.sync.addBackend]: {
1649
+ [HAEXTENSION_METHODS.filesync.addBackend]: {
1428
1650
  command: TAURI_COMMANDS.filesync.addBackend,
1429
1651
  args: (p) => ({ request: p })
1430
1652
  },
1431
- [HAEXTENSION_METHODS.filesystem.sync.removeBackend]: {
1653
+ [HAEXTENSION_METHODS.filesync.removeBackend]: {
1432
1654
  command: TAURI_COMMANDS.filesync.removeBackend,
1433
1655
  args: (p) => ({ backendId: p.backendId })
1434
1656
  },
1435
- [HAEXTENSION_METHODS.filesystem.sync.testBackend]: {
1657
+ [HAEXTENSION_METHODS.filesync.testBackend]: {
1436
1658
  command: TAURI_COMMANDS.filesync.testBackend,
1437
1659
  args: (p) => ({ backendId: p.backendId })
1438
1660
  },
1439
1661
  // ==========================================================================
1440
1662
  // Sync Rules
1441
1663
  // ==========================================================================
1442
- [HAEXTENSION_METHODS.filesystem.sync.listSyncRules]: {
1664
+ [HAEXTENSION_METHODS.filesync.listSyncRules]: {
1443
1665
  command: TAURI_COMMANDS.filesync.listSyncRules,
1444
1666
  args: () => ({})
1445
1667
  },
1446
- [HAEXTENSION_METHODS.filesystem.sync.addSyncRule]: {
1668
+ [HAEXTENSION_METHODS.filesync.addSyncRule]: {
1447
1669
  command: TAURI_COMMANDS.filesync.addSyncRule,
1448
1670
  args: (p) => ({ request: p })
1449
1671
  },
1450
- [HAEXTENSION_METHODS.filesystem.sync.updateSyncRule]: {
1672
+ [HAEXTENSION_METHODS.filesync.updateSyncRule]: {
1451
1673
  command: TAURI_COMMANDS.filesync.updateSyncRule,
1452
1674
  args: (p) => ({ request: p })
1453
1675
  },
1454
- [HAEXTENSION_METHODS.filesystem.sync.removeSyncRule]: {
1676
+ [HAEXTENSION_METHODS.filesync.removeSyncRule]: {
1455
1677
  command: TAURI_COMMANDS.filesync.removeSyncRule,
1456
1678
  args: (p) => ({ ruleId: p.ruleId })
1457
1679
  },
1458
1680
  // ==========================================================================
1459
1681
  // Sync Operations
1460
1682
  // ==========================================================================
1461
- [HAEXTENSION_METHODS.filesystem.sync.getSyncStatus]: {
1683
+ [HAEXTENSION_METHODS.filesync.getSyncStatus]: {
1462
1684
  command: TAURI_COMMANDS.filesync.getSyncStatus,
1463
1685
  args: () => ({})
1464
1686
  },
1465
- [HAEXTENSION_METHODS.filesystem.sync.triggerSync]: {
1687
+ [HAEXTENSION_METHODS.filesync.triggerSync]: {
1466
1688
  command: TAURI_COMMANDS.filesync.triggerSync,
1467
1689
  args: () => ({})
1468
1690
  },
1469
- [HAEXTENSION_METHODS.filesystem.sync.pauseSync]: {
1691
+ [HAEXTENSION_METHODS.filesync.pauseSync]: {
1470
1692
  command: TAURI_COMMANDS.filesync.pauseSync,
1471
1693
  args: () => ({})
1472
1694
  },
1473
- [HAEXTENSION_METHODS.filesystem.sync.resumeSync]: {
1695
+ [HAEXTENSION_METHODS.filesync.resumeSync]: {
1474
1696
  command: TAURI_COMMANDS.filesync.resumeSync,
1475
1697
  args: () => ({})
1476
1698
  },
1477
1699
  // ==========================================================================
1478
1700
  // Conflict Resolution
1479
1701
  // ==========================================================================
1480
- [HAEXTENSION_METHODS.filesystem.sync.resolveConflict]: {
1702
+ [HAEXTENSION_METHODS.filesync.resolveConflict]: {
1481
1703
  command: TAURI_COMMANDS.filesync.resolveConflict,
1482
1704
  args: (p) => ({ request: p })
1483
1705
  },
1484
1706
  // ==========================================================================
1485
1707
  // UI Helpers
1486
1708
  // ==========================================================================
1487
- [HAEXTENSION_METHODS.filesystem.sync.selectFolder]: {
1709
+ [HAEXTENSION_METHODS.filesync.selectFolder]: {
1488
1710
  command: TAURI_COMMANDS.filesync.selectFolder,
1489
1711
  args: () => ({})
1490
1712
  },
1491
- [HAEXTENSION_METHODS.filesystem.sync.scanLocal]: {
1713
+ [HAEXTENSION_METHODS.filesync.scanLocal]: {
1492
1714
  command: TAURI_COMMANDS.filesync.scanLocal,
1493
1715
  args: (p) => ({ request: p })
1716
+ },
1717
+ // ==========================================================================
1718
+ // Sync Queue
1719
+ // ==========================================================================
1720
+ [HAEXTENSION_METHODS.filesync.addToQueue]: {
1721
+ command: TAURI_COMMANDS.filesync.addToQueue,
1722
+ args: (p) => ({ request: p })
1723
+ },
1724
+ [HAEXTENSION_METHODS.filesync.getQueue]: {
1725
+ command: TAURI_COMMANDS.filesync.getQueue,
1726
+ args: (p) => ({ request: p ?? {} })
1727
+ },
1728
+ [HAEXTENSION_METHODS.filesync.getQueueSummary]: {
1729
+ command: TAURI_COMMANDS.filesync.getQueueSummary,
1730
+ args: () => ({})
1731
+ },
1732
+ [HAEXTENSION_METHODS.filesync.startQueueEntry]: {
1733
+ command: TAURI_COMMANDS.filesync.startQueueEntry,
1734
+ args: (p) => ({ entryId: p.entryId })
1735
+ },
1736
+ [HAEXTENSION_METHODS.filesync.completeQueueEntry]: {
1737
+ command: TAURI_COMMANDS.filesync.completeQueueEntry,
1738
+ args: (p) => ({ entryId: p.entryId })
1739
+ },
1740
+ [HAEXTENSION_METHODS.filesync.failQueueEntry]: {
1741
+ command: TAURI_COMMANDS.filesync.failQueueEntry,
1742
+ args: (p) => ({ entryId: p.entryId, errorMessage: p.errorMessage })
1743
+ },
1744
+ [HAEXTENSION_METHODS.filesync.retryFailedQueue]: {
1745
+ command: TAURI_COMMANDS.filesync.retryFailedQueue,
1746
+ args: () => ({})
1747
+ },
1748
+ [HAEXTENSION_METHODS.filesync.removeQueueEntry]: {
1749
+ command: TAURI_COMMANDS.filesync.removeQueueEntry,
1750
+ args: (p) => ({ entryId: p.entryId })
1751
+ },
1752
+ [HAEXTENSION_METHODS.filesync.clearQueue]: {
1753
+ command: TAURI_COMMANDS.filesync.clearQueue,
1754
+ args: (p) => ({ ruleId: p.ruleId })
1755
+ },
1756
+ [HAEXTENSION_METHODS.filesync.recoverQueue]: {
1757
+ command: TAURI_COMMANDS.filesync.recoverQueue,
1758
+ args: () => ({})
1494
1759
  }
1495
1760
  };
1496
1761
 
@@ -1802,6 +2067,7 @@ var HaexVaultSdk = class {
1802
2067
  this.filesystem = new FilesystemAPI(this);
1803
2068
  this.web = new WebAPI(this);
1804
2069
  this.permissions = new PermissionsAPI(this);
2070
+ this.remoteStorage = new RemoteStorageAPI(this);
1805
2071
  installConsoleForwarding(this.config.debug);
1806
2072
  this.readyPromise = new Promise((resolve) => {
1807
2073
  this.resolveReady = resolve;