@auth0/auth0-spa-js 2.1.1 → 2.1.3
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 +5 -6
- package/dist/auth0-spa-js.development.js +109 -37
- 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 +110 -37
- package/dist/lib/auth0-spa-js.cjs.js.map +1 -1
- package/dist/typings/cache/shared.d.ts +6 -6
- package/dist/typings/global.d.ts +13 -4
- 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 +6 -2
- package/src/global.ts +10 -0
- package/src/utils.ts +1 -1
- package/src/version.ts +1 -1
package/README.md
CHANGED
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
|
|
13
13
|
- [Quickstart](https://auth0.com/docs/quickstart/spa/vanillajs/interactive) - our interactive guide for quickly adding login, logout and user information to your app using Auth0.
|
|
14
14
|
- [Sample app](https://github.com/auth0-samples/auth0-javascript-samples/tree/master/01-Login) - a full-fledged sample app integrated with Auth0.
|
|
15
|
-
- [FAQs](https://github.com/auth0/auth0-spa-js/blob/
|
|
16
|
-
- [Examples](https://github.com/auth0/auth0-spa-js/blob/
|
|
15
|
+
- [FAQs](https://github.com/auth0/auth0-spa-js/blob/main/FAQ.md) - frequently asked questions about auth0-spa-js SDK.
|
|
16
|
+
- [Examples](https://github.com/auth0/auth0-spa-js/blob/main/EXAMPLES.md) - code samples for common scenarios.
|
|
17
17
|
- [Docs Site](https://auth0.com/docs) - explore our Docs site and learn more about Auth0.
|
|
18
18
|
|
|
19
19
|
## Getting Started
|
|
@@ -39,7 +39,6 @@ Create a **Single Page Application** in the [Auth0 Dashboard](https://manage.aut
|
|
|
39
39
|
> **If you're using an existing application**, verify that you have configured the following settings in your Single Page Application:
|
|
40
40
|
>
|
|
41
41
|
> - Click on the "Settings" tab of your application's page.
|
|
42
|
-
> - Ensure that "Token Endpoint Authentication Method" under "Application Properties" is set to "None"
|
|
43
42
|
> - Scroll down and click on the "Show Advanced Settings" link.
|
|
44
43
|
> - Under "Advanced Settings", click on the "OAuth" tab.
|
|
45
44
|
> - Ensure that "JsonWebToken Signature Algorithm" is set to `RS256` and that "OIDC Conformant" is enabled.
|
|
@@ -114,7 +113,7 @@ window.addEventListener('load', async () => {
|
|
|
114
113
|
});
|
|
115
114
|
```
|
|
116
115
|
|
|
117
|
-
For other comprehensive examples, see the [EXAMPLES.md](https://github.com/auth0/auth0-spa-js/blob/
|
|
116
|
+
For other comprehensive examples, see the [EXAMPLES.md](https://github.com/auth0/auth0-spa-js/blob/main/EXAMPLES.md) document.
|
|
118
117
|
|
|
119
118
|
## API Reference
|
|
120
119
|
|
|
@@ -133,7 +132,7 @@ We appreciate feedback and contribution to this repo! Before you get started, pl
|
|
|
133
132
|
|
|
134
133
|
- [Auth0's general contribution guidelines](https://github.com/auth0/open-source-template/blob/master/GENERAL-CONTRIBUTING.md)
|
|
135
134
|
- [Auth0's code of conduct guidelines](https://github.com/auth0/open-source-template/blob/master/CODE-OF-CONDUCT.md)
|
|
136
|
-
- [This repo's contribution guide](https://github.com/auth0/auth0-spa-js/blob/
|
|
135
|
+
- [This repo's contribution guide](https://github.com/auth0/auth0-spa-js/blob/main/CONTRIBUTING.md)
|
|
137
136
|
|
|
138
137
|
### Raise an issue
|
|
139
138
|
|
|
@@ -156,5 +155,5 @@ Please do not report security vulnerabilities on the public GitHub issue tracker
|
|
|
156
155
|
Auth0 is an easy to implement, adaptable authentication and authorization platform. To learn more checkout <a href="https://auth0.com/why-auth0">Why Auth0?</a>
|
|
157
156
|
</p>
|
|
158
157
|
<p align="center">
|
|
159
|
-
This project is licensed under the MIT license. See the <a href="https://github.com/auth0/auth0-spa-js/blob/
|
|
158
|
+
This project is licensed under the MIT license. See the <a href="https://github.com/auth0/auth0-spa-js/blob/main/LICENSE"> LICENSE</a> file for more info.
|
|
160
159
|
</p>
|
|
@@ -11,6 +11,10 @@
|
|
|
11
11
|
}
|
|
12
12
|
return t;
|
|
13
13
|
}
|
|
14
|
+
typeof SuppressedError === "function" ? SuppressedError : function(error, suppressed, message) {
|
|
15
|
+
var e = new Error(message);
|
|
16
|
+
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
17
|
+
};
|
|
14
18
|
var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
|
|
15
19
|
function unwrapExports(x) {
|
|
16
20
|
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
|
|
@@ -197,10 +201,63 @@
|
|
|
197
201
|
};
|
|
198
202
|
}
|
|
199
203
|
};
|
|
204
|
+
var _this = commonjsGlobal;
|
|
200
205
|
Object.defineProperty(exports, "__esModule", {
|
|
201
206
|
value: true
|
|
202
207
|
});
|
|
203
208
|
var LOCK_STORAGE_KEY = "browser-tabs-lock-key";
|
|
209
|
+
var DEFAULT_STORAGE_HANDLER = {
|
|
210
|
+
key: function(index) {
|
|
211
|
+
return __awaiter(_this, void 0, void 0, (function() {
|
|
212
|
+
return __generator(this, (function(_a) {
|
|
213
|
+
throw new Error("Unsupported");
|
|
214
|
+
}));
|
|
215
|
+
}));
|
|
216
|
+
},
|
|
217
|
+
getItem: function(key) {
|
|
218
|
+
return __awaiter(_this, void 0, void 0, (function() {
|
|
219
|
+
return __generator(this, (function(_a) {
|
|
220
|
+
throw new Error("Unsupported");
|
|
221
|
+
}));
|
|
222
|
+
}));
|
|
223
|
+
},
|
|
224
|
+
clear: function() {
|
|
225
|
+
return __awaiter(_this, void 0, void 0, (function() {
|
|
226
|
+
return __generator(this, (function(_a) {
|
|
227
|
+
return [ 2, window.localStorage.clear() ];
|
|
228
|
+
}));
|
|
229
|
+
}));
|
|
230
|
+
},
|
|
231
|
+
removeItem: function(key) {
|
|
232
|
+
return __awaiter(_this, void 0, void 0, (function() {
|
|
233
|
+
return __generator(this, (function(_a) {
|
|
234
|
+
throw new Error("Unsupported");
|
|
235
|
+
}));
|
|
236
|
+
}));
|
|
237
|
+
},
|
|
238
|
+
setItem: function(key, value) {
|
|
239
|
+
return __awaiter(_this, void 0, void 0, (function() {
|
|
240
|
+
return __generator(this, (function(_a) {
|
|
241
|
+
throw new Error("Unsupported");
|
|
242
|
+
}));
|
|
243
|
+
}));
|
|
244
|
+
},
|
|
245
|
+
keySync: function(index) {
|
|
246
|
+
return window.localStorage.key(index);
|
|
247
|
+
},
|
|
248
|
+
getItemSync: function(key) {
|
|
249
|
+
return window.localStorage.getItem(key);
|
|
250
|
+
},
|
|
251
|
+
clearSync: function() {
|
|
252
|
+
return window.localStorage.clear();
|
|
253
|
+
},
|
|
254
|
+
removeItemSync: function(key) {
|
|
255
|
+
return window.localStorage.removeItem(key);
|
|
256
|
+
},
|
|
257
|
+
setItemSync: function(key, value) {
|
|
258
|
+
return window.localStorage.setItem(key, value);
|
|
259
|
+
}
|
|
260
|
+
};
|
|
204
261
|
function delay(milliseconds) {
|
|
205
262
|
return new Promise((function(resolve) {
|
|
206
263
|
return setTimeout(resolve, milliseconds);
|
|
@@ -219,14 +276,16 @@
|
|
|
219
276
|
return Date.now().toString() + generateRandomString(15);
|
|
220
277
|
}
|
|
221
278
|
var SuperTokensLock = function() {
|
|
222
|
-
function SuperTokensLock() {
|
|
279
|
+
function SuperTokensLock(storageHandler) {
|
|
223
280
|
this.acquiredIatSet = new Set;
|
|
281
|
+
this.storageHandler = undefined;
|
|
224
282
|
this.id = getLockId();
|
|
225
283
|
this.acquireLock = this.acquireLock.bind(this);
|
|
226
284
|
this.releaseLock = this.releaseLock.bind(this);
|
|
227
285
|
this.releaseLock__private__ = this.releaseLock__private__.bind(this);
|
|
228
286
|
this.waitForSomethingToChange = this.waitForSomethingToChange.bind(this);
|
|
229
287
|
this.refreshLockWhileAcquired = this.refreshLockWhileAcquired.bind(this);
|
|
288
|
+
this.storageHandler = storageHandler;
|
|
230
289
|
if (SuperTokensLock.waiters === undefined) {
|
|
231
290
|
SuperTokensLock.waiters = [];
|
|
232
291
|
}
|
|
@@ -236,14 +295,14 @@
|
|
|
236
295
|
timeout = 5e3;
|
|
237
296
|
}
|
|
238
297
|
return __awaiter(this, void 0, void 0, (function() {
|
|
239
|
-
var iat, MAX_TIME, STORAGE_KEY, STORAGE, lockObj, TIMEOUT_KEY, lockObjPostDelay;
|
|
298
|
+
var iat, MAX_TIME, STORAGE_KEY, STORAGE, lockObj, TIMEOUT_KEY, lockObjPostDelay, parsedLockObjPostDelay;
|
|
240
299
|
return __generator(this, (function(_a) {
|
|
241
300
|
switch (_a.label) {
|
|
242
301
|
case 0:
|
|
243
302
|
iat = Date.now() + generateRandomString(4);
|
|
244
303
|
MAX_TIME = Date.now() + timeout;
|
|
245
304
|
STORAGE_KEY = LOCK_STORAGE_KEY + "-" + lockKey;
|
|
246
|
-
STORAGE =
|
|
305
|
+
STORAGE = this.storageHandler === undefined ? DEFAULT_STORAGE_HANDLER : this.storageHandler;
|
|
247
306
|
_a.label = 1;
|
|
248
307
|
|
|
249
308
|
case 1:
|
|
@@ -252,14 +311,14 @@
|
|
|
252
311
|
|
|
253
312
|
case 2:
|
|
254
313
|
_a.sent();
|
|
255
|
-
lockObj = STORAGE.
|
|
314
|
+
lockObj = STORAGE.getItemSync(STORAGE_KEY);
|
|
256
315
|
if (!(lockObj === null)) return [ 3, 5 ];
|
|
257
316
|
TIMEOUT_KEY = this.id + "-" + lockKey + "-" + iat;
|
|
258
317
|
return [ 4, delay(Math.floor(Math.random() * 25)) ];
|
|
259
318
|
|
|
260
319
|
case 3:
|
|
261
320
|
_a.sent();
|
|
262
|
-
STORAGE.
|
|
321
|
+
STORAGE.setItemSync(STORAGE_KEY, JSON.stringify({
|
|
263
322
|
id: this.id,
|
|
264
323
|
iat: iat,
|
|
265
324
|
timeoutKey: TIMEOUT_KEY,
|
|
@@ -270,10 +329,10 @@
|
|
|
270
329
|
|
|
271
330
|
case 4:
|
|
272
331
|
_a.sent();
|
|
273
|
-
lockObjPostDelay = STORAGE.
|
|
332
|
+
lockObjPostDelay = STORAGE.getItemSync(STORAGE_KEY);
|
|
274
333
|
if (lockObjPostDelay !== null) {
|
|
275
|
-
|
|
276
|
-
if (
|
|
334
|
+
parsedLockObjPostDelay = JSON.parse(lockObjPostDelay);
|
|
335
|
+
if (parsedLockObjPostDelay.id === this.id && parsedLockObjPostDelay.iat === iat) {
|
|
277
336
|
this.acquiredIatSet.add(iat);
|
|
278
337
|
this.refreshLockWhileAcquired(STORAGE_KEY, iat);
|
|
279
338
|
return [ 2, true ];
|
|
@@ -282,7 +341,7 @@
|
|
|
282
341
|
return [ 3, 7 ];
|
|
283
342
|
|
|
284
343
|
case 5:
|
|
285
|
-
SuperTokensLock.lockCorrector();
|
|
344
|
+
SuperTokensLock.lockCorrector(this.storageHandler === undefined ? DEFAULT_STORAGE_HANDLER : this.storageHandler);
|
|
286
345
|
return [ 4, this.waitForSomethingToChange(MAX_TIME) ];
|
|
287
346
|
|
|
288
347
|
case 6:
|
|
@@ -305,7 +364,7 @@
|
|
|
305
364
|
return __generator(this, (function(_a) {
|
|
306
365
|
setTimeout((function() {
|
|
307
366
|
return __awaiter(_this, void 0, void 0, (function() {
|
|
308
|
-
var STORAGE, lockObj;
|
|
367
|
+
var STORAGE, lockObj, parsedLockObj;
|
|
309
368
|
return __generator(this, (function(_a) {
|
|
310
369
|
switch (_a.label) {
|
|
311
370
|
case 0:
|
|
@@ -317,12 +376,12 @@
|
|
|
317
376
|
processLock.default().unlock(iat);
|
|
318
377
|
return [ 2 ];
|
|
319
378
|
}
|
|
320
|
-
STORAGE =
|
|
321
|
-
lockObj = STORAGE.
|
|
379
|
+
STORAGE = this.storageHandler === undefined ? DEFAULT_STORAGE_HANDLER : this.storageHandler;
|
|
380
|
+
lockObj = STORAGE.getItemSync(storageKey);
|
|
322
381
|
if (lockObj !== null) {
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
STORAGE.
|
|
382
|
+
parsedLockObj = JSON.parse(lockObj);
|
|
383
|
+
parsedLockObj.timeRefreshed = Date.now();
|
|
384
|
+
STORAGE.setItemSync(storageKey, JSON.stringify(parsedLockObj));
|
|
326
385
|
processLock.default().unlock(iat);
|
|
327
386
|
} else {
|
|
328
387
|
processLock.default().unlock(iat);
|
|
@@ -361,7 +420,7 @@
|
|
|
361
420
|
if (timeToWait > 0) {
|
|
362
421
|
setTimeout(resolve, timeToWait);
|
|
363
422
|
} else {
|
|
364
|
-
resolve();
|
|
423
|
+
resolve(null);
|
|
365
424
|
}
|
|
366
425
|
}
|
|
367
426
|
}
|
|
@@ -416,25 +475,25 @@
|
|
|
416
475
|
};
|
|
417
476
|
SuperTokensLock.prototype.releaseLock__private__ = function(lockKey) {
|
|
418
477
|
return __awaiter(this, void 0, void 0, (function() {
|
|
419
|
-
var STORAGE, STORAGE_KEY, lockObj;
|
|
478
|
+
var STORAGE, STORAGE_KEY, lockObj, parsedlockObj;
|
|
420
479
|
return __generator(this, (function(_a) {
|
|
421
480
|
switch (_a.label) {
|
|
422
481
|
case 0:
|
|
423
|
-
STORAGE =
|
|
482
|
+
STORAGE = this.storageHandler === undefined ? DEFAULT_STORAGE_HANDLER : this.storageHandler;
|
|
424
483
|
STORAGE_KEY = LOCK_STORAGE_KEY + "-" + lockKey;
|
|
425
|
-
lockObj = STORAGE.
|
|
484
|
+
lockObj = STORAGE.getItemSync(STORAGE_KEY);
|
|
426
485
|
if (lockObj === null) {
|
|
427
486
|
return [ 2 ];
|
|
428
487
|
}
|
|
429
|
-
|
|
430
|
-
if (!(
|
|
431
|
-
return [ 4, processLock.default().lock(
|
|
488
|
+
parsedlockObj = JSON.parse(lockObj);
|
|
489
|
+
if (!(parsedlockObj.id === this.id)) return [ 3, 2 ];
|
|
490
|
+
return [ 4, processLock.default().lock(parsedlockObj.iat) ];
|
|
432
491
|
|
|
433
492
|
case 1:
|
|
434
493
|
_a.sent();
|
|
435
|
-
this.acquiredIatSet.delete(
|
|
436
|
-
STORAGE.
|
|
437
|
-
processLock.default().unlock(
|
|
494
|
+
this.acquiredIatSet.delete(parsedlockObj.iat);
|
|
495
|
+
STORAGE.removeItemSync(STORAGE_KEY);
|
|
496
|
+
processLock.default().unlock(parsedlockObj.iat);
|
|
438
497
|
SuperTokensLock.notifyWaiters();
|
|
439
498
|
_a.label = 2;
|
|
440
499
|
|
|
@@ -444,19 +503,28 @@
|
|
|
444
503
|
}));
|
|
445
504
|
}));
|
|
446
505
|
};
|
|
447
|
-
SuperTokensLock.lockCorrector = function() {
|
|
506
|
+
SuperTokensLock.lockCorrector = function(storageHandler) {
|
|
448
507
|
var MIN_ALLOWED_TIME = Date.now() - 5e3;
|
|
449
|
-
var STORAGE =
|
|
450
|
-
var KEYS =
|
|
508
|
+
var STORAGE = storageHandler;
|
|
509
|
+
var KEYS = [];
|
|
510
|
+
var currIndex = 0;
|
|
511
|
+
while (true) {
|
|
512
|
+
var key = STORAGE.keySync(currIndex);
|
|
513
|
+
if (key === null) {
|
|
514
|
+
break;
|
|
515
|
+
}
|
|
516
|
+
KEYS.push(key);
|
|
517
|
+
currIndex++;
|
|
518
|
+
}
|
|
451
519
|
var notifyWaiters = false;
|
|
452
520
|
for (var i = 0; i < KEYS.length; i++) {
|
|
453
521
|
var LOCK_KEY = KEYS[i];
|
|
454
522
|
if (LOCK_KEY.includes(LOCK_STORAGE_KEY)) {
|
|
455
|
-
var lockObj = STORAGE.
|
|
523
|
+
var lockObj = STORAGE.getItemSync(LOCK_KEY);
|
|
456
524
|
if (lockObj !== null) {
|
|
457
|
-
|
|
458
|
-
if (
|
|
459
|
-
STORAGE.
|
|
525
|
+
var parsedlockObj = JSON.parse(lockObj);
|
|
526
|
+
if (parsedlockObj.timeRefreshed === undefined && parsedlockObj.timeAcquired < MIN_ALLOWED_TIME || parsedlockObj.timeRefreshed !== undefined && parsedlockObj.timeRefreshed < MIN_ALLOWED_TIME) {
|
|
527
|
+
STORAGE.removeItemSync(LOCK_KEY);
|
|
460
528
|
notifyWaiters = true;
|
|
461
529
|
}
|
|
462
530
|
}
|
|
@@ -472,7 +540,7 @@
|
|
|
472
540
|
exports.default = SuperTokensLock;
|
|
473
541
|
}));
|
|
474
542
|
var Lock = unwrapExports(browserTabsLock);
|
|
475
|
-
var version = "2.1.
|
|
543
|
+
var version = "2.1.3";
|
|
476
544
|
const DEFAULT_AUTHORIZE_TIMEOUT_IN_SECONDS = 60;
|
|
477
545
|
const DEFAULT_POPUP_CONFIG_OPTIONS = {
|
|
478
546
|
timeoutInSeconds: DEFAULT_AUTHORIZE_TIMEOUT_IN_SECONDS
|
|
@@ -671,7 +739,7 @@
|
|
|
671
739
|
throw new Error("For security reasons, `window.crypto` is required to run `auth0-spa-js`.");
|
|
672
740
|
}
|
|
673
741
|
if (typeof getCrypto().subtle === "undefined") {
|
|
674
|
-
throw new Error(`\n auth0-spa-js must run on a secure origin. See https://github.com/auth0/auth0-spa-js/blob/
|
|
742
|
+
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 `);
|
|
675
743
|
}
|
|
676
744
|
};
|
|
677
745
|
const getDomain = domainUrl => {
|
|
@@ -1322,7 +1390,7 @@
|
|
|
1322
1390
|
return new Worker(url, options);
|
|
1323
1391
|
};
|
|
1324
1392
|
}
|
|
1325
|
-
var WorkerFactory = createBase64WorkerFactory("
|
|
1393
|
+
var WorkerFactory = createBase64WorkerFactory("Lyogcm9sbHVwLXBsdWdpbi13ZWItd29ya2VyLWxvYWRlciAqLwooZnVuY3Rpb24oKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBjbGFzcyBHZW5lcmljRXJyb3IgZXh0ZW5kcyBFcnJvciB7CiAgICAgICAgY29uc3RydWN0b3IoZXJyb3IsIGVycm9yX2Rlc2NyaXB0aW9uKSB7CiAgICAgICAgICAgIHN1cGVyKGVycm9yX2Rlc2NyaXB0aW9uKTsKICAgICAgICAgICAgdGhpcy5lcnJvciA9IGVycm9yOwogICAgICAgICAgICB0aGlzLmVycm9yX2Rlc2NyaXB0aW9uID0gZXJyb3JfZGVzY3JpcHRpb247CiAgICAgICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBHZW5lcmljRXJyb3IucHJvdG90eXBlKTsKICAgICAgICB9CiAgICAgICAgc3RhdGljIGZyb21QYXlsb2FkKHtlcnJvcjogZXJyb3IsIGVycm9yX2Rlc2NyaXB0aW9uOiBlcnJvcl9kZXNjcmlwdGlvbn0pIHsKICAgICAgICAgICAgcmV0dXJuIG5ldyBHZW5lcmljRXJyb3IoZXJyb3IsIGVycm9yX2Rlc2NyaXB0aW9uKTsKICAgICAgICB9CiAgICB9CiAgICBjbGFzcyBNaXNzaW5nUmVmcmVzaFRva2VuRXJyb3IgZXh0ZW5kcyBHZW5lcmljRXJyb3IgewogICAgICAgIGNvbnN0cnVjdG9yKGF1ZGllbmNlLCBzY29wZSkgewogICAgICAgICAgICBzdXBlcigibWlzc2luZ19yZWZyZXNoX3Rva2VuIiwgYE1pc3NpbmcgUmVmcmVzaCBUb2tlbiAoYXVkaWVuY2U6ICcke3ZhbHVlT3JFbXB0eVN0cmluZyhhdWRpZW5jZSwgWyAiZGVmYXVsdCIgXSl9Jywgc2NvcGU6ICcke3ZhbHVlT3JFbXB0eVN0cmluZyhzY29wZSl9JylgKTsKICAgICAgICAgICAgdGhpcy5hdWRpZW5jZSA9IGF1ZGllbmNlOwogICAgICAgICAgICB0aGlzLnNjb3BlID0gc2NvcGU7CiAgICAgICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBNaXNzaW5nUmVmcmVzaFRva2VuRXJyb3IucHJvdG90eXBlKTsKICAgICAgICB9CiAgICB9CiAgICBmdW5jdGlvbiB2YWx1ZU9yRW1wdHlTdHJpbmcodmFsdWUsIGV4Y2x1ZGUgPSBbXSkgewogICAgICAgIHJldHVybiB2YWx1ZSAmJiAhZXhjbHVkZS5pbmNsdWRlcyh2YWx1ZSkgPyB2YWx1ZSA6ICIiOwogICAgfQogICAgZnVuY3Rpb24gX19yZXN0KHMsIGUpIHsKICAgICAgICB2YXIgdCA9IHt9OwogICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKSB0W3BdID0gc1twXTsKICAgICAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSAiZnVuY3Rpb24iKSBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSkgdFtwW2ldXSA9IHNbcFtpXV07CiAgICAgICAgfQogICAgICAgIHJldHVybiB0OwogICAgfQogICAgdHlwZW9mIFN1cHByZXNzZWRFcnJvciA9PT0gImZ1bmN0aW9uIiA/IFN1cHByZXNzZWRFcnJvciA6IGZ1bmN0aW9uKGVycm9yLCBzdXBwcmVzc2VkLCBtZXNzYWdlKSB7CiAgICAgICAgdmFyIGUgPSBuZXcgRXJyb3IobWVzc2FnZSk7CiAgICAgICAgcmV0dXJuIGUubmFtZSA9ICJTdXBwcmVzc2VkRXJyb3IiLCBlLmVycm9yID0gZXJyb3IsIGUuc3VwcHJlc3NlZCA9IHN1cHByZXNzZWQsIGU7CiAgICB9OwogICAgY29uc3Qgc3RyaXBVbmRlZmluZWQgPSBwYXJhbXMgPT4gT2JqZWN0LmtleXMocGFyYW1zKS5maWx0ZXIoKGsgPT4gdHlwZW9mIHBhcmFtc1trXSAhPT0gInVuZGVmaW5lZCIpKS5yZWR1Y2UoKChhY2MsIGtleSkgPT4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBhY2MpLCB7CiAgICAgICAgW2tleV06IHBhcmFtc1trZXldCiAgICB9KSksIHt9KTsKICAgIGNvbnN0IGNyZWF0ZVF1ZXJ5UGFyYW1zID0gX2EgPT4gewogICAgICAgIHZhciB7Y2xpZW50SWQ6IGNsaWVudF9pZH0gPSBfYSwgcGFyYW1zID0gX19yZXN0KF9hLCBbICJjbGllbnRJZCIgXSk7CiAgICAgICAgcmV0dXJuIG5ldyBVUkxTZWFyY2hQYXJhbXMoc3RyaXBVbmRlZmluZWQoT2JqZWN0LmFzc2lnbih7CiAgICAgICAgICAgIGNsaWVudF9pZDogY2xpZW50X2lkCiAgICAgICAgfSwgcGFyYW1zKSkpLnRvU3RyaW5nKCk7CiAgICB9OwogICAgbGV0IHJlZnJlc2hUb2tlbnMgPSB7fTsKICAgIGNvbnN0IGNhY2hlS2V5ID0gKGF1ZGllbmNlLCBzY29wZSkgPT4gYCR7YXVkaWVuY2V9fCR7c2NvcGV9YDsKICAgIGNvbnN0IGdldFJlZnJlc2hUb2tlbiA9IChhdWRpZW5jZSwgc2NvcGUpID0+IHJlZnJlc2hUb2tlbnNbY2FjaGVLZXkoYXVkaWVuY2UsIHNjb3BlKV07CiAgICBjb25zdCBzZXRSZWZyZXNoVG9rZW4gPSAocmVmcmVzaFRva2VuLCBhdWRpZW5jZSwgc2NvcGUpID0+IHJlZnJlc2hUb2tlbnNbY2FjaGVLZXkoYXVkaWVuY2UsIHNjb3BlKV0gPSByZWZyZXNoVG9rZW47CiAgICBjb25zdCBkZWxldGVSZWZyZXNoVG9rZW4gPSAoYXVkaWVuY2UsIHNjb3BlKSA9PiBkZWxldGUgcmVmcmVzaFRva2Vuc1tjYWNoZUtleShhdWRpZW5jZSwgc2NvcGUpXTsKICAgIGNvbnN0IHdhaXQgPSB0aW1lID0+IG5ldyBQcm9taXNlKChyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgdGltZSkpKTsKICAgIGNvbnN0IGZvcm1EYXRhVG9PYmplY3QgPSBmb3JtRGF0YSA9PiB7CiAgICAgICAgY29uc3QgcXVlcnlQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKGZvcm1EYXRhKTsKICAgICAgICBjb25zdCBwYXJzZWRRdWVyeSA9IHt9OwogICAgICAgIHF1ZXJ5UGFyYW1zLmZvckVhY2goKCh2YWwsIGtleSkgPT4gewogICAgICAgICAgICBwYXJzZWRRdWVyeVtrZXldID0gdmFsOwogICAgICAgIH0pKTsKICAgICAgICByZXR1cm4gcGFyc2VkUXVlcnk7CiAgICB9OwogICAgY29uc3QgbWVzc2FnZUhhbmRsZXIgPSBhc3luYyAoe2RhdGE6IHt0aW1lb3V0OiB0aW1lb3V0LCBhdXRoOiBhdXRoLCBmZXRjaFVybDogZmV0Y2hVcmwsIGZldGNoT3B0aW9uczogZmV0Y2hPcHRpb25zLCB1c2VGb3JtRGF0YTogdXNlRm9ybURhdGF9LCBwb3J0czogW3BvcnRdfSkgPT4gewogICAgICAgIGxldCBqc29uOwogICAgICAgIGNvbnN0IHthdWRpZW5jZTogYXVkaWVuY2UsIHNjb3BlOiBzY29wZX0gPSBhdXRoIHx8IHt9OwogICAgICAgIHRyeSB7CiAgICAgICAgICAgIGNvbnN0IGJvZHkgPSB1c2VGb3JtRGF0YSA/IGZvcm1EYXRhVG9PYmplY3QoZmV0Y2hPcHRpb25zLmJvZHkpIDogSlNPTi5wYXJzZShmZXRjaE9wdGlvbnMuYm9keSk7CiAgICAgICAgICAgIGlmICghYm9keS5yZWZyZXNoX3Rva2VuICYmIGJvZHkuZ3JhbnRfdHlwZSA9PT0gInJlZnJlc2hfdG9rZW4iKSB7CiAgICAgICAgICAgICAgICBjb25zdCByZWZyZXNoVG9rZW4gPSBnZXRSZWZyZXNoVG9rZW4oYXVkaWVuY2UsIHNjb3BlKTsKICAgICAgICAgICAgICAgIGlmICghcmVmcmVzaFRva2VuKSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZWZyZXNoVG9rZW5FcnJvcihhdWRpZW5jZSwgc2NvcGUpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZmV0Y2hPcHRpb25zLmJvZHkgPSB1c2VGb3JtRGF0YSA/IGNyZWF0ZVF1ZXJ5UGFyYW1zKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgYm9keSksIHsKICAgICAgICAgICAgICAgICAgICByZWZyZXNoX3Rva2VuOiByZWZyZXNoVG9rZW4KICAgICAgICAgICAgICAgIH0pKSA6IEpTT04uc3RyaW5naWZ5KE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgYm9keSksIHsKICAgICAgICAgICAgICAgICAgICByZWZyZXNoX3Rva2VuOiByZWZyZXNoVG9rZW4KICAgICAgICAgICAgICAgIH0pKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBsZXQgYWJvcnRDb250cm9sbGVyOwogICAgICAgICAgICBpZiAodHlwZW9mIEFib3J0Q29udHJvbGxlciA9PT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICAgICAgYWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcjsKICAgICAgICAgICAgICAgIGZldGNoT3B0aW9ucy5zaWduYWwgPSBhYm9ydENvbnRyb2xsZXIuc2lnbmFsOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGxldCByZXNwb25zZTsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gYXdhaXQgUHJvbWlzZS5yYWNlKFsgd2FpdCh0aW1lb3V0KSwgZmV0Y2goZmV0Y2hVcmwsIE9iamVjdC5hc3NpZ24oe30sIGZldGNoT3B0aW9ucykpIF0pOwogICAgICAgICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgICAgICAgICAgcG9ydC5wb3N0TWVzc2FnZSh7CiAgICAgICAgICAgICAgICAgICAgZXJyb3I6IGVycm9yLm1lc3NhZ2UKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICghcmVzcG9uc2UpIHsKICAgICAgICAgICAgICAgIGlmIChhYm9ydENvbnRyb2xsZXIpIGFib3J0Q29udHJvbGxlci5hYm9ydCgpOwogICAgICAgICAgICAgICAgcG9ydC5wb3N0TWVzc2FnZSh7CiAgICAgICAgICAgICAgICAgICAgZXJyb3I6ICJUaW1lb3V0IHdoZW4gZXhlY3V0aW5nICdmZXRjaCciCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBqc29uID0gYXdhaXQgcmVzcG9uc2UuanNvbigpOwogICAgICAgICAgICBpZiAoanNvbi5yZWZyZXNoX3Rva2VuKSB7CiAgICAgICAgICAgICAgICBzZXRSZWZyZXNoVG9rZW4oanNvbi5yZWZyZXNoX3Rva2VuLCBhdWRpZW5jZSwgc2NvcGUpOwogICAgICAgICAgICAgICAgZGVsZXRlIGpzb24ucmVmcmVzaF90b2tlbjsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGRlbGV0ZVJlZnJlc2hUb2tlbihhdWRpZW5jZSwgc2NvcGUpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHBvcnQucG9zdE1lc3NhZ2UoewogICAgICAgICAgICAgICAgb2s6IHJlc3BvbnNlLm9rLAogICAgICAgICAgICAgICAganNvbjoganNvbgogICAgICAgICAgICB9KTsKICAgICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgICAgICBwb3J0LnBvc3RNZXNzYWdlKHsKICAgICAgICAgICAgICAgIG9rOiBmYWxzZSwKICAgICAgICAgICAgICAgIGpzb246IHsKICAgICAgICAgICAgICAgICAgICBlcnJvcjogZXJyb3IuZXJyb3IsCiAgICAgICAgICAgICAgICAgICAgZXJyb3JfZGVzY3JpcHRpb246IGVycm9yLm1lc3NhZ2UKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgfTsKICAgIHsKICAgICAgICBhZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgbWVzc2FnZUhhbmRsZXIpOwogICAgfQp9KSgpOwoK", null, false);
|
|
1326
1394
|
const singlePromiseMap = {};
|
|
1327
1395
|
const singlePromise = (cb, key) => {
|
|
1328
1396
|
let promise = singlePromiseMap[key];
|
|
@@ -1454,7 +1522,11 @@
|
|
|
1454
1522
|
this.domainUrl = getDomain(this.options.domain);
|
|
1455
1523
|
this.tokenIssuer = getTokenIssuer(this.options.issuer, this.domainUrl);
|
|
1456
1524
|
if (typeof window !== "undefined" && window.Worker && this.options.useRefreshTokens && cacheLocation === CACHE_LOCATION_MEMORY) {
|
|
1457
|
-
this.
|
|
1525
|
+
if (this.options.workerUrl) {
|
|
1526
|
+
this.worker = new Worker(this.options.workerUrl);
|
|
1527
|
+
} else {
|
|
1528
|
+
this.worker = new WorkerFactory;
|
|
1529
|
+
}
|
|
1458
1530
|
}
|
|
1459
1531
|
}
|
|
1460
1532
|
_url(path) {
|
|
@@ -1874,7 +1946,7 @@
|
|
|
1874
1946
|
daysUntilExpire: this.sessionCheckExpiryDays,
|
|
1875
1947
|
cookieDomain: this.options.cookieDomain
|
|
1876
1948
|
});
|
|
1877
|
-
this._processOrgHint(organization);
|
|
1949
|
+
this._processOrgHint(organization || decodedToken.claims.org_id);
|
|
1878
1950
|
return Object.assign(Object.assign({}, authResult), {
|
|
1879
1951
|
decodedToken: decodedToken
|
|
1880
1952
|
});
|