@auth0/auth0-spa-js 2.1.2 → 2.2.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/README.md +6 -6
- package/dist/auth0-spa-js.development.js +117 -36
- package/dist/auth0-spa-js.development.js.map +1 -1
- package/dist/auth0-spa-js.production.esm.js +1 -1
- package/dist/auth0-spa-js.production.esm.js.map +1 -1
- package/dist/auth0-spa-js.production.js +1 -1
- package/dist/auth0-spa-js.production.js.map +1 -1
- package/dist/auth0-spa-js.worker.development.js +124 -0
- package/dist/auth0-spa-js.worker.development.js.map +1 -0
- package/dist/auth0-spa-js.worker.production.js +2 -0
- package/dist/auth0-spa-js.worker.production.js.map +1 -0
- package/dist/lib/auth0-spa-js.cjs.js +118 -36
- package/dist/lib/auth0-spa-js.cjs.js.map +1 -1
- package/dist/typings/Auth0Client.d.ts +41 -1
- package/dist/typings/TokenExchange.d.ts +70 -0
- package/dist/typings/cache/shared.d.ts +6 -6
- package/dist/typings/global.d.ts +13 -4
- package/dist/typings/scope.d.ts +6 -0
- package/dist/typings/storage.d.ts +1 -1
- package/dist/typings/version.d.ts +1 -1
- package/dist/typings/worker/worker.types.d.ts +1 -1
- package/package.json +6 -11
- package/src/Auth0Client.ts +80 -2
- package/src/TokenExchange.ts +74 -0
- package/src/global.ts +10 -0
- package/src/scope.ts +6 -0
- package/src/utils.ts +1 -1
- package/src/version.ts +1 -1
|
@@ -13,6 +13,11 @@ function __rest(s, e) {
|
|
|
13
13
|
return t;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
+
typeof SuppressedError === "function" ? SuppressedError : function(error, suppressed, message) {
|
|
17
|
+
var e = new Error(message);
|
|
18
|
+
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
19
|
+
};
|
|
20
|
+
|
|
16
21
|
var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
|
|
17
22
|
|
|
18
23
|
function unwrapExports(x) {
|
|
@@ -204,10 +209,63 @@ var browserTabsLock = createCommonjsModule((function(module, exports) {
|
|
|
204
209
|
};
|
|
205
210
|
}
|
|
206
211
|
};
|
|
212
|
+
var _this = commonjsGlobal;
|
|
207
213
|
Object.defineProperty(exports, "__esModule", {
|
|
208
214
|
value: true
|
|
209
215
|
});
|
|
210
216
|
var LOCK_STORAGE_KEY = "browser-tabs-lock-key";
|
|
217
|
+
var DEFAULT_STORAGE_HANDLER = {
|
|
218
|
+
key: function(index) {
|
|
219
|
+
return __awaiter(_this, void 0, void 0, (function() {
|
|
220
|
+
return __generator(this, (function(_a) {
|
|
221
|
+
throw new Error("Unsupported");
|
|
222
|
+
}));
|
|
223
|
+
}));
|
|
224
|
+
},
|
|
225
|
+
getItem: function(key) {
|
|
226
|
+
return __awaiter(_this, void 0, void 0, (function() {
|
|
227
|
+
return __generator(this, (function(_a) {
|
|
228
|
+
throw new Error("Unsupported");
|
|
229
|
+
}));
|
|
230
|
+
}));
|
|
231
|
+
},
|
|
232
|
+
clear: function() {
|
|
233
|
+
return __awaiter(_this, void 0, void 0, (function() {
|
|
234
|
+
return __generator(this, (function(_a) {
|
|
235
|
+
return [ 2, window.localStorage.clear() ];
|
|
236
|
+
}));
|
|
237
|
+
}));
|
|
238
|
+
},
|
|
239
|
+
removeItem: function(key) {
|
|
240
|
+
return __awaiter(_this, void 0, void 0, (function() {
|
|
241
|
+
return __generator(this, (function(_a) {
|
|
242
|
+
throw new Error("Unsupported");
|
|
243
|
+
}));
|
|
244
|
+
}));
|
|
245
|
+
},
|
|
246
|
+
setItem: function(key, value) {
|
|
247
|
+
return __awaiter(_this, void 0, void 0, (function() {
|
|
248
|
+
return __generator(this, (function(_a) {
|
|
249
|
+
throw new Error("Unsupported");
|
|
250
|
+
}));
|
|
251
|
+
}));
|
|
252
|
+
},
|
|
253
|
+
keySync: function(index) {
|
|
254
|
+
return window.localStorage.key(index);
|
|
255
|
+
},
|
|
256
|
+
getItemSync: function(key) {
|
|
257
|
+
return window.localStorage.getItem(key);
|
|
258
|
+
},
|
|
259
|
+
clearSync: function() {
|
|
260
|
+
return window.localStorage.clear();
|
|
261
|
+
},
|
|
262
|
+
removeItemSync: function(key) {
|
|
263
|
+
return window.localStorage.removeItem(key);
|
|
264
|
+
},
|
|
265
|
+
setItemSync: function(key, value) {
|
|
266
|
+
return window.localStorage.setItem(key, value);
|
|
267
|
+
}
|
|
268
|
+
};
|
|
211
269
|
function delay(milliseconds) {
|
|
212
270
|
return new Promise((function(resolve) {
|
|
213
271
|
return setTimeout(resolve, milliseconds);
|
|
@@ -226,14 +284,16 @@ var browserTabsLock = createCommonjsModule((function(module, exports) {
|
|
|
226
284
|
return Date.now().toString() + generateRandomString(15);
|
|
227
285
|
}
|
|
228
286
|
var SuperTokensLock = function() {
|
|
229
|
-
function SuperTokensLock() {
|
|
287
|
+
function SuperTokensLock(storageHandler) {
|
|
230
288
|
this.acquiredIatSet = new Set;
|
|
289
|
+
this.storageHandler = undefined;
|
|
231
290
|
this.id = getLockId();
|
|
232
291
|
this.acquireLock = this.acquireLock.bind(this);
|
|
233
292
|
this.releaseLock = this.releaseLock.bind(this);
|
|
234
293
|
this.releaseLock__private__ = this.releaseLock__private__.bind(this);
|
|
235
294
|
this.waitForSomethingToChange = this.waitForSomethingToChange.bind(this);
|
|
236
295
|
this.refreshLockWhileAcquired = this.refreshLockWhileAcquired.bind(this);
|
|
296
|
+
this.storageHandler = storageHandler;
|
|
237
297
|
if (SuperTokensLock.waiters === undefined) {
|
|
238
298
|
SuperTokensLock.waiters = [];
|
|
239
299
|
}
|
|
@@ -243,14 +303,14 @@ var browserTabsLock = createCommonjsModule((function(module, exports) {
|
|
|
243
303
|
timeout = 5e3;
|
|
244
304
|
}
|
|
245
305
|
return __awaiter(this, void 0, void 0, (function() {
|
|
246
|
-
var iat, MAX_TIME, STORAGE_KEY, STORAGE, lockObj, TIMEOUT_KEY, lockObjPostDelay;
|
|
306
|
+
var iat, MAX_TIME, STORAGE_KEY, STORAGE, lockObj, TIMEOUT_KEY, lockObjPostDelay, parsedLockObjPostDelay;
|
|
247
307
|
return __generator(this, (function(_a) {
|
|
248
308
|
switch (_a.label) {
|
|
249
309
|
case 0:
|
|
250
310
|
iat = Date.now() + generateRandomString(4);
|
|
251
311
|
MAX_TIME = Date.now() + timeout;
|
|
252
312
|
STORAGE_KEY = LOCK_STORAGE_KEY + "-" + lockKey;
|
|
253
|
-
STORAGE =
|
|
313
|
+
STORAGE = this.storageHandler === undefined ? DEFAULT_STORAGE_HANDLER : this.storageHandler;
|
|
254
314
|
_a.label = 1;
|
|
255
315
|
|
|
256
316
|
case 1:
|
|
@@ -259,14 +319,14 @@ var browserTabsLock = createCommonjsModule((function(module, exports) {
|
|
|
259
319
|
|
|
260
320
|
case 2:
|
|
261
321
|
_a.sent();
|
|
262
|
-
lockObj = STORAGE.
|
|
322
|
+
lockObj = STORAGE.getItemSync(STORAGE_KEY);
|
|
263
323
|
if (!(lockObj === null)) return [ 3, 5 ];
|
|
264
324
|
TIMEOUT_KEY = this.id + "-" + lockKey + "-" + iat;
|
|
265
325
|
return [ 4, delay(Math.floor(Math.random() * 25)) ];
|
|
266
326
|
|
|
267
327
|
case 3:
|
|
268
328
|
_a.sent();
|
|
269
|
-
STORAGE.
|
|
329
|
+
STORAGE.setItemSync(STORAGE_KEY, JSON.stringify({
|
|
270
330
|
id: this.id,
|
|
271
331
|
iat: iat,
|
|
272
332
|
timeoutKey: TIMEOUT_KEY,
|
|
@@ -277,10 +337,10 @@ var browserTabsLock = createCommonjsModule((function(module, exports) {
|
|
|
277
337
|
|
|
278
338
|
case 4:
|
|
279
339
|
_a.sent();
|
|
280
|
-
lockObjPostDelay = STORAGE.
|
|
340
|
+
lockObjPostDelay = STORAGE.getItemSync(STORAGE_KEY);
|
|
281
341
|
if (lockObjPostDelay !== null) {
|
|
282
|
-
|
|
283
|
-
if (
|
|
342
|
+
parsedLockObjPostDelay = JSON.parse(lockObjPostDelay);
|
|
343
|
+
if (parsedLockObjPostDelay.id === this.id && parsedLockObjPostDelay.iat === iat) {
|
|
284
344
|
this.acquiredIatSet.add(iat);
|
|
285
345
|
this.refreshLockWhileAcquired(STORAGE_KEY, iat);
|
|
286
346
|
return [ 2, true ];
|
|
@@ -289,7 +349,7 @@ var browserTabsLock = createCommonjsModule((function(module, exports) {
|
|
|
289
349
|
return [ 3, 7 ];
|
|
290
350
|
|
|
291
351
|
case 5:
|
|
292
|
-
SuperTokensLock.lockCorrector();
|
|
352
|
+
SuperTokensLock.lockCorrector(this.storageHandler === undefined ? DEFAULT_STORAGE_HANDLER : this.storageHandler);
|
|
293
353
|
return [ 4, this.waitForSomethingToChange(MAX_TIME) ];
|
|
294
354
|
|
|
295
355
|
case 6:
|
|
@@ -312,7 +372,7 @@ var browserTabsLock = createCommonjsModule((function(module, exports) {
|
|
|
312
372
|
return __generator(this, (function(_a) {
|
|
313
373
|
setTimeout((function() {
|
|
314
374
|
return __awaiter(_this, void 0, void 0, (function() {
|
|
315
|
-
var STORAGE, lockObj;
|
|
375
|
+
var STORAGE, lockObj, parsedLockObj;
|
|
316
376
|
return __generator(this, (function(_a) {
|
|
317
377
|
switch (_a.label) {
|
|
318
378
|
case 0:
|
|
@@ -324,12 +384,12 @@ var browserTabsLock = createCommonjsModule((function(module, exports) {
|
|
|
324
384
|
processLock.default().unlock(iat);
|
|
325
385
|
return [ 2 ];
|
|
326
386
|
}
|
|
327
|
-
STORAGE =
|
|
328
|
-
lockObj = STORAGE.
|
|
387
|
+
STORAGE = this.storageHandler === undefined ? DEFAULT_STORAGE_HANDLER : this.storageHandler;
|
|
388
|
+
lockObj = STORAGE.getItemSync(storageKey);
|
|
329
389
|
if (lockObj !== null) {
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
STORAGE.
|
|
390
|
+
parsedLockObj = JSON.parse(lockObj);
|
|
391
|
+
parsedLockObj.timeRefreshed = Date.now();
|
|
392
|
+
STORAGE.setItemSync(storageKey, JSON.stringify(parsedLockObj));
|
|
333
393
|
processLock.default().unlock(iat);
|
|
334
394
|
} else {
|
|
335
395
|
processLock.default().unlock(iat);
|
|
@@ -368,7 +428,7 @@ var browserTabsLock = createCommonjsModule((function(module, exports) {
|
|
|
368
428
|
if (timeToWait > 0) {
|
|
369
429
|
setTimeout(resolve, timeToWait);
|
|
370
430
|
} else {
|
|
371
|
-
resolve();
|
|
431
|
+
resolve(null);
|
|
372
432
|
}
|
|
373
433
|
}
|
|
374
434
|
}
|
|
@@ -423,25 +483,25 @@ var browserTabsLock = createCommonjsModule((function(module, exports) {
|
|
|
423
483
|
};
|
|
424
484
|
SuperTokensLock.prototype.releaseLock__private__ = function(lockKey) {
|
|
425
485
|
return __awaiter(this, void 0, void 0, (function() {
|
|
426
|
-
var STORAGE, STORAGE_KEY, lockObj;
|
|
486
|
+
var STORAGE, STORAGE_KEY, lockObj, parsedlockObj;
|
|
427
487
|
return __generator(this, (function(_a) {
|
|
428
488
|
switch (_a.label) {
|
|
429
489
|
case 0:
|
|
430
|
-
STORAGE =
|
|
490
|
+
STORAGE = this.storageHandler === undefined ? DEFAULT_STORAGE_HANDLER : this.storageHandler;
|
|
431
491
|
STORAGE_KEY = LOCK_STORAGE_KEY + "-" + lockKey;
|
|
432
|
-
lockObj = STORAGE.
|
|
492
|
+
lockObj = STORAGE.getItemSync(STORAGE_KEY);
|
|
433
493
|
if (lockObj === null) {
|
|
434
494
|
return [ 2 ];
|
|
435
495
|
}
|
|
436
|
-
|
|
437
|
-
if (!(
|
|
438
|
-
return [ 4, processLock.default().lock(
|
|
496
|
+
parsedlockObj = JSON.parse(lockObj);
|
|
497
|
+
if (!(parsedlockObj.id === this.id)) return [ 3, 2 ];
|
|
498
|
+
return [ 4, processLock.default().lock(parsedlockObj.iat) ];
|
|
439
499
|
|
|
440
500
|
case 1:
|
|
441
501
|
_a.sent();
|
|
442
|
-
this.acquiredIatSet.delete(
|
|
443
|
-
STORAGE.
|
|
444
|
-
processLock.default().unlock(
|
|
502
|
+
this.acquiredIatSet.delete(parsedlockObj.iat);
|
|
503
|
+
STORAGE.removeItemSync(STORAGE_KEY);
|
|
504
|
+
processLock.default().unlock(parsedlockObj.iat);
|
|
445
505
|
SuperTokensLock.notifyWaiters();
|
|
446
506
|
_a.label = 2;
|
|
447
507
|
|
|
@@ -451,19 +511,28 @@ var browserTabsLock = createCommonjsModule((function(module, exports) {
|
|
|
451
511
|
}));
|
|
452
512
|
}));
|
|
453
513
|
};
|
|
454
|
-
SuperTokensLock.lockCorrector = function() {
|
|
514
|
+
SuperTokensLock.lockCorrector = function(storageHandler) {
|
|
455
515
|
var MIN_ALLOWED_TIME = Date.now() - 5e3;
|
|
456
|
-
var STORAGE =
|
|
457
|
-
var KEYS =
|
|
516
|
+
var STORAGE = storageHandler;
|
|
517
|
+
var KEYS = [];
|
|
518
|
+
var currIndex = 0;
|
|
519
|
+
while (true) {
|
|
520
|
+
var key = STORAGE.keySync(currIndex);
|
|
521
|
+
if (key === null) {
|
|
522
|
+
break;
|
|
523
|
+
}
|
|
524
|
+
KEYS.push(key);
|
|
525
|
+
currIndex++;
|
|
526
|
+
}
|
|
458
527
|
var notifyWaiters = false;
|
|
459
528
|
for (var i = 0; i < KEYS.length; i++) {
|
|
460
529
|
var LOCK_KEY = KEYS[i];
|
|
461
530
|
if (LOCK_KEY.includes(LOCK_STORAGE_KEY)) {
|
|
462
|
-
var lockObj = STORAGE.
|
|
531
|
+
var lockObj = STORAGE.getItemSync(LOCK_KEY);
|
|
463
532
|
if (lockObj !== null) {
|
|
464
|
-
|
|
465
|
-
if (
|
|
466
|
-
STORAGE.
|
|
533
|
+
var parsedlockObj = JSON.parse(lockObj);
|
|
534
|
+
if (parsedlockObj.timeRefreshed === undefined && parsedlockObj.timeAcquired < MIN_ALLOWED_TIME || parsedlockObj.timeRefreshed !== undefined && parsedlockObj.timeRefreshed < MIN_ALLOWED_TIME) {
|
|
535
|
+
STORAGE.removeItemSync(LOCK_KEY);
|
|
467
536
|
notifyWaiters = true;
|
|
468
537
|
}
|
|
469
538
|
}
|
|
@@ -481,7 +550,7 @@ var browserTabsLock = createCommonjsModule((function(module, exports) {
|
|
|
481
550
|
|
|
482
551
|
var Lock = unwrapExports(browserTabsLock);
|
|
483
552
|
|
|
484
|
-
var version = "2.
|
|
553
|
+
var version = "2.2.0";
|
|
485
554
|
|
|
486
555
|
const DEFAULT_AUTHORIZE_TIMEOUT_IN_SECONDS = 60;
|
|
487
556
|
|
|
@@ -715,7 +784,7 @@ const validateCrypto = () => {
|
|
|
715
784
|
throw new Error("For security reasons, `window.crypto` is required to run `auth0-spa-js`.");
|
|
716
785
|
}
|
|
717
786
|
if (typeof getCrypto().subtle === "undefined") {
|
|
718
|
-
throw new Error(`\n auth0-spa-js must run on a secure origin. See https://github.com/auth0/auth0-spa-js/blob/
|
|
787
|
+
throw new Error(`\n auth0-spa-js must run on a secure origin. See https://github.com/auth0/auth0-spa-js/blob/main/FAQ.md#why-do-i-get-auth0-spa-js-must-run-on-a-secure-origin for more information.\n `);
|
|
719
788
|
}
|
|
720
789
|
};
|
|
721
790
|
|
|
@@ -1408,7 +1477,7 @@ function createBase64WorkerFactory(base64, sourcemapArg, enableUnicodeArg) {
|
|
|
1408
1477
|
};
|
|
1409
1478
|
}
|
|
1410
1479
|
|
|
1411
|
-
var WorkerFactory = createBase64WorkerFactory("
|
|
1480
|
+
var WorkerFactory = createBase64WorkerFactory("Lyogcm9sbHVwLXBsdWdpbi13ZWItd29ya2VyLWxvYWRlciAqLwooZnVuY3Rpb24oKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBjbGFzcyBHZW5lcmljRXJyb3IgZXh0ZW5kcyBFcnJvciB7CiAgICAgICAgY29uc3RydWN0b3IoZXJyb3IsIGVycm9yX2Rlc2NyaXB0aW9uKSB7CiAgICAgICAgICAgIHN1cGVyKGVycm9yX2Rlc2NyaXB0aW9uKTsKICAgICAgICAgICAgdGhpcy5lcnJvciA9IGVycm9yOwogICAgICAgICAgICB0aGlzLmVycm9yX2Rlc2NyaXB0aW9uID0gZXJyb3JfZGVzY3JpcHRpb247CiAgICAgICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBHZW5lcmljRXJyb3IucHJvdG90eXBlKTsKICAgICAgICB9CiAgICAgICAgc3RhdGljIGZyb21QYXlsb2FkKHtlcnJvcjogZXJyb3IsIGVycm9yX2Rlc2NyaXB0aW9uOiBlcnJvcl9kZXNjcmlwdGlvbn0pIHsKICAgICAgICAgICAgcmV0dXJuIG5ldyBHZW5lcmljRXJyb3IoZXJyb3IsIGVycm9yX2Rlc2NyaXB0aW9uKTsKICAgICAgICB9CiAgICB9CiAgICBjbGFzcyBNaXNzaW5nUmVmcmVzaFRva2VuRXJyb3IgZXh0ZW5kcyBHZW5lcmljRXJyb3IgewogICAgICAgIGNvbnN0cnVjdG9yKGF1ZGllbmNlLCBzY29wZSkgewogICAgICAgICAgICBzdXBlcigibWlzc2luZ19yZWZyZXNoX3Rva2VuIiwgYE1pc3NpbmcgUmVmcmVzaCBUb2tlbiAoYXVkaWVuY2U6ICcke3ZhbHVlT3JFbXB0eVN0cmluZyhhdWRpZW5jZSwgWyAiZGVmYXVsdCIgXSl9Jywgc2NvcGU6ICcke3ZhbHVlT3JFbXB0eVN0cmluZyhzY29wZSl9JylgKTsKICAgICAgICAgICAgdGhpcy5hdWRpZW5jZSA9IGF1ZGllbmNlOwogICAgICAgICAgICB0aGlzLnNjb3BlID0gc2NvcGU7CiAgICAgICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBNaXNzaW5nUmVmcmVzaFRva2VuRXJyb3IucHJvdG90eXBlKTsKICAgICAgICB9CiAgICB9CiAgICBmdW5jdGlvbiB2YWx1ZU9yRW1wdHlTdHJpbmcodmFsdWUsIGV4Y2x1ZGUgPSBbXSkgewogICAgICAgIHJldHVybiB2YWx1ZSAmJiAhZXhjbHVkZS5pbmNsdWRlcyh2YWx1ZSkgPyB2YWx1ZSA6ICIiOwogICAgfQogICAgZnVuY3Rpb24gX19yZXN0KHMsIGUpIHsKICAgICAgICB2YXIgdCA9IHt9OwogICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKSB0W3BdID0gc1twXTsKICAgICAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSAiZnVuY3Rpb24iKSBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSkgdFtwW2ldXSA9IHNbcFtpXV07CiAgICAgICAgfQogICAgICAgIHJldHVybiB0OwogICAgfQogICAgdHlwZW9mIFN1cHByZXNzZWRFcnJvciA9PT0gImZ1bmN0aW9uIiA/IFN1cHByZXNzZWRFcnJvciA6IGZ1bmN0aW9uKGVycm9yLCBzdXBwcmVzc2VkLCBtZXNzYWdlKSB7CiAgICAgICAgdmFyIGUgPSBuZXcgRXJyb3IobWVzc2FnZSk7CiAgICAgICAgcmV0dXJuIGUubmFtZSA9ICJTdXBwcmVzc2VkRXJyb3IiLCBlLmVycm9yID0gZXJyb3IsIGUuc3VwcHJlc3NlZCA9IHN1cHByZXNzZWQsIGU7CiAgICB9OwogICAgY29uc3Qgc3RyaXBVbmRlZmluZWQgPSBwYXJhbXMgPT4gT2JqZWN0LmtleXMocGFyYW1zKS5maWx0ZXIoKGsgPT4gdHlwZW9mIHBhcmFtc1trXSAhPT0gInVuZGVmaW5lZCIpKS5yZWR1Y2UoKChhY2MsIGtleSkgPT4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBhY2MpLCB7CiAgICAgICAgW2tleV06IHBhcmFtc1trZXldCiAgICB9KSksIHt9KTsKICAgIGNvbnN0IGNyZWF0ZVF1ZXJ5UGFyYW1zID0gX2EgPT4gewogICAgICAgIHZhciB7Y2xpZW50SWQ6IGNsaWVudF9pZH0gPSBfYSwgcGFyYW1zID0gX19yZXN0KF9hLCBbICJjbGllbnRJZCIgXSk7CiAgICAgICAgcmV0dXJuIG5ldyBVUkxTZWFyY2hQYXJhbXMoc3RyaXBVbmRlZmluZWQoT2JqZWN0LmFzc2lnbih7CiAgICAgICAgICAgIGNsaWVudF9pZDogY2xpZW50X2lkCiAgICAgICAgfSwgcGFyYW1zKSkpLnRvU3RyaW5nKCk7CiAgICB9OwogICAgbGV0IHJlZnJlc2hUb2tlbnMgPSB7fTsKICAgIGNvbnN0IGNhY2hlS2V5ID0gKGF1ZGllbmNlLCBzY29wZSkgPT4gYCR7YXVkaWVuY2V9fCR7c2NvcGV9YDsKICAgIGNvbnN0IGdldFJlZnJlc2hUb2tlbiA9IChhdWRpZW5jZSwgc2NvcGUpID0+IHJlZnJlc2hUb2tlbnNbY2FjaGVLZXkoYXVkaWVuY2UsIHNjb3BlKV07CiAgICBjb25zdCBzZXRSZWZyZXNoVG9rZW4gPSAocmVmcmVzaFRva2VuLCBhdWRpZW5jZSwgc2NvcGUpID0+IHJlZnJlc2hUb2tlbnNbY2FjaGVLZXkoYXVkaWVuY2UsIHNjb3BlKV0gPSByZWZyZXNoVG9rZW47CiAgICBjb25zdCBkZWxldGVSZWZyZXNoVG9rZW4gPSAoYXVkaWVuY2UsIHNjb3BlKSA9PiBkZWxldGUgcmVmcmVzaFRva2Vuc1tjYWNoZUtleShhdWRpZW5jZSwgc2NvcGUpXTsKICAgIGNvbnN0IHdhaXQgPSB0aW1lID0+IG5ldyBQcm9taXNlKChyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgdGltZSkpKTsKICAgIGNvbnN0IGZvcm1EYXRhVG9PYmplY3QgPSBmb3JtRGF0YSA9PiB7CiAgICAgICAgY29uc3QgcXVlcnlQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKGZvcm1EYXRhKTsKICAgICAgICBjb25zdCBwYXJzZWRRdWVyeSA9IHt9OwogICAgICAgIHF1ZXJ5UGFyYW1zLmZvckVhY2goKCh2YWwsIGtleSkgPT4gewogICAgICAgICAgICBwYXJzZWRRdWVyeVtrZXldID0gdmFsOwogICAgICAgIH0pKTsKICAgICAgICByZXR1cm4gcGFyc2VkUXVlcnk7CiAgICB9OwogICAgY29uc3QgbWVzc2FnZUhhbmRsZXIgPSBhc3luYyAoe2RhdGE6IHt0aW1lb3V0OiB0aW1lb3V0LCBhdXRoOiBhdXRoLCBmZXRjaFVybDogZmV0Y2hVcmwsIGZldGNoT3B0aW9uczogZmV0Y2hPcHRpb25zLCB1c2VGb3JtRGF0YTogdXNlRm9ybURhdGF9LCBwb3J0czogW3BvcnRdfSkgPT4gewogICAgICAgIGxldCBqc29uOwogICAgICAgIGNvbnN0IHthdWRpZW5jZTogYXVkaWVuY2UsIHNjb3BlOiBzY29wZX0gPSBhdXRoIHx8IHt9OwogICAgICAgIHRyeSB7CiAgICAgICAgICAgIGNvbnN0IGJvZHkgPSB1c2VGb3JtRGF0YSA/IGZvcm1EYXRhVG9PYmplY3QoZmV0Y2hPcHRpb25zLmJvZHkpIDogSlNPTi5wYXJzZShmZXRjaE9wdGlvbnMuYm9keSk7CiAgICAgICAgICAgIGlmICghYm9keS5yZWZyZXNoX3Rva2VuICYmIGJvZHkuZ3JhbnRfdHlwZSA9PT0gInJlZnJlc2hfdG9rZW4iKSB7CiAgICAgICAgICAgICAgICBjb25zdCByZWZyZXNoVG9rZW4gPSBnZXRSZWZyZXNoVG9rZW4oYXVkaWVuY2UsIHNjb3BlKTsKICAgICAgICAgICAgICAgIGlmICghcmVmcmVzaFRva2VuKSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZWZyZXNoVG9rZW5FcnJvcihhdWRpZW5jZSwgc2NvcGUpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZmV0Y2hPcHRpb25zLmJvZHkgPSB1c2VGb3JtRGF0YSA/IGNyZWF0ZVF1ZXJ5UGFyYW1zKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgYm9keSksIHsKICAgICAgICAgICAgICAgICAgICByZWZyZXNoX3Rva2VuOiByZWZyZXNoVG9rZW4KICAgICAgICAgICAgICAgIH0pKSA6IEpTT04uc3RyaW5naWZ5KE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgYm9keSksIHsKICAgICAgICAgICAgICAgICAgICByZWZyZXNoX3Rva2VuOiByZWZyZXNoVG9rZW4KICAgICAgICAgICAgICAgIH0pKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBsZXQgYWJvcnRDb250cm9sbGVyOwogICAgICAgICAgICBpZiAodHlwZW9mIEFib3J0Q29udHJvbGxlciA9PT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICAgICAgYWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcjsKICAgICAgICAgICAgICAgIGZldGNoT3B0aW9ucy5zaWduYWwgPSBhYm9ydENvbnRyb2xsZXIuc2lnbmFsOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGxldCByZXNwb25zZTsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gYXdhaXQgUHJvbWlzZS5yYWNlKFsgd2FpdCh0aW1lb3V0KSwgZmV0Y2goZmV0Y2hVcmwsIE9iamVjdC5hc3NpZ24oe30sIGZldGNoT3B0aW9ucykpIF0pOwogICAgICAgICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgICAgICAgICAgcG9ydC5wb3N0TWVzc2FnZSh7CiAgICAgICAgICAgICAgICAgICAgZXJyb3I6IGVycm9yLm1lc3NhZ2UKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICghcmVzcG9uc2UpIHsKICAgICAgICAgICAgICAgIGlmIChhYm9ydENvbnRyb2xsZXIpIGFib3J0Q29udHJvbGxlci5hYm9ydCgpOwogICAgICAgICAgICAgICAgcG9ydC5wb3N0TWVzc2FnZSh7CiAgICAgICAgICAgICAgICAgICAgZXJyb3I6ICJUaW1lb3V0IHdoZW4gZXhlY3V0aW5nICdmZXRjaCciCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBqc29uID0gYXdhaXQgcmVzcG9uc2UuanNvbigpOwogICAgICAgICAgICBpZiAoanNvbi5yZWZyZXNoX3Rva2VuKSB7CiAgICAgICAgICAgICAgICBzZXRSZWZyZXNoVG9rZW4oanNvbi5yZWZyZXNoX3Rva2VuLCBhdWRpZW5jZSwgc2NvcGUpOwogICAgICAgICAgICAgICAgZGVsZXRlIGpzb24ucmVmcmVzaF90b2tlbjsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGRlbGV0ZVJlZnJlc2hUb2tlbihhdWRpZW5jZSwgc2NvcGUpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHBvcnQucG9zdE1lc3NhZ2UoewogICAgICAgICAgICAgICAgb2s6IHJlc3BvbnNlLm9rLAogICAgICAgICAgICAgICAganNvbjoganNvbgogICAgICAgICAgICB9KTsKICAgICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgICAgICBwb3J0LnBvc3RNZXNzYWdlKHsKICAgICAgICAgICAgICAgIG9rOiBmYWxzZSwKICAgICAgICAgICAgICAgIGpzb246IHsKICAgICAgICAgICAgICAgICAgICBlcnJvcjogZXJyb3IuZXJyb3IsCiAgICAgICAgICAgICAgICAgICAgZXJyb3JfZGVzY3JpcHRpb246IGVycm9yLm1lc3NhZ2UKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgfTsKICAgIHsKICAgICAgICBhZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgbWVzc2FnZUhhbmRsZXIpOwogICAgfQp9KSgpOwoK", null, false);
|
|
1412
1481
|
|
|
1413
1482
|
const singlePromiseMap = {};
|
|
1414
1483
|
|
|
@@ -1554,7 +1623,11 @@ class Auth0Client {
|
|
|
1554
1623
|
this.domainUrl = getDomain(this.options.domain);
|
|
1555
1624
|
this.tokenIssuer = getTokenIssuer(this.options.issuer, this.domainUrl);
|
|
1556
1625
|
if (typeof window !== "undefined" && window.Worker && this.options.useRefreshTokens && cacheLocation === CACHE_LOCATION_MEMORY) {
|
|
1557
|
-
this.
|
|
1626
|
+
if (this.options.workerUrl) {
|
|
1627
|
+
this.worker = new Worker(this.options.workerUrl);
|
|
1628
|
+
} else {
|
|
1629
|
+
this.worker = new WorkerFactory;
|
|
1630
|
+
}
|
|
1558
1631
|
}
|
|
1559
1632
|
}
|
|
1560
1633
|
_url(path) {
|
|
@@ -1979,6 +2052,15 @@ class Auth0Client {
|
|
|
1979
2052
|
decodedToken: decodedToken
|
|
1980
2053
|
});
|
|
1981
2054
|
}
|
|
2055
|
+
async exchangeToken(options) {
|
|
2056
|
+
return this._requestToken({
|
|
2057
|
+
grant_type: "urn:ietf:params:oauth:grant-type:token-exchange",
|
|
2058
|
+
subject_token: options.subject_token,
|
|
2059
|
+
subject_token_type: options.subject_token_type,
|
|
2060
|
+
scope: getUniqueScopes(options.scope, this.scope),
|
|
2061
|
+
audience: this.options.authorizationParams.audience
|
|
2062
|
+
});
|
|
2063
|
+
}
|
|
1982
2064
|
}
|
|
1983
2065
|
|
|
1984
2066
|
class User {}
|