@web3auth/no-modal 10.0.0-beta.9 → 10.0.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.
Files changed (124) hide show
  1. package/dist/lib.cjs/base/analytics.js +121 -0
  2. package/dist/lib.cjs/base/connector/constants.js +2 -1
  3. package/dist/lib.cjs/base/constants.js +13 -0
  4. package/dist/lib.cjs/base/cookie.js +38 -0
  5. package/dist/lib.cjs/base/deserialize.js +13 -0
  6. package/dist/lib.cjs/base/errors/index.js +2 -2
  7. package/dist/lib.cjs/base/utils.js +112 -9
  8. package/dist/lib.cjs/base/wallet/index.js +3 -3
  9. package/dist/lib.cjs/connectors/auth-connector/authConnector.js +40 -63
  10. package/dist/lib.cjs/connectors/base-evm-connector/baseEvmConnector.js +5 -2
  11. package/dist/lib.cjs/connectors/base-solana-connector/baseSolanaConnector.js +5 -2
  12. package/dist/lib.cjs/connectors/coinbase-connector/coinbaseConnector.js +11 -4
  13. package/dist/lib.cjs/connectors/injected-evm-connector/injectedEvmConnector.js +10 -4
  14. package/dist/lib.cjs/connectors/injected-solana-connector/walletStandardConnector.js +10 -5
  15. package/dist/lib.cjs/connectors/metamask-connector/metamaskConnector.js +10 -5
  16. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.js +2 -1
  17. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/config.js +11 -9
  18. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/index.js +0 -1
  19. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +9 -4
  20. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/walletConnectV2Utils.js +6 -5
  21. package/dist/lib.cjs/index.js +18 -1
  22. package/dist/lib.cjs/noModal.js +367 -101
  23. package/dist/lib.cjs/plugins/nft-checkout-plugin/plugin.js +3 -1
  24. package/dist/lib.cjs/plugins/wallet-services-plugin/plugin.js +3 -1
  25. package/dist/lib.cjs/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +10 -5
  26. package/dist/lib.cjs/providers/account-abstraction-provider/providers/utils.js +3 -2
  27. package/dist/lib.cjs/providers/base-provider/baseProvider.js +2 -1
  28. package/dist/lib.cjs/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +2 -1
  29. package/dist/lib.cjs/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.js +2 -1
  30. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.js +2 -1
  31. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +4 -2
  32. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +4 -2
  33. package/dist/lib.cjs/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +3 -1
  34. package/dist/lib.cjs/react/context/WalletServicesInnerContext.js +4 -2
  35. package/dist/lib.cjs/react/context/Web3AuthInnerContext.js +21 -16
  36. package/dist/lib.cjs/react/hooks/useCheckout.js +4 -2
  37. package/dist/lib.cjs/react/hooks/useIdentityToken.js +3 -3
  38. package/dist/lib.cjs/react/hooks/useSwap.js +4 -2
  39. package/dist/lib.cjs/react/hooks/useWalletConnectScanner.js +4 -2
  40. package/dist/lib.cjs/react/hooks/useWalletUI.js +4 -2
  41. package/dist/lib.cjs/react/hooks/useWeb3AuthInner.js +4 -2
  42. package/dist/lib.cjs/react/solana/hooks/useSolanaWallet.js +3 -2
  43. package/dist/lib.cjs/react/wagmi/constants.js +16 -0
  44. package/dist/lib.cjs/react/wagmi/provider.js +14 -9
  45. package/dist/lib.cjs/types/base/analytics.d.ts +42 -0
  46. package/dist/lib.cjs/types/base/connector/baseConnector.d.ts +2 -2
  47. package/dist/lib.cjs/types/base/connector/constants.d.ts +1 -0
  48. package/dist/lib.cjs/types/base/connector/interfaces.d.ts +3 -2
  49. package/dist/lib.cjs/types/base/constants.d.ts +6 -0
  50. package/dist/lib.cjs/types/base/cookie.d.ts +10 -0
  51. package/dist/lib.cjs/types/base/core/IWeb3Auth.d.ts +31 -11
  52. package/dist/lib.cjs/types/base/deserialize.d.ts +3 -0
  53. package/dist/lib.cjs/types/base/errors/index.d.ts +1 -1
  54. package/dist/lib.cjs/types/base/index.d.ts +2 -0
  55. package/dist/lib.cjs/types/base/interfaces.d.ts +9 -1
  56. package/dist/lib.cjs/types/base/utils.d.ts +50 -3
  57. package/dist/lib.cjs/types/base/wallet/index.d.ts +4 -2
  58. package/dist/lib.cjs/types/connectors/auth-connector/authConnector.d.ts +1 -1
  59. package/dist/lib.cjs/types/connectors/auth-connector/interface.d.ts +1 -1
  60. package/dist/lib.cjs/types/connectors/base-evm-connector/baseEvmConnector.d.ts +2 -2
  61. package/dist/lib.cjs/types/connectors/base-solana-connector/baseSolanaConnector.d.ts +2 -2
  62. package/dist/lib.cjs/types/connectors/wallet-connect-v2-connector/config.d.ts +0 -1
  63. package/dist/lib.cjs/types/noModal.d.ts +18 -9
  64. package/dist/lib.cjs/types/providers/account-abstraction-provider/providers/AccountAbstractionProvider.d.ts +4 -1
  65. package/dist/lib.cjs/types/providers/ethereum-provider/providers/converter.d.ts +0 -1
  66. package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.d.ts +0 -1
  67. package/dist/lib.cjs/types/react/hooks/useIdentityToken.d.ts +2 -2
  68. package/dist/lib.cjs/types/react/interfaces.d.ts +2 -1
  69. package/dist/lib.cjs/types/react/wagmi/constants.d.ts +43 -0
  70. package/dist/lib.cjs/types/vue/composables/useIdentityToken.d.ts +1 -1
  71. package/dist/lib.cjs/types/vue/wagmi/constants.d.ts +43 -0
  72. package/dist/lib.cjs/types/vue/wagmi/provider.d.ts +1 -0
  73. package/dist/lib.cjs/vue/WalletServicesInnerProvider.js +4 -2
  74. package/dist/lib.cjs/vue/Web3AuthProvider.js +7 -1
  75. package/dist/lib.cjs/vue/composables/useCheckout.js +4 -2
  76. package/dist/lib.cjs/vue/composables/useEnableMFA.js +4 -2
  77. package/dist/lib.cjs/vue/composables/useIdentityToken.js +7 -5
  78. package/dist/lib.cjs/vue/composables/useManageMFA.js +5 -3
  79. package/dist/lib.cjs/vue/composables/useSwap.js +4 -2
  80. package/dist/lib.cjs/vue/composables/useSwitchChain.js +4 -2
  81. package/dist/lib.cjs/vue/composables/useWalletConnectScanner.js +4 -2
  82. package/dist/lib.cjs/vue/composables/useWalletUI.js +4 -2
  83. package/dist/lib.cjs/vue/composables/useWeb3AuthConnect.js +4 -2
  84. package/dist/lib.cjs/vue/composables/useWeb3AuthDisconnect.js +4 -2
  85. package/dist/lib.cjs/vue/composables/useWeb3AuthInner.js +4 -2
  86. package/dist/lib.cjs/vue/composables/useWeb3AuthUser.js +4 -2
  87. package/dist/lib.cjs/vue/solana/composables/useSolanaWallet.js +21 -15
  88. package/dist/lib.cjs/vue/wagmi/constants.js +16 -0
  89. package/dist/lib.cjs/vue/wagmi/provider.js +33 -15
  90. package/dist/lib.esm/base/analytics.js +117 -0
  91. package/dist/lib.esm/base/connector/constants.js +2 -1
  92. package/dist/lib.esm/base/constants.js +11 -1
  93. package/dist/lib.esm/base/cookie.js +34 -0
  94. package/dist/lib.esm/base/deserialize.js +11 -0
  95. package/dist/lib.esm/base/errors/index.js +2 -2
  96. package/dist/lib.esm/base/utils.js +104 -7
  97. package/dist/lib.esm/base/wallet/index.js +3 -3
  98. package/dist/lib.esm/connectors/auth-connector/authConnector.js +41 -65
  99. package/dist/lib.esm/connectors/base-evm-connector/baseEvmConnector.js +1 -1
  100. package/dist/lib.esm/connectors/base-solana-connector/baseSolanaConnector.js +1 -1
  101. package/dist/lib.esm/connectors/coinbase-connector/coinbaseConnector.js +9 -3
  102. package/dist/lib.esm/connectors/injected-evm-connector/injectedEvmConnector.js +7 -3
  103. package/dist/lib.esm/connectors/injected-solana-connector/walletStandardConnector.js +7 -4
  104. package/dist/lib.esm/connectors/metamask-connector/metamaskConnector.js +8 -4
  105. package/dist/lib.esm/connectors/wallet-connect-v2-connector/config.js +8 -7
  106. package/dist/lib.esm/connectors/wallet-connect-v2-connector/index.js +1 -1
  107. package/dist/lib.esm/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +8 -4
  108. package/dist/lib.esm/connectors/wallet-connect-v2-connector/walletConnectV2Utils.js +1 -1
  109. package/dist/lib.esm/index.js +5 -3
  110. package/dist/lib.esm/noModal.js +378 -107
  111. package/dist/lib.esm/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +8 -4
  112. package/dist/lib.esm/react/context/Web3AuthInnerContext.js +22 -17
  113. package/dist/lib.esm/react/hooks/useIdentityToken.js +3 -3
  114. package/dist/lib.esm/react/wagmi/constants.js +14 -0
  115. package/dist/lib.esm/react/wagmi/provider.js +13 -8
  116. package/dist/lib.esm/vue/Web3AuthProvider.js +7 -1
  117. package/dist/lib.esm/vue/composables/useIdentityToken.js +3 -3
  118. package/dist/lib.esm/vue/composables/useManageMFA.js +1 -1
  119. package/dist/lib.esm/vue/solana/composables/useSolanaWallet.js +18 -14
  120. package/dist/lib.esm/vue/wagmi/constants.js +14 -0
  121. package/dist/lib.esm/vue/wagmi/provider.js +33 -13
  122. package/dist/noModal.umd.min.js +1 -1
  123. package/dist/noModal.umd.min.js.LICENSE.txt +4 -6
  124. package/package.json +21 -19
@@ -0,0 +1,121 @@
1
+ 'use strict';
2
+
3
+ var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
4
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
5
+ var analyticsNext = require('@segment/analytics-next');
6
+ var loglevel = require('./loglevel.js');
7
+
8
+ const SEGMENT_WRITE_KEY = "f6LbNqCeVRf512ggdME4b6CyflhF1tsX";
9
+ class Analytics {
10
+ constructor() {
11
+ _defineProperty(this, "segment", void 0);
12
+ _defineProperty(this, "globalProperties", {});
13
+ _defineProperty(this, "enabled", true);
14
+ }
15
+ init() {
16
+ if (this.isSkipped()) {
17
+ return;
18
+ }
19
+ if (this.segment) {
20
+ throw new Error("Analytics already initialized");
21
+ }
22
+ this.segment = new analyticsNext.AnalyticsBrowser();
23
+ this.segment.load({
24
+ writeKey: SEGMENT_WRITE_KEY
25
+ }, {
26
+ user: {
27
+ cookie: {
28
+ key: "web3auth_ajs_user_id"
29
+ },
30
+ localStorage: {
31
+ key: "web3auth_ajs_user_traits"
32
+ }
33
+ },
34
+ globalAnalyticsKey: "web3auth_analytics"
35
+ }).then(() => {
36
+ loglevel.log.debug("Analytics initialized");
37
+ return true;
38
+ }).catch(error => {
39
+ loglevel.log.error("Failed to initialize Analytics", error);
40
+ });
41
+ }
42
+ enable() {
43
+ this.enabled = true;
44
+ }
45
+ disable() {
46
+ this.enabled = false;
47
+ }
48
+ setGlobalProperties(properties) {
49
+ this.globalProperties = _objectSpread(_objectSpread({}, this.globalProperties), properties);
50
+ }
51
+ async identify(userId, traits) {
52
+ if (!this.enabled) return;
53
+ if (this.isSkipped()) return;
54
+ try {
55
+ return this.getSegment().identify(userId, _objectSpread({}, traits));
56
+ } catch (error) {
57
+ loglevel.log.error(`Failed to identify user ${userId} in analytics`, error);
58
+ }
59
+ }
60
+ async track(event, properties) {
61
+ if (!this.enabled) return;
62
+ if (this.isSkipped()) return;
63
+ try {
64
+ return this.getSegment().track(event, _objectSpread(_objectSpread({}, properties), this.globalProperties));
65
+ } catch (error) {
66
+ loglevel.log.error(`Failed to track event ${event}`, error);
67
+ }
68
+ }
69
+ getSegment() {
70
+ if (!this.segment) {
71
+ loglevel.log.error("Analytics not initialized. Call Analytics.init() first.");
72
+ throw new Error("Analytics not initialized. Call Analytics.init() first.");
73
+ }
74
+ return this.segment;
75
+ }
76
+ isSkipped() {
77
+ const dappOrigin = window.location.origin;
78
+ // skip if the protocol is not http or https
79
+ if (dappOrigin.startsWith("http://")) {
80
+ return true;
81
+ }
82
+ // skip if dapp contains localhost
83
+ if (dappOrigin.includes("localhost")) {
84
+ return true;
85
+ }
86
+ return false;
87
+ }
88
+ }
89
+ const ANALYTICS_EVENTS = {
90
+ SDK_INITIALIZATION_COMPLETED: "SDK Initialization Completed",
91
+ SDK_INITIALIZATION_FAILED: "SDK Initialization Failed",
92
+ CONNECTION_STARTED: "Connection Started",
93
+ CONNECTION_COMPLETED: "Connection Completed",
94
+ CONNECTION_FAILED: "Connection Failed",
95
+ IDENTITY_TOKEN_STARTED: "Identity Token Started",
96
+ IDENTITY_TOKEN_COMPLETED: "Identity Token Completed",
97
+ IDENTITY_TOKEN_FAILED: "Identity Token Failed",
98
+ MFA_ENABLEMENT_STARTED: "MFA Enablement Started",
99
+ MFA_ENABLEMENT_COMPLETED: "MFA Enablement Completed",
100
+ MFA_ENABLEMENT_FAILED: "MFA Enablement Failed",
101
+ MFA_MANAGEMENT_SELECTED: "MFA Management Selected",
102
+ MFA_MANAGEMENT_FAILED: "MFA Management Failed",
103
+ LOGIN_MODAL_OPENED: "Login Modal Opened",
104
+ LOGIN_MODAL_CLOSED: "Login Modal Closed",
105
+ SOCIAL_LOGIN_SELECTED: "Social Login Selected",
106
+ EXTERNAL_WALLET_SELECTED: "External Wallet Selected",
107
+ EXTERNAL_WALLET_LIST_EXPANDED: "External Wallet List Expanded"
108
+ };
109
+ const ANALYTICS_INTEGRATION_TYPE = {
110
+ REACT_HOOKS: "React Hooks",
111
+ VUE_COMPOSABLES: "Vue Composables"
112
+ };
113
+ const ANALYTICS_SDK_TYPE = {
114
+ WEB_NO_MODAL: "Web NoModal",
115
+ WEB_MODAL: "Web Modal"
116
+ };
117
+
118
+ exports.ANALYTICS_EVENTS = ANALYTICS_EVENTS;
119
+ exports.ANALYTICS_INTEGRATION_TYPE = ANALYTICS_INTEGRATION_TYPE;
120
+ exports.ANALYTICS_SDK_TYPE = ANALYTICS_SDK_TYPE;
121
+ exports.Analytics = Analytics;
@@ -15,7 +15,8 @@ const CONNECTOR_EVENTS = _objectSpread(_objectSpread({}, CONNECTOR_STATUS), {},
15
15
  CONNECTOR_DATA_UPDATED: "connector_data_updated",
16
16
  CACHE_CLEAR: "cache_clear",
17
17
  CONNECTORS_UPDATED: "connectors_updated",
18
- MFA_ENABLED: "mfa_enabled"
18
+ MFA_ENABLED: "mfa_enabled",
19
+ REHYDRATION_ERROR: "rehydration_error"
19
20
  });
20
21
  const CONNECTOR_CATEGORY = {
21
22
  EXTERNAL: "external",
@@ -13,7 +13,20 @@ const WIDGET_TYPE = {
13
13
  MODAL: "modal",
14
14
  EMBED: "embed"
15
15
  };
16
+ const WEB3AUTH_STATE_STORAGE_KEY = "Web3Auth-state";
17
+ const LOGIN_MODE = {
18
+ MODAL: "modal",
19
+ NO_MODAL: "no-modal"
20
+ };
21
+ const SOLANA_CAIP_CHAIN_MAP = {
22
+ "0x65": "5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
23
+ "0x66": "4uhcVJyU9pJkvQyS88uRDiswHXSCkY3z",
24
+ "0x67": "EtWTRABZaYq6iMfeYKouRu166VU2xqa1"
25
+ };
16
26
 
27
+ exports.LOGIN_MODE = LOGIN_MODE;
17
28
  exports.MODAL_SIGN_IN_METHODS = MODAL_SIGN_IN_METHODS;
18
29
  exports.SMART_ACCOUNT_WALLET_SCOPE = SMART_ACCOUNT_WALLET_SCOPE;
30
+ exports.SOLANA_CAIP_CHAIN_MAP = SOLANA_CAIP_CHAIN_MAP;
31
+ exports.WEB3AUTH_STATE_STORAGE_KEY = WEB3AUTH_STATE_STORAGE_KEY;
19
32
  exports.WIDGET_TYPE = WIDGET_TYPE;
@@ -0,0 +1,38 @@
1
+ 'use strict';
2
+
3
+ var constants = require('./constants.js');
4
+ var deserialize = require('./deserialize.js');
5
+
6
+ const cookieStorage = options => ({
7
+ getItem(key) {
8
+ if (typeof window === "undefined") return null;
9
+ const value = parseCookie(document.cookie, key);
10
+ return value !== null && value !== void 0 ? value : null;
11
+ },
12
+ setItem(key, value) {
13
+ if (typeof window === "undefined") return;
14
+ let cookieString = `${key}=${value};path=/;samesite=Lax`;
15
+ if (options !== null && options !== void 0 && options.expiry && typeof options.expiry === "number") cookieString += `; expires=${new Date(Date.now() + options.expiry).toUTCString()}`;
16
+ if (process.env.NODE_ENV === "production") cookieString += "; secure";
17
+ document.cookie = cookieString;
18
+ },
19
+ removeItem(key) {
20
+ if (typeof window === "undefined") return;
21
+ document.cookie = `${key}=;max-age=-1;path=/`;
22
+ }
23
+ });
24
+ function cookieToWeb3AuthState(cookie) {
25
+ if (!cookie) return undefined;
26
+ const parsed = parseCookie(cookie, constants.WEB3AUTH_STATE_STORAGE_KEY);
27
+ if (!parsed) return undefined;
28
+ return deserialize.deserialize(parsed);
29
+ }
30
+ function parseCookie(cookie, key) {
31
+ const keyValue = cookie.split("; ").find(x => x.startsWith(`${key}=`));
32
+ if (!keyValue) return undefined;
33
+ return keyValue.substring(key.length + 1);
34
+ }
35
+
36
+ exports.cookieStorage = cookieStorage;
37
+ exports.cookieToWeb3AuthState = cookieToWeb3AuthState;
38
+ exports.parseCookie = parseCookie;
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ function deserialize(value, reviver) {
4
+ return JSON.parse(value, (key, value_) => {
5
+ var _value, _value2, _reviver;
6
+ let value = value_;
7
+ if (((_value = value) === null || _value === void 0 ? void 0 : _value.__type) === "bigint") value = BigInt(value.value);
8
+ if (((_value2 = value) === null || _value2 === void 0 ? void 0 : _value2.__type) === "Map") value = new Map(value.value);
9
+ return (_reviver = void 0 ) !== null && _reviver !== void 0 ? _reviver : value;
10
+ });
11
+ }
12
+
13
+ exports.deserialize = deserialize;
@@ -131,7 +131,7 @@ class WalletLoginError extends Web3AuthError {
131
131
  static unsupportedOperation(extraMessage = "", cause) {
132
132
  return WalletLoginError.fromCode(5117, extraMessage, cause);
133
133
  }
134
- static coreKitKeyNotFound(extraMessage = "", cause) {
134
+ static sfaKeyNotFound(extraMessage = "", cause) {
135
135
  return WalletLoginError.fromCode(5118, extraMessage, cause);
136
136
  }
137
137
  static userNotLoggedIn(extraMessage = "", cause) {
@@ -147,7 +147,7 @@ _defineProperty(WalletLoginError, "messages", {
147
147
  5115: "User has already enabled mfa, please use the @web3auth/web3auth-web sdk for login with mfa",
148
148
  5116: "Chain config has not been added. Please add the chain config before calling switchChain",
149
149
  5117: "Unsupported operation",
150
- 5118: "useCoreKitKey flag is enabled but coreKitKey is not available",
150
+ 5118: "useSFAKey flag is enabled but SFA key is not available",
151
151
  5119: "User not logged in."
152
152
  });
153
153
  class WalletOperationsError extends Web3AuthError {
@@ -1,23 +1,21 @@
1
1
  'use strict';
2
2
 
3
3
  var baseControllers = require('@toruslabs/base-controllers');
4
- var constants = require('@toruslabs/constants');
4
+ var constants$1 = require('@toruslabs/constants');
5
5
  var httpHelpers = require('@toruslabs/http-helpers');
6
- var auth = require('@web3auth/auth');
7
6
  require('@babel/runtime/helpers/defineProperty');
8
- require('./errors/index.js');
7
+ var auth = require('@web3auth/auth');
8
+ var index = require('./errors/index.js');
9
9
  require('./wallet/index.js');
10
10
  require('./connector/constants.js');
11
11
  require('jwt-decode');
12
+ var constants = require('./constants.js');
12
13
 
13
14
  const isHexStrict = hex => {
14
15
  return (typeof hex === "string" || typeof hex === "number") && /^(-)?0x[0-9a-f]*$/i.test(hex);
15
16
  };
16
- const signerHost = (web3AuthNetwork = auth.WEB3AUTH_NETWORK.SAPPHIRE_MAINNET, authBuildEnv = auth.BUILD_ENV.PRODUCTION) => {
17
- if (authBuildEnv === auth.BUILD_ENV.TESTING || authBuildEnv === auth.BUILD_ENV.DEVELOPMENT) {
18
- return "https://test-signer.web3auth.io";
19
- }
20
- return constants.SIGNER_MAP[web3AuthNetwork];
17
+ const signerHost = (web3AuthNetwork = auth.WEB3AUTH_NETWORK.SAPPHIRE_MAINNET) => {
18
+ return constants$1.SIGNER_MAP[web3AuthNetwork];
21
19
  };
22
20
  const fetchProjectConfig = async ({
23
21
  clientId,
@@ -25,7 +23,7 @@ const fetchProjectConfig = async ({
25
23
  aaProvider,
26
24
  authBuildEnv
27
25
  }) => {
28
- const url = new URL(`${signerHost(web3AuthNetwork, authBuildEnv)}/api/v2/configuration`);
26
+ const url = new URL(`${signerHost(web3AuthNetwork)}/api/v2/configuration`);
29
27
  url.searchParams.append("project_id", clientId);
30
28
  url.searchParams.append("network", web3AuthNetwork);
31
29
  if (authBuildEnv) url.searchParams.append("build_env", authBuildEnv);
@@ -82,7 +80,104 @@ function withAbort(fn, signal, onAbort) {
82
80
  });
83
81
  });
84
82
  }
83
+ const isBrowser = () => typeof window !== "undefined" && typeof document !== "undefined";
85
84
  const fromViemChain = fromWagmiChain;
85
+ const getWhitelabelAnalyticsProperties = uiConfig => {
86
+ var _uiConfig$theme, _uiConfig$theme2;
87
+ return {
88
+ whitelabel_app_name: uiConfig === null || uiConfig === void 0 ? void 0 : uiConfig.appName,
89
+ whitelabel_app_url: uiConfig === null || uiConfig === void 0 ? void 0 : uiConfig.appUrl,
90
+ whitelabel_logo_light_enabled: Boolean(uiConfig === null || uiConfig === void 0 ? void 0 : uiConfig.logoLight),
91
+ whitelabel_logo_dark_enabled: Boolean(uiConfig === null || uiConfig === void 0 ? void 0 : uiConfig.logoDark),
92
+ whitelabel_default_language: uiConfig === null || uiConfig === void 0 ? void 0 : uiConfig.defaultLanguage,
93
+ whitelabel_theme_mode: uiConfig === null || uiConfig === void 0 ? void 0 : uiConfig.mode,
94
+ whitelabel_use_logo_loader: uiConfig === null || uiConfig === void 0 ? void 0 : uiConfig.useLogoLoader,
95
+ whitelabel_theme_primary: uiConfig === null || uiConfig === void 0 || (_uiConfig$theme = uiConfig.theme) === null || _uiConfig$theme === void 0 ? void 0 : _uiConfig$theme.primary,
96
+ whitelabel_theme_on_primary: uiConfig === null || uiConfig === void 0 || (_uiConfig$theme2 = uiConfig.theme) === null || _uiConfig$theme2 === void 0 ? void 0 : _uiConfig$theme2.onPrimary,
97
+ whitelabel_tnc_link_enabled: Boolean(uiConfig === null || uiConfig === void 0 ? void 0 : uiConfig.tncLink),
98
+ whitelabel_privacy_policy_enabled: Boolean(uiConfig === null || uiConfig === void 0 ? void 0 : uiConfig.privacyPolicy)
99
+ };
100
+ };
101
+ const getAaAnalyticsProperties = accountAbstractionConfig => {
102
+ var _accountAbstractionCo, _accountAbstractionCo2, _accountAbstractionCo3, _accountAbstractionCo4, _accountAbstractionCo5;
103
+ const bundlerHostnames = Array.from(new Set(accountAbstractionConfig === null || accountAbstractionConfig === void 0 || (_accountAbstractionCo = accountAbstractionConfig.chains) === null || _accountAbstractionCo === void 0 ? void 0 : _accountAbstractionCo.map(chain => {
104
+ var _chain$bundlerConfig;
105
+ return getHostname((_chain$bundlerConfig = chain.bundlerConfig) === null || _chain$bundlerConfig === void 0 ? void 0 : _chain$bundlerConfig.url);
106
+ }).filter(Boolean)));
107
+ const paymasterHostnames = Array.from(new Set(accountAbstractionConfig === null || accountAbstractionConfig === void 0 || (_accountAbstractionCo2 = accountAbstractionConfig.chains) === null || _accountAbstractionCo2 === void 0 ? void 0 : _accountAbstractionCo2.map(chain => {
108
+ var _chain$paymasterConfi;
109
+ return getHostname((_chain$paymasterConfi = chain.paymasterConfig) === null || _chain$paymasterConfi === void 0 ? void 0 : _chain$paymasterConfi.url);
110
+ }).filter(Boolean)));
111
+ return {
112
+ aa_smart_account_type: accountAbstractionConfig === null || accountAbstractionConfig === void 0 ? void 0 : accountAbstractionConfig.smartAccountType,
113
+ aa_chain_ids: accountAbstractionConfig === null || accountAbstractionConfig === void 0 || (_accountAbstractionCo3 = accountAbstractionConfig.chains) === null || _accountAbstractionCo3 === void 0 ? void 0 : _accountAbstractionCo3.map(chain => getCaipChainId({
114
+ chainId: chain.chainId,
115
+ chainNamespace: baseControllers.CHAIN_NAMESPACES.EIP155
116
+ })),
117
+ aa_bundler_urls: bundlerHostnames,
118
+ aa_paymaster_urls: paymasterHostnames,
119
+ aa_paymaster_enabled: paymasterHostnames.length > 0,
120
+ aa_paymaster_context_enabled: accountAbstractionConfig === null || accountAbstractionConfig === void 0 || (_accountAbstractionCo4 = accountAbstractionConfig.chains) === null || _accountAbstractionCo4 === void 0 ? void 0 : _accountAbstractionCo4.some(chain => {
121
+ var _chain$bundlerConfig2;
122
+ return (_chain$bundlerConfig2 = chain.bundlerConfig) === null || _chain$bundlerConfig2 === void 0 ? void 0 : _chain$bundlerConfig2.paymasterContext;
123
+ }),
124
+ aa_erc20_paymaster_enabled: accountAbstractionConfig === null || accountAbstractionConfig === void 0 || (_accountAbstractionCo5 = accountAbstractionConfig.chains) === null || _accountAbstractionCo5 === void 0 ? void 0 : _accountAbstractionCo5.some(chain => {
125
+ var _chain$bundlerConfig3;
126
+ return (_chain$bundlerConfig3 = chain.bundlerConfig) === null || _chain$bundlerConfig3 === void 0 || (_chain$bundlerConfig3 = _chain$bundlerConfig3.paymasterContext) === null || _chain$bundlerConfig3 === void 0 ? void 0 : _chain$bundlerConfig3.token;
127
+ })
128
+ };
129
+ };
130
+ const getWalletServicesAnalyticsProperties = walletServicesConfig => {
131
+ var _walletServicesConfig, _walletServicesConfig2, _walletServicesConfig3, _walletServicesConfig4, _walletServicesConfig5, _walletServicesConfig6, _walletServicesConfig7, _walletServicesConfig8, _walletServicesConfig9, _walletServicesConfig0, _walletServicesConfig1;
132
+ return {
133
+ ws_confirmation_strategy: walletServicesConfig === null || walletServicesConfig === void 0 ? void 0 : walletServicesConfig.confirmationStrategy,
134
+ ws_enable_key_export: walletServicesConfig === null || walletServicesConfig === void 0 ? void 0 : walletServicesConfig.enableKeyExport,
135
+ ws_show_widget_button: walletServicesConfig === null || walletServicesConfig === void 0 || (_walletServicesConfig = walletServicesConfig.whiteLabel) === null || _walletServicesConfig === void 0 ? void 0 : _walletServicesConfig.showWidgetButton,
136
+ ws_button_position: walletServicesConfig === null || walletServicesConfig === void 0 || (_walletServicesConfig2 = walletServicesConfig.whiteLabel) === null || _walletServicesConfig2 === void 0 ? void 0 : _walletServicesConfig2.buttonPosition,
137
+ ws_hide_nft_display: walletServicesConfig === null || walletServicesConfig === void 0 || (_walletServicesConfig3 = walletServicesConfig.whiteLabel) === null || _walletServicesConfig3 === void 0 ? void 0 : _walletServicesConfig3.hideNftDisplay,
138
+ ws_hide_token_display: walletServicesConfig === null || walletServicesConfig === void 0 || (_walletServicesConfig4 = walletServicesConfig.whiteLabel) === null || _walletServicesConfig4 === void 0 ? void 0 : _walletServicesConfig4.hideTokenDisplay,
139
+ ws_hide_transfers: walletServicesConfig === null || walletServicesConfig === void 0 || (_walletServicesConfig5 = walletServicesConfig.whiteLabel) === null || _walletServicesConfig5 === void 0 ? void 0 : _walletServicesConfig5.hideTransfers,
140
+ ws_hide_topup: walletServicesConfig === null || walletServicesConfig === void 0 || (_walletServicesConfig6 = walletServicesConfig.whiteLabel) === null || _walletServicesConfig6 === void 0 ? void 0 : _walletServicesConfig6.hideTopup,
141
+ ws_hide_receive: walletServicesConfig === null || walletServicesConfig === void 0 || (_walletServicesConfig7 = walletServicesConfig.whiteLabel) === null || _walletServicesConfig7 === void 0 ? void 0 : _walletServicesConfig7.hideReceive,
142
+ ws_hide_swap: walletServicesConfig === null || walletServicesConfig === void 0 || (_walletServicesConfig8 = walletServicesConfig.whiteLabel) === null || _walletServicesConfig8 === void 0 ? void 0 : _walletServicesConfig8.hideSwap,
143
+ ws_hide_show_all_tokens: walletServicesConfig === null || walletServicesConfig === void 0 || (_walletServicesConfig9 = walletServicesConfig.whiteLabel) === null || _walletServicesConfig9 === void 0 ? void 0 : _walletServicesConfig9.hideShowAllTokens,
144
+ ws_hide_wallet_connect: walletServicesConfig === null || walletServicesConfig === void 0 || (_walletServicesConfig0 = walletServicesConfig.whiteLabel) === null || _walletServicesConfig0 === void 0 ? void 0 : _walletServicesConfig0.hideWalletConnect,
145
+ ws_default_portfolio: walletServicesConfig === null || walletServicesConfig === void 0 || (_walletServicesConfig1 = walletServicesConfig.whiteLabel) === null || _walletServicesConfig1 === void 0 ? void 0 : _walletServicesConfig1.defaultPortfolio
146
+ };
147
+ };
148
+ const sdkVersion = "10.0.0";
149
+ const getErrorAnalyticsProperties = error => {
150
+ try {
151
+ const code = error instanceof index.Web3AuthError ? error.code : error === null || error === void 0 ? void 0 : error.code;
152
+ const message = error instanceof Error ? error.message : (error === null || error === void 0 ? void 0 : error.message) || (error === null || error === void 0 ? void 0 : error.toString());
153
+ return {
154
+ error_message: message,
155
+ error_code: code
156
+ };
157
+ } catch {
158
+ return {
159
+ error_message: "Unknown error",
160
+ error_code: undefined
161
+ };
162
+ }
163
+ };
164
+ const getHostname = url => {
165
+ try {
166
+ return new URL(url).hostname;
167
+ } catch {
168
+ return "";
169
+ }
170
+ };
171
+ const getCaipChainId = chain => {
172
+ if (chain.chainNamespace === baseControllers.CHAIN_NAMESPACES.EIP155) {
173
+ return `${chain.chainNamespace}:${parseInt(chain.chainId, 16)}`;
174
+ }
175
+ if (chain.chainNamespace === baseControllers.CHAIN_NAMESPACES.SOLANA) {
176
+ return `${chain.chainNamespace}:${constants.SOLANA_CAIP_CHAIN_MAP[chain.chainId]}`;
177
+ }
178
+ // for other chain namespaces, we just return the chainId as is
179
+ return `${chain.chainNamespace}:${chain.chainId}`;
180
+ };
86
181
 
87
182
  Object.defineProperty(exports, "cloneDeep", {
88
183
  enumerable: true,
@@ -92,7 +187,15 @@ exports.fetchProjectConfig = fetchProjectConfig;
92
187
  exports.fetchWalletRegistry = fetchWalletRegistry;
93
188
  exports.fromViemChain = fromViemChain;
94
189
  exports.fromWagmiChain = fromWagmiChain;
190
+ exports.getAaAnalyticsProperties = getAaAnalyticsProperties;
191
+ exports.getCaipChainId = getCaipChainId;
192
+ exports.getErrorAnalyticsProperties = getErrorAnalyticsProperties;
193
+ exports.getHostname = getHostname;
194
+ exports.getWalletServicesAnalyticsProperties = getWalletServicesAnalyticsProperties;
195
+ exports.getWhitelabelAnalyticsProperties = getWhitelabelAnalyticsProperties;
196
+ exports.isBrowser = isBrowser;
95
197
  exports.isHexStrict = isHexStrict;
96
198
  exports.normalizeWalletName = normalizeWalletName;
199
+ exports.sdkVersion = sdkVersion;
97
200
  exports.signerHost = signerHost;
98
201
  exports.withAbort = withAbort;
@@ -4,12 +4,12 @@ var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
4
4
 
5
5
  const MULTI_CHAIN_CONNECTORS = {
6
6
  AUTH: "auth",
7
- WALLET_CONNECT_V2: "wallet-connect-v2"
7
+ WALLET_CONNECT_V2: "wallet-connect-v2",
8
+ METAMASK: "metamask"
8
9
  };
9
10
  const SOLANA_CONNECTORS = _objectSpread({}, MULTI_CHAIN_CONNECTORS);
10
11
  const EVM_CONNECTORS = _objectSpread({
11
- COINBASE: "coinbase",
12
- METAMASK: "metamask"
12
+ COINBASE: "coinbase"
13
13
  }, MULTI_CHAIN_CONNECTORS);
14
14
  const WALLET_CONNECTORS = _objectSpread(_objectSpread({}, EVM_CONNECTORS), SOLANA_CONNECTORS);
15
15
  const CONNECTOR_NAMES = {
@@ -2,18 +2,19 @@
2
2
 
3
3
  var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
4
4
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
5
- var baseControllers = require('@toruslabs/base-controllers');
6
5
  var securePubSub = require('@toruslabs/secure-pub-sub');
7
6
  var auth = require('@web3auth/auth');
8
7
  var deepmerge = require('deepmerge');
8
+ require('@segment/analytics-next');
9
+ var loglevel = require('../../base/loglevel.js');
9
10
  var IChainInterface = require('../../base/chain/IChainInterface.js');
10
11
  var baseConnector = require('../../base/connector/baseConnector.js');
11
12
  var constants = require('../../base/connector/constants.js');
12
13
  require('jwt-decode');
13
14
  var index$1 = require('../../base/errors/index.js');
14
- var loglevel = require('../../base/loglevel.js');
15
15
  require('../../base/plugin/errors.js');
16
16
  require('../../base/plugin/IPlugin.js');
17
+ var baseControllers = require('@toruslabs/base-controllers');
17
18
  require('@toruslabs/constants');
18
19
  require('@toruslabs/http-helpers');
19
20
  var index = require('../../base/wallet/index.js');
@@ -75,13 +76,14 @@ class AuthConnector extends baseConnector.BaseConnector {
75
76
  const isRedirectResult = this.authOptions.uxMode === auth.UX_MODE.REDIRECT;
76
77
  this.authOptions = _objectSpread(_objectSpread({}, this.authOptions), {}, {
77
78
  replaceUrlOnRedirect: isRedirectResult,
78
- useCoreKitKey: this.coreOptions.useCoreKitKey
79
+ useCoreKitKey: this.coreOptions.useSFAKey
79
80
  });
80
81
  this.authInstance = new auth.Auth(_objectSpread(_objectSpread({}, this.authOptions), {}, {
81
82
  clientId: this.coreOptions.clientId,
82
83
  network: this.coreOptions.web3AuthNetwork,
83
84
  sdkMode: auth.SDK_MODE.IFRAME,
84
- authConnectionConfig: this.authConnectionConfig.filter(x => !x.isDefault)
85
+ authConnectionConfig: this.authConnectionConfig.filter(x => !x.isDefault),
86
+ mfaSettings: this.coreOptions.mfaSettings
85
87
  }));
86
88
  loglevel.log.debug("initializing auth connector init", this.authOptions);
87
89
  // making it async here to initialize provider.
@@ -131,11 +133,11 @@ class AuthConnector extends baseConnector.BaseConnector {
131
133
  }
132
134
  }
133
135
  // wait for auth instance to be ready.
136
+ loglevel.log.debug("initializing auth connector");
134
137
  await authInstancePromise;
135
138
  this.status = constants.CONNECTOR_STATUS.READY;
136
139
  this.emit(constants.CONNECTOR_EVENTS.READY, index.WALLET_CONNECTORS.AUTH);
137
140
  try {
138
- loglevel.log.debug("initializing auth connector");
139
141
  const {
140
142
  sessionId
141
143
  } = this.authInstance || {};
@@ -145,10 +147,14 @@ class AuthConnector extends baseConnector.BaseConnector {
145
147
  await this.connect({
146
148
  chainId: options.chainId
147
149
  });
150
+ } else if (!sessionId && options.autoConnect) {
151
+ // if here, this means that the connector is cached but the sessionId is not available.
152
+ // this can happen if the sessionId has expired.
153
+ // we are throwing an error to reset the cached state.
154
+ throw index$1.WalletLoginError.connectionError("Failed to rehydrate");
148
155
  }
149
156
  } catch (error) {
150
- loglevel.log.error("Failed to connect with cached auth provider", error);
151
- this.emit(constants.CONNECTOR_EVENTS.ERRORED, error);
157
+ this.emit(constants.CONNECTOR_EVENTS.REHYDRATION_ERROR, error);
152
158
  }
153
159
  }
154
160
  async connect(params) {
@@ -226,7 +232,7 @@ class AuthConnector extends baseConnector.BaseConnector {
226
232
  this.rehydrated = false;
227
233
  this.emit(constants.CONNECTOR_EVENTS.DISCONNECTED);
228
234
  }
229
- async authenticateUser() {
235
+ async getIdentityToken() {
230
236
  if (this.status !== constants.CONNECTOR_STATUS.CONNECTED) throw index$1.WalletLoginError.notConnectedError("Not connected with wallet, Please login/connect first");
231
237
  const userInfo = await this.getUserInfo();
232
238
  return {
@@ -288,13 +294,13 @@ class AuthConnector extends baseConnector.BaseConnector {
288
294
  _getFinalPrivKey() {
289
295
  if (!this.authInstance) return "";
290
296
  let finalPrivKey = this.authInstance.privKey;
291
- // coreKitKey is available only for custom verifiers by default
292
- if (this.coreOptions.useCoreKitKey) {
297
+ // coreKitKey is available only for custom connections by default
298
+ if (this.coreOptions.useSFAKey) {
293
299
  // this is to check if the user has already logged in but coreKitKey is not available.
294
- // when useCoreKitKey is set to true.
300
+ // when useSFAKey is set to true.
295
301
  // This is to ensure that when there is no user session active, we don't throw an exception.
296
302
  if (this.authInstance.privKey && !this.authInstance.coreKitKey) {
297
- throw index$1.WalletLoginError.coreKitKeyNotFound();
303
+ throw index$1.WalletLoginError.sfaKeyNotFound();
298
304
  }
299
305
  finalPrivKey = this.authInstance.coreKitKey;
300
306
  }
@@ -310,8 +316,8 @@ class AuthConnector extends baseConnector.BaseConnector {
310
316
  } = chainConfig;
311
317
  // if not logged in then login
312
318
  const keyAvailable = chainNamespace === baseControllers.CHAIN_NAMESPACES.EIP155 || chainNamespace === baseControllers.CHAIN_NAMESPACES.SOLANA ? (_this$authInstance = this.authInstance) === null || _this$authInstance === void 0 ? void 0 : _this$authInstance.sessionId : this._getFinalPrivKey();
313
- if (params.id_token) params.extraLoginOptions = _objectSpread(_objectSpread({}, params.extraLoginOptions), {}, {
314
- id_token: params.id_token
319
+ if (params.idToken) params.extraLoginOptions = _objectSpread(_objectSpread({}, params.extraLoginOptions), {}, {
320
+ id_token: params.idToken
315
321
  });
316
322
  if (!keyAvailable || (_params$extraLoginOpt = params.extraLoginOptions) !== null && _params$extraLoginOpt !== void 0 && _params$extraLoginOpt.id_token) {
317
323
  var _params$extraLoginOpt2;
@@ -376,13 +382,13 @@ class AuthConnector extends baseConnector.BaseConnector {
376
382
  });
377
383
  if (!(providerConfig !== null && providerConfig !== void 0 && providerConfig.authConnection)) throw index$1.WalletLoginError.connectionError("Invalid auth connection.");
378
384
  const jwtParams = _objectSpread(_objectSpread(_objectSpread({}, providerConfig.jwtParameters || {}), params.extraLoginOptions || {}), {}, {
379
- login_hint: params.login_hint || ((_params$extraLoginOpt3 = params.extraLoginOptions) === null || _params$extraLoginOpt3 === void 0 ? void 0 : _params$extraLoginOpt3.login_hint)
385
+ login_hint: params.loginHint || ((_params$extraLoginOpt3 = params.extraLoginOptions) === null || _params$extraLoginOpt3 === void 0 ? void 0 : _params$extraLoginOpt3.login_hint)
380
386
  });
381
387
  const nonce = auth.randomId();
382
388
  // post a message to the auth provider to indicate that login has been initiated.
383
389
  const loginParams = baseControllers.cloneDeep(params);
384
390
  loginParams.extraLoginOptions = _objectSpread(_objectSpread({}, loginParams.extraLoginOptions || {}), {}, {
385
- login_hint: params.login_hint || ((_params$extraLoginOpt4 = params.extraLoginOptions) === null || _params$extraLoginOpt4 === void 0 ? void 0 : _params$extraLoginOpt4.login_hint)
391
+ login_hint: params.loginHint || ((_params$extraLoginOpt4 = params.extraLoginOptions) === null || _params$extraLoginOpt4 === void 0 ? void 0 : _params$extraLoginOpt4.login_hint)
386
392
  });
387
393
  delete loginParams.chainId;
388
394
  const popupParams = {
@@ -390,7 +396,7 @@ class AuthConnector extends baseConnector.BaseConnector {
390
396
  authConnectionId: providerConfig.authConnectionId,
391
397
  clientId: providerConfig.clientId || jwtParams.client_id,
392
398
  groupedAuthConnectionId: providerConfig.groupedAuthConnectionId,
393
- redirect_uri: `${this.authInstance.baseUrl}/auth`,
399
+ redirect_uri: `${this.authInstance.options.sdkUrl}/auth`,
394
400
  jwtParams,
395
401
  customState: {
396
402
  nonce,
@@ -399,7 +405,8 @@ class AuthConnector extends baseConnector.BaseConnector {
399
405
  dapp_redirect_url: this.authInstance.options.redirectUrl,
400
406
  uxMode: this.authInstance.options.uxMode,
401
407
  whiteLabel: JSON.stringify(this.authInstance.options.whiteLabel),
402
- loginParams: JSON.stringify(loginParams)
408
+ loginParams: JSON.stringify(loginParams),
409
+ version: auth.version.split(".")[0]
403
410
  },
404
411
  web3AuthClientId: this.coreOptions.clientId,
405
412
  web3AuthNetwork: this.coreOptions.web3AuthNetwork
@@ -444,7 +451,12 @@ class AuthConnector extends baseConnector.BaseConnector {
444
451
  reject(index$1.WalletLoginError.popupClosed());
445
452
  }
446
453
  });
447
- this.authInstance.postLoginInitiatedMessage(loginParams, nonce).then(resolve).catch(reject);
454
+ this.authInstance.postLoginInitiatedMessage(loginParams, nonce).then(resolve).catch(error => {
455
+ if (error instanceof index$1.Web3AuthError) {
456
+ throw error;
457
+ }
458
+ reject(index$1.WalletLoginError.connectionError(error instanceof Error ? error.message : error || "Failed to login with social"));
459
+ });
448
460
  });
449
461
  }
450
462
  connectWithJwtLogin(params) {
@@ -467,9 +479,9 @@ class AuthConnector extends baseConnector.BaseConnector {
467
479
  const loginParams = baseControllers.cloneDeep(params);
468
480
  const finalExtraLoginOptions = _objectSpread(_objectSpread({}, (loginConfig === null || loginConfig === void 0 ? void 0 : loginConfig.jwtParameters) || {}), params.extraLoginOptions || {});
469
481
  let finalUserId;
470
- if (params.login_hint || (_params$extraLoginOpt5 = params.extraLoginOptions) !== null && _params$extraLoginOpt5 !== void 0 && _params$extraLoginOpt5.login_hint) {
482
+ if (params.loginHint || (_params$extraLoginOpt5 = params.extraLoginOptions) !== null && _params$extraLoginOpt5 !== void 0 && _params$extraLoginOpt5.login_hint) {
471
483
  var _params$extraLoginOpt6;
472
- finalUserId = params.login_hint || ((_params$extraLoginOpt6 = params.extraLoginOptions) === null || _params$extraLoginOpt6 === void 0 ? void 0 : _params$extraLoginOpt6.login_hint);
484
+ finalUserId = params.loginHint || ((_params$extraLoginOpt6 = params.extraLoginOptions) === null || _params$extraLoginOpt6 === void 0 ? void 0 : _params$extraLoginOpt6.login_hint);
473
485
  } else if ((_params$extraLoginOpt7 = params.extraLoginOptions) !== null && _params$extraLoginOpt7 !== void 0 && _params$extraLoginOpt7.id_token) {
474
486
  if (typeof finalExtraLoginOptions.isUserIdCaseSensitive === "undefined") {
475
487
  throw index$1.WalletInitializationError.invalidParams(`isUserIdCaseSensitive is required for this connection: ${finalExtraLoginOptions.authConnection}`);
@@ -517,14 +529,12 @@ const authConnector = params => {
517
529
  const connectorSettings = {};
518
530
  const {
519
531
  whitelist,
520
- whitelabel,
521
532
  sessionTime
522
533
  } = projectConfig;
523
534
  if (whitelist) connectorSettings.originData = whitelist.signed_urls;
524
535
  if (sessionTime) connectorSettings.sessionTime = sessionTime;
525
536
  if ((_coreOptions$uiConfig = coreOptions.uiConfig) !== null && _coreOptions$uiConfig !== void 0 && _coreOptions$uiConfig.uxMode) connectorSettings.uxMode = coreOptions.uiConfig.uxMode;
526
- const uiConfig = deepmerge(baseControllers.cloneDeep(whitelabel || {}), coreOptions.uiConfig || {});
527
- if (!uiConfig.mode) uiConfig.mode = "light";
537
+ const uiConfig = coreOptions.uiConfig || {};
528
538
  connectorSettings.whiteLabel = uiConfig;
529
539
  const finalConnectorSettings = deepmerge.all([{
530
540
  uxMode: auth.UX_MODE.POPUP,
@@ -533,55 +543,22 @@ const authConnector = params => {
533
543
  // default settings
534
544
  connectorSettings, (params === null || params === void 0 ? void 0 : params.connectorSettings) || {}]);
535
545
  // WS settings
536
- const {
537
- enableKeyExport,
538
- walletUi
539
- } = projectConfig;
540
- const isKeyExportEnabled = typeof enableKeyExport === "boolean" ? enableKeyExport : true;
541
- const {
542
- enablePortfolioWidget = false,
543
- enableTokenDisplay = true,
544
- enableNftDisplay = true,
545
- enableWalletConnect = true,
546
- enableBuyButton = true,
547
- enableSendButton = true,
548
- enableSwapButton = true,
549
- enableReceiveButton = true,
550
- enableShowAllTokensButton = true,
551
- enableConfirmationModal = false,
552
- portfolioWidgetPosition = baseControllers.BUTTON_POSITION.BOTTOM_LEFT,
553
- defaultPortfolio = "token"
554
- } = walletUi || {};
555
- const projectConfigWhiteLabel = {
556
- showWidgetButton: enablePortfolioWidget,
557
- hideNftDisplay: !enableNftDisplay,
558
- hideTokenDisplay: !enableTokenDisplay,
559
- hideTransfers: !enableSendButton,
560
- hideTopup: !enableBuyButton,
561
- hideReceive: !enableReceiveButton,
562
- hideSwap: !enableSwapButton,
563
- hideShowAllTokens: !enableShowAllTokensButton,
564
- hideWalletConnect: !enableWalletConnect,
565
- buttonPosition: portfolioWidgetPosition,
566
- defaultPortfolio
567
- };
568
- const whiteLabel = deepmerge.all([projectConfigWhiteLabel, uiConfig, ((_coreOptions$walletSe = coreOptions.walletServicesConfig) === null || _coreOptions$walletSe === void 0 ? void 0 : _coreOptions$walletSe.whiteLabel) || {}]);
569
- const confirmationStrategy = (_coreOptions$walletSe2 = (_coreOptions$walletSe3 = coreOptions.walletServicesConfig) === null || _coreOptions$walletSe3 === void 0 ? void 0 : _coreOptions$walletSe3.confirmationStrategy) !== null && _coreOptions$walletSe2 !== void 0 ? _coreOptions$walletSe2 : enableConfirmationModal ? baseControllers.CONFIRMATION_STRATEGY.MODAL : baseControllers.CONFIRMATION_STRATEGY.AUTO_APPROVE;
546
+ const whiteLabel = deepmerge.all([uiConfig, ((_coreOptions$walletSe = coreOptions.walletServicesConfig) === null || _coreOptions$walletSe === void 0 ? void 0 : _coreOptions$walletSe.whiteLabel) || {}]);
570
547
  const finalWsSettings = _objectSpread(_objectSpread({}, coreOptions.walletServicesConfig), {}, {
571
- confirmationStrategy,
572
548
  whiteLabel,
573
549
  accountAbstractionConfig: coreOptions.accountAbstractionConfig,
574
- enableLogging: coreOptions.enableLogging,
575
- enableKeyExport: enableKeyExport
550
+ enableLogging: coreOptions.enableLogging
576
551
  });
577
552
  // Core options
553
+ const isKeyExportEnabled = (_coreOptions$walletSe2 = (_coreOptions$walletSe3 = coreOptions.walletServicesConfig) === null || _coreOptions$walletSe3 === void 0 ? void 0 : _coreOptions$walletSe3.enableKeyExport) !== null && _coreOptions$walletSe2 !== void 0 ? _coreOptions$walletSe2 : true;
578
554
  if (coreOptions.privateKeyProvider) coreOptions.privateKeyProvider.setKeyExportFlag(isKeyExportEnabled);
579
555
  return new AuthConnector({
580
556
  connectorSettings: finalConnectorSettings,
581
557
  walletServicesSettings: finalWsSettings,
582
- loginSettings: params === null || params === void 0 ? void 0 : params.loginSettings,
558
+ loginSettings: _objectSpread(_objectSpread({}, (params === null || params === void 0 ? void 0 : params.loginSettings) || {}), {}, {
559
+ mfaLevel: coreOptions.mfaLevel
560
+ }),
583
561
  coreOptions,
584
- // TODO: check, test this and may need to send modal config here later on.!!
585
562
  authConnectionConfig: projectConfig.embeddedWalletAuth
586
563
  });
587
564
  };