@auth0/auth0-spa-js 2.17.1 → 2.18.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 CHANGED
@@ -30,7 +30,7 @@ npm install @auth0/auth0-spa-js
30
30
  From the CDN:
31
31
 
32
32
  ```html
33
- <script src="https://cdn.auth0.com/js/auth0-spa-js/2.17/auth0-spa-js.production.js"></script>
33
+ <script src="https://cdn.auth0.com/js/auth0-spa-js/2.18/auth0-spa-js.production.js"></script>
34
34
  ```
35
35
 
36
36
  ### Configure Auth0
@@ -15,7 +15,7 @@
15
15
  var e = new Error(message);
16
16
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
17
17
  };
18
- var version = "2.17.1";
18
+ var version = "2.18.0";
19
19
  const DEFAULT_AUTHORIZE_TIMEOUT_IN_SECONDS = 60;
20
20
  const DEFAULT_POPUP_CONFIG_OPTIONS = {
21
21
  timeoutInSeconds: DEFAULT_AUTHORIZE_TIMEOUT_IN_SECONDS
@@ -218,9 +218,16 @@
218
218
  const getCrypto = () => window.crypto;
219
219
  const createRandomString = () => {
220
220
  const charset = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_~.";
221
+ const validMax = 256 - 256 % charset.length;
221
222
  let random = "";
222
- const randomValues = Array.from(getCrypto().getRandomValues(new Uint8Array(43)));
223
- randomValues.forEach(v => random += charset[v % charset.length]);
223
+ while (random.length < 43) {
224
+ const bytes = getCrypto().getRandomValues(new Uint8Array(43 - random.length));
225
+ for (const byte of bytes) {
226
+ if (random.length < 43 && byte < validMax) {
227
+ random += charset[byte % charset.length];
228
+ }
229
+ }
230
+ }
224
231
  return random;
225
232
  };
226
233
  const encode$2 = value => btoa(value);
@@ -2484,55 +2491,40 @@
2484
2491
  };
2485
2492
  }
2486
2493
  function AsyncGenerator(e) {
2487
- var r, t;
2488
- function resume(r, t) {
2494
+ var t, n;
2495
+ function resume(t, n) {
2489
2496
  try {
2490
- var n = e[r](t), o = n.value, u = o instanceof _OverloadYield;
2491
- Promise.resolve(u ? o.v : o).then(function(t) {
2497
+ var r = e[t](n), o = r.value, u = o instanceof _OverloadYield;
2498
+ Promise.resolve(u ? o.v : o).then(function(n) {
2492
2499
  if (u) {
2493
- var i = "return" === r ? "return" : "next";
2494
- if (!o.k || t.done) return resume(i, t);
2495
- t = e[i](t).value;
2500
+ var i = "return" === t && o.k ? t : "next";
2501
+ if (!o.k || n.done) return resume(i, n);
2502
+ n = e[i](n).value;
2496
2503
  }
2497
- settle(n.done ? "return" : "normal", t);
2504
+ settle(!!r.done, n);
2498
2505
  }, function(e) {
2499
2506
  resume("throw", e);
2500
2507
  });
2501
2508
  } catch (e) {
2502
- settle("throw", e);
2509
+ settle(2, e);
2503
2510
  }
2504
2511
  }
2505
- function settle(e, n) {
2506
- switch (e) {
2507
- case "return":
2508
- r.resolve({
2509
- value: n,
2510
- done: !0
2511
- });
2512
- break;
2513
-
2514
- case "throw":
2515
- r.reject(n);
2516
- break;
2517
-
2518
- default:
2519
- r.resolve({
2520
- value: n,
2521
- done: !1
2522
- });
2523
- }
2524
- (r = r.next) ? resume(r.key, r.arg) : t = null;
2512
+ function settle(e, r) {
2513
+ 2 === e ? t.reject(r) : t.resolve({
2514
+ value: r,
2515
+ done: e
2516
+ }), (t = t.next) ? resume(t.key, t.arg) : n = null;
2525
2517
  }
2526
- this._invoke = function(e, n) {
2518
+ this._invoke = function(e, r) {
2527
2519
  return new Promise(function(o, u) {
2528
2520
  var i = {
2529
2521
  key: e,
2530
- arg: n,
2522
+ arg: r,
2531
2523
  resolve: o,
2532
2524
  reject: u,
2533
2525
  next: null
2534
2526
  };
2535
- t ? t = t.next = i : (r = t = i, resume(e, n));
2527
+ n ? n = n.next = i : (t = n = i, resume(e, r));
2536
2528
  });
2537
2529
  }, "function" != typeof e.return && (this.return = void 0);
2538
2530
  }
@@ -6333,7 +6325,7 @@
6333
6325
  let USER_AGENT;
6334
6326
  if (typeof navigator === "undefined" || !((_navigator$userAgent = navigator.userAgent) !== null && _navigator$userAgent !== void 0 && (_navigator$userAgent$ = _navigator$userAgent.startsWith) !== null && _navigator$userAgent$ !== void 0 && _navigator$userAgent$.call(_navigator$userAgent, "Mozilla/5.0 "))) {
6335
6327
  const NAME = "jose";
6336
- const VERSION = "v6.2.1";
6328
+ const VERSION = "v6.2.2";
6337
6329
  USER_AGENT = "".concat(NAME, "/").concat(VERSION);
6338
6330
  }
6339
6331
  const customFetch = Symbol();
@@ -7699,6 +7691,31 @@
7699
7691
  });
7700
7692
  }
7701
7693
  }
7694
+ _extractSessionTransferToken(paramName) {
7695
+ const params = new URLSearchParams(window.location.search);
7696
+ return params.get(paramName) || undefined;
7697
+ }
7698
+ _clearSessionTransferTokenFromUrl(paramName) {
7699
+ try {
7700
+ const url = new URL(window.location.href);
7701
+ if (url.searchParams.has(paramName)) {
7702
+ url.searchParams.delete(paramName);
7703
+ window.history.replaceState({}, "", url.toString());
7704
+ }
7705
+ } catch (_a) {}
7706
+ }
7707
+ _applySessionTransferToken(authorizationParams) {
7708
+ const paramName = this.options.sessionTransferTokenQueryParamName;
7709
+ if (!paramName || authorizationParams.session_transfer_token) {
7710
+ return authorizationParams;
7711
+ }
7712
+ const token = this._extractSessionTransferToken(paramName);
7713
+ if (!token) return authorizationParams;
7714
+ this._clearSessionTransferTokenFromUrl(paramName);
7715
+ return Object.assign(Object.assign({}, authorizationParams), {
7716
+ session_transfer_token: token
7717
+ });
7718
+ }
7702
7719
  async _prepareAuthorizeUrl(authorizationParams, authorizeOptions, fallbackRedirectUri) {
7703
7720
  var _a;
7704
7721
  const state = encode$2(createRandomString());
@@ -7729,7 +7746,8 @@
7729
7746
  throw new PopupOpenError;
7730
7747
  }
7731
7748
  }
7732
- const params = await this._prepareAuthorizeUrl(options.authorizationParams || {}, {
7749
+ const authorizationParams = this._applySessionTransferToken(options.authorizationParams || {});
7750
+ const params = await this._prepareAuthorizeUrl(authorizationParams, {
7733
7751
  response_mode: "web_message"
7734
7752
  }, window.location.origin);
7735
7753
  config.popup.location.href = params.url;
@@ -7767,7 +7785,8 @@
7767
7785
  var _a;
7768
7786
  const _b = patchOpenUrlWithOnRedirect(options), {openUrl: openUrl, fragment: fragment, appState: appState} = _b, urlOptions = __rest(_b, [ "openUrl", "fragment", "appState" ]);
7769
7787
  const organization = ((_a = urlOptions.authorizationParams) === null || _a === void 0 ? void 0 : _a.organization) || this.options.authorizationParams.organization;
7770
- const _c = await this._prepareAuthorizeUrl(urlOptions.authorizationParams || {}), {url: url} = _c, transaction = __rest(_c, [ "url" ]);
7788
+ const authorizationParams = this._applySessionTransferToken(urlOptions.authorizationParams || {});
7789
+ const _c = await this._prepareAuthorizeUrl(authorizationParams), {url: url} = _c, transaction = __rest(_c, [ "url" ]);
7771
7790
  this.transactionManager.create(Object.assign(Object.assign(Object.assign({}, transaction), {
7772
7791
  appState: appState,
7773
7792
  response_type: exports.ResponseType.Code