@haex-space/vault-sdk 2.5.58 → 2.5.60

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
@@ -471,61 +471,165 @@ var HaexVaultSdkError = class extends Error {
471
471
  }
472
472
  };
473
473
 
474
- // src/methods.ts
475
- var HAEXTENSION_METHODS = {
476
- context: {
477
- get: "haextension:context:get"
478
- },
479
- database: {
480
- query: "haextension:database:query",
481
- execute: "haextension:database:execute",
482
- transaction: "haextension:database:transaction",
483
- registerMigrations: "haextension:database:register-migrations"
484
- },
485
- filesystem: {
486
- saveFile: "haextension:filesystem:save-file",
487
- openFile: "haextension:filesystem:open-file",
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"
501
- },
502
- storage: {
503
- getItem: "haextension:storage:get-item",
504
- setItem: "haextension:storage:set-item",
505
- removeItem: "haextension:storage:remove-item",
506
- clear: "haextension:storage:clear",
507
- keys: "haextension:storage:keys"
508
- },
509
- // Remote Storage API (S3, WebDAV, FTP, etc.)
510
- remoteStorage: {
511
- // Backend Management
512
- listBackends: "haextension:remote-storage:list-backends",
513
- addBackend: "haextension:remote-storage:add-backend",
514
- updateBackend: "haextension:remote-storage:update-backend",
515
- removeBackend: "haextension:remote-storage:remove-backend",
516
- testBackend: "haextension:remote-storage:test-backend",
517
- // Storage Operations
518
- upload: "haextension:remote-storage:upload",
519
- download: "haextension:remote-storage:download",
520
- delete: "haextension:remote-storage:delete",
521
- list: "haextension:remote-storage:list"
522
- },
523
- web: {
524
- fetch: "haextension:web:fetch"
525
- },
526
- application: {
527
- open: "haextension:application:open"
528
- }
474
+ // src/commands/database.ts
475
+ var DATABASE_COMMANDS = {
476
+ /** Execute a SELECT query */
477
+ query: "extension_database_query",
478
+ /** Execute INSERT/UPDATE/DELETE statement */
479
+ execute: "extension_database_execute",
480
+ /** Execute multiple statements in a transaction */
481
+ transaction: "extension_database_transaction",
482
+ /** Register and apply database migrations */
483
+ registerMigrations: "extension_database_register_migrations"
484
+ };
485
+
486
+ // src/commands/permissions.ts
487
+ var PERMISSIONS_COMMANDS = {
488
+ /** Check web/fetch permission */
489
+ checkWeb: "extension_permissions_check_web",
490
+ /** Check database permission */
491
+ checkDatabase: "extension_permissions_check_database",
492
+ /** Check filesystem permission */
493
+ checkFilesystem: "extension_permissions_check_filesystem"
494
+ };
495
+
496
+ // src/commands/web.ts
497
+ var WEB_COMMANDS = {
498
+ /** Open URL in external browser */
499
+ open: "extension_web_open",
500
+ /** Make HTTP request (bypasses CORS) */
501
+ fetch: "extension_web_fetch"
502
+ };
503
+
504
+ // src/commands/webStorage.ts
505
+ var WEB_STORAGE_COMMANDS = {
506
+ /** Get item from storage */
507
+ getItem: "extension_web_storage_get_item",
508
+ /** Set item in storage */
509
+ setItem: "extension_web_storage_set_item",
510
+ /** Remove item from storage */
511
+ removeItem: "extension_web_storage_remove_item",
512
+ /** Clear all storage */
513
+ clear: "extension_web_storage_clear",
514
+ /** Get all storage keys */
515
+ keys: "extension_web_storage_keys"
516
+ };
517
+
518
+ // src/commands/filesystem.ts
519
+ var FILESYSTEM_COMMANDS = {
520
+ // Dialog commands
521
+ /** Show save file dialog */
522
+ saveFile: "extension_filesystem_save_file",
523
+ /** Show open file dialog */
524
+ openFile: "extension_filesystem_open_file",
525
+ /** Show image in native viewer */
526
+ showImage: "extension_filesystem_show_image",
527
+ // Generic filesystem operations
528
+ /** Read file contents as base64 */
529
+ readFile: "extension_filesystem_read_file",
530
+ /** Write base64 data to file */
531
+ writeFile: "extension_filesystem_write_file",
532
+ /** List directory contents */
533
+ readDir: "extension_filesystem_read_dir",
534
+ /** Create directory */
535
+ mkdir: "extension_filesystem_mkdir",
536
+ /** Remove file or directory */
537
+ remove: "extension_filesystem_remove",
538
+ /** Check if path exists */
539
+ exists: "extension_filesystem_exists",
540
+ /** Get file/directory metadata */
541
+ stat: "extension_filesystem_stat",
542
+ /** Show folder selection dialog */
543
+ selectFolder: "extension_filesystem_select_folder",
544
+ /** Show file selection dialog */
545
+ selectFile: "extension_filesystem_select_file",
546
+ /** Rename file or directory */
547
+ rename: "extension_filesystem_rename",
548
+ /** Copy file or directory */
549
+ copy: "extension_filesystem_copy"
550
+ };
551
+
552
+ // src/commands/externalBridge.ts
553
+ var EXTERNAL_BRIDGE_COMMANDS = {
554
+ // Response handling (called by extensions running in WebView)
555
+ /** Respond to an external request */
556
+ respond: "webview_extension_external_respond",
557
+ // Bridge server management
558
+ /** Start the external bridge server */
559
+ bridgeStart: "external_bridge_start",
560
+ /** Stop the external bridge server */
561
+ bridgeStop: "external_bridge_stop",
562
+ /** Get bridge server status */
563
+ bridgeGetStatus: "external_bridge_get_status",
564
+ // Client authorization (unified API with remember flag)
565
+ /** Allow a client connection */
566
+ clientAllow: "external_client_allow",
567
+ /** Block a client connection */
568
+ clientBlock: "external_client_block",
569
+ // Authorized clients management (permanent - stored in database)
570
+ /** Get list of authorized clients */
571
+ getAuthorizedClients: "external_get_authorized_clients",
572
+ /** Revoke client authorization */
573
+ revokeClient: "external_revoke_client",
574
+ // Session-based authorizations (temporary - cleared when haex-vault restarts)
575
+ /** Get session authorizations */
576
+ getSessionAuthorizations: "external_get_session_authorizations",
577
+ /** Revoke session authorization */
578
+ revokeSessionAuthorization: "external_revoke_session_authorization",
579
+ // Blocked clients management
580
+ /** Get list of blocked clients */
581
+ getBlockedClients: "external_get_blocked_clients",
582
+ /** Unblock a client */
583
+ unblockClient: "external_unblock_client",
584
+ /** Check if client is blocked */
585
+ isClientBlocked: "external_is_client_blocked",
586
+ // Pending authorizations
587
+ /** Get pending authorization requests */
588
+ getPendingAuthorizations: "external_get_pending_authorizations"
589
+ };
590
+
591
+ // src/commands/extension.ts
592
+ var EXTENSION_COMMANDS = {
593
+ /** Get extension info (manifest, id, etc.) */
594
+ getInfo: "extension_get_info",
595
+ /** Get application context (theme, locale, etc.) */
596
+ getContext: "extension_get_context"
597
+ };
598
+
599
+ // src/commands/remoteStorage.ts
600
+ var REMOTE_STORAGE_COMMANDS = {
601
+ // Backend Management
602
+ /** List all storage backends */
603
+ listBackends: "extension_remote_storage_list_backends",
604
+ /** Add a new storage backend */
605
+ addBackend: "extension_remote_storage_add_backend",
606
+ /** Update storage backend configuration */
607
+ updateBackend: "extension_remote_storage_update_backend",
608
+ /** Remove a storage backend */
609
+ removeBackend: "extension_remote_storage_remove_backend",
610
+ /** Test storage backend connection */
611
+ testBackend: "extension_remote_storage_test_backend",
612
+ // Storage Operations
613
+ /** Upload data to storage backend */
614
+ upload: "extension_remote_storage_upload",
615
+ /** Download data from storage backend */
616
+ download: "extension_remote_storage_download",
617
+ /** Delete object from storage backend */
618
+ delete: "extension_remote_storage_delete",
619
+ /** List objects in storage backend */
620
+ list: "extension_remote_storage_list"
621
+ };
622
+
623
+ // src/commands/index.ts
624
+ var TAURI_COMMANDS = {
625
+ database: DATABASE_COMMANDS,
626
+ permissions: PERMISSIONS_COMMANDS,
627
+ web: WEB_COMMANDS,
628
+ webStorage: WEB_STORAGE_COMMANDS,
629
+ filesystem: FILESYSTEM_COMMANDS,
630
+ externalBridge: EXTERNAL_BRIDGE_COMMANDS,
631
+ extension: EXTENSION_COMMANDS,
632
+ remoteStorage: REMOTE_STORAGE_COMMANDS
529
633
  };
530
634
 
531
635
  // src/api/storage.ts
@@ -534,19 +638,19 @@ var StorageAPI = class {
534
638
  this.client = client;
535
639
  }
536
640
  async getItem(key) {
537
- return this.client.request(HAEXTENSION_METHODS.storage.getItem, { key });
641
+ return this.client.request(WEB_STORAGE_COMMANDS.getItem, { key });
538
642
  }
539
643
  async setItem(key, value) {
540
- await this.client.request(HAEXTENSION_METHODS.storage.setItem, { key, value });
644
+ await this.client.request(WEB_STORAGE_COMMANDS.setItem, { key, value });
541
645
  }
542
646
  async removeItem(key) {
543
- await this.client.request(HAEXTENSION_METHODS.storage.removeItem, { key });
647
+ await this.client.request(WEB_STORAGE_COMMANDS.removeItem, { key });
544
648
  }
545
649
  async clear() {
546
- await this.client.request(HAEXTENSION_METHODS.storage.clear);
650
+ await this.client.request(WEB_STORAGE_COMMANDS.clear);
547
651
  }
548
652
  async keys() {
549
- return this.client.request(HAEXTENSION_METHODS.storage.keys);
653
+ return this.client.request(WEB_STORAGE_COMMANDS.keys);
550
654
  }
551
655
  };
552
656
 
@@ -557,7 +661,7 @@ var DatabaseAPI = class {
557
661
  }
558
662
  async query(query, params) {
559
663
  const result = await this.client.request(
560
- HAEXTENSION_METHODS.database.query,
664
+ DATABASE_COMMANDS.query,
561
665
  {
562
666
  query,
563
667
  params: params || []
@@ -570,13 +674,13 @@ var DatabaseAPI = class {
570
674
  return rows.length > 0 ? rows[0] ?? null : null;
571
675
  }
572
676
  async execute(query, params) {
573
- return this.client.request(HAEXTENSION_METHODS.database.execute, {
677
+ return this.client.request(DATABASE_COMMANDS.execute, {
574
678
  query,
575
679
  params: params || []
576
680
  });
577
681
  }
578
682
  async transaction(statements) {
579
- await this.client.request(HAEXTENSION_METHODS.database.transaction, {
683
+ await this.client.request(DATABASE_COMMANDS.transaction, {
580
684
  statements
581
685
  });
582
686
  }
@@ -604,7 +708,7 @@ var DatabaseAPI = class {
604
708
  */
605
709
  async registerMigrationsAsync(extensionVersion, migrations) {
606
710
  return this.client.request(
607
- HAEXTENSION_METHODS.database.registerMigrations,
711
+ DATABASE_COMMANDS.registerMigrations,
608
712
  {
609
713
  extensionVersion,
610
714
  migrations
@@ -875,7 +979,7 @@ var FilesystemAPI = class {
875
979
  */
876
980
  async saveFileAsync(data, options = {}) {
877
981
  const result = await this.client.request(
878
- HAEXTENSION_METHODS.filesystem.saveFile,
982
+ FILESYSTEM_COMMANDS.saveFile,
879
983
  {
880
984
  data: Array.from(data),
881
985
  // Convert Uint8Array to regular array for postMessage
@@ -894,7 +998,7 @@ var FilesystemAPI = class {
894
998
  */
895
999
  async openFileAsync(data, options) {
896
1000
  const result = await this.client.request(
897
- HAEXTENSION_METHODS.filesystem.openFile,
1001
+ FILESYSTEM_COMMANDS.openFile,
898
1002
  {
899
1003
  data: Array.from(data),
900
1004
  // Convert Uint8Array to regular array for postMessage
@@ -913,7 +1017,7 @@ var FilesystemAPI = class {
913
1017
  */
914
1018
  async showImageAsync(options) {
915
1019
  const result = await this.client.request(
916
- HAEXTENSION_METHODS.filesystem.showImage,
1020
+ FILESYSTEM_COMMANDS.showImage,
917
1021
  {
918
1022
  dataUrl: options.dataUrl
919
1023
  }
@@ -930,7 +1034,7 @@ var FilesystemAPI = class {
930
1034
  */
931
1035
  async readFile(path) {
932
1036
  const base64 = await this.client.request(
933
- HAEXTENSION_METHODS.filesystem.readFile,
1037
+ FILESYSTEM_COMMANDS.readFile,
934
1038
  { path }
935
1039
  );
936
1040
  return base64ToArrayBuffer(base64);
@@ -943,7 +1047,7 @@ var FilesystemAPI = class {
943
1047
  async writeFile(path, data) {
944
1048
  const base64 = arrayBufferToBase64(data);
945
1049
  await this.client.request(
946
- HAEXTENSION_METHODS.filesystem.writeFile,
1050
+ FILESYSTEM_COMMANDS.writeFile,
947
1051
  { path, data: base64 }
948
1052
  );
949
1053
  }
@@ -954,7 +1058,7 @@ var FilesystemAPI = class {
954
1058
  */
955
1059
  async readDir(path) {
956
1060
  return this.client.request(
957
- HAEXTENSION_METHODS.filesystem.readDir,
1061
+ FILESYSTEM_COMMANDS.readDir,
958
1062
  { path }
959
1063
  );
960
1064
  }
@@ -964,7 +1068,7 @@ var FilesystemAPI = class {
964
1068
  */
965
1069
  async mkdir(path) {
966
1070
  await this.client.request(
967
- HAEXTENSION_METHODS.filesystem.mkdir,
1071
+ FILESYSTEM_COMMANDS.mkdir,
968
1072
  { path }
969
1073
  );
970
1074
  }
@@ -975,7 +1079,7 @@ var FilesystemAPI = class {
975
1079
  */
976
1080
  async remove(path, recursive = false) {
977
1081
  await this.client.request(
978
- HAEXTENSION_METHODS.filesystem.remove,
1082
+ FILESYSTEM_COMMANDS.remove,
979
1083
  { path, recursive }
980
1084
  );
981
1085
  }
@@ -986,7 +1090,7 @@ var FilesystemAPI = class {
986
1090
  */
987
1091
  async exists(path) {
988
1092
  return this.client.request(
989
- HAEXTENSION_METHODS.filesystem.exists,
1093
+ FILESYSTEM_COMMANDS.exists,
990
1094
  { path }
991
1095
  );
992
1096
  }
@@ -997,7 +1101,7 @@ var FilesystemAPI = class {
997
1101
  */
998
1102
  async stat(path) {
999
1103
  return this.client.request(
1000
- HAEXTENSION_METHODS.filesystem.stat,
1104
+ FILESYSTEM_COMMANDS.stat,
1001
1105
  { path }
1002
1106
  );
1003
1107
  }
@@ -1008,7 +1112,7 @@ var FilesystemAPI = class {
1008
1112
  */
1009
1113
  async selectFolder(options = {}) {
1010
1114
  return this.client.request(
1011
- HAEXTENSION_METHODS.filesystem.selectFolder,
1115
+ FILESYSTEM_COMMANDS.selectFolder,
1012
1116
  options
1013
1117
  );
1014
1118
  }
@@ -1019,7 +1123,7 @@ var FilesystemAPI = class {
1019
1123
  */
1020
1124
  async selectFile(options = {}) {
1021
1125
  return this.client.request(
1022
- HAEXTENSION_METHODS.filesystem.selectFile,
1126
+ FILESYSTEM_COMMANDS.selectFile,
1023
1127
  options
1024
1128
  );
1025
1129
  }
@@ -1030,7 +1134,7 @@ var FilesystemAPI = class {
1030
1134
  */
1031
1135
  async rename(from, to) {
1032
1136
  await this.client.request(
1033
- HAEXTENSION_METHODS.filesystem.rename,
1137
+ FILESYSTEM_COMMANDS.rename,
1034
1138
  { from, to }
1035
1139
  );
1036
1140
  }
@@ -1041,7 +1145,7 @@ var FilesystemAPI = class {
1041
1145
  */
1042
1146
  async copy(from, to) {
1043
1147
  await this.client.request(
1044
- HAEXTENSION_METHODS.filesystem.copy,
1148
+ FILESYSTEM_COMMANDS.copy,
1045
1149
  { from, to }
1046
1150
  );
1047
1151
  }
@@ -1069,7 +1173,7 @@ var WebAPI = class {
1069
1173
  bodyParam = options.body;
1070
1174
  }
1071
1175
  }
1072
- const response = await this.client.request(HAEXTENSION_METHODS.web.fetch, {
1176
+ const response = await this.client.request(WEB_COMMANDS.fetch, {
1073
1177
  url,
1074
1178
  method: options.method || "GET",
1075
1179
  headers: options.headers,
@@ -1112,10 +1216,7 @@ var WebAPI = class {
1112
1216
  * @param url The URL to open
1113
1217
  */
1114
1218
  async openAsync(url) {
1115
- await this.client.request(HAEXTENSION_METHODS.application.open, {
1116
- application: "browser",
1117
- url
1118
- });
1219
+ await this.client.request(WEB_COMMANDS.open, { url });
1119
1220
  }
1120
1221
  arrayBufferToBase64(buffer) {
1121
1222
  const bytes = new Uint8Array(buffer);
@@ -1228,7 +1329,7 @@ var RemoteStorageAPI = class {
1228
1329
  */
1229
1330
  async upload(backendId, key, data) {
1230
1331
  const base64 = arrayBufferToBase64(data);
1231
- await this.client.request(HAEXTENSION_METHODS.remoteStorage.upload, {
1332
+ await this.client.request(REMOTE_STORAGE_COMMANDS.upload, {
1232
1333
  backendId,
1233
1334
  key,
1234
1335
  data: base64
@@ -1242,7 +1343,7 @@ var RemoteStorageAPI = class {
1242
1343
  */
1243
1344
  async download(backendId, key) {
1244
1345
  const base64 = await this.client.request(
1245
- HAEXTENSION_METHODS.remoteStorage.download,
1346
+ REMOTE_STORAGE_COMMANDS.download,
1246
1347
  { backendId, key }
1247
1348
  );
1248
1349
  return base64ToArrayBuffer(base64);
@@ -1253,7 +1354,7 @@ var RemoteStorageAPI = class {
1253
1354
  * @param key - Object key to delete
1254
1355
  */
1255
1356
  async delete(backendId, key) {
1256
- await this.client.request(HAEXTENSION_METHODS.remoteStorage.delete, {
1357
+ await this.client.request(REMOTE_STORAGE_COMMANDS.delete, {
1257
1358
  backendId,
1258
1359
  key
1259
1360
  });
@@ -1266,7 +1367,7 @@ var RemoteStorageAPI = class {
1266
1367
  */
1267
1368
  async list(backendId, prefix) {
1268
1369
  return this.client.request(
1269
- HAEXTENSION_METHODS.remoteStorage.list,
1370
+ REMOTE_STORAGE_COMMANDS.list,
1270
1371
  { backendId, prefix }
1271
1372
  );
1272
1373
  }
@@ -1280,7 +1381,7 @@ var BackendManagement = class {
1280
1381
  */
1281
1382
  async list() {
1282
1383
  return this.client.request(
1283
- HAEXTENSION_METHODS.remoteStorage.listBackends
1384
+ REMOTE_STORAGE_COMMANDS.listBackends
1284
1385
  );
1285
1386
  }
1286
1387
  /**
@@ -1290,7 +1391,7 @@ var BackendManagement = class {
1290
1391
  */
1291
1392
  async add(request) {
1292
1393
  return this.client.request(
1293
- HAEXTENSION_METHODS.remoteStorage.addBackend,
1394
+ REMOTE_STORAGE_COMMANDS.addBackend,
1294
1395
  request
1295
1396
  );
1296
1397
  }
@@ -1302,7 +1403,7 @@ var BackendManagement = class {
1302
1403
  */
1303
1404
  async update(request) {
1304
1405
  return this.client.request(
1305
- HAEXTENSION_METHODS.remoteStorage.updateBackend,
1406
+ REMOTE_STORAGE_COMMANDS.updateBackend,
1306
1407
  request
1307
1408
  );
1308
1409
  }
@@ -1311,7 +1412,7 @@ var BackendManagement = class {
1311
1412
  * @param backendId - Backend ID to remove
1312
1413
  */
1313
1414
  async remove(backendId) {
1314
- await this.client.request(HAEXTENSION_METHODS.remoteStorage.removeBackend, {
1415
+ await this.client.request(REMOTE_STORAGE_COMMANDS.removeBackend, {
1315
1416
  backendId
1316
1417
  });
1317
1418
  }
@@ -1320,7 +1421,7 @@ var BackendManagement = class {
1320
1421
  * @param backendId - Backend ID to test
1321
1422
  */
1322
1423
  async test(backendId) {
1323
- await this.client.request(HAEXTENSION_METHODS.remoteStorage.testBackend, {
1424
+ await this.client.request(REMOTE_STORAGE_COMMANDS.testBackend, {
1324
1425
  backendId
1325
1426
  });
1326
1427
  }
@@ -1504,7 +1605,7 @@ async function initIframeMode(ctx, log, messageHandler, request) {
1504
1605
  log("Extension info loaded from manifest:", ctx.state.extensionInfo);
1505
1606
  }
1506
1607
  sendDebugInfo(ctx.config);
1507
- const context = await request(HAEXTENSION_METHODS.context.get);
1608
+ const context = await request(EXTENSION_COMMANDS.getContext);
1508
1609
  ctx.state.context = context;
1509
1610
  log("Application context received:", context);
1510
1611
  return { context };
@@ -1527,342 +1628,6 @@ postMessage error: ${e}`);
1527
1628
  }
1528
1629
  }
1529
1630
 
1530
- // src/commands.ts
1531
- var TAURI_COMMANDS = {
1532
- database: {
1533
- query: "webview_extension_db_query",
1534
- execute: "webview_extension_db_execute",
1535
- registerMigrations: "webview_extension_db_register_migrations"
1536
- },
1537
- permissions: {
1538
- checkWeb: "webview_extension_check_web_permission",
1539
- checkDatabase: "webview_extension_check_database_permission",
1540
- checkFilesystem: "webview_extension_check_filesystem_permission"
1541
- },
1542
- web: {
1543
- open: "webview_extension_web_open",
1544
- fetch: "webview_extension_web_request"
1545
- },
1546
- filesystem: {
1547
- saveFile: "webview_extension_fs_save_file",
1548
- openFile: "webview_extension_fs_open_file",
1549
- showImage: "webview_extension_fs_show_image",
1550
- // Generic filesystem operations (no webview_ prefix because they're global)
1551
- // Permission checks happen in the message handler layer
1552
- readFile: "filesystem_read_file",
1553
- writeFile: "filesystem_write_file",
1554
- readDir: "filesystem_read_dir",
1555
- mkdir: "filesystem_mkdir",
1556
- remove: "filesystem_remove",
1557
- exists: "filesystem_exists",
1558
- stat: "filesystem_stat",
1559
- selectFolder: "filesystem_select_folder",
1560
- selectFile: "filesystem_select_file",
1561
- rename: "filesystem_rename",
1562
- copy: "filesystem_copy"
1563
- },
1564
- external: {
1565
- // Response handling (called by extensions running in WebView)
1566
- respond: "webview_extension_external_respond",
1567
- // Bridge server management
1568
- bridgeStart: "external_bridge_start",
1569
- bridgeStop: "external_bridge_stop",
1570
- bridgeGetStatus: "external_bridge_get_status",
1571
- // Client authorization (unified API with remember flag)
1572
- clientAllow: "external_client_allow",
1573
- clientBlock: "external_client_block",
1574
- // Authorized clients management (permanent - stored in database)
1575
- getAuthorizedClients: "external_get_authorized_clients",
1576
- revokeClient: "external_revoke_client",
1577
- // Session-based authorizations (temporary - cleared when haex-vault restarts)
1578
- getSessionAuthorizations: "external_get_session_authorizations",
1579
- revokeSessionAuthorization: "external_revoke_session_authorization",
1580
- // Blocked clients management
1581
- getBlockedClients: "external_get_blocked_clients",
1582
- unblockClient: "external_unblock_client",
1583
- isClientBlocked: "external_is_client_blocked",
1584
- // Pending authorizations
1585
- getPendingAuthorizations: "external_get_pending_authorizations"
1586
- },
1587
- extension: {
1588
- getInfo: "webview_extension_get_info",
1589
- getContext: "webview_extension_context_get"
1590
- },
1591
- storage: {
1592
- // Backend Management (generic, shared by all extensions)
1593
- // These commands don't use webview_ prefix because storage backends are global,
1594
- // not extension-specific. All extensions share the same storage backends.
1595
- listBackends: "storage_list_backends",
1596
- addBackend: "storage_add_backend",
1597
- updateBackend: "storage_update_backend",
1598
- removeBackend: "storage_remove_backend",
1599
- testBackend: "storage_test_backend",
1600
- // Storage Operations
1601
- upload: "storage_upload",
1602
- download: "storage_download",
1603
- delete: "storage_delete",
1604
- list: "storage_list"
1605
- },
1606
- // Extension Remote Storage commands (with permission checks)
1607
- // These commands require publicKey and name to identify the extension
1608
- // and validate filesync permissions before executing storage operations.
1609
- extensionRemoteStorage: {
1610
- listBackends: "extension_remote_storage_list_backends",
1611
- addBackend: "extension_remote_storage_add_backend",
1612
- updateBackend: "extension_remote_storage_update_backend",
1613
- removeBackend: "extension_remote_storage_remove_backend",
1614
- testBackend: "extension_remote_storage_test_backend",
1615
- upload: "extension_remote_storage_upload",
1616
- download: "extension_remote_storage_download",
1617
- delete: "extension_remote_storage_delete",
1618
- list: "extension_remote_storage_list"
1619
- }
1620
- };
1621
-
1622
- // src/transport/handlers/database.ts
1623
- var databaseHandlers = {
1624
- [HAEXTENSION_METHODS.database.query]: {
1625
- command: TAURI_COMMANDS.database.query,
1626
- args: (p) => ({
1627
- query: p.query,
1628
- params: p.params || []
1629
- })
1630
- },
1631
- [HAEXTENSION_METHODS.database.execute]: {
1632
- command: TAURI_COMMANDS.database.execute,
1633
- args: (p) => ({
1634
- query: p.query,
1635
- params: p.params || []
1636
- })
1637
- },
1638
- [HAEXTENSION_METHODS.database.registerMigrations]: {
1639
- command: TAURI_COMMANDS.database.registerMigrations,
1640
- args: (p) => ({
1641
- extensionVersion: p.extensionVersion,
1642
- migrations: p.migrations
1643
- })
1644
- }
1645
- };
1646
-
1647
- // src/transport/handlers/permissions.ts
1648
- var permissionsHandlers = {
1649
- "permissions.web.check": {
1650
- command: TAURI_COMMANDS.permissions.checkWeb,
1651
- args: (p) => ({
1652
- url: p.url
1653
- })
1654
- },
1655
- "permissions.database.check": {
1656
- command: TAURI_COMMANDS.permissions.checkDatabase,
1657
- args: (p) => ({
1658
- resource: p.resource,
1659
- operation: p.operation
1660
- })
1661
- },
1662
- "permissions.filesystem.check": {
1663
- command: TAURI_COMMANDS.permissions.checkFilesystem,
1664
- args: (p) => ({
1665
- path: p.path,
1666
- actionStr: p.action
1667
- })
1668
- }
1669
- };
1670
-
1671
- // src/transport/handlers/web.ts
1672
- var webHandlers = {
1673
- [HAEXTENSION_METHODS.application.open]: {
1674
- command: TAURI_COMMANDS.web.open,
1675
- args: (p) => ({
1676
- url: p.url
1677
- })
1678
- },
1679
- [HAEXTENSION_METHODS.web.fetch]: {
1680
- command: TAURI_COMMANDS.web.fetch,
1681
- args: (p) => ({
1682
- url: p.url,
1683
- method: p.method,
1684
- headers: p.headers,
1685
- body: p.body
1686
- })
1687
- }
1688
- };
1689
-
1690
- // src/transport/handlers/filesystem.ts
1691
- var filesystemHandlers = {
1692
- // Legacy extension-specific operations
1693
- [HAEXTENSION_METHODS.filesystem.saveFile]: {
1694
- command: TAURI_COMMANDS.filesystem.saveFile,
1695
- args: (p) => ({
1696
- data: p.data,
1697
- defaultPath: p.defaultPath,
1698
- title: p.title,
1699
- filters: p.filters
1700
- })
1701
- },
1702
- [HAEXTENSION_METHODS.filesystem.openFile]: {
1703
- command: TAURI_COMMANDS.filesystem.openFile,
1704
- args: (p) => ({
1705
- data: p.data,
1706
- fileName: p.fileName
1707
- })
1708
- },
1709
- [HAEXTENSION_METHODS.filesystem.showImage]: {
1710
- command: TAURI_COMMANDS.filesystem.showImage,
1711
- args: (p) => ({
1712
- dataUrl: p.dataUrl
1713
- })
1714
- },
1715
- // Generic filesystem operations
1716
- [HAEXTENSION_METHODS.filesystem.readFile]: {
1717
- command: TAURI_COMMANDS.filesystem.readFile,
1718
- args: (p) => ({ path: p.path })
1719
- },
1720
- [HAEXTENSION_METHODS.filesystem.writeFile]: {
1721
- command: TAURI_COMMANDS.filesystem.writeFile,
1722
- args: (p) => ({ path: p.path, data: p.data })
1723
- },
1724
- [HAEXTENSION_METHODS.filesystem.readDir]: {
1725
- command: TAURI_COMMANDS.filesystem.readDir,
1726
- args: (p) => ({ path: p.path })
1727
- },
1728
- [HAEXTENSION_METHODS.filesystem.mkdir]: {
1729
- command: TAURI_COMMANDS.filesystem.mkdir,
1730
- args: (p) => ({ path: p.path })
1731
- },
1732
- [HAEXTENSION_METHODS.filesystem.remove]: {
1733
- command: TAURI_COMMANDS.filesystem.remove,
1734
- args: (p) => ({ path: p.path })
1735
- },
1736
- [HAEXTENSION_METHODS.filesystem.exists]: {
1737
- command: TAURI_COMMANDS.filesystem.exists,
1738
- args: (p) => ({ path: p.path })
1739
- },
1740
- [HAEXTENSION_METHODS.filesystem.stat]: {
1741
- command: TAURI_COMMANDS.filesystem.stat,
1742
- args: (p) => ({ path: p.path })
1743
- },
1744
- [HAEXTENSION_METHODS.filesystem.selectFolder]: {
1745
- command: TAURI_COMMANDS.filesystem.selectFolder,
1746
- args: (p) => ({
1747
- title: p.title,
1748
- defaultPath: p.defaultPath
1749
- })
1750
- },
1751
- [HAEXTENSION_METHODS.filesystem.selectFile]: {
1752
- command: TAURI_COMMANDS.filesystem.selectFile,
1753
- args: (p) => ({
1754
- title: p.title,
1755
- defaultPath: p.defaultPath,
1756
- filters: p.filters
1757
- })
1758
- },
1759
- [HAEXTENSION_METHODS.filesystem.rename]: {
1760
- command: TAURI_COMMANDS.filesystem.rename,
1761
- args: (p) => ({ from: p.from, to: p.to })
1762
- },
1763
- [HAEXTENSION_METHODS.filesystem.copy]: {
1764
- command: TAURI_COMMANDS.filesystem.copy,
1765
- args: (p) => ({ from: p.from, to: p.to })
1766
- }
1767
- };
1768
-
1769
- // src/transport/handlers/external.ts
1770
- var externalHandlers = {
1771
- "external.respond": {
1772
- command: TAURI_COMMANDS.external.respond,
1773
- args: (p) => ({
1774
- requestId: p.requestId,
1775
- success: p.success,
1776
- data: p.data,
1777
- error: p.error
1778
- })
1779
- }
1780
- };
1781
-
1782
- // src/transport/handlers/remoteStorage.ts
1783
- var remoteStorageHandlers = {
1784
- // Backend Management
1785
- [HAEXTENSION_METHODS.remoteStorage.listBackends]: {
1786
- command: TAURI_COMMANDS.storage.listBackends,
1787
- args: (_p) => ({})
1788
- },
1789
- [HAEXTENSION_METHODS.remoteStorage.addBackend]: {
1790
- command: TAURI_COMMANDS.storage.addBackend,
1791
- args: (p) => ({
1792
- // Rust expects: request: AddStorageBackendRequest { name, type, config }
1793
- request: {
1794
- name: p.name,
1795
- type: p.type,
1796
- config: p.config
1797
- }
1798
- })
1799
- },
1800
- [HAEXTENSION_METHODS.remoteStorage.removeBackend]: {
1801
- command: TAURI_COMMANDS.storage.removeBackend,
1802
- args: (p) => ({
1803
- backendId: p.backendId
1804
- })
1805
- },
1806
- [HAEXTENSION_METHODS.remoteStorage.testBackend]: {
1807
- command: TAURI_COMMANDS.storage.testBackend,
1808
- args: (p) => ({
1809
- backendId: p.backendId
1810
- })
1811
- },
1812
- // Storage Operations
1813
- [HAEXTENSION_METHODS.remoteStorage.upload]: {
1814
- command: TAURI_COMMANDS.storage.upload,
1815
- args: (p) => ({
1816
- // Rust expects: request: StorageUploadRequest { backend_id, key, data }
1817
- request: {
1818
- backendId: p.backendId,
1819
- key: p.key,
1820
- data: p.data
1821
- }
1822
- })
1823
- },
1824
- [HAEXTENSION_METHODS.remoteStorage.download]: {
1825
- command: TAURI_COMMANDS.storage.download,
1826
- args: (p) => ({
1827
- // Rust expects: request: StorageDownloadRequest { backend_id, key }
1828
- request: {
1829
- backendId: p.backendId,
1830
- key: p.key
1831
- }
1832
- })
1833
- },
1834
- [HAEXTENSION_METHODS.remoteStorage.delete]: {
1835
- command: TAURI_COMMANDS.storage.delete,
1836
- args: (p) => ({
1837
- // Rust expects: request: StorageDeleteRequest { backend_id, key }
1838
- request: {
1839
- backendId: p.backendId,
1840
- key: p.key
1841
- }
1842
- })
1843
- },
1844
- [HAEXTENSION_METHODS.remoteStorage.list]: {
1845
- command: TAURI_COMMANDS.storage.list,
1846
- args: (p) => ({
1847
- // Rust expects: request: StorageListRequest { backend_id, prefix }
1848
- request: {
1849
- backendId: p.backendId,
1850
- prefix: p.prefix
1851
- }
1852
- })
1853
- }
1854
- };
1855
-
1856
- // src/transport/handlers/index.ts
1857
- var allHandlers = {
1858
- ...databaseHandlers,
1859
- ...permissionsHandlers,
1860
- ...webHandlers,
1861
- ...filesystemHandlers,
1862
- ...externalHandlers,
1863
- ...remoteStorageHandlers
1864
- };
1865
-
1866
1631
  // src/client/transport.ts
1867
1632
  function generateRequestId(counter) {
1868
1633
  return `req_${counter}`;
@@ -1896,27 +1661,15 @@ function sendPostMessage(method, params, requestId, config, extensionInfo, pendi
1896
1661
  window.parent.postMessage({ id: requestId, ...request }, targetOrigin);
1897
1662
  });
1898
1663
  }
1899
- async function sendInvoke(method, params, config, log) {
1664
+ async function sendInvoke(method, params, config, _log) {
1900
1665
  const { invoke } = window.__TAURI__.core;
1901
1666
  if (config.debug) {
1902
1667
  console.log("[SDK Debug] ========== Invoke Request ==========");
1903
- console.log("[SDK Debug] Method:", method);
1668
+ console.log("[SDK Debug] Command:", method);
1904
1669
  console.log("[SDK Debug] Params:", params);
1905
1670
  console.log("[SDK Debug] =======================================");
1906
1671
  }
1907
- const handler = allHandlers[method];
1908
- if (handler) {
1909
- const args = handler.args(params);
1910
- console.log("[SDK Debug] Handler found for method:", method);
1911
- console.log("[SDK Debug] Handler command:", handler.command);
1912
- console.log("[SDK Debug] Transformed args:", JSON.stringify(args, null, 2));
1913
- return invoke(handler.command, args);
1914
- }
1915
- throw new HaexVaultSdkError(
1916
- "METHOD_NOT_FOUND" /* METHOD_NOT_FOUND */,
1917
- "errors.method_not_found",
1918
- { method }
1919
- );
1672
+ return invoke(method, params);
1920
1673
  }
1921
1674
 
1922
1675
  // src/client/events.ts
@@ -2033,7 +1786,7 @@ function createDrizzleInstance(schema, extensionInfo, request, log) {
2033
1786
  try {
2034
1787
  if (method === "run" || method === "all") {
2035
1788
  const result2 = await request(
2036
- HAEXTENSION_METHODS.database.execute,
1789
+ DATABASE_COMMANDS.execute,
2037
1790
  {
2038
1791
  query: sql,
2039
1792
  params
@@ -2047,7 +1800,7 @@ function createDrizzleInstance(schema, extensionInfo, request, log) {
2047
1800
  }
2048
1801
  return result2;
2049
1802
  }
2050
- const result = await request(HAEXTENSION_METHODS.database.query, {
1803
+ const result = await request(DATABASE_COMMANDS.query, {
2051
1804
  query: sql,
2052
1805
  params
2053
1806
  });
@@ -2069,7 +1822,7 @@ function createDrizzleInstance(schema, extensionInfo, request, log) {
2069
1822
  }
2070
1823
  async function queryRaw(sql, params, request, debug) {
2071
1824
  const result = await request(
2072
- HAEXTENSION_METHODS.database.query,
1825
+ DATABASE_COMMANDS.query,
2073
1826
  { query: sql, params }
2074
1827
  );
2075
1828
  if (debug) {
@@ -2079,7 +1832,7 @@ async function queryRaw(sql, params, request, debug) {
2079
1832
  }
2080
1833
  async function executeRaw(sql, params, request) {
2081
1834
  const result = await request(
2082
- HAEXTENSION_METHODS.database.execute,
1835
+ DATABASE_COMMANDS.execute,
2083
1836
  { query: sql, params }
2084
1837
  );
2085
1838
  return {
@@ -2568,6 +2321,6 @@ function createHaexVaultSdk(config = {}) {
2568
2321
  return new HaexVaultSdk(config);
2569
2322
  }
2570
2323
 
2571
- 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 };
2324
+ export { DEFAULT_TIMEOUT, DatabaseAPI, EXTERNAL_EVENTS, ErrorCode, ExternalConnectionErrorCode, ExternalConnectionState, FilesystemAPI, HAEXSPACE_MESSAGE_TYPES, HAEXTENSION_EVENTS, 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 };
2572
2325
  //# sourceMappingURL=index.mjs.map
2573
2326
  //# sourceMappingURL=index.mjs.map