@haex-space/vault-sdk 2.3.14 → 2.3.15

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
@@ -392,7 +392,37 @@ var HAEXTENSION_METHODS = {
392
392
  filesystem: {
393
393
  saveFile: "haextension:filesystem:save-file",
394
394
  openFile: "haextension:filesystem:open-file",
395
- showImage: "haextension:filesystem:show-image"
395
+ showImage: "haextension:filesystem:show-image",
396
+ sync: {
397
+ // Spaces
398
+ listSpaces: "haextension:filesystem:sync:list-spaces",
399
+ createSpace: "haextension:filesystem:sync:create-space",
400
+ deleteSpace: "haextension:filesystem:sync:delete-space",
401
+ // Files
402
+ listFiles: "haextension:filesystem:sync:list-files",
403
+ getFile: "haextension:filesystem:sync:get-file",
404
+ uploadFile: "haextension:filesystem:sync:upload-file",
405
+ downloadFile: "haextension:filesystem:sync:download-file",
406
+ deleteFile: "haextension:filesystem:sync:delete-file",
407
+ // Backends
408
+ listBackends: "haextension:filesystem:sync:list-backends",
409
+ addBackend: "haextension:filesystem:sync:add-backend",
410
+ removeBackend: "haextension:filesystem:sync:remove-backend",
411
+ testBackend: "haextension:filesystem:sync:test-backend",
412
+ // Sync Rules
413
+ listSyncRules: "haextension:filesystem:sync:list-sync-rules",
414
+ addSyncRule: "haextension:filesystem:sync:add-sync-rule",
415
+ removeSyncRule: "haextension:filesystem:sync:remove-sync-rule",
416
+ // Sync Operations
417
+ getSyncStatus: "haextension:filesystem:sync:get-sync-status",
418
+ triggerSync: "haextension:filesystem:sync:trigger-sync",
419
+ pauseSync: "haextension:filesystem:sync:pause-sync",
420
+ resumeSync: "haextension:filesystem:sync:resume-sync",
421
+ // Conflict Resolution
422
+ resolveConflict: "haextension:filesystem:sync:resolve-conflict",
423
+ // UI Helpers
424
+ selectFolder: "haextension:filesystem:sync:select-folder"
425
+ }
396
426
  },
397
427
  storage: {
398
428
  getItem: "haextension:storage:get-item",
@@ -588,10 +618,210 @@ var DatabaseAPI = class {
588
618
  }
589
619
  };
590
620
 
621
+ // src/api/filesync.ts
622
+ var FileSyncAPI = class {
623
+ constructor(client) {
624
+ this.client = client;
625
+ }
626
+ // --------------------------------------------------------------------------
627
+ // Spaces
628
+ // --------------------------------------------------------------------------
629
+ /**
630
+ * List all file spaces
631
+ */
632
+ async listSpacesAsync() {
633
+ return this.client.request(
634
+ HAEXTENSION_METHODS.filesystem.sync.listSpaces
635
+ );
636
+ }
637
+ /**
638
+ * Create a new file space
639
+ */
640
+ async createSpaceAsync(options) {
641
+ return this.client.request(
642
+ HAEXTENSION_METHODS.filesystem.sync.createSpace,
643
+ options
644
+ );
645
+ }
646
+ /**
647
+ * Delete a file space
648
+ */
649
+ async deleteSpaceAsync(spaceId) {
650
+ await this.client.request(HAEXTENSION_METHODS.filesystem.sync.deleteSpace, {
651
+ spaceId
652
+ });
653
+ }
654
+ // --------------------------------------------------------------------------
655
+ // Files
656
+ // --------------------------------------------------------------------------
657
+ /**
658
+ * List files in a space
659
+ */
660
+ async listFilesAsync(options) {
661
+ return this.client.request(
662
+ HAEXTENSION_METHODS.filesystem.sync.listFiles,
663
+ options
664
+ );
665
+ }
666
+ /**
667
+ * Get file info by ID
668
+ */
669
+ async getFileAsync(fileId) {
670
+ return this.client.request(
671
+ HAEXTENSION_METHODS.filesystem.sync.getFile,
672
+ { fileId }
673
+ );
674
+ }
675
+ /**
676
+ * Upload a file to the sync system
677
+ */
678
+ async uploadFileAsync(options) {
679
+ return this.client.request(
680
+ HAEXTENSION_METHODS.filesystem.sync.uploadFile,
681
+ options
682
+ );
683
+ }
684
+ /**
685
+ * Download a file to local storage
686
+ */
687
+ async downloadFileAsync(options) {
688
+ await this.client.request(
689
+ HAEXTENSION_METHODS.filesystem.sync.downloadFile,
690
+ options
691
+ );
692
+ }
693
+ /**
694
+ * Delete a file from the sync system
695
+ */
696
+ async deleteFileAsync(fileId) {
697
+ await this.client.request(HAEXTENSION_METHODS.filesystem.sync.deleteFile, {
698
+ fileId
699
+ });
700
+ }
701
+ // --------------------------------------------------------------------------
702
+ // Storage Backends
703
+ // --------------------------------------------------------------------------
704
+ /**
705
+ * List configured storage backends
706
+ */
707
+ async listBackendsAsync() {
708
+ return this.client.request(
709
+ HAEXTENSION_METHODS.filesystem.sync.listBackends
710
+ );
711
+ }
712
+ /**
713
+ * Add a new storage backend
714
+ */
715
+ async addBackendAsync(options) {
716
+ return this.client.request(
717
+ HAEXTENSION_METHODS.filesystem.sync.addBackend,
718
+ options
719
+ );
720
+ }
721
+ /**
722
+ * Remove a storage backend
723
+ */
724
+ async removeBackendAsync(backendId) {
725
+ await this.client.request(HAEXTENSION_METHODS.filesystem.sync.removeBackend, {
726
+ backendId
727
+ });
728
+ }
729
+ /**
730
+ * Test backend connection
731
+ */
732
+ async testBackendAsync(backendId) {
733
+ return this.client.request(
734
+ HAEXTENSION_METHODS.filesystem.sync.testBackend,
735
+ { backendId }
736
+ );
737
+ }
738
+ // --------------------------------------------------------------------------
739
+ // Sync Rules
740
+ // --------------------------------------------------------------------------
741
+ /**
742
+ * List sync rules
743
+ */
744
+ async listSyncRulesAsync() {
745
+ return this.client.request(
746
+ HAEXTENSION_METHODS.filesystem.sync.listSyncRules
747
+ );
748
+ }
749
+ /**
750
+ * Add a sync rule
751
+ */
752
+ async addSyncRuleAsync(options) {
753
+ return this.client.request(
754
+ HAEXTENSION_METHODS.filesystem.sync.addSyncRule,
755
+ options
756
+ );
757
+ }
758
+ /**
759
+ * Remove a sync rule
760
+ */
761
+ async removeSyncRuleAsync(ruleId) {
762
+ await this.client.request(HAEXTENSION_METHODS.filesystem.sync.removeSyncRule, {
763
+ ruleId
764
+ });
765
+ }
766
+ // --------------------------------------------------------------------------
767
+ // Sync Operations
768
+ // --------------------------------------------------------------------------
769
+ /**
770
+ * Get current sync status
771
+ */
772
+ async getSyncStatusAsync() {
773
+ return this.client.request(
774
+ HAEXTENSION_METHODS.filesystem.sync.getSyncStatus
775
+ );
776
+ }
777
+ /**
778
+ * Trigger a manual sync
779
+ */
780
+ async triggerSyncAsync() {
781
+ await this.client.request(HAEXTENSION_METHODS.filesystem.sync.triggerSync);
782
+ }
783
+ /**
784
+ * Pause syncing
785
+ */
786
+ async pauseSyncAsync() {
787
+ await this.client.request(HAEXTENSION_METHODS.filesystem.sync.pauseSync);
788
+ }
789
+ /**
790
+ * Resume syncing
791
+ */
792
+ async resumeSyncAsync() {
793
+ await this.client.request(HAEXTENSION_METHODS.filesystem.sync.resumeSync);
794
+ }
795
+ // --------------------------------------------------------------------------
796
+ // Conflict Resolution
797
+ // --------------------------------------------------------------------------
798
+ /**
799
+ * Resolve a file conflict
800
+ */
801
+ async resolveConflictAsync(fileId, resolution) {
802
+ await this.client.request(HAEXTENSION_METHODS.filesystem.sync.resolveConflict, {
803
+ fileId,
804
+ resolution
805
+ });
806
+ }
807
+ // --------------------------------------------------------------------------
808
+ // Folder Selection (Native Dialog)
809
+ // --------------------------------------------------------------------------
810
+ /**
811
+ * Open a folder selection dialog
812
+ */
813
+ async selectFolderAsync() {
814
+ return this.client.request(
815
+ HAEXTENSION_METHODS.filesystem.sync.selectFolder
816
+ );
817
+ }
818
+ };
819
+
591
820
  // src/api/filesystem.ts
592
821
  var FilesystemAPI = class {
593
822
  constructor(client) {
594
823
  this.client = client;
824
+ this.sync = new FileSyncAPI(client);
595
825
  }
596
826
  /**
597
827
  * Opens a save file dialog and saves the provided data to the selected location
@@ -1115,11 +1345,12 @@ var HaexVaultClient = class {
1115
1345
  async respondToExternalRequest(response) {
1116
1346
  await this.request("external.respond", response);
1117
1347
  }
1118
- async request(method, params = {}) {
1348
+ async request(method, params) {
1349
+ const resolvedParams = params ?? {};
1119
1350
  if (this.isNativeWindow && typeof window.__TAURI__ !== "undefined") {
1120
- return this.invoke(method, params);
1351
+ return this.invoke(method, resolvedParams);
1121
1352
  }
1122
- return this.postMessage(method, params);
1353
+ return this.postMessage(method, resolvedParams);
1123
1354
  }
1124
1355
  async postMessage(method, params) {
1125
1356
  const requestId = this.generateRequestId();
@@ -1803,6 +2034,6 @@ function createHaexVaultClient(config = {}) {
1803
2034
  return new HaexVaultClient(config);
1804
2035
  }
1805
2036
 
1806
- export { DEFAULT_TIMEOUT, DatabaseAPI, ErrorCode, FilesystemAPI, HAEXSPACE_MESSAGE_TYPES, HAEXTENSION_EVENTS, HAEXTENSION_METHODS, HaexHubError, HaexVaultClient, PermissionStatus, PermissionsAPI, TABLE_SEPARATOR, WebAPI, arrayBufferToBase64, base64ToArrayBuffer, createHaexVaultClient, decryptCrdtData, decryptString, decryptVaultKey, decryptVaultName, deriveKeyFromPassword, encryptCrdtData, encryptString, encryptVaultKey, generateVaultKey, getTableName, hexToBytes, installBaseTag, installCookiePolyfill, installHistoryPolyfill, installLocalStoragePolyfill, installPolyfills, installSessionStoragePolyfill, sortObjectKeysRecursively, verifyExtensionSignature };
2037
+ export { DEFAULT_TIMEOUT, DatabaseAPI, ErrorCode, FileSyncAPI, FilesystemAPI, HAEXSPACE_MESSAGE_TYPES, HAEXTENSION_EVENTS, HAEXTENSION_METHODS, HaexHubError, HaexVaultClient, PermissionStatus, PermissionsAPI, TABLE_SEPARATOR, WebAPI, arrayBufferToBase64, base64ToArrayBuffer, createHaexVaultClient, decryptCrdtData, decryptString, decryptVaultKey, decryptVaultName, deriveKeyFromPassword, encryptCrdtData, encryptString, encryptVaultKey, generateVaultKey, getTableName, hexToBytes, installBaseTag, installCookiePolyfill, installHistoryPolyfill, installLocalStoragePolyfill, installPolyfills, installSessionStoragePolyfill, sortObjectKeysRecursively, verifyExtensionSignature };
1807
2038
  //# sourceMappingURL=index.mjs.map
1808
2039
  //# sourceMappingURL=index.mjs.map