@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/index.mjs CHANGED
@@ -485,39 +485,50 @@ var HAEXTENSION_METHODS = {
485
485
  filesystem: {
486
486
  saveFile: "haextension:filesystem:save-file",
487
487
  openFile: "haextension:filesystem:open-file",
488
- showImage: "haextension:filesystem:show-image",
489
- sync: {
490
- // Spaces
491
- listSpaces: "haextension:filesystem:sync:list-spaces",
492
- createSpace: "haextension:filesystem:sync:create-space",
493
- deleteSpace: "haextension:filesystem:sync:delete-space",
494
- // Files
495
- listFiles: "haextension:filesystem:sync:list-files",
496
- getFile: "haextension:filesystem:sync:get-file",
497
- uploadFile: "haextension:filesystem:sync:upload-file",
498
- downloadFile: "haextension:filesystem:sync:download-file",
499
- deleteFile: "haextension:filesystem:sync:delete-file",
500
- // Backends
501
- listBackends: "haextension:filesystem:sync:list-backends",
502
- addBackend: "haextension:filesystem:sync:add-backend",
503
- removeBackend: "haextension:filesystem:sync:remove-backend",
504
- testBackend: "haextension:filesystem:sync:test-backend",
505
- // Sync Rules
506
- listSyncRules: "haextension:filesystem:sync:list-sync-rules",
507
- addSyncRule: "haextension:filesystem:sync:add-sync-rule",
508
- updateSyncRule: "haextension:filesystem:sync:update-sync-rule",
509
- removeSyncRule: "haextension:filesystem:sync:remove-sync-rule",
510
- // Sync Operations
511
- getSyncStatus: "haextension:filesystem:sync:get-sync-status",
512
- triggerSync: "haextension:filesystem:sync:trigger-sync",
513
- pauseSync: "haextension:filesystem:sync:pause-sync",
514
- resumeSync: "haextension:filesystem:sync:resume-sync",
515
- // Conflict Resolution
516
- resolveConflict: "haextension:filesystem:sync:resolve-conflict",
517
- // UI Helpers
518
- selectFolder: "haextension:filesystem:sync:select-folder",
519
- scanLocal: "haextension:filesystem:sync:scan-local"
520
- }
488
+ showImage: "haextension:filesystem:show-image"
489
+ },
490
+ filesync: {
491
+ // Spaces
492
+ listSpaces: "haextension:filesync:list-spaces",
493
+ createSpace: "haextension:filesync:create-space",
494
+ deleteSpace: "haextension:filesync:delete-space",
495
+ // Files
496
+ listFiles: "haextension:filesync:list-files",
497
+ getFile: "haextension:filesync:get-file",
498
+ uploadFile: "haextension:filesync:upload-file",
499
+ downloadFile: "haextension:filesync:download-file",
500
+ deleteFile: "haextension:filesync:delete-file",
501
+ // Backends
502
+ listBackends: "haextension:filesync:list-backends",
503
+ addBackend: "haextension:filesync:add-backend",
504
+ removeBackend: "haextension:filesync:remove-backend",
505
+ testBackend: "haextension:filesync:test-backend",
506
+ // Sync Rules
507
+ listSyncRules: "haextension:filesync:list-sync-rules",
508
+ addSyncRule: "haextension:filesync:add-sync-rule",
509
+ updateSyncRule: "haextension:filesync:update-sync-rule",
510
+ removeSyncRule: "haextension:filesync:remove-sync-rule",
511
+ // Sync Operations
512
+ getSyncStatus: "haextension:filesync:get-sync-status",
513
+ triggerSync: "haextension:filesync:trigger-sync",
514
+ pauseSync: "haextension:filesync:pause-sync",
515
+ resumeSync: "haextension:filesync:resume-sync",
516
+ // Conflict Resolution
517
+ resolveConflict: "haextension:filesync:resolve-conflict",
518
+ // UI Helpers
519
+ selectFolder: "haextension:filesync:select-folder",
520
+ scanLocal: "haextension:filesync:scan-local",
521
+ // Sync Queue (persistent upload/download queue)
522
+ addToQueue: "haextension:filesync:add-to-queue",
523
+ getQueue: "haextension:filesync:get-queue",
524
+ getQueueSummary: "haextension:filesync:get-queue-summary",
525
+ startQueueEntry: "haextension:filesync:start-queue-entry",
526
+ completeQueueEntry: "haextension:filesync:complete-queue-entry",
527
+ failQueueEntry: "haextension:filesync:fail-queue-entry",
528
+ retryFailedQueue: "haextension:filesync:retry-failed-queue",
529
+ removeQueueEntry: "haextension:filesync:remove-queue-entry",
530
+ clearQueue: "haextension:filesync:clear-queue",
531
+ recoverQueue: "haextension:filesync:recover-queue"
521
532
  },
522
533
  storage: {
523
534
  getItem: "haextension:storage:get-item",
@@ -526,6 +537,19 @@ var HAEXTENSION_METHODS = {
526
537
  clear: "haextension:storage:clear",
527
538
  keys: "haextension:storage:keys"
528
539
  },
540
+ // Remote Storage API (S3, WebDAV, FTP, etc.)
541
+ remoteStorage: {
542
+ // Backend Management
543
+ listBackends: "haextension:remote-storage:list-backends",
544
+ addBackend: "haextension:remote-storage:add-backend",
545
+ removeBackend: "haextension:remote-storage:remove-backend",
546
+ testBackend: "haextension:remote-storage:test-backend",
547
+ // Storage Operations
548
+ upload: "haextension:remote-storage:upload",
549
+ download: "haextension:remote-storage:download",
550
+ delete: "haextension:remote-storage:delete",
551
+ list: "haextension:remote-storage:list"
552
+ },
529
553
  web: {
530
554
  fetch: "haextension:web:fetch"
531
555
  },
@@ -683,6 +707,16 @@ var CONFLICT_STRATEGY = {
683
707
  /** Keep both versions (create conflict copy) */
684
708
  KEEP_BOTH: "keepBoth"
685
709
  };
710
+ var QUEUE_OPERATION = {
711
+ UPLOAD: "upload",
712
+ DOWNLOAD: "download"
713
+ };
714
+ var QUEUE_STATUS = {
715
+ PENDING: "pending",
716
+ IN_PROGRESS: "inProgress",
717
+ COMPLETED: "completed",
718
+ FAILED: "failed"
719
+ };
686
720
  var FileSyncAPI = class {
687
721
  constructor(client) {
688
722
  this.client = client;
@@ -695,7 +729,7 @@ var FileSyncAPI = class {
695
729
  */
696
730
  async listSpacesAsync() {
697
731
  return this.client.request(
698
- HAEXTENSION_METHODS.filesystem.sync.listSpaces
732
+ HAEXTENSION_METHODS.filesync.listSpaces
699
733
  );
700
734
  }
701
735
  /**
@@ -703,7 +737,7 @@ var FileSyncAPI = class {
703
737
  */
704
738
  async createSpaceAsync(options) {
705
739
  return this.client.request(
706
- HAEXTENSION_METHODS.filesystem.sync.createSpace,
740
+ HAEXTENSION_METHODS.filesync.createSpace,
707
741
  options
708
742
  );
709
743
  }
@@ -711,7 +745,7 @@ var FileSyncAPI = class {
711
745
  * Delete a file space
712
746
  */
713
747
  async deleteSpaceAsync(spaceId) {
714
- await this.client.request(HAEXTENSION_METHODS.filesystem.sync.deleteSpace, {
748
+ await this.client.request(HAEXTENSION_METHODS.filesync.deleteSpace, {
715
749
  spaceId
716
750
  });
717
751
  }
@@ -723,7 +757,7 @@ var FileSyncAPI = class {
723
757
  */
724
758
  async listFilesAsync(options) {
725
759
  return this.client.request(
726
- HAEXTENSION_METHODS.filesystem.sync.listFiles,
760
+ HAEXTENSION_METHODS.filesync.listFiles,
727
761
  options
728
762
  );
729
763
  }
@@ -733,7 +767,7 @@ var FileSyncAPI = class {
733
767
  */
734
768
  async scanLocalAsync(options) {
735
769
  return this.client.request(
736
- HAEXTENSION_METHODS.filesystem.sync.scanLocal,
770
+ HAEXTENSION_METHODS.filesync.scanLocal,
737
771
  options
738
772
  );
739
773
  }
@@ -742,7 +776,7 @@ var FileSyncAPI = class {
742
776
  */
743
777
  async getFileAsync(fileId) {
744
778
  return this.client.request(
745
- HAEXTENSION_METHODS.filesystem.sync.getFile,
779
+ HAEXTENSION_METHODS.filesync.getFile,
746
780
  { fileId }
747
781
  );
748
782
  }
@@ -751,7 +785,7 @@ var FileSyncAPI = class {
751
785
  */
752
786
  async uploadFileAsync(options) {
753
787
  return this.client.request(
754
- HAEXTENSION_METHODS.filesystem.sync.uploadFile,
788
+ HAEXTENSION_METHODS.filesync.uploadFile,
755
789
  options
756
790
  );
757
791
  }
@@ -760,7 +794,7 @@ var FileSyncAPI = class {
760
794
  */
761
795
  async downloadFileAsync(options) {
762
796
  await this.client.request(
763
- HAEXTENSION_METHODS.filesystem.sync.downloadFile,
797
+ HAEXTENSION_METHODS.filesync.downloadFile,
764
798
  options
765
799
  );
766
800
  }
@@ -768,7 +802,7 @@ var FileSyncAPI = class {
768
802
  * Delete a file from the sync system
769
803
  */
770
804
  async deleteFileAsync(fileId) {
771
- await this.client.request(HAEXTENSION_METHODS.filesystem.sync.deleteFile, {
805
+ await this.client.request(HAEXTENSION_METHODS.filesync.deleteFile, {
772
806
  fileId
773
807
  });
774
808
  }
@@ -780,7 +814,7 @@ var FileSyncAPI = class {
780
814
  */
781
815
  async listBackendsAsync() {
782
816
  return this.client.request(
783
- HAEXTENSION_METHODS.filesystem.sync.listBackends
817
+ HAEXTENSION_METHODS.filesync.listBackends
784
818
  );
785
819
  }
786
820
  /**
@@ -788,7 +822,7 @@ var FileSyncAPI = class {
788
822
  */
789
823
  async addBackendAsync(options) {
790
824
  return this.client.request(
791
- HAEXTENSION_METHODS.filesystem.sync.addBackend,
825
+ HAEXTENSION_METHODS.filesync.addBackend,
792
826
  options
793
827
  );
794
828
  }
@@ -796,7 +830,7 @@ var FileSyncAPI = class {
796
830
  * Remove a storage backend
797
831
  */
798
832
  async removeBackendAsync(backendId) {
799
- await this.client.request(HAEXTENSION_METHODS.filesystem.sync.removeBackend, {
833
+ await this.client.request(HAEXTENSION_METHODS.filesync.removeBackend, {
800
834
  backendId
801
835
  });
802
836
  }
@@ -805,7 +839,7 @@ var FileSyncAPI = class {
805
839
  */
806
840
  async testBackendAsync(backendId) {
807
841
  return this.client.request(
808
- HAEXTENSION_METHODS.filesystem.sync.testBackend,
842
+ HAEXTENSION_METHODS.filesync.testBackend,
809
843
  { backendId }
810
844
  );
811
845
  }
@@ -817,7 +851,7 @@ var FileSyncAPI = class {
817
851
  */
818
852
  async listSyncRulesAsync() {
819
853
  return this.client.request(
820
- HAEXTENSION_METHODS.filesystem.sync.listSyncRules
854
+ HAEXTENSION_METHODS.filesync.listSyncRules
821
855
  );
822
856
  }
823
857
  /**
@@ -825,7 +859,7 @@ var FileSyncAPI = class {
825
859
  */
826
860
  async addSyncRuleAsync(options) {
827
861
  return this.client.request(
828
- HAEXTENSION_METHODS.filesystem.sync.addSyncRule,
862
+ HAEXTENSION_METHODS.filesync.addSyncRule,
829
863
  options
830
864
  );
831
865
  }
@@ -834,7 +868,7 @@ var FileSyncAPI = class {
834
868
  */
835
869
  async updateSyncRuleAsync(options) {
836
870
  return this.client.request(
837
- HAEXTENSION_METHODS.filesystem.sync.updateSyncRule,
871
+ HAEXTENSION_METHODS.filesync.updateSyncRule,
838
872
  options
839
873
  );
840
874
  }
@@ -842,7 +876,7 @@ var FileSyncAPI = class {
842
876
  * Remove a sync rule
843
877
  */
844
878
  async removeSyncRuleAsync(ruleId) {
845
- await this.client.request(HAEXTENSION_METHODS.filesystem.sync.removeSyncRule, {
879
+ await this.client.request(HAEXTENSION_METHODS.filesync.removeSyncRule, {
846
880
  ruleId
847
881
  });
848
882
  }
@@ -854,26 +888,26 @@ var FileSyncAPI = class {
854
888
  */
855
889
  async getSyncStatusAsync() {
856
890
  return this.client.request(
857
- HAEXTENSION_METHODS.filesystem.sync.getSyncStatus
891
+ HAEXTENSION_METHODS.filesync.getSyncStatus
858
892
  );
859
893
  }
860
894
  /**
861
895
  * Trigger a manual sync
862
896
  */
863
897
  async triggerSyncAsync() {
864
- await this.client.request(HAEXTENSION_METHODS.filesystem.sync.triggerSync);
898
+ await this.client.request(HAEXTENSION_METHODS.filesync.triggerSync);
865
899
  }
866
900
  /**
867
901
  * Pause syncing
868
902
  */
869
903
  async pauseSyncAsync() {
870
- await this.client.request(HAEXTENSION_METHODS.filesystem.sync.pauseSync);
904
+ await this.client.request(HAEXTENSION_METHODS.filesync.pauseSync);
871
905
  }
872
906
  /**
873
907
  * Resume syncing
874
908
  */
875
909
  async resumeSyncAsync() {
876
- await this.client.request(HAEXTENSION_METHODS.filesystem.sync.resumeSync);
910
+ await this.client.request(HAEXTENSION_METHODS.filesync.resumeSync);
877
911
  }
878
912
  // --------------------------------------------------------------------------
879
913
  // Conflict Resolution
@@ -882,7 +916,7 @@ var FileSyncAPI = class {
882
916
  * Resolve a file conflict
883
917
  */
884
918
  async resolveConflictAsync(fileId, resolution) {
885
- await this.client.request(HAEXTENSION_METHODS.filesystem.sync.resolveConflict, {
919
+ await this.client.request(HAEXTENSION_METHODS.filesync.resolveConflict, {
886
920
  fileId,
887
921
  resolution
888
922
  });
@@ -895,9 +929,91 @@ var FileSyncAPI = class {
895
929
  */
896
930
  async selectFolderAsync() {
897
931
  return this.client.request(
898
- HAEXTENSION_METHODS.filesystem.sync.selectFolder
932
+ HAEXTENSION_METHODS.filesync.selectFolder
933
+ );
934
+ }
935
+ // --------------------------------------------------------------------------
936
+ // Sync Queue
937
+ // --------------------------------------------------------------------------
938
+ /**
939
+ * Add files to the sync queue
940
+ */
941
+ async addToQueueAsync(options) {
942
+ return this.client.request(
943
+ HAEXTENSION_METHODS.filesync.addToQueue,
944
+ options
945
+ );
946
+ }
947
+ /**
948
+ * Get queue entries for the current device
949
+ */
950
+ async getQueueAsync(options) {
951
+ return this.client.request(
952
+ HAEXTENSION_METHODS.filesync.getQueue,
953
+ options
954
+ );
955
+ }
956
+ /**
957
+ * Get aggregated queue summary for the current device
958
+ */
959
+ async getQueueSummaryAsync() {
960
+ return this.client.request(
961
+ HAEXTENSION_METHODS.filesync.getQueueSummary
899
962
  );
900
963
  }
964
+ /**
965
+ * Mark a queue entry as started (in_progress)
966
+ */
967
+ async startQueueEntryAsync(entryId) {
968
+ await this.client.request(HAEXTENSION_METHODS.filesync.startQueueEntry, {
969
+ entryId
970
+ });
971
+ }
972
+ /**
973
+ * Mark a queue entry as completed
974
+ */
975
+ async completeQueueEntryAsync(entryId) {
976
+ await this.client.request(HAEXTENSION_METHODS.filesync.completeQueueEntry, {
977
+ entryId
978
+ });
979
+ }
980
+ /**
981
+ * Mark a queue entry as failed
982
+ */
983
+ async failQueueEntryAsync(entryId, errorMessage) {
984
+ await this.client.request(HAEXTENSION_METHODS.filesync.failQueueEntry, {
985
+ entryId,
986
+ errorMessage
987
+ });
988
+ }
989
+ /**
990
+ * Retry all failed queue entries (reset to pending)
991
+ */
992
+ async retryFailedQueueAsync() {
993
+ await this.client.request(HAEXTENSION_METHODS.filesync.retryFailedQueue);
994
+ }
995
+ /**
996
+ * Remove a queue entry
997
+ */
998
+ async removeQueueEntryAsync(entryId) {
999
+ await this.client.request(HAEXTENSION_METHODS.filesync.removeQueueEntry, {
1000
+ entryId
1001
+ });
1002
+ }
1003
+ /**
1004
+ * Clear all queue entries for a sync rule
1005
+ */
1006
+ async clearQueueAsync(ruleId) {
1007
+ await this.client.request(HAEXTENSION_METHODS.filesync.clearQueue, {
1008
+ ruleId
1009
+ });
1010
+ }
1011
+ /**
1012
+ * Reset in_progress entries to pending (for recovery after crash)
1013
+ */
1014
+ async recoverQueueAsync() {
1015
+ await this.client.request(HAEXTENSION_METHODS.filesync.recoverQueue);
1016
+ }
901
1017
  };
902
1018
 
903
1019
  // src/api/filesystem.ts
@@ -1128,6 +1244,111 @@ var PermissionsAPI = class {
1128
1244
  }
1129
1245
  };
1130
1246
 
1247
+ // src/api/remoteStorage.ts
1248
+ var RemoteStorageAPI = class {
1249
+ constructor(client) {
1250
+ this.client = client;
1251
+ this.backends = new BackendManagement(client);
1252
+ }
1253
+ /**
1254
+ * Upload data to a storage backend
1255
+ * @param backendId - Backend ID to upload to
1256
+ * @param key - Object key (path in the bucket)
1257
+ * @param data - Data to upload
1258
+ */
1259
+ async upload(backendId, key, data) {
1260
+ const base64 = btoa(String.fromCharCode(...data));
1261
+ await this.client.request(HAEXTENSION_METHODS.remoteStorage.upload, {
1262
+ backendId,
1263
+ key,
1264
+ data: base64
1265
+ });
1266
+ }
1267
+ /**
1268
+ * Download data from a storage backend
1269
+ * @param backendId - Backend ID to download from
1270
+ * @param key - Object key (path in the bucket)
1271
+ * @returns Downloaded data as Uint8Array
1272
+ */
1273
+ async download(backendId, key) {
1274
+ const base64 = await this.client.request(
1275
+ HAEXTENSION_METHODS.remoteStorage.download,
1276
+ { backendId, key }
1277
+ );
1278
+ const binary = atob(base64);
1279
+ const bytes = new Uint8Array(binary.length);
1280
+ for (let i = 0; i < binary.length; i++) {
1281
+ bytes[i] = binary.charCodeAt(i);
1282
+ }
1283
+ return bytes;
1284
+ }
1285
+ /**
1286
+ * Delete an object from a storage backend
1287
+ * @param backendId - Backend ID
1288
+ * @param key - Object key to delete
1289
+ */
1290
+ async delete(backendId, key) {
1291
+ await this.client.request(HAEXTENSION_METHODS.remoteStorage.delete, {
1292
+ backendId,
1293
+ key
1294
+ });
1295
+ }
1296
+ /**
1297
+ * List objects in a storage backend
1298
+ * @param backendId - Backend ID
1299
+ * @param prefix - Optional prefix to filter objects
1300
+ * @returns List of objects
1301
+ */
1302
+ async list(backendId, prefix) {
1303
+ return this.client.request(
1304
+ HAEXTENSION_METHODS.remoteStorage.list,
1305
+ { backendId, prefix }
1306
+ );
1307
+ }
1308
+ };
1309
+ var BackendManagement = class {
1310
+ constructor(client) {
1311
+ this.client = client;
1312
+ }
1313
+ /**
1314
+ * List all available storage backends
1315
+ */
1316
+ async list() {
1317
+ return this.client.request(
1318
+ HAEXTENSION_METHODS.remoteStorage.listBackends
1319
+ );
1320
+ }
1321
+ /**
1322
+ * Add a new storage backend
1323
+ * @param request - Backend configuration
1324
+ * @returns Created backend info
1325
+ */
1326
+ async add(request) {
1327
+ return this.client.request(
1328
+ HAEXTENSION_METHODS.remoteStorage.addBackend,
1329
+ request
1330
+ );
1331
+ }
1332
+ /**
1333
+ * Remove a storage backend
1334
+ * @param backendId - Backend ID to remove
1335
+ */
1336
+ async remove(backendId) {
1337
+ await this.client.request(HAEXTENSION_METHODS.remoteStorage.removeBackend, {
1338
+ backendId
1339
+ });
1340
+ }
1341
+ /**
1342
+ * Test connection to a storage backend
1343
+ * @param backendId - Backend ID to test
1344
+ */
1345
+ async test(backendId) {
1346
+ await this.client.request(HAEXTENSION_METHODS.remoteStorage.testBackend, {
1347
+ backendId
1348
+ });
1349
+ }
1350
+ };
1351
+
1131
1352
  // src/client/tableName.ts
1132
1353
  function validatePublicKey(publicKey) {
1133
1354
  if (!publicKey || typeof publicKey !== "string" || publicKey.trim() === "") {
@@ -1377,6 +1598,20 @@ var TAURI_COMMANDS = {
1377
1598
  getInfo: "webview_extension_get_info",
1378
1599
  getContext: "webview_extension_context_get"
1379
1600
  },
1601
+ storage: {
1602
+ // Backend Management (generic, shared by all extensions)
1603
+ // These commands don't use webview_ prefix because storage backends are global,
1604
+ // not extension-specific. All extensions share the same storage backends.
1605
+ listBackends: "storage_list_backends",
1606
+ addBackend: "storage_add_backend",
1607
+ removeBackend: "storage_remove_backend",
1608
+ testBackend: "storage_test_backend",
1609
+ // Storage Operations
1610
+ upload: "storage_upload",
1611
+ download: "storage_download",
1612
+ delete: "storage_delete",
1613
+ list: "storage_list"
1614
+ },
1380
1615
  filesync: {
1381
1616
  // Spaces (webview_* commands extract extension info from WebviewWindow)
1382
1617
  listSpaces: "webview_filesync_list_spaces",
@@ -1407,7 +1642,18 @@ var TAURI_COMMANDS = {
1407
1642
  resolveConflict: "webview_filesync_resolve_conflict",
1408
1643
  // UI Helpers (selectFolder doesn't need extension info)
1409
1644
  selectFolder: "filesync_select_folder",
1410
- scanLocal: "webview_filesync_scan_local"
1645
+ scanLocal: "webview_filesync_scan_local",
1646
+ // Sync Queue
1647
+ addToQueue: "webview_filesync_add_to_queue",
1648
+ getQueue: "webview_filesync_get_queue",
1649
+ getQueueSummary: "webview_filesync_get_queue_summary",
1650
+ startQueueEntry: "webview_filesync_start_queue_entry",
1651
+ completeQueueEntry: "webview_filesync_complete_queue_entry",
1652
+ failQueueEntry: "webview_filesync_fail_queue_entry",
1653
+ retryFailedQueue: "webview_filesync_retry_failed_queue",
1654
+ removeQueueEntry: "webview_filesync_remove_queue_entry",
1655
+ clearQueue: "webview_filesync_clear_queue",
1656
+ recoverQueue: "webview_filesync_recover_queue"
1411
1657
  }
1412
1658
  };
1413
1659
 
@@ -1523,115 +1769,158 @@ var filesyncHandlers = {
1523
1769
  // ==========================================================================
1524
1770
  // Spaces
1525
1771
  // ==========================================================================
1526
- [HAEXTENSION_METHODS.filesystem.sync.listSpaces]: {
1772
+ [HAEXTENSION_METHODS.filesync.listSpaces]: {
1527
1773
  command: TAURI_COMMANDS.filesync.listSpaces,
1528
1774
  args: () => ({})
1529
1775
  },
1530
- [HAEXTENSION_METHODS.filesystem.sync.createSpace]: {
1776
+ [HAEXTENSION_METHODS.filesync.createSpace]: {
1531
1777
  command: TAURI_COMMANDS.filesync.createSpace,
1532
1778
  args: (p) => ({ request: p })
1533
1779
  },
1534
- [HAEXTENSION_METHODS.filesystem.sync.deleteSpace]: {
1780
+ [HAEXTENSION_METHODS.filesync.deleteSpace]: {
1535
1781
  command: TAURI_COMMANDS.filesync.deleteSpace,
1536
1782
  args: (p) => ({ spaceId: p.spaceId })
1537
1783
  },
1538
1784
  // ==========================================================================
1539
1785
  // Files
1540
1786
  // ==========================================================================
1541
- [HAEXTENSION_METHODS.filesystem.sync.listFiles]: {
1787
+ [HAEXTENSION_METHODS.filesync.listFiles]: {
1542
1788
  command: TAURI_COMMANDS.filesync.listFiles,
1543
1789
  args: (p) => ({ request: p })
1544
1790
  },
1545
- [HAEXTENSION_METHODS.filesystem.sync.getFile]: {
1791
+ [HAEXTENSION_METHODS.filesync.getFile]: {
1546
1792
  command: TAURI_COMMANDS.filesync.getFile,
1547
1793
  args: (p) => ({ fileId: p.fileId })
1548
1794
  },
1549
- [HAEXTENSION_METHODS.filesystem.sync.uploadFile]: {
1795
+ [HAEXTENSION_METHODS.filesync.uploadFile]: {
1550
1796
  command: TAURI_COMMANDS.filesync.uploadFile,
1551
1797
  args: (p) => ({ request: p })
1552
1798
  },
1553
- [HAEXTENSION_METHODS.filesystem.sync.downloadFile]: {
1799
+ [HAEXTENSION_METHODS.filesync.downloadFile]: {
1554
1800
  command: TAURI_COMMANDS.filesync.downloadFile,
1555
1801
  args: (p) => ({ request: p })
1556
1802
  },
1557
- [HAEXTENSION_METHODS.filesystem.sync.deleteFile]: {
1803
+ [HAEXTENSION_METHODS.filesync.deleteFile]: {
1558
1804
  command: TAURI_COMMANDS.filesync.deleteFile,
1559
1805
  args: (p) => ({ fileId: p.fileId })
1560
1806
  },
1561
1807
  // ==========================================================================
1562
1808
  // Backends
1563
1809
  // ==========================================================================
1564
- [HAEXTENSION_METHODS.filesystem.sync.listBackends]: {
1810
+ [HAEXTENSION_METHODS.filesync.listBackends]: {
1565
1811
  command: TAURI_COMMANDS.filesync.listBackends,
1566
1812
  args: () => ({})
1567
1813
  },
1568
- [HAEXTENSION_METHODS.filesystem.sync.addBackend]: {
1814
+ [HAEXTENSION_METHODS.filesync.addBackend]: {
1569
1815
  command: TAURI_COMMANDS.filesync.addBackend,
1570
1816
  args: (p) => ({ request: p })
1571
1817
  },
1572
- [HAEXTENSION_METHODS.filesystem.sync.removeBackend]: {
1818
+ [HAEXTENSION_METHODS.filesync.removeBackend]: {
1573
1819
  command: TAURI_COMMANDS.filesync.removeBackend,
1574
1820
  args: (p) => ({ backendId: p.backendId })
1575
1821
  },
1576
- [HAEXTENSION_METHODS.filesystem.sync.testBackend]: {
1822
+ [HAEXTENSION_METHODS.filesync.testBackend]: {
1577
1823
  command: TAURI_COMMANDS.filesync.testBackend,
1578
1824
  args: (p) => ({ backendId: p.backendId })
1579
1825
  },
1580
1826
  // ==========================================================================
1581
1827
  // Sync Rules
1582
1828
  // ==========================================================================
1583
- [HAEXTENSION_METHODS.filesystem.sync.listSyncRules]: {
1829
+ [HAEXTENSION_METHODS.filesync.listSyncRules]: {
1584
1830
  command: TAURI_COMMANDS.filesync.listSyncRules,
1585
1831
  args: () => ({})
1586
1832
  },
1587
- [HAEXTENSION_METHODS.filesystem.sync.addSyncRule]: {
1833
+ [HAEXTENSION_METHODS.filesync.addSyncRule]: {
1588
1834
  command: TAURI_COMMANDS.filesync.addSyncRule,
1589
1835
  args: (p) => ({ request: p })
1590
1836
  },
1591
- [HAEXTENSION_METHODS.filesystem.sync.updateSyncRule]: {
1837
+ [HAEXTENSION_METHODS.filesync.updateSyncRule]: {
1592
1838
  command: TAURI_COMMANDS.filesync.updateSyncRule,
1593
1839
  args: (p) => ({ request: p })
1594
1840
  },
1595
- [HAEXTENSION_METHODS.filesystem.sync.removeSyncRule]: {
1841
+ [HAEXTENSION_METHODS.filesync.removeSyncRule]: {
1596
1842
  command: TAURI_COMMANDS.filesync.removeSyncRule,
1597
1843
  args: (p) => ({ ruleId: p.ruleId })
1598
1844
  },
1599
1845
  // ==========================================================================
1600
1846
  // Sync Operations
1601
1847
  // ==========================================================================
1602
- [HAEXTENSION_METHODS.filesystem.sync.getSyncStatus]: {
1848
+ [HAEXTENSION_METHODS.filesync.getSyncStatus]: {
1603
1849
  command: TAURI_COMMANDS.filesync.getSyncStatus,
1604
1850
  args: () => ({})
1605
1851
  },
1606
- [HAEXTENSION_METHODS.filesystem.sync.triggerSync]: {
1852
+ [HAEXTENSION_METHODS.filesync.triggerSync]: {
1607
1853
  command: TAURI_COMMANDS.filesync.triggerSync,
1608
1854
  args: () => ({})
1609
1855
  },
1610
- [HAEXTENSION_METHODS.filesystem.sync.pauseSync]: {
1856
+ [HAEXTENSION_METHODS.filesync.pauseSync]: {
1611
1857
  command: TAURI_COMMANDS.filesync.pauseSync,
1612
1858
  args: () => ({})
1613
1859
  },
1614
- [HAEXTENSION_METHODS.filesystem.sync.resumeSync]: {
1860
+ [HAEXTENSION_METHODS.filesync.resumeSync]: {
1615
1861
  command: TAURI_COMMANDS.filesync.resumeSync,
1616
1862
  args: () => ({})
1617
1863
  },
1618
1864
  // ==========================================================================
1619
1865
  // Conflict Resolution
1620
1866
  // ==========================================================================
1621
- [HAEXTENSION_METHODS.filesystem.sync.resolveConflict]: {
1867
+ [HAEXTENSION_METHODS.filesync.resolveConflict]: {
1622
1868
  command: TAURI_COMMANDS.filesync.resolveConflict,
1623
1869
  args: (p) => ({ request: p })
1624
1870
  },
1625
1871
  // ==========================================================================
1626
1872
  // UI Helpers
1627
1873
  // ==========================================================================
1628
- [HAEXTENSION_METHODS.filesystem.sync.selectFolder]: {
1874
+ [HAEXTENSION_METHODS.filesync.selectFolder]: {
1629
1875
  command: TAURI_COMMANDS.filesync.selectFolder,
1630
1876
  args: () => ({})
1631
1877
  },
1632
- [HAEXTENSION_METHODS.filesystem.sync.scanLocal]: {
1878
+ [HAEXTENSION_METHODS.filesync.scanLocal]: {
1633
1879
  command: TAURI_COMMANDS.filesync.scanLocal,
1634
1880
  args: (p) => ({ request: p })
1881
+ },
1882
+ // ==========================================================================
1883
+ // Sync Queue
1884
+ // ==========================================================================
1885
+ [HAEXTENSION_METHODS.filesync.addToQueue]: {
1886
+ command: TAURI_COMMANDS.filesync.addToQueue,
1887
+ args: (p) => ({ request: p })
1888
+ },
1889
+ [HAEXTENSION_METHODS.filesync.getQueue]: {
1890
+ command: TAURI_COMMANDS.filesync.getQueue,
1891
+ args: (p) => ({ request: p ?? {} })
1892
+ },
1893
+ [HAEXTENSION_METHODS.filesync.getQueueSummary]: {
1894
+ command: TAURI_COMMANDS.filesync.getQueueSummary,
1895
+ args: () => ({})
1896
+ },
1897
+ [HAEXTENSION_METHODS.filesync.startQueueEntry]: {
1898
+ command: TAURI_COMMANDS.filesync.startQueueEntry,
1899
+ args: (p) => ({ entryId: p.entryId })
1900
+ },
1901
+ [HAEXTENSION_METHODS.filesync.completeQueueEntry]: {
1902
+ command: TAURI_COMMANDS.filesync.completeQueueEntry,
1903
+ args: (p) => ({ entryId: p.entryId })
1904
+ },
1905
+ [HAEXTENSION_METHODS.filesync.failQueueEntry]: {
1906
+ command: TAURI_COMMANDS.filesync.failQueueEntry,
1907
+ args: (p) => ({ entryId: p.entryId, errorMessage: p.errorMessage })
1908
+ },
1909
+ [HAEXTENSION_METHODS.filesync.retryFailedQueue]: {
1910
+ command: TAURI_COMMANDS.filesync.retryFailedQueue,
1911
+ args: () => ({})
1912
+ },
1913
+ [HAEXTENSION_METHODS.filesync.removeQueueEntry]: {
1914
+ command: TAURI_COMMANDS.filesync.removeQueueEntry,
1915
+ args: (p) => ({ entryId: p.entryId })
1916
+ },
1917
+ [HAEXTENSION_METHODS.filesync.clearQueue]: {
1918
+ command: TAURI_COMMANDS.filesync.clearQueue,
1919
+ args: (p) => ({ ruleId: p.ruleId })
1920
+ },
1921
+ [HAEXTENSION_METHODS.filesync.recoverQueue]: {
1922
+ command: TAURI_COMMANDS.filesync.recoverQueue,
1923
+ args: () => ({})
1635
1924
  }
1636
1925
  };
1637
1926
 
@@ -1943,6 +2232,7 @@ var HaexVaultSdk = class {
1943
2232
  this.filesystem = new FilesystemAPI(this);
1944
2233
  this.web = new WebAPI(this);
1945
2234
  this.permissions = new PermissionsAPI(this);
2235
+ this.remoteStorage = new RemoteStorageAPI(this);
1946
2236
  installConsoleForwarding(this.config.debug);
1947
2237
  this.readyPromise = new Promise((resolve) => {
1948
2238
  this.resolveReady = resolve;
@@ -2567,6 +2857,6 @@ function createHaexVaultSdk(config = {}) {
2567
2857
  return new HaexVaultSdk(config);
2568
2858
  }
2569
2859
 
2570
- export { CONFLICT_STRATEGY, DEFAULT_TIMEOUT, DatabaseAPI, EXTERNAL_EVENTS, ErrorCode, ExternalConnectionErrorCode, ExternalConnectionState, FILE_SYNC_STATE, FileSyncAPI, FilesystemAPI, HAEXSPACE_MESSAGE_TYPES, HAEXTENSION_EVENTS, HAEXTENSION_METHODS, HaexVaultSdk, HaexVaultSdkError, PermissionStatus, PermissionsAPI, STORAGE_BACKEND_TYPE, SYNC_DIRECTION, TABLE_SEPARATOR, TAURI_COMMANDS, WebAPI, arrayBufferToBase64, base64ToArrayBuffer, canExternalClientSendRequests, createHaexVaultSdk, decryptCrdtData, decryptString, decryptVaultKey, decryptVaultName, deriveKeyFromPassword, encryptCrdtData, encryptString, encryptVaultKey, generateVaultKey, getTableName, hexToBytes, installBaseTag, installCookiePolyfill, installHistoryPolyfill, installLocalStoragePolyfill, installPolyfills, installSessionStoragePolyfill, isExternalClientConnected, sortObjectKeysRecursively, unwrapKey, verifyExtensionSignature, wrapKey };
2860
+ export { CONFLICT_STRATEGY, DEFAULT_TIMEOUT, DatabaseAPI, EXTERNAL_EVENTS, ErrorCode, ExternalConnectionErrorCode, ExternalConnectionState, FILE_SYNC_STATE, FileSyncAPI, FilesystemAPI, HAEXSPACE_MESSAGE_TYPES, HAEXTENSION_EVENTS, HAEXTENSION_METHODS, HaexVaultSdk, HaexVaultSdkError, PermissionStatus, PermissionsAPI, QUEUE_OPERATION, QUEUE_STATUS, RemoteStorageAPI, STORAGE_BACKEND_TYPE, SYNC_DIRECTION, TABLE_SEPARATOR, TAURI_COMMANDS, WebAPI, arrayBufferToBase64, base64ToArrayBuffer, canExternalClientSendRequests, createHaexVaultSdk, decryptCrdtData, decryptString, decryptVaultKey, decryptVaultName, deriveKeyFromPassword, encryptCrdtData, encryptString, encryptVaultKey, generateVaultKey, getTableName, hexToBytes, installBaseTag, installCookiePolyfill, installHistoryPolyfill, installLocalStoragePolyfill, installPolyfills, installSessionStoragePolyfill, isExternalClientConnected, sortObjectKeysRecursively, unwrapKey, verifyExtensionSignature, wrapKey };
2571
2861
  //# sourceMappingURL=index.mjs.map
2572
2862
  //# sourceMappingURL=index.mjs.map