@haex-space/vault-sdk 2.5.42 → 2.5.45
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/{client-BAu3VPE3.d.mts → client-BDxVgihp.d.mts} +124 -408
- package/dist/{client-CF0wJxT2.d.ts → client-Bgu2k1yJ.d.ts} +124 -408
- package/dist/index.d.mts +24 -37
- package/dist/index.d.ts +24 -37
- package/dist/index.js +147 -385
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +148 -379
- package/dist/index.mjs.map +1 -1
- package/dist/react.d.mts +1 -1
- package/dist/react.d.ts +1 -1
- package/dist/react.js +134 -337
- package/dist/react.js.map +1 -1
- package/dist/react.mjs +134 -337
- package/dist/react.mjs.map +1 -1
- package/dist/runtime/nuxt.plugin.client.d.mts +1 -1
- package/dist/runtime/nuxt.plugin.client.d.ts +1 -1
- package/dist/runtime/nuxt.plugin.client.js +134 -337
- package/dist/runtime/nuxt.plugin.client.js.map +1 -1
- package/dist/runtime/nuxt.plugin.client.mjs +134 -337
- package/dist/runtime/nuxt.plugin.client.mjs.map +1 -1
- package/dist/svelte.d.mts +1 -1
- package/dist/svelte.d.ts +1 -1
- package/dist/svelte.js +134 -337
- package/dist/svelte.js.map +1 -1
- package/dist/svelte.mjs +134 -337
- package/dist/svelte.mjs.map +1 -1
- package/dist/vue.d.mts +1 -1
- package/dist/vue.d.ts +1 -1
- package/dist/vue.js +134 -337
- package/dist/vue.js.map +1 -1
- package/dist/vue.mjs +134 -337
- package/dist/vue.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -485,50 +485,19 @@ 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
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
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"
|
|
488
|
+
showImage: "haextension:filesystem:show-image",
|
|
489
|
+
// Generic FS operations (Phase 2)
|
|
490
|
+
readFile: "haextension:filesystem:read-file",
|
|
491
|
+
writeFile: "haextension:filesystem:write-file",
|
|
492
|
+
readDir: "haextension:filesystem:read-dir",
|
|
493
|
+
mkdir: "haextension:filesystem:mkdir",
|
|
494
|
+
remove: "haextension:filesystem:remove",
|
|
495
|
+
exists: "haextension:filesystem:exists",
|
|
496
|
+
stat: "haextension:filesystem:stat",
|
|
497
|
+
selectFolder: "haextension:filesystem:select-folder",
|
|
498
|
+
selectFile: "haextension:filesystem:select-file",
|
|
499
|
+
rename: "haextension:filesystem:rename",
|
|
500
|
+
copy: "haextension:filesystem:copy"
|
|
532
501
|
},
|
|
533
502
|
storage: {
|
|
534
503
|
getItem: "haextension:storage:get-item",
|
|
@@ -674,406 +643,193 @@ var DatabaseAPI = class {
|
|
|
674
643
|
}
|
|
675
644
|
};
|
|
676
645
|
|
|
677
|
-
// src/api/
|
|
678
|
-
var
|
|
679
|
-
SYNCED: "synced",
|
|
680
|
-
SYNCING: "syncing",
|
|
681
|
-
LOCAL_ONLY: "localOnly",
|
|
682
|
-
REMOTE_ONLY: "remoteOnly",
|
|
683
|
-
CONFLICT: "conflict",
|
|
684
|
-
ERROR: "error"
|
|
685
|
-
};
|
|
686
|
-
var SYNC_DIRECTION = {
|
|
687
|
-
UP: "up",
|
|
688
|
-
DOWN: "down",
|
|
689
|
-
BOTH: "both"
|
|
690
|
-
};
|
|
691
|
-
var STORAGE_BACKEND_TYPE = {
|
|
692
|
-
S3: "s3",
|
|
693
|
-
R2: "r2",
|
|
694
|
-
MINIO: "minio",
|
|
695
|
-
GDRIVE: "gdrive",
|
|
696
|
-
DROPBOX: "dropbox"
|
|
697
|
-
};
|
|
698
|
-
var CONFLICT_STRATEGY = {
|
|
699
|
-
/** Always prefer local version */
|
|
700
|
-
LOCAL: "local",
|
|
701
|
-
/** Always prefer remote version */
|
|
702
|
-
REMOTE: "remote",
|
|
703
|
-
/** Prefer newer version (Last-Writer-Wins) */
|
|
704
|
-
NEWER: "newer",
|
|
705
|
-
/** Ask user to resolve each conflict manually */
|
|
706
|
-
ASK: "ask",
|
|
707
|
-
/** Keep both versions (create conflict copy) */
|
|
708
|
-
KEEP_BOTH: "keepBoth"
|
|
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
|
-
};
|
|
720
|
-
var FileSyncAPI = class {
|
|
646
|
+
// src/api/filesystem.ts
|
|
647
|
+
var FilesystemAPI = class {
|
|
721
648
|
constructor(client) {
|
|
722
649
|
this.client = client;
|
|
723
650
|
}
|
|
724
|
-
// --------------------------------------------------------------------------
|
|
725
|
-
// Spaces
|
|
726
|
-
// --------------------------------------------------------------------------
|
|
727
|
-
/**
|
|
728
|
-
* List all file spaces
|
|
729
|
-
*/
|
|
730
|
-
async listSpacesAsync() {
|
|
731
|
-
return this.client.request(
|
|
732
|
-
HAEXTENSION_METHODS.filesync.listSpaces
|
|
733
|
-
);
|
|
734
|
-
}
|
|
735
|
-
/**
|
|
736
|
-
* Create a new file space
|
|
737
|
-
*/
|
|
738
|
-
async createSpaceAsync(options) {
|
|
739
|
-
return this.client.request(
|
|
740
|
-
HAEXTENSION_METHODS.filesync.createSpace,
|
|
741
|
-
options
|
|
742
|
-
);
|
|
743
|
-
}
|
|
744
|
-
/**
|
|
745
|
-
* Delete a file space
|
|
746
|
-
*/
|
|
747
|
-
async deleteSpaceAsync(spaceId) {
|
|
748
|
-
await this.client.request(HAEXTENSION_METHODS.filesync.deleteSpace, {
|
|
749
|
-
spaceId
|
|
750
|
-
});
|
|
751
|
-
}
|
|
752
|
-
// --------------------------------------------------------------------------
|
|
753
|
-
// Files
|
|
754
|
-
// --------------------------------------------------------------------------
|
|
755
651
|
/**
|
|
756
|
-
*
|
|
652
|
+
* Opens a save file dialog and saves the provided data to the selected location
|
|
653
|
+
* @param data The file data as Uint8Array
|
|
654
|
+
* @param options Options for the save dialog
|
|
655
|
+
* @returns The path where the file was saved, or null if cancelled
|
|
757
656
|
*/
|
|
758
|
-
async
|
|
759
|
-
|
|
760
|
-
HAEXTENSION_METHODS.
|
|
761
|
-
|
|
657
|
+
async saveFileAsync(data, options = {}) {
|
|
658
|
+
const result = await this.client.request(
|
|
659
|
+
HAEXTENSION_METHODS.filesystem.saveFile,
|
|
660
|
+
{
|
|
661
|
+
data: Array.from(data),
|
|
662
|
+
// Convert Uint8Array to regular array for postMessage
|
|
663
|
+
defaultPath: options.defaultPath,
|
|
664
|
+
title: options.title,
|
|
665
|
+
filters: options.filters
|
|
666
|
+
}
|
|
762
667
|
);
|
|
668
|
+
return result;
|
|
763
669
|
}
|
|
764
670
|
/**
|
|
765
|
-
*
|
|
766
|
-
*
|
|
671
|
+
* Opens a file with the system's default viewer
|
|
672
|
+
* @param data The file data as Uint8Array
|
|
673
|
+
* @param options Options for opening the file
|
|
674
|
+
* @returns The result of the operation
|
|
767
675
|
*/
|
|
768
|
-
async
|
|
769
|
-
|
|
770
|
-
HAEXTENSION_METHODS.
|
|
771
|
-
|
|
676
|
+
async openFileAsync(data, options) {
|
|
677
|
+
const result = await this.client.request(
|
|
678
|
+
HAEXTENSION_METHODS.filesystem.openFile,
|
|
679
|
+
{
|
|
680
|
+
data: Array.from(data),
|
|
681
|
+
// Convert Uint8Array to regular array for postMessage
|
|
682
|
+
fileName: options.fileName,
|
|
683
|
+
mimeType: options.mimeType
|
|
684
|
+
}
|
|
772
685
|
);
|
|
686
|
+
return result;
|
|
773
687
|
}
|
|
774
688
|
/**
|
|
775
|
-
*
|
|
689
|
+
* Shows an image using a data URL (safe, read-only viewing)
|
|
690
|
+
* This is safe to use without special permissions as it only displays images
|
|
691
|
+
* and doesn't execute any code or open files with external applications
|
|
692
|
+
* @param options Options containing the data URL
|
|
693
|
+
* @returns The result of the operation
|
|
776
694
|
*/
|
|
777
|
-
async
|
|
778
|
-
|
|
779
|
-
HAEXTENSION_METHODS.
|
|
780
|
-
{
|
|
695
|
+
async showImageAsync(options) {
|
|
696
|
+
const result = await this.client.request(
|
|
697
|
+
HAEXTENSION_METHODS.filesystem.showImage,
|
|
698
|
+
{
|
|
699
|
+
dataUrl: options.dataUrl
|
|
700
|
+
}
|
|
781
701
|
);
|
|
702
|
+
return result;
|
|
782
703
|
}
|
|
704
|
+
// ==========================================================================
|
|
705
|
+
// Generic Filesystem Operations (Phase 2)
|
|
706
|
+
// ==========================================================================
|
|
783
707
|
/**
|
|
784
|
-
*
|
|
708
|
+
* Read file contents
|
|
709
|
+
* @param path Absolute path to the file
|
|
710
|
+
* @returns File contents as Uint8Array
|
|
785
711
|
*/
|
|
786
|
-
async
|
|
787
|
-
|
|
788
|
-
HAEXTENSION_METHODS.
|
|
789
|
-
|
|
712
|
+
async readFile(path) {
|
|
713
|
+
const base64 = await this.client.request(
|
|
714
|
+
HAEXTENSION_METHODS.filesystem.readFile,
|
|
715
|
+
{ path }
|
|
790
716
|
);
|
|
717
|
+
const binary = atob(base64);
|
|
718
|
+
const bytes = new Uint8Array(binary.length);
|
|
719
|
+
for (let i = 0; i < binary.length; i++) {
|
|
720
|
+
bytes[i] = binary.charCodeAt(i);
|
|
721
|
+
}
|
|
722
|
+
return bytes;
|
|
791
723
|
}
|
|
792
724
|
/**
|
|
793
|
-
*
|
|
725
|
+
* Write file contents
|
|
726
|
+
* @param path Absolute path to the file
|
|
727
|
+
* @param data File contents as Uint8Array
|
|
794
728
|
*/
|
|
795
|
-
async
|
|
729
|
+
async writeFile(path, data) {
|
|
730
|
+
const base64 = btoa(String.fromCharCode(...data));
|
|
796
731
|
await this.client.request(
|
|
797
|
-
HAEXTENSION_METHODS.
|
|
798
|
-
|
|
799
|
-
);
|
|
800
|
-
}
|
|
801
|
-
/**
|
|
802
|
-
* Delete a file from the sync system
|
|
803
|
-
*/
|
|
804
|
-
async deleteFileAsync(fileId) {
|
|
805
|
-
await this.client.request(HAEXTENSION_METHODS.filesync.deleteFile, {
|
|
806
|
-
fileId
|
|
807
|
-
});
|
|
808
|
-
}
|
|
809
|
-
// --------------------------------------------------------------------------
|
|
810
|
-
// Storage Backends
|
|
811
|
-
// --------------------------------------------------------------------------
|
|
812
|
-
/**
|
|
813
|
-
* List configured storage backends
|
|
814
|
-
*/
|
|
815
|
-
async listBackendsAsync() {
|
|
816
|
-
return this.client.request(
|
|
817
|
-
HAEXTENSION_METHODS.filesync.listBackends
|
|
818
|
-
);
|
|
819
|
-
}
|
|
820
|
-
/**
|
|
821
|
-
* Add a new storage backend
|
|
822
|
-
*/
|
|
823
|
-
async addBackendAsync(options) {
|
|
824
|
-
return this.client.request(
|
|
825
|
-
HAEXTENSION_METHODS.filesync.addBackend,
|
|
826
|
-
options
|
|
732
|
+
HAEXTENSION_METHODS.filesystem.writeFile,
|
|
733
|
+
{ path, data: base64 }
|
|
827
734
|
);
|
|
828
735
|
}
|
|
829
736
|
/**
|
|
830
|
-
*
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
await this.client.request(HAEXTENSION_METHODS.filesync.removeBackend, {
|
|
834
|
-
backendId
|
|
835
|
-
});
|
|
836
|
-
}
|
|
837
|
-
/**
|
|
838
|
-
* Test backend connection
|
|
737
|
+
* Read directory contents
|
|
738
|
+
* @param path Absolute path to the directory
|
|
739
|
+
* @returns Array of directory entries
|
|
839
740
|
*/
|
|
840
|
-
async
|
|
741
|
+
async readDir(path) {
|
|
841
742
|
return this.client.request(
|
|
842
|
-
HAEXTENSION_METHODS.
|
|
843
|
-
{
|
|
743
|
+
HAEXTENSION_METHODS.filesystem.readDir,
|
|
744
|
+
{ path }
|
|
844
745
|
);
|
|
845
746
|
}
|
|
846
|
-
// --------------------------------------------------------------------------
|
|
847
|
-
// Sync Rules
|
|
848
|
-
// --------------------------------------------------------------------------
|
|
849
747
|
/**
|
|
850
|
-
*
|
|
748
|
+
* Create a directory (and parent directories if needed)
|
|
749
|
+
* @param path Absolute path to create
|
|
851
750
|
*/
|
|
852
|
-
async
|
|
853
|
-
|
|
854
|
-
HAEXTENSION_METHODS.
|
|
751
|
+
async mkdir(path) {
|
|
752
|
+
await this.client.request(
|
|
753
|
+
HAEXTENSION_METHODS.filesystem.mkdir,
|
|
754
|
+
{ path }
|
|
855
755
|
);
|
|
856
756
|
}
|
|
857
757
|
/**
|
|
858
|
-
*
|
|
758
|
+
* Remove a file or directory
|
|
759
|
+
* @param path Absolute path to remove
|
|
760
|
+
* @param recursive If true, remove directories recursively
|
|
859
761
|
*/
|
|
860
|
-
async
|
|
861
|
-
|
|
862
|
-
HAEXTENSION_METHODS.
|
|
863
|
-
|
|
762
|
+
async remove(path, recursive = false) {
|
|
763
|
+
await this.client.request(
|
|
764
|
+
HAEXTENSION_METHODS.filesystem.remove,
|
|
765
|
+
{ path, recursive }
|
|
864
766
|
);
|
|
865
767
|
}
|
|
866
768
|
/**
|
|
867
|
-
*
|
|
769
|
+
* Check if a path exists
|
|
770
|
+
* @param path Absolute path to check
|
|
771
|
+
* @returns True if the path exists
|
|
868
772
|
*/
|
|
869
|
-
async
|
|
773
|
+
async exists(path) {
|
|
870
774
|
return this.client.request(
|
|
871
|
-
HAEXTENSION_METHODS.
|
|
872
|
-
|
|
775
|
+
HAEXTENSION_METHODS.filesystem.exists,
|
|
776
|
+
{ path }
|
|
873
777
|
);
|
|
874
778
|
}
|
|
875
779
|
/**
|
|
876
|
-
*
|
|
780
|
+
* Get file/directory metadata
|
|
781
|
+
* @param path Absolute path
|
|
782
|
+
* @returns File metadata
|
|
877
783
|
*/
|
|
878
|
-
async
|
|
879
|
-
await this.client.request(HAEXTENSION_METHODS.filesync.removeSyncRule, {
|
|
880
|
-
ruleId
|
|
881
|
-
});
|
|
882
|
-
}
|
|
883
|
-
// --------------------------------------------------------------------------
|
|
884
|
-
// Sync Operations
|
|
885
|
-
// --------------------------------------------------------------------------
|
|
886
|
-
/**
|
|
887
|
-
* Get current sync status
|
|
888
|
-
*/
|
|
889
|
-
async getSyncStatusAsync() {
|
|
784
|
+
async stat(path) {
|
|
890
785
|
return this.client.request(
|
|
891
|
-
HAEXTENSION_METHODS.
|
|
786
|
+
HAEXTENSION_METHODS.filesystem.stat,
|
|
787
|
+
{ path }
|
|
892
788
|
);
|
|
893
789
|
}
|
|
894
|
-
/**
|
|
895
|
-
* Trigger a manual sync
|
|
896
|
-
*/
|
|
897
|
-
async triggerSyncAsync() {
|
|
898
|
-
await this.client.request(HAEXTENSION_METHODS.filesync.triggerSync);
|
|
899
|
-
}
|
|
900
|
-
/**
|
|
901
|
-
* Pause syncing
|
|
902
|
-
*/
|
|
903
|
-
async pauseSyncAsync() {
|
|
904
|
-
await this.client.request(HAEXTENSION_METHODS.filesync.pauseSync);
|
|
905
|
-
}
|
|
906
|
-
/**
|
|
907
|
-
* Resume syncing
|
|
908
|
-
*/
|
|
909
|
-
async resumeSyncAsync() {
|
|
910
|
-
await this.client.request(HAEXTENSION_METHODS.filesync.resumeSync);
|
|
911
|
-
}
|
|
912
|
-
// --------------------------------------------------------------------------
|
|
913
|
-
// Conflict Resolution
|
|
914
|
-
// --------------------------------------------------------------------------
|
|
915
|
-
/**
|
|
916
|
-
* Resolve a file conflict
|
|
917
|
-
*/
|
|
918
|
-
async resolveConflictAsync(fileId, resolution) {
|
|
919
|
-
await this.client.request(HAEXTENSION_METHODS.filesync.resolveConflict, {
|
|
920
|
-
fileId,
|
|
921
|
-
resolution
|
|
922
|
-
});
|
|
923
|
-
}
|
|
924
|
-
// --------------------------------------------------------------------------
|
|
925
|
-
// Folder Selection (Native Dialog)
|
|
926
|
-
// --------------------------------------------------------------------------
|
|
927
790
|
/**
|
|
928
791
|
* Open a folder selection dialog
|
|
792
|
+
* @param options Dialog options
|
|
793
|
+
* @returns Selected folder path, or null if cancelled
|
|
929
794
|
*/
|
|
930
|
-
async
|
|
931
|
-
return this.client.request(
|
|
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) {
|
|
795
|
+
async selectFolder(options = {}) {
|
|
942
796
|
return this.client.request(
|
|
943
|
-
HAEXTENSION_METHODS.
|
|
797
|
+
HAEXTENSION_METHODS.filesystem.selectFolder,
|
|
944
798
|
options
|
|
945
799
|
);
|
|
946
800
|
}
|
|
947
801
|
/**
|
|
948
|
-
*
|
|
802
|
+
* Open a file selection dialog
|
|
803
|
+
* @param options Dialog options
|
|
804
|
+
* @returns Selected file paths, or null if cancelled
|
|
949
805
|
*/
|
|
950
|
-
async
|
|
806
|
+
async selectFile(options = {}) {
|
|
951
807
|
return this.client.request(
|
|
952
|
-
HAEXTENSION_METHODS.
|
|
808
|
+
HAEXTENSION_METHODS.filesystem.selectFile,
|
|
953
809
|
options
|
|
954
810
|
);
|
|
955
811
|
}
|
|
956
812
|
/**
|
|
957
|
-
*
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
return this.client.request(
|
|
961
|
-
HAEXTENSION_METHODS.filesync.getQueueSummary
|
|
962
|
-
);
|
|
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)
|
|
813
|
+
* Rename/move a file or directory
|
|
814
|
+
* @param from Source path
|
|
815
|
+
* @param to Destination path
|
|
1013
816
|
*/
|
|
1014
|
-
async
|
|
1015
|
-
await this.client.request(
|
|
1016
|
-
|
|
1017
|
-
}
|
|
1018
|
-
|
|
1019
|
-
// src/api/filesystem.ts
|
|
1020
|
-
var FilesystemAPI = class {
|
|
1021
|
-
constructor(client) {
|
|
1022
|
-
this.client = client;
|
|
1023
|
-
this.sync = new FileSyncAPI(client);
|
|
1024
|
-
}
|
|
1025
|
-
/**
|
|
1026
|
-
* Opens a save file dialog and saves the provided data to the selected location
|
|
1027
|
-
* @param data The file data as Uint8Array
|
|
1028
|
-
* @param options Options for the save dialog
|
|
1029
|
-
* @returns The path where the file was saved, or null if cancelled
|
|
1030
|
-
*/
|
|
1031
|
-
async saveFileAsync(data, options = {}) {
|
|
1032
|
-
const result = await this.client.request(
|
|
1033
|
-
HAEXTENSION_METHODS.filesystem.saveFile,
|
|
1034
|
-
{
|
|
1035
|
-
data: Array.from(data),
|
|
1036
|
-
// Convert Uint8Array to regular array for postMessage
|
|
1037
|
-
defaultPath: options.defaultPath,
|
|
1038
|
-
title: options.title,
|
|
1039
|
-
filters: options.filters
|
|
1040
|
-
}
|
|
1041
|
-
);
|
|
1042
|
-
return result;
|
|
1043
|
-
}
|
|
1044
|
-
/**
|
|
1045
|
-
* Opens a file with the system's default viewer
|
|
1046
|
-
* @param data The file data as Uint8Array
|
|
1047
|
-
* @param options Options for opening the file
|
|
1048
|
-
* @returns The result of the operation
|
|
1049
|
-
*/
|
|
1050
|
-
async openFileAsync(data, options) {
|
|
1051
|
-
const result = await this.client.request(
|
|
1052
|
-
HAEXTENSION_METHODS.filesystem.openFile,
|
|
1053
|
-
{
|
|
1054
|
-
data: Array.from(data),
|
|
1055
|
-
// Convert Uint8Array to regular array for postMessage
|
|
1056
|
-
fileName: options.fileName,
|
|
1057
|
-
mimeType: options.mimeType
|
|
1058
|
-
}
|
|
817
|
+
async rename(from, to) {
|
|
818
|
+
await this.client.request(
|
|
819
|
+
HAEXTENSION_METHODS.filesystem.rename,
|
|
820
|
+
{ from, to }
|
|
1059
821
|
);
|
|
1060
|
-
return result;
|
|
1061
822
|
}
|
|
1062
823
|
/**
|
|
1063
|
-
*
|
|
1064
|
-
*
|
|
1065
|
-
*
|
|
1066
|
-
* @param options Options containing the data URL
|
|
1067
|
-
* @returns The result of the operation
|
|
824
|
+
* Copy a file
|
|
825
|
+
* @param from Source path
|
|
826
|
+
* @param to Destination path
|
|
1068
827
|
*/
|
|
1069
|
-
async
|
|
1070
|
-
|
|
1071
|
-
HAEXTENSION_METHODS.filesystem.
|
|
1072
|
-
{
|
|
1073
|
-
dataUrl: options.dataUrl
|
|
1074
|
-
}
|
|
828
|
+
async copy(from, to) {
|
|
829
|
+
await this.client.request(
|
|
830
|
+
HAEXTENSION_METHODS.filesystem.copy,
|
|
831
|
+
{ from, to }
|
|
1075
832
|
);
|
|
1076
|
-
return result;
|
|
1077
833
|
}
|
|
1078
834
|
};
|
|
1079
835
|
|
|
@@ -1569,7 +1325,20 @@ var TAURI_COMMANDS = {
|
|
|
1569
1325
|
filesystem: {
|
|
1570
1326
|
saveFile: "webview_extension_fs_save_file",
|
|
1571
1327
|
openFile: "webview_extension_fs_open_file",
|
|
1572
|
-
showImage: "webview_extension_fs_show_image"
|
|
1328
|
+
showImage: "webview_extension_fs_show_image",
|
|
1329
|
+
// Generic filesystem operations (no webview_ prefix because they're global)
|
|
1330
|
+
// Permission checks happen in the message handler layer
|
|
1331
|
+
readFile: "filesystem_read_file",
|
|
1332
|
+
writeFile: "filesystem_write_file",
|
|
1333
|
+
readDir: "filesystem_read_dir",
|
|
1334
|
+
mkdir: "filesystem_mkdir",
|
|
1335
|
+
remove: "filesystem_remove",
|
|
1336
|
+
exists: "filesystem_exists",
|
|
1337
|
+
stat: "filesystem_stat",
|
|
1338
|
+
selectFolder: "filesystem_select_folder",
|
|
1339
|
+
selectFile: "filesystem_select_file",
|
|
1340
|
+
rename: "filesystem_rename",
|
|
1341
|
+
copy: "filesystem_copy"
|
|
1573
1342
|
},
|
|
1574
1343
|
external: {
|
|
1575
1344
|
// Response handling (called by extensions running in WebView)
|
|
@@ -2857,6 +2626,6 @@ function createHaexVaultSdk(config = {}) {
|
|
|
2857
2626
|
return new HaexVaultSdk(config);
|
|
2858
2627
|
}
|
|
2859
2628
|
|
|
2860
|
-
export {
|
|
2629
|
+
export { DEFAULT_TIMEOUT, DatabaseAPI, EXTERNAL_EVENTS, ErrorCode, ExternalConnectionErrorCode, ExternalConnectionState, FilesystemAPI, HAEXSPACE_MESSAGE_TYPES, HAEXTENSION_EVENTS, HAEXTENSION_METHODS, HaexVaultSdk, HaexVaultSdkError, PermissionStatus, PermissionsAPI, RemoteStorageAPI, 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 };
|
|
2861
2630
|
//# sourceMappingURL=index.mjs.map
|
|
2862
2631
|
//# sourceMappingURL=index.mjs.map
|