@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.
@@ -230,6 +230,33 @@ var DatabaseAPI = class {
230
230
  }
231
231
  };
232
232
 
233
+ // src/crypto/vaultKey.ts
234
+ function arrayBufferToBase64(buffer) {
235
+ const bytes = buffer instanceof Uint8Array ? buffer : new Uint8Array(buffer);
236
+ if (typeof Buffer !== "undefined") {
237
+ return Buffer.from(bytes).toString("base64");
238
+ }
239
+ let binary = "";
240
+ for (let i = 0; i < bytes.length; i++) {
241
+ const byte = bytes[i];
242
+ if (byte !== void 0) {
243
+ binary += String.fromCharCode(byte);
244
+ }
245
+ }
246
+ return btoa(binary);
247
+ }
248
+ function base64ToArrayBuffer(base64) {
249
+ if (typeof Buffer !== "undefined") {
250
+ return new Uint8Array(Buffer.from(base64, "base64"));
251
+ }
252
+ const binary = atob(base64);
253
+ const bytes = new Uint8Array(binary.length);
254
+ for (let i = 0; i < binary.length; i++) {
255
+ bytes[i] = binary.charCodeAt(i);
256
+ }
257
+ return bytes;
258
+ }
259
+
233
260
  // src/api/filesystem.ts
234
261
  var FilesystemAPI = class {
235
262
  constructor(client) {
@@ -301,12 +328,7 @@ var FilesystemAPI = class {
301
328
  HAEXTENSION_METHODS.filesystem.readFile,
302
329
  { path }
303
330
  );
304
- const binary = atob(base64);
305
- const bytes = new Uint8Array(binary.length);
306
- for (let i = 0; i < binary.length; i++) {
307
- bytes[i] = binary.charCodeAt(i);
308
- }
309
- return bytes;
331
+ return base64ToArrayBuffer(base64);
310
332
  }
311
333
  /**
312
334
  * Write file contents
@@ -314,7 +336,7 @@ var FilesystemAPI = class {
314
336
  * @param data File contents as Uint8Array
315
337
  */
316
338
  async writeFile(path, data) {
317
- const base64 = btoa(String.fromCharCode(...data));
339
+ const base64 = arrayBufferToBase64(data);
318
340
  await this.client.request(
319
341
  HAEXTENSION_METHODS.filesystem.writeFile,
320
342
  { path, data: base64 }
@@ -600,7 +622,7 @@ var RemoteStorageAPI = class {
600
622
  * @param data - Data to upload
601
623
  */
602
624
  async upload(backendId, key, data) {
603
- const base64 = btoa(String.fromCharCode(...data));
625
+ const base64 = arrayBufferToBase64(data);
604
626
  await this.client.request(HAEXTENSION_METHODS.remoteStorage.upload, {
605
627
  backendId,
606
628
  key,
@@ -618,12 +640,7 @@ var RemoteStorageAPI = class {
618
640
  HAEXTENSION_METHODS.remoteStorage.download,
619
641
  { backendId, key }
620
642
  );
621
- const binary = atob(base64);
622
- const bytes = new Uint8Array(binary.length);
623
- for (let i = 0; i < binary.length; i++) {
624
- bytes[i] = binary.charCodeAt(i);
625
- }
626
- return bytes;
643
+ return base64ToArrayBuffer(base64);
627
644
  }
628
645
  /**
629
646
  * Delete an object from a storage backend
@@ -986,7 +1003,21 @@ var TAURI_COMMANDS = {
986
1003
  filesystem: {
987
1004
  saveFile: "webview_extension_fs_save_file",
988
1005
  openFile: "webview_extension_fs_open_file",
989
- showImage: "webview_extension_fs_show_image"},
1006
+ showImage: "webview_extension_fs_show_image",
1007
+ // Generic filesystem operations (no webview_ prefix because they're global)
1008
+ // Permission checks happen in the message handler layer
1009
+ readFile: "filesystem_read_file",
1010
+ writeFile: "filesystem_write_file",
1011
+ readDir: "filesystem_read_dir",
1012
+ mkdir: "filesystem_mkdir",
1013
+ remove: "filesystem_remove",
1014
+ exists: "filesystem_exists",
1015
+ stat: "filesystem_stat",
1016
+ selectFolder: "filesystem_select_folder",
1017
+ selectFile: "filesystem_select_file",
1018
+ rename: "filesystem_rename",
1019
+ copy: "filesystem_copy"
1020
+ },
990
1021
  external: {
991
1022
  // Response handling (called by extensions running in WebView)
992
1023
  respond: "webview_extension_external_respond"},
@@ -1076,6 +1107,7 @@ var webHandlers = {
1076
1107
 
1077
1108
  // src/transport/handlers/filesystem.ts
1078
1109
  var filesystemHandlers = {
1110
+ // Legacy extension-specific operations
1079
1111
  [HAEXTENSION_METHODS.filesystem.saveFile]: {
1080
1112
  command: TAURI_COMMANDS.filesystem.saveFile,
1081
1113
  args: (p) => ({
@@ -1097,6 +1129,58 @@ var filesystemHandlers = {
1097
1129
  args: (p) => ({
1098
1130
  dataUrl: p.dataUrl
1099
1131
  })
1132
+ },
1133
+ // Generic filesystem operations
1134
+ [HAEXTENSION_METHODS.filesystem.readFile]: {
1135
+ command: TAURI_COMMANDS.filesystem.readFile,
1136
+ args: (p) => ({ path: p.path })
1137
+ },
1138
+ [HAEXTENSION_METHODS.filesystem.writeFile]: {
1139
+ command: TAURI_COMMANDS.filesystem.writeFile,
1140
+ args: (p) => ({ path: p.path, data: p.data })
1141
+ },
1142
+ [HAEXTENSION_METHODS.filesystem.readDir]: {
1143
+ command: TAURI_COMMANDS.filesystem.readDir,
1144
+ args: (p) => ({ path: p.path })
1145
+ },
1146
+ [HAEXTENSION_METHODS.filesystem.mkdir]: {
1147
+ command: TAURI_COMMANDS.filesystem.mkdir,
1148
+ args: (p) => ({ path: p.path })
1149
+ },
1150
+ [HAEXTENSION_METHODS.filesystem.remove]: {
1151
+ command: TAURI_COMMANDS.filesystem.remove,
1152
+ args: (p) => ({ path: p.path })
1153
+ },
1154
+ [HAEXTENSION_METHODS.filesystem.exists]: {
1155
+ command: TAURI_COMMANDS.filesystem.exists,
1156
+ args: (p) => ({ path: p.path })
1157
+ },
1158
+ [HAEXTENSION_METHODS.filesystem.stat]: {
1159
+ command: TAURI_COMMANDS.filesystem.stat,
1160
+ args: (p) => ({ path: p.path })
1161
+ },
1162
+ [HAEXTENSION_METHODS.filesystem.selectFolder]: {
1163
+ command: TAURI_COMMANDS.filesystem.selectFolder,
1164
+ args: (p) => ({
1165
+ title: p.title,
1166
+ defaultPath: p.defaultPath
1167
+ })
1168
+ },
1169
+ [HAEXTENSION_METHODS.filesystem.selectFile]: {
1170
+ command: TAURI_COMMANDS.filesystem.selectFile,
1171
+ args: (p) => ({
1172
+ title: p.title,
1173
+ defaultPath: p.defaultPath,
1174
+ filters: p.filters
1175
+ })
1176
+ },
1177
+ [HAEXTENSION_METHODS.filesystem.rename]: {
1178
+ command: TAURI_COMMANDS.filesystem.rename,
1179
+ args: (p) => ({ from: p.from, to: p.to })
1180
+ },
1181
+ [HAEXTENSION_METHODS.filesystem.copy]: {
1182
+ command: TAURI_COMMANDS.filesystem.copy,
1183
+ args: (p) => ({ from: p.from, to: p.to })
1100
1184
  }
1101
1185
  };
1102
1186