@haex-space/vault-sdk 2.3.14 → 2.3.16
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-BdeVsDdi.d.mts → client-8eGxojZ1.d.mts} +197 -2
- package/dist/{client-Ctv_qXuk.d.ts → client-ChH7wiuU.d.ts} +197 -2
- package/dist/index.d.mts +37 -3
- package/dist/index.d.ts +37 -3
- package/dist/index.js +274 -4
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +272 -5
- 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 +235 -4
- package/dist/react.js.map +1 -1
- package/dist/react.mjs +235 -4
- 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 +235 -4
- package/dist/runtime/nuxt.plugin.client.js.map +1 -1
- package/dist/runtime/nuxt.plugin.client.mjs +235 -4
- 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 +235 -4
- package/dist/svelte.js.map +1 -1
- package/dist/svelte.mjs +235 -4
- 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 +235 -4
- package/dist/vue.js.map +1 -1
- package/dist/vue.mjs +235 -4
- package/dist/vue.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -394,7 +394,37 @@ var HAEXTENSION_METHODS = {
|
|
|
394
394
|
filesystem: {
|
|
395
395
|
saveFile: "haextension:filesystem:save-file",
|
|
396
396
|
openFile: "haextension:filesystem:open-file",
|
|
397
|
-
showImage: "haextension:filesystem:show-image"
|
|
397
|
+
showImage: "haextension:filesystem:show-image",
|
|
398
|
+
sync: {
|
|
399
|
+
// Spaces
|
|
400
|
+
listSpaces: "haextension:filesystem:sync:list-spaces",
|
|
401
|
+
createSpace: "haextension:filesystem:sync:create-space",
|
|
402
|
+
deleteSpace: "haextension:filesystem:sync:delete-space",
|
|
403
|
+
// Files
|
|
404
|
+
listFiles: "haextension:filesystem:sync:list-files",
|
|
405
|
+
getFile: "haextension:filesystem:sync:get-file",
|
|
406
|
+
uploadFile: "haextension:filesystem:sync:upload-file",
|
|
407
|
+
downloadFile: "haextension:filesystem:sync:download-file",
|
|
408
|
+
deleteFile: "haextension:filesystem:sync:delete-file",
|
|
409
|
+
// Backends
|
|
410
|
+
listBackends: "haextension:filesystem:sync:list-backends",
|
|
411
|
+
addBackend: "haextension:filesystem:sync:add-backend",
|
|
412
|
+
removeBackend: "haextension:filesystem:sync:remove-backend",
|
|
413
|
+
testBackend: "haextension:filesystem:sync:test-backend",
|
|
414
|
+
// Sync Rules
|
|
415
|
+
listSyncRules: "haextension:filesystem:sync:list-sync-rules",
|
|
416
|
+
addSyncRule: "haextension:filesystem:sync:add-sync-rule",
|
|
417
|
+
removeSyncRule: "haextension:filesystem:sync:remove-sync-rule",
|
|
418
|
+
// Sync Operations
|
|
419
|
+
getSyncStatus: "haextension:filesystem:sync:get-sync-status",
|
|
420
|
+
triggerSync: "haextension:filesystem:sync:trigger-sync",
|
|
421
|
+
pauseSync: "haextension:filesystem:sync:pause-sync",
|
|
422
|
+
resumeSync: "haextension:filesystem:sync:resume-sync",
|
|
423
|
+
// Conflict Resolution
|
|
424
|
+
resolveConflict: "haextension:filesystem:sync:resolve-conflict",
|
|
425
|
+
// UI Helpers
|
|
426
|
+
selectFolder: "haextension:filesystem:sync:select-folder"
|
|
427
|
+
}
|
|
398
428
|
},
|
|
399
429
|
storage: {
|
|
400
430
|
getItem: "haextension:storage:get-item",
|
|
@@ -590,10 +620,210 @@ var DatabaseAPI = class {
|
|
|
590
620
|
}
|
|
591
621
|
};
|
|
592
622
|
|
|
623
|
+
// src/api/filesync.ts
|
|
624
|
+
var FileSyncAPI = class {
|
|
625
|
+
constructor(client) {
|
|
626
|
+
this.client = client;
|
|
627
|
+
}
|
|
628
|
+
// --------------------------------------------------------------------------
|
|
629
|
+
// Spaces
|
|
630
|
+
// --------------------------------------------------------------------------
|
|
631
|
+
/**
|
|
632
|
+
* List all file spaces
|
|
633
|
+
*/
|
|
634
|
+
async listSpacesAsync() {
|
|
635
|
+
return this.client.request(
|
|
636
|
+
HAEXTENSION_METHODS.filesystem.sync.listSpaces
|
|
637
|
+
);
|
|
638
|
+
}
|
|
639
|
+
/**
|
|
640
|
+
* Create a new file space
|
|
641
|
+
*/
|
|
642
|
+
async createSpaceAsync(options) {
|
|
643
|
+
return this.client.request(
|
|
644
|
+
HAEXTENSION_METHODS.filesystem.sync.createSpace,
|
|
645
|
+
options
|
|
646
|
+
);
|
|
647
|
+
}
|
|
648
|
+
/**
|
|
649
|
+
* Delete a file space
|
|
650
|
+
*/
|
|
651
|
+
async deleteSpaceAsync(spaceId) {
|
|
652
|
+
await this.client.request(HAEXTENSION_METHODS.filesystem.sync.deleteSpace, {
|
|
653
|
+
spaceId
|
|
654
|
+
});
|
|
655
|
+
}
|
|
656
|
+
// --------------------------------------------------------------------------
|
|
657
|
+
// Files
|
|
658
|
+
// --------------------------------------------------------------------------
|
|
659
|
+
/**
|
|
660
|
+
* List files in a space
|
|
661
|
+
*/
|
|
662
|
+
async listFilesAsync(options) {
|
|
663
|
+
return this.client.request(
|
|
664
|
+
HAEXTENSION_METHODS.filesystem.sync.listFiles,
|
|
665
|
+
options
|
|
666
|
+
);
|
|
667
|
+
}
|
|
668
|
+
/**
|
|
669
|
+
* Get file info by ID
|
|
670
|
+
*/
|
|
671
|
+
async getFileAsync(fileId) {
|
|
672
|
+
return this.client.request(
|
|
673
|
+
HAEXTENSION_METHODS.filesystem.sync.getFile,
|
|
674
|
+
{ fileId }
|
|
675
|
+
);
|
|
676
|
+
}
|
|
677
|
+
/**
|
|
678
|
+
* Upload a file to the sync system
|
|
679
|
+
*/
|
|
680
|
+
async uploadFileAsync(options) {
|
|
681
|
+
return this.client.request(
|
|
682
|
+
HAEXTENSION_METHODS.filesystem.sync.uploadFile,
|
|
683
|
+
options
|
|
684
|
+
);
|
|
685
|
+
}
|
|
686
|
+
/**
|
|
687
|
+
* Download a file to local storage
|
|
688
|
+
*/
|
|
689
|
+
async downloadFileAsync(options) {
|
|
690
|
+
await this.client.request(
|
|
691
|
+
HAEXTENSION_METHODS.filesystem.sync.downloadFile,
|
|
692
|
+
options
|
|
693
|
+
);
|
|
694
|
+
}
|
|
695
|
+
/**
|
|
696
|
+
* Delete a file from the sync system
|
|
697
|
+
*/
|
|
698
|
+
async deleteFileAsync(fileId) {
|
|
699
|
+
await this.client.request(HAEXTENSION_METHODS.filesystem.sync.deleteFile, {
|
|
700
|
+
fileId
|
|
701
|
+
});
|
|
702
|
+
}
|
|
703
|
+
// --------------------------------------------------------------------------
|
|
704
|
+
// Storage Backends
|
|
705
|
+
// --------------------------------------------------------------------------
|
|
706
|
+
/**
|
|
707
|
+
* List configured storage backends
|
|
708
|
+
*/
|
|
709
|
+
async listBackendsAsync() {
|
|
710
|
+
return this.client.request(
|
|
711
|
+
HAEXTENSION_METHODS.filesystem.sync.listBackends
|
|
712
|
+
);
|
|
713
|
+
}
|
|
714
|
+
/**
|
|
715
|
+
* Add a new storage backend
|
|
716
|
+
*/
|
|
717
|
+
async addBackendAsync(options) {
|
|
718
|
+
return this.client.request(
|
|
719
|
+
HAEXTENSION_METHODS.filesystem.sync.addBackend,
|
|
720
|
+
options
|
|
721
|
+
);
|
|
722
|
+
}
|
|
723
|
+
/**
|
|
724
|
+
* Remove a storage backend
|
|
725
|
+
*/
|
|
726
|
+
async removeBackendAsync(backendId) {
|
|
727
|
+
await this.client.request(HAEXTENSION_METHODS.filesystem.sync.removeBackend, {
|
|
728
|
+
backendId
|
|
729
|
+
});
|
|
730
|
+
}
|
|
731
|
+
/**
|
|
732
|
+
* Test backend connection
|
|
733
|
+
*/
|
|
734
|
+
async testBackendAsync(backendId) {
|
|
735
|
+
return this.client.request(
|
|
736
|
+
HAEXTENSION_METHODS.filesystem.sync.testBackend,
|
|
737
|
+
{ backendId }
|
|
738
|
+
);
|
|
739
|
+
}
|
|
740
|
+
// --------------------------------------------------------------------------
|
|
741
|
+
// Sync Rules
|
|
742
|
+
// --------------------------------------------------------------------------
|
|
743
|
+
/**
|
|
744
|
+
* List sync rules
|
|
745
|
+
*/
|
|
746
|
+
async listSyncRulesAsync() {
|
|
747
|
+
return this.client.request(
|
|
748
|
+
HAEXTENSION_METHODS.filesystem.sync.listSyncRules
|
|
749
|
+
);
|
|
750
|
+
}
|
|
751
|
+
/**
|
|
752
|
+
* Add a sync rule
|
|
753
|
+
*/
|
|
754
|
+
async addSyncRuleAsync(options) {
|
|
755
|
+
return this.client.request(
|
|
756
|
+
HAEXTENSION_METHODS.filesystem.sync.addSyncRule,
|
|
757
|
+
options
|
|
758
|
+
);
|
|
759
|
+
}
|
|
760
|
+
/**
|
|
761
|
+
* Remove a sync rule
|
|
762
|
+
*/
|
|
763
|
+
async removeSyncRuleAsync(ruleId) {
|
|
764
|
+
await this.client.request(HAEXTENSION_METHODS.filesystem.sync.removeSyncRule, {
|
|
765
|
+
ruleId
|
|
766
|
+
});
|
|
767
|
+
}
|
|
768
|
+
// --------------------------------------------------------------------------
|
|
769
|
+
// Sync Operations
|
|
770
|
+
// --------------------------------------------------------------------------
|
|
771
|
+
/**
|
|
772
|
+
* Get current sync status
|
|
773
|
+
*/
|
|
774
|
+
async getSyncStatusAsync() {
|
|
775
|
+
return this.client.request(
|
|
776
|
+
HAEXTENSION_METHODS.filesystem.sync.getSyncStatus
|
|
777
|
+
);
|
|
778
|
+
}
|
|
779
|
+
/**
|
|
780
|
+
* Trigger a manual sync
|
|
781
|
+
*/
|
|
782
|
+
async triggerSyncAsync() {
|
|
783
|
+
await this.client.request(HAEXTENSION_METHODS.filesystem.sync.triggerSync);
|
|
784
|
+
}
|
|
785
|
+
/**
|
|
786
|
+
* Pause syncing
|
|
787
|
+
*/
|
|
788
|
+
async pauseSyncAsync() {
|
|
789
|
+
await this.client.request(HAEXTENSION_METHODS.filesystem.sync.pauseSync);
|
|
790
|
+
}
|
|
791
|
+
/**
|
|
792
|
+
* Resume syncing
|
|
793
|
+
*/
|
|
794
|
+
async resumeSyncAsync() {
|
|
795
|
+
await this.client.request(HAEXTENSION_METHODS.filesystem.sync.resumeSync);
|
|
796
|
+
}
|
|
797
|
+
// --------------------------------------------------------------------------
|
|
798
|
+
// Conflict Resolution
|
|
799
|
+
// --------------------------------------------------------------------------
|
|
800
|
+
/**
|
|
801
|
+
* Resolve a file conflict
|
|
802
|
+
*/
|
|
803
|
+
async resolveConflictAsync(fileId, resolution) {
|
|
804
|
+
await this.client.request(HAEXTENSION_METHODS.filesystem.sync.resolveConflict, {
|
|
805
|
+
fileId,
|
|
806
|
+
resolution
|
|
807
|
+
});
|
|
808
|
+
}
|
|
809
|
+
// --------------------------------------------------------------------------
|
|
810
|
+
// Folder Selection (Native Dialog)
|
|
811
|
+
// --------------------------------------------------------------------------
|
|
812
|
+
/**
|
|
813
|
+
* Open a folder selection dialog
|
|
814
|
+
*/
|
|
815
|
+
async selectFolderAsync() {
|
|
816
|
+
return this.client.request(
|
|
817
|
+
HAEXTENSION_METHODS.filesystem.sync.selectFolder
|
|
818
|
+
);
|
|
819
|
+
}
|
|
820
|
+
};
|
|
821
|
+
|
|
593
822
|
// src/api/filesystem.ts
|
|
594
823
|
var FilesystemAPI = class {
|
|
595
824
|
constructor(client) {
|
|
596
825
|
this.client = client;
|
|
826
|
+
this.sync = new FileSyncAPI(client);
|
|
597
827
|
}
|
|
598
828
|
/**
|
|
599
829
|
* Opens a save file dialog and saves the provided data to the selected location
|
|
@@ -1117,11 +1347,12 @@ var HaexVaultClient = class {
|
|
|
1117
1347
|
async respondToExternalRequest(response) {
|
|
1118
1348
|
await this.request("external.respond", response);
|
|
1119
1349
|
}
|
|
1120
|
-
async request(method, params
|
|
1350
|
+
async request(method, params) {
|
|
1351
|
+
const resolvedParams = params ?? {};
|
|
1121
1352
|
if (this.isNativeWindow && typeof window.__TAURI__ !== "undefined") {
|
|
1122
|
-
return this.invoke(method,
|
|
1353
|
+
return this.invoke(method, resolvedParams);
|
|
1123
1354
|
}
|
|
1124
|
-
return this.postMessage(method,
|
|
1355
|
+
return this.postMessage(method, resolvedParams);
|
|
1125
1356
|
}
|
|
1126
1357
|
async postMessage(method, params) {
|
|
1127
1358
|
const requestId = this.generateRequestId();
|
|
@@ -1749,6 +1980,42 @@ async function encryptCrdtData(data, vaultKey) {
|
|
|
1749
1980
|
nonce: arrayBufferToBase64(nonce)
|
|
1750
1981
|
};
|
|
1751
1982
|
}
|
|
1983
|
+
async function wrapKey(keyToWrap, wrappingKey) {
|
|
1984
|
+
const cryptoKey = await crypto.subtle.importKey(
|
|
1985
|
+
"raw",
|
|
1986
|
+
new Uint8Array(wrappingKey),
|
|
1987
|
+
{ name: ALGORITHM },
|
|
1988
|
+
false,
|
|
1989
|
+
["encrypt"]
|
|
1990
|
+
);
|
|
1991
|
+
const nonce = crypto.getRandomValues(new Uint8Array(12));
|
|
1992
|
+
const ciphertext = await crypto.subtle.encrypt(
|
|
1993
|
+
{ name: ALGORITHM, iv: nonce },
|
|
1994
|
+
cryptoKey,
|
|
1995
|
+
new Uint8Array(keyToWrap)
|
|
1996
|
+
);
|
|
1997
|
+
const result = new Uint8Array(12 + ciphertext.byteLength);
|
|
1998
|
+
result.set(nonce, 0);
|
|
1999
|
+
result.set(new Uint8Array(ciphertext), 12);
|
|
2000
|
+
return result;
|
|
2001
|
+
}
|
|
2002
|
+
async function unwrapKey(wrappedKey, wrappingKey) {
|
|
2003
|
+
const cryptoKey = await crypto.subtle.importKey(
|
|
2004
|
+
"raw",
|
|
2005
|
+
new Uint8Array(wrappingKey),
|
|
2006
|
+
{ name: ALGORITHM },
|
|
2007
|
+
false,
|
|
2008
|
+
["decrypt"]
|
|
2009
|
+
);
|
|
2010
|
+
const nonce = wrappedKey.slice(0, 12);
|
|
2011
|
+
const ciphertext = wrappedKey.slice(12);
|
|
2012
|
+
const plaintext = await crypto.subtle.decrypt(
|
|
2013
|
+
{ name: ALGORITHM, iv: nonce },
|
|
2014
|
+
cryptoKey,
|
|
2015
|
+
ciphertext
|
|
2016
|
+
);
|
|
2017
|
+
return new Uint8Array(plaintext);
|
|
2018
|
+
}
|
|
1752
2019
|
async function decryptCrdtData(encryptedData, nonce, vaultKey) {
|
|
1753
2020
|
const vaultKeyBuffer = new Uint8Array(vaultKey);
|
|
1754
2021
|
const cryptoKey = await crypto.subtle.importKey(
|
|
@@ -1808,6 +2075,7 @@ function createHaexVaultClient(config = {}) {
|
|
|
1808
2075
|
exports.DEFAULT_TIMEOUT = DEFAULT_TIMEOUT;
|
|
1809
2076
|
exports.DatabaseAPI = DatabaseAPI;
|
|
1810
2077
|
exports.ErrorCode = ErrorCode;
|
|
2078
|
+
exports.FileSyncAPI = FileSyncAPI;
|
|
1811
2079
|
exports.FilesystemAPI = FilesystemAPI;
|
|
1812
2080
|
exports.HAEXSPACE_MESSAGE_TYPES = HAEXSPACE_MESSAGE_TYPES;
|
|
1813
2081
|
exports.HAEXTENSION_EVENTS = HAEXTENSION_EVENTS;
|
|
@@ -1839,6 +2107,8 @@ exports.installLocalStoragePolyfill = installLocalStoragePolyfill;
|
|
|
1839
2107
|
exports.installPolyfills = installPolyfills;
|
|
1840
2108
|
exports.installSessionStoragePolyfill = installSessionStoragePolyfill;
|
|
1841
2109
|
exports.sortObjectKeysRecursively = sortObjectKeysRecursively;
|
|
2110
|
+
exports.unwrapKey = unwrapKey;
|
|
1842
2111
|
exports.verifyExtensionSignature = verifyExtensionSignature;
|
|
2112
|
+
exports.wrapKey = wrapKey;
|
|
1843
2113
|
//# sourceMappingURL=index.js.map
|
|
1844
2114
|
//# sourceMappingURL=index.js.map
|