@web3auth/modal 3.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.
@@ -0,0 +1,860 @@
1
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
+ import { CHAIN_NAMESPACES, SOLANA_ADAPTERS, EVM_ADAPTERS, WALLET_ADAPTERS, getChainConfig, ADAPTER_CATEGORY, log, ADAPTER_STATUS, ADAPTER_EVENTS } from '@web3auth/base';
3
+ import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
4
+ import _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';
5
+ import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
6
+ import _createClass from '@babel/runtime/helpers/createClass';
7
+ import _assertThisInitialized from '@babel/runtime/helpers/assertThisInitialized';
8
+ import _get from '@babel/runtime/helpers/get';
9
+ import _inherits from '@babel/runtime/helpers/inherits';
10
+ import _possibleConstructorReturn from '@babel/runtime/helpers/possibleConstructorReturn';
11
+ import _getPrototypeOf from '@babel/runtime/helpers/getPrototypeOf';
12
+ import _regeneratorRuntime from '@babel/runtime/regenerator';
13
+ import { Web3AuthCore } from '@web3auth/core';
14
+ import LoginModal, { getAdapterSocialLogins, OPENLOGIN_PROVIDERS, LOGIN_MODAL_EVENTS } from '@web3auth/ui';
15
+
16
+ var _adapters, _adapters2;
17
+ var defaultSolanaDappModalConfig = {
18
+ chainNamespace: CHAIN_NAMESPACES.SOLANA,
19
+ adapters: (_adapters = {}, _defineProperty(_adapters, SOLANA_ADAPTERS.TORUS_SOLANA, {
20
+ label: "Torus Wallet",
21
+ showOnModal: true,
22
+ showOnMobile: true,
23
+ showOnDesktop: true
24
+ }), _defineProperty(_adapters, SOLANA_ADAPTERS.OPENLOGIN, {
25
+ label: "OpenLogin",
26
+ showOnModal: true,
27
+ showOnMobile: true,
28
+ showOnDesktop: true
29
+ }), _defineProperty(_adapters, SOLANA_ADAPTERS.PHANTOM, {
30
+ label: "Phantom",
31
+ showOnModal: true,
32
+ showOnMobile: false,
33
+ showOnDesktop: true
34
+ }), _adapters)
35
+ };
36
+ var defaultEvmDappModalConfig = {
37
+ chainNamespace: CHAIN_NAMESPACES.EIP155,
38
+ adapters: (_adapters2 = {}, _defineProperty(_adapters2, EVM_ADAPTERS.TORUS_EVM, {
39
+ label: "Torus Wallet",
40
+ showOnModal: true,
41
+ showOnMobile: true,
42
+ showOnDesktop: true
43
+ }), _defineProperty(_adapters2, EVM_ADAPTERS.METAMASK, {
44
+ label: "MetaMask",
45
+ showOnModal: true,
46
+ showOnMobile: false,
47
+ showOnDesktop: true
48
+ }), _defineProperty(_adapters2, EVM_ADAPTERS.OPENLOGIN, {
49
+ label: "OpenLogin",
50
+ showOnModal: true,
51
+ showOnMobile: true,
52
+ showOnDesktop: true
53
+ }), _defineProperty(_adapters2, EVM_ADAPTERS.WALLET_CONNECT_V1, {
54
+ label: "Wallet Connect",
55
+ showOnModal: true,
56
+ showOnMobile: true,
57
+ showOnDesktop: true
58
+ }), _adapters2)
59
+ };
60
+ var defaultSolanaWalletModalConfig = {
61
+ chainNamespace: CHAIN_NAMESPACES.SOLANA,
62
+ adapters: _defineProperty({}, SOLANA_ADAPTERS.OPENLOGIN, {
63
+ label: "OpenLogin",
64
+ showOnModal: true,
65
+ showOnMobile: true,
66
+ showOnDesktop: true
67
+ })
68
+ };
69
+ var defaultEvmWalletModalConfig = {
70
+ chainNamespace: CHAIN_NAMESPACES.EIP155,
71
+ adapters: _defineProperty({}, EVM_ADAPTERS.OPENLOGIN, {
72
+ label: "OpenLogin",
73
+ showOnModal: true,
74
+ showOnMobile: true,
75
+ showOnDesktop: true
76
+ })
77
+ };
78
+ var defaultOtherModalConfig = {
79
+ chainNamespace: CHAIN_NAMESPACES.OTHER,
80
+ adapters: _defineProperty({}, EVM_ADAPTERS.OPENLOGIN, {
81
+ label: "OpenLogin",
82
+ showOnModal: true,
83
+ showOnMobile: true,
84
+ showOnDesktop: true
85
+ })
86
+ };
87
+
88
+ function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
89
+
90
+ function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
91
+ var getDefaultAdapterModule = /*#__PURE__*/function () {
92
+ var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(params) {
93
+ var name, customChainConfig, clientId, finalChainConfig, _yield$import, TorusWalletAdapter, adapter, _yield$import2, SolanaWalletAdapter, _adapter, _yield$import3, MetamaskAdapter, _adapter2, _yield$import4, PhantomAdapter, _adapter3, _yield$import5, WalletConnectV1Adapter, _adapter4, _yield$import6, OpenloginAdapter, getOpenloginDefaultOptions, defaultOptions, _adapter5;
94
+
95
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
96
+ while (1) {
97
+ switch (_context.prev = _context.next) {
98
+ case 0:
99
+ name = params.name, customChainConfig = params.customChainConfig, clientId = params.clientId;
100
+
101
+ if (Object.values(CHAIN_NAMESPACES).includes(customChainConfig.chainNamespace)) {
102
+ _context.next = 3;
103
+ break;
104
+ }
105
+
106
+ throw new Error("Invalid chainNamespace: ".concat(customChainConfig.chainNamespace));
107
+
108
+ case 3:
109
+ finalChainConfig = _objectSpread$1(_objectSpread$1({}, getChainConfig(customChainConfig.chainNamespace, customChainConfig === null || customChainConfig === void 0 ? void 0 : customChainConfig.chainId)), customChainConfig || {});
110
+
111
+ if (!(name === WALLET_ADAPTERS.TORUS_EVM)) {
112
+ _context.next = 13;
113
+ break;
114
+ }
115
+
116
+ _context.next = 7;
117
+ return import('@web3auth/torus-evm-adapter');
118
+
119
+ case 7:
120
+ _yield$import = _context.sent;
121
+ TorusWalletAdapter = _yield$import.TorusWalletAdapter;
122
+ adapter = new TorusWalletAdapter({
123
+ chainConfig: finalChainConfig,
124
+ clientId: clientId
125
+ });
126
+ return _context.abrupt("return", adapter);
127
+
128
+ case 13:
129
+ if (!(name === WALLET_ADAPTERS.TORUS_SOLANA)) {
130
+ _context.next = 22;
131
+ break;
132
+ }
133
+
134
+ _context.next = 16;
135
+ return import('@web3auth/torus-solana-adapter');
136
+
137
+ case 16:
138
+ _yield$import2 = _context.sent;
139
+ SolanaWalletAdapter = _yield$import2.SolanaWalletAdapter;
140
+ _adapter = new SolanaWalletAdapter({
141
+ chainConfig: finalChainConfig,
142
+ clientId: clientId
143
+ });
144
+ return _context.abrupt("return", _adapter);
145
+
146
+ case 22:
147
+ if (!(name === WALLET_ADAPTERS.METAMASK)) {
148
+ _context.next = 31;
149
+ break;
150
+ }
151
+
152
+ _context.next = 25;
153
+ return import('@web3auth/metamask-adapter');
154
+
155
+ case 25:
156
+ _yield$import3 = _context.sent;
157
+ MetamaskAdapter = _yield$import3.MetamaskAdapter;
158
+ _adapter2 = new MetamaskAdapter({
159
+ chainConfig: finalChainConfig,
160
+ clientId: clientId
161
+ });
162
+ return _context.abrupt("return", _adapter2);
163
+
164
+ case 31:
165
+ if (!(name === WALLET_ADAPTERS.PHANTOM)) {
166
+ _context.next = 40;
167
+ break;
168
+ }
169
+
170
+ _context.next = 34;
171
+ return import('@web3auth/phantom-adapter');
172
+
173
+ case 34:
174
+ _yield$import4 = _context.sent;
175
+ PhantomAdapter = _yield$import4.PhantomAdapter;
176
+ _adapter3 = new PhantomAdapter({
177
+ chainConfig: finalChainConfig,
178
+ clientId: clientId
179
+ });
180
+ return _context.abrupt("return", _adapter3);
181
+
182
+ case 40:
183
+ if (!(name === WALLET_ADAPTERS.WALLET_CONNECT_V1)) {
184
+ _context.next = 49;
185
+ break;
186
+ }
187
+
188
+ _context.next = 43;
189
+ return import('@web3auth/wallet-connect-v1-adapter');
190
+
191
+ case 43:
192
+ _yield$import5 = _context.sent;
193
+ WalletConnectV1Adapter = _yield$import5.WalletConnectV1Adapter;
194
+ _adapter4 = new WalletConnectV1Adapter({
195
+ chainConfig: finalChainConfig,
196
+ clientId: clientId
197
+ });
198
+ return _context.abrupt("return", _adapter4);
199
+
200
+ case 49:
201
+ if (!(name === WALLET_ADAPTERS.OPENLOGIN)) {
202
+ _context.next = 58;
203
+ break;
204
+ }
205
+
206
+ _context.next = 52;
207
+ return import('@web3auth/openlogin-adapter');
208
+
209
+ case 52:
210
+ _yield$import6 = _context.sent;
211
+ OpenloginAdapter = _yield$import6.OpenloginAdapter;
212
+ getOpenloginDefaultOptions = _yield$import6.getOpenloginDefaultOptions;
213
+ defaultOptions = getOpenloginDefaultOptions(customChainConfig.chainNamespace, customChainConfig === null || customChainConfig === void 0 ? void 0 : customChainConfig.chainId);
214
+ _adapter5 = new OpenloginAdapter(_objectSpread$1(_objectSpread$1({}, defaultOptions), {}, {
215
+ chainConfig: _objectSpread$1(_objectSpread$1({}, defaultOptions.chainConfig || {}), finalChainConfig),
216
+ adapterSettings: _objectSpread$1(_objectSpread$1({}, defaultOptions.adapterSettings), {}, {
217
+ clientId: clientId
218
+ })
219
+ }));
220
+ return _context.abrupt("return", _adapter5);
221
+
222
+ case 58:
223
+ throw new Error("Invalid wallet adapter name");
224
+
225
+ case 59:
226
+ case "end":
227
+ return _context.stop();
228
+ }
229
+ }
230
+ }, _callee);
231
+ }));
232
+
233
+ return function getDefaultAdapterModule(_x) {
234
+ return _ref.apply(this, arguments);
235
+ };
236
+ }();
237
+
238
+ var languageMap = {
239
+ en: "english",
240
+ de: "german",
241
+ ja: "japanese",
242
+ ko: "korean",
243
+ zh: "mandarin",
244
+ es: "spanish"
245
+ };
246
+ var getUserLanguage = function getUserLanguage(defaultLanguage) {
247
+ var userLanguage = defaultLanguage;
248
+
249
+ if (!userLanguage) {
250
+ var browserLanguage = window.navigator.userLanguage || window.navigator.language || "en-US";
251
+ userLanguage = browserLanguage.split("-")[0];
252
+ }
253
+
254
+ return Object.prototype.hasOwnProperty.call(languageMap, userLanguage) ? userLanguage : "en";
255
+ };
256
+
257
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
258
+
259
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
260
+
261
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
262
+
263
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
264
+ var Web3Auth = /*#__PURE__*/function (_Web3AuthCore) {
265
+ _inherits(Web3Auth, _Web3AuthCore);
266
+
267
+ var _super = _createSuper(Web3Auth);
268
+
269
+ function Web3Auth(options) {
270
+ var _this$options$uiConfi, _this$options$uiConfi2, _this$options$uiConfi3;
271
+
272
+ var _this;
273
+
274
+ _classCallCheck(this, Web3Auth);
275
+
276
+ _this = _super.call(this, options);
277
+
278
+ _defineProperty(_assertThisInitialized(_this), "loginModal", void 0);
279
+
280
+ _defineProperty(_assertThisInitialized(_this), "options", void 0);
281
+
282
+ _defineProperty(_assertThisInitialized(_this), "modalConfig", defaultEvmDappModalConfig);
283
+
284
+ _this.options = _objectSpread({}, options);
285
+ var providedChainConfig = _this.options.chainConfig;
286
+
287
+ if (providedChainConfig.chainNamespace === CHAIN_NAMESPACES.SOLANA) {
288
+ if (options.authMode === "WALLET") {
289
+ // default config for solana wallet modal
290
+ _this.modalConfig = defaultSolanaWalletModalConfig;
291
+ } else {
292
+ // default config for solana dapp modal
293
+ _this.modalConfig = defaultSolanaDappModalConfig;
294
+ }
295
+ } else if (providedChainConfig.chainNamespace === CHAIN_NAMESPACES.EIP155) {
296
+ if (options.authMode === "WALLET") {
297
+ // default config for evm wallet modal
298
+ _this.modalConfig = defaultEvmWalletModalConfig;
299
+ } else {
300
+ // default config for evm dapp modal
301
+ _this.modalConfig = defaultEvmDappModalConfig;
302
+ }
303
+ } else if (providedChainConfig.chainNamespace === CHAIN_NAMESPACES.OTHER) {
304
+ _this.modalConfig = defaultOtherModalConfig;
305
+ } else {
306
+ throw new Error("Invalid chainNamespace provided: ".concat(providedChainConfig.chainNamespace));
307
+ } // get userLanguage
308
+
309
+
310
+ var defaultLanguage = getUserLanguage((_this$options$uiConfi = _this.options.uiConfig) === null || _this$options$uiConfi === void 0 ? void 0 : _this$options$uiConfi.defaultLanguage);
311
+ _this.loginModal = new LoginModal({
312
+ theme: (_this$options$uiConfi2 = _this.options.uiConfig) === null || _this$options$uiConfi2 === void 0 ? void 0 : _this$options$uiConfi2.theme,
313
+ appLogo: ((_this$options$uiConfi3 = _this.options.uiConfig) === null || _this$options$uiConfi3 === void 0 ? void 0 : _this$options$uiConfi3.appLogo) || "",
314
+ version: "",
315
+ adapterListener: _assertThisInitialized(_this),
316
+ displayErrorsOnModal: _this.options.displayErrorsOnModal,
317
+ defaultLanguage: defaultLanguage
318
+ });
319
+
320
+ _this.subscribeToLoginModalEvents();
321
+
322
+ return _this;
323
+ }
324
+
325
+ _createClass(Web3Auth, [{
326
+ key: "initModal",
327
+ value: function () {
328
+ var _initModal = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(params) {
329
+ var _this2 = this;
330
+
331
+ var providedChainConfig, allAdapters, adapterConfigurationPromises, adapterNames, hasInAppWallets, initPromises, hasExternalWallets;
332
+ return _regeneratorRuntime.wrap(function _callee3$(_context3) {
333
+ while (1) {
334
+ switch (_context3.prev = _context3.next) {
335
+ case 0:
336
+ _get(_getPrototypeOf(Web3Auth.prototype), "checkInitRequirements", this).call(this);
337
+
338
+ _context3.next = 3;
339
+ return this.loginModal.initModal();
340
+
341
+ case 3:
342
+ providedChainConfig = this.options.chainConfig; // merge default adapters with the custom configured adapters.
343
+
344
+ allAdapters = _toConsumableArray(new Set([].concat(_toConsumableArray(Object.keys(this.modalConfig.adapters || {})), _toConsumableArray(Object.keys(this.walletAdapters)))));
345
+ adapterConfigurationPromises = allAdapters.map( /*#__PURE__*/function () {
346
+ var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(adapterName) {
347
+ var _this2$modalConfig$ad, _params$modalConfig, _this2$modalConfig$ad2, _this2$modalConfig$ad3;
348
+
349
+ var adapterConfig, adapter, ad, _this2$modalConfig$ad4, _this2$coreOptions$ch, chainConfig;
350
+
351
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
352
+ while (1) {
353
+ switch (_context.prev = _context.next) {
354
+ case 0:
355
+ // start with the default config of adapter.
356
+ adapterConfig = ((_this2$modalConfig$ad = _this2.modalConfig.adapters) === null || _this2$modalConfig$ad === void 0 ? void 0 : _this2$modalConfig$ad[adapterName]) || {
357
+ label: adapterName,
358
+ showOnModal: true,
359
+ showOnMobile: true,
360
+ showOnDesktop: true
361
+ }; // override the default config of adapter if some config is being provided by the user.
362
+
363
+ if (params !== null && params !== void 0 && (_params$modalConfig = params.modalConfig) !== null && _params$modalConfig !== void 0 && _params$modalConfig[adapterName]) {
364
+ adapterConfig = _objectSpread(_objectSpread({}, adapterConfig), params.modalConfig[adapterName]);
365
+ }
366
+
367
+ _this2.modalConfig.adapters[adapterName] = adapterConfig; // check if adapter is configured/added by user and exist in walletAdapters map.
368
+
369
+ adapter = _this2.walletAdapters[adapterName];
370
+ log.debug("adapter config", adapterName, (_this2$modalConfig$ad2 = _this2.modalConfig.adapters) === null || _this2$modalConfig$ad2 === void 0 ? void 0 : _this2$modalConfig$ad2[adapterName].showOnModal, adapter); // if adapter is not custom configured then check if it is available in default adapters.
371
+ // and if adapter is not hidden by user
372
+
373
+ if (!(!adapter && (_this2$modalConfig$ad3 = _this2.modalConfig.adapters) !== null && _this2$modalConfig$ad3 !== void 0 && _this2$modalConfig$ad3[adapterName].showOnModal)) {
374
+ _context.next = 13;
375
+ break;
376
+ }
377
+
378
+ _context.next = 8;
379
+ return getDefaultAdapterModule({
380
+ name: adapterName,
381
+ customChainConfig: _this2.options.chainConfig,
382
+ clientId: _this2.options.clientId
383
+ });
384
+
385
+ case 8:
386
+ ad = _context.sent;
387
+ _this2.walletAdapters[adapterName] = ad;
388
+ return _context.abrupt("return", adapterName);
389
+
390
+ case 13:
391
+ if (!((adapter === null || adapter === void 0 ? void 0 : adapter.type) === ADAPTER_CATEGORY.IN_APP || (adapter === null || adapter === void 0 ? void 0 : adapter.type) === ADAPTER_CATEGORY.EXTERNAL || adapterName === _this2.cachedAdapter)) {
392
+ _context.next = 19;
393
+ break;
394
+ }
395
+
396
+ if ((_this2$modalConfig$ad4 = _this2.modalConfig.adapters) !== null && _this2$modalConfig$ad4 !== void 0 && _this2$modalConfig$ad4[adapterName].showOnModal) {
397
+ _context.next = 16;
398
+ break;
399
+ }
400
+
401
+ return _context.abrupt("return");
402
+
403
+ case 16:
404
+ // add client id to adapter, same web3auth client id can be used in adapter.
405
+ // this id is being overridden if user is also passing client id in adapter's constructor.
406
+ _this2.walletAdapters[adapterName].setAdapterSettings({
407
+ clientId: _this2.options.clientId,
408
+ sessionTime: _this2.options.sessionTime
409
+ }); // if adapter doesn't have any chainConfig then we will set the chainConfig based of passed chainNamespace
410
+ // and chainNamespace.
411
+
412
+
413
+ if (!adapter.chainConfigProxy) {
414
+ chainConfig = _objectSpread(_objectSpread({}, getChainConfig(providedChainConfig.chainNamespace, (_this2$coreOptions$ch = _this2.coreOptions.chainConfig) === null || _this2$coreOptions$ch === void 0 ? void 0 : _this2$coreOptions$ch.chainId)), _this2.coreOptions.chainConfig);
415
+
416
+ _this2.walletAdapters[adapterName].setChainConfig(chainConfig);
417
+ }
418
+
419
+ return _context.abrupt("return", adapterName);
420
+
421
+ case 19:
422
+ case "end":
423
+ return _context.stop();
424
+ }
425
+ }
426
+ }, _callee);
427
+ }));
428
+
429
+ return function (_x2) {
430
+ return _ref.apply(this, arguments);
431
+ };
432
+ }());
433
+ _context3.next = 8;
434
+ return Promise.all(adapterConfigurationPromises);
435
+
436
+ case 8:
437
+ adapterNames = _context3.sent;
438
+ hasInAppWallets = Object.values(this.walletAdapters).some(function (adapter) {
439
+ var _this2$modalConfig$ad5;
440
+
441
+ if (adapter.type !== ADAPTER_CATEGORY.IN_APP) return false;
442
+ if (_this2.modalConfig.adapters[adapter.name].showOnModal !== true) return false;
443
+ if (!_this2.modalConfig.adapters[adapter.name].loginMethods) return true;
444
+ var mergedLoginMethods = getAdapterSocialLogins(adapter.name, _this2.walletAdapters[adapter.name], (_this2$modalConfig$ad5 = _this2.modalConfig.adapters[adapter.name]) === null || _this2$modalConfig$ad5 === void 0 ? void 0 : _this2$modalConfig$ad5.loginMethods);
445
+ if (Object.values(mergedLoginMethods).some(function (method) {
446
+ return method.showOnModal;
447
+ })) return true;
448
+ return false;
449
+ });
450
+ log.debug(hasInAppWallets, this.walletAdapters, "hasInAppWallets"); // Now, initialize the adapters.
451
+
452
+ initPromises = adapterNames.map( /*#__PURE__*/function () {
453
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(adapterName) {
454
+ var adapter;
455
+ return _regeneratorRuntime.wrap(function _callee2$(_context2) {
456
+ while (1) {
457
+ switch (_context2.prev = _context2.next) {
458
+ case 0:
459
+ if (adapterName) {
460
+ _context2.next = 2;
461
+ break;
462
+ }
463
+
464
+ return _context2.abrupt("return");
465
+
466
+ case 2:
467
+ _context2.prev = 2;
468
+ adapter = _this2.walletAdapters[adapterName]; // only initialize a external adapter here if it is a cached adapter.
469
+
470
+ if (!(_this2.cachedAdapter !== adapterName && adapter.type === ADAPTER_CATEGORY.EXTERNAL)) {
471
+ _context2.next = 6;
472
+ break;
473
+ }
474
+
475
+ return _context2.abrupt("return");
476
+
477
+ case 6:
478
+ // in-app wallets or cached wallet (being connected or already connected) are initialized first.
479
+ // if adapter is configured thn only initialize in app or cached adapter.
480
+ // external wallets are initialized on INIT_EXTERNAL_WALLET event.
481
+ _this2.subscribeToAdapterEvents(adapter);
482
+
483
+ if (!(adapter.status === ADAPTER_STATUS.NOT_READY)) {
484
+ _context2.next = 10;
485
+ break;
486
+ }
487
+
488
+ _context2.next = 10;
489
+ return adapter.init({
490
+ autoConnect: _this2.cachedAdapter === adapterName
491
+ });
492
+
493
+ case 10:
494
+ // note: not adding cachedWallet to modal if it is external wallet.
495
+ // adding it later if no in-app wallets are available.
496
+ if (adapter.type === ADAPTER_CATEGORY.IN_APP) {
497
+ _this2.initializeInAppWallet(adapterName);
498
+ }
499
+
500
+ _context2.next = 16;
501
+ break;
502
+
503
+ case 13:
504
+ _context2.prev = 13;
505
+ _context2.t0 = _context2["catch"](2);
506
+ log.error(_context2.t0, "error while initializing adapter");
507
+
508
+ case 16:
509
+ case "end":
510
+ return _context2.stop();
511
+ }
512
+ }
513
+ }, _callee2, null, [[2, 13]]);
514
+ }));
515
+
516
+ return function (_x3) {
517
+ return _ref2.apply(this, arguments);
518
+ };
519
+ }());
520
+ this.status = ADAPTER_STATUS.READY;
521
+ _context3.next = 15;
522
+ return Promise.all(initPromises);
523
+
524
+ case 15:
525
+ hasExternalWallets = allAdapters.some(function (adapterName) {
526
+ var _this2$walletAdapters, _this2$modalConfig$ad6;
527
+
528
+ return ((_this2$walletAdapters = _this2.walletAdapters[adapterName]) === null || _this2$walletAdapters === void 0 ? void 0 : _this2$walletAdapters.type) === ADAPTER_CATEGORY.EXTERNAL && ((_this2$modalConfig$ad6 = _this2.modalConfig.adapters) === null || _this2$modalConfig$ad6 === void 0 ? void 0 : _this2$modalConfig$ad6[adapterName].showOnModal);
529
+ });
530
+
531
+ if (hasExternalWallets) {
532
+ this.loginModal.initExternalWalletContainer();
533
+ } // variable to check if we have any in app wallets
534
+ // currently all default in app and external wallets can be hidden or shown based on config.
535
+
536
+
537
+ if (!(!hasInAppWallets && hasExternalWallets)) {
538
+ _context3.next = 20;
539
+ break;
540
+ }
541
+
542
+ _context3.next = 20;
543
+ return this.initExternalWalletAdapters(false, {
544
+ showExternalWalletsOnly: true
545
+ });
546
+
547
+ case 20:
548
+ case "end":
549
+ return _context3.stop();
550
+ }
551
+ }
552
+ }, _callee3, this);
553
+ }));
554
+
555
+ function initModal(_x) {
556
+ return _initModal.apply(this, arguments);
557
+ }
558
+
559
+ return initModal;
560
+ }()
561
+ }, {
562
+ key: "connect",
563
+ value: function () {
564
+ var _connect = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {
565
+ var _this3 = this;
566
+
567
+ return _regeneratorRuntime.wrap(function _callee4$(_context4) {
568
+ while (1) {
569
+ switch (_context4.prev = _context4.next) {
570
+ case 0:
571
+ if (!this.provider) {
572
+ _context4.next = 2;
573
+ break;
574
+ }
575
+
576
+ return _context4.abrupt("return", this.provider);
577
+
578
+ case 2:
579
+ this.loginModal.open();
580
+ return _context4.abrupt("return", new Promise(function (resolve, reject) {
581
+ _this3.once(ADAPTER_EVENTS.CONNECTED, function () {
582
+ return resolve(_this3.provider);
583
+ });
584
+
585
+ _this3.once(ADAPTER_EVENTS.ERRORED, function (err) {
586
+ return reject(err);
587
+ });
588
+ }));
589
+
590
+ case 4:
591
+ case "end":
592
+ return _context4.stop();
593
+ }
594
+ }
595
+ }, _callee4, this);
596
+ }));
597
+
598
+ function connect() {
599
+ return _connect.apply(this, arguments);
600
+ }
601
+
602
+ return connect;
603
+ }()
604
+ }, {
605
+ key: "initExternalWalletAdapters",
606
+ value: function () {
607
+ var _initExternalWalletAdapters = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6(externalWalletsInitialized, options) {
608
+ var _this4 = this;
609
+
610
+ var adaptersConfig, adaptersData, adapterPromises, adapterInitResults, finalAdaptersConfig;
611
+ return _regeneratorRuntime.wrap(function _callee6$(_context6) {
612
+ while (1) {
613
+ switch (_context6.prev = _context6.next) {
614
+ case 0:
615
+ if (!externalWalletsInitialized) {
616
+ _context6.next = 2;
617
+ break;
618
+ }
619
+
620
+ return _context6.abrupt("return");
621
+
622
+ case 2:
623
+ adaptersConfig = {};
624
+ adaptersData = {};
625
+ adapterPromises = Object.keys(this.walletAdapters).map( /*#__PURE__*/function () {
626
+ var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(adapterName) {
627
+ var adapter;
628
+ return _regeneratorRuntime.wrap(function _callee5$(_context5) {
629
+ while (1) {
630
+ switch (_context5.prev = _context5.next) {
631
+ case 0:
632
+ _context5.prev = 0;
633
+ adapter = _this4.walletAdapters[adapterName];
634
+
635
+ if (!((adapter === null || adapter === void 0 ? void 0 : adapter.type) === ADAPTER_CATEGORY.EXTERNAL)) {
636
+ _context5.next = 11;
637
+ break;
638
+ }
639
+
640
+ log.debug("init external wallet", _this4.cachedAdapter, adapterName);
641
+
642
+ _this4.subscribeToAdapterEvents(adapter); // we are not initializing cached adapter here as it is already being initialized in initModal before.
643
+
644
+
645
+ if (!(_this4.cachedAdapter === adapterName)) {
646
+ _context5.next = 7;
647
+ break;
648
+ }
649
+
650
+ return _context5.abrupt("return");
651
+
652
+ case 7:
653
+ if (!(adapter.status === ADAPTER_STATUS.NOT_READY)) {
654
+ _context5.next = 11;
655
+ break;
656
+ }
657
+
658
+ _context5.next = 10;
659
+ return Promise.race([adapter.init({
660
+ autoConnect: _this4.cachedAdapter === adapterName
661
+ }).then(function () {
662
+ adaptersConfig[adapterName] = _this4.modalConfig.adapters[adapterName];
663
+ adaptersData[adapterName] = adapter.adapterData || {};
664
+ return adapterName;
665
+ }), new Promise(function (resolve) {
666
+ setTimeout(function () {
667
+ return resolve(null);
668
+ }, 5000);
669
+ })]);
670
+
671
+ case 10:
672
+ return _context5.abrupt("return", _context5.sent);
673
+
674
+ case 11:
675
+ _context5.next = 16;
676
+ break;
677
+
678
+ case 13:
679
+ _context5.prev = 13;
680
+ _context5.t0 = _context5["catch"](0);
681
+ log.error(_context5.t0, "error while initializing adapter");
682
+
683
+ case 16:
684
+ case "end":
685
+ return _context5.stop();
686
+ }
687
+ }
688
+ }, _callee5, null, [[0, 13]]);
689
+ }));
690
+
691
+ return function (_x6) {
692
+ return _ref3.apply(this, arguments);
693
+ };
694
+ }());
695
+ _context6.next = 7;
696
+ return Promise.all(adapterPromises);
697
+
698
+ case 7:
699
+ adapterInitResults = _context6.sent;
700
+ finalAdaptersConfig = {};
701
+ adapterInitResults.forEach(function (result) {
702
+ if (result) {
703
+ finalAdaptersConfig[result] = adaptersConfig[result];
704
+ }
705
+ });
706
+ this.loginModal.addWalletLogins(finalAdaptersConfig, {
707
+ showExternalWalletsOnly: !!(options !== null && options !== void 0 && options.showExternalWalletsOnly)
708
+ });
709
+
710
+ case 11:
711
+ case "end":
712
+ return _context6.stop();
713
+ }
714
+ }
715
+ }, _callee6, this);
716
+ }));
717
+
718
+ function initExternalWalletAdapters(_x4, _x5) {
719
+ return _initExternalWalletAdapters.apply(this, arguments);
720
+ }
721
+
722
+ return initExternalWalletAdapters;
723
+ }()
724
+ }, {
725
+ key: "initializeInAppWallet",
726
+ value: function initializeInAppWallet(adapterName) {
727
+ log.info("adapterInitResults", adapterName);
728
+
729
+ if (this.walletAdapters[adapterName].type === ADAPTER_CATEGORY.IN_APP) {
730
+ var _this$modalConfig$ada, _this$options$uiConfi4;
731
+
732
+ this.loginModal.addSocialLogins(adapterName, getAdapterSocialLogins(adapterName, this.walletAdapters[adapterName], (_this$modalConfig$ada = this.modalConfig.adapters[adapterName]) === null || _this$modalConfig$ada === void 0 ? void 0 : _this$modalConfig$ada.loginMethods), ((_this$options$uiConfi4 = this.options.uiConfig) === null || _this$options$uiConfi4 === void 0 ? void 0 : _this$options$uiConfi4.loginMethodsOrder) || OPENLOGIN_PROVIDERS);
733
+ }
734
+ }
735
+ }, {
736
+ key: "subscribeToLoginModalEvents",
737
+ value: function subscribeToLoginModalEvents() {
738
+ var _this5 = this;
739
+
740
+ this.loginModal.on(LOGIN_MODAL_EVENTS.LOGIN, /*#__PURE__*/function () {
741
+ var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee7(params) {
742
+ return _regeneratorRuntime.wrap(function _callee7$(_context7) {
743
+ while (1) {
744
+ switch (_context7.prev = _context7.next) {
745
+ case 0:
746
+ _context7.prev = 0;
747
+ _context7.next = 3;
748
+ return _this5.connectTo(params.adapter, params.loginParams);
749
+
750
+ case 3:
751
+ _context7.next = 8;
752
+ break;
753
+
754
+ case 5:
755
+ _context7.prev = 5;
756
+ _context7.t0 = _context7["catch"](0);
757
+ log.error("Error while connecting to adapter: ".concat(params.adapter), _context7.t0);
758
+
759
+ case 8:
760
+ case "end":
761
+ return _context7.stop();
762
+ }
763
+ }
764
+ }, _callee7, null, [[0, 5]]);
765
+ }));
766
+
767
+ return function (_x7) {
768
+ return _ref4.apply(this, arguments);
769
+ };
770
+ }());
771
+ this.loginModal.on(LOGIN_MODAL_EVENTS.INIT_EXTERNAL_WALLETS, /*#__PURE__*/function () {
772
+ var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee8(params) {
773
+ return _regeneratorRuntime.wrap(function _callee8$(_context8) {
774
+ while (1) {
775
+ switch (_context8.prev = _context8.next) {
776
+ case 0:
777
+ _context8.next = 2;
778
+ return _this5.initExternalWalletAdapters(params.externalWalletsInitialized);
779
+
780
+ case 2:
781
+ case "end":
782
+ return _context8.stop();
783
+ }
784
+ }
785
+ }, _callee8);
786
+ }));
787
+
788
+ return function (_x8) {
789
+ return _ref5.apply(this, arguments);
790
+ };
791
+ }());
792
+ this.loginModal.on(LOGIN_MODAL_EVENTS.DISCONNECT, /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee9() {
793
+ return _regeneratorRuntime.wrap(function _callee9$(_context9) {
794
+ while (1) {
795
+ switch (_context9.prev = _context9.next) {
796
+ case 0:
797
+ _context9.prev = 0;
798
+ _context9.next = 3;
799
+ return _this5.logout();
800
+
801
+ case 3:
802
+ _context9.next = 8;
803
+ break;
804
+
805
+ case 5:
806
+ _context9.prev = 5;
807
+ _context9.t0 = _context9["catch"](0);
808
+ log.error("Error while disconnecting", _context9.t0);
809
+
810
+ case 8:
811
+ case "end":
812
+ return _context9.stop();
813
+ }
814
+ }
815
+ }, _callee9, null, [[0, 5]]);
816
+ })));
817
+ this.loginModal.on(LOGIN_MODAL_EVENTS.MODAL_VISIBILITY, /*#__PURE__*/function () {
818
+ var _ref7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee10(visibility) {
819
+ var _this5$walletAdapters;
820
+
821
+ var walletConnectStatus;
822
+ return _regeneratorRuntime.wrap(function _callee10$(_context10) {
823
+ while (1) {
824
+ switch (_context10.prev = _context10.next) {
825
+ case 0:
826
+ log.debug("is login modal visible", visibility);
827
+
828
+ _this5.emit(LOGIN_MODAL_EVENTS.MODAL_VISIBILITY, visibility);
829
+
830
+ walletConnectStatus = (_this5$walletAdapters = _this5.walletAdapters[WALLET_ADAPTERS.WALLET_CONNECT_V1]) === null || _this5$walletAdapters === void 0 ? void 0 : _this5$walletAdapters.status;
831
+
832
+ if (visibility && walletConnectStatus === ADAPTER_STATUS.READY) {
833
+ // refreshing session for wallet connect whenever modal is opened.
834
+ try {
835
+ _this5.walletAdapters[WALLET_ADAPTERS.WALLET_CONNECT_V1].connect();
836
+ } catch (error) {
837
+ log.error("Error while disconnecting to wallet connect in core", error);
838
+ }
839
+ }
840
+
841
+ case 4:
842
+ case "end":
843
+ return _context10.stop();
844
+ }
845
+ }
846
+ }, _callee10);
847
+ }));
848
+
849
+ return function (_x9) {
850
+ return _ref7.apply(this, arguments);
851
+ };
852
+ }());
853
+ }
854
+ }]);
855
+
856
+ return Web3Auth;
857
+ }(Web3AuthCore);
858
+
859
+ export { Web3Auth, defaultEvmDappModalConfig, defaultEvmWalletModalConfig, defaultOtherModalConfig, defaultSolanaDappModalConfig, defaultSolanaWalletModalConfig };
860
+ //# sourceMappingURL=modal.esm.js.map