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