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