@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.
- package/dist/airkit.cjs.js +1296 -1685
- package/dist/airkit.esm.js +1297 -1684
- package/dist/airkit.umd.js +1296 -1685
- package/dist/types/airService.d.ts +1 -3
- package/dist/types/airWalletProvider.d.ts +4 -2
- package/dist/types/common/air/error/codes.d.ts +1 -16
- package/dist/types/common/{air → realm}/messaging/auth.d.ts +43 -34
- package/dist/types/common/{air → realm}/messaging/provider.d.ts +1 -1
- package/dist/types/common/realm/messaging/types.d.ts +144 -0
- package/dist/types/common/types.d.ts +0 -1
- package/dist/types/common/utils.d.ts +0 -6
- package/dist/types/error.d.ts +1 -7
- package/dist/types/interfaces.d.ts +2 -0
- package/dist/types/loglevel.d.ts +3 -0
- package/dist/types/messageService.d.ts +67 -0
- package/dist/types/utils.d.ts +2 -2
- package/dist/types/{common/window/windowController.d.ts → windowController.d.ts} +3 -8
- package/dist/types/windowService.d.ts +3 -7
- package/package.json +1 -2
- package/dist/types/authMessageService.d.ts +0 -17
- package/dist/types/common/air/messaging/messageServiceBase.d.ts +0 -34
- package/dist/types/common/air/messaging/types.d.ts +0 -16
- package/dist/types/common/air/messaging/wallet.d.ts +0 -140
- package/dist/types/common/logging.d.ts +0 -3
- package/dist/types/providerMessageService.d.ts +0 -8
- package/dist/types/walletMessageService.d.ts +0 -35
package/dist/airkit.cjs.js
CHANGED
|
@@ -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
|
-
|
|
124
|
-
|
|
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
|
|
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
|
-
|
|
139
|
-
|
|
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
|
|
379
|
-
|
|
318
|
+
function isFunction(value) {
|
|
319
|
+
return typeof value === 'function';
|
|
380
320
|
}
|
|
381
321
|
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
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
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
})(
|
|
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
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
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
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
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
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
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
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
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
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
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
|
-
|
|
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
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
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
|
|
1154
|
-
}();
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
return (
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
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
|
-
|
|
1163
|
-
|
|
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
|
|
1167
|
-
|
|
1045
|
+
function getDefaultExportFromCjs (x) {
|
|
1046
|
+
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
|
|
1168
1047
|
}
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
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
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
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
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
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
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
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
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
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
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
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
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
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
|
-
|
|
1282
|
-
}
|
|
1283
|
-
|
|
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
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
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
|
-
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
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
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
|
|
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
|
-
|
|
1410
|
-
|
|
1411
|
-
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
{
|
|
1419
|
-
|
|
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
|
-
|
|
1335
|
+
/*
|
|
1336
|
+
*
|
|
1337
|
+
* Top-level API
|
|
1338
|
+
*
|
|
1339
|
+
*/
|
|
1571
1340
|
|
|
1572
|
-
|
|
1573
|
-
|
|
1574
|
-
|
|
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
|
-
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
|
|
1580
|
-
|
|
1581
|
-
|
|
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
|
-
|
|
1614
|
-
|
|
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
|
-
|
|
1623
|
-
|
|
1624
|
-
|
|
1625
|
-
|
|
1626
|
-
|
|
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
|
-
|
|
1685
|
-
|
|
1686
|
-
|
|
1687
|
-
|
|
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
|
|
1690
|
-
|
|
1691
|
-
|
|
1692
|
-
|
|
1693
|
-
|
|
1694
|
-
|
|
1695
|
-
|
|
1696
|
-
|
|
1697
|
-
|
|
1698
|
-
|
|
1699
|
-
|
|
1700
|
-
}
|
|
1701
|
-
|
|
1702
|
-
|
|
1703
|
-
|
|
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
|
-
|
|
1711
|
-
|
|
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,
|
|
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 =
|
|
1722
|
-
|
|
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,
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
1893
|
-
|
|
1894
|
-
|
|
1895
|
-
|
|
1896
|
-
|
|
1897
|
-
|
|
1898
|
-
|
|
1899
|
-
|
|
1900
|
-
|
|
1901
|
-
|
|
1902
|
-
|
|
1903
|
-
|
|
1904
|
-
return;
|
|
1905
|
-
|
|
1906
|
-
|
|
1907
|
-
|
|
1908
|
-
|
|
1909
|
-
|
|
1910
|
-
|
|
1911
|
-
|
|
1912
|
-
|
|
1913
|
-
|
|
1914
|
-
|
|
1915
|
-
|
|
1916
|
-
|
|
1917
|
-
|
|
1918
|
-
|
|
1919
|
-
|
|
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
|
-
|
|
1940
|
-
}
|
|
1941
|
-
|
|
1942
|
-
|
|
1943
|
-
|
|
1944
|
-
|
|
1945
|
-
|
|
1946
|
-
|
|
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
|
-
|
|
1975
|
-
|
|
1979
|
+
postMessage(message, transfer) {
|
|
1980
|
+
if (!this._windowInstance)
|
|
1981
|
+
return;
|
|
1982
|
+
this._windowInstance.postMessage(message, this.windowOrigin, transfer);
|
|
1976
1983
|
}
|
|
1977
|
-
|
|
1978
|
-
|
|
1979
|
-
|
|
1980
|
-
|
|
1981
|
-
|
|
1982
|
-
|
|
1983
|
-
|
|
1984
|
-
|
|
1985
|
-
|
|
1986
|
-
|
|
1987
|
-
|
|
1988
|
-
|
|
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
|
-
|
|
1992
|
-
|
|
1993
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
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(
|
|
2033
|
-
|
|
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
|
-
|
|
2038
|
-
|
|
2039
|
-
|
|
2040
|
-
|
|
2041
|
-
|
|
2042
|
-
|
|
2043
|
-
|
|
2044
|
-
|
|
2045
|
-
|
|
2046
|
-
|
|
2047
|
-
|
|
2048
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
2517
|
-
|
|
2518
|
-
|
|
2519
|
-
|
|
2520
|
-
|
|
2521
|
-
|
|
2522
|
-
|
|
2523
|
-
|
|
2524
|
-
|
|
2525
|
-
|
|
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
|
-
|
|
2528
|
-
|
|
2529
|
-
|
|
2530
|
-
|
|
2531
|
-
|
|
2532
|
-
|
|
2533
|
-
|
|
2534
|
-
|
|
2535
|
-
|
|
2536
|
-
|
|
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,
|
|
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
|
|
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(
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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(),
|
|
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,
|
|
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
|
-
|
|
2836
|
-
|
|
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 ===
|
|
2840
|
-
window.removeEventListener("message",
|
|
2841
|
-
const { payload } = await __classPrivateFieldGet(this,
|
|
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",
|
|
2480
|
+
window.addEventListener("message", handleAuthMessage);
|
|
2855
2481
|
});
|
|
2856
|
-
|
|
2857
|
-
|
|
2858
|
-
|
|
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
|
-
|
|
2501
|
+
AirMessageService$1.messages$.subscribe(async (msg) => {
|
|
2883
2502
|
switch (msg.type) {
|
|
2884
|
-
case
|
|
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
|
|
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
|
|
2516
|
+
case AirMessageTypes.OPEN_WINDOW_REQUEST: {
|
|
2898
2517
|
try {
|
|
2899
|
-
const
|
|
2900
|
-
|
|
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
|
-
|
|
2911
|
-
onRetry,
|
|
2524
|
+
port: channel.port1,
|
|
2912
2525
|
});
|
|
2913
|
-
windowController.onClose(
|
|
2914
|
-
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
2598
|
+
AirMessageService$1.sendResetAuthServiceWalletCommunication(authIframeElement);
|
|
2986
2599
|
}
|
|
2987
2600
|
// Close the message service
|
|
2988
|
-
|
|
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;
|