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