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