@haex-space/vault-sdk 2.5.49 → 2.5.52

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/react.js CHANGED
@@ -558,6 +558,33 @@ var DatabaseAPI = class {
558
558
  }
559
559
  };
560
560
 
561
+ // src/crypto/vaultKey.ts
562
+ function arrayBufferToBase64(buffer) {
563
+ const bytes = buffer instanceof Uint8Array ? buffer : new Uint8Array(buffer);
564
+ if (typeof Buffer !== "undefined") {
565
+ return Buffer.from(bytes).toString("base64");
566
+ }
567
+ let binary = "";
568
+ for (let i = 0; i < bytes.length; i++) {
569
+ const byte = bytes[i];
570
+ if (byte !== void 0) {
571
+ binary += String.fromCharCode(byte);
572
+ }
573
+ }
574
+ return btoa(binary);
575
+ }
576
+ function base64ToArrayBuffer(base64) {
577
+ if (typeof Buffer !== "undefined") {
578
+ return new Uint8Array(Buffer.from(base64, "base64"));
579
+ }
580
+ const binary = atob(base64);
581
+ const bytes = new Uint8Array(binary.length);
582
+ for (let i = 0; i < binary.length; i++) {
583
+ bytes[i] = binary.charCodeAt(i);
584
+ }
585
+ return bytes;
586
+ }
587
+
561
588
  // src/api/filesystem.ts
562
589
  var FilesystemAPI = class {
563
590
  constructor(client) {
@@ -629,12 +656,7 @@ var FilesystemAPI = class {
629
656
  HAEXTENSION_METHODS.filesystem.readFile,
630
657
  { path }
631
658
  );
632
- const binary = atob(base64);
633
- const bytes = new Uint8Array(binary.length);
634
- for (let i = 0; i < binary.length; i++) {
635
- bytes[i] = binary.charCodeAt(i);
636
- }
637
- return bytes;
659
+ return base64ToArrayBuffer(base64);
638
660
  }
639
661
  /**
640
662
  * Write file contents
@@ -642,7 +664,7 @@ var FilesystemAPI = class {
642
664
  * @param data File contents as Uint8Array
643
665
  */
644
666
  async writeFile(path, data) {
645
- const base64 = btoa(String.fromCharCode(...data));
667
+ const base64 = arrayBufferToBase64(data);
646
668
  await this.client.request(
647
669
  HAEXTENSION_METHODS.filesystem.writeFile,
648
670
  { path, data: base64 }
@@ -928,7 +950,7 @@ var RemoteStorageAPI = class {
928
950
  * @param data - Data to upload
929
951
  */
930
952
  async upload(backendId, key, data) {
931
- const base64 = btoa(String.fromCharCode(...data));
953
+ const base64 = arrayBufferToBase64(data);
932
954
  await this.client.request(HAEXTENSION_METHODS.remoteStorage.upload, {
933
955
  backendId,
934
956
  key,
@@ -946,12 +968,7 @@ var RemoteStorageAPI = class {
946
968
  HAEXTENSION_METHODS.remoteStorage.download,
947
969
  { backendId, key }
948
970
  );
949
- const binary = atob(base64);
950
- const bytes = new Uint8Array(binary.length);
951
- for (let i = 0; i < binary.length; i++) {
952
- bytes[i] = binary.charCodeAt(i);
953
- }
954
- return bytes;
971
+ return base64ToArrayBuffer(base64);
955
972
  }
956
973
  /**
957
974
  * Delete an object from a storage backend
@@ -1240,7 +1257,21 @@ var TAURI_COMMANDS = {
1240
1257
  filesystem: {
1241
1258
  saveFile: "webview_extension_fs_save_file",
1242
1259
  openFile: "webview_extension_fs_open_file",
1243
- showImage: "webview_extension_fs_show_image"},
1260
+ showImage: "webview_extension_fs_show_image",
1261
+ // Generic filesystem operations (no webview_ prefix because they're global)
1262
+ // Permission checks happen in the message handler layer
1263
+ readFile: "filesystem_read_file",
1264
+ writeFile: "filesystem_write_file",
1265
+ readDir: "filesystem_read_dir",
1266
+ mkdir: "filesystem_mkdir",
1267
+ remove: "filesystem_remove",
1268
+ exists: "filesystem_exists",
1269
+ stat: "filesystem_stat",
1270
+ selectFolder: "filesystem_select_folder",
1271
+ selectFile: "filesystem_select_file",
1272
+ rename: "filesystem_rename",
1273
+ copy: "filesystem_copy"
1274
+ },
1244
1275
  external: {
1245
1276
  // Response handling (called by extensions running in WebView)
1246
1277
  respond: "webview_extension_external_respond"},
@@ -1330,6 +1361,7 @@ var webHandlers = {
1330
1361
 
1331
1362
  // src/transport/handlers/filesystem.ts
1332
1363
  var filesystemHandlers = {
1364
+ // Legacy extension-specific operations
1333
1365
  [HAEXTENSION_METHODS.filesystem.saveFile]: {
1334
1366
  command: TAURI_COMMANDS.filesystem.saveFile,
1335
1367
  args: (p) => ({
@@ -1351,6 +1383,58 @@ var filesystemHandlers = {
1351
1383
  args: (p) => ({
1352
1384
  dataUrl: p.dataUrl
1353
1385
  })
1386
+ },
1387
+ // Generic filesystem operations
1388
+ [HAEXTENSION_METHODS.filesystem.readFile]: {
1389
+ command: TAURI_COMMANDS.filesystem.readFile,
1390
+ args: (p) => ({ path: p.path })
1391
+ },
1392
+ [HAEXTENSION_METHODS.filesystem.writeFile]: {
1393
+ command: TAURI_COMMANDS.filesystem.writeFile,
1394
+ args: (p) => ({ path: p.path, data: p.data })
1395
+ },
1396
+ [HAEXTENSION_METHODS.filesystem.readDir]: {
1397
+ command: TAURI_COMMANDS.filesystem.readDir,
1398
+ args: (p) => ({ path: p.path })
1399
+ },
1400
+ [HAEXTENSION_METHODS.filesystem.mkdir]: {
1401
+ command: TAURI_COMMANDS.filesystem.mkdir,
1402
+ args: (p) => ({ path: p.path })
1403
+ },
1404
+ [HAEXTENSION_METHODS.filesystem.remove]: {
1405
+ command: TAURI_COMMANDS.filesystem.remove,
1406
+ args: (p) => ({ path: p.path })
1407
+ },
1408
+ [HAEXTENSION_METHODS.filesystem.exists]: {
1409
+ command: TAURI_COMMANDS.filesystem.exists,
1410
+ args: (p) => ({ path: p.path })
1411
+ },
1412
+ [HAEXTENSION_METHODS.filesystem.stat]: {
1413
+ command: TAURI_COMMANDS.filesystem.stat,
1414
+ args: (p) => ({ path: p.path })
1415
+ },
1416
+ [HAEXTENSION_METHODS.filesystem.selectFolder]: {
1417
+ command: TAURI_COMMANDS.filesystem.selectFolder,
1418
+ args: (p) => ({
1419
+ title: p.title,
1420
+ defaultPath: p.defaultPath
1421
+ })
1422
+ },
1423
+ [HAEXTENSION_METHODS.filesystem.selectFile]: {
1424
+ command: TAURI_COMMANDS.filesystem.selectFile,
1425
+ args: (p) => ({
1426
+ title: p.title,
1427
+ defaultPath: p.defaultPath,
1428
+ filters: p.filters
1429
+ })
1430
+ },
1431
+ [HAEXTENSION_METHODS.filesystem.rename]: {
1432
+ command: TAURI_COMMANDS.filesystem.rename,
1433
+ args: (p) => ({ from: p.from, to: p.to })
1434
+ },
1435
+ [HAEXTENSION_METHODS.filesystem.copy]: {
1436
+ command: TAURI_COMMANDS.filesystem.copy,
1437
+ args: (p) => ({ from: p.from, to: p.to })
1354
1438
  }
1355
1439
  };
1356
1440