@mocanetwork/airkit 1.1.0 → 1.2.0-beta.1

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.
@@ -120,6 +120,8 @@ const AirAuthMessageTypes = {
120
120
  SIGN_SIWE_MESSAGE_RESPONSE: "air_auth_sign_siwe_message_response",
121
121
  CROSS_PARTNER_TOKEN_REQUEST: "air_auth_cross_partner_token_request",
122
122
  CROSS_PARTNER_TOKEN_RESPONSE: "air_auth_cross_partner_token_response",
123
+ GET_PARTNER_ACCESS_TOKEN_REQUEST: "air_auth_get_partner_access_token_request",
124
+ GET_PARTNER_ACCESS_TOKEN_RESPONSE: "air_auth_get_partner_access_token_response",
123
125
  LOGOUT_REQUEST: "air_auth_logout_request",
124
126
  LOGOUT_RESPONSE: "air_auth_logout_response",
125
127
  RESET_WALLET_COMMUNICATION: "air_auth_reset_wallet_communication"
@@ -145,7 +147,12 @@ const AirMessageTypes = {
145
147
  EXECUTE_ACTION_RESPONSE: "air_execute_action_response",
146
148
  REVOKE_PERMISSIONS_REQUEST: "air_revoke_permissions_request",
147
149
  REVOKE_PERMISSIONS_RESPONSE: "air_revoke_permissions_response",
150
+ LIST_ALL_SESSION_KEY_SCOPES_REQUEST: "air_list_all_session_key_scopes_request",
151
+ LIST_ALL_SESSION_KEY_SCOPES_RESPONSE: "air_list_all_session_key_scopes_response",
148
152
  WALLET_IFRAME_VISIBILITY_REQUEST: "air_wallet_iframe_visibility_request",
153
+ OPEN_WINDOW_REQUEST: "air_open_window_request",
154
+ OPEN_WINDOW_RESPONSE: "air_open_window_response",
155
+ WINDOW_CLOSED: "air_window_closed",
149
156
  IS_SMART_ACCOUNT_DEPLOYED_REQUEST: "air_is_smart_account_deployed_request",
150
157
  IS_SMART_ACCOUNT_DEPLOYED_RESPONSE: "air_is_smart_account_deployed_response",
151
158
  LOGOUT_REQUEST: "air_logout_request",
@@ -173,6 +180,16 @@ class BaseError extends Error {
173
180
  };
174
181
  }
175
182
  }
183
+ function ensureError(value) {
184
+ if (value instanceof Error) return value;
185
+ let stringified = "[Unable to stringify the thrown value]";
186
+ try {
187
+ stringified = JSON.stringify(value);
188
+ } catch {
189
+ // ignoring failed stringify
190
+ }
191
+ return new Error(`This value was not thrown as type Error: ${stringified}`);
192
+ }
176
193
 
177
194
  class AirServiceError extends BaseError {
178
195
  static from(error) {
@@ -1376,9 +1393,11 @@ const ACCOUNT_MESSAGES = [
1376
1393
  AirMessageTypes.EXECUTE_ACTION_RESPONSE,
1377
1394
  AirMessageTypes.REVOKE_PERMISSIONS_RESPONSE,
1378
1395
  AirMessageTypes.GRANT_PERMISSIONS_RESPONSE,
1396
+ AirMessageTypes.LIST_ALL_SESSION_KEY_SCOPES_RESPONSE,
1379
1397
  AirMessageTypes.WALLET_INITIALIZED,
1380
1398
  AirMessageTypes.WALLET_IFRAME_VISIBILITY_REQUEST,
1381
1399
  AirMessageTypes.LOGOUT_RESPONSE,
1400
+ AirMessageTypes.OPEN_WINDOW_REQUEST,
1382
1401
  ];
1383
1402
  const AUTH_MESSAGES = [
1384
1403
  AirAuthMessageTypes.INITIALIZATION_RESPONSE,
@@ -1388,6 +1407,7 @@ const AUTH_MESSAGES = [
1388
1407
  AirAuthMessageTypes.LOGOUT_RESPONSE,
1389
1408
  AirAuthMessageTypes.PARTNER_USER_INFO_RESPONSE,
1390
1409
  AirAuthMessageTypes.CROSS_PARTNER_TOKEN_RESPONSE,
1410
+ AirAuthMessageTypes.GET_PARTNER_ACCESS_TOKEN_RESPONSE,
1391
1411
  AirAuthMessageTypes.IFRAME_VISIBILITY_REQUEST,
1392
1412
  ];
1393
1413
  class AirMessageService {
@@ -1601,6 +1621,12 @@ class AirMessageService {
1601
1621
  walletIframe.contentWindow.postMessage({ type: AirMessageTypes.GRANT_PERMISSIONS_REQUEST, payload }, origin);
1602
1622
  return response;
1603
1623
  }
1624
+ async sendListAllSessionKeyScopesRequest(walletIframe) {
1625
+ const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirMessageTypes.LIST_ALL_SESSION_KEY_SCOPES_RESPONSE)));
1626
+ const { origin } = new URL(walletIframe.src);
1627
+ walletIframe.contentWindow.postMessage({ type: AirMessageTypes.LIST_ALL_SESSION_KEY_SCOPES_REQUEST }, origin);
1628
+ return response;
1629
+ }
1604
1630
  onWalletInitialized() {
1605
1631
  return firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirMessageTypes.WALLET_INITIALIZED)));
1606
1632
  }
@@ -1616,6 +1642,37 @@ class AirMessageService {
1616
1642
  walletIframe.contentWindow.postMessage({ type: AirMessageTypes.SETUP_MFA_REQUEST }, origin);
1617
1643
  return response;
1618
1644
  }
1645
+ sendOpenWindowSuccessResponse(walletIframe, windowId, port) {
1646
+ const { origin: walletOrigin } = new URL(walletIframe.src);
1647
+ walletIframe.contentWindow.postMessage({
1648
+ type: AirMessageTypes.OPEN_WINDOW_RESPONSE,
1649
+ payload: {
1650
+ success: true,
1651
+ windowId,
1652
+ },
1653
+ }, walletOrigin, [port]);
1654
+ }
1655
+ sendOpenWindowErrorResponse(walletIframe, windowId, error) {
1656
+ const { origin: walletOrigin } = new URL(walletIframe.src);
1657
+ walletIframe.contentWindow.postMessage({
1658
+ type: AirMessageTypes.OPEN_WINDOW_RESPONSE,
1659
+ payload: {
1660
+ success: false,
1661
+ windowId,
1662
+ errorName: "UNKNOWN_ERROR",
1663
+ errorMessage: error.message,
1664
+ },
1665
+ }, walletOrigin);
1666
+ }
1667
+ sendWindowClosed(walletIframe, windowId) {
1668
+ const { origin: walletOrigin } = new URL(walletIframe.src);
1669
+ walletIframe.contentWindow.postMessage({
1670
+ type: AirMessageTypes.WINDOW_CLOSED,
1671
+ payload: {
1672
+ windowId,
1673
+ },
1674
+ }, walletOrigin);
1675
+ }
1619
1676
  async sendClaimIdRequest(walletIframe, payload) {
1620
1677
  const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirMessageTypes.CLAIM_ID_RESPONSE)));
1621
1678
  const { origin } = new URL(walletIframe.src);
@@ -1662,11 +1719,18 @@ class AirMessageService {
1662
1719
  this._providerMessage$ = new Subject();
1663
1720
  this._providerEvent$ = new Subject();
1664
1721
  }
1722
+ async sendGetPartnerAccessTokenRequest(authIframe) {
1723
+ const response = firstValueFrom(this.authMessage$.pipe(filter((msg) => msg.type === AirAuthMessageTypes.GET_PARTNER_ACCESS_TOKEN_RESPONSE)));
1724
+ const { origin } = new URL(authIframe.src);
1725
+ authIframe.contentWindow.postMessage({ type: AirAuthMessageTypes.GET_PARTNER_ACCESS_TOKEN_REQUEST }, origin);
1726
+ return response;
1727
+ }
1665
1728
  }
1666
1729
  var AirMessageService$1 = AirMessageService.instance;
1667
1730
 
1668
1731
  const BUILD_ENV = {
1669
1732
  PRODUCTION: "production",
1733
+ UAT: "uat",
1670
1734
  STAGING: "staging",
1671
1735
  DEVELOPMENT: "development",
1672
1736
  };
@@ -1677,6 +1741,11 @@ const AIR_URLS = {
1677
1741
  walletUrl: "http://localhost:8200",
1678
1742
  logLevel: "debug",
1679
1743
  },
1744
+ [BUILD_ENV.UAT]: {
1745
+ authUrl: "https://auth.uat.air3.com",
1746
+ walletUrl: "https://account.uat.air3.com",
1747
+ logLevel: "info",
1748
+ },
1680
1749
  [BUILD_ENV.STAGING]: {
1681
1750
  authUrl: "https://auth.staging.air3.com",
1682
1751
  walletUrl: "https://account.staging.air3.com",
@@ -1690,6 +1759,24 @@ const AIR_URLS = {
1690
1759
  };
1691
1760
  const isElement = (element) => element instanceof Element || element instanceof Document;
1692
1761
  const randomId = () => Math.random().toString(36).slice(2);
1762
+ const getWindowFeatures = (width, height) => {
1763
+ const dualScreenLeft = window.screenLeft !== undefined ? window.screenLeft : window.screenX;
1764
+ const dualScreenTop = window.screenTop !== undefined ? window.screenTop : window.screenY;
1765
+ const w = window.innerWidth
1766
+ ? window.innerWidth
1767
+ : document.documentElement.clientWidth
1768
+ ? document.documentElement.clientWidth
1769
+ : window.screen.width;
1770
+ const h = window.innerHeight
1771
+ ? window.innerHeight
1772
+ : document.documentElement.clientHeight
1773
+ ? document.documentElement.clientHeight
1774
+ : window.screen.height;
1775
+ const systemZoom = 1; // No reliable estimate
1776
+ const left = Math.abs((w - width) / 2 / systemZoom + dualScreenLeft);
1777
+ const top = Math.abs((h - height) / 2 / systemZoom + dualScreenTop);
1778
+ return `titlebar=0,toolbar=0,status=0,location=0,menubar=0,height=${height / systemZoom},width=${width / systemZoom},top=${top},left=${left}`;
1779
+ };
1693
1780
 
1694
1781
  var _AirWalletProvider_instances, _AirWalletProvider_isLoggedIn, _AirWalletProvider_ensureWallet, _AirWalletProvider_getWalletIframeController, _AirWalletProvider_eventListeners, _AirWalletProvider_emit;
1695
1782
  class AirWalletProvider {
@@ -1846,7 +1933,145 @@ IframeController.defaultState = {
1846
1933
  isVisible: false,
1847
1934
  };
1848
1935
 
1849
- var _AirService_instances, _AirService_loginResult, _AirService_buildEnv, _AirService_enableLogging, _AirService_partnerId, _AirService_authIframeController, _AirService_isAuthInitialized, _AirService_airAuthListener, _AirService_walletIframeController, _AirService_walletInitialization, _AirService_walletLoggedInResult, _AirService_airWalletProvider, _AirService_ensureWallet, _AirService_initializeWallet, _AirService_triggerEventListeners, _AirService_triggerAirAuthInitialized, _AirService_triggerAirAuthLoggedIn, _AirService_triggerAirAuthLoggedOut, _AirService_triggerWalletInitialized, _AirService_createLoginResult, _AirService_createWalletInitializedResult, _AirService_cleanUpAuth, _AirService_cleanUpWallet;
1936
+ class WindowController {
1937
+ get messages$() {
1938
+ return this._messages$.asObservable();
1939
+ }
1940
+ constructor(windowUrl, windowId) {
1941
+ this._windowInstance = null;
1942
+ this._messageHandler = null;
1943
+ this._messages$ = new Subject();
1944
+ this.windowUrl = windowUrl;
1945
+ this.windowOrigin = new URL(windowUrl).origin;
1946
+ this.windowId = windowId;
1947
+ }
1948
+ get windowInstance() {
1949
+ return this._windowInstance;
1950
+ }
1951
+ openWindow() {
1952
+ if (this._windowInstance && !this._windowInstance.closed) {
1953
+ this._windowInstance.focus();
1954
+ return this._windowInstance;
1955
+ }
1956
+ const windowInstance = window.open(this.windowUrl, this.windowId, getWindowFeatures(400, 600));
1957
+ if (!windowInstance) {
1958
+ throw new Error("Failed to open window. Popup might be blocked by the browser.");
1959
+ }
1960
+ this._windowInstance = windowInstance;
1961
+ this._messageHandler = (ev) => {
1962
+ if (ev.source !== windowInstance ||
1963
+ ev.origin !== this.windowOrigin ||
1964
+ !ev.data ||
1965
+ !(ev.data instanceof Object)) {
1966
+ return;
1967
+ }
1968
+ this._messages$.next(ev);
1969
+ };
1970
+ window.addEventListener("message", this._messageHandler);
1971
+ const checkWindow = setInterval(() => {
1972
+ if (!this._windowInstance || this._windowInstance?.closed) {
1973
+ this.cleanup();
1974
+ clearInterval(checkWindow);
1975
+ }
1976
+ }, 500);
1977
+ return windowInstance;
1978
+ }
1979
+ postMessage(message, transfer) {
1980
+ if (!this._windowInstance)
1981
+ return;
1982
+ this._windowInstance.postMessage(message, this.windowOrigin, transfer);
1983
+ }
1984
+ onMessage(callback) {
1985
+ const listener = (ev) => {
1986
+ if (ev.source !== this._windowInstance)
1987
+ return;
1988
+ callback(ev);
1989
+ };
1990
+ window.addEventListener("message", listener);
1991
+ const close = () => window.removeEventListener("message", listener);
1992
+ this.onClose(close);
1993
+ return {
1994
+ close,
1995
+ };
1996
+ }
1997
+ cleanup() {
1998
+ if (this._windowInstance && !this._windowInstance.closed) {
1999
+ this._windowInstance.close();
2000
+ }
2001
+ if (this._messageHandler) {
2002
+ window.removeEventListener("message", this._messageHandler);
2003
+ this._messageHandler = null;
2004
+ }
2005
+ if (this._messages$ && !this._messages$.closed) {
2006
+ this._messages$.complete();
2007
+ }
2008
+ this._windowInstance = null;
2009
+ }
2010
+ onClose(callback) {
2011
+ return this._messages$.subscribe({
2012
+ complete: callback,
2013
+ });
2014
+ }
2015
+ }
2016
+
2017
+ class WindowService {
2018
+ constructor() {
2019
+ this.windowControllers = new Map();
2020
+ }
2021
+ static get instance() {
2022
+ return this._instance || (this._instance = new this());
2023
+ }
2024
+ async sendWindowInitializationRequest(windowId, payload, port) {
2025
+ const windowController = this.windowControllers.get(windowId);
2026
+ if (!windowController) {
2027
+ throw new Error("Window controller not found");
2028
+ }
2029
+ const windowInstance = windowController.windowInstance;
2030
+ if (!windowInstance) {
2031
+ throw new Error("Window instance not found");
2032
+ }
2033
+ const response = firstValueFrom(windowController.messages$.pipe(filter((event) => event.data.type === AirMessageTypes.INITIALIZATION_RESPONSE)));
2034
+ windowController.postMessage({ type: AirMessageTypes.INITIALIZATION_REQUEST, payload }, [port]);
2035
+ return (await response).data;
2036
+ }
2037
+ async openAndInitializeWalletServiceWindow({ url, windowId, partnerId, enableLogging, port, }) {
2038
+ if (this.windowControllers.has(windowId)) {
2039
+ throw new Error("Window controller already exists");
2040
+ }
2041
+ const windowController = new WindowController(url, windowId);
2042
+ this.windowControllers.set(windowId, windowController);
2043
+ windowController.openWindow();
2044
+ windowController.onClose(() => {
2045
+ this.removeWindowController(windowId);
2046
+ });
2047
+ await new Promise((resolve, reject) => {
2048
+ windowController.onMessage(async (ev) => {
2049
+ if (ev.data === AirMessageTypes.SERVICE_STARTED) {
2050
+ const { payload } = await this.sendWindowInitializationRequest(windowId, {
2051
+ partnerId,
2052
+ enableLogging,
2053
+ }, port);
2054
+ if (payload.success === false) {
2055
+ reject(new AirServiceError(payload.errorName, payload.errorMessage));
2056
+ }
2057
+ else {
2058
+ resolve();
2059
+ }
2060
+ }
2061
+ });
2062
+ });
2063
+ return windowController;
2064
+ }
2065
+ getWindowController(windowId) {
2066
+ return this.windowControllers.get(windowId);
2067
+ }
2068
+ removeWindowController(windowId) {
2069
+ this.windowControllers.delete(windowId);
2070
+ }
2071
+ }
2072
+ var WindowService$1 = WindowService.instance;
2073
+
2074
+ var _AirService_instances, _AirService_loginResult, _AirService_buildEnv, _AirService_enableLogging, _AirService_partnerId, _AirService_authIframeController, _AirService_isAuthInitialized, _AirService_airAuthListener, _AirService_walletIframeController, _AirService_walletInitialization, _AirService_walletLoggedInResult, _AirService_airWalletProvider, _AirService_ensureWallet, _AirService_initializeWallet, _AirService_subscribeToWalletEvents, _AirService_triggerEventListeners, _AirService_triggerAirAuthInitialized, _AirService_triggerAirAuthLoggedIn, _AirService_triggerAirAuthLoggedOut, _AirService_triggerWalletInitialized, _AirService_createLoginResult, _AirService_createWalletInitializedResult, _AirService_cleanUpAuth, _AirService_cleanUpWallet;
1850
2075
  class AirService {
1851
2076
  constructor({ partnerId }) {
1852
2077
  _AirService_instances.add(this);
@@ -2033,6 +2258,24 @@ class AirService {
2033
2258
  throw AirServiceError.from(error);
2034
2259
  }
2035
2260
  }
2261
+ /**
2262
+ * @experimental This method is experimental and will change in the future.
2263
+ */
2264
+ async listAllSessionKeyScopes() {
2265
+ if (!__classPrivateFieldGet(this, _AirService_isAuthInitialized, "f"))
2266
+ throw new Error("Service is not initialized");
2267
+ await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_ensureWallet).call(this);
2268
+ try {
2269
+ const { payload } = await AirMessageService$1.sendListAllSessionKeyScopesRequest(__classPrivateFieldGet(this, _AirService_walletIframeController, "f").iframeElement);
2270
+ if (payload.success === false) {
2271
+ throw new AirServiceError(payload.errorName, payload.errorMessage);
2272
+ }
2273
+ return payload.sessionKeyScopes;
2274
+ }
2275
+ catch (error) {
2276
+ throw AirServiceError.from(error);
2277
+ }
2278
+ }
2036
2279
  /**
2037
2280
  * @experimental This method is experimental and will change in the future.
2038
2281
  */
@@ -2163,6 +2406,20 @@ class AirService {
2163
2406
  clearEventListeners() {
2164
2407
  __classPrivateFieldSet(this, _AirService_airAuthListener, [], "f");
2165
2408
  }
2409
+ async getPartnerAccessToken() {
2410
+ if (!__classPrivateFieldGet(this, _AirService_isAuthInitialized, "f"))
2411
+ throw new Error("Service is not initialized");
2412
+ if (!this.isLoggedIn)
2413
+ throw new Error("No active session to get partner access token");
2414
+ const result = await AirMessageService$1.sendGetPartnerAccessTokenRequest(__classPrivateFieldGet(this, _AirService_authIframeController, "f").iframeElement);
2415
+ if (result.payload.success === false) {
2416
+ throw new AirServiceError(result.payload.errorName, result.payload.errorMessage);
2417
+ }
2418
+ if (!result.payload.partnerAccessToken) {
2419
+ throw new Error("Partner access token not found in response");
2420
+ }
2421
+ return result.payload.partnerAccessToken;
2422
+ }
2166
2423
  }
2167
2424
  _AirService_loginResult = new WeakMap(), _AirService_buildEnv = new WeakMap(), _AirService_enableLogging = new WeakMap(), _AirService_partnerId = new WeakMap(), _AirService_authIframeController = new WeakMap(), _AirService_isAuthInitialized = new WeakMap(), _AirService_airAuthListener = new WeakMap(), _AirService_walletIframeController = new WeakMap(), _AirService_walletInitialization = new WeakMap(), _AirService_walletLoggedInResult = new WeakMap(), _AirService_airWalletProvider = new WeakMap(), _AirService_instances = new WeakSet(), _AirService_ensureWallet = async function _AirService_ensureWallet(option) {
2168
2425
  if (!this.isInitialized)
@@ -2201,23 +2458,7 @@ _AirService_loginResult = new WeakMap(), _AirService_buildEnv = new WeakMap(), _
2201
2458
  try {
2202
2459
  __classPrivateFieldSet(this, _AirService_walletIframeController, new IframeController(walletUrl, `air-wallet-${randomId()}`), "f");
2203
2460
  __classPrivateFieldGet(this, _AirService_walletIframeController, "f").createIframe();
2204
- AirMessageService$1.messages$.subscribe(async (msg) => {
2205
- switch (msg.type) {
2206
- case AirMessageTypes.WALLET_IFRAME_VISIBILITY_REQUEST: {
2207
- const walletIframeController = __classPrivateFieldGet(this, _AirService_walletIframeController, "f");
2208
- walletIframeController.setIframeVisibility(msg.payload.visible);
2209
- walletIframeController.updateIframeState();
2210
- break;
2211
- }
2212
- case AirMessageTypes.WALLET_LOGIN_RESPONSE: {
2213
- if (msg.payload.success === true && !__classPrivateFieldGet(this, _AirService_walletLoggedInResult, "f")) {
2214
- __classPrivateFieldSet(this, _AirService_walletLoggedInResult, __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_createWalletInitializedResult).call(this, msg.payload), "f");
2215
- __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_triggerWalletInitialized).call(this, __classPrivateFieldGet(this, _AirService_walletLoggedInResult, "f"));
2216
- }
2217
- break;
2218
- }
2219
- }
2220
- });
2461
+ __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_subscribeToWalletEvents).call(this);
2221
2462
  await new Promise((resolve, reject) => {
2222
2463
  const handleAuthMessage = async (ev) => {
2223
2464
  if (ev.origin !== walletIframeOrigin)
@@ -2256,6 +2497,43 @@ _AirService_loginResult = new WeakMap(), _AirService_buildEnv = new WeakMap(), _
2256
2497
  await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_cleanUpWallet).call(this);
2257
2498
  throw error;
2258
2499
  }
2500
+ }, _AirService_subscribeToWalletEvents = function _AirService_subscribeToWalletEvents() {
2501
+ AirMessageService$1.messages$.subscribe(async (msg) => {
2502
+ switch (msg.type) {
2503
+ case AirMessageTypes.WALLET_IFRAME_VISIBILITY_REQUEST: {
2504
+ const walletIframeController = __classPrivateFieldGet(this, _AirService_walletIframeController, "f");
2505
+ walletIframeController.setIframeVisibility(msg.payload.visible);
2506
+ walletIframeController.updateIframeState();
2507
+ break;
2508
+ }
2509
+ case AirMessageTypes.WALLET_LOGIN_RESPONSE: {
2510
+ if (msg.payload.success === true && !__classPrivateFieldGet(this, _AirService_walletLoggedInResult, "f")) {
2511
+ __classPrivateFieldSet(this, _AirService_walletLoggedInResult, __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_createWalletInitializedResult).call(this, msg.payload), "f");
2512
+ __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_triggerWalletInitialized).call(this, __classPrivateFieldGet(this, _AirService_walletLoggedInResult, "f"));
2513
+ }
2514
+ break;
2515
+ }
2516
+ case AirMessageTypes.OPEN_WINDOW_REQUEST: {
2517
+ try {
2518
+ const channel = new MessageChannel();
2519
+ const windowController = await WindowService$1.openAndInitializeWalletServiceWindow({
2520
+ url: msg.payload.url,
2521
+ windowId: msg.payload.windowId,
2522
+ partnerId: __classPrivateFieldGet(this, _AirService_partnerId, "f"),
2523
+ enableLogging: __classPrivateFieldGet(this, _AirService_enableLogging, "f"),
2524
+ port: channel.port1,
2525
+ });
2526
+ windowController.onClose(() => AirMessageService$1.sendWindowClosed(__classPrivateFieldGet(this, _AirService_walletIframeController, "f").iframeElement, msg.payload.windowId));
2527
+ AirMessageService$1.sendOpenWindowSuccessResponse(__classPrivateFieldGet(this, _AirService_walletIframeController, "f").iframeElement, msg.payload.windowId, channel.port2);
2528
+ }
2529
+ catch (err) {
2530
+ const error = ensureError(err);
2531
+ AirMessageService$1.sendOpenWindowErrorResponse(__classPrivateFieldGet(this, _AirService_walletIframeController, "f").iframeElement, msg.payload.windowId, error);
2532
+ }
2533
+ break;
2534
+ }
2535
+ }
2536
+ });
2259
2537
  }, _AirService_triggerEventListeners = function _AirService_triggerEventListeners(data) {
2260
2538
  __classPrivateFieldGet(this, _AirService_airAuthListener, "f").forEach((listener) => {
2261
2539
  listener(data);