@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/react.js CHANGED
@@ -1842,6 +1842,10 @@ function parseTableName(fullTableName) {
1842
1842
 
1843
1843
  // src/client/init.ts
1844
1844
  var PORT_HANDSHAKE_TIMEOUT_MS = 1e4;
1845
+ function getCurrentWebviewLabel() {
1846
+ const internals = window.__TAURI_INTERNALS__;
1847
+ return internals?.metadata?.currentWebview?.label;
1848
+ }
1845
1849
  function isInIframe() {
1846
1850
  return window.self !== window.top;
1847
1851
  }
@@ -1870,6 +1874,13 @@ async function initNativeMode(ctx, log, onEvent, onContextChange) {
1870
1874
  }
1871
1875
  async function setupTauriEventListeners(ctx, log, onEvent, onContextChange) {
1872
1876
  const { listen } = getTauriEvent();
1877
+ const webviewLabel = getCurrentWebviewLabel();
1878
+ const listenOptions = webviewLabel ? { target: webviewLabel } : void 0;
1879
+ if (!webviewLabel) {
1880
+ log(
1881
+ "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."
1882
+ );
1883
+ }
1873
1884
  log("Setting up Tauri event listener for:", HAEXTENSION_EVENTS.CONTEXT_CHANGED);
1874
1885
  try {
1875
1886
  await listen(HAEXTENSION_EVENTS.CONTEXT_CHANGED, (event) => {
@@ -1887,7 +1898,7 @@ async function setupTauriEventListeners(ctx, log, onEvent, onContextChange) {
1887
1898
  } else {
1888
1899
  log("Event received but no context in payload:", event);
1889
1900
  }
1890
- });
1901
+ }, listenOptions);
1891
1902
  log("Context change listener registered successfully");
1892
1903
  } catch (error) {
1893
1904
  log("Failed to setup context change listener:", error);
@@ -1905,7 +1916,7 @@ async function setupTauriEventListeners(ctx, log, onEvent, onContextChange) {
1905
1916
  } else {
1906
1917
  log("External request event has no payload!");
1907
1918
  }
1908
- });
1919
+ }, listenOptions);
1909
1920
  log("External request listener registered successfully");
1910
1921
  } catch (error) {
1911
1922
  log("Failed to setup external request listener:", error);
@@ -1923,7 +1934,7 @@ async function setupTauriEventListeners(ctx, log, onEvent, onContextChange) {
1923
1934
  } else {
1924
1935
  log("AI action request event has no payload!");
1925
1936
  }
1926
- });
1937
+ }, listenOptions);
1927
1938
  log("AI action request listener registered successfully");
1928
1939
  } catch (error) {
1929
1940
  log("Failed to setup AI action request listener:", error);
@@ -1942,7 +1953,7 @@ async function setupTauriEventListeners(ctx, log, onEvent, onContextChange) {
1942
1953
  timestamp: Date.now()
1943
1954
  });
1944
1955
  }
1945
- });
1956
+ }, listenOptions);
1946
1957
  log("File change listener registered successfully");
1947
1958
  } catch (error) {
1948
1959
  log("Failed to setup file change listener:", error);
@@ -1959,14 +1970,14 @@ async function setupTauriEventListeners(ctx, log, onEvent, onContextChange) {
1959
1970
  timestamp: Date.now()
1960
1971
  });
1961
1972
  }
1962
- });
1973
+ }, listenOptions);
1963
1974
  log("Sync tables updated listener registered successfully");
1964
1975
  } catch (error) {
1965
1976
  log("Failed to setup sync tables updated listener:", error);
1966
1977
  }
1967
1978
  log("Setting up LocalSend event listeners");
1968
1979
  try {
1969
- await setupLocalSendEventListeners(log, onEvent);
1980
+ await setupLocalSendEventListeners(log, onEvent, listenOptions);
1970
1981
  log("LocalSend event listeners setup complete");
1971
1982
  } catch (error) {
1972
1983
  log("Failed to setup LocalSend event listeners:", error);
@@ -1983,7 +1994,7 @@ async function setupTauriEventListeners(ctx, log, onEvent, onContextChange) {
1983
1994
  data: payload.data
1984
1995
  });
1985
1996
  }
1986
- });
1997
+ }, listenOptions);
1987
1998
  log("Shell output listener registered");
1988
1999
  await listen(SHELL_EVENTS.EXIT, (event) => {
1989
2000
  if (event.payload) {
@@ -1995,13 +2006,13 @@ async function setupTauriEventListeners(ctx, log, onEvent, onContextChange) {
1995
2006
  exitCode: payload.exitCode
1996
2007
  });
1997
2008
  }
1998
- });
2009
+ }, listenOptions);
1999
2010
  log("Shell exit listener registered");
2000
2011
  } catch (error) {
2001
2012
  log("Failed to setup Shell event listeners:", error);
2002
2013
  }
2003
2014
  }
2004
- async function setupLocalSendEventListeners(log, onEvent) {
2015
+ async function setupLocalSendEventListeners(log, onEvent, listenOptions) {
2005
2016
  const { listen } = getTauriEvent();
2006
2017
  try {
2007
2018
  await listen(LOCALSEND_EVENTS.deviceDiscovered, (event) => {
@@ -2013,7 +2024,7 @@ async function setupLocalSendEventListeners(log, onEvent) {
2013
2024
  timestamp: Date.now()
2014
2025
  });
2015
2026
  }
2016
- });
2027
+ }, listenOptions);
2017
2028
  log("LocalSend device discovered listener registered");
2018
2029
  } catch (error) {
2019
2030
  log("Failed to setup LocalSend device discovered listener:", error);
@@ -2028,7 +2039,7 @@ async function setupLocalSendEventListeners(log, onEvent) {
2028
2039
  timestamp: Date.now()
2029
2040
  });
2030
2041
  }
2031
- });
2042
+ }, listenOptions);
2032
2043
  log("LocalSend device lost listener registered");
2033
2044
  } catch (error) {
2034
2045
  log("Failed to setup LocalSend device lost listener:", error);
@@ -2043,7 +2054,7 @@ async function setupLocalSendEventListeners(log, onEvent) {
2043
2054
  timestamp: Date.now()
2044
2055
  });
2045
2056
  }
2046
- });
2057
+ }, listenOptions);
2047
2058
  log("LocalSend transfer request listener registered");
2048
2059
  } catch (error) {
2049
2060
  log("Failed to setup LocalSend transfer request listener:", error);
@@ -2058,7 +2069,7 @@ async function setupLocalSendEventListeners(log, onEvent) {
2058
2069
  timestamp: Date.now()
2059
2070
  });
2060
2071
  }
2061
- });
2072
+ }, listenOptions);
2062
2073
  log("LocalSend transfer progress listener registered");
2063
2074
  } catch (error) {
2064
2075
  log("Failed to setup LocalSend transfer progress listener:", error);
@@ -2073,7 +2084,7 @@ async function setupLocalSendEventListeners(log, onEvent) {
2073
2084
  timestamp: Date.now()
2074
2085
  });
2075
2086
  }
2076
- });
2087
+ }, listenOptions);
2077
2088
  log("LocalSend transfer complete listener registered");
2078
2089
  } catch (error) {
2079
2090
  log("Failed to setup LocalSend transfer complete listener:", error);
@@ -2088,13 +2099,13 @@ async function setupLocalSendEventListeners(log, onEvent) {
2088
2099
  timestamp: Date.now()
2089
2100
  });
2090
2101
  }
2091
- });
2102
+ }, listenOptions);
2092
2103
  log("LocalSend transfer failed listener registered");
2093
2104
  } catch (error) {
2094
2105
  log("Failed to setup LocalSend transfer failed listener:", error);
2095
2106
  }
2096
2107
  }
2097
- async function initIframeMode(ctx, log, messageHandler, request) {
2108
+ async function initIframeMode(ctx, log, messageHandler) {
2098
2109
  if (!isInIframe()) {
2099
2110
  throw new HaexVaultSdkError("NOT_IN_IFRAME" /* NOT_IN_IFRAME */, "errors.not_in_iframe");
2100
2111
  }
@@ -2116,10 +2127,7 @@ async function initIframeMode(ctx, log, messageHandler, request) {
2116
2127
  log("Extension info loaded from manifest:", ctx.state.extensionInfo);
2117
2128
  }
2118
2129
  sendDebugInfo(ctx.config);
2119
- const context = await request(EXTENSION_COMMANDS.getContext);
2120
- ctx.state.context = context;
2121
- log("Application context received:", context);
2122
- return { context, port };
2130
+ return port;
2123
2131
  }
2124
2132
  function waitForHostPortAsync(log) {
2125
2133
  return new Promise((resolve, reject) => {
@@ -2722,7 +2730,7 @@ var HaexVaultSdk = class {
2722
2730
  () => this._extensionInfo,
2723
2731
  this.handleEvent.bind(this)
2724
2732
  );
2725
- const { context, port } = await initIframeMode(
2733
+ const port = await initIframeMode(
2726
2734
  {
2727
2735
  config: this.config,
2728
2736
  state: {
@@ -2751,8 +2759,7 @@ var HaexVaultSdk = class {
2751
2759
  }
2752
2760
  },
2753
2761
  this.log.bind(this),
2754
- this.messageHandler,
2755
- this.request.bind(this)
2762
+ this.messageHandler
2756
2763
  );
2757
2764
  this.hostPort = port;
2758
2765
  if (this.config.manifest) {
@@ -2764,6 +2771,8 @@ var HaexVaultSdk = class {
2764
2771
  };
2765
2772
  this.notifySubscribersInternal();
2766
2773
  }
2774
+ const context = await this.request(EXTENSION_COMMANDS.getContext);
2775
+ this.log("Application context received:", context);
2767
2776
  this._context = context;
2768
2777
  this.isNativeWindow = false;
2769
2778
  this.initialized = true;