@haex-space/vault-sdk 3.2.0 → 3.2.2

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
@@ -2265,6 +2265,10 @@ function parseTableName(fullTableName) {
2265
2265
 
2266
2266
  // src/client/init.ts
2267
2267
  var PORT_HANDSHAKE_TIMEOUT_MS = 1e4;
2268
+ function getCurrentWebviewLabel() {
2269
+ const internals = window.__TAURI_INTERNALS__;
2270
+ return internals?.metadata?.currentWebview?.label;
2271
+ }
2268
2272
  function isInIframe() {
2269
2273
  return window.self !== window.top;
2270
2274
  }
@@ -2293,6 +2297,13 @@ async function initNativeMode(ctx, log, onEvent, onContextChange) {
2293
2297
  }
2294
2298
  async function setupTauriEventListeners(ctx, log, onEvent, onContextChange) {
2295
2299
  const { listen } = getTauriEvent();
2300
+ const webviewLabel = getCurrentWebviewLabel();
2301
+ const listenOptions = webviewLabel ? { target: webviewLabel } : void 0;
2302
+ if (!webviewLabel) {
2303
+ log(
2304
+ "WARNING: could not read __TAURI_INTERNALS__.metadata.currentWebview.label \u2014 registering listeners without a target. Label-scoped emits from the host will not be delivered until the metadata is available."
2305
+ );
2306
+ }
2296
2307
  log("Setting up Tauri event listener for:", HAEXTENSION_EVENTS.CONTEXT_CHANGED);
2297
2308
  try {
2298
2309
  await listen(HAEXTENSION_EVENTS.CONTEXT_CHANGED, (event) => {
@@ -2310,7 +2321,7 @@ async function setupTauriEventListeners(ctx, log, onEvent, onContextChange) {
2310
2321
  } else {
2311
2322
  log("Event received but no context in payload:", event);
2312
2323
  }
2313
- });
2324
+ }, listenOptions);
2314
2325
  log("Context change listener registered successfully");
2315
2326
  } catch (error) {
2316
2327
  log("Failed to setup context change listener:", error);
@@ -2328,7 +2339,7 @@ async function setupTauriEventListeners(ctx, log, onEvent, onContextChange) {
2328
2339
  } else {
2329
2340
  log("External request event has no payload!");
2330
2341
  }
2331
- });
2342
+ }, listenOptions);
2332
2343
  log("External request listener registered successfully");
2333
2344
  } catch (error) {
2334
2345
  log("Failed to setup external request listener:", error);
@@ -2346,7 +2357,7 @@ async function setupTauriEventListeners(ctx, log, onEvent, onContextChange) {
2346
2357
  } else {
2347
2358
  log("AI action request event has no payload!");
2348
2359
  }
2349
- });
2360
+ }, listenOptions);
2350
2361
  log("AI action request listener registered successfully");
2351
2362
  } catch (error) {
2352
2363
  log("Failed to setup AI action request listener:", error);
@@ -2365,7 +2376,7 @@ async function setupTauriEventListeners(ctx, log, onEvent, onContextChange) {
2365
2376
  timestamp: Date.now()
2366
2377
  });
2367
2378
  }
2368
- });
2379
+ }, listenOptions);
2369
2380
  log("File change listener registered successfully");
2370
2381
  } catch (error) {
2371
2382
  log("Failed to setup file change listener:", error);
@@ -2382,14 +2393,14 @@ async function setupTauriEventListeners(ctx, log, onEvent, onContextChange) {
2382
2393
  timestamp: Date.now()
2383
2394
  });
2384
2395
  }
2385
- });
2396
+ }, listenOptions);
2386
2397
  log("Sync tables updated listener registered successfully");
2387
2398
  } catch (error) {
2388
2399
  log("Failed to setup sync tables updated listener:", error);
2389
2400
  }
2390
2401
  log("Setting up LocalSend event listeners");
2391
2402
  try {
2392
- await setupLocalSendEventListeners(log, onEvent);
2403
+ await setupLocalSendEventListeners(log, onEvent, listenOptions);
2393
2404
  log("LocalSend event listeners setup complete");
2394
2405
  } catch (error) {
2395
2406
  log("Failed to setup LocalSend event listeners:", error);
@@ -2406,7 +2417,7 @@ async function setupTauriEventListeners(ctx, log, onEvent, onContextChange) {
2406
2417
  data: payload.data
2407
2418
  });
2408
2419
  }
2409
- });
2420
+ }, listenOptions);
2410
2421
  log("Shell output listener registered");
2411
2422
  await listen(SHELL_EVENTS.EXIT, (event) => {
2412
2423
  if (event.payload) {
@@ -2418,13 +2429,13 @@ async function setupTauriEventListeners(ctx, log, onEvent, onContextChange) {
2418
2429
  exitCode: payload.exitCode
2419
2430
  });
2420
2431
  }
2421
- });
2432
+ }, listenOptions);
2422
2433
  log("Shell exit listener registered");
2423
2434
  } catch (error) {
2424
2435
  log("Failed to setup Shell event listeners:", error);
2425
2436
  }
2426
2437
  }
2427
- async function setupLocalSendEventListeners(log, onEvent) {
2438
+ async function setupLocalSendEventListeners(log, onEvent, listenOptions) {
2428
2439
  const { listen } = getTauriEvent();
2429
2440
  try {
2430
2441
  await listen(LOCALSEND_EVENTS.deviceDiscovered, (event) => {
@@ -2436,7 +2447,7 @@ async function setupLocalSendEventListeners(log, onEvent) {
2436
2447
  timestamp: Date.now()
2437
2448
  });
2438
2449
  }
2439
- });
2450
+ }, listenOptions);
2440
2451
  log("LocalSend device discovered listener registered");
2441
2452
  } catch (error) {
2442
2453
  log("Failed to setup LocalSend device discovered listener:", error);
@@ -2451,7 +2462,7 @@ async function setupLocalSendEventListeners(log, onEvent) {
2451
2462
  timestamp: Date.now()
2452
2463
  });
2453
2464
  }
2454
- });
2465
+ }, listenOptions);
2455
2466
  log("LocalSend device lost listener registered");
2456
2467
  } catch (error) {
2457
2468
  log("Failed to setup LocalSend device lost listener:", error);
@@ -2466,7 +2477,7 @@ async function setupLocalSendEventListeners(log, onEvent) {
2466
2477
  timestamp: Date.now()
2467
2478
  });
2468
2479
  }
2469
- });
2480
+ }, listenOptions);
2470
2481
  log("LocalSend transfer request listener registered");
2471
2482
  } catch (error) {
2472
2483
  log("Failed to setup LocalSend transfer request listener:", error);
@@ -2481,7 +2492,7 @@ async function setupLocalSendEventListeners(log, onEvent) {
2481
2492
  timestamp: Date.now()
2482
2493
  });
2483
2494
  }
2484
- });
2495
+ }, listenOptions);
2485
2496
  log("LocalSend transfer progress listener registered");
2486
2497
  } catch (error) {
2487
2498
  log("Failed to setup LocalSend transfer progress listener:", error);
@@ -2496,7 +2507,7 @@ async function setupLocalSendEventListeners(log, onEvent) {
2496
2507
  timestamp: Date.now()
2497
2508
  });
2498
2509
  }
2499
- });
2510
+ }, listenOptions);
2500
2511
  log("LocalSend transfer complete listener registered");
2501
2512
  } catch (error) {
2502
2513
  log("Failed to setup LocalSend transfer complete listener:", error);
@@ -2511,13 +2522,13 @@ async function setupLocalSendEventListeners(log, onEvent) {
2511
2522
  timestamp: Date.now()
2512
2523
  });
2513
2524
  }
2514
- });
2525
+ }, listenOptions);
2515
2526
  log("LocalSend transfer failed listener registered");
2516
2527
  } catch (error) {
2517
2528
  log("Failed to setup LocalSend transfer failed listener:", error);
2518
2529
  }
2519
2530
  }
2520
- async function initIframeMode(ctx, log, messageHandler, request) {
2531
+ async function initIframeMode(ctx, log, messageHandler) {
2521
2532
  if (!isInIframe()) {
2522
2533
  throw new HaexVaultSdkError("NOT_IN_IFRAME" /* NOT_IN_IFRAME */, "errors.not_in_iframe");
2523
2534
  }
@@ -2539,10 +2550,7 @@ async function initIframeMode(ctx, log, messageHandler, request) {
2539
2550
  log("Extension info loaded from manifest:", ctx.state.extensionInfo);
2540
2551
  }
2541
2552
  sendDebugInfo(ctx.config);
2542
- const context = await request(EXTENSION_COMMANDS.getContext);
2543
- ctx.state.context = context;
2544
- log("Application context received:", context);
2545
- return { context, port };
2553
+ return port;
2546
2554
  }
2547
2555
  function waitForHostPortAsync(log) {
2548
2556
  return new Promise((resolve, reject) => {
@@ -3145,7 +3153,7 @@ var HaexVaultSdk = class {
3145
3153
  () => this._extensionInfo,
3146
3154
  this.handleEvent.bind(this)
3147
3155
  );
3148
- const { context, port } = await initIframeMode(
3156
+ const port = await initIframeMode(
3149
3157
  {
3150
3158
  config: this.config,
3151
3159
  state: {
@@ -3174,8 +3182,7 @@ var HaexVaultSdk = class {
3174
3182
  }
3175
3183
  },
3176
3184
  this.log.bind(this),
3177
- this.messageHandler,
3178
- this.request.bind(this)
3185
+ this.messageHandler
3179
3186
  );
3180
3187
  this.hostPort = port;
3181
3188
  if (this.config.manifest) {
@@ -3187,6 +3194,8 @@ var HaexVaultSdk = class {
3187
3194
  };
3188
3195
  this.notifySubscribersInternal();
3189
3196
  }
3197
+ const context = await this.request(EXTENSION_COMMANDS.getContext);
3198
+ this.log("Application context received:", context);
3190
3199
  this._context = context;
3191
3200
  this.isNativeWindow = false;
3192
3201
  this.initialized = true;