@mocanetwork/airkit 1.2.1 → 1.3.0

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.
@@ -41,7 +41,7 @@ function __values(o) {
41
41
  if (m) return m.call(o);
42
42
  if (o && typeof o.length === "number") return {
43
43
  next: function () {
44
- if (o && i >= o.length) o = undefined;
44
+ if (o && i >= o.length) o = void 0;
45
45
  return {
46
46
  value: o && o[i++],
47
47
  done: !o
@@ -122,6 +122,8 @@ const AirAuthMessageTypes = {
122
122
  CROSS_PARTNER_TOKEN_RESPONSE: "air_auth_cross_partner_token_response",
123
123
  PARTNER_ACCESS_TOKEN_REQUEST: "air_auth_partner_access_token_request",
124
124
  PARTNER_ACCESS_TOKEN_RESPONSE: "air_auth_partner_access_token_response",
125
+ CREDENTIAL_SALT_REQUEST: "air_auth_credential_salt_request",
126
+ CREDENTIAL_SALT_RESPONSE: "air_auth_credential_salt_response",
125
127
  LOGOUT_REQUEST: "air_auth_logout_request",
126
128
  LOGOUT_RESPONSE: "air_auth_logout_response",
127
129
  RESET_WALLET_COMMUNICATION: "air_auth_reset_wallet_communication"
@@ -141,14 +143,6 @@ const AirWalletMessageTypes = {
141
143
  CLAIM_ID_RESPONSE: "air_claim_id_response",
142
144
  DEPLOY_SMART_ACCOUNT_REQUEST: "air_deploy_smart_account_request",
143
145
  DEPLOY_SMART_ACCOUNT_RESPONSE: "air_deploy_smart_account_response",
144
- GRANT_PERMISSIONS_REQUEST: "air_grant_permissions_request",
145
- GRANT_PERMISSIONS_RESPONSE: "air_grant_permissions_response",
146
- EXECUTE_ACTION_REQUEST: "air_execute_action_request",
147
- EXECUTE_ACTION_RESPONSE: "air_execute_action_response",
148
- REVOKE_PERMISSIONS_REQUEST: "air_revoke_permissions_request",
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",
152
146
  WALLET_IFRAME_VISIBILITY_REQUEST: "air_wallet_iframe_visibility_request",
153
147
  OPEN_WINDOW_REQUEST: "air_open_window_request",
154
148
  OPEN_WINDOW_RESPONSE: "air_open_window_response",
@@ -202,20 +196,20 @@ const BUILD_ENV = {
202
196
 
203
197
  const AIR_URLS = {
204
198
  [BUILD_ENV.DEVELOPMENT]: {
205
- authUrl: "http://localhost:8100",
206
- walletUrl: "http://localhost:8200",
199
+ authUrl: "http://localhost:8200/auth/",
200
+ walletUrl: "http://localhost:8200/wallet/",
207
201
  },
208
202
  [BUILD_ENV.UAT]: {
209
- authUrl: "https://auth.uat.air3.com",
210
- walletUrl: "https://account.uat.air3.com",
203
+ authUrl: "https://account.uat.air3.com/auth/",
204
+ walletUrl: "https://account.uat.air3.com/wallet/",
211
205
  },
212
206
  [BUILD_ENV.STAGING]: {
213
- authUrl: "https://auth.staging.air3.com",
214
- walletUrl: "https://account.staging.air3.com",
207
+ authUrl: "https://account.staging.air3.com/auth/",
208
+ walletUrl: "https://account.staging.air3.com/wallet/",
215
209
  },
216
210
  [BUILD_ENV.PRODUCTION]: {
217
- authUrl: "https://auth.air3.com",
218
- walletUrl: "https://account.air3.com",
211
+ authUrl: "https://account.air3.com/auth/",
212
+ walletUrl: "https://account.air3.com/wallet/",
219
213
  },
220
214
  };
221
215
  const isElement = (element) => element instanceof Element || element instanceof Document;
@@ -829,7 +823,7 @@ var Subscription = function () {
829
823
  }
830
824
  teardown._addParent(this);
831
825
  }
832
- (this._finalizers = (_a = this._finalizers) !== null && _a !== undefined ? _a : []).push(teardown);
826
+ (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown);
833
827
  }
834
828
  }
835
829
  };
@@ -876,12 +870,7 @@ function execFinalizer(finalizer) {
876
870
  }
877
871
 
878
872
  var config = {
879
- onUnhandledError: null,
880
- onStoppedNotification: null,
881
- Promise: undefined,
882
- useDeprecatedSynchronousErrorHandling: false,
883
- useDeprecatedNextContext: false
884
- };
873
+ Promise: undefined};
885
874
 
886
875
  var timeoutProvider = {
887
876
  setTimeout: function (handler, timeout) {
@@ -889,7 +878,7 @@ var timeoutProvider = {
889
878
  for (var _i = 2; _i < arguments.length; _i++) {
890
879
  args[_i - 2] = arguments[_i];
891
880
  }
892
- return setTimeout.apply(undefined, __spreadArray([handler, timeout], __read(args)));
881
+ return setTimeout.apply(void 0, __spreadArray([handler, timeout], __read(args)));
893
882
  },
894
883
  clearTimeout: function (handle) {
895
884
  return (clearTimeout)(handle);
@@ -1019,9 +1008,9 @@ var SafeSubscriber = function (_super) {
1019
1008
  var partialObserver;
1020
1009
  if (isFunction(observerOrNext) || !observerOrNext) {
1021
1010
  partialObserver = {
1022
- next: observerOrNext !== null && observerOrNext !== undefined ? observerOrNext : undefined,
1023
- error: error !== null && error !== undefined ? error : undefined,
1024
- complete: complete !== null && complete !== undefined ? complete : undefined
1011
+ next: observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : undefined,
1012
+ error: error !== null && error !== void 0 ? error : undefined,
1013
+ complete: complete !== null && complete !== void 0 ? complete : undefined
1025
1014
  };
1026
1015
  } else {
1027
1016
  {
@@ -1121,7 +1110,7 @@ var Observable = function () {
1121
1110
  };
1122
1111
  Observable.prototype._subscribe = function (subscriber) {
1123
1112
  var _a;
1124
- return (_a = this.source) === null || _a === undefined ? undefined : _a.subscribe(subscriber);
1113
+ return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber);
1125
1114
  };
1126
1115
  Observable.prototype[observable] = function () {
1127
1116
  return this;
@@ -1154,7 +1143,7 @@ var Observable = function () {
1154
1143
  }();
1155
1144
  function getPromiseCtor(promiseCtor) {
1156
1145
  var _a;
1157
- return (_a = promiseCtor !== null && promiseCtor !== undefined ? promiseCtor : config.Promise) !== null && _a !== undefined ? _a : Promise;
1146
+ return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a !== void 0 ? _a : Promise;
1158
1147
  }
1159
1148
  function isObserver(value) {
1160
1149
  return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);
@@ -1164,7 +1153,7 @@ function isSubscriber(value) {
1164
1153
  }
1165
1154
 
1166
1155
  function hasLift(source) {
1167
- return isFunction(source === null || source === undefined ? undefined : source.lift);
1156
+ return isFunction(source === null || source === void 0 ? void 0 : source.lift);
1168
1157
  }
1169
1158
  function operate(init) {
1170
1159
  return function (source) {
@@ -1222,7 +1211,7 @@ var OperatorSubscriber = function (_super) {
1222
1211
  if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {
1223
1212
  var closed_1 = this.closed;
1224
1213
  _super.prototype.unsubscribe.call(this);
1225
- !closed_1 && ((_a = this.onFinalize) === null || _a === undefined ? undefined : _a.call(this));
1214
+ !closed_1 && ((_a = this.onFinalize) === null || _a === void 0 ? void 0 : _a.call(this));
1226
1215
  }
1227
1216
  };
1228
1217
  return OperatorSubscriber;
@@ -1320,7 +1309,7 @@ var Subject = function (_super) {
1320
1309
  Object.defineProperty(Subject.prototype, "observed", {
1321
1310
  get: function () {
1322
1311
  var _a;
1323
- return ((_a = this.observers) === null || _a === undefined ? undefined : _a.length) > 0;
1312
+ return ((_a = this.observers) === null || _a === void 0 ? void 0 : _a.length) > 0;
1324
1313
  },
1325
1314
  enumerable: false,
1326
1315
  configurable: true
@@ -1381,19 +1370,19 @@ var AnonymousSubject = function (_super) {
1381
1370
  }
1382
1371
  AnonymousSubject.prototype.next = function (value) {
1383
1372
  var _a, _b;
1384
- (_b = (_a = this.destination) === null || _a === undefined ? undefined : _a.next) === null || _b === undefined ? undefined : _b.call(_a, value);
1373
+ (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.next) === null || _b === void 0 ? void 0 : _b.call(_a, value);
1385
1374
  };
1386
1375
  AnonymousSubject.prototype.error = function (err) {
1387
1376
  var _a, _b;
1388
- (_b = (_a = this.destination) === null || _a === undefined ? undefined : _a.error) === null || _b === undefined ? undefined : _b.call(_a, err);
1377
+ (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.call(_a, err);
1389
1378
  };
1390
1379
  AnonymousSubject.prototype.complete = function () {
1391
1380
  var _a, _b;
1392
- (_b = (_a = this.destination) === null || _a === undefined ? undefined : _a.complete) === null || _b === undefined ? undefined : _b.call(_a);
1381
+ (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.complete) === null || _b === void 0 ? void 0 : _b.call(_a);
1393
1382
  };
1394
1383
  AnonymousSubject.prototype._subscribe = function (subscriber) {
1395
1384
  var _a, _b;
1396
- return (_b = (_a = this.source) === null || _a === undefined ? undefined : _a.subscribe(subscriber)) !== null && _b !== undefined ? _b : EMPTY_SUBSCRIPTION;
1385
+ return (_b = (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber)) !== null && _b !== void 0 ? _b : EMPTY_SUBSCRIPTION;
1397
1386
  };
1398
1387
  return AnonymousSubject;
1399
1388
  }(Subject);
@@ -1442,6 +1431,28 @@ function filter(predicate, thisArg) {
1442
1431
  });
1443
1432
  }
1444
1433
 
1434
+ const bigIntReplacer = (_key, value) => {
1435
+ return typeof value === "bigint" ? value.toString() : value;
1436
+ };
1437
+ /**
1438
+ * Creates a window features string for `window.open`, based on the current screen size.
1439
+ * It tries to center the window and limits the size to the given max width and height.
1440
+ * Slightly reduces the size to avoid browser auto-resizing.
1441
+ */
1442
+ const getWindowFeatures = (maxWidth, maxHeight) => {
1443
+ const dualScreenLeft = window.screenLeft !== undefined ? window.screenLeft : window.screenX;
1444
+ const dualScreenTop = window.screenTop !== undefined ? window.screenTop : window.screenY;
1445
+ const w = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : window.screen.width;
1446
+ const h = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : window.screen.height;
1447
+ // 95% adjustment for mobile devices, some browser might resize the window
1448
+ const finalWidth = Math.min(w, maxWidth) * 0.95;
1449
+ const finalHeight = Math.min(h, maxHeight) * 0.95;
1450
+ const systemZoom = 1; // No reliable estimate
1451
+ const left = Math.abs((w - finalWidth) / 2 / systemZoom + dualScreenLeft);
1452
+ const top = Math.abs((h - finalHeight) / 2 / systemZoom + dualScreenTop);
1453
+ return `titlebar=0,toolbar=0,status=0,location=0,menubar=0,height=${finalHeight / systemZoom},width=${finalWidth / systemZoom},top=${top},left=${left}`;
1454
+ };
1455
+
1445
1456
  // refer to realm-network-api/src/common/enums/error-codes.enum.ts
1446
1457
  /*** Authentication Errors ***/
1447
1458
  var AuthErrorName;
@@ -1608,7 +1619,15 @@ class MessageServiceBase {
1608
1619
  this.messagePort = target;
1609
1620
  target.onmessage = handleMessage;
1610
1621
  this.closeListener = async () => {
1611
- target.close();
1622
+ this.messagePort?.close();
1623
+ this.messagePort = undefined;
1624
+ };
1625
+ } else if (target instanceof BroadcastChannel) {
1626
+ this.messageChannel = target;
1627
+ target.onmessage = handleMessage;
1628
+ this.closeListener = async () => {
1629
+ this.messageChannel?.close();
1630
+ this.messageChannel = undefined;
1612
1631
  };
1613
1632
  } else {
1614
1633
  this.targetWindow = target.window;
@@ -1650,23 +1669,22 @@ class MessageServiceBase {
1650
1669
  const clonedMessage = this.deepClone(message);
1651
1670
  if (this.messagePort) {
1652
1671
  this.messagePort.postMessage(clonedMessage);
1653
- this.eventSubject.next(new MessageEvent("message", {
1654
- data: clonedMessage,
1655
- origin: window.origin
1656
- }));
1672
+ } else if (this.messageChannel) {
1673
+ this.messageChannel.postMessage(clonedMessage);
1657
1674
  } else if (this.targetWindow && this.targetOrigin) {
1658
1675
  this.targetWindow.postMessage(clonedMessage, this.targetOrigin, transfer);
1659
- this.eventSubject.next(new MessageEvent("message", {
1660
- data: clonedMessage,
1661
- origin: window.origin
1662
- }));
1663
1676
  } else {
1664
1677
  log.debug(`[${this.name}] Not opened yet`);
1678
+ return;
1665
1679
  }
1680
+ this.eventSubject.next(new MessageEvent("message", {
1681
+ data: clonedMessage,
1682
+ origin: window.origin
1683
+ }));
1666
1684
  }
1667
1685
  deepClone(message) {
1668
1686
  try {
1669
- return JSON.parse(JSON.stringify(message));
1687
+ return JSON.parse(JSON.stringify(message, bigIntReplacer));
1670
1688
  } catch (e) {
1671
1689
  log.warn("Error generating cloneable message", e);
1672
1690
  return message;
@@ -1708,16 +1726,16 @@ class ProviderMessageService extends MessageServiceBase {
1708
1726
  }
1709
1727
  }
1710
1728
  _a$2 = ProviderMessageService;
1711
- _ProviderMessageService_instance = { value: undefined };
1729
+ _ProviderMessageService_instance = { value: void 0 };
1712
1730
 
1713
1731
  var _AirWalletProvider_instances, _AirWalletProvider_providerMessageService, _AirWalletProvider_isLoggedIn, _AirWalletProvider_ensureWallet, _AirWalletProvider_eventListeners, _AirWalletProvider_emit;
1714
1732
  class AirWalletProvider {
1715
1733
  constructor({ isLoggedIn, ensureWallet, }) {
1716
1734
  _AirWalletProvider_instances.add(this);
1717
- _AirWalletProvider_providerMessageService.set(this, undefined);
1718
- _AirWalletProvider_isLoggedIn.set(this, undefined);
1719
- _AirWalletProvider_ensureWallet.set(this, undefined);
1720
- _AirWalletProvider_eventListeners.set(this, undefined);
1735
+ _AirWalletProvider_providerMessageService.set(this, void 0);
1736
+ _AirWalletProvider_isLoggedIn.set(this, void 0);
1737
+ _AirWalletProvider_ensureWallet.set(this, void 0);
1738
+ _AirWalletProvider_eventListeners.set(this, void 0);
1721
1739
  this.startEventMessageListening = async (walletIframe) => {
1722
1740
  await __classPrivateFieldGet(this, _AirWalletProvider_providerMessageService, "f").open(walletIframe);
1723
1741
  __classPrivateFieldGet(this, _AirWalletProvider_providerMessageService, "f").messages$
@@ -1757,8 +1775,14 @@ class AirWalletProvider {
1757
1775
  if (!__classPrivateFieldGet(this, _AirWalletProvider_isLoggedIn, "f").call(this)) {
1758
1776
  throw new UnauthorizedProviderError("User is not logged in");
1759
1777
  }
1778
+ const skipWalletLoginMethods = ['eth_chainId'];
1760
1779
  try {
1761
- await __classPrivateFieldGet(this, _AirWalletProvider_ensureWallet, "f").call(this);
1780
+ if (skipWalletLoginMethods.includes(method)) {
1781
+ await __classPrivateFieldGet(this, _AirWalletProvider_ensureWallet, "f").call(this, { skipWalletLogin: true });
1782
+ }
1783
+ else {
1784
+ await __classPrivateFieldGet(this, _AirWalletProvider_ensureWallet, "f").call(this);
1785
+ }
1762
1786
  }
1763
1787
  catch (error) {
1764
1788
  throw ensureProviderRpcError(error);
@@ -1869,25 +1893,6 @@ IframeController.defaultState = {
1869
1893
  isVisible: false,
1870
1894
  };
1871
1895
 
1872
- /**
1873
- * Creates a window features string for `window.open`, based on the current screen size.
1874
- * It tries to center the window and limits the size to the given max width and height.
1875
- * Slightly reduces the size to avoid browser auto-resizing.
1876
- */
1877
- const getWindowFeatures = (maxWidth, maxHeight) => {
1878
- const dualScreenLeft = window.screenLeft !== undefined ? window.screenLeft : window.screenX;
1879
- const dualScreenTop = window.screenTop !== undefined ? window.screenTop : window.screenY;
1880
- const w = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : window.screen.width;
1881
- const h = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : window.screen.height;
1882
- // 95% adjustment for mobile devices, some browser might resize the window
1883
- const finalWidth = Math.min(w, maxWidth) * 0.95;
1884
- const finalHeight = Math.min(h, maxHeight) * 0.95;
1885
- const systemZoom = 1; // No reliable estimate
1886
- const left = Math.abs((w - finalWidth) / 2 / systemZoom + dualScreenLeft);
1887
- const top = Math.abs((h - finalHeight) / 2 / systemZoom + dualScreenTop);
1888
- return `titlebar=0,toolbar=0,status=0,location=0,menubar=0,height=${finalHeight / systemZoom},width=${finalWidth / systemZoom},top=${top},left=${left}`;
1889
- };
1890
-
1891
1896
  class WindowController {
1892
1897
  get messages$() {
1893
1898
  return this._messages$.asObservable();
@@ -2025,7 +2030,7 @@ class WindowService {
2025
2030
  ]);
2026
2031
  return (await response).data;
2027
2032
  }
2028
- async openAndInitializeWalletServiceWindow({ url, windowId, partnerId, enableLogging, onRetry, sdkVersion, }) {
2033
+ async openAndInitializeWalletServiceWindow({ url, windowId, partnerId, enableLogging, onRetry, sdkVersion, enableAutomation, }) {
2029
2034
  if (this.windowControllers.has(windowId)) {
2030
2035
  throw new Error("Window controller already exists");
2031
2036
  }
@@ -2046,6 +2051,7 @@ class WindowService {
2046
2051
  partnerId,
2047
2052
  enableLogging,
2048
2053
  sdkVersion,
2054
+ enableAutomation,
2049
2055
  }, channel.port1);
2050
2056
  if (payload.success === false) {
2051
2057
  reject(new AirServiceError(payload.errorName, payload.errorMessage));
@@ -2091,6 +2097,7 @@ const ALLOWED_AUTH_MESSAGES = [
2091
2097
  AirAuthMessageTypes.CROSS_PARTNER_TOKEN_RESPONSE,
2092
2098
  AirAuthMessageTypes.PARTNER_ACCESS_TOKEN_RESPONSE,
2093
2099
  AirAuthMessageTypes.IFRAME_VISIBILITY_REQUEST,
2100
+ AirAuthMessageTypes.CREDENTIAL_SALT_RESPONSE,
2094
2101
  ];
2095
2102
  class AuthMessageService extends MessageServiceBase {
2096
2103
  static create() {
@@ -2104,10 +2111,10 @@ class AuthMessageService extends MessageServiceBase {
2104
2111
  const window = authIframe.contentWindow;
2105
2112
  await super._open({ window, origin });
2106
2113
  }
2107
- async initWalletCommunication(port) {
2114
+ async initWalletCommunication() {
2108
2115
  await this.sendMessage({
2109
2116
  type: AirAuthMessageTypes.INIT_WALLET_COMMUNICATION,
2110
- }, [port]);
2117
+ });
2111
2118
  }
2112
2119
  async sendPartnerUserInfoRequest() {
2113
2120
  const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirAuthMessageTypes.PARTNER_USER_INFO_RESPONSE)));
@@ -2161,9 +2168,14 @@ class AuthMessageService extends MessageServiceBase {
2161
2168
  await this.sendMessage({ type: AirAuthMessageTypes.PARTNER_ACCESS_TOKEN_REQUEST });
2162
2169
  return response;
2163
2170
  }
2171
+ async sendCredentialSaltRequest() {
2172
+ const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirAuthMessageTypes.CREDENTIAL_SALT_RESPONSE)));
2173
+ await this.sendMessage({ type: AirAuthMessageTypes.CREDENTIAL_SALT_REQUEST });
2174
+ return response;
2175
+ }
2164
2176
  }
2165
2177
  _a$1 = AuthMessageService;
2166
- _AuthMessageService_instance = { value: undefined };
2178
+ _AuthMessageService_instance = { value: void 0 };
2167
2179
 
2168
2180
  var _a, _WalletMessageService_instance;
2169
2181
  const ALLOWED_WALLET_MESSAGES = [
@@ -2174,10 +2186,6 @@ const ALLOWED_WALLET_MESSAGES = [
2174
2186
  AirWalletMessageTypes.CLAIM_ID_RESPONSE,
2175
2187
  AirWalletMessageTypes.IS_SMART_ACCOUNT_DEPLOYED_RESPONSE,
2176
2188
  AirWalletMessageTypes.DEPLOY_SMART_ACCOUNT_RESPONSE,
2177
- AirWalletMessageTypes.EXECUTE_ACTION_RESPONSE,
2178
- AirWalletMessageTypes.REVOKE_PERMISSIONS_RESPONSE,
2179
- AirWalletMessageTypes.GRANT_PERMISSIONS_RESPONSE,
2180
- AirWalletMessageTypes.LIST_ALL_SESSION_KEY_SCOPES_RESPONSE,
2181
2189
  AirWalletMessageTypes.WALLET_INITIALIZED,
2182
2190
  AirWalletMessageTypes.WALLET_IFRAME_VISIBILITY_REQUEST,
2183
2191
  AirWalletMessageTypes.LOGOUT_RESPONSE,
@@ -2196,61 +2204,13 @@ class WalletMessageService extends MessageServiceBase {
2196
2204
  const window = walletIframe.contentWindow;
2197
2205
  await super._open({ window, origin });
2198
2206
  }
2199
- async initAuthCommunication(skipWalletLogin, port) {
2207
+ async initAuthCommunication(skipWalletLogin) {
2200
2208
  await this.sendMessage({
2201
2209
  type: AirWalletMessageTypes.INIT_AUTH_COMMUNICATION,
2202
2210
  payload: {
2203
2211
  skipWalletLogin,
2204
2212
  },
2205
- }, [port]);
2206
- }
2207
- async sendGrantPermissionRequest(policies) {
2208
- const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirWalletMessageTypes.GRANT_PERMISSIONS_RESPONSE)));
2209
- await this.sendMessage({
2210
- type: AirWalletMessageTypes.GRANT_PERMISSIONS_REQUEST,
2211
- payload: {
2212
- policies,
2213
- },
2214
2213
  });
2215
- const result = await response;
2216
- if (result.payload.success === false) {
2217
- throw new AirServiceError(result.payload.errorName, result.payload.errorMessage);
2218
- }
2219
- return result.payload.sessionData;
2220
- }
2221
- async sendExecuteActionRequest(params) {
2222
- const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirWalletMessageTypes.EXECUTE_ACTION_RESPONSE)));
2223
- await this.sendMessage({
2224
- type: AirWalletMessageTypes.EXECUTE_ACTION_REQUEST,
2225
- payload: {
2226
- sessionData: params.sessionData,
2227
- call: {
2228
- to: params.call.to,
2229
- value: params.call.value,
2230
- data: params.call.data,
2231
- },
2232
- sessionOwnerPrivateKey: params.sessionOwnerPrivateKey,
2233
- },
2234
- });
2235
- const result = await response;
2236
- if (result.payload.success === false) {
2237
- throw new AirServiceError(result.payload.errorName, result.payload.errorMessage);
2238
- }
2239
- return result.payload.txHash;
2240
- }
2241
- async sendRevokePermissionsRequest(permissionId) {
2242
- const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirWalletMessageTypes.REVOKE_PERMISSIONS_RESPONSE)));
2243
- await this.sendMessage({
2244
- type: AirWalletMessageTypes.REVOKE_PERMISSIONS_REQUEST,
2245
- payload: {
2246
- permissionId,
2247
- },
2248
- });
2249
- const result = await response;
2250
- if (result.payload.success === false) {
2251
- throw new AirServiceError(result.payload.errorName, result.payload.errorMessage);
2252
- }
2253
- return result.payload.txHash;
2254
2214
  }
2255
2215
  async sendDeploySmartAccountRequest() {
2256
2216
  const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirWalletMessageTypes.DEPLOY_SMART_ACCOUNT_RESPONSE)));
@@ -2276,16 +2236,6 @@ class WalletMessageService extends MessageServiceBase {
2276
2236
  await this.sendMessage({ type: AirWalletMessageTypes.INITIALIZATION_REQUEST, payload });
2277
2237
  return response;
2278
2238
  }
2279
- async sendGrantPermissionsRequest(payload) {
2280
- const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirWalletMessageTypes.GRANT_PERMISSIONS_RESPONSE)));
2281
- await this.sendMessage({ type: AirWalletMessageTypes.GRANT_PERMISSIONS_REQUEST, payload });
2282
- return response;
2283
- }
2284
- async sendListAllSessionKeyScopesRequest() {
2285
- const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirWalletMessageTypes.LIST_ALL_SESSION_KEY_SCOPES_RESPONSE)));
2286
- await this.sendMessage({ type: AirWalletMessageTypes.LIST_ALL_SESSION_KEY_SCOPES_REQUEST });
2287
- return response;
2288
- }
2289
2239
  onInitialized() {
2290
2240
  return firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirWalletMessageTypes.WALLET_INITIALIZED)));
2291
2241
  }
@@ -2342,7 +2292,7 @@ class WalletMessageService extends MessageServiceBase {
2342
2292
  }
2343
2293
  }
2344
2294
  _a = WalletMessageService;
2345
- _WalletMessageService_instance = { value: undefined };
2295
+ _WalletMessageService_instance = { value: void 0 };
2346
2296
 
2347
2297
  const getLevelName = levelNum => {
2348
2298
  const levelNames = Object.keys(log.levels);
@@ -2364,115 +2314,32 @@ const configureLogLevel = (environment, enableLogging) => {
2364
2314
  level = enableLogging ? log.levels.WARN : log.levels.ERROR;
2365
2315
  }
2366
2316
  log.setLevel(level);
2367
- log.info(`[${window?.location?.origin}] LogLevel: ${getLevelName(log.getLevel())}`);
2317
+ log.info(`[${window?.location?.href}] LogLevel: ${getLevelName(log.getLevel())}`);
2368
2318
  };
2369
2319
 
2370
- var name = "@mocanetwork/airkit";
2371
- var version = "1.2.1";
2372
- var description = "Air kit to interact with the Moca Network";
2373
- var main = "dist/airkit.cjs.js";
2374
- var module$1 = "dist/airkit.esm.js";
2375
- var unpkg = "dist/airkit.umd.min.js";
2376
- var jsdelivr = "dist/airkit.umd.min.js";
2377
- var types = "dist/types/index.d.ts";
2378
- var files = [
2379
- "dist"
2380
- ];
2381
- var scripts = {
2382
- build: "rollup --config",
2383
- prepack: "npm run build && npm run postbuild",
2384
- lint: "eslint --fix 'src/**/*.ts'",
2385
- format: "prettier --write 'src/**/*.ts'",
2386
- postbuild: "node scripts/copyAndAdjustDtsFiles.js '../common/src' 'common'"
2387
- };
2388
- var dependencies = {
2389
- "@mocanetwork/airkit-connector": "^1.2.0",
2390
- "fast-deep-equal": "^3.1.3",
2391
- loglevel: "^1.9.2",
2392
- pump: "^3.0.0",
2393
- "readable-stream": "^4.5.2",
2394
- rxjs: "^7.8.1"
2395
- };
2396
- var devDependencies = {
2397
- "@babel/runtime": "^7.25.6",
2398
- "@rushstack/eslint-patch": "^1.10.2",
2399
- "@types/pump": "^1.1.3",
2400
- "@types/readable-stream": "^4.0.15",
2401
- "fs-extra": "^11.2.0",
2402
- glob: "^11.0.0",
2403
- process: "^0.11.10",
2404
- "typescript-eslint": "^8.21.0"
2405
- };
2406
- var mocha = {
2407
- timeout: 0
2408
- };
2409
- var keywords = [
2410
- "airkit",
2411
- "mocaverse",
2412
- "wallet",
2413
- "embed",
2414
- "login",
2415
- "OAuth",
2416
- "crypto"
2417
- ];
2418
- var author = "Mocaverse";
2419
- var license = "ISC";
2420
- var engines = {
2421
- node: ">=18.x",
2422
- npm: ">=9.x"
2423
- };
2424
- var publishConfig = {
2425
- access: "restricted"
2426
- };
2320
+ var version = "1.3.0";
2427
2321
  var airkitPackage = {
2428
- name: name,
2429
- version: version,
2430
- description: description,
2431
- main: main,
2432
- module: module$1,
2433
- unpkg: unpkg,
2434
- jsdelivr: jsdelivr,
2435
- types: types,
2436
- files: files,
2437
- scripts: scripts,
2438
- dependencies: dependencies,
2439
- devDependencies: devDependencies,
2440
- mocha: mocha,
2441
- keywords: keywords,
2442
- author: author,
2443
- license: license,
2444
- "lint-staged": {
2445
- "!(*d).{js,ts}": [
2446
- "eslint --cache --fix",
2447
- "prettier --write"
2448
- ],
2449
- "*.{json, md}": [
2450
- "prettier --write"
2451
- ]
2452
- },
2453
- engines: engines,
2454
- publishConfig: publishConfig
2455
- };
2322
+ version: version};
2456
2323
 
2457
2324
  var _AirService_instances, _AirService_loginResult, _AirService_buildEnv, _AirService_enableLogging, _AirService_partnerId, _AirService_authMessagingService, _AirService_authIframeController, _AirService_isAuthInitialized, _AirService_airAuthListener, _AirService_walletMessagingService, _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;
2458
2325
  const airKitVersion = airkitPackage.version;
2459
2326
  class AirService {
2460
2327
  constructor({ partnerId }) {
2461
2328
  _AirService_instances.add(this);
2462
- _AirService_loginResult.set(this, undefined);
2463
- _AirService_buildEnv.set(this, undefined);
2329
+ _AirService_loginResult.set(this, void 0);
2330
+ _AirService_buildEnv.set(this, void 0);
2464
2331
  _AirService_enableLogging.set(this, false);
2465
- _AirService_partnerId.set(this, undefined);
2332
+ _AirService_partnerId.set(this, void 0);
2466
2333
  //#modalZIndex: number; TODO implement z index overwrite
2467
- _AirService_authMessagingService.set(this, undefined);
2468
- _AirService_authIframeController.set(this, undefined);
2334
+ _AirService_authMessagingService.set(this, void 0);
2335
+ _AirService_authIframeController.set(this, void 0);
2469
2336
  _AirService_isAuthInitialized.set(this, false);
2470
2337
  _AirService_airAuthListener.set(this, []);
2471
- _AirService_walletMessagingService.set(this, undefined);
2472
- _AirService_walletIframeController.set(this, undefined);
2473
- _AirService_walletInitialization.set(this, undefined);
2474
- _AirService_walletLoggedInResult.set(this, undefined);
2475
- _AirService_airWalletProvider.set(this, undefined);
2338
+ _AirService_walletMessagingService.set(this, void 0);
2339
+ _AirService_walletIframeController.set(this, void 0);
2340
+ _AirService_walletInitialization.set(this, void 0);
2341
+ _AirService_walletLoggedInResult.set(this, void 0);
2342
+ _AirService_airWalletProvider.set(this, void 0);
2476
2343
  __classPrivateFieldSet(this, _AirService_partnerId, partnerId, "f");
2477
2344
  __classPrivateFieldSet(this, _AirService_authMessagingService, AuthMessageService.create(), "f");
2478
2345
  __classPrivateFieldSet(this, _AirService_walletMessagingService, WalletMessageService.create(), "f");
@@ -2502,6 +2369,9 @@ class AirService {
2502
2369
  removeListener: provider.removeListener.bind(provider),
2503
2370
  };
2504
2371
  }
2372
+ shouldEnableAutomation() {
2373
+ return localStorage.getItem("automation") === "true" && __classPrivateFieldGet(this, _AirService_buildEnv, "f") !== "production";
2374
+ }
2505
2375
  async init({ buildEnv = BUILD_ENV.PRODUCTION, enableLogging = false, skipRehydration = false, }) {
2506
2376
  if (!__classPrivateFieldGet(this, _AirService_partnerId, "f"))
2507
2377
  throw new Error("Partner ID is required to initialize auth service");
@@ -2515,6 +2385,7 @@ class AirService {
2515
2385
  __classPrivateFieldSet(this, _AirService_authIframeController, new IframeController(authUrl, `air-auth-${randomId()}`), "f");
2516
2386
  try {
2517
2387
  __classPrivateFieldGet(this, _AirService_authIframeController, "f").createIframe();
2388
+ log.info(authUrl, "url loaded");
2518
2389
  await __classPrivateFieldGet(this, _AirService_authMessagingService, "f").open(__classPrivateFieldGet(this, _AirService_authIframeController, "f").iframeElement);
2519
2390
  __classPrivateFieldGet(this, _AirService_authMessagingService, "f").messages$.subscribe(async (msg) => {
2520
2391
  switch (msg.type) {
@@ -2549,6 +2420,7 @@ class AirService {
2549
2420
  partnerDAppUrl: window.location.href,
2550
2421
  sdkVersion: airKitVersion,
2551
2422
  enableLogging: __classPrivateFieldGet(this, _AirService_enableLogging, "f"),
2423
+ enableAutomation: this.shouldEnableAutomation(),
2552
2424
  });
2553
2425
  if (payload.success === true) {
2554
2426
  resolve(payload);
@@ -2613,69 +2485,16 @@ class AirService {
2613
2485
  /**
2614
2486
  * @experimental This method is experimental and will change in the future.
2615
2487
  */
2616
- async grantPermission(policies) {
2617
- if (!__classPrivateFieldGet(this, _AirService_isAuthInitialized, "f"))
2618
- throw new Error("AirAuth is not initialized");
2619
- await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_ensureWallet).call(this);
2620
- try {
2621
- log.info("grantPermission", policies);
2622
- const { payload } = await __classPrivateFieldGet(this, _AirService_walletMessagingService, "f").sendGrantPermissionsRequest({
2623
- policies,
2624
- });
2625
- if (payload.success === false) {
2626
- throw new AirServiceError(payload.errorName, payload.errorMessage);
2627
- }
2628
- return payload.sessionData;
2629
- }
2630
- catch (error) {
2631
- throw AirServiceError.from(error);
2632
- }
2633
- }
2634
- /**
2635
- * @experimental This method is experimental and will change in the future.
2636
- */
2637
- async listAllSessionKeyScopes() {
2488
+ async isSmartAccountDeployed() {
2638
2489
  if (!__classPrivateFieldGet(this, _AirService_isAuthInitialized, "f"))
2639
2490
  throw new Error("Service is not initialized");
2640
2491
  await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_ensureWallet).call(this);
2641
2492
  try {
2642
- const { payload } = await __classPrivateFieldGet(this, _AirService_walletMessagingService, "f").sendListAllSessionKeyScopesRequest();
2493
+ const { payload } = await __classPrivateFieldGet(this, _AirService_walletMessagingService, "f").sendIsSmartAccountDeployedRequest();
2643
2494
  if (payload.success === false) {
2644
2495
  throw new AirServiceError(payload.errorName, payload.errorMessage);
2645
2496
  }
2646
- return payload.sessionKeyScopes;
2647
- }
2648
- catch (error) {
2649
- throw AirServiceError.from(error);
2650
- }
2651
- }
2652
- /**
2653
- * @experimental This method is experimental and will change in the future.
2654
- */
2655
- async executeAction(params) {
2656
- if (!__classPrivateFieldGet(this, _AirService_isAuthInitialized, "f"))
2657
- throw new Error("Service is not initialized");
2658
- await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_ensureWallet).call(this);
2659
- try {
2660
- log.info("executeAction", params);
2661
- const txHash = await __classPrivateFieldGet(this, _AirService_walletMessagingService, "f").sendExecuteActionRequest(params);
2662
- return txHash;
2663
- }
2664
- catch (error) {
2665
- throw AirServiceError.from(error);
2666
- }
2667
- }
2668
- /**
2669
- * @experimental This method is experimental and will change in the future.
2670
- */
2671
- async revokePermission(permissionId) {
2672
- if (!__classPrivateFieldGet(this, _AirService_isAuthInitialized, "f"))
2673
- throw new Error("Service is not initialized");
2674
- await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_ensureWallet).call(this);
2675
- try {
2676
- log.info("revokePermission", permissionId);
2677
- const txHash = await __classPrivateFieldGet(this, _AirService_walletMessagingService, "f").sendRevokePermissionsRequest(permissionId);
2678
- return txHash;
2497
+ return payload.isDeployed;
2679
2498
  }
2680
2499
  catch (error) {
2681
2500
  throw AirServiceError.from(error);
@@ -2684,20 +2503,18 @@ class AirService {
2684
2503
  /**
2685
2504
  * @experimental This method is experimental and will change in the future.
2686
2505
  */
2687
- async isSmartAccountDeployed() {
2506
+ async getCredentialSalt() {
2688
2507
  if (!__classPrivateFieldGet(this, _AirService_isAuthInitialized, "f"))
2689
2508
  throw new Error("Service is not initialized");
2690
- await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_ensureWallet).call(this);
2691
- try {
2692
- const { payload } = await __classPrivateFieldGet(this, _AirService_walletMessagingService, "f").sendIsSmartAccountDeployedRequest();
2693
- if (payload.success === false) {
2694
- throw new AirServiceError(payload.errorName, payload.errorMessage);
2695
- }
2696
- return payload.isDeployed;
2697
- }
2698
- catch (error) {
2699
- throw AirServiceError.from(error);
2509
+ if (!this.isLoggedIn)
2510
+ throw new Error("No active session to get partner access token");
2511
+ const result = await __classPrivateFieldGet(this, _AirService_authMessagingService, "f").sendCredentialSaltRequest();
2512
+ if (result.payload.success === false) {
2513
+ throw new AirServiceError(result.payload.errorName, result.payload.errorMessage);
2700
2514
  }
2515
+ return {
2516
+ credentialSalt: result.payload.credentialSalt,
2517
+ };
2701
2518
  }
2702
2519
  getProvider() {
2703
2520
  return this.provider;
@@ -2829,7 +2646,6 @@ _AirService_loginResult = new WeakMap(), _AirService_buildEnv = new WeakMap(), _
2829
2646
  if (__classPrivateFieldGet(this, _AirService_walletInitialization, "f"))
2830
2647
  throw new Error("Already initializing");
2831
2648
  const { walletUrl } = AIR_URLS[__classPrivateFieldGet(this, _AirService_buildEnv, "f")];
2832
- log.info(walletUrl, "url loaded");
2833
2649
  const walletIframeOrigin = new URL(walletUrl).origin;
2834
2650
  try {
2835
2651
  const walletInitRequestPromise = new Promise((resolve, reject) => {
@@ -2842,6 +2658,7 @@ _AirService_loginResult = new WeakMap(), _AirService_buildEnv = new WeakMap(), _
2842
2658
  partnerId: __classPrivateFieldGet(this, _AirService_partnerId, "f"),
2843
2659
  enableLogging: __classPrivateFieldGet(this, _AirService_enableLogging, "f"),
2844
2660
  sdkVersion: airKitVersion,
2661
+ enableAutomation: this.shouldEnableAutomation(),
2845
2662
  });
2846
2663
  if (payload.success === true) {
2847
2664
  resolve();
@@ -2855,14 +2672,14 @@ _AirService_loginResult = new WeakMap(), _AirService_buildEnv = new WeakMap(), _
2855
2672
  });
2856
2673
  __classPrivateFieldSet(this, _AirService_walletIframeController, new IframeController(walletUrl, `air-wallet-${randomId()}`), "f");
2857
2674
  __classPrivateFieldGet(this, _AirService_walletIframeController, "f").createIframe();
2675
+ log.info(walletUrl, "url loaded");
2858
2676
  await __classPrivateFieldGet(this, _AirService_walletMessagingService, "f").open(__classPrivateFieldGet(this, _AirService_walletIframeController, "f").iframeElement);
2859
2677
  __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_subscribeToWalletEvents).call(this);
2860
2678
  await __classPrivateFieldGet(this, _AirService_airWalletProvider, "f").startEventMessageListening(__classPrivateFieldGet(this, _AirService_walletIframeController, "f").iframeElement);
2861
2679
  const walletInitPromise = __classPrivateFieldGet(this, _AirService_walletMessagingService, "f").onInitialized();
2862
2680
  await walletInitRequestPromise;
2863
- const channel = new MessageChannel();
2864
- await __classPrivateFieldGet(this, _AirService_authMessagingService, "f").initWalletCommunication(channel.port1);
2865
- await __classPrivateFieldGet(this, _AirService_walletMessagingService, "f").initAuthCommunication(option?.skipWalletLogin ?? false, channel.port2);
2681
+ await __classPrivateFieldGet(this, _AirService_authMessagingService, "f").initWalletCommunication();
2682
+ await __classPrivateFieldGet(this, _AirService_walletMessagingService, "f").initAuthCommunication(option?.skipWalletLogin ?? false);
2866
2683
  const walletInitResult = await walletInitPromise;
2867
2684
  if (walletInitResult.payload.success !== true) {
2868
2685
  throw new AirServiceError(walletInitResult.payload.errorName, walletInitResult.payload.errorMessage);
@@ -2908,6 +2725,7 @@ _AirService_loginResult = new WeakMap(), _AirService_buildEnv = new WeakMap(), _
2908
2725
  partnerId: __classPrivateFieldGet(this, _AirService_partnerId, "f"),
2909
2726
  enableLogging: __classPrivateFieldGet(this, _AirService_enableLogging, "f"),
2910
2727
  sdkVersion: airKitVersion,
2728
+ enableAutomation: this.shouldEnableAutomation(),
2911
2729
  onRetry,
2912
2730
  });
2913
2731
  windowController.onClose(async () => await __classPrivateFieldGet(this, _AirService_walletMessagingService, "f").sendWindowClosed(msg.payload.windowId));