@mocanetwork/airkit 1.2.0 → 1.3.0-beta.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.
@@ -120,14 +120,14 @@ const AirAuthMessageTypes = {
120
120
  SIGN_SIWE_MESSAGE_RESPONSE: "air_auth_sign_siwe_message_response",
121
121
  CROSS_PARTNER_TOKEN_REQUEST: "air_auth_cross_partner_token_request",
122
122
  CROSS_PARTNER_TOKEN_RESPONSE: "air_auth_cross_partner_token_response",
123
- PARTNER_ACCESS_TOKEN_REQUEST: "air_auth_partner_access_token_request",
124
- PARTNER_ACCESS_TOKEN_RESPONSE: "air_auth_partner_access_token_response",
123
+ GET_PARTNER_ACCESS_TOKEN_REQUEST: "air_auth_get_partner_access_token_request",
124
+ GET_PARTNER_ACCESS_TOKEN_RESPONSE: "air_auth_get_partner_access_token_response",
125
125
  LOGOUT_REQUEST: "air_auth_logout_request",
126
126
  LOGOUT_RESPONSE: "air_auth_logout_response",
127
127
  RESET_WALLET_COMMUNICATION: "air_auth_reset_wallet_communication"
128
128
  };
129
129
 
130
- const AirWalletMessageTypes = {
130
+ const AirMessageTypes = {
131
131
  SERVICE_STARTED: "air_service_started",
132
132
  INITIALIZATION_REQUEST: "air_initialization_request",
133
133
  INITIALIZATION_RESPONSE: "air_initialization_response",
@@ -135,8 +135,8 @@ const AirWalletMessageTypes = {
135
135
  WALLET_INITIALIZED: "air_wallet_initialized",
136
136
  WALLET_LOGIN_REQUEST: "air_wallet_login_request",
137
137
  WALLET_LOGIN_RESPONSE: "air_wallet_login_response",
138
- SETUP_OR_UPDATE_MFA_REQUEST: "air_setup_mfa_request",
139
- SETUP_OR_UPDATE_MFA_RESPONSE: "air_setup_mfa_response",
138
+ SETUP_MFA_REQUEST: "air_setup_mfa_request",
139
+ SETUP_MFA_RESPONSE: "air_setup_mfa_response",
140
140
  CLAIM_ID_REQUEST: "air_claim_id_request",
141
141
  CLAIM_ID_RESPONSE: "air_claim_id_response",
142
142
  DEPLOY_SMART_ACCOUNT_REQUEST: "air_deploy_smart_account_request",
@@ -152,8 +152,6 @@ const AirWalletMessageTypes = {
152
152
  WALLET_IFRAME_VISIBILITY_REQUEST: "air_wallet_iframe_visibility_request",
153
153
  OPEN_WINDOW_REQUEST: "air_open_window_request",
154
154
  OPEN_WINDOW_RESPONSE: "air_open_window_response",
155
- OPEN_WINDOW_RETRY_REQUEST: "air_open_window_retry_request",
156
- OPEN_WINDOW_RETRY_RESPONSE: "air_open_window_retry_response",
157
155
  WINDOW_CLOSED: "air_window_closed",
158
156
  IS_SMART_ACCOUNT_DEPLOYED_REQUEST: "air_is_smart_account_deployed_request",
159
157
  IS_SMART_ACCOUNT_DEPLOYED_RESPONSE: "air_is_smart_account_deployed_response",
@@ -193,50 +191,6 @@ function ensureError(value) {
193
191
  return new Error(`This value was not thrown as type Error: ${stringified}`);
194
192
  }
195
193
 
196
- const BUILD_ENV = {
197
- PRODUCTION: "production",
198
- UAT: "uat",
199
- STAGING: "staging",
200
- DEVELOPMENT: "development",
201
- };
202
-
203
- const AIR_URLS = {
204
- [BUILD_ENV.DEVELOPMENT]: {
205
- authUrl: "http://localhost:8100",
206
- walletUrl: "http://localhost:8200",
207
- },
208
- [BUILD_ENV.UAT]: {
209
- authUrl: "https://auth.uat.air3.com",
210
- walletUrl: "https://account.uat.air3.com",
211
- },
212
- [BUILD_ENV.STAGING]: {
213
- authUrl: "https://auth.staging.air3.com",
214
- walletUrl: "https://account.staging.air3.com",
215
- },
216
- [BUILD_ENV.PRODUCTION]: {
217
- authUrl: "https://auth.air3.com",
218
- walletUrl: "https://account.air3.com",
219
- },
220
- };
221
- const isElement = (element) => element instanceof Element || element instanceof Document;
222
- const randomId = () => Math.random().toString(36).slice(2);
223
- const extractErrorHash = (message) => {
224
- if (!message)
225
- return "";
226
- // Format: "reason: 0x..."
227
- if (message.includes("reason:")) {
228
- return message.split("reason:")[1].trim();
229
- }
230
- // Format: "UserOperation reverted during simulation with reason: 0x..."
231
- if (message.includes("with reason:")) {
232
- const match = message.match(/with reason: (0x[a-fA-F0-9]+)/);
233
- return match ? match[1].trim() : "";
234
- }
235
- // Look for any 0x pattern that could be a hash
236
- const hexMatch = message.match(/(0x[a-fA-F0-9]{8,})/);
237
- return hexMatch ? hexMatch[1].trim() : "";
238
- };
239
-
240
194
  class AirServiceError extends BaseError {
241
195
  static from(error) {
242
196
  if (error instanceof AirServiceError) {
@@ -254,7 +208,6 @@ class AirServiceError extends BaseError {
254
208
  class ProviderRpcError extends Error {
255
209
  constructor(message) {
256
210
  super(message);
257
- this.metaMessages = [];
258
211
  }
259
212
  }
260
213
  class UserRejectedRequestError extends ProviderRpcError {
@@ -299,17 +252,6 @@ class SwitchChainError extends ProviderRpcError {
299
252
  this.name = "SwitchChainError";
300
253
  }
301
254
  }
302
- class TransactionRejectedRpcError extends ProviderRpcError {
303
- constructor(message) {
304
- // Remove the "Version: viem@x.x.x" suffix if present
305
- const cleanMessage = message.replace(/\nVersion:.*$/, '');
306
- super(cleanMessage);
307
- this.code = -32003;
308
- this.name = "TransactionRejectedRpcError";
309
- // Parse the error hash from the message
310
- this.metaMessages.push(extractErrorHash(cleanMessage));
311
- }
312
- }
313
255
  class InvalidRequestRpcError extends ProviderRpcError {
314
256
  constructor() {
315
257
  super(...arguments);
@@ -360,8 +302,6 @@ function ensureProviderRpcError(value) {
360
302
  return new ChainDisconnectedError(value.errorMessage);
361
303
  case 4902:
362
304
  return new SwitchChainError(value.errorMessage);
363
- case -32003:
364
- return new TransactionRejectedRpcError(value.errorMessage);
365
305
  }
366
306
  }
367
307
  }
@@ -375,461 +315,130 @@ function ensureProviderRpcError(value) {
375
315
  return new InternalRpcError(`Invalid value for ProviderRpcError: ${stringified}`);
376
316
  }
377
317
 
378
- function getDefaultExportFromCjs (x) {
379
- return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
318
+ function isFunction(value) {
319
+ return typeof value === 'function';
380
320
  }
381
321
 
382
- var loglevel$1 = {exports: {}};
383
-
384
- /*
385
- * loglevel - https://github.com/pimterry/loglevel
386
- *
387
- * Copyright (c) 2013 Tim Perry
388
- * Licensed under the MIT license.
389
- */
390
- var loglevel = loglevel$1.exports;
391
- var hasRequiredLoglevel;
392
- function requireLoglevel() {
393
- if (hasRequiredLoglevel) return loglevel$1.exports;
394
- hasRequiredLoglevel = 1;
395
- (function (module) {
396
- (function (root, definition) {
322
+ function createErrorClass(createImpl) {
323
+ var _super = function (instance) {
324
+ Error.call(instance);
325
+ instance.stack = new Error().stack;
326
+ };
327
+ var ctorFunc = createImpl(_super);
328
+ ctorFunc.prototype = Object.create(Error.prototype);
329
+ ctorFunc.prototype.constructor = ctorFunc;
330
+ return ctorFunc;
331
+ }
397
332
 
398
- if (module.exports) {
399
- module.exports = definition();
400
- } else {
401
- root.log = definition();
402
- }
403
- })(loglevel, function () {
333
+ var UnsubscriptionError = createErrorClass(function (_super) {
334
+ return function UnsubscriptionErrorImpl(errors) {
335
+ _super(this);
336
+ this.message = errors ? errors.length + " errors occurred during unsubscription:\n" + errors.map(function (err, i) {
337
+ return i + 1 + ") " + err.toString();
338
+ }).join('\n ') : '';
339
+ this.name = 'UnsubscriptionError';
340
+ this.errors = errors;
341
+ };
342
+ });
404
343
 
405
- // Slightly dubious tricks to cut down minimized file size
406
- var noop = function () {};
407
- var undefinedType = "undefined";
408
- var isIE = typeof window !== undefinedType && typeof window.navigator !== undefinedType && /Trident\/|MSIE /.test(window.navigator.userAgent);
409
- var logMethods = ["trace", "debug", "info", "warn", "error"];
410
- var _loggersByName = {};
411
- var defaultLogger = null;
344
+ function arrRemove(arr, item) {
345
+ if (arr) {
346
+ var index = arr.indexOf(item);
347
+ 0 <= index && arr.splice(index, 1);
348
+ }
349
+ }
412
350
 
413
- // Cross-browser bind equivalent that works at least back to IE6
414
- function bindMethod(obj, methodName) {
415
- var method = obj[methodName];
416
- if (typeof method.bind === 'function') {
417
- return method.bind(obj);
418
- } else {
351
+ var Subscription = function () {
352
+ function Subscription(initialTeardown) {
353
+ this.initialTeardown = initialTeardown;
354
+ this.closed = false;
355
+ this._parentage = null;
356
+ this._finalizers = null;
357
+ }
358
+ Subscription.prototype.unsubscribe = function () {
359
+ var e_1, _a, e_2, _b;
360
+ var errors;
361
+ if (!this.closed) {
362
+ this.closed = true;
363
+ var _parentage = this._parentage;
364
+ if (_parentage) {
365
+ this._parentage = null;
366
+ if (Array.isArray(_parentage)) {
419
367
  try {
420
- return Function.prototype.bind.call(method, obj);
421
- } catch (e) {
422
- // Missing bind shim or IE8 + Modernizr, fallback to wrapping
423
- return function () {
424
- return Function.prototype.apply.apply(method, [obj, arguments]);
368
+ for (var _parentage_1 = __values(_parentage), _parentage_1_1 = _parentage_1.next(); !_parentage_1_1.done; _parentage_1_1 = _parentage_1.next()) {
369
+ var parent_1 = _parentage_1_1.value;
370
+ parent_1.remove(this);
371
+ }
372
+ } catch (e_1_1) {
373
+ e_1 = {
374
+ error: e_1_1
425
375
  };
376
+ } finally {
377
+ try {
378
+ if (_parentage_1_1 && !_parentage_1_1.done && (_a = _parentage_1.return)) _a.call(_parentage_1);
379
+ } finally {
380
+ if (e_1) throw e_1.error;
381
+ }
426
382
  }
383
+ } else {
384
+ _parentage.remove(this);
427
385
  }
428
386
  }
429
-
430
- // Trace() doesn't print the message in IE, so for that case we need to wrap it
431
- function traceForIE() {
432
- if (console.log) {
433
- if (console.log.apply) {
434
- console.log.apply(console, arguments);
435
- } else {
436
- // In old IE, native console methods themselves don't have apply().
437
- Function.prototype.apply.apply(console.log, [console, arguments]);
438
- }
387
+ var initialFinalizer = this.initialTeardown;
388
+ if (isFunction(initialFinalizer)) {
389
+ try {
390
+ initialFinalizer();
391
+ } catch (e) {
392
+ errors = e instanceof UnsubscriptionError ? e.errors : [e];
439
393
  }
440
- if (console.trace) console.trace();
441
394
  }
442
-
443
- // Build the best logging method possible for this env
444
- // Wherever possible we want to bind, not wrap, to preserve stack traces
445
- function realMethod(methodName) {
446
- if (methodName === 'debug') {
447
- methodName = 'log';
448
- }
449
- if (typeof console === undefinedType) {
450
- return false; // No method possible, for now - fixed later by enableLoggingWhenConsoleArrives
451
- } else if (methodName === 'trace' && isIE) {
452
- return traceForIE;
453
- } else if (console[methodName] !== undefined) {
454
- return bindMethod(console, methodName);
455
- } else if (console.log !== undefined) {
456
- return bindMethod(console, 'log');
457
- } else {
458
- return noop;
395
+ var _finalizers = this._finalizers;
396
+ if (_finalizers) {
397
+ this._finalizers = null;
398
+ try {
399
+ for (var _finalizers_1 = __values(_finalizers), _finalizers_1_1 = _finalizers_1.next(); !_finalizers_1_1.done; _finalizers_1_1 = _finalizers_1.next()) {
400
+ var finalizer = _finalizers_1_1.value;
401
+ try {
402
+ execFinalizer(finalizer);
403
+ } catch (err) {
404
+ errors = errors !== null && errors !== void 0 ? errors : [];
405
+ if (err instanceof UnsubscriptionError) {
406
+ errors = __spreadArray(__spreadArray([], __read(errors)), __read(err.errors));
407
+ } else {
408
+ errors.push(err);
409
+ }
410
+ }
411
+ }
412
+ } catch (e_2_1) {
413
+ e_2 = {
414
+ error: e_2_1
415
+ };
416
+ } finally {
417
+ try {
418
+ if (_finalizers_1_1 && !_finalizers_1_1.done && (_b = _finalizers_1.return)) _b.call(_finalizers_1);
419
+ } finally {
420
+ if (e_2) throw e_2.error;
421
+ }
459
422
  }
460
423
  }
461
-
462
- // These private functions always need `this` to be set properly
463
-
464
- function replaceLoggingMethods() {
465
- /*jshint validthis:true */
466
- var level = this.getLevel();
467
-
468
- // Replace the actual methods.
469
- for (var i = 0; i < logMethods.length; i++) {
470
- var methodName = logMethods[i];
471
- this[methodName] = i < level ? noop : this.methodFactory(methodName, level, this.name);
472
- }
473
-
474
- // Define log.log as an alias for log.debug
475
- this.log = this.debug;
476
-
477
- // Return any important warnings.
478
- if (typeof console === undefinedType && level < this.levels.SILENT) {
479
- return "No console available for logging";
480
- }
424
+ if (errors) {
425
+ throw new UnsubscriptionError(errors);
481
426
  }
482
-
483
- // In old IE versions, the console isn't present until you first open it.
484
- // We build realMethod() replacements here that regenerate logging methods
485
- function enableLoggingWhenConsoleArrives(methodName) {
486
- return function () {
487
- if (typeof console !== undefinedType) {
488
- replaceLoggingMethods.call(this);
489
- this[methodName].apply(this, arguments);
427
+ }
428
+ };
429
+ Subscription.prototype.add = function (teardown) {
430
+ var _a;
431
+ if (teardown && teardown !== this) {
432
+ if (this.closed) {
433
+ execFinalizer(teardown);
434
+ } else {
435
+ if (teardown instanceof Subscription) {
436
+ if (teardown.closed || teardown._hasParent(this)) {
437
+ return;
490
438
  }
491
- };
492
- }
493
-
494
- // By default, we use closely bound real methods wherever possible, and
495
- // otherwise we wait for a console to appear, and then try again.
496
- function defaultMethodFactory(methodName, _level, _loggerName) {
497
- /*jshint validthis:true */
498
- return realMethod(methodName) || enableLoggingWhenConsoleArrives.apply(this, arguments);
499
- }
500
- function Logger(name, factory) {
501
- // Private instance variables.
502
- var self = this;
503
- /**
504
- * The level inherited from a parent logger (or a global default). We
505
- * cache this here rather than delegating to the parent so that it stays
506
- * in sync with the actual logging methods that we have installed (the
507
- * parent could change levels but we might not have rebuilt the loggers
508
- * in this child yet).
509
- * @type {number}
510
- */
511
- var inheritedLevel;
512
- /**
513
- * The default level for this logger, if any. If set, this overrides
514
- * `inheritedLevel`.
515
- * @type {number|null}
516
- */
517
- var defaultLevel;
518
- /**
519
- * A user-specific level for this logger. If set, this overrides
520
- * `defaultLevel`.
521
- * @type {number|null}
522
- */
523
- var userLevel;
524
- var storageKey = "loglevel";
525
- if (typeof name === "string") {
526
- storageKey += ":" + name;
527
- } else if (typeof name === "symbol") {
528
- storageKey = undefined;
529
- }
530
- function persistLevelIfPossible(levelNum) {
531
- var levelName = (logMethods[levelNum] || 'silent').toUpperCase();
532
- if (typeof window === undefinedType || !storageKey) return;
533
-
534
- // Use localStorage if available
535
- try {
536
- window.localStorage[storageKey] = levelName;
537
- return;
538
- } catch (ignore) {}
539
-
540
- // Use session cookie as fallback
541
- try {
542
- window.document.cookie = encodeURIComponent(storageKey) + "=" + levelName + ";";
543
- } catch (ignore) {}
544
- }
545
- function getPersistedLevel() {
546
- var storedLevel;
547
- if (typeof window === undefinedType || !storageKey) return;
548
- try {
549
- storedLevel = window.localStorage[storageKey];
550
- } catch (ignore) {}
551
-
552
- // Fallback to cookies if local storage gives us nothing
553
- if (typeof storedLevel === undefinedType) {
554
- try {
555
- var cookie = window.document.cookie;
556
- var cookieName = encodeURIComponent(storageKey);
557
- var location = cookie.indexOf(cookieName + "=");
558
- if (location !== -1) {
559
- storedLevel = /^([^;]+)/.exec(cookie.slice(location + cookieName.length + 1))[1];
560
- }
561
- } catch (ignore) {}
562
- }
563
-
564
- // If the stored level is not valid, treat it as if nothing was stored.
565
- if (self.levels[storedLevel] === undefined) {
566
- storedLevel = undefined;
567
- }
568
- return storedLevel;
569
- }
570
- function clearPersistedLevel() {
571
- if (typeof window === undefinedType || !storageKey) return;
572
-
573
- // Use localStorage if available
574
- try {
575
- window.localStorage.removeItem(storageKey);
576
- } catch (ignore) {}
577
-
578
- // Use session cookie as fallback
579
- try {
580
- window.document.cookie = encodeURIComponent(storageKey) + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC";
581
- } catch (ignore) {}
582
- }
583
- function normalizeLevel(input) {
584
- var level = input;
585
- if (typeof level === "string" && self.levels[level.toUpperCase()] !== undefined) {
586
- level = self.levels[level.toUpperCase()];
587
- }
588
- if (typeof level === "number" && level >= 0 && level <= self.levels.SILENT) {
589
- return level;
590
- } else {
591
- throw new TypeError("log.setLevel() called with invalid level: " + input);
592
- }
593
- }
594
-
595
- /*
596
- *
597
- * Public logger API - see https://github.com/pimterry/loglevel for details
598
- *
599
- */
600
-
601
- self.name = name;
602
- self.levels = {
603
- "TRACE": 0,
604
- "DEBUG": 1,
605
- "INFO": 2,
606
- "WARN": 3,
607
- "ERROR": 4,
608
- "SILENT": 5
609
- };
610
- self.methodFactory = factory || defaultMethodFactory;
611
- self.getLevel = function () {
612
- if (userLevel != null) {
613
- return userLevel;
614
- } else if (defaultLevel != null) {
615
- return defaultLevel;
616
- } else {
617
- return inheritedLevel;
618
- }
619
- };
620
- self.setLevel = function (level, persist) {
621
- userLevel = normalizeLevel(level);
622
- if (persist !== false) {
623
- // defaults to true
624
- persistLevelIfPossible(userLevel);
625
- }
626
-
627
- // NOTE: in v2, this should call rebuild(), which updates children.
628
- return replaceLoggingMethods.call(self);
629
- };
630
- self.setDefaultLevel = function (level) {
631
- defaultLevel = normalizeLevel(level);
632
- if (!getPersistedLevel()) {
633
- self.setLevel(level, false);
634
- }
635
- };
636
- self.resetLevel = function () {
637
- userLevel = null;
638
- clearPersistedLevel();
639
- replaceLoggingMethods.call(self);
640
- };
641
- self.enableAll = function (persist) {
642
- self.setLevel(self.levels.TRACE, persist);
643
- };
644
- self.disableAll = function (persist) {
645
- self.setLevel(self.levels.SILENT, persist);
646
- };
647
- self.rebuild = function () {
648
- if (defaultLogger !== self) {
649
- inheritedLevel = normalizeLevel(defaultLogger.getLevel());
650
- }
651
- replaceLoggingMethods.call(self);
652
- if (defaultLogger === self) {
653
- for (var childName in _loggersByName) {
654
- _loggersByName[childName].rebuild();
655
- }
656
- }
657
- };
658
-
659
- // Initialize all the internal levels.
660
- inheritedLevel = normalizeLevel(defaultLogger ? defaultLogger.getLevel() : "WARN");
661
- var initialLevel = getPersistedLevel();
662
- if (initialLevel != null) {
663
- userLevel = normalizeLevel(initialLevel);
664
- }
665
- replaceLoggingMethods.call(self);
666
- }
667
-
668
- /*
669
- *
670
- * Top-level API
671
- *
672
- */
673
-
674
- defaultLogger = new Logger();
675
- defaultLogger.getLogger = function getLogger(name) {
676
- if (typeof name !== "symbol" && typeof name !== "string" || name === "") {
677
- throw new TypeError("You must supply a name when creating a logger.");
678
- }
679
- var logger = _loggersByName[name];
680
- if (!logger) {
681
- logger = _loggersByName[name] = new Logger(name, defaultLogger.methodFactory);
682
- }
683
- return logger;
684
- };
685
-
686
- // Grab the current global log variable in case of overwrite
687
- var _log = typeof window !== undefinedType ? window.log : undefined;
688
- defaultLogger.noConflict = function () {
689
- if (typeof window !== undefinedType && window.log === defaultLogger) {
690
- window.log = _log;
691
- }
692
- return defaultLogger;
693
- };
694
- defaultLogger.getLoggers = function getLoggers() {
695
- return _loggersByName;
696
- };
697
-
698
- // ES6 default export, for compatibility
699
- defaultLogger['default'] = defaultLogger;
700
- return defaultLogger;
701
- });
702
- })(loglevel$1);
703
- return loglevel$1.exports;
704
- }
705
-
706
- var loglevelExports = requireLoglevel();
707
- var log = /*@__PURE__*/getDefaultExportFromCjs(loglevelExports);
708
-
709
- function isFunction(value) {
710
- return typeof value === 'function';
711
- }
712
-
713
- function createErrorClass(createImpl) {
714
- var _super = function (instance) {
715
- Error.call(instance);
716
- instance.stack = new Error().stack;
717
- };
718
- var ctorFunc = createImpl(_super);
719
- ctorFunc.prototype = Object.create(Error.prototype);
720
- ctorFunc.prototype.constructor = ctorFunc;
721
- return ctorFunc;
722
- }
723
-
724
- var UnsubscriptionError = createErrorClass(function (_super) {
725
- return function UnsubscriptionErrorImpl(errors) {
726
- _super(this);
727
- this.message = errors ? errors.length + " errors occurred during unsubscription:\n" + errors.map(function (err, i) {
728
- return i + 1 + ") " + err.toString();
729
- }).join('\n ') : '';
730
- this.name = 'UnsubscriptionError';
731
- this.errors = errors;
732
- };
733
- });
734
-
735
- function arrRemove(arr, item) {
736
- if (arr) {
737
- var index = arr.indexOf(item);
738
- 0 <= index && arr.splice(index, 1);
739
- }
740
- }
741
-
742
- var Subscription = function () {
743
- function Subscription(initialTeardown) {
744
- this.initialTeardown = initialTeardown;
745
- this.closed = false;
746
- this._parentage = null;
747
- this._finalizers = null;
748
- }
749
- Subscription.prototype.unsubscribe = function () {
750
- var e_1, _a, e_2, _b;
751
- var errors;
752
- if (!this.closed) {
753
- this.closed = true;
754
- var _parentage = this._parentage;
755
- if (_parentage) {
756
- this._parentage = null;
757
- if (Array.isArray(_parentage)) {
758
- try {
759
- for (var _parentage_1 = __values(_parentage), _parentage_1_1 = _parentage_1.next(); !_parentage_1_1.done; _parentage_1_1 = _parentage_1.next()) {
760
- var parent_1 = _parentage_1_1.value;
761
- parent_1.remove(this);
762
- }
763
- } catch (e_1_1) {
764
- e_1 = {
765
- error: e_1_1
766
- };
767
- } finally {
768
- try {
769
- if (_parentage_1_1 && !_parentage_1_1.done && (_a = _parentage_1.return)) _a.call(_parentage_1);
770
- } finally {
771
- if (e_1) throw e_1.error;
772
- }
773
- }
774
- } else {
775
- _parentage.remove(this);
776
- }
777
- }
778
- var initialFinalizer = this.initialTeardown;
779
- if (isFunction(initialFinalizer)) {
780
- try {
781
- initialFinalizer();
782
- } catch (e) {
783
- errors = e instanceof UnsubscriptionError ? e.errors : [e];
784
- }
785
- }
786
- var _finalizers = this._finalizers;
787
- if (_finalizers) {
788
- this._finalizers = null;
789
- try {
790
- for (var _finalizers_1 = __values(_finalizers), _finalizers_1_1 = _finalizers_1.next(); !_finalizers_1_1.done; _finalizers_1_1 = _finalizers_1.next()) {
791
- var finalizer = _finalizers_1_1.value;
792
- try {
793
- execFinalizer(finalizer);
794
- } catch (err) {
795
- errors = errors !== null && errors !== void 0 ? errors : [];
796
- if (err instanceof UnsubscriptionError) {
797
- errors = __spreadArray(__spreadArray([], __read(errors)), __read(err.errors));
798
- } else {
799
- errors.push(err);
800
- }
801
- }
802
- }
803
- } catch (e_2_1) {
804
- e_2 = {
805
- error: e_2_1
806
- };
807
- } finally {
808
- try {
809
- if (_finalizers_1_1 && !_finalizers_1_1.done && (_b = _finalizers_1.return)) _b.call(_finalizers_1);
810
- } finally {
811
- if (e_2) throw e_2.error;
812
- }
813
- }
814
- }
815
- if (errors) {
816
- throw new UnsubscriptionError(errors);
817
- }
818
- }
819
- };
820
- Subscription.prototype.add = function (teardown) {
821
- var _a;
822
- if (teardown && teardown !== this) {
823
- if (this.closed) {
824
- execFinalizer(teardown);
825
- } else {
826
- if (teardown instanceof Subscription) {
827
- if (teardown.closed || teardown._hasParent(this)) {
828
- return;
829
- }
830
- teardown._addParent(this);
831
- }
832
- (this._finalizers = (_a = this._finalizers) !== null && _a !== undefined ? _a : []).push(teardown);
439
+ teardown._addParent(this);
440
+ }
441
+ (this._finalizers = (_a = this._finalizers) !== null && _a !== undefined ? _a : []).push(teardown);
833
442
  }
834
443
  }
835
444
  };
@@ -1147,533 +756,625 @@ var Observable = function () {
1147
756
  });
1148
757
  });
1149
758
  };
1150
- Observable.create = function (subscribe) {
1151
- return new Observable(subscribe);
759
+ Observable.create = function (subscribe) {
760
+ return new Observable(subscribe);
761
+ };
762
+ return Observable;
763
+ }();
764
+ function getPromiseCtor(promiseCtor) {
765
+ var _a;
766
+ return (_a = promiseCtor !== null && promiseCtor !== undefined ? promiseCtor : config.Promise) !== null && _a !== undefined ? _a : Promise;
767
+ }
768
+ function isObserver(value) {
769
+ return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);
770
+ }
771
+ function isSubscriber(value) {
772
+ return value && value instanceof Subscriber || isObserver(value) && isSubscription(value);
773
+ }
774
+
775
+ function hasLift(source) {
776
+ return isFunction(source === null || source === undefined ? undefined : source.lift);
777
+ }
778
+ function operate(init) {
779
+ return function (source) {
780
+ if (hasLift(source)) {
781
+ return source.lift(function (liftedSource) {
782
+ try {
783
+ return init(liftedSource, this);
784
+ } catch (err) {
785
+ this.error(err);
786
+ }
787
+ });
788
+ }
789
+ throw new TypeError('Unable to lift unknown Observable type');
790
+ };
791
+ }
792
+
793
+ function createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) {
794
+ return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);
795
+ }
796
+ var OperatorSubscriber = function (_super) {
797
+ __extends(OperatorSubscriber, _super);
798
+ function OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize, shouldUnsubscribe) {
799
+ var _this = _super.call(this, destination) || this;
800
+ _this.onFinalize = onFinalize;
801
+ _this.shouldUnsubscribe = shouldUnsubscribe;
802
+ _this._next = onNext ? function (value) {
803
+ try {
804
+ onNext(value);
805
+ } catch (err) {
806
+ destination.error(err);
807
+ }
808
+ } : _super.prototype._next;
809
+ _this._error = onError ? function (err) {
810
+ try {
811
+ onError(err);
812
+ } catch (err) {
813
+ destination.error(err);
814
+ } finally {
815
+ this.unsubscribe();
816
+ }
817
+ } : _super.prototype._error;
818
+ _this._complete = onComplete ? function () {
819
+ try {
820
+ onComplete();
821
+ } catch (err) {
822
+ destination.error(err);
823
+ } finally {
824
+ this.unsubscribe();
825
+ }
826
+ } : _super.prototype._complete;
827
+ return _this;
828
+ }
829
+ OperatorSubscriber.prototype.unsubscribe = function () {
830
+ var _a;
831
+ if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {
832
+ var closed_1 = this.closed;
833
+ _super.prototype.unsubscribe.call(this);
834
+ !closed_1 && ((_a = this.onFinalize) === null || _a === undefined ? undefined : _a.call(this));
835
+ }
836
+ };
837
+ return OperatorSubscriber;
838
+ }(Subscriber);
839
+
840
+ var ObjectUnsubscribedError = createErrorClass(function (_super) {
841
+ return function ObjectUnsubscribedErrorImpl() {
842
+ _super(this);
843
+ this.name = 'ObjectUnsubscribedError';
844
+ this.message = 'object unsubscribed';
845
+ };
846
+ });
847
+
848
+ var Subject = function (_super) {
849
+ __extends(Subject, _super);
850
+ function Subject() {
851
+ var _this = _super.call(this) || this;
852
+ _this.closed = false;
853
+ _this.currentObservers = null;
854
+ _this.observers = [];
855
+ _this.isStopped = false;
856
+ _this.hasError = false;
857
+ _this.thrownError = null;
858
+ return _this;
859
+ }
860
+ Subject.prototype.lift = function (operator) {
861
+ var subject = new AnonymousSubject(this, this);
862
+ subject.operator = operator;
863
+ return subject;
864
+ };
865
+ Subject.prototype._throwIfClosed = function () {
866
+ if (this.closed) {
867
+ throw new ObjectUnsubscribedError();
868
+ }
869
+ };
870
+ Subject.prototype.next = function (value) {
871
+ var _this = this;
872
+ errorContext(function () {
873
+ var e_1, _a;
874
+ _this._throwIfClosed();
875
+ if (!_this.isStopped) {
876
+ if (!_this.currentObservers) {
877
+ _this.currentObservers = Array.from(_this.observers);
878
+ }
879
+ try {
880
+ for (var _b = __values(_this.currentObservers), _c = _b.next(); !_c.done; _c = _b.next()) {
881
+ var observer = _c.value;
882
+ observer.next(value);
883
+ }
884
+ } catch (e_1_1) {
885
+ e_1 = {
886
+ error: e_1_1
887
+ };
888
+ } finally {
889
+ try {
890
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
891
+ } finally {
892
+ if (e_1) throw e_1.error;
893
+ }
894
+ }
895
+ }
896
+ });
897
+ };
898
+ Subject.prototype.error = function (err) {
899
+ var _this = this;
900
+ errorContext(function () {
901
+ _this._throwIfClosed();
902
+ if (!_this.isStopped) {
903
+ _this.hasError = _this.isStopped = true;
904
+ _this.thrownError = err;
905
+ var observers = _this.observers;
906
+ while (observers.length) {
907
+ observers.shift().error(err);
908
+ }
909
+ }
910
+ });
911
+ };
912
+ Subject.prototype.complete = function () {
913
+ var _this = this;
914
+ errorContext(function () {
915
+ _this._throwIfClosed();
916
+ if (!_this.isStopped) {
917
+ _this.isStopped = true;
918
+ var observers = _this.observers;
919
+ while (observers.length) {
920
+ observers.shift().complete();
921
+ }
922
+ }
923
+ });
924
+ };
925
+ Subject.prototype.unsubscribe = function () {
926
+ this.isStopped = this.closed = true;
927
+ this.observers = this.currentObservers = null;
928
+ };
929
+ Object.defineProperty(Subject.prototype, "observed", {
930
+ get: function () {
931
+ var _a;
932
+ return ((_a = this.observers) === null || _a === undefined ? undefined : _a.length) > 0;
933
+ },
934
+ enumerable: false,
935
+ configurable: true
936
+ });
937
+ Subject.prototype._trySubscribe = function (subscriber) {
938
+ this._throwIfClosed();
939
+ return _super.prototype._trySubscribe.call(this, subscriber);
940
+ };
941
+ Subject.prototype._subscribe = function (subscriber) {
942
+ this._throwIfClosed();
943
+ this._checkFinalizedStatuses(subscriber);
944
+ return this._innerSubscribe(subscriber);
945
+ };
946
+ Subject.prototype._innerSubscribe = function (subscriber) {
947
+ var _this = this;
948
+ var _a = this,
949
+ hasError = _a.hasError,
950
+ isStopped = _a.isStopped,
951
+ observers = _a.observers;
952
+ if (hasError || isStopped) {
953
+ return EMPTY_SUBSCRIPTION;
954
+ }
955
+ this.currentObservers = null;
956
+ observers.push(subscriber);
957
+ return new Subscription(function () {
958
+ _this.currentObservers = null;
959
+ arrRemove(observers, subscriber);
960
+ });
961
+ };
962
+ Subject.prototype._checkFinalizedStatuses = function (subscriber) {
963
+ var _a = this,
964
+ hasError = _a.hasError,
965
+ thrownError = _a.thrownError,
966
+ isStopped = _a.isStopped;
967
+ if (hasError) {
968
+ subscriber.error(thrownError);
969
+ } else if (isStopped) {
970
+ subscriber.complete();
971
+ }
972
+ };
973
+ Subject.prototype.asObservable = function () {
974
+ var observable = new Observable();
975
+ observable.source = this;
976
+ return observable;
977
+ };
978
+ Subject.create = function (destination, source) {
979
+ return new AnonymousSubject(destination, source);
980
+ };
981
+ return Subject;
982
+ }(Observable);
983
+ var AnonymousSubject = function (_super) {
984
+ __extends(AnonymousSubject, _super);
985
+ function AnonymousSubject(destination, source) {
986
+ var _this = _super.call(this) || this;
987
+ _this.destination = destination;
988
+ _this.source = source;
989
+ return _this;
990
+ }
991
+ AnonymousSubject.prototype.next = function (value) {
992
+ var _a, _b;
993
+ (_b = (_a = this.destination) === null || _a === undefined ? undefined : _a.next) === null || _b === undefined ? undefined : _b.call(_a, value);
994
+ };
995
+ AnonymousSubject.prototype.error = function (err) {
996
+ var _a, _b;
997
+ (_b = (_a = this.destination) === null || _a === undefined ? undefined : _a.error) === null || _b === undefined ? undefined : _b.call(_a, err);
998
+ };
999
+ AnonymousSubject.prototype.complete = function () {
1000
+ var _a, _b;
1001
+ (_b = (_a = this.destination) === null || _a === undefined ? undefined : _a.complete) === null || _b === undefined ? undefined : _b.call(_a);
1002
+ };
1003
+ AnonymousSubject.prototype._subscribe = function (subscriber) {
1004
+ var _a, _b;
1005
+ return (_b = (_a = this.source) === null || _a === undefined ? undefined : _a.subscribe(subscriber)) !== null && _b !== undefined ? _b : EMPTY_SUBSCRIPTION;
1152
1006
  };
1153
- return Observable;
1154
- }();
1155
- function getPromiseCtor(promiseCtor) {
1156
- var _a;
1157
- return (_a = promiseCtor !== null && promiseCtor !== undefined ? promiseCtor : config.Promise) !== null && _a !== undefined ? _a : Promise;
1158
- }
1159
- function isObserver(value) {
1160
- return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);
1007
+ return AnonymousSubject;
1008
+ }(Subject);
1009
+
1010
+ var EmptyError = createErrorClass(function (_super) {
1011
+ return function EmptyErrorImpl() {
1012
+ _super(this);
1013
+ this.name = 'EmptyError';
1014
+ this.message = 'no elements in sequence';
1015
+ };
1016
+ });
1017
+
1018
+ function firstValueFrom(source, config) {
1019
+ return new Promise(function (resolve, reject) {
1020
+ var subscriber = new SafeSubscriber({
1021
+ next: function (value) {
1022
+ resolve(value);
1023
+ subscriber.unsubscribe();
1024
+ },
1025
+ error: reject,
1026
+ complete: function () {
1027
+ {
1028
+ reject(new EmptyError());
1029
+ }
1030
+ }
1031
+ });
1032
+ source.subscribe(subscriber);
1033
+ });
1161
1034
  }
1162
- function isSubscriber(value) {
1163
- return value && value instanceof Subscriber || isObserver(value) && isSubscription(value);
1035
+
1036
+ function filter(predicate, thisArg) {
1037
+ return operate(function (source, subscriber) {
1038
+ var index = 0;
1039
+ source.subscribe(createOperatorSubscriber(subscriber, function (value) {
1040
+ return predicate.call(thisArg, value, index++) && subscriber.next(value);
1041
+ }));
1042
+ });
1164
1043
  }
1165
1044
 
1166
- function hasLift(source) {
1167
- return isFunction(source === null || source === undefined ? undefined : source.lift);
1045
+ function getDefaultExportFromCjs (x) {
1046
+ return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
1168
1047
  }
1169
- function operate(init) {
1170
- return function (source) {
1171
- if (hasLift(source)) {
1172
- return source.lift(function (liftedSource) {
1173
- try {
1174
- return init(liftedSource, this);
1175
- } catch (err) {
1176
- this.error(err);
1048
+
1049
+ var loglevel$1 = {exports: {}};
1050
+
1051
+ /*
1052
+ * loglevel - https://github.com/pimterry/loglevel
1053
+ *
1054
+ * Copyright (c) 2013 Tim Perry
1055
+ * Licensed under the MIT license.
1056
+ */
1057
+ var loglevel = loglevel$1.exports;
1058
+ var hasRequiredLoglevel;
1059
+ function requireLoglevel() {
1060
+ if (hasRequiredLoglevel) return loglevel$1.exports;
1061
+ hasRequiredLoglevel = 1;
1062
+ (function (module) {
1063
+ (function (root, definition) {
1064
+
1065
+ if (module.exports) {
1066
+ module.exports = definition();
1067
+ } else {
1068
+ root.log = definition();
1069
+ }
1070
+ })(loglevel, function () {
1071
+
1072
+ // Slightly dubious tricks to cut down minimized file size
1073
+ var noop = function () {};
1074
+ var undefinedType = "undefined";
1075
+ var isIE = typeof window !== undefinedType && typeof window.navigator !== undefinedType && /Trident\/|MSIE /.test(window.navigator.userAgent);
1076
+ var logMethods = ["trace", "debug", "info", "warn", "error"];
1077
+ var _loggersByName = {};
1078
+ var defaultLogger = null;
1079
+
1080
+ // Cross-browser bind equivalent that works at least back to IE6
1081
+ function bindMethod(obj, methodName) {
1082
+ var method = obj[methodName];
1083
+ if (typeof method.bind === 'function') {
1084
+ return method.bind(obj);
1085
+ } else {
1086
+ try {
1087
+ return Function.prototype.bind.call(method, obj);
1088
+ } catch (e) {
1089
+ // Missing bind shim or IE8 + Modernizr, fallback to wrapping
1090
+ return function () {
1091
+ return Function.prototype.apply.apply(method, [obj, arguments]);
1092
+ };
1093
+ }
1177
1094
  }
1178
- });
1179
- }
1180
- throw new TypeError('Unable to lift unknown Observable type');
1181
- };
1182
- }
1095
+ }
1183
1096
 
1184
- function createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) {
1185
- return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);
1186
- }
1187
- var OperatorSubscriber = function (_super) {
1188
- __extends(OperatorSubscriber, _super);
1189
- function OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize, shouldUnsubscribe) {
1190
- var _this = _super.call(this, destination) || this;
1191
- _this.onFinalize = onFinalize;
1192
- _this.shouldUnsubscribe = shouldUnsubscribe;
1193
- _this._next = onNext ? function (value) {
1194
- try {
1195
- onNext(value);
1196
- } catch (err) {
1197
- destination.error(err);
1097
+ // Trace() doesn't print the message in IE, so for that case we need to wrap it
1098
+ function traceForIE() {
1099
+ if (console.log) {
1100
+ if (console.log.apply) {
1101
+ console.log.apply(console, arguments);
1102
+ } else {
1103
+ // In old IE, native console methods themselves don't have apply().
1104
+ Function.prototype.apply.apply(console.log, [console, arguments]);
1105
+ }
1106
+ }
1107
+ if (console.trace) console.trace();
1198
1108
  }
1199
- } : _super.prototype._next;
1200
- _this._error = onError ? function (err) {
1201
- try {
1202
- onError(err);
1203
- } catch (err) {
1204
- destination.error(err);
1205
- } finally {
1206
- this.unsubscribe();
1109
+
1110
+ // Build the best logging method possible for this env
1111
+ // Wherever possible we want to bind, not wrap, to preserve stack traces
1112
+ function realMethod(methodName) {
1113
+ if (methodName === 'debug') {
1114
+ methodName = 'log';
1115
+ }
1116
+ if (typeof console === undefinedType) {
1117
+ return false; // No method possible, for now - fixed later by enableLoggingWhenConsoleArrives
1118
+ } else if (methodName === 'trace' && isIE) {
1119
+ return traceForIE;
1120
+ } else if (console[methodName] !== undefined) {
1121
+ return bindMethod(console, methodName);
1122
+ } else if (console.log !== undefined) {
1123
+ return bindMethod(console, 'log');
1124
+ } else {
1125
+ return noop;
1126
+ }
1207
1127
  }
1208
- } : _super.prototype._error;
1209
- _this._complete = onComplete ? function () {
1210
- try {
1211
- onComplete();
1212
- } catch (err) {
1213
- destination.error(err);
1214
- } finally {
1215
- this.unsubscribe();
1128
+
1129
+ // These private functions always need `this` to be set properly
1130
+
1131
+ function replaceLoggingMethods() {
1132
+ /*jshint validthis:true */
1133
+ var level = this.getLevel();
1134
+
1135
+ // Replace the actual methods.
1136
+ for (var i = 0; i < logMethods.length; i++) {
1137
+ var methodName = logMethods[i];
1138
+ this[methodName] = i < level ? noop : this.methodFactory(methodName, level, this.name);
1139
+ }
1140
+
1141
+ // Define log.log as an alias for log.debug
1142
+ this.log = this.debug;
1143
+
1144
+ // Return any important warnings.
1145
+ if (typeof console === undefinedType && level < this.levels.SILENT) {
1146
+ return "No console available for logging";
1147
+ }
1216
1148
  }
1217
- } : _super.prototype._complete;
1218
- return _this;
1219
- }
1220
- OperatorSubscriber.prototype.unsubscribe = function () {
1221
- var _a;
1222
- if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {
1223
- var closed_1 = this.closed;
1224
- _super.prototype.unsubscribe.call(this);
1225
- !closed_1 && ((_a = this.onFinalize) === null || _a === undefined ? undefined : _a.call(this));
1226
- }
1227
- };
1228
- return OperatorSubscriber;
1229
- }(Subscriber);
1230
1149
 
1231
- var ObjectUnsubscribedError = createErrorClass(function (_super) {
1232
- return function ObjectUnsubscribedErrorImpl() {
1233
- _super(this);
1234
- this.name = 'ObjectUnsubscribedError';
1235
- this.message = 'object unsubscribed';
1236
- };
1237
- });
1150
+ // In old IE versions, the console isn't present until you first open it.
1151
+ // We build realMethod() replacements here that regenerate logging methods
1152
+ function enableLoggingWhenConsoleArrives(methodName) {
1153
+ return function () {
1154
+ if (typeof console !== undefinedType) {
1155
+ replaceLoggingMethods.call(this);
1156
+ this[methodName].apply(this, arguments);
1157
+ }
1158
+ };
1159
+ }
1160
+
1161
+ // By default, we use closely bound real methods wherever possible, and
1162
+ // otherwise we wait for a console to appear, and then try again.
1163
+ function defaultMethodFactory(methodName, _level, _loggerName) {
1164
+ /*jshint validthis:true */
1165
+ return realMethod(methodName) || enableLoggingWhenConsoleArrives.apply(this, arguments);
1166
+ }
1167
+ function Logger(name, factory) {
1168
+ // Private instance variables.
1169
+ var self = this;
1170
+ /**
1171
+ * The level inherited from a parent logger (or a global default). We
1172
+ * cache this here rather than delegating to the parent so that it stays
1173
+ * in sync with the actual logging methods that we have installed (the
1174
+ * parent could change levels but we might not have rebuilt the loggers
1175
+ * in this child yet).
1176
+ * @type {number}
1177
+ */
1178
+ var inheritedLevel;
1179
+ /**
1180
+ * The default level for this logger, if any. If set, this overrides
1181
+ * `inheritedLevel`.
1182
+ * @type {number|null}
1183
+ */
1184
+ var defaultLevel;
1185
+ /**
1186
+ * A user-specific level for this logger. If set, this overrides
1187
+ * `defaultLevel`.
1188
+ * @type {number|null}
1189
+ */
1190
+ var userLevel;
1191
+ var storageKey = "loglevel";
1192
+ if (typeof name === "string") {
1193
+ storageKey += ":" + name;
1194
+ } else if (typeof name === "symbol") {
1195
+ storageKey = undefined;
1196
+ }
1197
+ function persistLevelIfPossible(levelNum) {
1198
+ var levelName = (logMethods[levelNum] || 'silent').toUpperCase();
1199
+ if (typeof window === undefinedType || !storageKey) return;
1200
+
1201
+ // Use localStorage if available
1202
+ try {
1203
+ window.localStorage[storageKey] = levelName;
1204
+ return;
1205
+ } catch (ignore) {}
1238
1206
 
1239
- var Subject = function (_super) {
1240
- __extends(Subject, _super);
1241
- function Subject() {
1242
- var _this = _super.call(this) || this;
1243
- _this.closed = false;
1244
- _this.currentObservers = null;
1245
- _this.observers = [];
1246
- _this.isStopped = false;
1247
- _this.hasError = false;
1248
- _this.thrownError = null;
1249
- return _this;
1250
- }
1251
- Subject.prototype.lift = function (operator) {
1252
- var subject = new AnonymousSubject(this, this);
1253
- subject.operator = operator;
1254
- return subject;
1255
- };
1256
- Subject.prototype._throwIfClosed = function () {
1257
- if (this.closed) {
1258
- throw new ObjectUnsubscribedError();
1259
- }
1260
- };
1261
- Subject.prototype.next = function (value) {
1262
- var _this = this;
1263
- errorContext(function () {
1264
- var e_1, _a;
1265
- _this._throwIfClosed();
1266
- if (!_this.isStopped) {
1267
- if (!_this.currentObservers) {
1268
- _this.currentObservers = Array.from(_this.observers);
1207
+ // Use session cookie as fallback
1208
+ try {
1209
+ window.document.cookie = encodeURIComponent(storageKey) + "=" + levelName + ";";
1210
+ } catch (ignore) {}
1269
1211
  }
1270
- try {
1271
- for (var _b = __values(_this.currentObservers), _c = _b.next(); !_c.done; _c = _b.next()) {
1272
- var observer = _c.value;
1273
- observer.next(value);
1274
- }
1275
- } catch (e_1_1) {
1276
- e_1 = {
1277
- error: e_1_1
1278
- };
1279
- } finally {
1212
+ function getPersistedLevel() {
1213
+ var storedLevel;
1214
+ if (typeof window === undefinedType || !storageKey) return;
1280
1215
  try {
1281
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
1282
- } finally {
1283
- if (e_1) throw e_1.error;
1216
+ storedLevel = window.localStorage[storageKey];
1217
+ } catch (ignore) {}
1218
+
1219
+ // Fallback to cookies if local storage gives us nothing
1220
+ if (typeof storedLevel === undefinedType) {
1221
+ try {
1222
+ var cookie = window.document.cookie;
1223
+ var cookieName = encodeURIComponent(storageKey);
1224
+ var location = cookie.indexOf(cookieName + "=");
1225
+ if (location !== -1) {
1226
+ storedLevel = /^([^;]+)/.exec(cookie.slice(location + cookieName.length + 1))[1];
1227
+ }
1228
+ } catch (ignore) {}
1229
+ }
1230
+
1231
+ // If the stored level is not valid, treat it as if nothing was stored.
1232
+ if (self.levels[storedLevel] === undefined) {
1233
+ storedLevel = undefined;
1284
1234
  }
1235
+ return storedLevel;
1285
1236
  }
1286
- }
1287
- });
1288
- };
1289
- Subject.prototype.error = function (err) {
1290
- var _this = this;
1291
- errorContext(function () {
1292
- _this._throwIfClosed();
1293
- if (!_this.isStopped) {
1294
- _this.hasError = _this.isStopped = true;
1295
- _this.thrownError = err;
1296
- var observers = _this.observers;
1297
- while (observers.length) {
1298
- observers.shift().error(err);
1237
+ function clearPersistedLevel() {
1238
+ if (typeof window === undefinedType || !storageKey) return;
1239
+
1240
+ // Use localStorage if available
1241
+ try {
1242
+ window.localStorage.removeItem(storageKey);
1243
+ } catch (ignore) {}
1244
+
1245
+ // Use session cookie as fallback
1246
+ try {
1247
+ window.document.cookie = encodeURIComponent(storageKey) + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC";
1248
+ } catch (ignore) {}
1299
1249
  }
1300
- }
1301
- });
1302
- };
1303
- Subject.prototype.complete = function () {
1304
- var _this = this;
1305
- errorContext(function () {
1306
- _this._throwIfClosed();
1307
- if (!_this.isStopped) {
1308
- _this.isStopped = true;
1309
- var observers = _this.observers;
1310
- while (observers.length) {
1311
- observers.shift().complete();
1250
+ function normalizeLevel(input) {
1251
+ var level = input;
1252
+ if (typeof level === "string" && self.levels[level.toUpperCase()] !== undefined) {
1253
+ level = self.levels[level.toUpperCase()];
1254
+ }
1255
+ if (typeof level === "number" && level >= 0 && level <= self.levels.SILENT) {
1256
+ return level;
1257
+ } else {
1258
+ throw new TypeError("log.setLevel() called with invalid level: " + input);
1259
+ }
1312
1260
  }
1313
- }
1314
- });
1315
- };
1316
- Subject.prototype.unsubscribe = function () {
1317
- this.isStopped = this.closed = true;
1318
- this.observers = this.currentObservers = null;
1319
- };
1320
- Object.defineProperty(Subject.prototype, "observed", {
1321
- get: function () {
1322
- var _a;
1323
- return ((_a = this.observers) === null || _a === undefined ? undefined : _a.length) > 0;
1324
- },
1325
- enumerable: false,
1326
- configurable: true
1327
- });
1328
- Subject.prototype._trySubscribe = function (subscriber) {
1329
- this._throwIfClosed();
1330
- return _super.prototype._trySubscribe.call(this, subscriber);
1331
- };
1332
- Subject.prototype._subscribe = function (subscriber) {
1333
- this._throwIfClosed();
1334
- this._checkFinalizedStatuses(subscriber);
1335
- return this._innerSubscribe(subscriber);
1336
- };
1337
- Subject.prototype._innerSubscribe = function (subscriber) {
1338
- var _this = this;
1339
- var _a = this,
1340
- hasError = _a.hasError,
1341
- isStopped = _a.isStopped,
1342
- observers = _a.observers;
1343
- if (hasError || isStopped) {
1344
- return EMPTY_SUBSCRIPTION;
1345
- }
1346
- this.currentObservers = null;
1347
- observers.push(subscriber);
1348
- return new Subscription(function () {
1349
- _this.currentObservers = null;
1350
- arrRemove(observers, subscriber);
1351
- });
1352
- };
1353
- Subject.prototype._checkFinalizedStatuses = function (subscriber) {
1354
- var _a = this,
1355
- hasError = _a.hasError,
1356
- thrownError = _a.thrownError,
1357
- isStopped = _a.isStopped;
1358
- if (hasError) {
1359
- subscriber.error(thrownError);
1360
- } else if (isStopped) {
1361
- subscriber.complete();
1362
- }
1363
- };
1364
- Subject.prototype.asObservable = function () {
1365
- var observable = new Observable();
1366
- observable.source = this;
1367
- return observable;
1368
- };
1369
- Subject.create = function (destination, source) {
1370
- return new AnonymousSubject(destination, source);
1371
- };
1372
- return Subject;
1373
- }(Observable);
1374
- var AnonymousSubject = function (_super) {
1375
- __extends(AnonymousSubject, _super);
1376
- function AnonymousSubject(destination, source) {
1377
- var _this = _super.call(this) || this;
1378
- _this.destination = destination;
1379
- _this.source = source;
1380
- return _this;
1381
- }
1382
- AnonymousSubject.prototype.next = function (value) {
1383
- var _a, _b;
1384
- (_b = (_a = this.destination) === null || _a === undefined ? undefined : _a.next) === null || _b === undefined ? undefined : _b.call(_a, value);
1385
- };
1386
- AnonymousSubject.prototype.error = function (err) {
1387
- var _a, _b;
1388
- (_b = (_a = this.destination) === null || _a === undefined ? undefined : _a.error) === null || _b === undefined ? undefined : _b.call(_a, err);
1389
- };
1390
- AnonymousSubject.prototype.complete = function () {
1391
- var _a, _b;
1392
- (_b = (_a = this.destination) === null || _a === undefined ? undefined : _a.complete) === null || _b === undefined ? undefined : _b.call(_a);
1393
- };
1394
- AnonymousSubject.prototype._subscribe = function (subscriber) {
1395
- var _a, _b;
1396
- return (_b = (_a = this.source) === null || _a === undefined ? undefined : _a.subscribe(subscriber)) !== null && _b !== undefined ? _b : EMPTY_SUBSCRIPTION;
1397
- };
1398
- return AnonymousSubject;
1399
- }(Subject);
1400
1261
 
1401
- var EmptyError = createErrorClass(function (_super) {
1402
- return function EmptyErrorImpl() {
1403
- _super(this);
1404
- this.name = 'EmptyError';
1405
- this.message = 'no elements in sequence';
1406
- };
1407
- });
1262
+ /*
1263
+ *
1264
+ * Public logger API - see https://github.com/pimterry/loglevel for details
1265
+ *
1266
+ */
1267
+
1268
+ self.name = name;
1269
+ self.levels = {
1270
+ "TRACE": 0,
1271
+ "DEBUG": 1,
1272
+ "INFO": 2,
1273
+ "WARN": 3,
1274
+ "ERROR": 4,
1275
+ "SILENT": 5
1276
+ };
1277
+ self.methodFactory = factory || defaultMethodFactory;
1278
+ self.getLevel = function () {
1279
+ if (userLevel != null) {
1280
+ return userLevel;
1281
+ } else if (defaultLevel != null) {
1282
+ return defaultLevel;
1283
+ } else {
1284
+ return inheritedLevel;
1285
+ }
1286
+ };
1287
+ self.setLevel = function (level, persist) {
1288
+ userLevel = normalizeLevel(level);
1289
+ if (persist !== false) {
1290
+ // defaults to true
1291
+ persistLevelIfPossible(userLevel);
1292
+ }
1408
1293
 
1409
- function firstValueFrom(source, config) {
1410
- return new Promise(function (resolve, reject) {
1411
- var subscriber = new SafeSubscriber({
1412
- next: function (value) {
1413
- resolve(value);
1414
- subscriber.unsubscribe();
1415
- },
1416
- error: reject,
1417
- complete: function () {
1418
- {
1419
- reject(new EmptyError());
1294
+ // NOTE: in v2, this should call rebuild(), which updates children.
1295
+ return replaceLoggingMethods.call(self);
1296
+ };
1297
+ self.setDefaultLevel = function (level) {
1298
+ defaultLevel = normalizeLevel(level);
1299
+ if (!getPersistedLevel()) {
1300
+ self.setLevel(level, false);
1301
+ }
1302
+ };
1303
+ self.resetLevel = function () {
1304
+ userLevel = null;
1305
+ clearPersistedLevel();
1306
+ replaceLoggingMethods.call(self);
1307
+ };
1308
+ self.enableAll = function (persist) {
1309
+ self.setLevel(self.levels.TRACE, persist);
1310
+ };
1311
+ self.disableAll = function (persist) {
1312
+ self.setLevel(self.levels.SILENT, persist);
1313
+ };
1314
+ self.rebuild = function () {
1315
+ if (defaultLogger !== self) {
1316
+ inheritedLevel = normalizeLevel(defaultLogger.getLevel());
1317
+ }
1318
+ replaceLoggingMethods.call(self);
1319
+ if (defaultLogger === self) {
1320
+ for (var childName in _loggersByName) {
1321
+ _loggersByName[childName].rebuild();
1322
+ }
1323
+ }
1324
+ };
1325
+
1326
+ // Initialize all the internal levels.
1327
+ inheritedLevel = normalizeLevel(defaultLogger ? defaultLogger.getLevel() : "WARN");
1328
+ var initialLevel = getPersistedLevel();
1329
+ if (initialLevel != null) {
1330
+ userLevel = normalizeLevel(initialLevel);
1420
1331
  }
1332
+ replaceLoggingMethods.call(self);
1421
1333
  }
1422
- });
1423
- source.subscribe(subscriber);
1424
- });
1425
- }
1426
-
1427
- function map(project, thisArg) {
1428
- return operate(function (source, subscriber) {
1429
- var index = 0;
1430
- source.subscribe(createOperatorSubscriber(subscriber, function (value) {
1431
- subscriber.next(project.call(thisArg, value, index++));
1432
- }));
1433
- });
1434
- }
1435
-
1436
- function filter(predicate, thisArg) {
1437
- return operate(function (source, subscriber) {
1438
- var index = 0;
1439
- source.subscribe(createOperatorSubscriber(subscriber, function (value) {
1440
- return predicate.call(thisArg, value, index++) && subscriber.next(value);
1441
- }));
1442
- });
1443
- }
1444
-
1445
- // refer to realm-network-api/src/common/enums/error-codes.enum.ts
1446
- /*** Authentication Errors ***/
1447
- var AuthErrorName;
1448
- (function (AuthErrorName) {
1449
- AuthErrorName["UNAUTHORIZED"] = "UNAUTHORIZED";
1450
- AuthErrorName["INVALID_TOKEN"] = "INVALID_TOKEN";
1451
- AuthErrorName["TOKEN_EXPIRED"] = "TOKEN_EXPIRED";
1452
- AuthErrorName["INVALID_CREDENTIALS"] = "INVALID_CREDENTIALS";
1453
- })(AuthErrorName || (AuthErrorName = {}));
1454
- /*** Partner Access Token Errors ***/
1455
- var PartnerAccessTokenErrorName;
1456
- (function (PartnerAccessTokenErrorName) {
1457
- PartnerAccessTokenErrorName["PARTNER_ACCESS_TOKEN_INVALID"] = "PARTNER_ACCESS_TOKEN_INVALID";
1458
- PartnerAccessTokenErrorName["USER_MISMATCH"] = "USER_MISMATCH";
1459
- })(PartnerAccessTokenErrorName || (PartnerAccessTokenErrorName = {}));
1460
- /*** Realm ID Errors ***/
1461
- var RealmIDErrorName;
1462
- (function (RealmIDErrorName) {
1463
- RealmIDErrorName["REALM_ID_NOT_FOUND"] = "REALM_ID_NOT_FOUND";
1464
- RealmIDErrorName["REALM_ID_INVALID_NAME"] = "REALM_ID_INVALID_NAME";
1465
- RealmIDErrorName["REALM_ID_ALREADY_EXISTS"] = "REALM_ID_ALREADY_EXISTS";
1466
- RealmIDErrorName["REALM_ID_DUPLICATE_PARTNER_USER"] = "REALM_ID_DUPLICATE_PARTNER_USER";
1467
- })(RealmIDErrorName || (RealmIDErrorName = {}));
1468
- /*** Parameter Errors ***/
1469
- var ParameterErrorName;
1470
- (function (ParameterErrorName) {
1471
- ParameterErrorName["INVALID_PARAMETER"] = "INVALID_PARAMETER";
1472
- })(ParameterErrorName || (ParameterErrorName = {}));
1473
- /*** Server Errors ***/
1474
- var ServerErrorName;
1475
- (function (ServerErrorName) {
1476
- ServerErrorName["INTERNAL_SERVER_ERROR"] = "INTERNAL_SERVER_ERROR";
1477
- })(ServerErrorName || (ServerErrorName = {}));
1478
- /*** Passkey Errors ***/
1479
- var PasskeyErrorName;
1480
- (function (PasskeyErrorName) {
1481
- PasskeyErrorName["PASSKEY_REGISTRATION_FAILED"] = "PASSKEY_REGISTRATION_FAILED";
1482
- PasskeyErrorName["PASSKEY_AUTHENTICATION_FAILED"] = "PASSKEY_AUTHENTICATION_FAILED";
1483
- PasskeyErrorName["PASSKEY_LIMIT_EXCEEDED"] = "PASSKEY_LIMIT_EXCEEDED";
1484
- PasskeyErrorName["PASSKEY_NOT_FOUND"] = "PASSKEY_NOT_FOUND";
1485
- PasskeyErrorName["PASSKEY_UNAUTHORIZED"] = "PASSKEY_UNAUTHORIZED";
1486
- PasskeyErrorName["PASSKEY_CHALLENGE_INVALID"] = "PASSKEY_CHALLENGE_INVALID";
1487
- })(PasskeyErrorName || (PasskeyErrorName = {}));
1488
- /*** Passwordless Authentication Errors ***/
1489
- var PasswordlessErrorName;
1490
- (function (PasswordlessErrorName) {
1491
- PasswordlessErrorName["PASSWORDLESS_CODE_EXPIRED"] = "PASSWORDLESS_CODE_EXPIRED";
1492
- PasswordlessErrorName["PASSWORDLESS_INVALID_CODE"] = "PASSWORDLESS_INVALID_CODE";
1493
- PasswordlessErrorName["PASSWORDLESS_MAX_ATTEMPTS"] = "PASSWORDLESS_MAX_ATTEMPTS";
1494
- PasswordlessErrorName["PASSWORDLESS_HOURLY_LIMIT"] = "PASSWORDLESS_HOURLY_LIMIT";
1495
- PasswordlessErrorName["PASSWORDLESS_LOCK_EXCEEDED"] = "PASSWORDLESS_LOCK_EXCEEDED";
1496
- PasswordlessErrorName["CAPTCHA_TOKEN_VERIFICATION_FAILED"] = "CAPTCHA_TOKEN_VERIFICATION_FAILED";
1497
- PasswordlessErrorName["CAPTCHA_TOKEN_INVALID"] = "CAPTCHA_TOKEN_INVALID";
1498
- PasswordlessErrorName["CAPTCHA_SECRET_MISSING"] = "CAPTCHA_SECRET_MISSING";
1499
- PasswordlessErrorName["CAPTCHA_TOKEN_MISSING"] = "CAPTCHA_TOKEN_MISSING";
1500
- })(PasswordlessErrorName || (PasswordlessErrorName = {}));
1501
- /*** Authentication Wallet Errors ***/
1502
- var AuthWalletErrorName;
1503
- (function (AuthWalletErrorName) {
1504
- AuthWalletErrorName["AUTH_WALLET_LOCK_EXCEEDED"] = "AUTH_WALLET_LOCK_EXCEEDED";
1505
- AuthWalletErrorName["AUTH_WALLET_NONCE_EXPIRED_OR_INVALID"] = "AUTH_WALLET_NONCE_EXPIRED_OR_INVALID";
1506
- AuthWalletErrorName["AUTH_WALLET_ADDRESS_MISMATCH"] = "AUTH_WALLET_ADDRESS_MISMATCH";
1507
- AuthWalletErrorName["AUTH_WALLET_SIGNATURE_VERIFICATION_FAILED"] = "AUTH_WALLET_SIGNATURE_VERIFICATION_FAILED";
1508
- })(AuthWalletErrorName || (AuthWalletErrorName = {}));
1509
- /*** Wallet Linking Errors ***/
1510
- var WalletLinkErrorName;
1511
- (function (WalletLinkErrorName) {
1512
- WalletLinkErrorName["LINK_WALLET_ALREADY_LINKED"] = "LINK_WALLET_ALREADY_LINKED";
1513
- WalletLinkErrorName["LINK_WALLET_LINKED_OTHER_ACCOUNT"] = "LINK_WALLET_LINKED_OTHER_ACCOUNT";
1514
- WalletLinkErrorName["LINK_EMAIL_LINKED_OTHER_ACCOUNT"] = "LINK_EMAIL_LINKED_OTHER_ACCOUNT";
1515
- })(WalletLinkErrorName || (WalletLinkErrorName = {}));
1516
- /*** Intent Errors ***/
1517
- var IntentErrorName;
1518
- (function (IntentErrorName) {
1519
- IntentErrorName["INTENT_INVALID"] = "INTENT_INVALID";
1520
- IntentErrorName["INTENT_LOCK_EXCEEDED"] = "INTENT_LOCK_EXCEEDED";
1521
- IntentErrorName["INTENT_REQUIRED"] = "INTENT_REQUIRED";
1522
- IntentErrorName["INTENT_UNSUPPORTED_TYPE"] = "INTENT_UNSUPPORTED_TYPE";
1523
- })(IntentErrorName || (IntentErrorName = {}));
1524
- /*** Privy Errors ***/
1525
- var PrivyErrorName;
1526
- (function (PrivyErrorName) {
1527
- PrivyErrorName["WALLET_PROVIDER_ERROR"] = "WALLET_PROVIDER_ERROR";
1528
- })(PrivyErrorName || (PrivyErrorName = {}));
1529
- /*** Air ID Errors ***/
1530
- var AirIDErrorName;
1531
- (function (AirIDErrorName) {
1532
- AirIDErrorName["AIR_ID_MINT_TRANSACTION_NOT_FOUND"] = "AIR_ID_MINT_TRANSACTION_NOT_FOUND";
1533
- AirIDErrorName["AIR_ID_ON_CHAIN_TRANSACTION_NOT_FOUND"] = "AIR_ID_ON_CHAIN_TRANSACTION_NOT_FOUND";
1534
- AirIDErrorName["AIR_ID_NOT_FOUND"] = "AIR_ID_NOT_FOUND";
1535
- AirIDErrorName["AIR_ID_INVALID_OR_DISABLED_CONFIGURATION"] = "AIR_ID_INVALID_OR_DISABLED_CONFIGURATION";
1536
- AirIDErrorName["AIR_ID_RPC_URL_NOT_CONFIGURED"] = "AIR_ID_RPC_URL_NOT_CONFIGURED";
1537
- AirIDErrorName["AIR_ID_INVALID_STATUS"] = "AIR_ID_INVALID_STATUS";
1538
- AirIDErrorName["AIR_ID_PARTNER_ELIGIBILITY_CHECK_FAILED"] = "AIR_ID_PARTNER_ELIGIBILITY_CHECK_FAILED";
1539
- AirIDErrorName["AIR_ID_PARTNER_ELIGIBILITY_CHECK_TIMEOUT"] = "AIR_ID_PARTNER_ELIGIBILITY_CHECK_TIMEOUT";
1540
- AirIDErrorName["AIR_ID_MULTIPLE_AIR_IDS_FOUND"] = "AIR_ID_MULTIPLE_AIR_IDS_FOUND";
1541
- AirIDErrorName["AIR_ID_NAME_RESERVED"] = "AIR_ID_NAME_RESERVED";
1542
- AirIDErrorName["AIR_ID_NAME_PROFANITY"] = "AIR_ID_NAME_PROFANITY";
1543
- AirIDErrorName["AIR_ID_USER_ALREADY_HAS_AIR_ID"] = "AIR_ID_USER_ALREADY_HAS_AIR_ID";
1544
- AirIDErrorName["AIR_ID_NAME_ALREADY_EXISTS"] = "AIR_ID_NAME_ALREADY_EXISTS";
1545
- AirIDErrorName["AIR_ID_INVALID_MINT_NAME"] = "AIR_ID_INVALID_MINT_NAME";
1546
- AirIDErrorName["AIR_ID_MINT_TRANSACTION_HASH_MISMATCH"] = "AIR_ID_MINT_TRANSACTION_HASH_MISMATCH";
1547
- })(AirIDErrorName || (AirIDErrorName = {}));
1548
- /*** Window Errors ***/
1549
- var WindowErrorName;
1550
- (function (WindowErrorName) {
1551
- WindowErrorName["WINDOW_BLOCKED"] = "WINDOW_BLOCKED";
1552
- WindowErrorName["WINDOW_CLOSED"] = "WINDOW_CLOSED";
1553
- })(WindowErrorName || (WindowErrorName = {}));
1554
- const Codes = {
1555
- ...AuthErrorName,
1556
- ...PartnerAccessTokenErrorName,
1557
- ...RealmIDErrorName,
1558
- ...ParameterErrorName,
1559
- ...ServerErrorName,
1560
- ...PasskeyErrorName,
1561
- ...PasswordlessErrorName,
1562
- ...AuthWalletErrorName,
1563
- ...WalletLinkErrorName,
1564
- ...IntentErrorName,
1565
- ...PrivyErrorName,
1566
- ...AirIDErrorName,
1567
- ...WindowErrorName
1568
- };
1569
1334
 
1570
- const AirClientUserErrors = ["USER_CANCELLED", "CONFIG_ERROR", "CLIENT_ERROR", "UNKNOWN_ERROR", "PERMISSION_NOT_ENABLED", "SMART_ACCOUNT_NOT_DEPLOYED"];
1335
+ /*
1336
+ *
1337
+ * Top-level API
1338
+ *
1339
+ */
1571
1340
 
1572
- class AirError extends BaseError {}
1573
- new Set(AirClientUserErrors);
1574
- new Set(Object.values(Codes));
1341
+ defaultLogger = new Logger();
1342
+ defaultLogger.getLogger = function getLogger(name) {
1343
+ if (typeof name !== "symbol" && typeof name !== "string" || name === "") {
1344
+ throw new TypeError("You must supply a name when creating a logger.");
1345
+ }
1346
+ var logger = _loggersByName[name];
1347
+ if (!logger) {
1348
+ logger = _loggersByName[name] = new Logger(name, defaultLogger.methodFactory);
1349
+ }
1350
+ return logger;
1351
+ };
1575
1352
 
1576
- class MessageServiceBase {
1577
- get events$() {
1578
- return this._events$;
1579
- }
1580
- get messages$() {
1581
- return this._messages$;
1582
- }
1583
- get isOpen() {
1584
- return !!this.closeListener;
1585
- }
1586
- constructor(name, allowedMessageTypes) {
1587
- this.name = name;
1588
- this.allowedMessageTypes = allowedMessageTypes;
1589
- this.closeListener = null;
1590
- }
1591
- async _open(target) {
1592
- await this.close();
1593
- this.eventSubject = new Subject();
1594
- this._events$ = this.eventSubject.asObservable();
1595
- this._messages$ = this.eventSubject.pipe(map(ev => ev.data));
1596
- this._events$.subscribe(event => {
1597
- const sentOrReceived = event.origin === window.origin ? "sent" : "received";
1598
- log.debug(`[${this.name}] Message ${sentOrReceived}:`, event.data);
1599
- });
1600
- const handleMessage = async ev => {
1601
- if (this.targetOrigin && ev.origin !== this.targetOrigin || !ev.data || !(ev.data instanceof Object)) return;
1602
- if (this.isMessageAllowed(ev.data)) {
1603
- await this.onBeforeEvent(ev);
1604
- this.eventSubject.next(ev);
1605
- }
1606
- };
1607
- if (target instanceof MessagePort) {
1608
- this.messagePort = target;
1609
- target.onmessage = handleMessage;
1610
- this.closeListener = async () => {
1611
- target.close();
1353
+ // Grab the current global log variable in case of overwrite
1354
+ var _log = typeof window !== undefinedType ? window.log : undefined;
1355
+ defaultLogger.noConflict = function () {
1356
+ if (typeof window !== undefinedType && window.log === defaultLogger) {
1357
+ window.log = _log;
1358
+ }
1359
+ return defaultLogger;
1612
1360
  };
1613
- } else {
1614
- this.targetWindow = target.window;
1615
- this.targetOrigin = target.origin;
1616
- window.addEventListener("message", handleMessage);
1617
- this.closeListener = async () => {
1618
- window.removeEventListener("message", handleMessage);
1361
+ defaultLogger.getLoggers = function getLoggers() {
1362
+ return _loggersByName;
1619
1363
  };
1620
- }
1621
- }
1622
- isMessageAllowed(message) {
1623
- return this.allowedMessageTypes.includes(message.type);
1624
- }
1625
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
1626
- async onBeforeEvent(_event) {
1627
- // by default not used
1628
- }
1629
- async close() {
1630
- if (this.closeListener) {
1631
- await this.closeListener();
1632
- this.closeListener = null;
1633
- }
1634
- if (this.eventSubject && !this.eventSubject.closed) {
1635
- this.eventSubject.complete();
1636
- }
1637
- }
1638
- createErrorResponseMessage(type, error) {
1639
- return {
1640
- type,
1641
- payload: {
1642
- success: false,
1643
- errorName: error instanceof AirError ? error.name : "UNKNOWN_ERROR",
1644
- errorMessage: error.message
1645
- }
1646
- };
1647
- }
1648
- async sendMessage(message, transfer) {
1649
- // To prevent any non-cloneable objects causing errors in postMessage
1650
- const clonedMessage = this.deepClone(message);
1651
- if (this.messagePort) {
1652
- this.messagePort.postMessage(clonedMessage);
1653
- this.eventSubject.next(new MessageEvent("message", {
1654
- data: clonedMessage,
1655
- origin: window.origin
1656
- }));
1657
- } else if (this.targetWindow && this.targetOrigin) {
1658
- this.targetWindow.postMessage(clonedMessage, this.targetOrigin, transfer);
1659
- this.eventSubject.next(new MessageEvent("message", {
1660
- data: clonedMessage,
1661
- origin: window.origin
1662
- }));
1663
- } else {
1664
- log.debug(`[${this.name}] Not opened yet`);
1665
- }
1666
- }
1667
- deepClone(message) {
1668
- try {
1669
- return JSON.parse(JSON.stringify(message));
1670
- } catch (e) {
1671
- log.warn("Error generating cloneable message", e);
1672
- return message;
1673
- }
1674
- }
1364
+
1365
+ // ES6 default export, for compatibility
1366
+ defaultLogger['default'] = defaultLogger;
1367
+ return defaultLogger;
1368
+ });
1369
+ })(loglevel$1);
1370
+ return loglevel$1.exports;
1675
1371
  }
1676
1372
 
1373
+ var loglevelExports = requireLoglevel();
1374
+ var log$1 = /*@__PURE__*/getDefaultExportFromCjs(loglevelExports);
1375
+
1376
+ var log = log$1.getLogger("airkit");
1377
+
1677
1378
  var AirWalletProviderMessageTypes;
1678
1379
  (function (AirWalletProviderMessageTypes) {
1679
1380
  AirWalletProviderMessageTypes["REQUEST"] = "JRPC_REQUEST";
@@ -1681,54 +1382,418 @@ var AirWalletProviderMessageTypes;
1681
1382
  AirWalletProviderMessageTypes["EVENT"] = "JRPC_EVENT";
1682
1383
  })(AirWalletProviderMessageTypes || (AirWalletProviderMessageTypes = {}));
1683
1384
 
1684
- var _a$2, _ProviderMessageService_instance;
1685
- const ALLOWED_PROVIDER_MESSAGES = [
1686
- AirWalletProviderMessageTypes.RESPONSE,
1687
- AirWalletProviderMessageTypes.EVENT,
1385
+ const ACCOUNT_MESSAGES = [
1386
+ AirMessageTypes.INITIALIZATION_RESPONSE,
1387
+ AirMessageTypes.WALLET_INITIALIZED,
1388
+ AirMessageTypes.WALLET_LOGIN_RESPONSE,
1389
+ AirMessageTypes.SETUP_MFA_RESPONSE,
1390
+ AirMessageTypes.CLAIM_ID_RESPONSE,
1391
+ AirMessageTypes.IS_SMART_ACCOUNT_DEPLOYED_RESPONSE,
1392
+ AirMessageTypes.DEPLOY_SMART_ACCOUNT_RESPONSE,
1393
+ AirMessageTypes.EXECUTE_ACTION_RESPONSE,
1394
+ AirMessageTypes.REVOKE_PERMISSIONS_RESPONSE,
1395
+ AirMessageTypes.GRANT_PERMISSIONS_RESPONSE,
1396
+ AirMessageTypes.LIST_ALL_SESSION_KEY_SCOPES_RESPONSE,
1397
+ AirMessageTypes.WALLET_INITIALIZED,
1398
+ AirMessageTypes.WALLET_IFRAME_VISIBILITY_REQUEST,
1399
+ AirMessageTypes.LOGOUT_RESPONSE,
1400
+ AirMessageTypes.OPEN_WINDOW_REQUEST,
1401
+ ];
1402
+ const AUTH_MESSAGES = [
1403
+ AirAuthMessageTypes.INITIALIZATION_RESPONSE,
1404
+ AirAuthMessageTypes.LOGIN_RESPONSE,
1405
+ AirAuthMessageTypes.REFRESH_TOKEN_RESPONSE,
1406
+ AirAuthMessageTypes.SETUP_WALLET_REQUEST,
1407
+ AirAuthMessageTypes.LOGOUT_RESPONSE,
1408
+ AirAuthMessageTypes.PARTNER_USER_INFO_RESPONSE,
1409
+ AirAuthMessageTypes.CROSS_PARTNER_TOKEN_RESPONSE,
1410
+ AirAuthMessageTypes.GET_PARTNER_ACCESS_TOKEN_RESPONSE,
1411
+ AirAuthMessageTypes.IFRAME_VISIBILITY_REQUEST,
1688
1412
  ];
1689
- class ProviderMessageService extends MessageServiceBase {
1690
- static create() {
1691
- if (__classPrivateFieldGet(this, _a$2, "f", _ProviderMessageService_instance))
1692
- throw new Error("ProviderMessageService already created");
1693
- __classPrivateFieldSet(this, _a$2, new _a$2("Embed Service: Provider Channel", ALLOWED_PROVIDER_MESSAGES), "f", _ProviderMessageService_instance);
1694
- return __classPrivateFieldGet(this, _a$2, "f", _ProviderMessageService_instance);
1695
- }
1696
- async open(walletIframe) {
1697
- const origin = new URL(walletIframe.src).origin;
1698
- const window = walletIframe.contentWindow;
1699
- await super._open({ window, origin });
1700
- }
1701
- async sendWalletProviderRequest(payload) {
1702
- const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirWalletProviderMessageTypes.RESPONSE), filter((msg) => msg.payload.method === payload.method)));
1703
- await this.sendMessage({
1413
+ class AirMessageService {
1414
+ constructor() {
1415
+ this.closeAuthMessageListeners = null;
1416
+ this.closeRealmMessageListeners = null;
1417
+ this.closeWalletMessageListeners = null;
1418
+ }
1419
+ static get instance() {
1420
+ if (!AirMessageService._instance) {
1421
+ AirMessageService._instance = new AirMessageService();
1422
+ }
1423
+ return AirMessageService._instance;
1424
+ }
1425
+ get messages$() {
1426
+ return this.airMessages$.asObservable();
1427
+ }
1428
+ get authMessage$() {
1429
+ return this._authMessage$.asObservable();
1430
+ }
1431
+ get providerMessage$() {
1432
+ return this._providerMessage$.asObservable();
1433
+ }
1434
+ get providerEvent$() {
1435
+ return this._providerEvent$.asObservable();
1436
+ }
1437
+ async openAuthObservables({ authIframeOrigin }) {
1438
+ this.closeAuthObservables();
1439
+ this.setupAuthObservables();
1440
+ const handleAuthMessage = async (ev) => {
1441
+ if (ev.origin !== authIframeOrigin || !ev.data || !(ev.data instanceof Object))
1442
+ return;
1443
+ log.debug("Embed auth message received from auth", ev.data);
1444
+ if (AUTH_MESSAGES.includes(ev.data.type)) {
1445
+ this._authMessage$.next(ev.data);
1446
+ }
1447
+ };
1448
+ window.addEventListener("message", handleAuthMessage);
1449
+ this.closeAuthMessageListeners = () => {
1450
+ window.removeEventListener("message", handleAuthMessage);
1451
+ };
1452
+ }
1453
+ async openWalletObservables({ walletIframeOrigin }) {
1454
+ this.closeAirObservables();
1455
+ this.setupAirObservables();
1456
+ const handleMessage = async (ev) => {
1457
+ if (ev.origin !== walletIframeOrigin || !ev.data || !(ev.data instanceof Object))
1458
+ return;
1459
+ log.debug("Account messages received from wallet frontend", ev.data);
1460
+ if (ACCOUNT_MESSAGES.includes(ev.data.type)) {
1461
+ this.airMessages$.next(ev.data);
1462
+ }
1463
+ };
1464
+ window.addEventListener("message", handleMessage);
1465
+ this.closeRealmMessageListeners = () => {
1466
+ window.removeEventListener("message", handleMessage);
1467
+ };
1468
+ this.closeWalletObservables();
1469
+ this.setupWalletObservables();
1470
+ const handleWalletMessage = async (ev) => {
1471
+ if (ev.origin !== walletIframeOrigin || !ev.data || !(ev.data instanceof Object))
1472
+ return;
1473
+ log.debug("Wallet provider messages received from wallet frontend", ev.data);
1474
+ if (ev.data.type === AirWalletProviderMessageTypes.RESPONSE) {
1475
+ this._providerMessage$.next(ev.data);
1476
+ }
1477
+ if (ev.data.type === AirWalletProviderMessageTypes.EVENT) {
1478
+ this._providerEvent$.next(ev.data);
1479
+ }
1480
+ };
1481
+ window.addEventListener("message", handleWalletMessage);
1482
+ this.closeWalletMessageListeners = () => {
1483
+ window.removeEventListener("message", handleWalletMessage);
1484
+ };
1485
+ }
1486
+ setupIframeCommunication(authIframe, walletIframe, skipWalletLogin) {
1487
+ const channel = new MessageChannel();
1488
+ const authOrigin = new URL(authIframe.src).origin;
1489
+ authIframe.contentWindow.postMessage({
1490
+ type: AirAuthMessageTypes.INIT_WALLET_COMMUNICATION,
1491
+ }, authOrigin, [channel.port1]);
1492
+ const walletOrigin = new URL(walletIframe.src).origin;
1493
+ walletIframe.contentWindow.postMessage({
1494
+ type: AirMessageTypes.INIT_AUTH_COMMUNICATION,
1495
+ payload: {
1496
+ skipWalletLogin,
1497
+ },
1498
+ }, walletOrigin, [channel.port2]);
1499
+ }
1500
+ async sendGrantPermissionRequest(walletIframe, policies) {
1501
+ const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirMessageTypes.GRANT_PERMISSIONS_RESPONSE)));
1502
+ const { origin } = new URL(walletIframe.src);
1503
+ walletIframe.contentWindow.postMessage({
1504
+ type: AirMessageTypes.GRANT_PERMISSIONS_REQUEST,
1505
+ payload: {
1506
+ policies,
1507
+ },
1508
+ }, origin);
1509
+ const result = await response;
1510
+ if (result.payload.success === false) {
1511
+ throw new AirServiceError(result.payload.errorName, result.payload.errorMessage);
1512
+ }
1513
+ return result.payload.sessionData;
1514
+ }
1515
+ async sendExecuteActionRequest(walletIframe, params) {
1516
+ const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirMessageTypes.EXECUTE_ACTION_RESPONSE)));
1517
+ const { origin } = new URL(walletIframe.src);
1518
+ walletIframe.contentWindow.postMessage({
1519
+ type: AirMessageTypes.EXECUTE_ACTION_REQUEST,
1520
+ payload: {
1521
+ sessionData: params.sessionData,
1522
+ call: {
1523
+ to: params.call.to,
1524
+ value: params.call.value,
1525
+ data: params.call.data,
1526
+ },
1527
+ sessionOwnerPrivateKey: params.sessionOwnerPrivateKey,
1528
+ },
1529
+ }, origin);
1530
+ const result = await response;
1531
+ if (result.payload.success === false) {
1532
+ throw new AirServiceError(result.payload.errorName, result.payload.errorMessage);
1533
+ }
1534
+ return result.payload.txHash;
1535
+ }
1536
+ async sendRevokePermissionsRequest(walletIframe, permissionId) {
1537
+ const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirMessageTypes.REVOKE_PERMISSIONS_RESPONSE)));
1538
+ const { origin } = new URL(walletIframe.src);
1539
+ walletIframe.contentWindow.postMessage({
1540
+ type: AirMessageTypes.REVOKE_PERMISSIONS_REQUEST,
1541
+ payload: {
1542
+ permissionId,
1543
+ },
1544
+ }, origin);
1545
+ const result = await response;
1546
+ if (result.payload.success === false) {
1547
+ throw new AirServiceError(result.payload.errorName, result.payload.errorMessage);
1548
+ }
1549
+ return result.payload.txHash;
1550
+ }
1551
+ sendDeploySmartAccountRequest(walletIframe) {
1552
+ const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirMessageTypes.DEPLOY_SMART_ACCOUNT_RESPONSE)));
1553
+ const { origin } = new URL(walletIframe.src);
1554
+ walletIframe.contentWindow.postMessage({
1555
+ type: AirMessageTypes.DEPLOY_SMART_ACCOUNT_REQUEST,
1556
+ }, origin);
1557
+ return response;
1558
+ }
1559
+ async sendIsSmartAccountDeployedRequest(walletIframe) {
1560
+ const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirMessageTypes.IS_SMART_ACCOUNT_DEPLOYED_RESPONSE)));
1561
+ const { origin } = new URL(walletIframe.src);
1562
+ walletIframe.contentWindow.postMessage({
1563
+ type: AirMessageTypes.IS_SMART_ACCOUNT_DEPLOYED_REQUEST,
1564
+ }, origin);
1565
+ return response;
1566
+ }
1567
+ async sendPartnerUserInfoRequest(authIframe) {
1568
+ const response = firstValueFrom(this.authMessage$.pipe(filter((msg) => msg.type === AirAuthMessageTypes.PARTNER_USER_INFO_RESPONSE)));
1569
+ const { origin } = new URL(authIframe.src);
1570
+ authIframe.contentWindow.postMessage({ type: AirAuthMessageTypes.PARTNER_USER_INFO_REQUEST }, origin);
1571
+ return response;
1572
+ }
1573
+ async sendAuthLoginRequest(authIframe, payload) {
1574
+ const response = firstValueFrom(this.authMessage$.pipe(filter((msg) => msg.type === AirAuthMessageTypes.LOGIN_RESPONSE)));
1575
+ const { origin } = new URL(authIframe.src);
1576
+ authIframe.contentWindow.postMessage({ type: AirAuthMessageTypes.LOGIN_REQUEST, payload }, origin);
1577
+ return response;
1578
+ }
1579
+ async logoutAuth(authIframe) {
1580
+ const response = firstValueFrom(this.authMessage$.pipe(filter((msg) => msg.type === AirAuthMessageTypes.LOGOUT_RESPONSE)));
1581
+ const { origin } = new URL(authIframe.src);
1582
+ authIframe.contentWindow.postMessage({ type: AirAuthMessageTypes.LOGOUT_REQUEST }, origin);
1583
+ return response;
1584
+ }
1585
+ async logoutWallet(walletIframe) {
1586
+ const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirMessageTypes.LOGOUT_RESPONSE)));
1587
+ const { origin } = new URL(walletIframe.src);
1588
+ walletIframe.contentWindow.postMessage({ type: AirMessageTypes.LOGOUT_REQUEST }, origin);
1589
+ return response;
1590
+ }
1591
+ sendResetAuthServiceWalletCommunication(authIframe) {
1592
+ const { origin: authOrigin } = new URL(authIframe.src);
1593
+ authIframe.contentWindow.postMessage({ type: AirAuthMessageTypes.RESET_WALLET_COMMUNICATION }, authOrigin);
1594
+ }
1595
+ async sendAuthInitializationRequest(authIframe, payload) {
1596
+ const response = firstValueFrom(this._authMessage$.pipe(filter((msg) => msg.type === AirAuthMessageTypes.INITIALIZATION_RESPONSE)));
1597
+ const { origin } = new URL(authIframe.src);
1598
+ authIframe.contentWindow.postMessage({ type: AirAuthMessageTypes.INITIALIZATION_REQUEST, payload }, origin);
1599
+ return response;
1600
+ }
1601
+ async sendWalletInitializationRequest(walletIframe, payload) {
1602
+ const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirMessageTypes.INITIALIZATION_RESPONSE)));
1603
+ const { origin } = new URL(walletIframe.src);
1604
+ walletIframe.contentWindow.postMessage({ type: AirMessageTypes.INITIALIZATION_REQUEST, payload }, origin);
1605
+ return response;
1606
+ }
1607
+ async sendCrossPartnerTokenRequest(authIframe, targetPartnerUrl) {
1608
+ const response = firstValueFrom(this.authMessage$.pipe(filter((msg) => msg.type === AirAuthMessageTypes.CROSS_PARTNER_TOKEN_RESPONSE)));
1609
+ const { origin } = new URL(authIframe.src);
1610
+ authIframe.contentWindow.postMessage({
1611
+ type: AirAuthMessageTypes.CROSS_PARTNER_TOKEN_REQUEST,
1612
+ payload: {
1613
+ targetPartnerUrl,
1614
+ },
1615
+ }, origin);
1616
+ return response;
1617
+ }
1618
+ async sendGrantPermissionsRequest(walletIframe, payload) {
1619
+ const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirMessageTypes.GRANT_PERMISSIONS_RESPONSE)));
1620
+ const { origin } = new URL(walletIframe.src);
1621
+ walletIframe.contentWindow.postMessage({ type: AirMessageTypes.GRANT_PERMISSIONS_REQUEST, payload }, origin);
1622
+ return response;
1623
+ }
1624
+ async sendListAllSessionKeyScopesRequest(walletIframe) {
1625
+ const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirMessageTypes.LIST_ALL_SESSION_KEY_SCOPES_RESPONSE)));
1626
+ const { origin } = new URL(walletIframe.src);
1627
+ walletIframe.contentWindow.postMessage({ type: AirMessageTypes.LIST_ALL_SESSION_KEY_SCOPES_REQUEST }, origin);
1628
+ return response;
1629
+ }
1630
+ onWalletInitialized() {
1631
+ return firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirMessageTypes.WALLET_INITIALIZED)));
1632
+ }
1633
+ sendWalletLoginRequest(walletIframe) {
1634
+ const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirMessageTypes.WALLET_LOGIN_RESPONSE)));
1635
+ const { origin } = new URL(walletIframe.src);
1636
+ walletIframe.contentWindow.postMessage({ type: AirMessageTypes.WALLET_LOGIN_REQUEST }, origin);
1637
+ return response;
1638
+ }
1639
+ async sendSetupMfaRequest(walletIframe) {
1640
+ const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirMessageTypes.SETUP_MFA_RESPONSE)));
1641
+ const { origin } = new URL(walletIframe.src);
1642
+ walletIframe.contentWindow.postMessage({ type: AirMessageTypes.SETUP_MFA_REQUEST }, origin);
1643
+ return response;
1644
+ }
1645
+ sendOpenWindowSuccessResponse(walletIframe, windowId, port) {
1646
+ const { origin: walletOrigin } = new URL(walletIframe.src);
1647
+ walletIframe.contentWindow.postMessage({
1648
+ type: AirMessageTypes.OPEN_WINDOW_RESPONSE,
1649
+ payload: {
1650
+ success: true,
1651
+ windowId,
1652
+ },
1653
+ }, walletOrigin, [port]);
1654
+ }
1655
+ sendOpenWindowErrorResponse(walletIframe, windowId, error) {
1656
+ const { origin: walletOrigin } = new URL(walletIframe.src);
1657
+ walletIframe.contentWindow.postMessage({
1658
+ type: AirMessageTypes.OPEN_WINDOW_RESPONSE,
1659
+ payload: {
1660
+ success: false,
1661
+ windowId,
1662
+ errorName: "UNKNOWN_ERROR",
1663
+ errorMessage: error.message,
1664
+ },
1665
+ }, walletOrigin);
1666
+ }
1667
+ sendWindowClosed(walletIframe, windowId) {
1668
+ const { origin: walletOrigin } = new URL(walletIframe.src);
1669
+ walletIframe.contentWindow.postMessage({
1670
+ type: AirMessageTypes.WINDOW_CLOSED,
1671
+ payload: {
1672
+ windowId,
1673
+ },
1674
+ }, walletOrigin);
1675
+ }
1676
+ async sendClaimIdRequest(walletIframe, payload) {
1677
+ const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirMessageTypes.CLAIM_ID_RESPONSE)));
1678
+ const { origin } = new URL(walletIframe.src);
1679
+ walletIframe.contentWindow.postMessage({ type: AirMessageTypes.CLAIM_ID_REQUEST, payload }, origin);
1680
+ return response;
1681
+ }
1682
+ async sendWalletProviderRequest(walletIframe, payload) {
1683
+ const response = firstValueFrom(this.providerMessage$.pipe(filter((msg) => msg.type === AirWalletProviderMessageTypes.RESPONSE &&
1684
+ msg.payload.requestId === payload.requestId)));
1685
+ const { origin } = new URL(walletIframe.src);
1686
+ walletIframe.contentWindow.postMessage({
1704
1687
  type: AirWalletProviderMessageTypes.REQUEST,
1705
1688
  payload,
1706
- });
1689
+ }, origin);
1690
+ return response;
1691
+ }
1692
+ closeAuthObservables() {
1693
+ if (this._authMessage$ && !this._authMessage$.closed)
1694
+ this._authMessage$.complete();
1695
+ if (this.closeAuthMessageListeners)
1696
+ this.closeAuthMessageListeners();
1697
+ }
1698
+ closeAirObservables() {
1699
+ if (this.airMessages$ && !this.airMessages$.closed)
1700
+ this.airMessages$.complete();
1701
+ if (this.closeRealmMessageListeners)
1702
+ this.closeRealmMessageListeners();
1703
+ }
1704
+ closeWalletObservables() {
1705
+ if (this._providerMessage$ && !this._providerMessage$.closed)
1706
+ this._providerMessage$.complete();
1707
+ if (this._providerEvent$ && !this._providerEvent$.closed)
1708
+ this._providerEvent$.complete();
1709
+ if (this.closeWalletMessageListeners)
1710
+ this.closeWalletMessageListeners();
1711
+ }
1712
+ setupAuthObservables() {
1713
+ this._authMessage$ = new Subject();
1714
+ }
1715
+ setupAirObservables() {
1716
+ this.airMessages$ = new Subject();
1717
+ }
1718
+ setupWalletObservables() {
1719
+ this._providerMessage$ = new Subject();
1720
+ this._providerEvent$ = new Subject();
1721
+ }
1722
+ async sendGetPartnerAccessTokenRequest(authIframe) {
1723
+ const response = firstValueFrom(this.authMessage$.pipe(filter((msg) => msg.type === AirAuthMessageTypes.GET_PARTNER_ACCESS_TOKEN_RESPONSE)));
1724
+ const { origin } = new URL(authIframe.src);
1725
+ authIframe.contentWindow.postMessage({ type: AirAuthMessageTypes.GET_PARTNER_ACCESS_TOKEN_REQUEST }, origin);
1707
1726
  return response;
1708
1727
  }
1709
1728
  }
1710
- _a$2 = ProviderMessageService;
1711
- _ProviderMessageService_instance = { value: undefined };
1729
+ var AirMessageService$1 = AirMessageService.instance;
1730
+
1731
+ const BUILD_ENV = {
1732
+ PRODUCTION: "production",
1733
+ UAT: "uat",
1734
+ STAGING: "staging",
1735
+ DEVELOPMENT: "development",
1736
+ };
1737
+
1738
+ const AIR_URLS = {
1739
+ [BUILD_ENV.DEVELOPMENT]: {
1740
+ authUrl: "http://localhost:8100",
1741
+ walletUrl: "http://localhost:8200",
1742
+ logLevel: "debug",
1743
+ },
1744
+ [BUILD_ENV.UAT]: {
1745
+ authUrl: "https://auth.uat.air3.com",
1746
+ walletUrl: "https://account.uat.air3.com",
1747
+ logLevel: "info",
1748
+ },
1749
+ [BUILD_ENV.STAGING]: {
1750
+ authUrl: "https://auth.staging.air3.com",
1751
+ walletUrl: "https://account.staging.air3.com",
1752
+ logLevel: "info",
1753
+ },
1754
+ [BUILD_ENV.PRODUCTION]: {
1755
+ authUrl: "https://auth.air3.com",
1756
+ walletUrl: "https://account.air3.com",
1757
+ logLevel: "error",
1758
+ },
1759
+ };
1760
+ const isElement = (element) => element instanceof Element || element instanceof Document;
1761
+ const randomId = () => Math.random().toString(36).slice(2);
1762
+ const getWindowFeatures = (width, height) => {
1763
+ const dualScreenLeft = window.screenLeft !== undefined ? window.screenLeft : window.screenX;
1764
+ const dualScreenTop = window.screenTop !== undefined ? window.screenTop : window.screenY;
1765
+ const w = window.innerWidth
1766
+ ? window.innerWidth
1767
+ : document.documentElement.clientWidth
1768
+ ? document.documentElement.clientWidth
1769
+ : window.screen.width;
1770
+ const h = window.innerHeight
1771
+ ? window.innerHeight
1772
+ : document.documentElement.clientHeight
1773
+ ? document.documentElement.clientHeight
1774
+ : window.screen.height;
1775
+ const systemZoom = 1; // No reliable estimate
1776
+ const left = Math.abs((w - width) / 2 / systemZoom + dualScreenLeft);
1777
+ const top = Math.abs((h - height) / 2 / systemZoom + dualScreenTop);
1778
+ return `titlebar=0,toolbar=0,status=0,location=0,menubar=0,height=${height / systemZoom},width=${width / systemZoom},top=${top},left=${left}`;
1779
+ };
1712
1780
 
1713
- var _AirWalletProvider_instances, _AirWalletProvider_providerMessageService, _AirWalletProvider_isLoggedIn, _AirWalletProvider_ensureWallet, _AirWalletProvider_eventListeners, _AirWalletProvider_emit;
1781
+ var _AirWalletProvider_instances, _AirWalletProvider_isLoggedIn, _AirWalletProvider_ensureWallet, _AirWalletProvider_getWalletIframeController, _AirWalletProvider_eventListeners, _AirWalletProvider_emit;
1714
1782
  class AirWalletProvider {
1715
- constructor({ isLoggedIn, ensureWallet, }) {
1783
+ constructor({ isLoggedIn, ensureWallet, getWalletIframeController, }) {
1716
1784
  _AirWalletProvider_instances.add(this);
1717
- _AirWalletProvider_providerMessageService.set(this, undefined);
1718
1785
  _AirWalletProvider_isLoggedIn.set(this, undefined);
1719
1786
  _AirWalletProvider_ensureWallet.set(this, undefined);
1787
+ _AirWalletProvider_getWalletIframeController.set(this, undefined);
1720
1788
  _AirWalletProvider_eventListeners.set(this, undefined);
1721
- this.startEventMessageListening = async (walletIframe) => {
1722
- await __classPrivateFieldGet(this, _AirWalletProvider_providerMessageService, "f").open(walletIframe);
1723
- __classPrivateFieldGet(this, _AirWalletProvider_providerMessageService, "f").messages$
1724
- .pipe(filter((msg) => msg.type === AirWalletProviderMessageTypes.EVENT))
1725
- .subscribe((message) => {
1789
+ this.startEventMessageListening = () => {
1790
+ AirMessageService$1.providerEvent$.subscribe((message) => {
1726
1791
  __classPrivateFieldGet(this, _AirWalletProvider_instances, "m", _AirWalletProvider_emit).call(this, message.payload.event, ...[message.payload.data]);
1727
1792
  });
1728
1793
  };
1729
- __classPrivateFieldSet(this, _AirWalletProvider_providerMessageService, ProviderMessageService.create(), "f");
1730
1794
  __classPrivateFieldSet(this, _AirWalletProvider_isLoggedIn, isLoggedIn, "f");
1731
1795
  __classPrivateFieldSet(this, _AirWalletProvider_ensureWallet, ensureWallet, "f");
1796
+ __classPrivateFieldSet(this, _AirWalletProvider_getWalletIframeController, getWalletIframeController, "f");
1732
1797
  __classPrivateFieldSet(this, _AirWalletProvider_eventListeners, {
1733
1798
  connect: [],
1734
1799
  disconnect: [],
@@ -1764,7 +1829,7 @@ class AirWalletProvider {
1764
1829
  throw ensureProviderRpcError(error);
1765
1830
  }
1766
1831
  const requestId = randomId();
1767
- const response = await __classPrivateFieldGet(this, _AirWalletProvider_providerMessageService, "f").sendWalletProviderRequest({
1832
+ const response = await AirMessageService$1.sendWalletProviderRequest(__classPrivateFieldGet(this, _AirWalletProvider_getWalletIframeController, "f").call(this).iframeElement, {
1768
1833
  requestId,
1769
1834
  ...request,
1770
1835
  });
@@ -1794,13 +1859,13 @@ class AirWalletProvider {
1794
1859
  }, "f");
1795
1860
  }
1796
1861
  }
1797
- _AirWalletProvider_providerMessageService = new WeakMap(), _AirWalletProvider_isLoggedIn = new WeakMap(), _AirWalletProvider_ensureWallet = new WeakMap(), _AirWalletProvider_eventListeners = new WeakMap(), _AirWalletProvider_instances = new WeakSet(), _AirWalletProvider_emit = function _AirWalletProvider_emit(eventName, ...args) {
1862
+ _AirWalletProvider_isLoggedIn = new WeakMap(), _AirWalletProvider_ensureWallet = new WeakMap(), _AirWalletProvider_getWalletIframeController = new WeakMap(), _AirWalletProvider_eventListeners = new WeakMap(), _AirWalletProvider_instances = new WeakSet(), _AirWalletProvider_emit = function _AirWalletProvider_emit(eventName, ...args) {
1798
1863
  (__classPrivateFieldGet(this, _AirWalletProvider_eventListeners, "f")[eventName] || []).forEach((listener) => {
1799
1864
  try {
1800
1865
  return listener(...args);
1801
1866
  }
1802
1867
  catch (error) {
1803
- log.warn(error);
1868
+ log$1.error(error);
1804
1869
  }
1805
1870
  });
1806
1871
  };
@@ -1831,7 +1896,6 @@ class IframeController {
1831
1896
  iframe.style.margin = "0";
1832
1897
  iframe.style.padding = "0";
1833
1898
  iframe.style.display = "none";
1834
- iframe.style.colorScheme = "auto";
1835
1899
  document.body.appendChild(iframe);
1836
1900
  this._iframeElement = iframe;
1837
1901
  return iframe;
@@ -1869,137 +1933,85 @@ IframeController.defaultState = {
1869
1933
  isVisible: false,
1870
1934
  };
1871
1935
 
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
1936
  class WindowController {
1892
- get messages$() {
1893
- return this._messages$.asObservable();
1894
- }
1895
- constructor(windowId, windowUrl) {
1896
- this._windowInstance = null;
1897
- this._messageHandler = null;
1898
- this._messages$ = new Subject();
1899
- this.windowId = windowId;
1900
- this.windowUrl = windowUrl;
1901
- this.windowOrigin = new URL(windowUrl).origin;
1902
- this._messageHandler = ev => {
1903
- if (ev.source !== this._windowInstance || ev.origin !== this.windowOrigin || !ev.data || !(ev.data instanceof Object)) {
1904
- return;
1905
- }
1906
- this._messages$.next(ev);
1907
- };
1908
- window.addEventListener("message", this._messageHandler);
1909
- }
1910
- get windowInstance() {
1911
- return this._windowInstance;
1912
- }
1913
- async openWindow(onRetry) {
1914
- let windowInstance = this.tryOpenWindow();
1915
- if (!windowInstance) {
1916
- await onRetry();
1917
- windowInstance = this.tryOpenWindow();
1918
- if (!windowInstance) {
1919
- throw new AirError(WindowErrorName.WINDOW_BLOCKED);
1920
- }
1921
- }
1922
- const pendingWindowOpenCheck = new Promise((resolve, reject) => {
1923
- setTimeout(() => {
1924
- if (this.isWindowOpen(windowInstance)) {
1925
- // only now are we scheduling the close event check since we're sure the window is open
1926
- this.scheduleWindowClosedChecks(windowInstance);
1927
- resolve("opened");
1928
- } else {
1929
- onRetry().then(() => {
1930
- windowInstance = this.tryOpenWindow();
1931
- if (windowInstance) {
1932
- this._windowInstance = windowInstance;
1933
- windowInstance.focus();
1934
- this.scheduleWindowClosedChecks(windowInstance);
1935
- resolve("retry");
1936
- } else {
1937
- reject(new AirError(WindowErrorName.WINDOW_BLOCKED));
1937
+ get messages$() {
1938
+ return this._messages$.asObservable();
1939
+ }
1940
+ constructor(windowUrl, windowId) {
1941
+ this._windowInstance = null;
1942
+ this._messageHandler = null;
1943
+ this._messages$ = new Subject();
1944
+ this.windowUrl = windowUrl;
1945
+ this.windowOrigin = new URL(windowUrl).origin;
1946
+ this.windowId = windowId;
1947
+ }
1948
+ get windowInstance() {
1949
+ return this._windowInstance;
1950
+ }
1951
+ openWindow() {
1952
+ if (this._windowInstance && !this._windowInstance.closed) {
1953
+ this._windowInstance.focus();
1954
+ return this._windowInstance;
1955
+ }
1956
+ const windowInstance = window.open(this.windowUrl, this.windowId, getWindowFeatures(400, 600));
1957
+ if (!windowInstance) {
1958
+ throw new Error("Failed to open window. Popup might be blocked by the browser.");
1959
+ }
1960
+ this._windowInstance = windowInstance;
1961
+ this._messageHandler = (ev) => {
1962
+ if (ev.source !== windowInstance ||
1963
+ ev.origin !== this.windowOrigin ||
1964
+ !ev.data ||
1965
+ !(ev.data instanceof Object)) {
1966
+ return;
1938
1967
  }
1939
- }).catch(reject);
1940
- }
1941
- }, 1000);
1942
- });
1943
- this._windowInstance = windowInstance;
1944
- windowInstance.focus();
1945
- return {
1946
- pendingWindowOpenCheck
1947
- };
1948
- }
1949
- postMessage(message, transfer) {
1950
- if (!this._windowInstance) return;
1951
- this._windowInstance.postMessage(message, this.windowOrigin, transfer);
1952
- }
1953
- onMessage(callback) {
1954
- const listener = ev => {
1955
- if (ev.source !== this._windowInstance || ev.origin !== this.windowOrigin) return;
1956
- callback(ev);
1957
- };
1958
- window.addEventListener("message", listener);
1959
- const close = () => window.removeEventListener("message", listener);
1960
- this.onClose(close);
1961
- return {
1962
- close
1963
- };
1964
- }
1965
- cleanup() {
1966
- if (this._windowInstance && !this._windowInstance.closed) {
1967
- this._windowInstance.close();
1968
- }
1969
- this._windowInstance = null;
1970
- if (this._messageHandler) {
1971
- window.removeEventListener("message", this._messageHandler);
1972
- this._messageHandler = null;
1968
+ this._messages$.next(ev);
1969
+ };
1970
+ window.addEventListener("message", this._messageHandler);
1971
+ const checkWindow = setInterval(() => {
1972
+ if (!this._windowInstance || this._windowInstance?.closed) {
1973
+ this.cleanup();
1974
+ clearInterval(checkWindow);
1975
+ }
1976
+ }, 500);
1977
+ return windowInstance;
1973
1978
  }
1974
- if (this._messages$ && !this._messages$.closed) {
1975
- this._messages$.complete();
1979
+ postMessage(message, transfer) {
1980
+ if (!this._windowInstance)
1981
+ return;
1982
+ this._windowInstance.postMessage(message, this.windowOrigin, transfer);
1976
1983
  }
1977
- }
1978
- onClose(callback) {
1979
- return this._messages$.subscribe({
1980
- complete: callback
1981
- });
1982
- }
1983
- isWindowOpen(windowInstance) {
1984
- return !(!windowInstance || windowInstance.closed || typeof windowInstance.closed == "undefined");
1985
- }
1986
- tryOpenWindow() {
1987
- const windowInstance = window.open(this.windowUrl, this.windowId, getWindowFeatures(425, 680));
1988
- if (this.isWindowOpen(windowInstance)) {
1989
- return windowInstance;
1984
+ onMessage(callback) {
1985
+ const listener = (ev) => {
1986
+ if (ev.source !== this._windowInstance)
1987
+ return;
1988
+ callback(ev);
1989
+ };
1990
+ window.addEventListener("message", listener);
1991
+ const close = () => window.removeEventListener("message", listener);
1992
+ this.onClose(close);
1993
+ return {
1994
+ close,
1995
+ };
1990
1996
  }
1991
- return null;
1992
- }
1993
- scheduleWindowClosedChecks(windowInstance) {
1994
- const checkWindow = setInterval(() => {
1995
- if (!windowInstance || windowInstance.closed) {
1996
- clearInterval(checkWindow);
1997
- if (windowInstance === this._windowInstance) {
1998
- this.cleanup();
1997
+ cleanup() {
1998
+ if (this._windowInstance && !this._windowInstance.closed) {
1999
+ this._windowInstance.close();
1999
2000
  }
2000
- }
2001
- }, 500);
2002
- }
2001
+ if (this._messageHandler) {
2002
+ window.removeEventListener("message", this._messageHandler);
2003
+ this._messageHandler = null;
2004
+ }
2005
+ if (this._messages$ && !this._messages$.closed) {
2006
+ this._messages$.complete();
2007
+ }
2008
+ this._windowInstance = null;
2009
+ }
2010
+ onClose(callback) {
2011
+ return this._messages$.subscribe({
2012
+ complete: callback,
2013
+ });
2014
+ }
2003
2015
  }
2004
2016
 
2005
2017
  class WindowService {
@@ -2018,59 +2030,37 @@ class WindowService {
2018
2030
  if (!windowInstance) {
2019
2031
  throw new Error("Window instance not found");
2020
2032
  }
2021
- const response = firstValueFrom(windowController.messages$.pipe(filter((event) => event.data.type ===
2022
- AirWalletMessageTypes.INITIALIZATION_RESPONSE)));
2023
- windowController.postMessage({ type: AirWalletMessageTypes.INITIALIZATION_REQUEST, payload }, [
2024
- port,
2025
- ]);
2033
+ const response = firstValueFrom(windowController.messages$.pipe(filter((event) => event.data.type === AirMessageTypes.INITIALIZATION_RESPONSE)));
2034
+ windowController.postMessage({ type: AirMessageTypes.INITIALIZATION_REQUEST, payload }, [port]);
2026
2035
  return (await response).data;
2027
2036
  }
2028
- async openAndInitializeWalletServiceWindow({ url, windowId, partnerId, enableLogging, onRetry, sdkVersion, }) {
2037
+ async openAndInitializeWalletServiceWindow({ url, windowId, partnerId, enableLogging, port, }) {
2029
2038
  if (this.windowControllers.has(windowId)) {
2030
2039
  throw new Error("Window controller already exists");
2031
2040
  }
2032
- const windowController = new WindowController(windowId, url);
2033
- const { pendingWindowOpenCheck } = await windowController.openWindow(onRetry);
2041
+ const windowController = new WindowController(url, windowId);
2042
+ this.windowControllers.set(windowId, windowController);
2043
+ windowController.openWindow();
2034
2044
  windowController.onClose(() => {
2035
2045
  this.removeWindowController(windowId);
2036
2046
  });
2037
- this.windowControllers.set(windowId, windowController);
2038
- let channel = null;
2039
- const initializeWindow = () => {
2040
- return new Promise((resolve, reject) => {
2041
- windowController.onMessage(async (ev) => {
2042
- if (ev.data === AirWalletMessageTypes.SERVICE_STARTED) {
2043
- try {
2044
- channel = new MessageChannel();
2045
- const { payload } = await this.sendWindowInitializationRequest(windowId, {
2046
- partnerId,
2047
- enableLogging,
2048
- sdkVersion,
2049
- }, channel.port1);
2050
- if (payload.success === false) {
2051
- reject(new AirServiceError(payload.errorName, payload.errorMessage));
2052
- }
2053
- else {
2054
- resolve();
2055
- }
2056
- }
2057
- catch (e) {
2058
- reject(e);
2059
- }
2047
+ await new Promise((resolve, reject) => {
2048
+ windowController.onMessage(async (ev) => {
2049
+ if (ev.data === AirMessageTypes.SERVICE_STARTED) {
2050
+ const { payload } = await this.sendWindowInitializationRequest(windowId, {
2051
+ partnerId,
2052
+ enableLogging,
2053
+ }, port);
2054
+ if (payload.success === false) {
2055
+ reject(new AirServiceError(payload.errorName, payload.errorMessage));
2056
+ }
2057
+ else {
2058
+ resolve();
2060
2059
  }
2061
- });
2060
+ }
2062
2061
  });
2063
- };
2064
- const initializeWindowPromise = initializeWindow();
2065
- const result = await pendingWindowOpenCheck;
2066
- if (result === "retry") {
2067
- // we can ignore previous initialization attempt since a new window was opened
2068
- await initializeWindow();
2069
- }
2070
- else {
2071
- await initializeWindowPromise;
2072
- }
2073
- return { windowController, port: channel.port2 };
2062
+ });
2063
+ return windowController;
2074
2064
  }
2075
2065
  getWindowController(windowId) {
2076
2066
  return this.windowControllers.get(windowId);
@@ -2081,381 +2071,7 @@ class WindowService {
2081
2071
  }
2082
2072
  var WindowService$1 = WindowService.instance;
2083
2073
 
2084
- var _a$1, _AuthMessageService_instance;
2085
- const ALLOWED_AUTH_MESSAGES = [
2086
- AirAuthMessageTypes.INITIALIZATION_RESPONSE,
2087
- AirAuthMessageTypes.LOGIN_RESPONSE,
2088
- AirAuthMessageTypes.SETUP_WALLET_REQUEST,
2089
- AirAuthMessageTypes.LOGOUT_RESPONSE,
2090
- AirAuthMessageTypes.PARTNER_USER_INFO_RESPONSE,
2091
- AirAuthMessageTypes.CROSS_PARTNER_TOKEN_RESPONSE,
2092
- AirAuthMessageTypes.PARTNER_ACCESS_TOKEN_RESPONSE,
2093
- AirAuthMessageTypes.IFRAME_VISIBILITY_REQUEST,
2094
- ];
2095
- class AuthMessageService extends MessageServiceBase {
2096
- static create() {
2097
- if (__classPrivateFieldGet(this, _a$1, "f", _AuthMessageService_instance))
2098
- throw new Error("AuthMessageService already created");
2099
- __classPrivateFieldSet(this, _a$1, new _a$1("Embed Service: Auth Channel", ALLOWED_AUTH_MESSAGES), "f", _AuthMessageService_instance);
2100
- return __classPrivateFieldGet(this, _a$1, "f", _AuthMessageService_instance);
2101
- }
2102
- async open(authIframe) {
2103
- const origin = new URL(authIframe.src).origin;
2104
- const window = authIframe.contentWindow;
2105
- await super._open({ window, origin });
2106
- }
2107
- async initWalletCommunication(port) {
2108
- await this.sendMessage({
2109
- type: AirAuthMessageTypes.INIT_WALLET_COMMUNICATION,
2110
- }, [port]);
2111
- }
2112
- async sendPartnerUserInfoRequest() {
2113
- const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirAuthMessageTypes.PARTNER_USER_INFO_RESPONSE)));
2114
- await this.sendMessage({
2115
- type: AirAuthMessageTypes.PARTNER_USER_INFO_REQUEST,
2116
- payload: { allowCache: false },
2117
- });
2118
- return response;
2119
- }
2120
- async sendLoginRequest(payload) {
2121
- const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirAuthMessageTypes.LOGIN_RESPONSE)));
2122
- await this.sendMessage({ type: AirAuthMessageTypes.LOGIN_REQUEST, payload });
2123
- return response;
2124
- }
2125
- async logout() {
2126
- const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirAuthMessageTypes.LOGOUT_RESPONSE)));
2127
- await this.sendMessage({ type: AirAuthMessageTypes.LOGOUT_REQUEST });
2128
- return response;
2129
- }
2130
- async resetWalletCommunication() {
2131
- await this.sendMessage({ type: AirAuthMessageTypes.RESET_WALLET_COMMUNICATION });
2132
- }
2133
- async sendInitializationRequest(payload) {
2134
- const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirAuthMessageTypes.INITIALIZATION_RESPONSE)));
2135
- await this.sendMessage({ type: AirAuthMessageTypes.INITIALIZATION_REQUEST, payload });
2136
- return response;
2137
- }
2138
- async sendSetupWalletSuccessResponse() {
2139
- await this.sendMessage({
2140
- type: AirAuthMessageTypes.SETUP_WALLET_RESPONSE,
2141
- payload: {
2142
- success: true,
2143
- },
2144
- });
2145
- }
2146
- async sendSetupWalletErrorResponse(error) {
2147
- await this.sendMessage(this.createErrorResponseMessage(AirAuthMessageTypes.SETUP_WALLET_RESPONSE, error));
2148
- }
2149
- async sendCrossPartnerTokenRequest(targetPartnerUrl) {
2150
- const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirAuthMessageTypes.CROSS_PARTNER_TOKEN_RESPONSE)));
2151
- await this.sendMessage({
2152
- type: AirAuthMessageTypes.CROSS_PARTNER_TOKEN_REQUEST,
2153
- payload: {
2154
- targetPartnerUrl,
2155
- },
2156
- });
2157
- return response;
2158
- }
2159
- async sendPartnerAccessTokenRequest() {
2160
- const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirAuthMessageTypes.PARTNER_ACCESS_TOKEN_RESPONSE)));
2161
- await this.sendMessage({ type: AirAuthMessageTypes.PARTNER_ACCESS_TOKEN_REQUEST });
2162
- return response;
2163
- }
2164
- }
2165
- _a$1 = AuthMessageService;
2166
- _AuthMessageService_instance = { value: undefined };
2167
-
2168
- var _a, _WalletMessageService_instance;
2169
- const ALLOWED_WALLET_MESSAGES = [
2170
- AirWalletMessageTypes.INITIALIZATION_RESPONSE,
2171
- AirWalletMessageTypes.WALLET_INITIALIZED,
2172
- AirWalletMessageTypes.WALLET_LOGIN_RESPONSE,
2173
- AirWalletMessageTypes.SETUP_OR_UPDATE_MFA_RESPONSE,
2174
- AirWalletMessageTypes.CLAIM_ID_RESPONSE,
2175
- AirWalletMessageTypes.IS_SMART_ACCOUNT_DEPLOYED_RESPONSE,
2176
- 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
- AirWalletMessageTypes.WALLET_INITIALIZED,
2182
- AirWalletMessageTypes.WALLET_IFRAME_VISIBILITY_REQUEST,
2183
- AirWalletMessageTypes.LOGOUT_RESPONSE,
2184
- AirWalletMessageTypes.OPEN_WINDOW_REQUEST,
2185
- AirWalletMessageTypes.OPEN_WINDOW_RETRY_RESPONSE,
2186
- ];
2187
- class WalletMessageService extends MessageServiceBase {
2188
- static create() {
2189
- if (__classPrivateFieldGet(this, _a, "f", _WalletMessageService_instance))
2190
- throw new Error("WalletMessageService already created");
2191
- __classPrivateFieldSet(this, _a, new _a("Embed Service: Wallet Channel", ALLOWED_WALLET_MESSAGES), "f", _WalletMessageService_instance);
2192
- return __classPrivateFieldGet(this, _a, "f", _WalletMessageService_instance);
2193
- }
2194
- async open(walletIframe) {
2195
- const origin = new URL(walletIframe.src).origin;
2196
- const window = walletIframe.contentWindow;
2197
- await super._open({ window, origin });
2198
- }
2199
- async initAuthCommunication(skipWalletLogin, port) {
2200
- await this.sendMessage({
2201
- type: AirWalletMessageTypes.INIT_AUTH_COMMUNICATION,
2202
- payload: {
2203
- skipWalletLogin,
2204
- },
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
- });
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
- }
2255
- async sendDeploySmartAccountRequest() {
2256
- const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirWalletMessageTypes.DEPLOY_SMART_ACCOUNT_RESPONSE)));
2257
- await this.sendMessage({
2258
- type: AirWalletMessageTypes.DEPLOY_SMART_ACCOUNT_REQUEST,
2259
- });
2260
- return response;
2261
- }
2262
- async sendIsSmartAccountDeployedRequest() {
2263
- const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirWalletMessageTypes.IS_SMART_ACCOUNT_DEPLOYED_RESPONSE)));
2264
- await this.sendMessage({
2265
- type: AirWalletMessageTypes.IS_SMART_ACCOUNT_DEPLOYED_REQUEST,
2266
- });
2267
- return response;
2268
- }
2269
- async logout() {
2270
- const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirWalletMessageTypes.LOGOUT_RESPONSE)));
2271
- await this.sendMessage({ type: AirWalletMessageTypes.LOGOUT_REQUEST });
2272
- return response;
2273
- }
2274
- async sendInitializationRequest(payload) {
2275
- const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirWalletMessageTypes.INITIALIZATION_RESPONSE)));
2276
- await this.sendMessage({ type: AirWalletMessageTypes.INITIALIZATION_REQUEST, payload });
2277
- return response;
2278
- }
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
- onInitialized() {
2290
- return firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirWalletMessageTypes.WALLET_INITIALIZED)));
2291
- }
2292
- async sendLoginRequest() {
2293
- const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirWalletMessageTypes.WALLET_LOGIN_RESPONSE)));
2294
- await this.sendMessage({
2295
- type: AirWalletMessageTypes.WALLET_LOGIN_REQUEST,
2296
- });
2297
- return response;
2298
- }
2299
- async sendSetupMfaRequest() {
2300
- const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirWalletMessageTypes.SETUP_OR_UPDATE_MFA_RESPONSE)));
2301
- await this.sendMessage({
2302
- type: AirWalletMessageTypes.SETUP_OR_UPDATE_MFA_REQUEST,
2303
- });
2304
- return response;
2305
- }
2306
- async sendOpenWindowSuccessResponse(windowId, port) {
2307
- await this.sendMessage({
2308
- type: AirWalletMessageTypes.OPEN_WINDOW_RESPONSE,
2309
- payload: {
2310
- success: true,
2311
- windowId,
2312
- },
2313
- }, [port]);
2314
- }
2315
- async sendOpenWindowErrorResponse(windowId, error) {
2316
- const errorResponse = this.createErrorResponseMessage(AirWalletMessageTypes.OPEN_WINDOW_RESPONSE, error);
2317
- await this.sendMessage({
2318
- ...errorResponse,
2319
- payload: { ...errorResponse.payload, windowId },
2320
- });
2321
- }
2322
- async sendOpenWindowRetryRequest(windowId) {
2323
- const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirWalletMessageTypes.OPEN_WINDOW_RETRY_RESPONSE), filter((msg) => msg.payload.windowId === windowId)));
2324
- await this.sendMessage({
2325
- type: AirWalletMessageTypes.OPEN_WINDOW_RETRY_REQUEST,
2326
- payload: { windowId },
2327
- });
2328
- return response;
2329
- }
2330
- async sendWindowClosed(windowId) {
2331
- await this.sendMessage({
2332
- type: AirWalletMessageTypes.WINDOW_CLOSED,
2333
- payload: {
2334
- windowId,
2335
- },
2336
- });
2337
- }
2338
- async sendClaimIdRequest(payload) {
2339
- const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirWalletMessageTypes.CLAIM_ID_RESPONSE)));
2340
- await this.sendMessage({ type: AirWalletMessageTypes.CLAIM_ID_REQUEST, payload });
2341
- return response;
2342
- }
2343
- }
2344
- _a = WalletMessageService;
2345
- _WalletMessageService_instance = { value: undefined };
2346
-
2347
- const getLevelName = levelNum => {
2348
- const levelNames = Object.keys(log.levels);
2349
- if (levelNum >= 0 && levelNum < levelNames.length) {
2350
- return levelNames[levelNum];
2351
- }
2352
- return "UNKNOWN";
2353
- };
2354
- const configureLogLevel = (environment, enableLogging) => {
2355
- let level = log.levels.ERROR;
2356
- if (environment === "development") {
2357
- level = enableLogging ? log.levels.TRACE : log.levels.INFO;
2358
- } else if (environment === "staging") {
2359
- level = enableLogging ? log.levels.DEBUG : log.levels.INFO;
2360
- } else if (environment === "uat") {
2361
- level = enableLogging ? log.levels.INFO : log.levels.WARN;
2362
- } else if (environment === "production") {
2363
- // Be cautious with enabling more than WARN in prod
2364
- level = enableLogging ? log.levels.WARN : log.levels.ERROR;
2365
- }
2366
- log.setLevel(level);
2367
- log.info(`[${window?.location?.origin}] LogLevel: ${getLevelName(log.getLevel())}`);
2368
- };
2369
-
2370
- var name = "@mocanetwork/airkit";
2371
- var version = "1.2.0";
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
- };
2427
- 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
- };
2456
-
2457
- 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
- const airKitVersion = airkitPackage.version;
2074
+ var _AirService_instances, _AirService_loginResult, _AirService_buildEnv, _AirService_enableLogging, _AirService_partnerId, _AirService_authIframeController, _AirService_isAuthInitialized, _AirService_airAuthListener, _AirService_walletIframeController, _AirService_walletInitialization, _AirService_walletLoggedInResult, _AirService_airWalletProvider, _AirService_ensureWallet, _AirService_initializeWallet, _AirService_subscribeToWalletEvents, _AirService_triggerEventListeners, _AirService_triggerAirAuthInitialized, _AirService_triggerAirAuthLoggedIn, _AirService_triggerAirAuthLoggedOut, _AirService_triggerWalletInitialized, _AirService_createLoginResult, _AirService_createWalletInitializedResult, _AirService_cleanUpAuth, _AirService_cleanUpWallet;
2459
2075
  class AirService {
2460
2076
  constructor({ partnerId }) {
2461
2077
  _AirService_instances.add(this);
@@ -2464,21 +2080,18 @@ class AirService {
2464
2080
  _AirService_enableLogging.set(this, false);
2465
2081
  _AirService_partnerId.set(this, undefined);
2466
2082
  //#modalZIndex: number; TODO implement z index overwrite
2467
- _AirService_authMessagingService.set(this, undefined);
2468
2083
  _AirService_authIframeController.set(this, undefined);
2469
2084
  _AirService_isAuthInitialized.set(this, false);
2470
2085
  _AirService_airAuthListener.set(this, []);
2471
- _AirService_walletMessagingService.set(this, undefined);
2472
2086
  _AirService_walletIframeController.set(this, undefined);
2473
2087
  _AirService_walletInitialization.set(this, undefined);
2474
2088
  _AirService_walletLoggedInResult.set(this, undefined);
2475
2089
  _AirService_airWalletProvider.set(this, undefined);
2476
2090
  __classPrivateFieldSet(this, _AirService_partnerId, partnerId, "f");
2477
- __classPrivateFieldSet(this, _AirService_authMessagingService, AuthMessageService.create(), "f");
2478
- __classPrivateFieldSet(this, _AirService_walletMessagingService, WalletMessageService.create(), "f");
2479
2091
  __classPrivateFieldSet(this, _AirService_airWalletProvider, new AirWalletProvider({
2480
2092
  isLoggedIn: () => this.isLoggedIn,
2481
2093
  ensureWallet: __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_ensureWallet).bind(this),
2094
+ getWalletIframeController: () => __classPrivateFieldGet(this, _AirService_walletIframeController, "f"),
2482
2095
  }), "f");
2483
2096
  // this.#modalZIndex = modalZIndex ?? 99999;
2484
2097
  }
@@ -2509,46 +2122,61 @@ class AirService {
2509
2122
  return;
2510
2123
  __classPrivateFieldSet(this, _AirService_buildEnv, buildEnv, "f");
2511
2124
  __classPrivateFieldSet(this, _AirService_enableLogging, enableLogging, "f");
2512
- const { authUrl } = AIR_URLS[buildEnv];
2513
- configureLogLevel(buildEnv, enableLogging);
2125
+ const { authUrl, logLevel } = AIR_URLS[buildEnv];
2126
+ log.setDefaultLevel(logLevel);
2127
+ if (__classPrivateFieldGet(this, _AirService_enableLogging, "f"))
2128
+ log.enableAll();
2129
+ else
2130
+ log.disableAll();
2514
2131
  const authIframeOrigin = new URL(authUrl).origin;
2132
+ await AirMessageService$1.openAuthObservables({ authIframeOrigin });
2515
2133
  __classPrivateFieldSet(this, _AirService_authIframeController, new IframeController(authUrl, `air-auth-${randomId()}`), "f");
2516
- try {
2517
- __classPrivateFieldGet(this, _AirService_authIframeController, "f").createIframe();
2518
- await __classPrivateFieldGet(this, _AirService_authMessagingService, "f").open(__classPrivateFieldGet(this, _AirService_authIframeController, "f").iframeElement);
2519
- __classPrivateFieldGet(this, _AirService_authMessagingService, "f").messages$.subscribe(async (msg) => {
2520
- switch (msg.type) {
2521
- case AirAuthMessageTypes.IFRAME_VISIBILITY_REQUEST: {
2522
- const authIframeController = __classPrivateFieldGet(this, _AirService_authIframeController, "f");
2523
- authIframeController.setIframeVisibility(msg.payload.visible);
2524
- authIframeController.updateIframeState();
2525
- break;
2134
+ AirMessageService$1.authMessage$.subscribe(async (msg) => {
2135
+ switch (msg.type) {
2136
+ case AirAuthMessageTypes.IFRAME_VISIBILITY_REQUEST: {
2137
+ const authIframeController = __classPrivateFieldGet(this, _AirService_authIframeController, "f");
2138
+ authIframeController.setIframeVisibility(msg.payload.visible);
2139
+ authIframeController.updateIframeState();
2140
+ break;
2141
+ }
2142
+ case AirAuthMessageTypes.SETUP_WALLET_REQUEST: {
2143
+ try {
2144
+ await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_ensureWallet).call(this, { skipWalletLogin: true });
2145
+ __classPrivateFieldGet(this, _AirService_authIframeController, "f").postMessage({
2146
+ type: AirAuthMessageTypes.SETUP_WALLET_RESPONSE,
2147
+ payload: {
2148
+ success: true,
2149
+ },
2150
+ });
2526
2151
  }
2527
- case AirAuthMessageTypes.SETUP_WALLET_REQUEST: {
2528
- try {
2529
- await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_ensureWallet).call(this, { skipWalletLogin: true });
2530
- await __classPrivateFieldGet(this, _AirService_authMessagingService, "f").sendSetupWalletSuccessResponse();
2531
- }
2532
- catch (err) {
2533
- const error = ensureError(err);
2534
- await __classPrivateFieldGet(this, _AirService_authMessagingService, "f").sendSetupWalletErrorResponse(error);
2535
- }
2536
- break;
2152
+ catch (err) {
2153
+ log.error("Error initializing wallet", err);
2154
+ const error = AirServiceError.from(err);
2155
+ __classPrivateFieldGet(this, _AirService_authIframeController, "f").postMessage({
2156
+ type: AirAuthMessageTypes.SETUP_WALLET_RESPONSE,
2157
+ payload: {
2158
+ success: false,
2159
+ errorName: error.name ?? "UNKNOWN_ERROR",
2160
+ errorMessage: error.message ?? "Unknown error occurred",
2161
+ },
2162
+ });
2537
2163
  }
2164
+ break;
2538
2165
  }
2539
- });
2166
+ }
2167
+ });
2168
+ try {
2169
+ __classPrivateFieldGet(this, _AirService_authIframeController, "f").createIframe();
2540
2170
  const result = await new Promise((resolve, reject) => {
2541
2171
  const handleAuthMessage = async (ev) => {
2542
2172
  if (ev.origin !== authIframeOrigin)
2543
2173
  return;
2544
2174
  if (ev.data === AirAuthMessageTypes.AUTH_SETUP_COMPLETED) {
2545
2175
  window.removeEventListener("message", handleAuthMessage);
2546
- const { payload } = await __classPrivateFieldGet(this, _AirService_authMessagingService, "f").sendInitializationRequest({
2176
+ const { payload } = await AirMessageService$1.sendAuthInitializationRequest(__classPrivateFieldGet(this, _AirService_authIframeController, "f").iframeElement, {
2547
2177
  partnerId: __classPrivateFieldGet(this, _AirService_partnerId, "f"),
2548
2178
  skipRehydration,
2549
2179
  partnerDAppUrl: window.location.href,
2550
- sdkVersion: airKitVersion,
2551
- enableLogging: __classPrivateFieldGet(this, _AirService_enableLogging, "f"),
2552
2180
  });
2553
2181
  if (payload.success === true) {
2554
2182
  resolve(payload);
@@ -2581,7 +2209,8 @@ class AirService {
2581
2209
  throw new Error("Service is not initialized");
2582
2210
  if (__classPrivateFieldGet(this, _AirService_loginResult, "f"))
2583
2211
  return __classPrivateFieldGet(this, _AirService_loginResult, "f");
2584
- const { payload } = await __classPrivateFieldGet(this, _AirService_authMessagingService, "f").sendLoginRequest({
2212
+ const iframeController = __classPrivateFieldGet(this, _AirService_authIframeController, "f");
2213
+ const { payload } = await AirMessageService$1.sendAuthLoginRequest(iframeController.iframeElement, {
2585
2214
  partnerLoginToken: options?.authToken,
2586
2215
  });
2587
2216
  if (payload.success === true) {
@@ -2589,7 +2218,7 @@ class AirService {
2589
2218
  __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_triggerAirAuthLoggedIn).call(this);
2590
2219
  return __classPrivateFieldGet(this, _AirService_loginResult, "f");
2591
2220
  }
2592
- throw new AirServiceError(payload.errorName, payload.errorMessage);
2221
+ throw new AirServiceError("UNKNOWN_ERROR", "Unknown error occurred");
2593
2222
  }
2594
2223
  /**
2595
2224
  * @experimental This method is experimental and will change in the future.
@@ -2600,7 +2229,7 @@ class AirService {
2600
2229
  await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_ensureWallet).call(this);
2601
2230
  try {
2602
2231
  log.info("deploySmartAccount");
2603
- const { payload } = await __classPrivateFieldGet(this, _AirService_walletMessagingService, "f").sendDeploySmartAccountRequest();
2232
+ const { payload } = await AirMessageService$1.sendDeploySmartAccountRequest(__classPrivateFieldGet(this, _AirService_walletIframeController, "f").iframeElement);
2604
2233
  if (payload.success === false) {
2605
2234
  throw new AirServiceError(payload.errorName, payload.errorMessage);
2606
2235
  }
@@ -2619,9 +2248,7 @@ class AirService {
2619
2248
  await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_ensureWallet).call(this);
2620
2249
  try {
2621
2250
  log.info("grantPermission", policies);
2622
- const { payload } = await __classPrivateFieldGet(this, _AirService_walletMessagingService, "f").sendGrantPermissionsRequest({
2623
- policies,
2624
- });
2251
+ const { payload } = await AirMessageService$1.sendGrantPermissionsRequest(__classPrivateFieldGet(this, _AirService_walletIframeController, "f").iframeElement, { policies });
2625
2252
  if (payload.success === false) {
2626
2253
  throw new AirServiceError(payload.errorName, payload.errorMessage);
2627
2254
  }
@@ -2639,7 +2266,7 @@ class AirService {
2639
2266
  throw new Error("Service is not initialized");
2640
2267
  await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_ensureWallet).call(this);
2641
2268
  try {
2642
- const { payload } = await __classPrivateFieldGet(this, _AirService_walletMessagingService, "f").sendListAllSessionKeyScopesRequest();
2269
+ const { payload } = await AirMessageService$1.sendListAllSessionKeyScopesRequest(__classPrivateFieldGet(this, _AirService_walletIframeController, "f").iframeElement);
2643
2270
  if (payload.success === false) {
2644
2271
  throw new AirServiceError(payload.errorName, payload.errorMessage);
2645
2272
  }
@@ -2658,7 +2285,7 @@ class AirService {
2658
2285
  await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_ensureWallet).call(this);
2659
2286
  try {
2660
2287
  log.info("executeAction", params);
2661
- const txHash = await __classPrivateFieldGet(this, _AirService_walletMessagingService, "f").sendExecuteActionRequest(params);
2288
+ const txHash = await AirMessageService$1.sendExecuteActionRequest(__classPrivateFieldGet(this, _AirService_walletIframeController, "f").iframeElement, params);
2662
2289
  return txHash;
2663
2290
  }
2664
2291
  catch (error) {
@@ -2674,7 +2301,7 @@ class AirService {
2674
2301
  await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_ensureWallet).call(this);
2675
2302
  try {
2676
2303
  log.info("revokePermission", permissionId);
2677
- const txHash = await __classPrivateFieldGet(this, _AirService_walletMessagingService, "f").sendRevokePermissionsRequest(permissionId);
2304
+ const txHash = await AirMessageService$1.sendRevokePermissionsRequest(__classPrivateFieldGet(this, _AirService_walletIframeController, "f").iframeElement, permissionId);
2678
2305
  return txHash;
2679
2306
  }
2680
2307
  catch (error) {
@@ -2689,7 +2316,7 @@ class AirService {
2689
2316
  throw new Error("Service is not initialized");
2690
2317
  await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_ensureWallet).call(this);
2691
2318
  try {
2692
- const { payload } = await __classPrivateFieldGet(this, _AirService_walletMessagingService, "f").sendIsSmartAccountDeployedRequest();
2319
+ const { payload } = await AirMessageService$1.sendIsSmartAccountDeployedRequest(__classPrivateFieldGet(this, _AirService_walletIframeController, "f").iframeElement);
2693
2320
  if (payload.success === false) {
2694
2321
  throw new AirServiceError(payload.errorName, payload.errorMessage);
2695
2322
  }
@@ -2707,18 +2334,14 @@ class AirService {
2707
2334
  }
2708
2335
  async setupOrUpdateMfa() {
2709
2336
  await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_ensureWallet).call(this, { skipWalletLogin: true });
2710
- const result = await __classPrivateFieldGet(this, _AirService_walletMessagingService, "f").sendSetupMfaRequest();
2337
+ const result = await AirMessageService$1.sendSetupMfaRequest(__classPrivateFieldGet(this, _AirService_walletIframeController, "f").iframeElement);
2711
2338
  if (result.payload.success === false) {
2712
2339
  throw new AirServiceError(result.payload.errorName, result.payload.errorMessage);
2713
2340
  }
2714
- __classPrivateFieldSet(this, _AirService_loginResult, {
2715
- ...__classPrivateFieldGet(this, _AirService_loginResult, "f"),
2716
- isMFASetup: true,
2717
- }, "f");
2718
2341
  }
2719
2342
  async claimAirId(options) {
2720
2343
  await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_ensureWallet).call(this);
2721
- const result = await __classPrivateFieldGet(this, _AirService_walletMessagingService, "f").sendClaimIdRequest(options ?? {});
2344
+ const result = await AirMessageService$1.sendClaimIdRequest(__classPrivateFieldGet(this, _AirService_walletIframeController, "f").iframeElement, options ?? {});
2722
2345
  if (result.payload.success === true) {
2723
2346
  return { airId: result.payload.airId };
2724
2347
  }
@@ -2727,7 +2350,7 @@ class AirService {
2727
2350
  async getUserInfo() {
2728
2351
  if (!this.isLoggedIn)
2729
2352
  throw new Error("User not logged in");
2730
- const info = await __classPrivateFieldGet(this, _AirService_authMessagingService, "f").sendPartnerUserInfoRequest();
2353
+ const info = await AirMessageService$1.sendPartnerUserInfoRequest(__classPrivateFieldGet(this, _AirService_authIframeController, "f").iframeElement);
2731
2354
  if (info.payload.success === false) {
2732
2355
  throw new AirServiceError(info.payload.errorName, info.payload.errorMessage);
2733
2356
  }
@@ -2748,7 +2371,7 @@ class AirService {
2748
2371
  throw new Error("Service is not initialized");
2749
2372
  if (!this.isLoggedIn)
2750
2373
  throw new Error("No active session to generate token");
2751
- const result = await __classPrivateFieldGet(this, _AirService_authMessagingService, "f").sendCrossPartnerTokenRequest(partnerUrl);
2374
+ const result = await AirMessageService$1.sendCrossPartnerTokenRequest(__classPrivateFieldGet(this, _AirService_authIframeController, "f").iframeElement, partnerUrl);
2752
2375
  if (result.payload.success === false) {
2753
2376
  throw new AirServiceError(result.payload.errorName, result.payload.errorMessage);
2754
2377
  }
@@ -2756,20 +2379,6 @@ class AirService {
2756
2379
  urlWithToken: result.payload.urlWithToken,
2757
2380
  };
2758
2381
  }
2759
- async getAccessToken() {
2760
- if (!__classPrivateFieldGet(this, _AirService_isAuthInitialized, "f"))
2761
- throw new Error("Service is not initialized");
2762
- if (!this.isLoggedIn)
2763
- throw new Error("No active session to get partner access token");
2764
- const result = await __classPrivateFieldGet(this, _AirService_authMessagingService, "f").sendPartnerAccessTokenRequest();
2765
- if (result.payload.success !== true) {
2766
- throw new AirServiceError(result.payload.errorName, result.payload.errorMessage);
2767
- }
2768
- if (!result.payload.partnerAccessToken) {
2769
- throw new Error("Partner access token not found in response");
2770
- }
2771
- return { token: result.payload.partnerAccessToken };
2772
- }
2773
2382
  async logout() {
2774
2383
  if (!__classPrivateFieldGet(this, _AirService_isAuthInitialized, "f"))
2775
2384
  throw new Error("Service is not initialized");
@@ -2777,7 +2386,7 @@ class AirService {
2777
2386
  throw new Error("No active session to logout");
2778
2387
  // Clear up wallet
2779
2388
  await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_cleanUpWallet).call(this);
2780
- await __classPrivateFieldGet(this, _AirService_authMessagingService, "f").logout();
2389
+ await AirMessageService$1.logoutAuth(__classPrivateFieldGet(this, _AirService_authIframeController, "f").iframeElement);
2781
2390
  __classPrivateFieldSet(this, _AirService_loginResult, undefined, "f");
2782
2391
  __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_triggerAirAuthLoggedOut).call(this);
2783
2392
  }
@@ -2797,8 +2406,22 @@ class AirService {
2797
2406
  clearEventListeners() {
2798
2407
  __classPrivateFieldSet(this, _AirService_airAuthListener, [], "f");
2799
2408
  }
2409
+ async getPartnerAccessToken() {
2410
+ if (!__classPrivateFieldGet(this, _AirService_isAuthInitialized, "f"))
2411
+ throw new Error("Service is not initialized");
2412
+ if (!this.isLoggedIn)
2413
+ throw new Error("No active session to get partner access token");
2414
+ const result = await AirMessageService$1.sendGetPartnerAccessTokenRequest(__classPrivateFieldGet(this, _AirService_authIframeController, "f").iframeElement);
2415
+ if (result.payload.success === false) {
2416
+ throw new AirServiceError(result.payload.errorName, result.payload.errorMessage);
2417
+ }
2418
+ if (!result.payload.partnerAccessToken) {
2419
+ throw new Error("Partner access token not found in response");
2420
+ }
2421
+ return result.payload.partnerAccessToken;
2422
+ }
2800
2423
  }
2801
- _AirService_loginResult = new WeakMap(), _AirService_buildEnv = new WeakMap(), _AirService_enableLogging = new WeakMap(), _AirService_partnerId = new WeakMap(), _AirService_authMessagingService = new WeakMap(), _AirService_authIframeController = new WeakMap(), _AirService_isAuthInitialized = new WeakMap(), _AirService_airAuthListener = new WeakMap(), _AirService_walletMessagingService = new WeakMap(), _AirService_walletIframeController = new WeakMap(), _AirService_walletInitialization = new WeakMap(), _AirService_walletLoggedInResult = new WeakMap(), _AirService_airWalletProvider = new WeakMap(), _AirService_instances = new WeakSet(), _AirService_ensureWallet = async function _AirService_ensureWallet(option) {
2424
+ _AirService_loginResult = new WeakMap(), _AirService_buildEnv = new WeakMap(), _AirService_enableLogging = new WeakMap(), _AirService_partnerId = new WeakMap(), _AirService_authIframeController = new WeakMap(), _AirService_isAuthInitialized = new WeakMap(), _AirService_airAuthListener = new WeakMap(), _AirService_walletIframeController = new WeakMap(), _AirService_walletInitialization = new WeakMap(), _AirService_walletLoggedInResult = new WeakMap(), _AirService_airWalletProvider = new WeakMap(), _AirService_instances = new WeakSet(), _AirService_ensureWallet = async function _AirService_ensureWallet(option) {
2802
2425
  if (!this.isInitialized)
2803
2426
  throw new Error("Service not initialized");
2804
2427
  if (!this.isLoggedIn && !option?.skipWalletLogin)
@@ -2820,7 +2443,7 @@ _AirService_loginResult = new WeakMap(), _AirService_buildEnv = new WeakMap(), _
2820
2443
  }
2821
2444
  if (__classPrivateFieldGet(this, _AirService_walletLoggedInResult, "f"))
2822
2445
  return __classPrivateFieldGet(this, _AirService_walletLoggedInResult, "f");
2823
- const walletLoginResult = await __classPrivateFieldGet(this, _AirService_walletMessagingService, "f").sendLoginRequest();
2446
+ const walletLoginResult = await AirMessageService$1.sendWalletLoginRequest(__classPrivateFieldGet(this, _AirService_walletIframeController, "f").iframeElement);
2824
2447
  if (walletLoginResult.payload.success !== true) {
2825
2448
  throw new AirServiceError(walletLoginResult.payload.errorName, walletLoginResult.payload.errorMessage);
2826
2449
  }
@@ -2831,17 +2454,20 @@ _AirService_loginResult = new WeakMap(), _AirService_buildEnv = new WeakMap(), _
2831
2454
  const { walletUrl } = AIR_URLS[__classPrivateFieldGet(this, _AirService_buildEnv, "f")];
2832
2455
  log.info(walletUrl, "url loaded");
2833
2456
  const walletIframeOrigin = new URL(walletUrl).origin;
2457
+ await AirMessageService$1.openWalletObservables({ walletIframeOrigin });
2834
2458
  try {
2835
- const walletInitRequestPromise = new Promise((resolve, reject) => {
2836
- const handleWalletMessage = async (ev) => {
2459
+ __classPrivateFieldSet(this, _AirService_walletIframeController, new IframeController(walletUrl, `air-wallet-${randomId()}`), "f");
2460
+ __classPrivateFieldGet(this, _AirService_walletIframeController, "f").createIframe();
2461
+ __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_subscribeToWalletEvents).call(this);
2462
+ await new Promise((resolve, reject) => {
2463
+ const handleAuthMessage = async (ev) => {
2837
2464
  if (ev.origin !== walletIframeOrigin)
2838
2465
  return;
2839
- if (ev.data === AirWalletMessageTypes.SERVICE_STARTED) {
2840
- window.removeEventListener("message", handleWalletMessage);
2841
- const { payload } = await __classPrivateFieldGet(this, _AirService_walletMessagingService, "f").sendInitializationRequest({
2466
+ if (ev.data === AirMessageTypes.SERVICE_STARTED) {
2467
+ window.removeEventListener("message", handleAuthMessage);
2468
+ const { payload } = await AirMessageService$1.sendWalletInitializationRequest(__classPrivateFieldGet(this, _AirService_walletIframeController, "f").iframeElement, {
2842
2469
  partnerId: __classPrivateFieldGet(this, _AirService_partnerId, "f"),
2843
2470
  enableLogging: __classPrivateFieldGet(this, _AirService_enableLogging, "f"),
2844
- sdkVersion: airKitVersion,
2845
2471
  });
2846
2472
  if (payload.success === true) {
2847
2473
  resolve();
@@ -2851,18 +2477,11 @@ _AirService_loginResult = new WeakMap(), _AirService_buildEnv = new WeakMap(), _
2851
2477
  }
2852
2478
  }
2853
2479
  };
2854
- window.addEventListener("message", handleWalletMessage);
2480
+ window.addEventListener("message", handleAuthMessage);
2855
2481
  });
2856
- __classPrivateFieldSet(this, _AirService_walletIframeController, new IframeController(walletUrl, `air-wallet-${randomId()}`), "f");
2857
- __classPrivateFieldGet(this, _AirService_walletIframeController, "f").createIframe();
2858
- await __classPrivateFieldGet(this, _AirService_walletMessagingService, "f").open(__classPrivateFieldGet(this, _AirService_walletIframeController, "f").iframeElement);
2859
- __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_subscribeToWalletEvents).call(this);
2860
- await __classPrivateFieldGet(this, _AirService_airWalletProvider, "f").startEventMessageListening(__classPrivateFieldGet(this, _AirService_walletIframeController, "f").iframeElement);
2861
- const walletInitPromise = __classPrivateFieldGet(this, _AirService_walletMessagingService, "f").onInitialized();
2862
- 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);
2482
+ __classPrivateFieldGet(this, _AirService_airWalletProvider, "f").startEventMessageListening();
2483
+ const walletInitPromise = AirMessageService$1.onWalletInitialized();
2484
+ AirMessageService$1.setupIframeCommunication(__classPrivateFieldGet(this, _AirService_authIframeController, "f").iframeElement, __classPrivateFieldGet(this, _AirService_walletIframeController, "f").iframeElement, option?.skipWalletLogin ?? false);
2866
2485
  const walletInitResult = await walletInitPromise;
2867
2486
  if (walletInitResult.payload.success !== true) {
2868
2487
  throw new AirServiceError(walletInitResult.payload.errorName, walletInitResult.payload.errorMessage);
@@ -2879,43 +2498,37 @@ _AirService_loginResult = new WeakMap(), _AirService_buildEnv = new WeakMap(), _
2879
2498
  throw error;
2880
2499
  }
2881
2500
  }, _AirService_subscribeToWalletEvents = function _AirService_subscribeToWalletEvents() {
2882
- __classPrivateFieldGet(this, _AirService_walletMessagingService, "f").messages$.subscribe(async (msg) => {
2501
+ AirMessageService$1.messages$.subscribe(async (msg) => {
2883
2502
  switch (msg.type) {
2884
- case AirWalletMessageTypes.WALLET_IFRAME_VISIBILITY_REQUEST: {
2503
+ case AirMessageTypes.WALLET_IFRAME_VISIBILITY_REQUEST: {
2885
2504
  const walletIframeController = __classPrivateFieldGet(this, _AirService_walletIframeController, "f");
2886
2505
  walletIframeController.setIframeVisibility(msg.payload.visible);
2887
2506
  walletIframeController.updateIframeState();
2888
2507
  break;
2889
2508
  }
2890
- case AirWalletMessageTypes.WALLET_LOGIN_RESPONSE: {
2509
+ case AirMessageTypes.WALLET_LOGIN_RESPONSE: {
2891
2510
  if (msg.payload.success === true && !__classPrivateFieldGet(this, _AirService_walletLoggedInResult, "f")) {
2892
2511
  __classPrivateFieldSet(this, _AirService_walletLoggedInResult, __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_createWalletInitializedResult).call(this, msg.payload), "f");
2893
2512
  __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_triggerWalletInitialized).call(this, __classPrivateFieldGet(this, _AirService_walletLoggedInResult, "f"));
2894
2513
  }
2895
2514
  break;
2896
2515
  }
2897
- case AirWalletMessageTypes.OPEN_WINDOW_REQUEST: {
2516
+ case AirMessageTypes.OPEN_WINDOW_REQUEST: {
2898
2517
  try {
2899
- const onRetry = async () => {
2900
- const { payload } = await __classPrivateFieldGet(this, _AirService_walletMessagingService, "f").sendOpenWindowRetryRequest(msg.payload.windowId);
2901
- if (payload.success === false) {
2902
- throw new AirServiceError(payload.errorName, payload.errorMessage);
2903
- }
2904
- };
2905
- const { windowController, port } = await WindowService$1.openAndInitializeWalletServiceWindow({
2518
+ const channel = new MessageChannel();
2519
+ const windowController = await WindowService$1.openAndInitializeWalletServiceWindow({
2906
2520
  url: msg.payload.url,
2907
2521
  windowId: msg.payload.windowId,
2908
2522
  partnerId: __classPrivateFieldGet(this, _AirService_partnerId, "f"),
2909
2523
  enableLogging: __classPrivateFieldGet(this, _AirService_enableLogging, "f"),
2910
- sdkVersion: airKitVersion,
2911
- onRetry,
2524
+ port: channel.port1,
2912
2525
  });
2913
- windowController.onClose(async () => await __classPrivateFieldGet(this, _AirService_walletMessagingService, "f").sendWindowClosed(msg.payload.windowId));
2914
- await __classPrivateFieldGet(this, _AirService_walletMessagingService, "f").sendOpenWindowSuccessResponse(msg.payload.windowId, port);
2526
+ windowController.onClose(() => AirMessageService$1.sendWindowClosed(__classPrivateFieldGet(this, _AirService_walletIframeController, "f").iframeElement, msg.payload.windowId));
2527
+ AirMessageService$1.sendOpenWindowSuccessResponse(__classPrivateFieldGet(this, _AirService_walletIframeController, "f").iframeElement, msg.payload.windowId, channel.port2);
2915
2528
  }
2916
2529
  catch (err) {
2917
2530
  const error = ensureError(err);
2918
- await __classPrivateFieldGet(this, _AirService_walletMessagingService, "f").sendOpenWindowErrorResponse(msg.payload.windowId, error);
2531
+ AirMessageService$1.sendOpenWindowErrorResponse(__classPrivateFieldGet(this, _AirService_walletIframeController, "f").iframeElement, msg.payload.windowId, error);
2919
2532
  }
2920
2533
  break;
2921
2534
  }
@@ -2960,7 +2573,7 @@ _AirService_loginResult = new WeakMap(), _AirService_buildEnv = new WeakMap(), _
2960
2573
  };
2961
2574
  }, _AirService_cleanUpAuth = async function _AirService_cleanUpAuth() {
2962
2575
  // Logout auth session
2963
- await __classPrivateFieldGet(this, _AirService_authMessagingService, "f").logout();
2576
+ await AirMessageService$1.logoutAuth(__classPrivateFieldGet(this, _AirService_authIframeController, "f").iframeElement);
2964
2577
  // Destroy the auth iframe
2965
2578
  const authIframeElement = __classPrivateFieldGet(this, _AirService_authIframeController, "f")?.iframeElement;
2966
2579
  if (isElement(authIframeElement) && window.document.body.contains(authIframeElement)) {
@@ -2968,7 +2581,7 @@ _AirService_loginResult = new WeakMap(), _AirService_buildEnv = new WeakMap(), _
2968
2581
  __classPrivateFieldSet(this, _AirService_authIframeController, undefined, "f");
2969
2582
  }
2970
2583
  // Close the message service
2971
- await __classPrivateFieldGet(this, _AirService_authMessagingService, "f").close();
2584
+ AirMessageService$1.closeAuthObservables();
2972
2585
  __classPrivateFieldSet(this, _AirService_isAuthInitialized, false, "f");
2973
2586
  }, _AirService_cleanUpWallet = async function _AirService_cleanUpWallet() {
2974
2587
  if (!__classPrivateFieldGet(this, _AirService_isAuthInitialized, "f"))
@@ -2976,16 +2589,16 @@ _AirService_loginResult = new WeakMap(), _AirService_buildEnv = new WeakMap(), _
2976
2589
  // Logout wallet and destroy the wallet iframe
2977
2590
  const walletIframeElement = __classPrivateFieldGet(this, _AirService_walletIframeController, "f")?.iframeElement;
2978
2591
  if (isElement(walletIframeElement) && window.document.body.contains(walletIframeElement)) {
2979
- await __classPrivateFieldGet(this, _AirService_walletMessagingService, "f").logout();
2592
+ await AirMessageService$1.logoutWallet(walletIframeElement);
2980
2593
  __classPrivateFieldGet(this, _AirService_walletIframeController, "f").destroy();
2981
2594
  __classPrivateFieldSet(this, _AirService_walletIframeController, undefined, "f");
2982
2595
  }
2983
2596
  const authIframeElement = __classPrivateFieldGet(this, _AirService_authIframeController, "f")?.iframeElement;
2984
2597
  if (isElement(authIframeElement) && window.document.body.contains(authIframeElement)) {
2985
- await __classPrivateFieldGet(this, _AirService_authMessagingService, "f").resetWalletCommunication();
2598
+ AirMessageService$1.sendResetAuthServiceWalletCommunication(authIframeElement);
2986
2599
  }
2987
2600
  // Close the message service
2988
- await __classPrivateFieldGet(this, _AirService_walletMessagingService, "f").close();
2601
+ AirMessageService$1.closeAirObservables();
2989
2602
  __classPrivateFieldSet(this, _AirService_walletLoggedInResult, undefined, "f");
2990
2603
  __classPrivateFieldSet(this, _AirService_walletInitialization, undefined, "f");
2991
2604
  };
@@ -2999,9 +2612,7 @@ exports.InvalidParamsRpcError = InvalidParamsRpcError;
2999
2612
  exports.InvalidRequestRpcError = InvalidRequestRpcError;
3000
2613
  exports.MethodNotFoundRpcError = MethodNotFoundRpcError;
3001
2614
  exports.ProviderDisconnectedError = ProviderDisconnectedError;
3002
- exports.ProviderRpcError = ProviderRpcError;
3003
2615
  exports.SwitchChainError = SwitchChainError;
3004
- exports.TransactionRejectedRpcError = TransactionRejectedRpcError;
3005
2616
  exports.UnauthorizedProviderError = UnauthorizedProviderError;
3006
2617
  exports.UnsupportedProviderMethodError = UnsupportedProviderMethodError;
3007
2618
  exports.UserRejectedRequestError = UserRejectedRequestError;