@auth0/auth0-spa-js 2.1.3 → 2.3.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.
@@ -550,7 +550,7 @@ var browserTabsLock = createCommonjsModule((function(module, exports) {
550
550
 
551
551
  var Lock = unwrapExports(browserTabsLock);
552
552
 
553
- var version = "2.1.3";
553
+ var version = "2.3.0";
554
554
 
555
555
  const DEFAULT_AUTHORIZE_TIMEOUT_IN_SECONDS = 60;
556
556
 
@@ -896,7 +896,13 @@ async function getJSON(url, timeout, audience, scope, options, worker, useFormDa
896
896
 
897
897
  async function oauthToken(_a, worker) {
898
898
  var {baseUrl: baseUrl, timeout: timeout, audience: audience, scope: scope, auth0Client: auth0Client, useFormData: useFormData} = _a, options = __rest(_a, [ "baseUrl", "timeout", "audience", "scope", "auth0Client", "useFormData" ]);
899
- const body = useFormData ? createQueryParams(options) : JSON.stringify(options);
899
+ const isTokenExchange = options.grant_type === "urn:ietf:params:oauth:grant-type:token-exchange";
900
+ const allParams = Object.assign(Object.assign(Object.assign({}, options), isTokenExchange && audience && {
901
+ audience: audience
902
+ }), isTokenExchange && scope && {
903
+ scope: scope
904
+ });
905
+ const body = useFormData ? createQueryParams(allParams) : JSON.stringify(allParams);
900
906
  return await getJSON(`${baseUrl}/oauth/token`, timeout, audience || "default", scope, {
901
907
  method: "POST",
902
908
  body: body,
@@ -1920,7 +1926,13 @@ class Auth0Client {
1920
1926
  throw new GenericError("login_required", "The application is running in a Cross-Origin Isolated context, silently retrieving a token without refresh token is not possible.");
1921
1927
  }
1922
1928
  const authorizeTimeout = options.timeoutInSeconds || this.options.authorizeTimeoutInSeconds;
1923
- const codeResult = await runIframe(url, this.domainUrl, authorizeTimeout);
1929
+ let eventOrigin;
1930
+ try {
1931
+ eventOrigin = new URL(this.domainUrl).origin;
1932
+ } catch (_a) {
1933
+ eventOrigin = this.domainUrl;
1934
+ }
1935
+ const codeResult = await runIframe(url, eventOrigin, authorizeTimeout);
1924
1936
  if (stateIn !== codeResult.state) {
1925
1937
  throw new GenericError("state_mismatch", "Invalid state");
1926
1938
  }
@@ -2052,6 +2064,15 @@ class Auth0Client {
2052
2064
  decodedToken: decodedToken
2053
2065
  });
2054
2066
  }
2067
+ async exchangeToken(options) {
2068
+ return this._requestToken({
2069
+ grant_type: "urn:ietf:params:oauth:grant-type:token-exchange",
2070
+ subject_token: options.subject_token,
2071
+ subject_token_type: options.subject_token_type,
2072
+ scope: getUniqueScopes(options.scope, this.scope),
2073
+ audience: options.audience || this.options.authorizationParams.audience
2074
+ });
2075
+ }
2055
2076
  }
2056
2077
 
2057
2078
  class User {}