@haex-space/vault-sdk 2.5.56 → 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,328 +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
- };
1609
-
1610
- // src/transport/handlers/database.ts
1611
- var databaseHandlers = {
1612
- [HAEXTENSION_METHODS.database.query]: {
1613
- command: TAURI_COMMANDS.database.query,
1614
- args: (p) => ({
1615
- query: p.query,
1616
- params: p.params || []
1617
- })
1618
- },
1619
- [HAEXTENSION_METHODS.database.execute]: {
1620
- command: TAURI_COMMANDS.database.execute,
1621
- args: (p) => ({
1622
- query: p.query,
1623
- params: p.params || []
1624
- })
1625
- },
1626
- [HAEXTENSION_METHODS.database.registerMigrations]: {
1627
- command: TAURI_COMMANDS.database.registerMigrations,
1628
- args: (p) => ({
1629
- extensionVersion: p.extensionVersion,
1630
- migrations: p.migrations
1631
- })
1632
- }
1633
- };
1634
-
1635
- // src/transport/handlers/permissions.ts
1636
- var permissionsHandlers = {
1637
- "permissions.web.check": {
1638
- command: TAURI_COMMANDS.permissions.checkWeb,
1639
- args: (p) => ({
1640
- url: p.url
1641
- })
1642
- },
1643
- "permissions.database.check": {
1644
- command: TAURI_COMMANDS.permissions.checkDatabase,
1645
- args: (p) => ({
1646
- resource: p.resource,
1647
- operation: p.operation
1648
- })
1649
- },
1650
- "permissions.filesystem.check": {
1651
- command: TAURI_COMMANDS.permissions.checkFilesystem,
1652
- args: (p) => ({
1653
- path: p.path,
1654
- actionStr: p.action
1655
- })
1656
- }
1657
- };
1658
-
1659
- // src/transport/handlers/web.ts
1660
- var webHandlers = {
1661
- [HAEXTENSION_METHODS.application.open]: {
1662
- command: TAURI_COMMANDS.web.open,
1663
- args: (p) => ({
1664
- url: p.url
1665
- })
1666
- },
1667
- [HAEXTENSION_METHODS.web.fetch]: {
1668
- command: TAURI_COMMANDS.web.fetch,
1669
- args: (p) => ({
1670
- url: p.url,
1671
- method: p.method,
1672
- headers: p.headers,
1673
- body: p.body
1674
- })
1675
- }
1676
- };
1677
-
1678
- // src/transport/handlers/filesystem.ts
1679
- var filesystemHandlers = {
1680
- // Legacy extension-specific operations
1681
- [HAEXTENSION_METHODS.filesystem.saveFile]: {
1682
- command: TAURI_COMMANDS.filesystem.saveFile,
1683
- args: (p) => ({
1684
- data: p.data,
1685
- defaultPath: p.defaultPath,
1686
- title: p.title,
1687
- filters: p.filters
1688
- })
1689
- },
1690
- [HAEXTENSION_METHODS.filesystem.openFile]: {
1691
- command: TAURI_COMMANDS.filesystem.openFile,
1692
- args: (p) => ({
1693
- data: p.data,
1694
- fileName: p.fileName
1695
- })
1696
- },
1697
- [HAEXTENSION_METHODS.filesystem.showImage]: {
1698
- command: TAURI_COMMANDS.filesystem.showImage,
1699
- args: (p) => ({
1700
- dataUrl: p.dataUrl
1701
- })
1702
- },
1703
- // Generic filesystem operations
1704
- [HAEXTENSION_METHODS.filesystem.readFile]: {
1705
- command: TAURI_COMMANDS.filesystem.readFile,
1706
- args: (p) => ({ path: p.path })
1707
- },
1708
- [HAEXTENSION_METHODS.filesystem.writeFile]: {
1709
- command: TAURI_COMMANDS.filesystem.writeFile,
1710
- args: (p) => ({ path: p.path, data: p.data })
1711
- },
1712
- [HAEXTENSION_METHODS.filesystem.readDir]: {
1713
- command: TAURI_COMMANDS.filesystem.readDir,
1714
- args: (p) => ({ path: p.path })
1715
- },
1716
- [HAEXTENSION_METHODS.filesystem.mkdir]: {
1717
- command: TAURI_COMMANDS.filesystem.mkdir,
1718
- args: (p) => ({ path: p.path })
1719
- },
1720
- [HAEXTENSION_METHODS.filesystem.remove]: {
1721
- command: TAURI_COMMANDS.filesystem.remove,
1722
- args: (p) => ({ path: p.path })
1723
- },
1724
- [HAEXTENSION_METHODS.filesystem.exists]: {
1725
- command: TAURI_COMMANDS.filesystem.exists,
1726
- args: (p) => ({ path: p.path })
1727
- },
1728
- [HAEXTENSION_METHODS.filesystem.stat]: {
1729
- command: TAURI_COMMANDS.filesystem.stat,
1730
- args: (p) => ({ path: p.path })
1731
- },
1732
- [HAEXTENSION_METHODS.filesystem.selectFolder]: {
1733
- command: TAURI_COMMANDS.filesystem.selectFolder,
1734
- args: (p) => ({
1735
- title: p.title,
1736
- defaultPath: p.defaultPath
1737
- })
1738
- },
1739
- [HAEXTENSION_METHODS.filesystem.selectFile]: {
1740
- command: TAURI_COMMANDS.filesystem.selectFile,
1741
- args: (p) => ({
1742
- title: p.title,
1743
- defaultPath: p.defaultPath,
1744
- filters: p.filters
1745
- })
1746
- },
1747
- [HAEXTENSION_METHODS.filesystem.rename]: {
1748
- command: TAURI_COMMANDS.filesystem.rename,
1749
- args: (p) => ({ from: p.from, to: p.to })
1750
- },
1751
- [HAEXTENSION_METHODS.filesystem.copy]: {
1752
- command: TAURI_COMMANDS.filesystem.copy,
1753
- args: (p) => ({ from: p.from, to: p.to })
1754
- }
1755
- };
1756
-
1757
- // src/transport/handlers/external.ts
1758
- var externalHandlers = {
1759
- "external.respond": {
1760
- command: TAURI_COMMANDS.external.respond,
1761
- args: (p) => ({
1762
- requestId: p.requestId,
1763
- success: p.success,
1764
- data: p.data,
1765
- error: p.error
1766
- })
1767
- }
1768
- };
1769
-
1770
- // src/transport/handlers/remoteStorage.ts
1771
- var remoteStorageHandlers = {
1772
- // Backend Management
1773
- [HAEXTENSION_METHODS.remoteStorage.listBackends]: {
1774
- command: TAURI_COMMANDS.storage.listBackends,
1775
- args: (_p) => ({})
1776
- },
1777
- [HAEXTENSION_METHODS.remoteStorage.addBackend]: {
1778
- command: TAURI_COMMANDS.storage.addBackend,
1779
- args: (p) => ({
1780
- // Rust expects: request: AddStorageBackendRequest { name, type, config }
1781
- request: {
1782
- name: p.name,
1783
- type: p.type,
1784
- config: p.config
1785
- }
1786
- })
1787
- },
1788
- [HAEXTENSION_METHODS.remoteStorage.removeBackend]: {
1789
- command: TAURI_COMMANDS.storage.removeBackend,
1790
- args: (p) => ({
1791
- backendId: p.backendId
1792
- })
1793
- },
1794
- [HAEXTENSION_METHODS.remoteStorage.testBackend]: {
1795
- command: TAURI_COMMANDS.storage.testBackend,
1796
- args: (p) => ({
1797
- backendId: p.backendId
1798
- })
1799
- },
1800
- // Storage Operations
1801
- [HAEXTENSION_METHODS.remoteStorage.upload]: {
1802
- command: TAURI_COMMANDS.storage.upload,
1803
- args: (p) => ({
1804
- // Rust expects: request: StorageUploadRequest { backend_id, key, data }
1805
- request: {
1806
- backendId: p.backendId,
1807
- key: p.key,
1808
- data: p.data
1809
- }
1810
- })
1811
- },
1812
- [HAEXTENSION_METHODS.remoteStorage.download]: {
1813
- command: TAURI_COMMANDS.storage.download,
1814
- args: (p) => ({
1815
- // Rust expects: request: StorageDownloadRequest { backend_id, key }
1816
- request: {
1817
- backendId: p.backendId,
1818
- key: p.key
1819
- }
1820
- })
1821
- },
1822
- [HAEXTENSION_METHODS.remoteStorage.delete]: {
1823
- command: TAURI_COMMANDS.storage.delete,
1824
- args: (p) => ({
1825
- // Rust expects: request: StorageDeleteRequest { backend_id, key }
1826
- request: {
1827
- backendId: p.backendId,
1828
- key: p.key
1829
- }
1830
- })
1831
- },
1832
- [HAEXTENSION_METHODS.remoteStorage.list]: {
1833
- command: TAURI_COMMANDS.storage.list,
1834
- args: (p) => ({
1835
- // Rust expects: request: StorageListRequest { backend_id, prefix }
1836
- request: {
1837
- backendId: p.backendId,
1838
- prefix: p.prefix
1839
- }
1840
- })
1841
- }
1842
- };
1843
-
1844
- // src/transport/handlers/index.ts
1845
- var allHandlers = {
1846
- ...databaseHandlers,
1847
- ...permissionsHandlers,
1848
- ...webHandlers,
1849
- ...filesystemHandlers,
1850
- ...externalHandlers,
1851
- ...remoteStorageHandlers
1852
- };
1853
-
1854
1633
  // src/client/transport.ts
1855
1634
  function generateRequestId(counter) {
1856
1635
  return `req_${counter}`;
@@ -1884,27 +1663,15 @@ function sendPostMessage(method, params, requestId, config, extensionInfo, pendi
1884
1663
  window.parent.postMessage({ id: requestId, ...request }, targetOrigin);
1885
1664
  });
1886
1665
  }
1887
- async function sendInvoke(method, params, config, log) {
1666
+ async function sendInvoke(method, params, config, _log) {
1888
1667
  const { invoke } = window.__TAURI__.core;
1889
1668
  if (config.debug) {
1890
1669
  console.log("[SDK Debug] ========== Invoke Request ==========");
1891
- console.log("[SDK Debug] Method:", method);
1670
+ console.log("[SDK Debug] Command:", method);
1892
1671
  console.log("[SDK Debug] Params:", params);
1893
1672
  console.log("[SDK Debug] =======================================");
1894
1673
  }
1895
- const handler = allHandlers[method];
1896
- if (handler) {
1897
- const args = handler.args(params);
1898
- console.log("[SDK Debug] Handler found for method:", method);
1899
- console.log("[SDK Debug] Handler command:", handler.command);
1900
- console.log("[SDK Debug] Transformed args:", JSON.stringify(args, null, 2));
1901
- return invoke(handler.command, args);
1902
- }
1903
- throw new HaexVaultSdkError(
1904
- "METHOD_NOT_FOUND" /* METHOD_NOT_FOUND */,
1905
- "errors.method_not_found",
1906
- { method }
1907
- );
1674
+ return invoke(method, params);
1908
1675
  }
1909
1676
 
1910
1677
  // src/client/events.ts
@@ -2021,7 +1788,7 @@ function createDrizzleInstance(schema, extensionInfo, request, log) {
2021
1788
  try {
2022
1789
  if (method === "run" || method === "all") {
2023
1790
  const result2 = await request(
2024
- HAEXTENSION_METHODS.database.execute,
1791
+ DATABASE_COMMANDS.execute,
2025
1792
  {
2026
1793
  query: sql,
2027
1794
  params
@@ -2035,7 +1802,7 @@ function createDrizzleInstance(schema, extensionInfo, request, log) {
2035
1802
  }
2036
1803
  return result2;
2037
1804
  }
2038
- const result = await request(HAEXTENSION_METHODS.database.query, {
1805
+ const result = await request(DATABASE_COMMANDS.query, {
2039
1806
  query: sql,
2040
1807
  params
2041
1808
  });
@@ -2057,7 +1824,7 @@ function createDrizzleInstance(schema, extensionInfo, request, log) {
2057
1824
  }
2058
1825
  async function queryRaw(sql, params, request, debug) {
2059
1826
  const result = await request(
2060
- HAEXTENSION_METHODS.database.query,
1827
+ DATABASE_COMMANDS.query,
2061
1828
  { query: sql, params }
2062
1829
  );
2063
1830
  if (debug) {
@@ -2067,7 +1834,7 @@ async function queryRaw(sql, params, request, debug) {
2067
1834
  }
2068
1835
  async function executeRaw(sql, params, request) {
2069
1836
  const result = await request(
2070
- HAEXTENSION_METHODS.database.execute,
1837
+ DATABASE_COMMANDS.execute,
2071
1838
  { query: sql, params }
2072
1839
  );
2073
1840
  return {
@@ -2565,7 +2332,6 @@ exports.ExternalConnectionState = ExternalConnectionState;
2565
2332
  exports.FilesystemAPI = FilesystemAPI;
2566
2333
  exports.HAEXSPACE_MESSAGE_TYPES = HAEXSPACE_MESSAGE_TYPES;
2567
2334
  exports.HAEXTENSION_EVENTS = HAEXTENSION_EVENTS;
2568
- exports.HAEXTENSION_METHODS = HAEXTENSION_METHODS;
2569
2335
  exports.HaexVaultSdk = HaexVaultSdk;
2570
2336
  exports.HaexVaultSdkError = HaexVaultSdkError;
2571
2337
  exports.PermissionStatus = PermissionStatus;