From 44477f8a6905df6dfa76e3a5333aa644374ca0b2 Mon Sep 17 00:00:00 2001 From: Gyanesh Gouraw <160731216+gyaneshgouraw-okta@users.noreply.github.com> Date: Tue, 24 Jun 2025 18:21:21 +0530 Subject: [PATCH 1/8] refactor: streamline dependency installation by removing artifact restoration step (#844) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## 📝 Pull Request Description ### 🔄 Changes - The artifact restoration step was removed from the dependency installation process in the test workflow. - The dependency installation step now uses `pnpm install --frozen-lockfile` for efficiency. - This change streamlines the dependency installation process. ### 💥 Impact - This change improves the efficiency of the CI/CD pipeline. - The system impact is minimal, as only the test workflow is affected. - There is no expected performance impact on the application itself. ### 📋 Checklist - [ ] Code follows the project's coding standards - [ ] Tests have been updated - [ ] Documentation has been updated - [ ] All tests are passing --- .github/workflows/test.yml | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 6b565ef3..ab3f30f1 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -37,12 +37,6 @@ jobs: with: node: ${{ env.NODE_VERSION }} - - name: Save build artifacts - uses: actions/cache/save@v4 - with: - path: . - key: ${{ env.CACHE_KEY }} - unit: needs: build # Require build to complete before running tests @@ -59,11 +53,8 @@ jobs: node-version: ${{ env.NODE_VERSION }} cache: npm - - name: Restore build artifacts - uses: actions/cache/restore@v4 - with: - path: . - key: ${{ env.CACHE_KEY }} + - name: Install dependencies + run: npm ci --include=dev - name: Run tests run: npm run test From 93aa7d603ea3df75afe9add22857b08d339abeeb Mon Sep 17 00:00:00 2001 From: Gyanesh Gouraw <160731216+gyaneshgouraw-okta@users.noreply.github.com> Date: Tue, 24 Jun 2025 21:12:33 +0530 Subject: [PATCH 2/8] Enhance type safety in Auth0Provider and reducer by introducing generic user type (#842) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ### 🔄 Changes - Enhanced type safety in `Auth0Provider` and its reducer by introducing a generic user type. - Updated `Auth0ProviderOptions` interface to accept a generic user type. - Modified the `onRedirectCallback` function to accept the generic user type. - Updated the reducer function to handle the generic user type. ### 🧪 Testing - The changes were tested by integrating them to a sample app and verifying with a generic user type ### 💥 Impact - Improved type safety for the `Auth0Provider` component and reducer. - No changes to the functionality of the component are expected. - No performance impact is anticipated. - This PR addresses issue mentioned in https://github.com/auth0/auth0-react/issues/748 ### 📋 Checklist - [x] Code follows the project's coding standards - [x] All tests are passing --- src/auth0-provider.tsx | 16 ++++++++-------- src/reducer.tsx | 6 +++--- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/auth0-provider.tsx b/src/auth0-provider.tsx index 9e4e09a2..ac4e4f1c 100644 --- a/src/auth0-provider.tsx +++ b/src/auth0-provider.tsx @@ -28,7 +28,7 @@ import { deprecateRedirectUri, } from './utils'; import { reducer } from './reducer'; -import { initialAuthState } from './auth-state'; +import { initialAuthState, type AuthState } from './auth-state'; /** * The state of the application before the user was redirected to the login page. @@ -41,7 +41,7 @@ export type AppState = { /** * The main configuration to instantiate the `Auth0Provider`. */ -export interface Auth0ProviderOptions extends Auth0ClientOptions { +export interface Auth0ProviderOptions extends Auth0ClientOptions { /** * The child nodes your Provider has wrapped */ @@ -51,7 +51,7 @@ export interface Auth0ProviderOptions extends Auth0ClientOptions { * It uses `window.history` but you might want to overwrite this if you are using a custom router, like `react-router-dom` * See the EXAMPLES.md for more info. */ - onRedirectCallback?: (appState?: AppState, user?: User) => void; + onRedirectCallback?: (appState?: AppState, user?: TUser) => void; /** * By default, if the page url has code/state params, the SDK will treat them as Auth0's and attempt to exchange the * code for a token. In some cases the code might be for something else (another OAuth SDK perhaps). In these @@ -83,7 +83,7 @@ export interface Auth0ProviderOptions extends Auth0ClientOptions { * * For a sample on using multiple Auth0Providers review the [React Account Linking Sample](https://github.com/auth0-samples/auth0-link-accounts-sample/tree/react-variant) */ - context?: React.Context; + context?: React.Context>; } /** @@ -132,7 +132,7 @@ const defaultOnRedirectCallback = (appState?: AppState): void => { * * Provides the Auth0Context to its child components. */ -const Auth0Provider = (opts: Auth0ProviderOptions) => { +const Auth0Provider = (opts: Auth0ProviderOptions) => { const { children, skipRedirectCallback, @@ -143,7 +143,7 @@ const Auth0Provider = (opts: Auth0ProviderOptions) => { const [client] = useState( () => new Auth0Client(toAuth0ClientOptions(clientOpts)) ); - const [state, dispatch] = useReducer(reducer, initialAuthState); + const [state, dispatch] = useReducer(reducer, initialAuthState as AuthState); const didInitialise = useRef(false); const handleError = useCallback((error: Error) => { @@ -158,7 +158,7 @@ const Auth0Provider = (opts: Auth0ProviderOptions) => { didInitialise.current = true; (async (): Promise => { try { - let user: User | undefined; + let user: TUser | undefined; if (hasAuthParams() && !skipRedirectCallback) { const { appState } = await client.handleRedirectCallback(); user = await client.getUser(); @@ -272,7 +272,7 @@ const Auth0Provider = (opts: Auth0ProviderOptions) => { [client] ); - const contextValue = useMemo>(() => { + const contextValue = useMemo>(() => { return { ...state, getAccessTokenSilently, diff --git a/src/reducer.tsx b/src/reducer.tsx index a8fc79fe..2fae5073 100644 --- a/src/reducer.tsx +++ b/src/reducer.tsx @@ -17,7 +17,7 @@ type Action = /** * Handles how that state changes in the `useAuth0` hook. */ -export const reducer = (state: AuthState, action: Action): AuthState => { +export const reducer = (state: AuthState, action: Action): AuthState => { switch (action.type) { case 'LOGIN_POPUP_STARTED': return { @@ -29,7 +29,7 @@ export const reducer = (state: AuthState, action: Action): AuthState => { return { ...state, isAuthenticated: !!action.user, - user: action.user, + user: action.user as TUser | undefined, isLoading: false, error: undefined, }; @@ -41,7 +41,7 @@ export const reducer = (state: AuthState, action: Action): AuthState => { return { ...state, isAuthenticated: !!action.user, - user: action.user, + user: action.user as TUser | undefined, }; case 'LOGOUT': return { From 9a10c7893c298fc1b3fd38192eb716fbde485b95 Mon Sep 17 00:00:00 2001 From: Frederik Prijck Date: Wed, 9 Jul 2025 10:10:59 +0200 Subject: [PATCH 3/8] Add Skip the Auth0 login page to FAQ (#815) ### Description Adds an additional entry to the FAQ about skipping the Auth0 login page, after having a conversation with someone that was confused about this. ### References N/A ### Testing N/A ### Checklist - [x] I have added documentation for new/changed functionality in this PR or in auth0.com/docs - [x] All active GitHub checks for tests, formatting, and security are passing - [x] The correct base branch is being used, if not the default branch Signed-off-by: Frederik Prijck Co-authored-by: Arpit Jain <167312832+arpit-jn@users.noreply.github.com> Co-authored-by: Gyanesh Gouraw <160731216+gyaneshgouraw-okta@users.noreply.github.com> --- FAQ.md | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/FAQ.md b/FAQ.md index 6db02a8e..489115f8 100644 --- a/FAQ.md +++ b/FAQ.md @@ -4,6 +4,7 @@ 1. [User is not logged in after page refresh](#1-user-is-not-logged-in-after-page-refresh) 2. [User is not logged in after successful sign in with redirect](#2-user-is-not-logged-in-after-successful-sign-in-with-redirect) +3. [Skip the Auth0 login page](#3-skip-the-auth0-login-page) ## 1. User is not logged in after page refresh @@ -20,3 +21,33 @@ In this case Silent Authentication will not work because it relies on a hidden i ## 2. User is not logged in after successful sign in with redirect If after successfully logging in, your user returns to your SPA and is still not authenticated, do _not_ refresh the page - go to the Network tab on Chrome and confirm that the POST to `oauth/token` resulted in an error `401 Unauthorized`. If this is the case, your tenant is most likely misconfigured. Go to your **Application Properties** in your application's settings in the [Auth0 Dashboard](https://manage.auth0.com) and make sure that `Application Type` is set to `Single Page Application` and `Token Endpoint Authentication Method` is set to `None` (**Note:** there is a known issue with the Auth0 "Default App", if you are unable to set `Token Endpoint Authentication Method` to `None`, create a new Application of type `Single Page Application` or see the advice in [issues/93](https://github.com/auth0/auth0-react/issues/93#issuecomment-673431605)) + +## 3. Skip the Auth0 login page + +When integrating with third party providers such as Google or Microsoft, being redirected to Auth0 before being redirected to the corresponding provider can be sub-optimal in terms of user-experience. +If you only have a single connection enabled, or you know up front how the user wants to authenticate, you can set the `connection` parameter when calling `loginWithRedirect()` or `loginWithPopup()`: + +```js +loginWithRedirect({ + // ... + authorizationParams: { + connection: 'connection_logical_identifier' + } +}) +``` + +Doing so for connections such as Google or Microsoft, would automatically redirect you to them instead of showing the Auth0 login page first. + +Additionally, if you are using `withAuthenticationRequired`, you may want it to pick up the same connection when it would redirect for login. To do so, you should provide the `connection` property when configuring `withAuthenticationRequired`: + +```js +withAuthenticationRequired(Component, { + loginOptions: { + authorizationParams: { + connection: 'connection_logical_identifier' + } + } +}) +``` + +ℹ️ You can find the connection's logical identifier as the **connection name** in the connection settings in the Auth0 dashboard for your tenant. From 4630a16fbc7f437dbcd10e1617a7d466f6162d94 Mon Sep 17 00:00:00 2001 From: Gyanesh Gouraw <160731216+gyaneshgouraw-okta@users.noreply.github.com> Date: Thu, 17 Jul 2025 15:08:09 +0530 Subject: [PATCH 4/8] fix/cypress (#857) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## 📝 Pull Request Description ### 🔄 Changes - The selectors in the `loginToAuth0` function were updated to correctly target Auth0 input fields. - The username and password fields are now selected using their IDs, `#username` and `#password`, respectively. - The submit button is now selected using `button[type="submit"][name="action"]` and a case-insensitive check for the text "continue". ### 🧪 Testing - The updated login functionality was tested. - Cypress end-to-end tests were used to verify successful login using the updated selectors. - All tests passed after the changes were implemented. ### 💥 Impact - This change fixes a bug in the login functionality. - The system's login process is now more robust and reliable. - There is no performance impact. ### 📋 Checklist - [ ] Code follows the project's coding standards - [ ] Tests have been added/updated - [ ] Documentation has been updated - [ ] All tests are passing --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Kunal Dawar --- __tests__/auth-provider.test.tsx | 2 +- cypress/e2e/smoke.cy.ts | 6 +++--- package-lock.json | 4 +++- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/__tests__/auth-provider.test.tsx b/__tests__/auth-provider.test.tsx index 0ec66d3c..ee506f8b 100644 --- a/__tests__/auth-provider.test.tsx +++ b/__tests__/auth-provider.test.tsx @@ -423,7 +423,7 @@ describe('Auth0Provider', () => { await waitFor(() => { expect(result.current.logout).toBeInstanceOf(Function); }); - act(() => { + await act(() => { result.current.logout(); }); expect(clientMock.logout).toHaveBeenCalled(); diff --git a/cypress/e2e/smoke.cy.ts b/cypress/e2e/smoke.cy.ts index de867074..449a53c8 100644 --- a/cypress/e2e/smoke.cy.ts +++ b/cypress/e2e/smoke.cy.ts @@ -8,9 +8,9 @@ if (!EMAIL || !PASSWORD) { } const loginToAuth0 = (): void => { - cy.get('.auth0-lock-input-username .auth0-lock-input').clear().type(EMAIL); - cy.get('.auth0-lock-input-password .auth0-lock-input').clear().type(PASSWORD); - cy.get('.auth0-lock-submit').click(); + cy.get('#username').clear().type(EMAIL); + cy.get('#password').clear().type(PASSWORD); + cy.get('button[type="submit"][name="action"]').contains(/^continue$/i).click({ force: true }); }; describe('Smoke tests', () => { diff --git a/package-lock.json b/package-lock.json index f8ad46fa..98166bd3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -74,7 +74,9 @@ } }, "node_modules/@auth0/auth0-spa-js": { - "version": "2.1.3", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@auth0/auth0-spa-js/-/auth0-spa-js-2.2.0.tgz", + "integrity": "sha512-YaHHCxiSQxDb+Ju9gXOqcqgXWq8EkUSpZC4g24D3MoEBUaADKwOosrAnmjDZcslBZpnSFFdrl4dLYedAer3xlQ==", "license": "MIT" }, "node_modules/@babel/code-frame": { From ff74518466b4c5882d450e9b0cb2eaaa5b85b96e Mon Sep 17 00:00:00 2001 From: Subhankar Maiti <35273200+subhankarmaiti@users.noreply.github.com> Date: Thu, 17 Jul 2025 15:25:53 +0530 Subject: [PATCH 5/8] feat: Upgrade core dependencies and regenerate documentation (#856) ### Key Changes: * **Dependency Upgrades:** Core packages have been updated to their latest versions, including: * `@auth0/auth0-spa-js` to `^2.2.0` * `typescript` to `^5.8.3` * `typedoc` to `^0.28.7` * `react` and `react-dom` to `^19.1.0` * Testing libraries like `jest` and `@testing-library/*` * Linting tools like `@typescript-eslint/*` to `^8.x` * **Documentation Regeneration:** As a result of the `typedoc` upgrade, the entire `/docs` directory has been regenerated. This brings in a modern theme, an improved structure, and new features like a hierarchy view for better API exploration. * **Enhanced Type Safety:** The project's `tsconfig.json` has been configured with stricter type-checking rules, including `exactOptionalPropertyTypes` and `noUncheckedIndexedAccess`. The codebase has been updated to conform to these rules, leading to more precise and safer type definitions. * **Code Modernization:** The codebase has been refactored to use modern JavaScript syntax, such as nullish coalescing (`??`) and optional chaining (`?.`). * **Test Suite Improvements:** * Comprehensive unit tests have been added for an internal utility function. * Asynchronous tests have been updated to correctly use `await act()`, ensuring more stable and reliable test execution. --- __tests__/auth-reducer.test.tsx | 1 + __tests__/utils.test.tsx | 99 +- docs/assets/hierarchy.js | 1 + docs/assets/icons.js | 31 +- docs/assets/icons.svg | 2 +- docs/assets/main.js | 9 +- docs/assets/navigation.js | 2 +- docs/assets/search.js | 2 +- docs/assets/style.css | 2671 +++++++++-------- docs/classes/AuthenticationError.html | 36 +- docs/classes/GenericError.html | 30 +- docs/classes/InMemoryCache.html | 6 +- docs/classes/LocalStorageCache.html | 12 +- docs/classes/MfaRequiredError.html | 32 +- docs/classes/MissingRefreshTokenError.html | 34 +- docs/classes/OAuthError.html | 28 +- docs/classes/PopupCancelledError.html | 32 +- docs/classes/PopupTimeoutError.html | 32 +- docs/classes/TimeoutError.html | 30 +- docs/classes/User.html | 44 +- docs/functions/Auth0Context.html | 10 - docs/functions/Auth0Provider.html | 7 +- docs/functions/useAuth0.html | 7 +- docs/functions/withAuth0.html | 7 +- .../functions/withAuthenticationRequired.html | 7 +- docs/hierarchy.html | 2 +- docs/index.html | 65 +- docs/interfaces/Auth0ContextInterface.html | 66 +- docs/interfaces/Auth0ProviderOptions.html | 116 +- docs/interfaces/AuthorizationParams.html | 86 +- docs/interfaces/GetTokenSilentlyOptions.html | 28 +- docs/interfaces/GetTokenWithPopupOptions.html | 10 +- docs/interfaces/ICache.html | 10 +- docs/interfaces/IdToken.html | 78 +- docs/interfaces/LogoutOptions.html | 32 +- docs/interfaces/LogoutUrlOptions.html | 18 +- docs/interfaces/PopupConfigOptions.html | 10 +- docs/interfaces/PopupLoginOptions.html | 6 +- docs/interfaces/RedirectLoginOptions.html | 28 +- docs/interfaces/WithAuth0Props.html | 6 +- .../WithAuthenticationRequiredOptions.html | 41 +- docs/modules.html | 35 +- docs/types/AppState.html | 5 +- docs/types/CacheLocation.html | 4 +- docs/types/Cacheable.html | 2 +- docs/variables/Auth0Context.html | 2 + examples/nextjs-app/package.json | 2 +- examples/users-api/package-lock.json | 683 +++-- examples/users-api/package.json | 4 +- package-lock.json | 659 ++-- package.json | 30 +- rollup.config.mjs | 2 +- src/auth-state.tsx | 6 +- src/auth0-context.tsx | 4 +- src/auth0-provider.tsx | 4 +- src/errors.tsx | 2 +- src/reducer.tsx | 2 +- src/utils.tsx | 2 +- src/with-authentication-required.tsx | 4 +- tsconfig.json | 11 +- typedoc.js | 1 + 61 files changed, 2926 insertions(+), 2312 deletions(-) create mode 100644 docs/assets/hierarchy.js delete mode 100644 docs/functions/Auth0Context.html create mode 100644 docs/variables/Auth0Context.html diff --git a/__tests__/auth-reducer.test.tsx b/__tests__/auth-reducer.test.tsx index 4a3c5a48..2f676e5a 100644 --- a/__tests__/auth-reducer.test.tsx +++ b/__tests__/auth-reducer.test.tsx @@ -19,6 +19,7 @@ describe('reducer', () => { it('should initialise when not authenticated', async () => { const payload = { isAuthenticated: false, + user: undefined, }; expect( reducer(initialAuthState, { type: 'INITIALISED', ...payload }) diff --git a/__tests__/utils.test.tsx b/__tests__/utils.test.tsx index 033769ca..f1f128ee 100644 --- a/__tests__/utils.test.tsx +++ b/__tests__/utils.test.tsx @@ -1,6 +1,31 @@ -import { hasAuthParams, loginError, tokenError } from '../src/utils'; +import { hasAuthParams, loginError, tokenError, deprecateRedirectUri } from '../src/utils'; import { OAuthError } from '../src/errors'; +// Define interfaces for testing deprecateRedirectUri function +interface TestOptionsWithRedirectUri { + redirectUri?: string; + authorizationParams?: { + redirect_uri?: string; + scope?: string; + }; +} + +interface TestOptionsWithAuthorizationParams { + authorizationParams: { + redirectUri?: string; + redirect_uri?: string; + scope?: string; + }; +} + +interface TestOptionsWithBothRedirectUri { + redirectUri?: string; + authorizationParams: { + scope: string; + redirect_uri?: string; + }; +} + describe('utils hasAuthParams', () => { it('should not recognise only the code param', async () => { ['?code=1', '?foo=1&code=2', '?code=1&foo=2'].forEach((search) => @@ -62,3 +87,75 @@ describe('utils error', () => { }).toThrowError('Login failed'); }); }); + +describe('utils deprecateRedirectUri', () => { + let consoleSpy: jest.SpyInstance; + + beforeEach(() => { + consoleSpy = jest.spyOn(console, 'warn').mockImplementation(() => {}); + }); + + afterEach(() => { + consoleSpy.mockRestore(); + }); + + it('should handle options with redirectUri', () => { + const options: TestOptionsWithRedirectUri = { + redirectUri: 'https://example.com/callback', + }; + + deprecateRedirectUri(options); + + expect(consoleSpy).toHaveBeenCalledWith( + 'Using `redirectUri` has been deprecated, please use `authorizationParams.redirect_uri` instead as `redirectUri` will be no longer supported in a future version' + ); + expect(options.authorizationParams?.redirect_uri).toBe('https://example.com/callback'); + expect(options.redirectUri).toBeUndefined(); + }); + + it('should handle options with authorizationParams.redirectUri', () => { + const options: TestOptionsWithAuthorizationParams = { + authorizationParams: { + redirectUri: 'https://example.com/callback', + }, + }; + + deprecateRedirectUri(options); + + expect(consoleSpy).toHaveBeenCalledWith( + 'Using `authorizationParams.redirectUri` has been deprecated, please use `authorizationParams.redirect_uri` instead as `authorizationParams.redirectUri` will be removed in a future version' + ); + expect(options.authorizationParams.redirect_uri).toBe('https://example.com/callback'); + expect(options.authorizationParams.redirectUri).toBeUndefined(); + }); + + it('should handle options with both redirectUri and existing authorizationParams', () => { + const options: TestOptionsWithBothRedirectUri = { + redirectUri: 'https://example.com/callback', + authorizationParams: { + scope: 'openid profile', + }, + }; + + deprecateRedirectUri(options); + + expect(options.authorizationParams.redirect_uri).toBe('https://example.com/callback'); + expect(options.authorizationParams.scope).toBe('openid profile'); + expect(options.redirectUri).toBeUndefined(); + }); + + it('should handle undefined options', () => { + deprecateRedirectUri(undefined); + expect(consoleSpy).not.toHaveBeenCalled(); + }); + + it('should handle options without redirectUri properties', () => { + const options = { + domain: 'example.auth0.com', + clientId: 'client-id', + }; + + deprecateRedirectUri(options); + expect(consoleSpy).not.toHaveBeenCalled(); + }); +}); diff --git a/docs/assets/hierarchy.js b/docs/assets/hierarchy.js new file mode 100644 index 00000000..2bfc7f55 --- /dev/null +++ b/docs/assets/hierarchy.js @@ -0,0 +1 @@ +window.hierarchyData = "eJyVlF1rgzAUhv/LuU5XjekavRtljEHHRlfYRelFiMcaapMuiVfF/z60bNivmV4J+hyf9+QcPYA1xjvIVoxTQnlCYp6uCVgsKpReGe0gO0DM0/aixQ4hgw+zr/dzs1H6fX9ECGyVziGjk0cCta0gA6U92kJIdOML/qH0uwoIyEo4Bxl4l4/aF4z+itqHpapyixqyVZyydUMgTlkvxQv6pdmi/lK+7AxhYW6VBWRqCFCe9CK8zoQscUB4hO5tOYlo23IS0Z5vbqSoPr2xYoOn6pjyX3VnQDe+gG9GON5obTTq2ZZqh6b2z9Ya+5+ozw04TltMedci60/1rRAL/K6VxXxQfM4GNDil53s8E1piVQXoruABxpSfG0PP9QIetjHaP8un2peovZKi3fBB3xU8wDg5mZ5yTunNAguLruy+s+Ep3qgJcHN68j/QaJUc9PW5u9aVRiRhjCRTShhlhE3YummaH8/hv8o=" \ No newline at end of file diff --git a/docs/assets/icons.js b/docs/assets/icons.js index b79c9e89..58882d76 100644 --- a/docs/assets/icons.js +++ b/docs/assets/icons.js @@ -1,15 +1,18 @@ -(function(svg) { - svg.innerHTML = ``; - svg.style.display = 'none'; - if (location.protocol === 'file:') { - if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', updateUseElements); - else updateUseElements() - function updateUseElements() { - document.querySelectorAll('use').forEach(el => { - if (el.getAttribute('href').includes('#icon-')) { - el.setAttribute('href', el.getAttribute('href').replace(/.*#/, '#')); - } - }); - } +(function() { + addIcons(); + function addIcons() { + if (document.readyState === "loading") return document.addEventListener("DOMContentLoaded", addIcons); + const svg = document.body.appendChild(document.createElementNS("http://www.w3.org/2000/svg", "svg")); + svg.innerHTML = `MMNEPVFCICPMFPCPTTAAATR`; + svg.style.display = "none"; + if (location.protocol === "file:") updateUseElements(); } -})(document.body.appendChild(document.createElementNS('http://www.w3.org/2000/svg', 'svg'))) \ No newline at end of file + + function updateUseElements() { + document.querySelectorAll("use").forEach(el => { + if (el.getAttribute("href").includes("#icon-")) { + el.setAttribute("href", el.getAttribute("href").replace(/.*#/, "#")); + } + }); + } +})() \ No newline at end of file diff --git a/docs/assets/icons.svg b/docs/assets/icons.svg index 7dead611..50ad5799 100644 --- a/docs/assets/icons.svg +++ b/docs/assets/icons.svg @@ -1 +1 @@ - \ No newline at end of file +MMNEPVFCICPMFPCPTTAAATR \ No newline at end of file diff --git a/docs/assets/main.js b/docs/assets/main.js index d6f13886..19bbb7a7 100644 --- a/docs/assets/main.js +++ b/docs/assets/main.js @@ -1,8 +1,9 @@ "use strict"; -"use strict";(()=>{var Ce=Object.create;var ne=Object.defineProperty;var Pe=Object.getOwnPropertyDescriptor;var Oe=Object.getOwnPropertyNames;var _e=Object.getPrototypeOf,Re=Object.prototype.hasOwnProperty;var Me=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Fe=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Oe(e))!Re.call(t,i)&&i!==n&&ne(t,i,{get:()=>e[i],enumerable:!(r=Pe(e,i))||r.enumerable});return t};var De=(t,e,n)=>(n=t!=null?Ce(_e(t)):{},Fe(e||!t||!t.__esModule?ne(n,"default",{value:t,enumerable:!0}):n,t));var ae=Me((se,oe)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(n){e.console&&console.warn&&console.warn(n)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;i0){var d=t.utils.clone(n)||{};d.position=[a,u],d.index=s.length,s.push(new t.Token(r.slice(a,o),d))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. -`,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r1&&(oe&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(ol?d+=2:a==l&&(n+=r[u+1]*i[d+1],u+=2,d+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}if(s.str.length==0&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new t.TokenSet;s.node.edges["*"]=u}s.str.length==1&&(u.final=!0),i.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var d=s.str.charAt(0),y=s.str.charAt(1),p;y in s.node.edges?p=s.node.edges[y]:(p=new t.TokenSet,s.node.edges[y]=p),s.str.length==1&&(p.final=!0),i.push({node:p,editsRemaining:s.editsRemaining-1,str:d+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),l=0;l1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,n){typeof define=="function"&&define.amd?define(n):typeof se=="object"?oe.exports=n():e.lunr=n()}(this,function(){return t})})()});var re=[];function G(t,e){re.push({selector:e,constructor:t})}var U=class{constructor(){this.alwaysVisibleMember=null;this.createComponents(document.body),this.ensureFocusedElementVisible(),this.listenForCodeCopies(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible()),document.body.style.display||(this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}createComponents(e){re.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r,app:this}),r.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}showPage(){document.body.style.display&&(console.log("Show page"),document.body.style.removeProperty("display"),this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}scrollToHash(){if(location.hash){console.log("Scorlling");let e=document.getElementById(location.hash.substring(1));if(!e)return;e.scrollIntoView({behavior:"instant",block:"start"})}}ensureActivePageVisible(){let e=document.querySelector(".tsd-navigation .current"),n=e?.parentElement;for(;n&&!n.classList.contains(".tsd-navigation");)n instanceof HTMLDetailsElement&&(n.open=!0),n=n.parentElement;if(e&&!e.checkVisibility()){let r=e.getBoundingClientRect().top-document.documentElement.clientHeight/4;document.querySelector(".site-menu").scrollTop=r}}updateIndexVisibility(){let e=document.querySelector(".tsd-index-content"),n=e?.open;e&&(e.open=!0),document.querySelectorAll(".tsd-index-section").forEach(r=>{r.style.display="block";let i=Array.from(r.querySelectorAll(".tsd-index-link")).every(s=>s.offsetParent==null);r.style.display=i?"none":"block"}),e&&(e.open=n)}ensureFocusedElementVisible(){if(this.alwaysVisibleMember&&(this.alwaysVisibleMember.classList.remove("always-visible"),this.alwaysVisibleMember.firstElementChild.remove(),this.alwaysVisibleMember=null),!location.hash)return;let e=document.getElementById(location.hash.substring(1));if(!e)return;let n=e.parentElement;for(;n&&n.tagName!=="SECTION";)n=n.parentElement;if(n&&n.offsetParent==null){this.alwaysVisibleMember=n,n.classList.add("always-visible");let r=document.createElement("p");r.classList.add("warning"),r.textContent="This member is normally hidden due to your filter settings.",n.prepend(r)}}listenForCodeCopies(){document.querySelectorAll("pre > button").forEach(e=>{let n;e.addEventListener("click",()=>{e.previousElementSibling instanceof HTMLElement&&navigator.clipboard.writeText(e.previousElementSibling.innerText.trim()),e.textContent="Copied!",e.classList.add("visible"),clearTimeout(n),n=setTimeout(()=>{e.classList.remove("visible"),n=setTimeout(()=>{e.textContent="Copy"},100)},1e3)})})}};var ie=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var de=De(ae());async function le(t,e){if(!window.searchData)return;let n=await fetch(window.searchData),r=new Blob([await n.arrayBuffer()]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();t.data=i,t.index=de.Index.load(i.index),e.classList.remove("loading"),e.classList.add("ready")}function he(){let t=document.getElementById("tsd-search");if(!t)return;let e={base:t.dataset.base+"/"},n=document.getElementById("tsd-search-script");t.classList.add("loading"),n&&(n.addEventListener("error",()=>{t.classList.remove("loading"),t.classList.add("failure")}),n.addEventListener("load",()=>{le(e,t)}),le(e,t));let r=document.querySelector("#tsd-search input"),i=document.querySelector("#tsd-search .results");if(!r||!i)throw new Error("The input field or the result list wrapper was not found");let s=!1;i.addEventListener("mousedown",()=>s=!0),i.addEventListener("mouseup",()=>{s=!1,t.classList.remove("has-focus")}),r.addEventListener("focus",()=>t.classList.add("has-focus")),r.addEventListener("blur",()=>{s||(s=!1,t.classList.remove("has-focus"))}),Ae(t,i,r,e)}function Ae(t,e,n,r){n.addEventListener("input",ie(()=>{Ve(t,e,n,r)},200));let i=!1;n.addEventListener("keydown",s=>{i=!0,s.key=="Enter"?Ne(e,n):s.key=="Escape"?n.blur():s.key=="ArrowUp"?ue(e,-1):s.key==="ArrowDown"?ue(e,1):i=!1}),n.addEventListener("keypress",s=>{i&&s.preventDefault()}),document.body.addEventListener("keydown",s=>{s.altKey||s.ctrlKey||s.metaKey||!n.matches(":focus")&&s.key==="/"&&(n.focus(),s.preventDefault())})}function Ve(t,e,n,r){if(!r.index||!r.data)return;e.textContent="";let i=n.value.trim(),s;if(i){let o=i.split(" ").map(a=>a.length?`*${a}*`:"").join(" ");s=r.index.search(o)}else s=[];for(let o=0;oa.score-o.score);for(let o=0,a=Math.min(10,s.length);o`,d=ce(l.name,i);globalThis.DEBUG_SEARCH_WEIGHTS&&(d+=` (score: ${s[o].score.toFixed(2)})`),l.parent&&(d=` - ${ce(l.parent,i)}.${d}`);let y=document.createElement("li");y.classList.value=l.classes??"";let p=document.createElement("a");p.href=r.base+l.url,p.innerHTML=u+d,y.append(p),e.appendChild(y)}}function ue(t,e){let n=t.querySelector(".current");if(!n)n=t.querySelector(e==1?"li:first-child":"li:last-child"),n&&n.classList.add("current");else{let r=n;if(e===1)do r=r.nextElementSibling??void 0;while(r instanceof HTMLElement&&r.offsetParent==null);else do r=r.previousElementSibling??void 0;while(r instanceof HTMLElement&&r.offsetParent==null);r&&(n.classList.remove("current"),r.classList.add("current"))}}function Ne(t,e){let n=t.querySelector(".current");if(n||(n=t.querySelector("li:first-child")),n){let r=n.querySelector("a");r&&(window.location.href=r.href),e.blur()}}function ce(t,e){if(e==="")return t;let n=t.toLocaleLowerCase(),r=e.toLocaleLowerCase(),i=[],s=0,o=n.indexOf(r);for(;o!=-1;)i.push(K(t.substring(s,o)),`${K(t.substring(o,o+r.length))}`),s=o+r.length,o=n.indexOf(r,s);return i.push(K(t.substring(s))),i.join("")}var He={"&":"&","<":"<",">":">","'":"'",'"':"""};function K(t){return t.replace(/[&<>"'"]/g,e=>He[e])}var I=class{constructor(e){this.el=e.el,this.app=e.app}};var F="mousedown",fe="mousemove",H="mouseup",J={x:0,y:0},pe=!1,ee=!1,Be=!1,D=!1,me=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(me?"is-mobile":"not-mobile");me&&"ontouchstart"in document.documentElement&&(Be=!0,F="touchstart",fe="touchmove",H="touchend");document.addEventListener(F,t=>{ee=!0,D=!1;let e=F=="touchstart"?t.targetTouches[0]:t;J.y=e.pageY||0,J.x=e.pageX||0});document.addEventListener(fe,t=>{if(ee&&!D){let e=F=="touchstart"?t.targetTouches[0]:t,n=J.x-(e.pageX||0),r=J.y-(e.pageY||0);D=Math.sqrt(n*n+r*r)>10}});document.addEventListener(H,()=>{ee=!1});document.addEventListener("click",t=>{pe&&(t.preventDefault(),t.stopImmediatePropagation(),pe=!1)});var X=class extends I{constructor(e){super(e),this.className=this.el.dataset.toggle||"",this.el.addEventListener(H,n=>this.onPointerUp(n)),this.el.addEventListener("click",n=>n.preventDefault()),document.addEventListener(F,n=>this.onDocumentPointerDown(n)),document.addEventListener(H,n=>this.onDocumentPointerUp(n))}setActive(e){if(this.active==e)return;this.active=e,document.documentElement.classList.toggle("has-"+this.className,e),this.el.classList.toggle("active",e);let n=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(n),setTimeout(()=>document.documentElement.classList.remove(n),500)}onPointerUp(e){D||(this.setActive(!0),e.preventDefault())}onDocumentPointerDown(e){if(this.active){if(e.target.closest(".col-sidebar, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(e){if(!D&&this.active&&e.target.closest(".col-sidebar")){let n=e.target.closest("a");if(n){let r=window.location.href;r.indexOf("#")!=-1&&(r=r.substring(0,r.indexOf("#"))),n.href.substring(0,r.length)==r&&setTimeout(()=>this.setActive(!1),250)}}}};var te;try{te=localStorage}catch{te={getItem(){return null},setItem(){}}}var Q=te;var ye=document.head.appendChild(document.createElement("style"));ye.dataset.for="filters";var Y=class extends I{constructor(e){super(e),this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),ye.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } -`,this.app.updateIndexVisibility()}fromLocalStorage(){let e=Q.getItem(this.key);return e?e==="true":this.el.checked}setLocalStorage(e){Q.setItem(this.key,e.toString()),this.value=e,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),this.app.filterChanged(),this.app.updateIndexVisibility()}};var Z=class extends I{constructor(e){super(e),this.summary=this.el.querySelector(".tsd-accordion-summary"),this.icon=this.summary.querySelector("svg"),this.key=`tsd-accordion-${this.summary.dataset.key??this.summary.textContent.trim().replace(/\s+/g,"-").toLowerCase()}`;let n=Q.getItem(this.key);this.el.open=n?n==="true":this.el.open,this.el.addEventListener("toggle",()=>this.update());let r=this.summary.querySelector("a");r&&r.addEventListener("click",()=>{location.assign(r.href)}),this.update()}update(){this.icon.style.transform=`rotate(${this.el.open?0:-90}deg)`,Q.setItem(this.key,this.el.open.toString())}};function ge(t){let e=Q.getItem("tsd-theme")||"os";t.value=e,ve(e),t.addEventListener("change",()=>{Q.setItem("tsd-theme",t.value),ve(t.value)})}function ve(t){document.documentElement.dataset.theme=t}var Le;function be(){let t=document.getElementById("tsd-nav-script");t&&(t.addEventListener("load",xe),xe())}async function xe(){let t=document.getElementById("tsd-nav-container");if(!t||!window.navigationData)return;let n=await(await fetch(window.navigationData)).arrayBuffer(),r=new Blob([n]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();Le=t.dataset.base+"/",t.innerHTML="";for(let s of i)we(s,t,[]);window.app.createComponents(t),window.app.showPage(),window.app.ensureActivePageVisible()}function we(t,e,n){let r=e.appendChild(document.createElement("li"));if(t.children){let i=[...n,t.text],s=r.appendChild(document.createElement("details"));s.className=t.class?`${t.class} tsd-index-accordion`:"tsd-index-accordion",s.dataset.key=i.join("$");let o=s.appendChild(document.createElement("summary"));o.className="tsd-accordion-summary",o.innerHTML='',Ee(t,o);let a=s.appendChild(document.createElement("div"));a.className="tsd-accordion-details";let l=a.appendChild(document.createElement("ul"));l.className="tsd-nested-navigation";for(let u of t.children)we(u,l,i)}else Ee(t,r,t.class)}function Ee(t,e,n){if(t.path){let r=e.appendChild(document.createElement("a"));r.href=Le+t.path,n&&(r.className=n),location.pathname===r.pathname&&r.classList.add("current"),t.kind&&(r.innerHTML=``),r.appendChild(document.createElement("span")).textContent=t.text}else e.appendChild(document.createElement("span")).textContent=t.text}G(X,"a[data-toggle]");G(Z,".tsd-index-accordion");G(Y,".tsd-filter-item input[type=checkbox]");var Se=document.getElementById("tsd-theme");Se&&ge(Se);var je=new U;Object.defineProperty(window,"app",{value:je});he();be();})(); +window.translations={"copy":"Copy","copied":"Copied!","normally_hidden":"This member is normally hidden due to your filter settings.","hierarchy_expand":"Expand","hierarchy_collapse":"Collapse","folder":"Folder","search_index_not_available":"The search index is not available","search_no_results_found_for_0":"No results found for {0}","kind_1":"Project","kind_2":"Module","kind_4":"Namespace","kind_8":"Enumeration","kind_16":"Enumeration Member","kind_32":"Variable","kind_64":"Function","kind_128":"Class","kind_256":"Interface","kind_512":"Constructor","kind_1024":"Property","kind_2048":"Method","kind_4096":"Call Signature","kind_8192":"Index Signature","kind_16384":"Constructor Signature","kind_32768":"Parameter","kind_65536":"Type Literal","kind_131072":"Type Parameter","kind_262144":"Accessor","kind_524288":"Get Signature","kind_1048576":"Set Signature","kind_2097152":"Type Alias","kind_4194304":"Reference","kind_8388608":"Document"}; +"use strict";(()=>{var Ke=Object.create;var he=Object.defineProperty;var Ge=Object.getOwnPropertyDescriptor;var Ze=Object.getOwnPropertyNames;var Xe=Object.getPrototypeOf,Ye=Object.prototype.hasOwnProperty;var et=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var tt=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Ze(e))!Ye.call(t,i)&&i!==n&&he(t,i,{get:()=>e[i],enumerable:!(r=Ge(e,i))||r.enumerable});return t};var nt=(t,e,n)=>(n=t!=null?Ke(Xe(t)):{},tt(e||!t||!t.__esModule?he(n,"default",{value:t,enumerable:!0}):n,t));var ye=et((me,ge)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(n){e.console&&console.warn&&console.warn(n)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;i0){var d=t.utils.clone(n)||{};d.position=[a,l],d.index=s.length,s.push(new t.Token(r.slice(a,o),d))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. +`,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r1&&(oe&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(oc?d+=2:a==c&&(n+=r[l+1]*i[d+1],l+=2,d+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var c=s.node.edges["*"];else{var c=new t.TokenSet;s.node.edges["*"]=c}if(s.str.length==0&&(c.final=!0),i.push({node:c,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}s.str.length==1&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var d=s.str.charAt(0),f=s.str.charAt(1),p;f in s.node.edges?p=s.node.edges[f]:(p=new t.TokenSet,s.node.edges[f]=p),s.str.length==1&&(p.final=!0),i.push({node:p,editsRemaining:s.editsRemaining-1,str:d+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),c=0;c1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,n){typeof define=="function"&&define.amd?define(n):typeof me=="object"?ge.exports=n():e.lunr=n()}(this,function(){return t})})()});var M,G={getItem(){return null},setItem(){}},K;try{K=localStorage,M=K}catch{K=G,M=G}var S={getItem:t=>M.getItem(t),setItem:(t,e)=>M.setItem(t,e),disableWritingLocalStorage(){M=G},disable(){localStorage.clear(),M=G},enable(){M=K}};window.TypeDoc||={disableWritingLocalStorage(){S.disableWritingLocalStorage()},disableLocalStorage:()=>{S.disable()},enableLocalStorage:()=>{S.enable()}};window.translations||={copy:"Copy",copied:"Copied!",normally_hidden:"This member is normally hidden due to your filter settings.",hierarchy_expand:"Expand",hierarchy_collapse:"Collapse",search_index_not_available:"The search index is not available",search_no_results_found_for_0:"No results found for {0}",folder:"Folder",kind_1:"Project",kind_2:"Module",kind_4:"Namespace",kind_8:"Enumeration",kind_16:"Enumeration Member",kind_32:"Variable",kind_64:"Function",kind_128:"Class",kind_256:"Interface",kind_512:"Constructor",kind_1024:"Property",kind_2048:"Method",kind_4096:"Call Signature",kind_8192:"Index Signature",kind_16384:"Constructor Signature",kind_32768:"Parameter",kind_65536:"Type Literal",kind_131072:"Type Parameter",kind_262144:"Accessor",kind_524288:"Get Signature",kind_1048576:"Set Signature",kind_2097152:"Type Alias",kind_4194304:"Reference",kind_8388608:"Document"};var pe=[];function X(t,e){pe.push({selector:e,constructor:t})}var Z=class{alwaysVisibleMember=null;constructor(){this.createComponents(document.body),this.ensureFocusedElementVisible(),this.listenForCodeCopies(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible()),document.body.style.display||(this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}createComponents(e){pe.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r,app:this}),r.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}showPage(){document.body.style.display&&(document.body.style.removeProperty("display"),this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}scrollToHash(){if(location.hash){let e=document.getElementById(location.hash.substring(1));if(!e)return;e.scrollIntoView({behavior:"instant",block:"start"})}}ensureActivePageVisible(){let e=document.querySelector(".tsd-navigation .current"),n=e?.parentElement;for(;n&&!n.classList.contains(".tsd-navigation");)n instanceof HTMLDetailsElement&&(n.open=!0),n=n.parentElement;if(e&&!rt(e)){let r=e.getBoundingClientRect().top-document.documentElement.clientHeight/4;document.querySelector(".site-menu").scrollTop=r,document.querySelector(".col-sidebar").scrollTop=r}}updateIndexVisibility(){let e=document.querySelector(".tsd-index-content"),n=e?.open;e&&(e.open=!0),document.querySelectorAll(".tsd-index-section").forEach(r=>{r.style.display="block";let i=Array.from(r.querySelectorAll(".tsd-index-link")).every(s=>s.offsetParent==null);r.style.display=i?"none":"block"}),e&&(e.open=n)}ensureFocusedElementVisible(){if(this.alwaysVisibleMember&&(this.alwaysVisibleMember.classList.remove("always-visible"),this.alwaysVisibleMember.firstElementChild.remove(),this.alwaysVisibleMember=null),!location.hash)return;let e=document.getElementById(location.hash.substring(1));if(!e)return;let n=e.parentElement;for(;n&&n.tagName!=="SECTION";)n=n.parentElement;if(!n)return;let r=n.offsetParent==null,i=n;for(;i!==document.body;)i instanceof HTMLDetailsElement&&(i.open=!0),i=i.parentElement;if(n.offsetParent==null){this.alwaysVisibleMember=n,n.classList.add("always-visible");let s=document.createElement("p");s.classList.add("warning"),s.textContent=window.translations.normally_hidden,n.prepend(s)}r&&e.scrollIntoView()}listenForCodeCopies(){document.querySelectorAll("pre > button").forEach(e=>{let n;e.addEventListener("click",()=>{e.previousElementSibling instanceof HTMLElement&&navigator.clipboard.writeText(e.previousElementSibling.innerText.trim()),e.textContent=window.translations.copied,e.classList.add("visible"),clearTimeout(n),n=setTimeout(()=>{e.classList.remove("visible"),n=setTimeout(()=>{e.textContent=window.translations.copy},100)},1e3)})})}};function rt(t){let e=t.getBoundingClientRect(),n=Math.max(document.documentElement.clientHeight,window.innerHeight);return!(e.bottom<0||e.top-n>=0)}var fe=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var Ie=nt(ye(),1);async function R(t){let e=Uint8Array.from(atob(t),s=>s.charCodeAt(0)),r=new Blob([e]).stream().pipeThrough(new DecompressionStream("deflate")),i=await new Response(r).text();return JSON.parse(i)}var Y="closing",ae="tsd-overlay";function it(){let t=Math.abs(window.innerWidth-document.documentElement.clientWidth);document.body.style.overflow="hidden",document.body.style.paddingRight=`${t}px`}function st(){document.body.style.removeProperty("overflow"),document.body.style.removeProperty("padding-right")}function xe(t,e){t.addEventListener("animationend",()=>{t.classList.contains(Y)&&(t.classList.remove(Y),document.getElementById(ae)?.remove(),t.close(),st())}),t.addEventListener("cancel",n=>{n.preventDefault(),ve(t)}),e?.closeOnClick&&document.addEventListener("click",n=>{t.open&&!t.contains(n.target)&&ve(t)},!0)}function Ee(t){if(t.open)return;let e=document.createElement("div");e.id=ae,document.body.appendChild(e),t.showModal(),it()}function ve(t){if(!t.open)return;document.getElementById(ae)?.classList.add(Y),t.classList.add(Y)}var I=class{el;app;constructor(e){this.el=e.el,this.app=e.app}};var be=document.head.appendChild(document.createElement("style"));be.dataset.for="filters";var le={};function we(t){for(let e of t.split(/\s+/))if(le.hasOwnProperty(e)&&!le[e])return!0;return!1}var ee=class extends I{key;value;constructor(e){super(e),this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),be.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } +`,this.app.updateIndexVisibility()}fromLocalStorage(){let e=S.getItem(this.key);return e?e==="true":this.el.checked}setLocalStorage(e){S.setItem(this.key,e.toString()),this.value=e,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),le[`tsd-is-${this.el.name}`]=this.value,this.app.filterChanged(),this.app.updateIndexVisibility()}};var Le=0;async function Se(t,e){if(!window.searchData)return;let n=await R(window.searchData);t.data=n,t.index=Ie.Index.load(n.index),e.innerHTML=""}function _e(){let t=document.getElementById("tsd-search-trigger"),e=document.getElementById("tsd-search"),n=document.getElementById("tsd-search-input"),r=document.getElementById("tsd-search-results"),i=document.getElementById("tsd-search-script"),s=document.getElementById("tsd-search-status");if(!(t&&e&&n&&r&&i&&s))throw new Error("Search controls missing");let o={base:document.documentElement.dataset.base};o.base.endsWith("/")||(o.base+="/"),i.addEventListener("error",()=>{let a=window.translations.search_index_not_available;Pe(s,a)}),i.addEventListener("load",()=>{Se(o,s)}),Se(o,s),ot({trigger:t,searchEl:e,results:r,field:n,status:s},o)}function ot(t,e){let{field:n,results:r,searchEl:i,status:s,trigger:o}=t;xe(i,{closeOnClick:!0});function a(){Ee(i),n.setSelectionRange(0,n.value.length)}o.addEventListener("click",a),n.addEventListener("input",fe(()=>{at(r,n,s,e)},200)),n.addEventListener("keydown",l=>{if(r.childElementCount===0||l.ctrlKey||l.metaKey||l.altKey)return;let d=n.getAttribute("aria-activedescendant"),f=d?document.getElementById(d):null;if(f){let p=!1,v=!1;switch(l.key){case"Home":case"End":case"ArrowLeft":case"ArrowRight":v=!0;break;case"ArrowDown":case"ArrowUp":p=l.shiftKey;break}(p||v)&&ke(n)}if(!l.shiftKey)switch(l.key){case"Enter":f?.querySelector("a")?.click();break;case"ArrowUp":Te(r,n,f,-1),l.preventDefault();break;case"ArrowDown":Te(r,n,f,1),l.preventDefault();break}});function c(){ke(n)}n.addEventListener("change",c),n.addEventListener("blur",c),n.addEventListener("click",c),document.body.addEventListener("keydown",l=>{if(l.altKey||l.metaKey||l.shiftKey)return;let d=l.ctrlKey&&l.key==="k",f=!l.ctrlKey&&!ut()&&l.key==="/";(d||f)&&(l.preventDefault(),a())})}function at(t,e,n,r){if(!r.index||!r.data)return;t.innerHTML="",n.innerHTML="",Le+=1;let i=e.value.trim(),s;if(i){let a=i.split(" ").map(c=>c.length?`*${c}*`:"").join(" ");s=r.index.search(a).filter(({ref:c})=>{let l=r.data.rows[Number(c)].classes;return!l||!we(l)})}else s=[];if(s.length===0&&i){let a=window.translations.search_no_results_found_for_0.replace("{0}",` "${te(i)}" `);Pe(n,a);return}for(let a=0;ac.score-a.score);let o=Math.min(10,s.length);for(let a=0;a`,f=Ce(c.name,i);globalThis.DEBUG_SEARCH_WEIGHTS&&(f+=` (score: ${s[a].score.toFixed(2)})`),c.parent&&(f=` + ${Ce(c.parent,i)}.${f}`);let p=document.createElement("li");p.id=`tsd-search:${Le}-${a}`,p.role="option",p.ariaSelected="false",p.classList.value=c.classes??"";let v=document.createElement("a");v.tabIndex=-1,v.href=r.base+c.url,v.innerHTML=d+`${f}`,p.append(v),t.appendChild(p)}}function Te(t,e,n,r){let i;if(r===1?i=n?.nextElementSibling||t.firstElementChild:i=n?.previousElementSibling||t.lastElementChild,i!==n){if(!i||i.role!=="option"){console.error("Option missing");return}i.ariaSelected="true",i.scrollIntoView({behavior:"smooth",block:"nearest"}),e.setAttribute("aria-activedescendant",i.id),n?.setAttribute("aria-selected","false")}}function ke(t){let e=t.getAttribute("aria-activedescendant");(e?document.getElementById(e):null)?.setAttribute("aria-selected","false"),t.setAttribute("aria-activedescendant","")}function Ce(t,e){if(e==="")return t;let n=t.toLocaleLowerCase(),r=e.toLocaleLowerCase(),i=[],s=0,o=n.indexOf(r);for(;o!=-1;)i.push(te(t.substring(s,o)),`${te(t.substring(o,o+r.length))}`),s=o+r.length,o=n.indexOf(r,s);return i.push(te(t.substring(s))),i.join("")}var lt={"&":"&","<":"<",">":">","'":"'",'"':"""};function te(t){return t.replace(/[&<>"'"]/g,e=>lt[e])}function Pe(t,e){t.innerHTML=e?`
${e}
`:""}var ct=["button","checkbox","file","hidden","image","radio","range","reset","submit"];function ut(){let t=document.activeElement;return t?t.isContentEditable||t.tagName==="TEXTAREA"||t.tagName==="SEARCH"?!0:t.tagName==="INPUT"&&!ct.includes(t.type):!1}var D="mousedown",Me="mousemove",$="mouseup",ne={x:0,y:0},Qe=!1,ce=!1,dt=!1,F=!1,Oe=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(Oe?"is-mobile":"not-mobile");Oe&&"ontouchstart"in document.documentElement&&(dt=!0,D="touchstart",Me="touchmove",$="touchend");document.addEventListener(D,t=>{ce=!0,F=!1;let e=D=="touchstart"?t.targetTouches[0]:t;ne.y=e.pageY||0,ne.x=e.pageX||0});document.addEventListener(Me,t=>{if(ce&&!F){let e=D=="touchstart"?t.targetTouches[0]:t,n=ne.x-(e.pageX||0),r=ne.y-(e.pageY||0);F=Math.sqrt(n*n+r*r)>10}});document.addEventListener($,()=>{ce=!1});document.addEventListener("click",t=>{Qe&&(t.preventDefault(),t.stopImmediatePropagation(),Qe=!1)});var re=class extends I{active;className;constructor(e){super(e),this.className=this.el.dataset.toggle||"",this.el.addEventListener($,n=>this.onPointerUp(n)),this.el.addEventListener("click",n=>n.preventDefault()),document.addEventListener(D,n=>this.onDocumentPointerDown(n)),document.addEventListener($,n=>this.onDocumentPointerUp(n))}setActive(e){if(this.active==e)return;this.active=e,document.documentElement.classList.toggle("has-"+this.className,e),this.el.classList.toggle("active",e);let n=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(n),setTimeout(()=>document.documentElement.classList.remove(n),500)}onPointerUp(e){F||(this.setActive(!0),e.preventDefault())}onDocumentPointerDown(e){if(this.active){if(e.target.closest(".col-sidebar, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(e){if(!F&&this.active&&e.target.closest(".col-sidebar")){let n=e.target.closest("a");if(n){let r=window.location.href;r.indexOf("#")!=-1&&(r=r.substring(0,r.indexOf("#"))),n.href.substring(0,r.length)==r&&setTimeout(()=>this.setActive(!1),250)}}}};var ue=new Map,de=class{open;accordions=[];key;constructor(e,n){this.key=e,this.open=n}add(e){this.accordions.push(e),e.open=this.open,e.addEventListener("toggle",()=>{this.toggle(e.open)})}toggle(e){for(let n of this.accordions)n.open=e;S.setItem(this.key,e.toString())}},ie=class extends I{constructor(e){super(e);let n=this.el.querySelector("summary"),r=n.querySelector("a");r&&r.addEventListener("click",()=>{location.assign(r.href)});let i=`tsd-accordion-${n.dataset.key??n.textContent.trim().replace(/\s+/g,"-").toLowerCase()}`,s;if(ue.has(i))s=ue.get(i);else{let o=S.getItem(i),a=o?o==="true":this.el.open;s=new de(i,a),ue.set(i,s)}s.add(this.el)}};function He(t){let e=S.getItem("tsd-theme")||"os";t.value=e,Ae(e),t.addEventListener("change",()=>{S.setItem("tsd-theme",t.value),Ae(t.value)})}function Ae(t){document.documentElement.dataset.theme=t}var se;function Ne(){let t=document.getElementById("tsd-nav-script");t&&(t.addEventListener("load",Re),Re())}async function Re(){let t=document.getElementById("tsd-nav-container");if(!t||!window.navigationData)return;let e=await R(window.navigationData);se=document.documentElement.dataset.base,se.endsWith("/")||(se+="/"),t.innerHTML="";for(let n of e)Be(n,t,[]);window.app.createComponents(t),window.app.showPage(),window.app.ensureActivePageVisible()}function Be(t,e,n){let r=e.appendChild(document.createElement("li"));if(t.children){let i=[...n,t.text],s=r.appendChild(document.createElement("details"));s.className=t.class?`${t.class} tsd-accordion`:"tsd-accordion";let o=s.appendChild(document.createElement("summary"));o.className="tsd-accordion-summary",o.dataset.key=i.join("$"),o.innerHTML='',De(t,o);let a=s.appendChild(document.createElement("div"));a.className="tsd-accordion-details";let c=a.appendChild(document.createElement("ul"));c.className="tsd-nested-navigation";for(let l of t.children)Be(l,c,i)}else De(t,r,t.class)}function De(t,e,n){if(t.path){let r=e.appendChild(document.createElement("a"));if(r.href=se+t.path,n&&(r.className=n),location.pathname===r.pathname&&!r.href.includes("#")&&(r.classList.add("current"),r.ariaCurrent="page"),t.kind){let i=window.translations[`kind_${t.kind}`].replaceAll('"',""");r.innerHTML=``}r.appendChild(Fe(t.text,document.createElement("span")))}else{let r=e.appendChild(document.createElement("span")),i=window.translations.folder.replaceAll('"',""");r.innerHTML=``,r.appendChild(Fe(t.text,document.createElement("span")))}}function Fe(t,e){let n=t.split(/(?<=[^A-Z])(?=[A-Z])|(?<=[A-Z])(?=[A-Z][a-z])|(?<=[_-])(?=[^_-])/);for(let r=0;r{let i=r.target;for(;i.parentElement&&i.parentElement.tagName!="LI";)i=i.parentElement;i.dataset.dropdown&&(i.dataset.dropdown=String(i.dataset.dropdown!=="true"))});let t=new Map,e=new Set;for(let r of document.querySelectorAll(".tsd-full-hierarchy [data-refl]")){let i=r.querySelector("ul");t.has(r.dataset.refl)?e.add(r.dataset.refl):i&&t.set(r.dataset.refl,i)}for(let r of e)n(r);function n(r){let i=t.get(r).cloneNode(!0);i.querySelectorAll("[id]").forEach(s=>{s.removeAttribute("id")}),i.querySelectorAll("[data-dropdown]").forEach(s=>{s.dataset.dropdown="false"});for(let s of document.querySelectorAll(`[data-refl="${r}"]`)){let o=gt(),a=s.querySelector("ul");s.insertBefore(o,a),o.dataset.dropdown=String(!!a),a||s.appendChild(i.cloneNode(!0))}}}function pt(){let t=document.getElementById("tsd-hierarchy-script");t&&(t.addEventListener("load",Ve),Ve())}async function Ve(){let t=document.querySelector(".tsd-panel.tsd-hierarchy:has(h4 a)");if(!t||!window.hierarchyData)return;let e=+t.dataset.refl,n=await R(window.hierarchyData),r=t.querySelector("ul"),i=document.createElement("ul");if(i.classList.add("tsd-hierarchy"),ft(i,n,e),r.querySelectorAll("li").length==i.querySelectorAll("li").length)return;let s=document.createElement("span");s.classList.add("tsd-hierarchy-toggle"),s.textContent=window.translations.hierarchy_expand,t.querySelector("h4 a")?.insertAdjacentElement("afterend",s),s.insertAdjacentText("beforebegin",", "),s.addEventListener("click",()=>{s.textContent===window.translations.hierarchy_expand?(r.insertAdjacentElement("afterend",i),r.remove(),s.textContent=window.translations.hierarchy_collapse):(i.insertAdjacentElement("afterend",r),i.remove(),s.textContent=window.translations.hierarchy_expand)})}function ft(t,e,n){let r=e.roots.filter(i=>mt(e,i,n));for(let i of r)t.appendChild(je(e,i,n))}function je(t,e,n,r=new Set){if(r.has(e))return;r.add(e);let i=t.reflections[e],s=document.createElement("li");if(s.classList.add("tsd-hierarchy-item"),e===n){let o=s.appendChild(document.createElement("span"));o.textContent=i.name,o.classList.add("tsd-hierarchy-target")}else{for(let a of i.uniqueNameParents||[]){let c=t.reflections[a],l=s.appendChild(document.createElement("a"));l.textContent=c.name,l.href=oe+c.url,l.className=c.class+" tsd-signature-type",s.append(document.createTextNode("."))}let o=s.appendChild(document.createElement("a"));o.textContent=t.reflections[e].name,o.href=oe+i.url,o.className=i.class+" tsd-signature-type"}if(i.children){let o=s.appendChild(document.createElement("ul"));o.classList.add("tsd-hierarchy");for(let a of i.children){let c=je(t,a,n,r);c&&o.appendChild(c)}}return r.delete(e),s}function mt(t,e,n){if(e===n)return!0;let r=new Set,i=[t.reflections[e]];for(;i.length;){let s=i.pop();if(!r.has(s)){r.add(s);for(let o of s.children||[]){if(o===n)return!0;i.push(t.reflections[o])}}}return!1}function gt(){let t=document.createElementNS("http://www.w3.org/2000/svg","svg");return t.setAttribute("width","20"),t.setAttribute("height","20"),t.setAttribute("viewBox","0 0 24 24"),t.setAttribute("fill","none"),t.innerHTML='',t}X(re,"a[data-toggle]");X(ie,".tsd-accordion");X(ee,".tsd-filter-item input[type=checkbox]");var qe=document.getElementById("tsd-theme");qe&&He(qe);var yt=new Z;Object.defineProperty(window,"app",{value:yt});_e();Ne();$e();"virtualKeyboard"in navigator&&(navigator.virtualKeyboard.overlaysContent=!0);})(); /*! Bundled license information: lunr/lunr.js: diff --git a/docs/assets/navigation.js b/docs/assets/navigation.js index 91076551..c8a14767 100644 --- a/docs/assets/navigation.js +++ b/docs/assets/navigation.js @@ -1 +1 @@ -window.navigationData = "data:application/octet-stream;base64,H4sIAAAAAAAAE6WWXW+bMBSG/4uv062N1q7L3RRNU6RUjZJWu5h24cIBrDo2sw9b06r/fTKMBPAHyLkM5/XzOMY+5ucbQXhBsiBfKyxAIEsoMim+KSUVmZGSYkEWJOFUa9AfHaEPBe45mZFnJlKyuJrfzpo0WRDU6QXTF/CCoATl5H12tH0HAYolHk23GsdfiTvYS3VY0qQAW9ArxxnWMqF8h1LRHDwWKxJnusvoFn5XTEHqWa9hItLDtGYi30KmQBcP8hl828CXjPPem13lMZ1qFrtD2MiyKpdUJMC5d5Ecobj51qAHtgdZYcjVjcSZwpLz+Y8aHFzzNI5nXtblUgrzcyUQVEaTzrlg7aOmkVjJvnR+fTNEb5T8w1JQ96VpP9pPHgTHwFKx17qjbaiiez93kLOwE1sf1idmxzgI5IfQn/FkzxP/YFjUG3SKeRiOU68GHbIjWjk642RsWs/RzW1qceC1zGWFofXpJUL7qwk+Kj5OO4XiZt10OCkylodkduwM3VrmTIzauqk42RZSpiDBUZ8rGHo/ZoO3PaN0I/uRKbDTN1J7L4emPDoq2L/KcocUO4cLD6XpV/+fD8Zefvl8dT3vjK+Pn/lSMaYhpFd0kia9vBpDn7g1yWMhnt29SU74rBJJvXS9m6Zvufnku1+8nDYQAFUa6qiL0dYCw/+2e801/licALA3U4hopy3Fr3+FU0zaLAwAAA==" \ No newline at end of file +window.navigationData = "eJylll1v0zAUhv+Lr7uxdWxA71CFUKVOq9pNXCAuTHLSWHPtYJ+MFcR/R06W5sMfidzL5rx+Hje2j/P9L0F4RbIgn0vMQSBLKDIpviglFZmRgmJOFiThVGvQ7xyhyxwPnMzIMxMpWVzPP87qNFkQ1OkF0xfwiqAE5eTf7GT7CgIUSzyabjWOvxL3cJDquKRJDragV44zrGVC+Q6lonvwWKxInOk+o1v4VTIFqed9DRORHqY1E/stZAp0/iifwbcNfMk474PZVR5TW7PYHcJGFmWxpCIBzr0vyRGKm28FemQHkCWGXN1InCksOZ//pMHBNU/jeGaxrpZSmJ8rgaAymnTOBWse1Y3ESval89u7IXqj5AtLQT0Upv1oP3kQHANLxf5UHW1DFT34uYOchZ3Y+rA6MTvGQSA/hv6MJ3ue+BvDvNqgU8zDcJx6NeiQHdHK0RknY9Nqjm5uXYsDr+Velhh6P71EaH/VwSfFx2ltKG7WdYeTImP7kMyOnaFbyz0To7ZuKk62hZQpSHDU5wqG1sds8KZnFG5kPzIF1n4jNfdyaMqjo4L9qyh2SLFzuPBYmH719nww9urTh+vbeWd8dfzoT24BTgUnYdKiVQjzFWT+hZPfFOMd3ZukVbxQxczc+zdN33Iz990vLScrRVItQf9e6YPu3ndApYYq6mI0tcDw381ec40/FScA7M0UItppS/HjP4K3Nns=" \ No newline at end of file diff --git a/docs/assets/search.js b/docs/assets/search.js index e83b055d..58631ebd 100644 --- a/docs/assets/search.js +++ b/docs/assets/search.js @@ -1 +1 @@ -window.searchData = "data:application/octet-stream;base64,H4sIAAAAAAAAE81ayW7bSBD9l9aVltWLqOWWCeYQIECCJJg5EIbBUG2bME1ySCoLDP/7oLlWUV1cpATOSbBZVf36vdfNYpPPLEu+52zvPbPHMD6wvascFvtPmu3Zm2PxsPqYJd/Cg86Yw45ZxPbs7hgHRZjE+TW6vnwoniLmsCDy81znbM/Yi9MUFWvXXvVDWpZqi4dxobM7P9C96nXc4CB8JTrswUMYHTIdz6q8AFlgCIelfqbjggJPQEjiT/oQZjoo3vpR9NUPHueBseafBctdr2UnwO1t8TPVl2JZVmWu1CxQS8ukCPryxzC9jECiwuXKBklc6B/FTG+1SWcBEKvdhq9Ft4zS9HPhF52ORo38uvn34EoZ9IOlzqINIaA3WAi+Ml0cs/hLMmGMJYgdHqw2IJxWN+Ix1yWfll2ruTTMUFfqe1g8ULXaa5N3v3+bjI9Zklr3PRwxfcfzEcbhgosm2E5xD+QgLTouwsA3dHzS/x3DTB8GeDoNnk3caYmBe8ho0nR6Tzw8e5jFqLXH5zh6qwnj+wsQ9utcDnPqreccgM0tSJyPdIlnTNL7l75LMo1LXTQNouAfSLgN6XLkhjCFdysDhABRch/GF6/zRa/ML16EA13BRHxjLcIsH/T6+Lc9dL02vr48r4uvk941EyUbon7g9G33XhdvgkDn+ZfkUcefw0jHRfRz3kALsshAJ3YytzPb6TmIxpaVvSAxu0mEGkd9TNJjehF+WOUPobSFNPE5ZYTVboY0re8OZejbyA+f6CdaEnw//TWJRFgaBt35DOI5DW3uhuDmTjwTry3/1cg7AdOwx+kuxV7udFpj/J2zkE+SX585tGw5/ZQyQtvgco2S++R4htGqpNfkKDl2lpq7p9UTIDh58ONDpCcfudgRkkVejTM7oobD7UwKifkRlOosS7KZeJucDlWRH67C/CqMH3QWFuUD9mQCEZwwB90jeFCfBuw0+7dAfJ/4B+IpdhBcl/cbYB1zPVfHOuXXgIGt9/tyFQ88DaGAyR194+n3I89atrjhfl5s20E+mIn+jVZFnXPdXRqstuYCPnHlRXYMivFyCxxrX/IA3aQFTY11uoTPGOX2oPMgC1N01DA4Yi9jfPQbh4XxQf9g+2f2TWe5ydszsZTLHXPYXaijg3k1VMFyWJA8PZkiN/W1f7Rh00RUIdcr5ngrR66XK9e9uXG8JqO8UP6jDOPM8bgtjKMwwRxP2MIECpPM8aQtTKIwxRxPOVwt3d0GhSkUtmaOt7ZVW6Mwlzme64jdcrfG1VwUtmGOt7FV26CwLYVti8J2zPG2tkF3mF7D9s7Kb0+HUgirYBxLYZpXj9s1w2pwwzq3ysaxIKZ78bhVOY414YZ7rqyRWBbuUhRxLAw3AnCr0Bxrw0lxOFaHGxW4ay2JBRIrqqTAAolSIKuBRG+tCMqQAusjSn221pJYH1HqY/WRwPoII4Kw+khgfYRLzhzrI4wIwmo4gfURpD4C6yOMCMK+oWB9JKmPxPpII4Kwbz5YHynIkr3dzIggrF6XWB9J7mgSyyNLeaxel1geScojsTyylMfqdYnlkaQ8EssjS3k2NgtLLI8yIgirhRXWR5X6WC2ssD7KqCCtFlZYIFXeb6zOVL07jpFBWg2nsELKyCCtPlJYIWV0kFZ7KCyR2pB8KiyRMkJIqz9UpVHZJ3zTWaEP76p+wfPah7Fndls3EW0D88wU2z+/OGxb/fD6V6zqX7f+rf8v6/9LUf/W6bKOk2XcS9eBmL8MTj9N8+oleIdi06HYUGnV288up+spnxmXQ1ntET1I3nbJYkpy20yjKjtQRQ1VSdsvcrrsVZe8mpKbNP09AAAoIEp0n8d0aYA5QaXB1rvLlNAvLp3b59vt0hofUSPXjThAC9whd1W2omxiaaoB+jVAT/nzXhd+eYhcmGPQvH3xAAAB5cR6UhnzMj2tTutAHSCfoCZ0r4vwUNYI6lNmUAAKuSMKVKcfWf0EGLSnO6AMUEdSOMLcxycJIB8sJkVZOcyj5mEfZIIFpCgHl6eDNvMDX4jBZDv7wMqS2gLa9Kw9pwYVJKgwAKA8gARpwIWSsk+VZpm1BKZRFOyk1Kq/kCTAq6iBk/hr+ZLX773mBrwDu3DKdUk85DhI3GiBnmc4oI9Tbm1yKe9IsHIUtXNX334UCUwEVq+3Ik5tg+ZTtiESwDwoMY65PrnvgSXDqcVWnWOB6YIdS1Ebr7H56V0WZHLK421mWn0gBdLhHWps4M5uWftZEigFTMMpyehStg0E7ADcKsGNw9Iw1VEYa7b3bl5e/gfBQ3fmeysAAA=="; \ No newline at end of file +window.searchData = "eJy1mU1v2zgQhv8Lc1VTz9Dft7bYQ4ECLbbF7sEIClViYiKKpJXktEWQ/76gZElDceRQsXszLM7Ll+QzQ0p8EkX2sxTb3ZO412kstoDrQKThgxJb8fndodr/VRRZIQJxKBKxFVESlqUq3/aPrvfVQyKC9onYCvEctGoLwE4tytKyKg5R9bLcld2WSAciDwuVVra7vkOY4bzrUflYv2pbndXL91iVUaHzSmepX4+DiAm942LZdW6ezz5kaaV+VR/TShW3YaQ6A7r9p3zLNjy5diem0kuXmdiqjN/o8o1O96rQlYrpUPmRjNi5U9W7KFJl+S27V+lXnai0Sn5P9HenqrAWqYxI2Yvwa3GGwX91tf+S5Yf8LIc/dbXPjyqXsfgxru19SEL9UE73puPaV9SGX8DUPkzjRP2tYl2oqPoQJsmPMLqfaK0RKY4iUS9yAYO6NM1VWukobAie4kyX4SD6DySHLj9lYazTu8nmki7uD9hKsjv96kyogy+cAJ2hFrfXeir6+MvYyg6v8NIEXcDAoVRTS/0x5DLUOPvblyJ71LEqPteb5XihGrTz392ivU7iQqWTlK9I1IlZH5ofs9DMx0QHXdD5BrLUu+qyXrJ0WsH1tFXe6/w8Y0bhUtYomp/qlDvBpNXgJIxUth3sJ1NdTqhz7bw7MVWvHWrOytst/FPJ7G8zT8GrtjG/FgOTp0dy3FO1wfi/gy5UfGLuXgyaUDrG89avlxeT+OURntrfzp6FZpvLOpkLm8zS9+o2K5QdfIbdLP1RC4ZDwYsbbzNw5KTl7bewdC5ss1DVoUi/ZWc4bCSq7CLmcLZZwaL/KvAuz79WYdW/s1a/c1POj3/7J6IzUEbo5aF0dvpeJLJv210/j2Ghwx/J4IB00vhyzh9wOs3bQxrVM2fva76ih7LOpxmj1z7ylfrZFmFGq3s2VcwF5YS625jr7iYQOo3VL7F9Eo+qKE3ObwVey+uNCMStVklsPnM1TgIRZQ8PZsUDEWfRof55c2z2jzKfnUzjpvXbmQh2s0Di9WINNzfBrg2uH9R/tBr9P3UgiGAHXCA4gWAFogh2GODqer6SViA6gWgFShHsJNejdAKlFTgXwW7OBc6dwLkVuBizunACF1bgUgS7Bdfj0glcWoErEeyWXODKCVxZgWsR7FZc4NoJXFuBGxHs1lzgxgnc2AAYHjYsAS47MICnpoflDhh+bIDAYAE8ey5DYEMEBg1ANtjlCGyQwOABLIPgsgQ2TGAQAZZDcHkCGygwmACLFLhMgQ0VGFSAxQpcrsAGCwwusOKyAFy2wIYLDDLA4gUuX2ADhoYZYAlDlzC0CUPDDLKEoUsYDkpUXaNYwpCpUjZhaJhBljB0CUObMDTMIEsYuoShTRjW9YolDF3C0CYMl6PrjC5haBOGhhlk8USXMLQJQ8MMsniiSxjahKFhBtnKhy5haBMmDTO45sYsXcKkTZisCWPxlC5h0iZM4njPLmFysBHWOyHLtmT2QpswaZiRLNvSJUzahEnDjGTZli5h0iZMGmYkv4O7hEmbMGmYkSzb0iXs+Fd9bnpURaXij835abcTYZ6XzaH8SXw/Hqtw0x7jnoQEsX16fu6PUdunZ3KSMs9MX8fXe6Ihew2c+2t0r8i9lJwRO3KyVPcWRDXnveQEc3l3eCfugLh7hVb3ut1LwqKXhKWXZP+BksgsiczKT4ZexhIlIuSrM1xFWBGRdROHfoM73i4SuAhbTczCX8i+jSULSdbRS23sUrGXJOvoN9LRW8Bekyyq35q6t3e9GFmTtZfY2H1bL7nuJTdeks5FWa9F6hDMPMW6iy2CHikg4Aew/SWMkEeWFP3mf3ifRXzRvMJpYv1FFNEjeQF+DLeXSUSE5AH41bNGhJstMvHoN/FZDcMw4YmOHwdjnwaJN5JI6Ac/d+9BJo6QD37oDz4IEnMkMdFPq1UaJZfAhn6w9Z/QiAwZpZw1gdJPjr+dIRNI0h39lvlQKufkIUkWSL99obnTJE7I8QD8JExOulbonuK3A3Q6eXNdQ2ae7np+2d2K9RlQdB/hiEsyWulX08aFOfKIPnrM5k0gcp2rRKdKbHc3z8//Ay+N4VU="; \ No newline at end of file diff --git a/docs/assets/style.css b/docs/assets/style.css index 778b9492..5ba5a2a9 100644 --- a/docs/assets/style.css +++ b/docs/assets/style.css @@ -1,99 +1,288 @@ -:root { - /* Light */ - --light-color-background: #f2f4f8; - --light-color-background-secondary: #eff0f1; - --light-color-warning-text: #222; - --light-color-background-warning: #e6e600; - --light-color-icon-background: var(--light-color-background); - --light-color-accent: #c5c7c9; - --light-color-active-menu-item: var(--light-color-accent); - --light-color-text: #222; - --light-color-text-aside: #6e6e6e; - --light-color-link: #1f70c2; - - --light-color-ts-keyword: #056bd6; - --light-color-ts-project: #b111c9; - --light-color-ts-module: var(--light-color-ts-project); - --light-color-ts-namespace: var(--light-color-ts-project); - --light-color-ts-enum: #7e6f15; - --light-color-ts-enum-member: var(--light-color-ts-enum); - --light-color-ts-variable: #4760ec; - --light-color-ts-function: #572be7; - --light-color-ts-class: #1f70c2; - --light-color-ts-interface: #108024; - --light-color-ts-constructor: var(--light-color-ts-class); - --light-color-ts-property: var(--light-color-ts-variable); - --light-color-ts-method: var(--light-color-ts-function); - --light-color-ts-call-signature: var(--light-color-ts-method); - --light-color-ts-index-signature: var(--light-color-ts-property); - --light-color-ts-constructor-signature: var(--light-color-ts-constructor); - --light-color-ts-parameter: var(--light-color-ts-variable); - /* type literal not included as links will never be generated to it */ - --light-color-ts-type-parameter: #a55c0e; - --light-color-ts-accessor: var(--light-color-ts-property); - --light-color-ts-get-signature: var(--light-color-ts-accessor); - --light-color-ts-set-signature: var(--light-color-ts-accessor); - --light-color-ts-type-alias: #d51270; - /* reference not included as links will be colored with the kind that it points to */ - - --light-external-icon: url("data:image/svg+xml;utf8,"); - --light-color-scheme: light; - - /* Dark */ - --dark-color-background: #2b2e33; - --dark-color-background-secondary: #1e2024; - --dark-color-background-warning: #bebe00; - --dark-color-warning-text: #222; - --dark-color-icon-background: var(--dark-color-background-secondary); - --dark-color-accent: #9096a2; - --dark-color-active-menu-item: #5d5d6a; - --dark-color-text: #f5f5f5; - --dark-color-text-aside: #dddddd; - --dark-color-link: #00aff4; - - --dark-color-ts-keyword: #3399ff; - --dark-color-ts-project: #e358ff; - --dark-color-ts-module: var(--dark-color-ts-project); - --dark-color-ts-namespace: var(--dark-color-ts-project); - --dark-color-ts-enum: #f4d93e; - --dark-color-ts-enum-member: var(--dark-color-ts-enum); - --dark-color-ts-variable: #798dff; - --dark-color-ts-function: #a280ff; - --dark-color-ts-class: #8ac4ff; - --dark-color-ts-interface: #6cff87; - --dark-color-ts-constructor: var(--dark-color-ts-class); - --dark-color-ts-property: var(--dark-color-ts-variable); - --dark-color-ts-method: var(--dark-color-ts-function); - --dark-color-ts-call-signature: var(--dark-color-ts-method); - --dark-color-ts-index-signature: var(--dark-color-ts-property); - --dark-color-ts-constructor-signature: var(--dark-color-ts-constructor); - --dark-color-ts-parameter: var(--dark-color-ts-variable); - /* type literal not included as links will never be generated to it */ - --dark-color-ts-type-parameter: #e07d13; - --dark-color-ts-accessor: var(--dark-color-ts-property); - --dark-color-ts-get-signature: var(--dark-color-ts-accessor); - --dark-color-ts-set-signature: var(--dark-color-ts-accessor); - --dark-color-ts-type-alias: #ff6492; - /* reference not included as links will be colored with the kind that it points to */ - - --dark-external-icon: url("data:image/svg+xml;utf8,"); - --dark-color-scheme: dark; -} +@layer typedoc { + :root { + --dim-toolbar-contents-height: 2.5rem; + --dim-toolbar-border-bottom-width: 1px; + --dim-header-height: calc( + var(--dim-toolbar-border-bottom-width) + + var(--dim-toolbar-contents-height) + ); + + /* 0rem For mobile; unit is required for calculation in `calc` */ + --dim-container-main-margin-y: 0rem; + + --dim-footer-height: 3.5rem; + + --modal-animation-duration: 0.2s; + } + + :root { + /* Light */ + --light-color-background: #f2f4f8; + --light-color-background-secondary: #eff0f1; + /* Not to be confused with [:active](https://developer.mozilla.org/en-US/docs/Web/CSS/:active) */ + --light-color-background-active: #d6d8da; + --light-color-background-warning: #e6e600; + --light-color-warning-text: #222; + --light-color-accent: #c5c7c9; + --light-color-active-menu-item: var(--light-color-background-active); + --light-color-text: #222; + --light-color-contrast-text: #000; + --light-color-text-aside: #5e5e5e; + + --light-color-icon-background: var(--light-color-background); + --light-color-icon-text: var(--light-color-text); + + --light-color-comment-tag-text: var(--light-color-text); + --light-color-comment-tag: var(--light-color-background); + + --light-color-link: #1f70c2; + --light-color-focus-outline: #3584e4; + + --light-color-ts-keyword: #056bd6; + --light-color-ts-project: #b111c9; + --light-color-ts-module: var(--light-color-ts-project); + --light-color-ts-namespace: var(--light-color-ts-project); + --light-color-ts-enum: #7e6f15; + --light-color-ts-enum-member: var(--light-color-ts-enum); + --light-color-ts-variable: #4760ec; + --light-color-ts-function: #572be7; + --light-color-ts-class: #1f70c2; + --light-color-ts-interface: #108024; + --light-color-ts-constructor: var(--light-color-ts-class); + --light-color-ts-property: #9f5f30; + --light-color-ts-method: #be3989; + --light-color-ts-reference: #ff4d82; + --light-color-ts-call-signature: var(--light-color-ts-method); + --light-color-ts-index-signature: var(--light-color-ts-property); + --light-color-ts-constructor-signature: var( + --light-color-ts-constructor + ); + --light-color-ts-parameter: var(--light-color-ts-variable); + /* type literal not included as links will never be generated to it */ + --light-color-ts-type-parameter: #a55c0e; + --light-color-ts-accessor: #c73c3c; + --light-color-ts-get-signature: var(--light-color-ts-accessor); + --light-color-ts-set-signature: var(--light-color-ts-accessor); + --light-color-ts-type-alias: #d51270; + /* reference not included as links will be colored with the kind that it points to */ + --light-color-document: #000000; + + --light-color-alert-note: #0969d9; + --light-color-alert-tip: #1a7f37; + --light-color-alert-important: #8250df; + --light-color-alert-warning: #9a6700; + --light-color-alert-caution: #cf222e; + + --light-external-icon: url("data:image/svg+xml;utf8,"); + --light-color-scheme: light; + } -@media (prefers-color-scheme: light) { :root { + /* Dark */ + --dark-color-background: #2b2e33; + --dark-color-background-secondary: #1e2024; + /* Not to be confused with [:active](https://developer.mozilla.org/en-US/docs/Web/CSS/:active) */ + --dark-color-background-active: #5d5d6a; + --dark-color-background-warning: #bebe00; + --dark-color-warning-text: #222; + --dark-color-accent: #9096a2; + --dark-color-active-menu-item: var(--dark-color-background-active); + --dark-color-text: #f5f5f5; + --dark-color-contrast-text: #ffffff; + --dark-color-text-aside: #dddddd; + + --dark-color-icon-background: var(--dark-color-background-secondary); + --dark-color-icon-text: var(--dark-color-text); + + --dark-color-comment-tag-text: var(--dark-color-text); + --dark-color-comment-tag: var(--dark-color-background); + + --dark-color-link: #00aff4; + --dark-color-focus-outline: #4c97f2; + + --dark-color-ts-keyword: #3399ff; + --dark-color-ts-project: #e358ff; + --dark-color-ts-module: var(--dark-color-ts-project); + --dark-color-ts-namespace: var(--dark-color-ts-project); + --dark-color-ts-enum: #f4d93e; + --dark-color-ts-enum-member: var(--dark-color-ts-enum); + --dark-color-ts-variable: #798dff; + --dark-color-ts-function: #a280ff; + --dark-color-ts-class: #8ac4ff; + --dark-color-ts-interface: #6cff87; + --dark-color-ts-constructor: var(--dark-color-ts-class); + --dark-color-ts-property: #ff984d; + --dark-color-ts-method: #ff4db8; + --dark-color-ts-reference: #ff4d82; + --dark-color-ts-call-signature: var(--dark-color-ts-method); + --dark-color-ts-index-signature: var(--dark-color-ts-property); + --dark-color-ts-constructor-signature: var(--dark-color-ts-constructor); + --dark-color-ts-parameter: var(--dark-color-ts-variable); + /* type literal not included as links will never be generated to it */ + --dark-color-ts-type-parameter: #e07d13; + --dark-color-ts-accessor: #ff6060; + --dark-color-ts-get-signature: var(--dark-color-ts-accessor); + --dark-color-ts-set-signature: var(--dark-color-ts-accessor); + --dark-color-ts-type-alias: #ff6492; + /* reference not included as links will be colored with the kind that it points to */ + --dark-color-document: #ffffff; + + --dark-color-alert-note: #0969d9; + --dark-color-alert-tip: #1a7f37; + --dark-color-alert-important: #8250df; + --dark-color-alert-warning: #9a6700; + --dark-color-alert-caution: #cf222e; + + --dark-external-icon: url("data:image/svg+xml;utf8,"); + --dark-color-scheme: dark; + } + + @media (prefers-color-scheme: light) { + :root { + --color-background: var(--light-color-background); + --color-background-secondary: var( + --light-color-background-secondary + ); + --color-background-active: var(--light-color-background-active); + --color-background-warning: var(--light-color-background-warning); + --color-warning-text: var(--light-color-warning-text); + --color-accent: var(--light-color-accent); + --color-active-menu-item: var(--light-color-active-menu-item); + --color-text: var(--light-color-text); + --color-contrast-text: var(--light-color-contrast-text); + --color-text-aside: var(--light-color-text-aside); + + --color-icon-background: var(--light-color-icon-background); + --color-icon-text: var(--light-color-icon-text); + + --color-comment-tag-text: var(--light-color-text); + --color-comment-tag: var(--light-color-background); + + --color-link: var(--light-color-link); + --color-focus-outline: var(--light-color-focus-outline); + + --color-ts-keyword: var(--light-color-ts-keyword); + --color-ts-project: var(--light-color-ts-project); + --color-ts-module: var(--light-color-ts-module); + --color-ts-namespace: var(--light-color-ts-namespace); + --color-ts-enum: var(--light-color-ts-enum); + --color-ts-enum-member: var(--light-color-ts-enum-member); + --color-ts-variable: var(--light-color-ts-variable); + --color-ts-function: var(--light-color-ts-function); + --color-ts-class: var(--light-color-ts-class); + --color-ts-interface: var(--light-color-ts-interface); + --color-ts-constructor: var(--light-color-ts-constructor); + --color-ts-property: var(--light-color-ts-property); + --color-ts-method: var(--light-color-ts-method); + --color-ts-reference: var(--light-color-ts-reference); + --color-ts-call-signature: var(--light-color-ts-call-signature); + --color-ts-index-signature: var(--light-color-ts-index-signature); + --color-ts-constructor-signature: var( + --light-color-ts-constructor-signature + ); + --color-ts-parameter: var(--light-color-ts-parameter); + --color-ts-type-parameter: var(--light-color-ts-type-parameter); + --color-ts-accessor: var(--light-color-ts-accessor); + --color-ts-get-signature: var(--light-color-ts-get-signature); + --color-ts-set-signature: var(--light-color-ts-set-signature); + --color-ts-type-alias: var(--light-color-ts-type-alias); + --color-document: var(--light-color-document); + + --color-alert-note: var(--light-color-alert-note); + --color-alert-tip: var(--light-color-alert-tip); + --color-alert-important: var(--light-color-alert-important); + --color-alert-warning: var(--light-color-alert-warning); + --color-alert-caution: var(--light-color-alert-caution); + + --external-icon: var(--light-external-icon); + --color-scheme: var(--light-color-scheme); + } + } + + @media (prefers-color-scheme: dark) { + :root { + --color-background: var(--dark-color-background); + --color-background-secondary: var( + --dark-color-background-secondary + ); + --color-background-active: var(--dark-color-background-active); + --color-background-warning: var(--dark-color-background-warning); + --color-warning-text: var(--dark-color-warning-text); + --color-accent: var(--dark-color-accent); + --color-active-menu-item: var(--dark-color-active-menu-item); + --color-text: var(--dark-color-text); + --color-contrast-text: var(--dark-color-contrast-text); + --color-text-aside: var(--dark-color-text-aside); + + --color-icon-background: var(--dark-color-icon-background); + --color-icon-text: var(--dark-color-icon-text); + + --color-comment-tag-text: var(--dark-color-text); + --color-comment-tag: var(--dark-color-background); + + --color-link: var(--dark-color-link); + --color-focus-outline: var(--dark-color-focus-outline); + + --color-ts-keyword: var(--dark-color-ts-keyword); + --color-ts-project: var(--dark-color-ts-project); + --color-ts-module: var(--dark-color-ts-module); + --color-ts-namespace: var(--dark-color-ts-namespace); + --color-ts-enum: var(--dark-color-ts-enum); + --color-ts-enum-member: var(--dark-color-ts-enum-member); + --color-ts-variable: var(--dark-color-ts-variable); + --color-ts-function: var(--dark-color-ts-function); + --color-ts-class: var(--dark-color-ts-class); + --color-ts-interface: var(--dark-color-ts-interface); + --color-ts-constructor: var(--dark-color-ts-constructor); + --color-ts-property: var(--dark-color-ts-property); + --color-ts-method: var(--dark-color-ts-method); + --color-ts-reference: var(--dark-color-ts-reference); + --color-ts-call-signature: var(--dark-color-ts-call-signature); + --color-ts-index-signature: var(--dark-color-ts-index-signature); + --color-ts-constructor-signature: var( + --dark-color-ts-constructor-signature + ); + --color-ts-parameter: var(--dark-color-ts-parameter); + --color-ts-type-parameter: var(--dark-color-ts-type-parameter); + --color-ts-accessor: var(--dark-color-ts-accessor); + --color-ts-get-signature: var(--dark-color-ts-get-signature); + --color-ts-set-signature: var(--dark-color-ts-set-signature); + --color-ts-type-alias: var(--dark-color-ts-type-alias); + --color-document: var(--dark-color-document); + + --color-alert-note: var(--dark-color-alert-note); + --color-alert-tip: var(--dark-color-alert-tip); + --color-alert-important: var(--dark-color-alert-important); + --color-alert-warning: var(--dark-color-alert-warning); + --color-alert-caution: var(--dark-color-alert-caution); + + --external-icon: var(--dark-external-icon); + --color-scheme: var(--dark-color-scheme); + } + } + + :root[data-theme="light"] { --color-background: var(--light-color-background); --color-background-secondary: var(--light-color-background-secondary); + --color-background-active: var(--light-color-background-active); --color-background-warning: var(--light-color-background-warning); --color-warning-text: var(--light-color-warning-text); --color-icon-background: var(--light-color-icon-background); --color-accent: var(--light-color-accent); --color-active-menu-item: var(--light-color-active-menu-item); --color-text: var(--light-color-text); + --color-contrast-text: var(--light-color-contrast-text); --color-text-aside: var(--light-color-text-aside); + --color-icon-text: var(--light-color-icon-text); + + --color-comment-tag-text: var(--light-color-text); + --color-comment-tag: var(--light-color-background); + --color-link: var(--light-color-link); + --color-focus-outline: var(--light-color-focus-outline); --color-ts-keyword: var(--light-color-ts-keyword); + --color-ts-project: var(--light-color-ts-project); --color-ts-module: var(--light-color-ts-module); --color-ts-namespace: var(--light-color-ts-namespace); --color-ts-enum: var(--light-color-ts-enum); @@ -105,6 +294,7 @@ --color-ts-constructor: var(--light-color-ts-constructor); --color-ts-property: var(--light-color-ts-property); --color-ts-method: var(--light-color-ts-method); + --color-ts-reference: var(--light-color-ts-reference); --color-ts-call-signature: var(--light-color-ts-call-signature); --color-ts-index-signature: var(--light-color-ts-index-signature); --color-ts-constructor-signature: var( @@ -116,26 +306,40 @@ --color-ts-get-signature: var(--light-color-ts-get-signature); --color-ts-set-signature: var(--light-color-ts-set-signature); --color-ts-type-alias: var(--light-color-ts-type-alias); + --color-document: var(--light-color-document); + + --color-note: var(--light-color-note); + --color-tip: var(--light-color-tip); + --color-important: var(--light-color-important); + --color-warning: var(--light-color-warning); + --color-caution: var(--light-color-caution); --external-icon: var(--light-external-icon); --color-scheme: var(--light-color-scheme); } -} -@media (prefers-color-scheme: dark) { - :root { + :root[data-theme="dark"] { --color-background: var(--dark-color-background); --color-background-secondary: var(--dark-color-background-secondary); + --color-background-active: var(--dark-color-background-active); --color-background-warning: var(--dark-color-background-warning); --color-warning-text: var(--dark-color-warning-text); --color-icon-background: var(--dark-color-icon-background); --color-accent: var(--dark-color-accent); --color-active-menu-item: var(--dark-color-active-menu-item); --color-text: var(--dark-color-text); + --color-contrast-text: var(--dark-color-contrast-text); --color-text-aside: var(--dark-color-text-aside); + --color-icon-text: var(--dark-color-icon-text); + + --color-comment-tag-text: var(--dark-color-text); + --color-comment-tag: var(--dark-color-background); + --color-link: var(--dark-color-link); + --color-focus-outline: var(--dark-color-focus-outline); --color-ts-keyword: var(--dark-color-ts-keyword); + --color-ts-project: var(--dark-color-ts-project); --color-ts-module: var(--dark-color-ts-module); --color-ts-namespace: var(--dark-color-ts-namespace); --color-ts-enum: var(--dark-color-ts-enum); @@ -147,6 +351,7 @@ --color-ts-constructor: var(--dark-color-ts-constructor); --color-ts-property: var(--dark-color-ts-property); --color-ts-method: var(--dark-color-ts-method); + --color-ts-reference: var(--dark-color-ts-reference); --color-ts-call-signature: var(--dark-color-ts-call-signature); --color-ts-index-signature: var(--dark-color-ts-index-signature); --color-ts-constructor-signature: var( @@ -158,1255 +363,1271 @@ --color-ts-get-signature: var(--dark-color-ts-get-signature); --color-ts-set-signature: var(--dark-color-ts-set-signature); --color-ts-type-alias: var(--dark-color-ts-type-alias); + --color-document: var(--dark-color-document); + + --color-note: var(--dark-color-note); + --color-tip: var(--dark-color-tip); + --color-important: var(--dark-color-important); + --color-warning: var(--dark-color-warning); + --color-caution: var(--dark-color-caution); --external-icon: var(--dark-external-icon); --color-scheme: var(--dark-color-scheme); } -} - -html { - color-scheme: var(--color-scheme); -} -body { - margin: 0; -} + html { + color-scheme: var(--color-scheme); + @media (prefers-reduced-motion: no-preference) { + scroll-behavior: smooth; + } + } -:root[data-theme="light"] { - --color-background: var(--light-color-background); - --color-background-secondary: var(--light-color-background-secondary); - --color-background-warning: var(--light-color-background-warning); - --color-warning-text: var(--light-color-warning-text); - --color-icon-background: var(--light-color-icon-background); - --color-accent: var(--light-color-accent); - --color-active-menu-item: var(--light-color-active-menu-item); - --color-text: var(--light-color-text); - --color-text-aside: var(--light-color-text-aside); - --color-link: var(--light-color-link); - - --color-ts-keyword: var(--light-color-ts-keyword); - --color-ts-module: var(--light-color-ts-module); - --color-ts-namespace: var(--light-color-ts-namespace); - --color-ts-enum: var(--light-color-ts-enum); - --color-ts-enum-member: var(--light-color-ts-enum-member); - --color-ts-variable: var(--light-color-ts-variable); - --color-ts-function: var(--light-color-ts-function); - --color-ts-class: var(--light-color-ts-class); - --color-ts-interface: var(--light-color-ts-interface); - --color-ts-constructor: var(--light-color-ts-constructor); - --color-ts-property: var(--light-color-ts-property); - --color-ts-method: var(--light-color-ts-method); - --color-ts-call-signature: var(--light-color-ts-call-signature); - --color-ts-index-signature: var(--light-color-ts-index-signature); - --color-ts-constructor-signature: var( - --light-color-ts-constructor-signature - ); - --color-ts-parameter: var(--light-color-ts-parameter); - --color-ts-type-parameter: var(--light-color-ts-type-parameter); - --color-ts-accessor: var(--light-color-ts-accessor); - --color-ts-get-signature: var(--light-color-ts-get-signature); - --color-ts-set-signature: var(--light-color-ts-set-signature); - --color-ts-type-alias: var(--light-color-ts-type-alias); - - --external-icon: var(--light-external-icon); - --color-scheme: var(--light-color-scheme); -} + *:focus-visible, + .tsd-accordion-summary:focus-visible svg { + outline: 2px solid var(--color-focus-outline); + } -:root[data-theme="dark"] { - --color-background: var(--dark-color-background); - --color-background-secondary: var(--dark-color-background-secondary); - --color-background-warning: var(--dark-color-background-warning); - --color-warning-text: var(--dark-color-warning-text); - --color-icon-background: var(--dark-color-icon-background); - --color-accent: var(--dark-color-accent); - --color-active-menu-item: var(--dark-color-active-menu-item); - --color-text: var(--dark-color-text); - --color-text-aside: var(--dark-color-text-aside); - --color-link: var(--dark-color-link); - - --color-ts-keyword: var(--dark-color-ts-keyword); - --color-ts-module: var(--dark-color-ts-module); - --color-ts-namespace: var(--dark-color-ts-namespace); - --color-ts-enum: var(--dark-color-ts-enum); - --color-ts-enum-member: var(--dark-color-ts-enum-member); - --color-ts-variable: var(--dark-color-ts-variable); - --color-ts-function: var(--dark-color-ts-function); - --color-ts-class: var(--dark-color-ts-class); - --color-ts-interface: var(--dark-color-ts-interface); - --color-ts-constructor: var(--dark-color-ts-constructor); - --color-ts-property: var(--dark-color-ts-property); - --color-ts-method: var(--dark-color-ts-method); - --color-ts-call-signature: var(--dark-color-ts-call-signature); - --color-ts-index-signature: var(--dark-color-ts-index-signature); - --color-ts-constructor-signature: var( - --dark-color-ts-constructor-signature - ); - --color-ts-parameter: var(--dark-color-ts-parameter); - --color-ts-type-parameter: var(--dark-color-ts-type-parameter); - --color-ts-accessor: var(--dark-color-ts-accessor); - --color-ts-get-signature: var(--dark-color-ts-get-signature); - --color-ts-set-signature: var(--dark-color-ts-set-signature); - --color-ts-type-alias: var(--dark-color-ts-type-alias); - - --external-icon: var(--dark-external-icon); - --color-scheme: var(--dark-color-scheme); -} + .always-visible, + .always-visible .tsd-signatures { + display: inherit !important; + } -.always-visible, -.always-visible .tsd-signatures { - display: inherit !important; -} + h1, + h2, + h3, + h4, + h5, + h6 { + line-height: 1.2; + } -h1, -h2, -h3, -h4, -h5, -h6 { - line-height: 1.2; -} + h1 { + font-size: 1.875rem; + margin: 0.67rem 0; + } -h1 > a:not(.link), -h2 > a:not(.link), -h3 > a:not(.link), -h4 > a:not(.link), -h5 > a:not(.link), -h6 > a:not(.link) { - text-decoration: none; - color: var(--color-text); -} + h2 { + font-size: 1.5rem; + margin: 0.83rem 0; + } -h1 { - font-size: 1.875rem; - margin: 0.67rem 0; -} + h3 { + font-size: 1.25rem; + margin: 1rem 0; + } -h2 { - font-size: 1.5rem; - margin: 0.83rem 0; -} + h4 { + font-size: 1.05rem; + margin: 1.33rem 0; + } -h3 { - font-size: 1.25rem; - margin: 1rem 0; -} + h5 { + font-size: 1rem; + margin: 1.5rem 0; + } -h4 { - font-size: 1.05rem; - margin: 1.33rem 0; -} + h6 { + font-size: 0.875rem; + margin: 2.33rem 0; + } -h5 { - font-size: 1rem; - margin: 1.5rem 0; -} + dl, + menu, + ol, + ul { + margin: 1em 0; + } -h6 { - font-size: 0.875rem; - margin: 2.33rem 0; -} + dd { + margin: 0 0 0 34px; + } -.uppercase { - text-transform: uppercase; -} + .container { + max-width: 1700px; + padding: 0 2rem; + } -dl, -menu, -ol, -ul { - margin: 1em 0; -} + /* Footer */ + footer { + border-top: 1px solid var(--color-accent); + padding-top: 1rem; + padding-bottom: 1rem; + max-height: var(--dim-footer-height); + } + footer > p { + margin: 0 1em; + } -dd { - margin: 0 0 0 40px; -} + .container-main { + margin: var(--dim-container-main-margin-y) auto; + /* toolbar, footer, margin */ + min-height: calc( + 100svh - var(--dim-header-height) - var(--dim-footer-height) - + 2 * var(--dim-container-main-margin-y) + ); + } -.container { - max-width: 1700px; - padding: 0 2rem; -} + @keyframes fade-in { + from { + opacity: 0; + } + to { + opacity: 1; + } + } + @keyframes fade-out { + from { + opacity: 1; + visibility: visible; + } + to { + opacity: 0; + } + } + @keyframes pop-in-from-right { + from { + transform: translate(100%, 0); + } + to { + transform: translate(0, 0); + } + } + @keyframes pop-out-to-right { + from { + transform: translate(0, 0); + visibility: visible; + } + to { + transform: translate(100%, 0); + } + } + body { + background: var(--color-background); + font-family: + -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", + Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; + font-size: 16px; + color: var(--color-text); + margin: 0; + } -/* Footer */ -footer { - border-top: 1px solid var(--color-accent); - padding-top: 1rem; - padding-bottom: 1rem; - max-height: 3.5rem; -} -.tsd-generator { - margin: 0 1em; -} + a { + color: var(--color-link); + text-decoration: none; + } + a:hover { + text-decoration: underline; + } + a.external[target="_blank"] { + background-image: var(--external-icon); + background-position: top 3px right; + background-repeat: no-repeat; + padding-right: 13px; + } + a.tsd-anchor-link { + color: var(--color-text); + } + :target { + scroll-margin-block: calc(var(--dim-header-height) + 0.5rem); + } -.container-main { - margin: 0 auto; - /* toolbar, footer, margin */ - min-height: calc(100vh - 41px - 56px - 4rem); -} + code, + pre { + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; + padding: 0.2em; + margin: 0; + font-size: 0.875rem; + border-radius: 0.8em; + } -@keyframes fade-in { - from { + pre { + position: relative; + white-space: pre-wrap; + word-wrap: break-word; + padding: 10px; + border: 1px solid var(--color-accent); + margin-bottom: 8px; + } + pre code { + padding: 0; + font-size: 100%; + } + pre > button { + position: absolute; + top: 10px; + right: 10px; opacity: 0; + transition: opacity 0.1s; + box-sizing: border-box; } - to { + pre:hover > button, + pre > button.visible, + pre > button:focus-visible { opacity: 1; } -} -@keyframes fade-out { - from { - opacity: 1; - visibility: visible; + + blockquote { + margin: 1em 0; + padding-left: 1em; + border-left: 4px solid gray; } - to { - opacity: 0; + + img { + max-width: 100%; } -} -@keyframes fade-in-delayed { - 0% { - opacity: 0; + + * { + scrollbar-width: thin; + scrollbar-color: var(--color-accent) var(--color-icon-background); } - 33% { - opacity: 0; + + *::-webkit-scrollbar { + width: 0.75rem; } - 100% { - opacity: 1; + + *::-webkit-scrollbar-track { + background: var(--color-icon-background); } -} -@keyframes fade-out-delayed { - 0% { - opacity: 1; - visibility: visible; + + *::-webkit-scrollbar-thumb { + background-color: var(--color-accent); + border-radius: 999rem; + border: 0.25rem solid var(--color-icon-background); } - 66% { - opacity: 0; + + dialog { + border: none; + outline: none; + padding: 0; + background-color: var(--color-background); } - 100% { - opacity: 0; + dialog::backdrop { + display: none; } -} -@keyframes pop-in-from-right { - from { - transform: translate(100%, 0); + #tsd-overlay { + background-color: rgba(0, 0, 0, 0.5); + position: fixed; + z-index: 9999; + top: 0; + left: 0; + right: 0; + bottom: 0; + animation: fade-in var(--modal-animation-duration) forwards; } - to { - transform: translate(0, 0); + #tsd-overlay.closing { + animation-name: fade-out; } -} -@keyframes pop-out-to-right { - from { - transform: translate(0, 0); - visibility: visible; + + .tsd-typography { + line-height: 1.333em; } - to { - transform: translate(100%, 0); + .tsd-typography ul { + list-style: square; + padding: 0 0 0 20px; + margin: 0; + } + .tsd-typography .tsd-index-panel h3, + .tsd-index-panel .tsd-typography h3, + .tsd-typography h4, + .tsd-typography h5, + .tsd-typography h6 { + font-size: 1em; + } + .tsd-typography h5, + .tsd-typography h6 { + font-weight: normal; + } + .tsd-typography p, + .tsd-typography ul, + .tsd-typography ol { + margin: 1em 0; + } + .tsd-typography table { + border-collapse: collapse; + border: none; + } + .tsd-typography td, + .tsd-typography th { + padding: 6px 13px; + border: 1px solid var(--color-accent); + } + .tsd-typography thead, + .tsd-typography tr:nth-child(even) { + background-color: var(--color-background-secondary); } -} -body { - background: var(--color-background); - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", - Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; - font-size: 16px; - color: var(--color-text); -} -a { - color: var(--color-link); - text-decoration: none; -} -a:hover { - text-decoration: underline; -} -a.external[target="_blank"] { - background-image: var(--external-icon); - background-position: top 3px right; - background-repeat: no-repeat; - padding-right: 13px; -} + .tsd-alert { + padding: 8px 16px; + margin-bottom: 16px; + border-left: 0.25em solid var(--alert-color); + } + .tsd-alert blockquote > :last-child, + .tsd-alert > :last-child { + margin-bottom: 0; + } + .tsd-alert-title { + color: var(--alert-color); + display: inline-flex; + align-items: center; + } + .tsd-alert-title span { + margin-left: 4px; + } -code, -pre { - font-family: Menlo, Monaco, Consolas, "Courier New", monospace; - padding: 0.2em; - margin: 0; - font-size: 0.875rem; - border-radius: 0.8em; -} + .tsd-alert-note { + --alert-color: var(--color-alert-note); + } + .tsd-alert-tip { + --alert-color: var(--color-alert-tip); + } + .tsd-alert-important { + --alert-color: var(--color-alert-important); + } + .tsd-alert-warning { + --alert-color: var(--color-alert-warning); + } + .tsd-alert-caution { + --alert-color: var(--color-alert-caution); + } -pre { - position: relative; - white-space: pre; - white-space: pre-wrap; - word-wrap: break-word; - padding: 10px; - border: 1px solid var(--color-accent); -} -pre code { - padding: 0; - font-size: 100%; -} -pre > button { - position: absolute; - top: 10px; - right: 10px; - opacity: 0; - transition: opacity 0.1s; - box-sizing: border-box; -} -pre:hover > button, -pre > button.visible { - opacity: 1; -} + .tsd-breadcrumb { + margin: 0; + margin-top: 1rem; + padding: 0; + color: var(--color-text-aside); + } + .tsd-breadcrumb a { + color: var(--color-text-aside); + text-decoration: none; + } + .tsd-breadcrumb a:hover { + text-decoration: underline; + } + .tsd-breadcrumb li { + display: inline; + } + .tsd-breadcrumb li:after { + content: " / "; + } -blockquote { - margin: 1em 0; - padding-left: 1em; - border-left: 4px solid gray; -} + .tsd-comment-tags { + display: flex; + flex-direction: column; + } + dl.tsd-comment-tag-group { + display: flex; + align-items: center; + overflow: hidden; + margin: 0.5em 0; + } + dl.tsd-comment-tag-group dt { + display: flex; + margin-right: 0.5em; + font-size: 0.875em; + font-weight: normal; + } + dl.tsd-comment-tag-group dd { + margin: 0; + } + code.tsd-tag { + padding: 0.25em 0.4em; + border: 0.1em solid var(--color-accent); + margin-right: 0.25em; + font-size: 70%; + } + h1 code.tsd-tag:first-of-type { + margin-left: 0.25em; + } -.tsd-typography { - line-height: 1.333em; -} -.tsd-typography ul { - list-style: square; - padding: 0 0 0 20px; - margin: 0; -} -.tsd-typography .tsd-index-panel h3, -.tsd-index-panel .tsd-typography h3, -.tsd-typography h4, -.tsd-typography h5, -.tsd-typography h6 { - font-size: 1em; -} -.tsd-typography h5, -.tsd-typography h6 { - font-weight: normal; -} -.tsd-typography p, -.tsd-typography ul, -.tsd-typography ol { - margin: 1em 0; -} -.tsd-typography table { - border-collapse: collapse; - border: none; -} -.tsd-typography td, -.tsd-typography th { - padding: 6px 13px; - border: 1px solid var(--color-accent); -} -.tsd-typography thead, -.tsd-typography tr:nth-child(even) { - background-color: var(--color-background-secondary); -} + dl.tsd-comment-tag-group dd:before, + dl.tsd-comment-tag-group dd:after { + content: " "; + } + dl.tsd-comment-tag-group dd pre, + dl.tsd-comment-tag-group dd:after { + clear: both; + } + dl.tsd-comment-tag-group p { + margin: 0; + } -.tsd-breadcrumb { - margin: 0; - padding: 0; - color: var(--color-text-aside); -} -.tsd-breadcrumb a { - color: var(--color-text-aside); - text-decoration: none; -} -.tsd-breadcrumb a:hover { - text-decoration: underline; -} -.tsd-breadcrumb li { - display: inline; -} -.tsd-breadcrumb li:after { - content: " / "; -} + .tsd-panel.tsd-comment .lead { + font-size: 1.1em; + line-height: 1.333em; + margin-bottom: 2em; + } + .tsd-panel.tsd-comment .lead:last-child { + margin-bottom: 0; + } -.tsd-comment-tags { - display: flex; - flex-direction: column; -} -dl.tsd-comment-tag-group { - display: flex; - align-items: center; - overflow: hidden; - margin: 0.5em 0; -} -dl.tsd-comment-tag-group dt { - display: flex; - margin-right: 0.5em; - font-size: 0.875em; - font-weight: normal; -} -dl.tsd-comment-tag-group dd { - margin: 0; -} -code.tsd-tag { - padding: 0.25em 0.4em; - border: 0.1em solid var(--color-accent); - margin-right: 0.25em; - font-size: 70%; -} -h1 code.tsd-tag:first-of-type { - margin-left: 0.25em; -} + .tsd-filter-visibility h4 { + font-size: 1rem; + padding-top: 0.75rem; + padding-bottom: 0.5rem; + margin: 0; + } + .tsd-filter-item:not(:last-child) { + margin-bottom: 0.5rem; + } + .tsd-filter-input { + display: flex; + width: -moz-fit-content; + width: fit-content; + align-items: center; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + } + .tsd-filter-input input[type="checkbox"] { + cursor: pointer; + position: absolute; + width: 1.5em; + height: 1.5em; + opacity: 0; + } + .tsd-filter-input input[type="checkbox"]:disabled { + pointer-events: none; + } + .tsd-filter-input svg { + cursor: pointer; + width: 1.5em; + height: 1.5em; + margin-right: 0.5em; + border-radius: 0.33em; + /* Leaving this at full opacity breaks event listeners on Firefox. + Don't remove unless you know what you're doing. */ + opacity: 0.99; + } + .tsd-filter-input input[type="checkbox"]:focus-visible + svg { + outline: 2px solid var(--color-focus-outline); + } + .tsd-checkbox-background { + fill: var(--color-accent); + } + input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark { + stroke: var(--color-text); + } + .tsd-filter-input input:disabled ~ svg > .tsd-checkbox-background { + fill: var(--color-background); + stroke: var(--color-accent); + stroke-width: 0.25rem; + } + .tsd-filter-input input:disabled ~ svg > .tsd-checkbox-checkmark { + stroke: var(--color-accent); + } -dl.tsd-comment-tag-group dd:before, -dl.tsd-comment-tag-group dd:after { - content: " "; -} -dl.tsd-comment-tag-group dd pre, -dl.tsd-comment-tag-group dd:after { - clear: both; -} -dl.tsd-comment-tag-group p { - margin: 0; -} + .settings-label { + font-weight: bold; + text-transform: uppercase; + display: inline-block; + } -.tsd-panel.tsd-comment .lead { - font-size: 1.1em; - line-height: 1.333em; - margin-bottom: 2em; -} -.tsd-panel.tsd-comment .lead:last-child { - margin-bottom: 0; -} + .tsd-filter-visibility .settings-label { + margin: 0.75rem 0 0.5rem 0; + } -.tsd-filter-visibility h4 { - font-size: 1rem; - padding-top: 0.75rem; - padding-bottom: 0.5rem; - margin: 0; -} -.tsd-filter-item:not(:last-child) { - margin-bottom: 0.5rem; -} -.tsd-filter-input { - display: flex; - width: fit-content; - width: -moz-fit-content; - align-items: center; - user-select: none; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - cursor: pointer; -} -.tsd-filter-input input[type="checkbox"] { - cursor: pointer; - position: absolute; - width: 1.5em; - height: 1.5em; - opacity: 0; -} -.tsd-filter-input input[type="checkbox"]:disabled { - pointer-events: none; -} -.tsd-filter-input svg { - cursor: pointer; - width: 1.5em; - height: 1.5em; - margin-right: 0.5em; - border-radius: 0.33em; - /* Leaving this at full opacity breaks event listeners on Firefox. - Don't remove unless you know what you're doing. */ - opacity: 0.99; -} -.tsd-filter-input input[type="checkbox"]:focus + svg { - transform: scale(0.95); -} -.tsd-filter-input input[type="checkbox"]:focus:not(:focus-visible) + svg { - transform: scale(1); -} -.tsd-checkbox-background { - fill: var(--color-accent); -} -input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark { - stroke: var(--color-text); -} -.tsd-filter-input input:disabled ~ svg > .tsd-checkbox-background { - fill: var(--color-background); - stroke: var(--color-accent); - stroke-width: 0.25rem; -} -.tsd-filter-input input:disabled ~ svg > .tsd-checkbox-checkmark { - stroke: var(--color-accent); -} + .tsd-theme-toggle .settings-label { + margin: 0.75rem 0.75rem 0 0; + } -.tsd-theme-toggle { - padding-top: 0.75rem; -} -.tsd-theme-toggle > h4 { - display: inline; - vertical-align: middle; - margin-right: 0.75rem; -} + .tsd-hierarchy h4 label:hover span { + text-decoration: underline; + } -.tsd-hierarchy { - list-style: square; - margin: 0; -} -.tsd-hierarchy .target { - font-weight: bold; -} + .tsd-hierarchy { + list-style: square; + margin: 0; + } + .tsd-hierarchy-target { + font-weight: bold; + } + .tsd-hierarchy-toggle { + color: var(--color-link); + cursor: pointer; + } -.tsd-full-hierarchy:not(:last-child) { - margin-bottom: 1em; - padding-bottom: 1em; - border-bottom: 1px solid var(--color-accent); -} -.tsd-full-hierarchy, -.tsd-full-hierarchy ul { - list-style: none; - margin: 0; - padding: 0; -} -.tsd-full-hierarchy ul { - padding-left: 1.5rem; -} -.tsd-full-hierarchy a { - padding: 0.25rem 0 !important; - font-size: 1rem; - display: inline-flex; - align-items: center; - color: var(--color-text); -} + .tsd-full-hierarchy:not(:last-child) { + margin-bottom: 1em; + padding-bottom: 1em; + border-bottom: 1px solid var(--color-accent); + } + .tsd-full-hierarchy, + .tsd-full-hierarchy ul { + list-style: none; + margin: 0; + padding: 0; + } + .tsd-full-hierarchy ul { + padding-left: 1.5rem; + } + .tsd-full-hierarchy a { + padding: 0.25rem 0 !important; + font-size: 1rem; + display: inline-flex; + align-items: center; + color: var(--color-text); + } + .tsd-full-hierarchy svg[data-dropdown] { + cursor: pointer; + } + .tsd-full-hierarchy svg[data-dropdown="false"] { + transform: rotate(-90deg); + } + .tsd-full-hierarchy svg[data-dropdown="false"] ~ ul { + display: none; + } -.tsd-panel-group.tsd-index-group { - margin-bottom: 0; -} -.tsd-index-panel .tsd-index-list { - list-style: none; - line-height: 1.333em; - margin: 0; - padding: 0.25rem 0 0 0; - overflow: hidden; - display: grid; - grid-template-columns: repeat(3, 1fr); - column-gap: 1rem; - grid-template-rows: auto; -} -@media (max-width: 1024px) { - .tsd-index-panel .tsd-index-list { - grid-template-columns: repeat(2, 1fr); + .tsd-panel-group.tsd-index-group { + margin-bottom: 0; } -} -@media (max-width: 768px) { .tsd-index-panel .tsd-index-list { - grid-template-columns: repeat(1, 1fr); + list-style: none; + line-height: 1.333em; + margin: 0; + padding: 0.25rem 0 0 0; + overflow: hidden; + display: grid; + grid-template-columns: repeat(3, 1fr); + column-gap: 1rem; + grid-template-rows: auto; + } + @media (max-width: 1024px) { + .tsd-index-panel .tsd-index-list { + grid-template-columns: repeat(2, 1fr); + } + } + @media (max-width: 768px) { + .tsd-index-panel .tsd-index-list { + grid-template-columns: repeat(1, 1fr); + } + } + .tsd-index-panel .tsd-index-list li { + -webkit-page-break-inside: avoid; + -moz-page-break-inside: avoid; + -ms-page-break-inside: avoid; + -o-page-break-inside: avoid; + page-break-inside: avoid; } -} -.tsd-index-panel .tsd-index-list li { - -webkit-page-break-inside: avoid; - -moz-page-break-inside: avoid; - -ms-page-break-inside: avoid; - -o-page-break-inside: avoid; - page-break-inside: avoid; -} -.tsd-flag { - display: inline-block; - padding: 0.25em 0.4em; - border-radius: 4px; - color: var(--color-comment-tag-text); - background-color: var(--color-comment-tag); - text-indent: 0; - font-size: 75%; - line-height: 1; - font-weight: normal; -} + .tsd-flag { + display: inline-block; + padding: 0.25em 0.4em; + border-radius: 4px; + color: var(--color-comment-tag-text); + background-color: var(--color-comment-tag); + text-indent: 0; + font-size: 75%; + line-height: 1; + font-weight: normal; + } -.tsd-anchor { - position: relative; - top: -100px; -} + .tsd-anchor { + position: relative; + top: -100px; + } -.tsd-member { - position: relative; -} -.tsd-member .tsd-anchor + h3 { - display: flex; - align-items: center; - margin-top: 0; - margin-bottom: 0; - border-bottom: none; -} + .tsd-member { + position: relative; + } + .tsd-member .tsd-anchor + h3 { + display: flex; + align-items: center; + margin-top: 0; + margin-bottom: 0; + border-bottom: none; + } -.tsd-navigation.settings { - margin: 1rem 0; -} -.tsd-navigation > a, -.tsd-navigation .tsd-accordion-summary { - width: calc(100% - 0.25rem); - display: flex; - align-items: center; -} -.tsd-navigation a, -.tsd-navigation summary > span, -.tsd-page-navigation a { - display: flex; - width: calc(100% - 0.25rem); - align-items: center; - padding: 0.25rem; - color: var(--color-text); - text-decoration: none; - box-sizing: border-box; -} -.tsd-navigation a.current, -.tsd-page-navigation a.current { - background: var(--color-active-menu-item); -} -.tsd-navigation a:hover, -.tsd-page-navigation a:hover { - text-decoration: underline; -} -.tsd-navigation ul, -.tsd-page-navigation ul { - margin-top: 0; - margin-bottom: 0; - padding: 0; - list-style: none; -} -.tsd-navigation li, -.tsd-page-navigation li { - padding: 0; - max-width: 100%; -} -.tsd-nested-navigation { - margin-left: 3rem; -} -.tsd-nested-navigation > li > details { - margin-left: -1.5rem; -} -.tsd-small-nested-navigation { - margin-left: 1.5rem; -} -.tsd-small-nested-navigation > li > details { - margin-left: -1.5rem; -} - -.tsd-page-navigation ul { - padding-left: 1.75rem; -} - -#tsd-sidebar-links a { - margin-top: 0; - margin-bottom: 0.5rem; - line-height: 1.25rem; -} -#tsd-sidebar-links a:last-of-type { - margin-bottom: 0; -} - -a.tsd-index-link { - padding: 0.25rem 0 !important; - font-size: 1rem; - line-height: 1.25rem; - display: inline-flex; - align-items: center; - color: var(--color-text); -} -.tsd-accordion-summary { - list-style-type: none; /* hide marker on non-safari */ - outline: none; /* broken on safari, so just hide it */ -} -.tsd-accordion-summary::-webkit-details-marker { - display: none; /* hide marker on safari */ -} -.tsd-accordion-summary, -.tsd-accordion-summary a { - user-select: none; - -moz-user-select: none; - -webkit-user-select: none; - -ms-user-select: none; - - cursor: pointer; -} -.tsd-accordion-summary a { - width: calc(100% - 1.5rem); -} -.tsd-accordion-summary > * { - margin-top: 0; - margin-bottom: 0; - padding-top: 0; - padding-bottom: 0; -} -.tsd-index-accordion .tsd-accordion-summary > svg { - margin-left: 0.25rem; -} -.tsd-index-content > :not(:first-child) { - margin-top: 0.75rem; -} -.tsd-index-heading { - margin-top: 1.5rem; - margin-bottom: 0.75rem; -} - -.tsd-kind-icon { - margin-right: 0.5rem; - width: 1.25rem; - height: 1.25rem; - min-width: 1.25rem; - min-height: 1.25rem; -} -.tsd-kind-icon path { - transform-origin: center; - transform: scale(1.1); -} -.tsd-signature > .tsd-kind-icon { - margin-right: 0.8rem; -} - -.tsd-panel { - margin-bottom: 2.5rem; -} -.tsd-panel.tsd-member { - margin-bottom: 4rem; -} -.tsd-panel:empty { - display: none; -} -.tsd-panel > h1, -.tsd-panel > h2, -.tsd-panel > h3 { - margin: 1.5rem -1.5rem 0.75rem -1.5rem; - padding: 0 1.5rem 0.75rem 1.5rem; -} -.tsd-panel > h1.tsd-before-signature, -.tsd-panel > h2.tsd-before-signature, -.tsd-panel > h3.tsd-before-signature { - margin-bottom: 0; - border-bottom: none; -} - -.tsd-panel-group { - margin: 4rem 0; -} -.tsd-panel-group.tsd-index-group { - margin: 2rem 0; -} -.tsd-panel-group.tsd-index-group details { - margin: 2rem 0; -} - -#tsd-search { - transition: background-color 0.2s; -} -#tsd-search .title { - position: relative; - z-index: 2; -} -#tsd-search .field { - position: absolute; - left: 0; - top: 0; - right: 2.5rem; - height: 100%; -} -#tsd-search .field input { - box-sizing: border-box; - position: relative; - top: -50px; - z-index: 1; - width: 100%; - padding: 0 10px; - opacity: 0; - outline: 0; - border: 0; - background: transparent; - color: var(--color-text); -} -#tsd-search .field label { - position: absolute; - overflow: hidden; - right: -40px; -} -#tsd-search .field input, -#tsd-search .title, -#tsd-toolbar-links a { - transition: opacity 0.2s; -} -#tsd-search .results { - position: absolute; - visibility: hidden; - top: 40px; - width: 100%; - margin: 0; - padding: 0; - list-style: none; - box-shadow: 0 0 4px rgba(0, 0, 0, 0.25); -} -#tsd-search .results li { - background-color: var(--color-background); - line-height: initial; - padding: 4px; -} -#tsd-search .results li:nth-child(even) { - background-color: var(--color-background-secondary); -} -#tsd-search .results li.state { - display: none; -} -#tsd-search .results li.current:not(.no-results), -#tsd-search .results li:hover:not(.no-results) { - background-color: var(--color-accent); -} -#tsd-search .results a { - display: flex; - align-items: center; - padding: 0.25rem; - box-sizing: border-box; -} -#tsd-search .results a:before { - top: 10px; -} -#tsd-search .results span.parent { - color: var(--color-text-aside); - font-weight: normal; -} -#tsd-search.has-focus { - background-color: var(--color-accent); -} -#tsd-search.has-focus .field input { - top: 0; - opacity: 1; -} -#tsd-search.has-focus .title, -#tsd-search.has-focus #tsd-toolbar-links a { - z-index: 0; - opacity: 0; -} -#tsd-search.has-focus .results { - visibility: visible; -} -#tsd-search.loading .results li.state.loading { - display: block; -} -#tsd-search.failure .results li.state.failure { - display: block; -} - -#tsd-toolbar-links { - position: absolute; - top: 0; - right: 2rem; - height: 100%; - display: flex; - align-items: center; - justify-content: flex-end; -} -#tsd-toolbar-links a { - margin-left: 1.5rem; -} -#tsd-toolbar-links a:hover { - text-decoration: underline; -} - -.tsd-signature { - margin: 0 0 1rem 0; - padding: 1rem 0.5rem; - border: 1px solid var(--color-accent); - font-family: Menlo, Monaco, Consolas, "Courier New", monospace; - font-size: 14px; - overflow-x: auto; -} - -.tsd-signature-keyword { - color: var(--color-ts-keyword); - font-weight: normal; -} - -.tsd-signature-symbol { - color: var(--color-text-aside); - font-weight: normal; -} - -.tsd-signature-type { - font-style: italic; - font-weight: normal; -} - -.tsd-signatures { - padding: 0; - margin: 0 0 1em 0; - list-style-type: none; -} -.tsd-signatures .tsd-signature { - margin: 0; - border-color: var(--color-accent); - border-width: 1px 0; - transition: background-color 0.1s; -} -.tsd-description .tsd-signatures .tsd-signature { - border-width: 1px; -} - -ul.tsd-parameter-list, -ul.tsd-type-parameter-list { - list-style: square; - margin: 0; - padding-left: 20px; -} -ul.tsd-parameter-list > li.tsd-parameter-signature, -ul.tsd-type-parameter-list > li.tsd-parameter-signature { - list-style: none; - margin-left: -20px; -} -ul.tsd-parameter-list h5, -ul.tsd-type-parameter-list h5 { - font-size: 16px; - margin: 1em 0 0.5em 0; -} -.tsd-sources { - margin-top: 1rem; - font-size: 0.875em; -} -.tsd-sources a { - color: var(--color-text-aside); - text-decoration: underline; -} -.tsd-sources ul { - list-style: none; - padding: 0; -} - -.tsd-page-toolbar { - position: sticky; - z-index: 1; - top: 0; - left: 0; - width: 100%; - color: var(--color-text); - background: var(--color-background-secondary); - border-bottom: 1px var(--color-accent) solid; - transition: transform 0.3s ease-in-out; -} -.tsd-page-toolbar a { - color: var(--color-text); - text-decoration: none; -} -.tsd-page-toolbar a.title { - font-weight: bold; -} -.tsd-page-toolbar a.title:hover { - text-decoration: underline; -} -.tsd-page-toolbar .tsd-toolbar-contents { - display: flex; - justify-content: space-between; - height: 2.5rem; - margin: 0 auto; -} -.tsd-page-toolbar .table-cell { - position: relative; - white-space: nowrap; - line-height: 40px; -} -.tsd-page-toolbar .table-cell:first-child { - width: 100%; -} -.tsd-page-toolbar .tsd-toolbar-icon { - box-sizing: border-box; - line-height: 0; - padding: 12px 0; -} - -.tsd-widget { - display: inline-block; - overflow: hidden; - opacity: 0.8; - height: 40px; - transition: - opacity 0.1s, - background-color 0.2s; - vertical-align: bottom; - cursor: pointer; -} -.tsd-widget:hover { - opacity: 0.9; -} -.tsd-widget.active { - opacity: 1; - background-color: var(--color-accent); -} -.tsd-widget.no-caption { - width: 40px; -} -.tsd-widget.no-caption:before { - margin: 0; -} - -.tsd-widget.options, -.tsd-widget.menu { - display: none; -} -input[type="checkbox"] + .tsd-widget:before { - background-position: -120px 0; -} -input[type="checkbox"]:checked + .tsd-widget:before { - background-position: -160px 0; -} - -img { - max-width: 100%; -} - -.tsd-anchor-icon { - display: inline-flex; - align-items: center; - margin-left: 0.5rem; - vertical-align: middle; - color: var(--color-text); -} - -.tsd-anchor-icon svg { - width: 1em; - height: 1em; - visibility: hidden; -} - -.tsd-anchor-link:hover > .tsd-anchor-icon svg { - visibility: visible; -} - -.deprecated { - text-decoration: line-through !important; -} - -.warning { - padding: 1rem; - color: var(--color-warning-text); - background: var(--color-background-warning); -} + .tsd-navigation.settings { + margin: 0; + margin-bottom: 1rem; + } + .tsd-navigation > a, + .tsd-navigation .tsd-accordion-summary { + width: calc(100% - 0.25rem); + display: flex; + align-items: center; + } + .tsd-navigation a, + .tsd-navigation summary > span, + .tsd-page-navigation a { + display: flex; + width: calc(100% - 0.25rem); + align-items: center; + padding: 0.25rem; + color: var(--color-text); + text-decoration: none; + box-sizing: border-box; + } + .tsd-navigation a.current, + .tsd-page-navigation a.current { + background: var(--color-active-menu-item); + color: var(--color-contrast-text); + } + .tsd-navigation a:hover, + .tsd-page-navigation a:hover { + text-decoration: underline; + } + .tsd-navigation ul, + .tsd-page-navigation ul { + margin-top: 0; + margin-bottom: 0; + padding: 0; + list-style: none; + } + .tsd-navigation li, + .tsd-page-navigation li { + padding: 0; + max-width: 100%; + } + .tsd-navigation .tsd-nav-link { + display: none; + } + .tsd-nested-navigation { + margin-left: 3rem; + } + .tsd-nested-navigation > li > details { + margin-left: -1.5rem; + } + .tsd-small-nested-navigation { + margin-left: 1.5rem; + } + .tsd-small-nested-navigation > li > details { + margin-left: -1.5rem; + } -.tsd-kind-project { - color: var(--color-ts-project); -} -.tsd-kind-module { - color: var(--color-ts-module); -} -.tsd-kind-namespace { - color: var(--color-ts-namespace); -} -.tsd-kind-enum { - color: var(--color-ts-enum); -} -.tsd-kind-enum-member { - color: var(--color-ts-enum-member); -} -.tsd-kind-variable { - color: var(--color-ts-variable); -} -.tsd-kind-function { - color: var(--color-ts-function); -} -.tsd-kind-class { - color: var(--color-ts-class); -} -.tsd-kind-interface { - color: var(--color-ts-interface); -} -.tsd-kind-constructor { - color: var(--color-ts-constructor); -} -.tsd-kind-property { - color: var(--color-ts-property); -} -.tsd-kind-method { - color: var(--color-ts-method); -} -.tsd-kind-call-signature { - color: var(--color-ts-call-signature); -} -.tsd-kind-index-signature { - color: var(--color-ts-index-signature); -} -.tsd-kind-constructor-signature { - color: var(--color-ts-constructor-signature); -} -.tsd-kind-parameter { - color: var(--color-ts-parameter); -} -.tsd-kind-type-literal { - color: var(--color-ts-type-literal); -} -.tsd-kind-type-parameter { - color: var(--color-ts-type-parameter); -} -.tsd-kind-accessor { - color: var(--color-ts-accessor); -} -.tsd-kind-get-signature { - color: var(--color-ts-get-signature); -} -.tsd-kind-set-signature { - color: var(--color-ts-set-signature); -} -.tsd-kind-type-alias { - color: var(--color-ts-type-alias); -} + .tsd-page-navigation-section > summary { + padding: 0.25rem; + } + .tsd-page-navigation-section > summary > svg { + margin-right: 0.25rem; + } + .tsd-page-navigation-section > div { + margin-left: 30px; + } + .tsd-page-navigation ul { + padding-left: 1.75rem; + } -/* if we have a kind icon, don't color the text by kind */ -.tsd-kind-icon ~ span { - color: var(--color-text); -} + #tsd-sidebar-links a { + margin-top: 0; + margin-bottom: 0.5rem; + line-height: 1.25rem; + } + #tsd-sidebar-links a:last-of-type { + margin-bottom: 0; + } -* { - scrollbar-width: thin; - scrollbar-color: var(--color-accent) var(--color-icon-background); -} + a.tsd-index-link { + padding: 0.25rem 0 !important; + font-size: 1rem; + line-height: 1.25rem; + display: inline-flex; + align-items: center; + color: var(--color-text); + } + .tsd-accordion-summary { + list-style-type: none; /* hide marker on non-safari */ + outline: none; /* broken on safari, so just hide it */ + display: flex; + align-items: center; + gap: 0.25rem; + box-sizing: border-box; + } + .tsd-accordion-summary::-webkit-details-marker { + display: none; /* hide marker on safari */ + } + .tsd-accordion-summary, + .tsd-accordion-summary a { + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; + + cursor: pointer; + } + .tsd-accordion-summary a { + width: calc(100% - 1.5rem); + } + .tsd-accordion-summary > * { + margin-top: 0; + margin-bottom: 0; + padding-top: 0; + padding-bottom: 0; + } + /* + * We need to be careful to target the arrow indicating whether the accordion + * is open, but not any other SVGs included in the details element. + */ + .tsd-accordion:not([open]) > .tsd-accordion-summary > svg:first-child { + transform: rotate(-90deg); + } + .tsd-index-content > :not(:first-child) { + margin-top: 0.75rem; + } + .tsd-index-summary { + margin-top: 1.5rem; + margin-bottom: 0.75rem; + display: flex; + align-content: center; + } -*::-webkit-scrollbar { - width: 0.75rem; -} + .tsd-no-select { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + } + .tsd-kind-icon { + margin-right: 0.5rem; + width: 1.25rem; + height: 1.25rem; + min-width: 1.25rem; + min-height: 1.25rem; + } + .tsd-signature > .tsd-kind-icon { + margin-right: 0.8rem; + } -*::-webkit-scrollbar-track { - background: var(--color-icon-background); -} + .tsd-panel { + margin-bottom: 2.5rem; + } + .tsd-panel.tsd-member { + margin-bottom: 4rem; + } + .tsd-panel:empty { + display: none; + } + .tsd-panel > h1, + .tsd-panel > h2, + .tsd-panel > h3 { + margin: 1.5rem -1.5rem 0.75rem -1.5rem; + padding: 0 1.5rem 0.75rem 1.5rem; + } + .tsd-panel > h1.tsd-before-signature, + .tsd-panel > h2.tsd-before-signature, + .tsd-panel > h3.tsd-before-signature { + margin-bottom: 0; + border-bottom: none; + } -*::-webkit-scrollbar-thumb { - background-color: var(--color-accent); - border-radius: 999rem; - border: 0.25rem solid var(--color-icon-background); -} + .tsd-panel-group { + margin: 2rem 0; + } + .tsd-panel-group.tsd-index-group { + margin: 2rem 0; + } + .tsd-panel-group.tsd-index-group details { + margin: 2rem 0; + } + .tsd-panel-group > .tsd-accordion-summary { + margin-bottom: 1rem; + } -/* mobile */ -@media (max-width: 769px) { - .tsd-widget.options, - .tsd-widget.menu { - display: inline-block; + #tsd-search[open] { + animation: fade-in var(--modal-animation-duration) ease-out forwards; + } + #tsd-search[open].closing { + animation-name: fade-out; } - .container-main { + /* Avoid setting `display` on closed dialog */ + #tsd-search[open] { display: flex; + flex-direction: column; + padding: 1rem; + width: 32rem; + max-width: 90vw; + max-height: calc(100vh - env(keyboard-inset-height, 0px) - 25vh); + /* Anchor dialog to top */ + margin-top: 10vh; + border-radius: 6px; + will-change: max-height; } - html .col-content { - float: none; - max-width: 100%; + #tsd-search-input { + box-sizing: border-box; width: 100%; + padding: 0 0.625rem; /* 10px */ + outline: 0; + border: 2px solid var(--color-accent); + background-color: transparent; + color: var(--color-text); + border-radius: 4px; + height: 2.5rem; + flex: 0 0 auto; + font-size: 0.875rem; + transition: border-color 0.2s, background-color 0.2s; + } + #tsd-search-input:focus-visible { + background-color: var(--color-background-active); + border-color: transparent; + color: var(--color-contrast-text); } - html .col-sidebar { - position: fixed !important; + #tsd-search-input::placeholder { + color: inherit; + opacity: 0.8; + } + #tsd-search-results { + margin: 0; + padding: 0; + list-style: none; + flex: 1 1 auto; + display: flex; + flex-direction: column; overflow-y: auto; - -webkit-overflow-scrolling: touch; - z-index: 1024; - top: 0 !important; - bottom: 0 !important; - left: auto !important; - right: 0 !important; - padding: 1.5rem 1.5rem 0 0; - width: 75vw; - visibility: hidden; + } + #tsd-search-results:not(:empty) { + margin-top: 0.5rem; + } + #tsd-search-results > li { background-color: var(--color-background); - transform: translate(100%, 0); + line-height: 1.5; + box-sizing: border-box; + border-radius: 4px; } - html .col-sidebar > *:last-child { - padding-bottom: 20px; + #tsd-search-results > li:nth-child(even) { + background-color: var(--color-background-secondary); } - html .overlay { - content: ""; - display: block; - position: fixed; - z-index: 1023; - top: 0; - left: 0; - right: 0; - bottom: 0; - background-color: rgba(0, 0, 0, 0.75); - visibility: hidden; + #tsd-search-results > li:is(:hover, [aria-selected="true"]) { + background-color: var(--color-background-active); + color: var(--color-contrast-text); + } + /* It's important that this takes full size of parent `li`, to capture a click on `li` */ + #tsd-search-results > li > a { + display: flex; + align-items: center; + padding: 0.5rem 0.25rem; + box-sizing: border-box; + width: 100%; + } + #tsd-search-results > li > a > .text { + flex: 1 1 auto; + min-width: 0; + overflow-wrap: anywhere; + } + #tsd-search-results > li > a .parent { + color: var(--color-text-aside); + } + #tsd-search-results > li > a mark { + color: inherit; + background-color: inherit; + font-weight: bold; + } + #tsd-search-status { + flex: 1; + display: grid; + place-content: center; + text-align: center; + overflow-wrap: anywhere; + } + #tsd-search-status:not(:empty) { + min-height: 6rem; } - .to-has-menu .overlay { - animation: fade-in 0.4s; + .tsd-signature { + margin: 0 0 1rem 0; + padding: 1rem 0.5rem; + border: 1px solid var(--color-accent); + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; + font-size: 14px; + overflow-x: auto; } - .to-has-menu .col-sidebar { - animation: pop-in-from-right 0.4s; + .tsd-signature-keyword { + color: var(--color-ts-keyword); + font-weight: normal; } - .from-has-menu .overlay { - animation: fade-out 0.4s; + .tsd-signature-symbol { + color: var(--color-text-aside); + font-weight: normal; } - .from-has-menu .col-sidebar { - animation: pop-out-to-right 0.4s; + .tsd-signature-type { + font-style: italic; + font-weight: normal; } - .has-menu body { - overflow: hidden; + .tsd-signatures { + padding: 0; + margin: 0 0 1em 0; + list-style-type: none; } - .has-menu .overlay { - visibility: visible; + .tsd-signatures .tsd-signature { + margin: 0; + border-color: var(--color-accent); + border-width: 1px 0; + transition: background-color 0.1s; } - .has-menu .col-sidebar { - visibility: visible; - transform: translate(0, 0); + .tsd-signatures .tsd-index-signature:not(:last-child) { + margin-bottom: 1em; + } + .tsd-signatures .tsd-index-signature .tsd-signature { + border-width: 1px; + } + .tsd-description .tsd-signatures .tsd-signature { + border-width: 1px; + } + + ul.tsd-parameter-list, + ul.tsd-type-parameter-list { + list-style: square; + margin: 0; + padding-left: 20px; + } + ul.tsd-parameter-list > li.tsd-parameter-signature, + ul.tsd-type-parameter-list > li.tsd-parameter-signature { + list-style: none; + margin-left: -20px; + } + ul.tsd-parameter-list h5, + ul.tsd-type-parameter-list h5 { + font-size: 16px; + margin: 1em 0 0.5em 0; + } + .tsd-sources { + margin-top: 1rem; + font-size: 0.875em; + } + .tsd-sources a { + color: var(--color-text-aside); + text-decoration: underline; + } + .tsd-sources ul { + list-style: none; + padding: 0; + } + + .tsd-page-toolbar { + position: sticky; + z-index: 1; + top: 0; + left: 0; + width: 100%; + color: var(--color-text); + background: var(--color-background-secondary); + border-bottom: var(--dim-toolbar-border-bottom-width) + var(--color-accent) solid; + transition: transform 0.3s ease-in-out; + } + .tsd-page-toolbar a { + color: var(--color-text); + } + .tsd-toolbar-contents { display: flex; - flex-direction: column; + align-items: center; + height: var(--dim-toolbar-contents-height); + margin: 0 auto; + } + .tsd-toolbar-contents > .title { + font-weight: bold; + margin-right: auto; + } + #tsd-toolbar-links { + display: flex; + align-items: center; gap: 1.5rem; - max-height: 100vh; - padding: 1rem 2rem; + margin-right: 1rem; } - .has-menu .tsd-navigation { - max-height: 100%; + + .tsd-widget { + box-sizing: border-box; + display: inline-block; + opacity: 0.8; + height: 2.5rem; + width: 2.5rem; + transition: opacity 0.1s, background-color 0.1s; + text-align: center; + cursor: pointer; + border: none; + background-color: transparent; + } + .tsd-widget:hover { + opacity: 0.9; + } + .tsd-widget:active { + opacity: 1; + background-color: var(--color-accent); + } + #tsd-toolbar-menu-trigger { + display: none; } -} -/* one sidebar */ -@media (min-width: 770px) { - .container-main { - display: grid; - grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); - grid-template-areas: "sidebar content"; - margin: 2rem auto; + .tsd-member-summary-name { + display: inline-flex; + align-items: center; + padding: 0.25rem; + text-decoration: none; } - .col-sidebar { - grid-area: sidebar; + .tsd-anchor-icon { + display: inline-flex; + align-items: center; + margin-left: 0.5rem; + color: var(--color-text); + vertical-align: middle; } - .col-content { - grid-area: content; - padding: 0 1rem; + + .tsd-anchor-icon svg { + width: 1em; + height: 1em; + visibility: hidden; } -} -@media (min-width: 770px) and (max-width: 1399px) { - .col-sidebar { - max-height: calc(100vh - 2rem - 42px); - overflow: auto; - position: sticky; - top: 42px; - padding-top: 1rem; + + .tsd-member-summary-name:hover > .tsd-anchor-icon svg, + .tsd-anchor-link:hover > .tsd-anchor-icon svg, + .tsd-anchor-icon:focus-visible svg { + visibility: visible; } - .site-menu { - margin-top: 1rem; + + .deprecated { + text-decoration: line-through !important; } -} -/* two sidebars */ -@media (min-width: 1200px) { - .container-main { - grid-template-columns: minmax(0, 1fr) minmax(0, 2.5fr) minmax(0, 20rem); - grid-template-areas: "sidebar content toc"; + .warning { + padding: 1rem; + color: var(--color-warning-text); + background: var(--color-background-warning); } - .col-sidebar { - display: contents; + .tsd-kind-project { + color: var(--color-ts-project); + } + .tsd-kind-module { + color: var(--color-ts-module); + } + .tsd-kind-namespace { + color: var(--color-ts-namespace); + } + .tsd-kind-enum { + color: var(--color-ts-enum); + } + .tsd-kind-enum-member { + color: var(--color-ts-enum-member); + } + .tsd-kind-variable { + color: var(--color-ts-variable); + } + .tsd-kind-function { + color: var(--color-ts-function); + } + .tsd-kind-class { + color: var(--color-ts-class); + } + .tsd-kind-interface { + color: var(--color-ts-interface); + } + .tsd-kind-constructor { + color: var(--color-ts-constructor); + } + .tsd-kind-property { + color: var(--color-ts-property); + } + .tsd-kind-method { + color: var(--color-ts-method); + } + .tsd-kind-reference { + color: var(--color-ts-reference); + } + .tsd-kind-call-signature { + color: var(--color-ts-call-signature); + } + .tsd-kind-index-signature { + color: var(--color-ts-index-signature); + } + .tsd-kind-constructor-signature { + color: var(--color-ts-constructor-signature); + } + .tsd-kind-parameter { + color: var(--color-ts-parameter); + } + .tsd-kind-type-parameter { + color: var(--color-ts-type-parameter); + } + .tsd-kind-accessor { + color: var(--color-ts-accessor); + } + .tsd-kind-get-signature { + color: var(--color-ts-get-signature); + } + .tsd-kind-set-signature { + color: var(--color-ts-set-signature); + } + .tsd-kind-type-alias { + color: var(--color-ts-type-alias); } - .page-menu { - grid-area: toc; - padding-left: 1rem; + /* if we have a kind icon, don't color the text by kind */ + .tsd-kind-icon ~ span { + color: var(--color-text); } - .site-menu { - grid-area: sidebar; + + /* mobile */ + @media (max-width: 769px) { + #tsd-toolbar-menu-trigger { + display: inline-block; + /* temporary fix to vertically align, for compatibility */ + line-height: 2.5; + } + #tsd-toolbar-links { + display: none; + } + + .container-main { + display: flex; + } + .col-content { + float: none; + max-width: 100%; + width: 100%; + } + .col-sidebar { + position: fixed !important; + overflow-y: auto; + -webkit-overflow-scrolling: touch; + z-index: 1024; + top: 0 !important; + bottom: 0 !important; + left: auto !important; + right: 0 !important; + padding: 1.5rem 1.5rem 0 0; + width: 75vw; + visibility: hidden; + background-color: var(--color-background); + transform: translate(100%, 0); + } + .col-sidebar > *:last-child { + padding-bottom: 20px; + } + .overlay { + content: ""; + display: block; + position: fixed; + z-index: 1023; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: rgba(0, 0, 0, 0.75); + visibility: hidden; + } + + .to-has-menu .overlay { + animation: fade-in 0.4s; + } + + .to-has-menu .col-sidebar { + animation: pop-in-from-right 0.4s; + } + + .from-has-menu .overlay { + animation: fade-out 0.4s; + } + + .from-has-menu .col-sidebar { + animation: pop-out-to-right 0.4s; + } + + .has-menu body { + overflow: hidden; + } + .has-menu .overlay { + visibility: visible; + } + .has-menu .col-sidebar { + visibility: visible; + transform: translate(0, 0); + display: flex; + flex-direction: column; + gap: 1.5rem; + max-height: 100vh; + padding: 1rem 2rem; + } + .has-menu .tsd-navigation { + max-height: 100%; + } + .tsd-navigation .tsd-nav-link { + display: flex; + } } - .site-menu { - margin-top: 1rem 0; + /* one sidebar */ + @media (min-width: 770px) { + .container-main { + display: grid; + grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); + grid-template-areas: "sidebar content"; + --dim-container-main-margin-y: 2rem; + } + + .tsd-breadcrumb { + margin-top: 0; + } + + .col-sidebar { + grid-area: sidebar; + } + .col-content { + grid-area: content; + padding: 0 1rem; + } + } + @media (min-width: 770px) and (max-width: 1399px) { + .col-sidebar { + max-height: calc( + 100vh - var(--dim-header-height) - var(--dim-footer-height) - + 2 * var(--dim-container-main-margin-y) + ); + overflow: auto; + position: sticky; + top: calc( + var(--dim-header-height) + var(--dim-container-main-margin-y) + ); + } + .site-menu { + margin-top: 1rem; + } } - .page-menu, - .site-menu { - max-height: calc(100vh - 2rem - 42px); - overflow: auto; - position: sticky; - top: 42px; + /* two sidebars */ + @media (min-width: 1200px) { + .container-main { + grid-template-columns: + minmax(0, 1fr) minmax(0, 2.5fr) minmax( + 0, + 20rem + ); + grid-template-areas: "sidebar content toc"; + } + + .col-sidebar { + display: contents; + } + + .page-menu { + grid-area: toc; + padding-left: 1rem; + } + .site-menu { + grid-area: sidebar; + } + + .site-menu { + margin-top: 0rem; + } + + .page-menu, + .site-menu { + max-height: calc( + 100vh - var(--dim-header-height) - var(--dim-footer-height) - + 2 * var(--dim-container-main-margin-y) + ); + overflow: auto; + position: sticky; + top: calc( + var(--dim-header-height) + var(--dim-container-main-margin-y) + ); + } } } diff --git a/docs/classes/AuthenticationError.html b/docs/classes/AuthenticationError.html index b3d6c64c..5aa0e4ad 100644 --- a/docs/classes/AuthenticationError.html +++ b/docs/classes/AuthenticationError.html @@ -1,18 +1,18 @@ -AuthenticationError | @auth0/auth0-react

Class AuthenticationError

Thrown when handling the redirect callback fails, will be one of Auth0's -Authentication API's Standard Error Responses: https://auth0.com/docs/api/authentication?javascript#standard-error-responses

-

Hierarchy (view full)

Constructors

Properties

appState: any
error: string
error_description: string
message: string
name: string
stack?: string
state: string
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

-

Type declaration

    • (err, stackTraces): any
    • Parameters

      • err: Error
      • stackTraces: CallSite[]

      Returns any

stackTraceLimit: number

Methods

  • Create .stack property on a target object

    -

    Parameters

    • targetObject: object
    • Optional constructorOpt: Function

    Returns void

  • Parameters

    • __namedParameters: {
          error: string;
          error_description: string;
      }
      • error: string
      • error_description: string

    Returns GenericError

\ No newline at end of file +AuthenticationError | @auth0/auth0-react
@auth0/auth0-react
    Preparing search index...

    Class AuthenticationError

    Thrown when handling the redirect callback fails, will be one of Auth0's +Authentication API's Standard Error Responses: https://auth0.com/docs/api/authentication?javascript#standard-error-responses

    +

    Hierarchy (View Summary)

    Index

    Constructors

    • Parameters

      • error: string
      • error_description: string
      • state: string
      • OptionalappState: any

      Returns AuthenticationError

    Properties

    appState: any
    error: string
    error_description: string
    message: string
    name: string
    stack?: string
    state: string
    prepareStackTrace?: (err: Error, stackTraces: CallSite[]) => any

    Optional override for formatting stack traces

    +
    stackTraceLimit: number

    Methods

    • Create .stack property on a target object

      +

      Parameters

      • targetObject: object
      • OptionalconstructorOpt: Function

      Returns void

    • Parameters

      • __namedParameters: { error: string; error_description: string }

      Returns GenericError

    diff --git a/docs/classes/GenericError.html b/docs/classes/GenericError.html index be144ba1..e1fdb9b6 100644 --- a/docs/classes/GenericError.html +++ b/docs/classes/GenericError.html @@ -1,15 +1,15 @@ -GenericError | @auth0/auth0-react

    Thrown when network requests to the Auth server fail.

    -

    Hierarchy (view full)

    Constructors

    • Parameters

      • error: string
      • error_description: string

      Returns GenericError

    Properties

    error: string
    error_description: string
    message: string
    name: string
    stack?: string
    prepareStackTrace?: ((err, stackTraces) => any)

    Optional override for formatting stack traces

    -

    Type declaration

      • (err, stackTraces): any
      • Parameters

        • err: Error
        • stackTraces: CallSite[]

        Returns any

    stackTraceLimit: number

    Methods

    • Create .stack property on a target object

      -

      Parameters

      • targetObject: object
      • Optional constructorOpt: Function

      Returns void

    • Parameters

      • __namedParameters: {
            error: string;
            error_description: string;
        }
        • error: string
        • error_description: string

      Returns GenericError

    \ No newline at end of file +GenericError | @auth0/auth0-react
    @auth0/auth0-react
      Preparing search index...

      Class GenericError

      Thrown when network requests to the Auth server fail.

      +

      Hierarchy (View Summary)

      Index

      Constructors

      • Parameters

        • error: string
        • error_description: string

        Returns GenericError

      Properties

      error: string
      error_description: string
      message: string
      name: string
      stack?: string
      prepareStackTrace?: (err: Error, stackTraces: CallSite[]) => any

      Optional override for formatting stack traces

      +
      stackTraceLimit: number

      Methods

      • Create .stack property on a target object

        +

        Parameters

        • targetObject: object
        • OptionalconstructorOpt: Function

        Returns void

      • Parameters

        • __namedParameters: { error: string; error_description: string }

        Returns GenericError

      diff --git a/docs/classes/InMemoryCache.html b/docs/classes/InMemoryCache.html index 50cfd850..316235a7 100644 --- a/docs/classes/InMemoryCache.html +++ b/docs/classes/InMemoryCache.html @@ -1,3 +1,3 @@ -InMemoryCache | @auth0/auth0-react

      Constructors

      Properties

      Constructors

      Properties

      enclosedCache: ICache
      \ No newline at end of file +InMemoryCache | @auth0/auth0-react
      @auth0/auth0-react
        Preparing search index...

        Class InMemoryCache

        Index

        Constructors

        Properties

        Constructors

        Properties

        enclosedCache: ICache
        diff --git a/docs/classes/LocalStorageCache.html b/docs/classes/LocalStorageCache.html index 4c744864..b10ce507 100644 --- a/docs/classes/LocalStorageCache.html +++ b/docs/classes/LocalStorageCache.html @@ -1,6 +1,6 @@ -LocalStorageCache | @auth0/auth0-react

        Implements

        Constructors

        Methods

        Constructors

        Methods

        • Returns string[]

        • Type Parameters

          Parameters

          • key: string

          Returns MaybePromise<undefined | T>

        • Parameters

          • key: string

          Returns void

        • Type Parameters

          Parameters

          • key: string
          • entry: T

          Returns void

        \ No newline at end of file +LocalStorageCache | @auth0/auth0-react
        @auth0/auth0-react
          Preparing search index...

          Class LocalStorageCache

          Implements

          Index

          Constructors

          Methods

          Constructors

          Methods

          • Returns string[]

          • Type Parameters

            Parameters

            • key: string

            Returns MaybePromise<undefined | T>

          • Parameters

            • key: string

            Returns void

          • Type Parameters

            Parameters

            • key: string
            • entry: T

            Returns void

          diff --git a/docs/classes/MfaRequiredError.html b/docs/classes/MfaRequiredError.html index b117f034..bab9b0d6 100644 --- a/docs/classes/MfaRequiredError.html +++ b/docs/classes/MfaRequiredError.html @@ -1,16 +1,16 @@ -MfaRequiredError | @auth0/auth0-react

          Error thrown when the token exchange results in a mfa_required error

          -

          Hierarchy (view full)

          Constructors

          Properties

          error: string
          error_description: string
          message: string
          mfa_token: string
          name: string
          stack?: string
          prepareStackTrace?: ((err, stackTraces) => any)

          Optional override for formatting stack traces

          -

          Type declaration

            • (err, stackTraces): any
            • Parameters

              • err: Error
              • stackTraces: CallSite[]

              Returns any

          stackTraceLimit: number

          Methods

          • Create .stack property on a target object

            -

            Parameters

            • targetObject: object
            • Optional constructorOpt: Function

            Returns void

          • Parameters

            • __namedParameters: {
                  error: string;
                  error_description: string;
              }
              • error: string
              • error_description: string

            Returns GenericError

          \ No newline at end of file +MfaRequiredError | @auth0/auth0-react
          @auth0/auth0-react
            Preparing search index...

            Class MfaRequiredError

            Error thrown when the token exchange results in a mfa_required error

            +

            Hierarchy (View Summary)

            Index

            Constructors

            • Parameters

              • error: string
              • error_description: string
              • mfa_token: string

              Returns MfaRequiredError

            Properties

            error: string
            error_description: string
            message: string
            mfa_token: string
            name: string
            stack?: string
            prepareStackTrace?: (err: Error, stackTraces: CallSite[]) => any

            Optional override for formatting stack traces

            +
            stackTraceLimit: number

            Methods

            • Create .stack property on a target object

              +

              Parameters

              • targetObject: object
              • OptionalconstructorOpt: Function

              Returns void

            • Parameters

              • __namedParameters: { error: string; error_description: string }

              Returns GenericError

            diff --git a/docs/classes/MissingRefreshTokenError.html b/docs/classes/MissingRefreshTokenError.html index 2bfb657b..bb8f48de 100644 --- a/docs/classes/MissingRefreshTokenError.html +++ b/docs/classes/MissingRefreshTokenError.html @@ -1,17 +1,17 @@ -MissingRefreshTokenError | @auth0/auth0-react

            Class MissingRefreshTokenError

            Error thrown when there is no refresh token to use

            -

            Hierarchy (view full)

            Constructors

            Properties

            audience: string
            error: string
            error_description: string
            message: string
            name: string
            scope: string
            stack?: string
            prepareStackTrace?: ((err, stackTraces) => any)

            Optional override for formatting stack traces

            -

            Type declaration

              • (err, stackTraces): any
              • Parameters

                • err: Error
                • stackTraces: CallSite[]

                Returns any

            stackTraceLimit: number

            Methods

            • Create .stack property on a target object

              -

              Parameters

              • targetObject: object
              • Optional constructorOpt: Function

              Returns void

            • Parameters

              • __namedParameters: {
                    error: string;
                    error_description: string;
                }
                • error: string
                • error_description: string

              Returns GenericError

            \ No newline at end of file +MissingRefreshTokenError | @auth0/auth0-react
            @auth0/auth0-react
              Preparing search index...

              Class MissingRefreshTokenError

              Error thrown when there is no refresh token to use

              +

              Hierarchy (View Summary)

              Index

              Constructors

              Properties

              audience: string
              error: string
              error_description: string
              message: string
              name: string
              scope: string
              stack?: string
              prepareStackTrace?: (err: Error, stackTraces: CallSite[]) => any

              Optional override for formatting stack traces

              +
              stackTraceLimit: number

              Methods

              • Create .stack property on a target object

                +

                Parameters

                • targetObject: object
                • OptionalconstructorOpt: Function

                Returns void

              • Parameters

                • __namedParameters: { error: string; error_description: string }

                Returns GenericError

              diff --git a/docs/classes/OAuthError.html b/docs/classes/OAuthError.html index 65428ac9..205b8476 100644 --- a/docs/classes/OAuthError.html +++ b/docs/classes/OAuthError.html @@ -1,16 +1,16 @@ -OAuthError | @auth0/auth0-react

              An OAuth2 error will come from the authorization server and will have at least an error property which will +OAuthError | @auth0/auth0-react

              @auth0/auth0-react
                Preparing search index...

                Class OAuthError

                An OAuth2 error will come from the authorization server and will have at least an error property which will be the error code. And possibly an error_description property

                See: https://openid.net/specs/openid-connect-core-1_0.html#rfc.section.3.1.2.6

                -

                Hierarchy

                • Error
                  • OAuthError

                Constructors

                • Parameters

                  • error: string
                  • Optional error_description: string

                  Returns OAuthError

                Properties

                error: string
                error_description?: string
                message: string
                name: string
                stack?: string
                prepareStackTrace?: ((err, stackTraces) => any)

                Optional override for formatting stack traces

                -

                Type declaration

                  • (err, stackTraces): any
                  • Parameters

                    • err: Error
                    • stackTraces: CallSite[]

                    Returns any

                stackTraceLimit: number

                Methods

                • Create .stack property on a target object

                  -

                  Parameters

                  • targetObject: object
                  • Optional constructorOpt: Function

                  Returns void

                \ No newline at end of file +

                Hierarchy

                • Error
                  • OAuthError
                Index

                Constructors

                • Parameters

                  • error: string
                  • Optionalerror_description: string

                  Returns OAuthError

                Properties

                error: string
                error_description?: string
                message: string
                name: string
                stack?: string
                prepareStackTrace?: (err: Error, stackTraces: CallSite[]) => any

                Optional override for formatting stack traces

                +
                stackTraceLimit: number

                Methods

                • Create .stack property on a target object

                  +

                  Parameters

                  • targetObject: object
                  • OptionalconstructorOpt: Function

                  Returns void

                diff --git a/docs/classes/PopupCancelledError.html b/docs/classes/PopupCancelledError.html index 6908a252..b5d17409 100644 --- a/docs/classes/PopupCancelledError.html +++ b/docs/classes/PopupCancelledError.html @@ -1,16 +1,16 @@ -PopupCancelledError | @auth0/auth0-react

                Class PopupCancelledError

                Thrown when network requests to the Auth server fail.

                -

                Hierarchy (view full)

                Constructors

                Properties

                error: string
                error_description: string
                message: string
                name: string
                popup: Window
                stack?: string
                prepareStackTrace?: ((err, stackTraces) => any)

                Optional override for formatting stack traces

                -

                Type declaration

                  • (err, stackTraces): any
                  • Parameters

                    • err: Error
                    • stackTraces: CallSite[]

                    Returns any

                stackTraceLimit: number

                Methods

                • Create .stack property on a target object

                  -

                  Parameters

                  • targetObject: object
                  • Optional constructorOpt: Function

                  Returns void

                • Parameters

                  • __namedParameters: {
                        error: string;
                        error_description: string;
                    }
                    • error: string
                    • error_description: string

                  Returns GenericError

                \ No newline at end of file +PopupCancelledError | @auth0/auth0-react
                @auth0/auth0-react
                  Preparing search index...

                  Class PopupCancelledError

                  Thrown when network requests to the Auth server fail.

                  +

                  Hierarchy (View Summary)

                  Index

                  Constructors

                  Properties

                  error: string
                  error_description: string
                  message: string
                  name: string
                  popup: Window
                  stack?: string
                  prepareStackTrace?: (err: Error, stackTraces: CallSite[]) => any

                  Optional override for formatting stack traces

                  +
                  stackTraceLimit: number

                  Methods

                  • Create .stack property on a target object

                    +

                    Parameters

                    • targetObject: object
                    • OptionalconstructorOpt: Function

                    Returns void

                  • Parameters

                    • __namedParameters: { error: string; error_description: string }

                    Returns GenericError

                  diff --git a/docs/classes/PopupTimeoutError.html b/docs/classes/PopupTimeoutError.html index 5b47d226..cd230784 100644 --- a/docs/classes/PopupTimeoutError.html +++ b/docs/classes/PopupTimeoutError.html @@ -1,16 +1,16 @@ -PopupTimeoutError | @auth0/auth0-react

                  Error thrown when the login popup times out (if the user does not complete auth)

                  -

                  Hierarchy (view full)

                  Constructors

                  Properties

                  error: string
                  error_description: string
                  message: string
                  name: string
                  popup: Window
                  stack?: string
                  prepareStackTrace?: ((err, stackTraces) => any)

                  Optional override for formatting stack traces

                  -

                  Type declaration

                    • (err, stackTraces): any
                    • Parameters

                      • err: Error
                      • stackTraces: CallSite[]

                      Returns any

                  stackTraceLimit: number

                  Methods

                  • Create .stack property on a target object

                    -

                    Parameters

                    • targetObject: object
                    • Optional constructorOpt: Function

                    Returns void

                  • Parameters

                    • __namedParameters: {
                          error: string;
                          error_description: string;
                      }
                      • error: string
                      • error_description: string

                    Returns GenericError

                  \ No newline at end of file +PopupTimeoutError | @auth0/auth0-react
                  @auth0/auth0-react
                    Preparing search index...

                    Class PopupTimeoutError

                    Error thrown when the login popup times out (if the user does not complete auth)

                    +

                    Hierarchy (View Summary)

                    Index

                    Constructors

                    Properties

                    error: string
                    error_description: string
                    message: string
                    name: string
                    popup: Window
                    stack?: string
                    prepareStackTrace?: (err: Error, stackTraces: CallSite[]) => any

                    Optional override for formatting stack traces

                    +
                    stackTraceLimit: number

                    Methods

                    • Create .stack property on a target object

                      +

                      Parameters

                      • targetObject: object
                      • OptionalconstructorOpt: Function

                      Returns void

                    • Parameters

                      • __namedParameters: { error: string; error_description: string }

                      Returns GenericError

                    diff --git a/docs/classes/TimeoutError.html b/docs/classes/TimeoutError.html index 9d580bf4..2845fa31 100644 --- a/docs/classes/TimeoutError.html +++ b/docs/classes/TimeoutError.html @@ -1,16 +1,16 @@ -TimeoutError | @auth0/auth0-react

                    Thrown when silent auth times out (usually due to a configuration issue) or +TimeoutError | @auth0/auth0-react

                    @auth0/auth0-react
                      Preparing search index...

                      Class TimeoutError

                      Thrown when silent auth times out (usually due to a configuration issue) or when network requests to the Auth server timeout.

                      -

                      Hierarchy (view full)

                      Constructors

                      Properties

                      error: string
                      error_description: string
                      message: string
                      name: string
                      stack?: string
                      prepareStackTrace?: ((err, stackTraces) => any)

                      Optional override for formatting stack traces

                      -

                      Type declaration

                        • (err, stackTraces): any
                        • Parameters

                          • err: Error
                          • stackTraces: CallSite[]

                          Returns any

                      stackTraceLimit: number

                      Methods

                      • Create .stack property on a target object

                        -

                        Parameters

                        • targetObject: object
                        • Optional constructorOpt: Function

                        Returns void

                      • Parameters

                        • __namedParameters: {
                              error: string;
                              error_description: string;
                          }
                          • error: string
                          • error_description: string

                        Returns GenericError

                      \ No newline at end of file +

                      Hierarchy (View Summary)

                      Index

                      Constructors

                      Properties

                      error: string
                      error_description: string
                      message: string
                      name: string
                      stack?: string
                      prepareStackTrace?: (err: Error, stackTraces: CallSite[]) => any

                      Optional override for formatting stack traces

                      +
                      stackTraceLimit: number

                      Methods

                      • Create .stack property on a target object

                        +

                        Parameters

                        • targetObject: object
                        • OptionalconstructorOpt: Function

                        Returns void

                      • Parameters

                        • __namedParameters: { error: string; error_description: string }

                        Returns GenericError

                      diff --git a/docs/classes/User.html b/docs/classes/User.html index 77ef93b6..6365885c 100644 --- a/docs/classes/User.html +++ b/docs/classes/User.html @@ -1,22 +1,22 @@ -User | @auth0/auth0-react

                      Indexable

                      [key: string]: any

                      Constructors

                      Properties

                      address?: string
                      birthdate?: string
                      email?: string
                      email_verified?: boolean
                      family_name?: string
                      gender?: string
                      given_name?: string
                      locale?: string
                      middle_name?: string
                      name?: string
                      nickname?: string
                      phone_number?: string
                      phone_number_verified?: boolean
                      picture?: string
                      preferred_username?: string
                      profile?: string
                      sub?: string
                      updated_at?: string
                      website?: string
                      zoneinfo?: string
                      \ No newline at end of file +User | @auth0/auth0-react
                      @auth0/auth0-react
                        Preparing search index...

                        Class User

                        Indexable

                        • [key: string]: any
                        Index

                        Constructors

                        Properties

                        address?: string
                        birthdate?: string
                        email?: string
                        email_verified?: boolean
                        family_name?: string
                        gender?: string
                        given_name?: string
                        locale?: string
                        middle_name?: string
                        name?: string
                        nickname?: string
                        phone_number?: string
                        phone_number_verified?: boolean
                        picture?: string
                        preferred_username?: string
                        profile?: string
                        sub?: string
                        updated_at?: string
                        website?: string
                        zoneinfo?: string
                        diff --git a/docs/functions/Auth0Context.html b/docs/functions/Auth0Context.html deleted file mode 100644 index ead7730d..00000000 --- a/docs/functions/Auth0Context.html +++ /dev/null @@ -1,10 +0,0 @@ -Auth0Context | @auth0/auth0-react

                        Function Auth0Context

                        • The Auth0 Context

                          -

                          Parameters

                          Returns null | ReactElement<unknown, string | JSXElementConstructor<any>>

                        Properties

                        $$typeof: symbol
                        Consumer: Consumer<Auth0ContextInterface<User>>
                        Provider: Provider<Auth0ContextInterface<User>>
                        displayName?: string

                        Used in debugging messages. You might want to set it -explicitly if you want to display a different name for -debugging purposes.

                        -
                        \ No newline at end of file diff --git a/docs/functions/Auth0Provider.html b/docs/functions/Auth0Provider.html index da95bd92..93ba6587 100644 --- a/docs/functions/Auth0Provider.html +++ b/docs/functions/Auth0Provider.html @@ -1,4 +1,5 @@ -Auth0Provider | @auth0/auth0-react

                        Function Auth0Provider

                        • <Auth0Provider
                          domain={domain}
                          clientId={clientId}
                          authorizationParams={{ redirect_uri: window.location.origin }}>
                          <MyApp />
                          </Auth0Provider> -
                          +Auth0Provider | @auth0/auth0-react
                          @auth0/auth0-react
                            Preparing search index...

                            Function Auth0Provider

                            \ No newline at end of file +

                            Type Parameters

                            Parameters

                            Returns Element

                          diff --git a/docs/functions/useAuth0.html b/docs/functions/useAuth0.html index b2f8c253..1c763cec 100644 --- a/docs/functions/useAuth0.html +++ b/docs/functions/useAuth0.html @@ -1,5 +1,6 @@ -useAuth0 | @auth0/auth0-react
                          • const {
                            // Auth state:
                            error,
                            isAuthenticated,
                            isLoading,
                            user,
                            // Auth methods:
                            getAccessTokenSilently,
                            getAccessTokenWithPopup,
                            getIdTokenClaims,
                            loginWithRedirect,
                            loginWithPopup,
                            logout,
                            } = useAuth0<TUser>(); -
                            +useAuth0 | @auth0/auth0-react
                            @auth0/auth0-react
                              Preparing search index...

                              Function useAuth0

                              \ No newline at end of file +

                              Type Parameters

                              Parameters

                              Returns Auth0ContextInterface<TUser>

                            diff --git a/docs/functions/withAuth0.html b/docs/functions/withAuth0.html index e15ca4be..5da1eebf 100644 --- a/docs/functions/withAuth0.html +++ b/docs/functions/withAuth0.html @@ -1,6 +1,7 @@ -withAuth0 | @auth0/auth0-react

                            Function withAuth0

                            • class MyComponent extends Component {
                              render() {
                              // Access the auth context from the `auth0` prop
                              const { user } = this.props.auth0;
                              return <div>Hello {user.name}!</div>
                              }
                              }
                              // Wrap your class component in withAuth0
                              export default withAuth0(MyComponent); -
                              +withAuth0 | @auth0/auth0-react
                              @auth0/auth0-react
                                Preparing search index...

                                Function withAuth0

                                • class MyComponent extends Component {
                                  render() {
                                  // Access the auth context from the `auth0` prop
                                  const { user } = this.props.auth0;
                                  return <div>Hello {user.name}!</div>
                                  }
                                  }
                                  // Wrap your class component in withAuth0
                                  export default withAuth0(MyComponent); +
                                  +

                                  Wrap your class components in this Higher Order Component to give them access to the Auth0Context.

                                  Providing a context as the second argument allows you to configure the Auth0Provider the Auth0Context should come from f you have multiple within your application.

                                  -

                                  Type Parameters

                                  Parameters

                                  Returns ComponentType<Omit<P, "auth0">>

                                \ No newline at end of file +

                                Type Parameters

                                Parameters

                                Returns ComponentType<Omit<P, "auth0">>

                              diff --git a/docs/functions/withAuthenticationRequired.html b/docs/functions/withAuthenticationRequired.html index 24947433..8e7c4ddf 100644 --- a/docs/functions/withAuthenticationRequired.html +++ b/docs/functions/withAuthenticationRequired.html @@ -1,5 +1,6 @@ -withAuthenticationRequired | @auth0/auth0-react

                              Function withAuthenticationRequired

                              • const MyProtectedComponent = withAuthenticationRequired(MyComponent);
                                -
                                +withAuthenticationRequired | @auth0/auth0-react
                                @auth0/auth0-react
                                  Preparing search index...

                                  Function withAuthenticationRequired

                                  • const MyProtectedComponent = withAuthenticationRequired(MyComponent);
                                    +
                                    +

                                    When you wrap your components in this Higher Order Component and an anonymous user visits your component they will be redirected to the login page; after login they will be returned to the page they were redirected from.

                                    -

                                    Type Parameters

                                    • P extends object

                                    Parameters

                                    Returns FC<P>

                                  \ No newline at end of file +

                                  Type Parameters

                                  • P extends object

                                  Parameters

                                  Returns FC<P>

                                diff --git a/docs/hierarchy.html b/docs/hierarchy.html index 65c1c06a..f1d10527 100644 --- a/docs/hierarchy.html +++ b/docs/hierarchy.html @@ -1 +1 @@ -@auth0/auth0-react
                                \ No newline at end of file +@auth0/auth0-react
                                @auth0/auth0-react
                                  Preparing search index...
                                  diff --git a/docs/index.html b/docs/index.html index a5304100..daba4235 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,28 +1,30 @@ -@auth0/auth0-react

                                  @auth0/auth0-react

                                  Auth0 SDK for React Single Page Applications

                                  +@auth0/auth0-react
                                  @auth0/auth0-react
                                    Preparing search index...

                                    @auth0/auth0-react

                                    Auth0 SDK for React Single Page Applications

                                    npm codecov Downloads License -CircleCI

                                    -

                                    📚 Documentation - 🚀 Getting Started - 💻 API Reference - 💬 Feedback

                                    -

                                    Documentation

                                      +CircleCI

                                      +

                                      📚 Documentation - 🚀 Getting Started - 💻 API Reference - 💬 Feedback

                                      +
                                      • Quickstart - our interactive guide for quickly adding login, logout and user information to a React app using Auth0.
                                      • Sample App - a full-fledged React application integrated with Auth0.
                                      • FAQs - frequently asked questions about the auth0-react SDK.
                                      • -
                                      • Examples - code samples for common React authentication scenario's.
                                      • +
                                      • Examples - code samples for common React authentication scenario's.
                                      • Docs site - explore our docs site and learn more about Auth0.
                                      -

                                      Getting started

                                      Installation

                                      Using npm

                                      -
                                      npm install @auth0/auth0-react
                                      -
                                      +

                                      Using npm

                                      +
                                      npm install @auth0/auth0-react
                                      +
                                      +

                                      Using yarn

                                      -
                                      yarn add @auth0/auth0-react
                                      -
                                      -

                                      Configure Auth0

                                      Create a Single Page Application in the Auth0 Dashboard.

                                      +
                                      yarn add @auth0/auth0-react
                                      +
                                      + +

                                      Create a Single Page Application in the Auth0 Dashboard.

                                      -

                                      If you're using an existing application, verify that you have configured the following settings in your Single Page Application:

                                      +

                                      If you're using an existing application, verify that you have configured the following settings in your Single Page Application:

                                        -
                                      • Click on the "Settings" tab of your application's page.
                                      • +
                                      • Click on the "Settings" tab of your application's page.
                                      • Scroll down and click on the "Show Advanced Settings" link.
                                      • Under "Advanced Settings", click on the "OAuth" tab.
                                      • Ensure that "JsonWebToken Signature Algorithm" is set to RS256 and that "OIDC Conformant" is enabled.
                                      • @@ -35,25 +37,26 @@
                                      • Allowed Web Origins: http://localhost:3000
                                      -

                                      These URLs should reflect the origins that your application is running on. Allowed Callback URLs may also include a path, depending on where you're handling the callback.

                                      +

                                      These URLs should reflect the origins that your application is running on. Allowed Callback URLs may also include a path, depending on where you're handling the callback.

                                      -

                                      Take note of the Client ID and Domain values under the "Basic Information" section. You'll need these values in the next step.

                                      -

                                      Configure the SDK

                                      Configure the SDK by wrapping your application in Auth0Provider:

                                      -
                                      // src/index.js
                                      import React from 'react';
                                      import { createRoot } from 'react-dom/client';
                                      import { Auth0Provider } from '@auth0/auth0-react';
                                      import App from './App';

                                      const root = createRoot(document.getElementById('app'));

                                      root.render(
                                      <Auth0Provider
                                      domain="YOUR_AUTH0_DOMAIN"
                                      clientId="YOUR_AUTH0_CLIENT_ID"
                                      authorizationParams={{
                                      redirect_uri: window.location.origin,
                                      }}
                                      >
                                      <App />
                                      </Auth0Provider>
                                      ); -
                                      +

                                      Take note of the Client ID and Domain values under the "Basic Information" section. You'll need these values in the next step.

                                      +

                                      Configure the SDK by wrapping your application in Auth0Provider:

                                      +
                                      // src/index.js
                                      import React from 'react';
                                      import { createRoot } from 'react-dom/client';
                                      import { Auth0Provider } from '@auth0/auth0-react';
                                      import App from './App';

                                      const root = createRoot(document.getElementById('app'));

                                      root.render(
                                      <Auth0Provider
                                      domain="YOUR_AUTH0_DOMAIN"
                                      clientId="YOUR_AUTH0_CLIENT_ID"
                                      authorizationParams={{
                                      redirect_uri: window.location.origin,
                                      }}
                                      >
                                      <App />
                                      </Auth0Provider>
                                      ); +
                                      +
                                      Instructions for React <18
                                      +
                                      // src/index.js
                                      import React from 'react';
                                      import ReactDOM from 'react-dom';
                                      import { Auth0Provider } from '@auth0/auth0-react';
                                      import App from './App';

                                      ReactDOM.render(
                                      <Auth0Provider
                                      domain="YOUR_AUTH0_DOMAIN"
                                      clientId="YOUR_AUTH0_CLIENT_ID"
                                      authorizationParams={{
                                      redirect_uri: window.location.origin,
                                      }}
                                      >
                                      <App />
                                      </Auth0Provider>,
                                      document.getElementById('app')
                                      ); +
                                      -
                                      // src/index.js
                                      import React from 'react';
                                      import ReactDOM from 'react-dom';
                                      import { Auth0Provider } from '@auth0/auth0-react';
                                      import App from './App';

                                      ReactDOM.render(
                                      <Auth0Provider
                                      domain="YOUR_AUTH0_DOMAIN"
                                      clientId="YOUR_AUTH0_CLIENT_ID"
                                      authorizationParams={{
                                      redirect_uri: window.location.origin,
                                      }}
                                      >
                                      <App />
                                      </Auth0Provider>,
                                      document.getElementById('app')
                                      ); -
                                      -

                                      Use the useAuth0 hook in your components to access authentication state (isLoading, isAuthenticated and user) and authentication methods (loginWithRedirect and logout):

                                      -
                                      // src/App.js
                                      import React from 'react';
                                      import { useAuth0 } from '@auth0/auth0-react';

                                      function App() {
                                      const { isLoading, isAuthenticated, error, user, loginWithRedirect, logout } =
                                      useAuth0();

                                      if (isLoading) {
                                      return <div>Loading...</div>;
                                      }
                                      if (error) {
                                      return <div>Oops... {error.message}</div>;
                                      }

                                      if (isAuthenticated) {
                                      return (
                                      <div>
                                      Hello {user.name}{' '}
                                      <button onClick={() => logout({ logoutParams: { returnTo: window.location.origin } })}>
                                      Log out
                                      </button>
                                      </div>
                                      );
                                      } else {
                                      return <button onClick={() => loginWithRedirect()}>Log in</button>;
                                      }
                                      }

                                      export default App; -
                                      +
                                      // src/App.js
                                      import React from 'react';
                                      import { useAuth0 } from '@auth0/auth0-react';

                                      function App() {
                                      const { isLoading, isAuthenticated, error, user, loginWithRedirect, logout } =
                                      useAuth0();

                                      if (isLoading) {
                                      return <div>Loading...</div>;
                                      }
                                      if (error) {
                                      return <div>Oops... {error.message}</div>;
                                      }

                                      if (isAuthenticated) {
                                      return (
                                      <div>
                                      Hello {user.name}{' '}
                                      <button onClick={() => logout({ logoutParams: { returnTo: window.location.origin } })}>
                                      Log out
                                      </button>
                                      </div>
                                      );
                                      } else {
                                      return <button onClick={() => loginWithRedirect()}>Log in</button>;
                                      }
                                      }

                                      export default App; +
                                      +

                                      For more code samples on how to integrate auth0-react SDK in your React application, have a look at our examples.

                                      -

                                      API reference

                                      Explore public API's available in auth0-react.

                                      +

                                      Explore public API's available in auth0-react.

                                      -

                                      Feedback

                                      Contributing

                                      We appreciate feedback and contribution to this repo! Before you get started, please see the following:

                                      +

                                      We appreciate feedback and contribution to this repo! Before you get started, please see the following:

                                      -

                                      Raise an issue

                                      To provide feedback or report a bug, please raise an issue on our issue tracker.

                                      -

                                      Vulnerability Reporting

                                      Please do not report security vulnerabilities on the public GitHub issue tracker. The Responsible Disclosure Program details the procedure for disclosing security issues.

                                      +

                                      To provide feedback or report a bug, please raise an issue on our issue tracker.

                                      +

                                      Please do not report security vulnerabilities on the public GitHub issue tracker. The Responsible Disclosure Program details the procedure for disclosing security issues.


                                      @@ -79,4 +82,4 @@

                                      Auth0 is an easy to implement, adaptable authentication and authorization platform. To learn more checkout Why Auth0?

                                      -This project is licensed under the MIT license. See the LICENSE file for more info.

                                    \ No newline at end of file +This project is licensed under the MIT license. See the LICENSE file for more info.

                                    diff --git a/docs/interfaces/Auth0ContextInterface.html b/docs/interfaces/Auth0ContextInterface.html index e1a5f275..f7aab4cf 100644 --- a/docs/interfaces/Auth0ContextInterface.html +++ b/docs/interfaces/Auth0ContextInterface.html @@ -1,25 +1,26 @@ -Auth0ContextInterface | @auth0/auth0-react

                                    Interface Auth0ContextInterface<TUser>

                                    Contains the authenticated state and authentication methods provided by the useAuth0 hook.

                                    -
                                    interface Auth0ContextInterface<TUser> {
                                        error?: Error;
                                        getAccessTokenSilently: {
                                            (options): Promise<GetTokenSilentlyVerboseResponse>;
                                            (options?): Promise<string>;
                                            (options): Promise<string | GetTokenSilentlyVerboseResponse>;
                                        };
                                        getAccessTokenWithPopup: ((options?, config?) => Promise<undefined | string>);
                                        getIdTokenClaims: (() => Promise<undefined | IdToken>);
                                        handleRedirectCallback: ((url?) => Promise<RedirectLoginResult<any>>);
                                        isAuthenticated: boolean;
                                        isLoading: boolean;
                                        loginWithPopup: ((options?, config?) => Promise<void>);
                                        loginWithRedirect: ((options?) => Promise<void>);
                                        logout: ((options?) => Promise<void>);
                                        user?: TUser;
                                    }

                                    Type Parameters

                                    Hierarchy

                                    • AuthState<TUser>
                                      • Auth0ContextInterface

                                    Properties

                                    error?: Error
                                    getAccessTokenSilently: {
                                        (options): Promise<GetTokenSilentlyVerboseResponse>;
                                        (options?): Promise<string>;
                                        (options): Promise<string | GetTokenSilentlyVerboseResponse>;
                                    }
                                    const token = await getAccessTokenSilently(options);
                                    -
                                    -

                                    If there's a valid token stored, return it. Otherwise, opens an +Auth0ContextInterface | @auth0/auth0-react

                                    @auth0/auth0-react
                                      Preparing search index...

                                      Interface Auth0ContextInterface<TUser>

                                      Contains the authenticated state and authentication methods provided by the useAuth0 hook.

                                      +
                                      interface Auth0ContextInterface<TUser extends User = User> {
                                          error: undefined | Error;
                                          getAccessTokenSilently: {
                                              (
                                                  options: GetTokenSilentlyOptions & { detailedResponse: true },
                                              ): Promise<GetTokenSilentlyVerboseResponse>;
                                              (options?: GetTokenSilentlyOptions): Promise<string>;
                                              (
                                                  options: GetTokenSilentlyOptions,
                                              ): Promise<string | GetTokenSilentlyVerboseResponse>;
                                          };
                                          getAccessTokenWithPopup: (
                                              options?: GetTokenWithPopupOptions,
                                              config?: PopupConfigOptions,
                                          ) => Promise<undefined | string>;
                                          getIdTokenClaims: () => Promise<undefined | IdToken>;
                                          handleRedirectCallback: (url?: string) => Promise<RedirectLoginResult<any>>;
                                          isAuthenticated: boolean;
                                          isLoading: boolean;
                                          loginWithPopup: (
                                              options?: PopupLoginOptions,
                                              config?: PopupConfigOptions,
                                          ) => Promise<void>;
                                          loginWithRedirect: (
                                              options?: RedirectLoginOptions<AppState>,
                                          ) => Promise<void>;
                                          logout: (options?: LogoutOptions) => Promise<void>;
                                          user: undefined | TUser;
                                      }

                                      Type Parameters

                                      Hierarchy

                                      • AuthState<TUser>
                                        • Auth0ContextInterface
                                      Index

                                      Properties

                                      error: undefined | Error
                                      getAccessTokenSilently: {
                                          (
                                              options: GetTokenSilentlyOptions & { detailedResponse: true },
                                          ): Promise<GetTokenSilentlyVerboseResponse>;
                                          (options?: GetTokenSilentlyOptions): Promise<string>;
                                          (
                                              options: GetTokenSilentlyOptions,
                                          ): Promise<string | GetTokenSilentlyVerboseResponse>;
                                      }
                                      const token = await getAccessTokenSilently(options);
                                      +
                                      + +

                                      If there's a valid token stored, return it. Otherwise, opens an iframe with the /authorize URL using the parameters provided as arguments. Random and secure state and nonce parameters will be auto-generated. If the response is successful, results will be valid according to their expiration times.

                                      If refresh tokens are used, the token endpoint is called directly with the -'refresh_token' grant. If no refresh token is available to make this call, -the SDK will only fall back to using an iframe to the '/authorize' URL if +'refresh_token' grant. If no refresh token is available to make this call, +the SDK will only fall back to using an iframe to the '/authorize' URL if the useRefreshTokensFallback setting has been set to true. By default this setting is false.

                                      This method may use a web worker to perform the token call if the in-memory @@ -28,23 +29,26 @@ back to using an iframe to make the token exchange.

                                      Note that in all cases, falling back to an iframe requires access to the auth0 cookie.

                                      -

                                      Type declaration

                                        • (options): Promise<GetTokenSilentlyVerboseResponse>
                                        • Parameters

                                          Returns Promise<GetTokenSilentlyVerboseResponse>

                                        • (options?): Promise<string>
                                        • Parameters

                                          Returns Promise<string>

                                        • (options): Promise<string | GetTokenSilentlyVerboseResponse>
                                        • Parameters

                                          Returns Promise<string | GetTokenSilentlyVerboseResponse>

                                      getAccessTokenWithPopup: ((options?, config?) => Promise<undefined | string>)
                                      const token = await getTokenWithPopup(options, config);
                                      -
                                      +
                                      getAccessTokenWithPopup: (
                                          options?: GetTokenWithPopupOptions,
                                          config?: PopupConfigOptions,
                                      ) => Promise<undefined | string>
                                      const token = await getTokenWithPopup(options, config);
                                      +
                                      +

                                      Get an access token interactively.

                                      Opens a popup with the /authorize URL using the parameters provided as arguments. Random and secure state and nonce parameters will be auto-generated. If the response is successful, results will be valid according to their expiration times.

                                      -

                                      Type declaration

                                      getIdTokenClaims: (() => Promise<undefined | IdToken>)
                                      const claims = await getIdTokenClaims();
                                      -
                                      +
                                      getIdTokenClaims: () => Promise<undefined | IdToken>
                                      const claims = await getIdTokenClaims();
                                      +
                                      +

                                      Returns all claims from the id_token if available.

                                      -

                                      Type declaration

                                      handleRedirectCallback: ((url?) => Promise<RedirectLoginResult<any>>)

                                      After the browser redirects back to the callback page, +

                                      handleRedirectCallback: (url?: string) => Promise<RedirectLoginResult<any>>

                                      After the browser redirects back to the callback page, call handleRedirectCallback to handle success and error responses from Auth0. If the response is successful, results will be valid according to their expiration times.

                                      -

                                      Type declaration

                                        • (url?): Promise<RedirectLoginResult<any>>
                                        • Parameters

                                          • Optional url: string

                                            The URL to that should be used to retrieve the state and code values. Defaults to window.location.href if not given.

                                            -

                                          Returns Promise<RedirectLoginResult<any>>

                                      isAuthenticated: boolean
                                      isLoading: boolean
                                      loginWithPopup: ((options?, config?) => Promise<void>)
                                      await loginWithPopup(options, config);
                                      -
                                      +

                                      Type declaration

                                        • (url?: string): Promise<RedirectLoginResult<any>>
                                        • Parameters

                                          • Optionalurl: string

                                            The URL to that should be used to retrieve the state and code values. Defaults to window.location.href if not given.

                                            +

                                          Returns Promise<RedirectLoginResult<any>>

                                      isAuthenticated: boolean
                                      isLoading: boolean
                                      loginWithPopup: (
                                          options?: PopupLoginOptions,
                                          config?: PopupConfigOptions,
                                      ) => Promise<void>
                                      await loginWithPopup(options, config);
                                      +
                                      +

                                      Opens a popup with the /authorize URL using the parameters provided as arguments. Random and secure state and nonce parameters will be auto-generated. If the response is successful, @@ -52,15 +56,17 @@

                                      IMPORTANT: This method has to be called from an event handler that was started by the user like a button click, for example, otherwise the popup will be blocked in most browsers.

                                      -

                                      Type declaration

                                      loginWithRedirect: ((options?) => Promise<void>)
                                      await loginWithRedirect(options);
                                      -
                                      +
                                      loginWithRedirect: (options?: RedirectLoginOptions<AppState>) => Promise<void>
                                      await loginWithRedirect(options);
                                      +
                                      +

                                      Performs a redirect to /authorize using the parameters provided as arguments. Random and secure state and nonce parameters will be auto-generated.

                                      -

                                      Type declaration

                                      logout: ((options?) => Promise<void>)
                                      auth0.logout({ logoutParams: { returnTo: window.location.origin } });
                                      -
                                      +
                                      logout: (options?: LogoutOptions) => Promise<void>
                                      auth0.logout({ logoutParams: { returnTo: window.location.origin } });
                                      +
                                      +

                                      Clears the application session and performs a redirect to /v2/logout, using the parameters provided as arguments, to clear the Auth0 session. If the logoutParams.federated option is specified, it also clears the Identity Provider session. Read more about how Logout works at Auth0.

                                      -

                                      Type declaration

                                        • (options?): Promise<void>
                                        • Parameters

                                          Returns Promise<void>

                                      user?: TUser
                                      \ No newline at end of file +
                                      user: undefined | TUser
                                      diff --git a/docs/interfaces/Auth0ProviderOptions.html b/docs/interfaces/Auth0ProviderOptions.html index 83fc491d..69a44925 100644 --- a/docs/interfaces/Auth0ProviderOptions.html +++ b/docs/interfaces/Auth0ProviderOptions.html @@ -1,39 +1,39 @@ -Auth0ProviderOptions | @auth0/auth0-react

                                      Interface Auth0ProviderOptions

                                      The main configuration to instantiate the Auth0Provider.

                                      -
                                      interface Auth0ProviderOptions {
                                          auth0Client?: {
                                              env?: {
                                                  [key: string]: string;
                                              };
                                              name: string;
                                              version: string;
                                          };
                                          authorizationParams?: AuthorizationParams;
                                          authorizeTimeoutInSeconds?: number;
                                          cache?: ICache;
                                          cacheLocation?: CacheLocation;
                                          children?: ReactNode;
                                          clientId: string;
                                          context?: Context<Auth0ContextInterface<User>>;
                                          cookieDomain?: string;
                                          domain: string;
                                          httpTimeoutInSeconds?: number;
                                          issuer?: string;
                                          leeway?: number;
                                          legacySameSiteCookie?: boolean;
                                          nowProvider?: (() => number | Promise<number>);
                                          onRedirectCallback?: ((appState?, user?) => void);
                                          sessionCheckExpiryDays?: number;
                                          skipRedirectCallback?: boolean;
                                          useCookiesForTransactions?: boolean;
                                          useFormData?: boolean;
                                          useRefreshTokens?: boolean;
                                          useRefreshTokensFallback?: boolean;
                                          workerUrl?: string;
                                      }

                                      Hierarchy

                                      • Auth0ClientOptions
                                        • Auth0ProviderOptions

                                      Properties

                                      auth0Client?: {
                                          env?: {
                                              [key: string]: string;
                                          };
                                          name: string;
                                          version: string;
                                      }

                                      Internal property to send information about the client to the authorization server.

                                      -

                                      Type declaration

                                      • Optional env?: {
                                            [key: string]: string;
                                        }
                                        • [key: string]: string
                                      • name: string
                                      • version: string
                                      authorizationParams?: AuthorizationParams

                                      URL parameters that will be sent back to the Authorization Server. This can be known parameters +Auth0ProviderOptions | @auth0/auth0-react

                                      @auth0/auth0-react
                                        Preparing search index...

                                        Interface Auth0ProviderOptions<TUser>

                                        The main configuration to instantiate the Auth0Provider.

                                        +
                                        interface Auth0ProviderOptions<TUser extends User = User> {
                                            auth0Client?: {
                                                env?: { [key: string]: string };
                                                name: string;
                                                version: string;
                                            };
                                            authorizationParams?: AuthorizationParams;
                                            authorizeTimeoutInSeconds?: number;
                                            cache?: ICache;
                                            cacheLocation?: CacheLocation;
                                            children?: ReactNode;
                                            clientId: string;
                                            context?: Context<Auth0ContextInterface<TUser>>;
                                            cookieDomain?: string;
                                            domain: string;
                                            httpTimeoutInSeconds?: number;
                                            issuer?: string;
                                            leeway?: number;
                                            legacySameSiteCookie?: boolean;
                                            nowProvider?: () => number | Promise<number>;
                                            onRedirectCallback?: (appState?: AppState, user?: TUser) => void;
                                            sessionCheckExpiryDays?: number;
                                            skipRedirectCallback?: boolean;
                                            useCookiesForTransactions?: boolean;
                                            useFormData?: boolean;
                                            useRefreshTokens?: boolean;
                                            useRefreshTokensFallback?: boolean;
                                            workerUrl?: string;
                                        }

                                        Type Parameters

                                        Hierarchy

                                        • Auth0ClientOptions
                                          • Auth0ProviderOptions
                                        Index

                                        Properties

                                        auth0Client?: { env?: { [key: string]: string }; name: string; version: string }

                                        Internal property to send information about the client to the authorization server.

                                        +
                                        authorizationParams?: AuthorizationParams

                                        URL parameters that will be sent back to the Authorization Server. This can be known parameters defined by Auth0 or custom parameters that you define.

                                        -
                                        authorizeTimeoutInSeconds?: number

                                        A maximum number of seconds to wait before declaring background calls to /authorize as failed for timeout +

                                        authorizeTimeoutInSeconds?: number

                                        A maximum number of seconds to wait before declaring background calls to /authorize as failed for timeout Defaults to 60s.

                                        -
                                        cache?: ICache

                                        Specify a custom cache implementation to use for token storage and retrieval. This setting takes precedence over cacheLocation if they are both specified.

                                        -
                                        cacheLocation?: CacheLocation

                                        The location to use when storing cache data. Valid values are memory or localstorage. +

                                        cache?: ICache

                                        Specify a custom cache implementation to use for token storage and retrieval. This setting takes precedence over cacheLocation if they are both specified.

                                        +
                                        cacheLocation?: CacheLocation

                                        The location to use when storing cache data. Valid values are memory or localstorage. The default setting is memory.

                                        Read more about changing storage options in the Auth0 docs

                                        -
                                        children?: ReactNode

                                        The child nodes your Provider has wrapped

                                        -
                                        clientId: string

                                        The Client ID found on your Application settings page

                                        -
                                        context?: Context<Auth0ContextInterface<User>>

                                        Context to be used when creating the Auth0Provider, defaults to the internally created context.

                                        +
                                        children?: ReactNode

                                        The child nodes your Provider has wrapped

                                        +
                                        clientId: string

                                        The Client ID found on your Application settings page

                                        +
                                        context?: Context<Auth0ContextInterface<TUser>>

                                        Context to be used when creating the Auth0Provider, defaults to the internally created context.

                                        This allows multiple Auth0Providers to be nested within the same application, the context value can then be passed to useAuth0, withAuth0, or withAuthenticationRequired to use that specific Auth0Provider to access auth state and methods specifically tied to the provider that the context belongs to.

                                        @@ -46,60 +46,62 @@ used to store data is different

                                        For a sample on using multiple Auth0Providers review the React Account Linking Sample

                                        -
                                        cookieDomain?: string

                                        The domain the cookie is accessible from. If not set, the cookie is scoped to +

                                        cookieDomain?: string

                                        The domain the cookie is accessible from. If not set, the cookie is scoped to the current domain, including the subdomain.

                                        Note: setting this incorrectly may cause silent authentication to stop working on page load.

                                        To keep a user logged in across multiple subdomains set this to your top-level domain and prefixed with a . (eg: .example.com).

                                        -
                                        domain: string

                                        Your Auth0 account domain such as 'example.auth0.com', -'example.eu.auth0.com' or , 'example.mycompany.com' +

                                        domain: string

                                        Your Auth0 account domain such as 'example.auth0.com', +'example.eu.auth0.com' or , 'example.mycompany.com' (when using custom domains)

                                        -
                                        httpTimeoutInSeconds?: number

                                        Specify the timeout for HTTP calls using fetch. The default is 10 seconds.

                                        -
                                        issuer?: string

                                        The issuer to be used for validation of JWTs, optionally defaults to the domain above

                                        -
                                        leeway?: number

                                        The value in seconds used to account for clock skew in JWT expirations. +

                                        httpTimeoutInSeconds?: number

                                        Specify the timeout for HTTP calls using fetch. The default is 10 seconds.

                                        +
                                        issuer?: string

                                        The issuer to be used for validation of JWTs, optionally defaults to the domain above

                                        +
                                        leeway?: number

                                        The value in seconds used to account for clock skew in JWT expirations. Typically, this value is no more than a minute or two at maximum. Defaults to 60s.

                                        -
                                        legacySameSiteCookie?: boolean

                                        Sets an additional cookie with no SameSite attribute to support legacy browsers +

                                        legacySameSiteCookie?: boolean

                                        Sets an additional cookie with no SameSite attribute to support legacy browsers that are not compatible with the latest SameSite changes. This will log a warning on modern browsers, you can disable the warning by setting this to false but be aware that some older useragents will not work, See https://www.chromium.org/updates/same-site/incompatible-clients Defaults to true

                                        -
                                        nowProvider?: (() => number | Promise<number>)

                                        Modify the value used as the current time during the token validation.

                                        +
                                        nowProvider?: () => number | Promise<number>

                                        Modify the value used as the current time during the token validation.

                                        Note: Using this improperly can potentially compromise the token validation.

                                        -

                                        Type declaration

                                          • (): number | Promise<number>
                                          • Returns number | Promise<number>

                                        onRedirectCallback?: ((appState?, user?) => void)

                                        By default this removes the code and state parameters from the url when you are redirected from the authorize page. +

                                        onRedirectCallback?: (appState?: AppState, user?: TUser) => void

                                        By default this removes the code and state parameters from the url when you are redirected from the authorize page. It uses window.history but you might want to overwrite this if you are using a custom router, like react-router-dom -See the EXAMPLES.md for more info.

                                        -

                                        Type declaration

                                          • (appState?, user?): void
                                          • Parameters

                                            Returns void

                                        sessionCheckExpiryDays?: number

                                        Number of days until the cookie auth0.is.authenticated will expire +See the EXAMPLES.md for more info.

                                        +
                                        sessionCheckExpiryDays?: number

                                        Number of days until the cookie auth0.is.authenticated will expire Defaults to 1.

                                        -
                                        skipRedirectCallback?: boolean

                                        By default, if the page url has code/state params, the SDK will treat them as Auth0's and attempt to exchange the +

                                        skipRedirectCallback?: boolean

                                        By default, if the page url has code/state params, the SDK will treat them as Auth0's and attempt to exchange the code for a token. In some cases the code might be for something else (another OAuth SDK perhaps). In these instances you can instruct the client to ignore them eg

                                        -
                                        <Auth0Provider
                                        clientId={clientId}
                                        domain={domain}
                                        skipRedirectCallback={window.location.pathname === '/stripe-oauth-callback'}
                                        > -
                                        -
                                        useCookiesForTransactions?: boolean

                                        If true, the SDK will use a cookie when storing information about the auth transaction while +

                                        <Auth0Provider
                                        clientId={clientId}
                                        domain={domain}
                                        skipRedirectCallback={window.location.pathname === '/stripe-oauth-callback'}
                                        > +
                                        + +
                                        useCookiesForTransactions?: boolean

                                        If true, the SDK will use a cookie when storing information about the auth transaction while the user is going through the authentication flow on the authorization server.

                                        The default is false, in which case the SDK will use session storage.

                                        -

                                        Notes

                                        You might want to enable this if you rely on your users being able to authenticate using flows that +

                                        You might want to enable this if you rely on your users being able to authenticate using flows that may end up spanning across multiple tabs (e.g. magic links) or you cannot otherwise rely on session storage being available.

                                        -
                                        useFormData?: boolean

                                        If true, data to the token endpoint is transmitted as x-www-form-urlencoded data, if false it will be transmitted as JSON. The default setting is true.

                                        +
                                        useFormData?: boolean

                                        If true, data to the token endpoint is transmitted as x-www-form-urlencoded data, if false it will be transmitted as JSON. The default setting is true.

                                        Note: Setting this to false may affect you if you use Auth0 Rules and are sending custom, non-primitive data. If you disable this, please verify that your Auth0 Rules continue to work as intended.

                                        -
                                        useRefreshTokens?: boolean

                                        If true, refresh tokens are used to fetch new access tokens from the Auth0 server. If false, the legacy technique of using a hidden iframe and the authorization_code grant with prompt=none is used. +

                                        useRefreshTokens?: boolean

                                        If true, refresh tokens are used to fetch new access tokens from the Auth0 server. If false, the legacy technique of using a hidden iframe and the authorization_code grant with prompt=none is used. The default setting is false.

                                        Note: Use of refresh tokens must be enabled by an administrator on your Auth0 client application.

                                        -
                                        useRefreshTokensFallback?: boolean

                                        If true, fallback to the technique of using a hidden iframe and the authorization_code grant with prompt=none when unable to use refresh tokens. If false, the iframe fallback is not used and +

                                        useRefreshTokensFallback?: boolean

                                        If true, fallback to the technique of using a hidden iframe and the authorization_code grant with prompt=none when unable to use refresh tokens. If false, the iframe fallback is not used and errors relating to a failed refresh_token grant should be handled appropriately. The default setting is false.

                                        Note: There might be situations where doing silent auth with a Web Message response from an iframe is not possible, -like when you're serving your application from the file system or a custom protocol (like in a Desktop or Native app). +like when you're serving your application from the file system or a custom protocol (like in a Desktop or Native app). In situations like this you can disable the iframe fallback and handle the failed refresh_token grant and prompt the user to login interactively with loginWithRedirect or loginWithPopup."

                                        E.g. Using the file: protocol in an Electron application does not support that legacy technique.

                                        -

                                        Example

                                        let token: string;
                                        try {
                                        token = await auth0.getTokenSilently();
                                        } catch (e) {
                                        if (e.error === 'missing_refresh_token' || e.error === 'invalid_grant') {
                                        auth0.loginWithRedirect();
                                        }
                                        } -
                                        -
                                        workerUrl?: string

                                        If provided, the SDK will load the token worker from this URL instead of the integrated blob. An example of when this is useful is if you have strict +

                                        let token: string;
                                        try {
                                        token = await auth0.getTokenSilently();
                                        } catch (e) {
                                        if (e.error === 'missing_refresh_token' || e.error === 'invalid_grant') {
                                        auth0.loginWithRedirect();
                                        }
                                        } +
                                        + +
                                        workerUrl?: string

                                        If provided, the SDK will load the token worker from this URL instead of the integrated blob. An example of when this is useful is if you have strict Content-Security-Policy (CSP) and wish to avoid needing to set worker-src: blob:. We recommend either serving the worker, which you can find in the module at <module_path>/dist/auth0-spa-js.worker.production.js, from the same host as your application or using the Auth0 CDN https://cdn.auth0.com/js/auth0-spa-js/<version>/auth0-spa-js.worker.production.js.

                                        -

                                        Note: The worker is only used when useRefreshTokens: true, cacheLocation: 'memory', and the cache is not custom.

                                        -
                                        \ No newline at end of file +

                                        Note: The worker is only used when useRefreshTokens: true, cacheLocation: 'memory', and the cache is not custom.

                                        +
                                        diff --git a/docs/interfaces/AuthorizationParams.html b/docs/interfaces/AuthorizationParams.html index 0d6d9fe1..d352f201 100644 --- a/docs/interfaces/AuthorizationParams.html +++ b/docs/interfaces/AuthorizationParams.html @@ -1,63 +1,63 @@ -AuthorizationParams | @auth0/auth0-react

                                        Interface AuthorizationParams

                                        interface AuthorizationParams {
                                            acr_values?: string;
                                            audience?: string;
                                            connection?: string;
                                            display?: "page" | "popup" | "touch" | "wap";
                                            id_token_hint?: string;
                                            invitation?: string;
                                            login_hint?: string;
                                            max_age?: string | number;
                                            organization?: string;
                                            prompt?: "none" | "login" | "consent" | "select_account";
                                            redirect_uri?: string;
                                            scope?: string;
                                            screen_hint?: string;
                                            ui_locales?: string;
                                            [key: string]: any;
                                        }

                                        Indexable

                                        [key: string]: any

                                        If you need to send custom parameters to the Authorization Server, +AuthorizationParams | @auth0/auth0-react

                                        @auth0/auth0-react
                                          Preparing search index...

                                          Interface AuthorizationParams

                                          interface AuthorizationParams {
                                              acr_values?: string;
                                              audience?: string;
                                              connection?: string;
                                              display?: "page" | "popup" | "touch" | "wap";
                                              id_token_hint?: string;
                                              invitation?: string;
                                              login_hint?: string;
                                              max_age?: string | number;
                                              organization?: string;
                                              prompt?: "none" | "login" | "consent" | "select_account";
                                              redirect_uri?: string;
                                              scope?: string;
                                              screen_hint?: string;
                                              ui_locales?: string;
                                              [key: string]: any;
                                          }

                                          Indexable

                                          • [key: string]: any

                                            If you need to send custom parameters to the Authorization Server, make sure to use the original parameter name.

                                            -

                                          Properties

                                          acr_values?: string
                                          audience?: string

                                          The default audience to be used for requesting API access.

                                          -
                                          connection?: string

                                          The name of the connection configured for your application. +

                                          Index

                                          Properties

                                          acr_values?: string
                                          audience?: string

                                          The default audience to be used for requesting API access.

                                          +
                                          connection?: string

                                          The name of the connection configured for your application. If null, it will redirect to the Auth0 Login Page and show the Login Widget.

                                          -
                                          display?: "page" | "popup" | "touch" | "wap"
                                            -
                                          • 'page': displays the UI with a full page view
                                          • -
                                          • 'popup': displays the UI with a popup window
                                          • -
                                          • 'touch': displays the UI in a way that leverages a touch interface
                                          • -
                                          • 'wap': displays the UI with a "feature phone" type interface
                                          • +
                                          display?: "page" | "popup" | "touch" | "wap"
                                            +
                                          • 'page': displays the UI with a full page view
                                          • +
                                          • 'popup': displays the UI with a popup window
                                          • +
                                          • 'touch': displays the UI in a way that leverages a touch interface
                                          • +
                                          • 'wap': displays the UI with a "feature phone" type interface
                                          -
                                          id_token_hint?: string

                                          Previously issued ID Token.

                                          -
                                          invitation?: string

                                          The Id of an invitation to accept. This is available from the user invitation URL that is given when participating in a user invitation flow.

                                          -
                                          login_hint?: string

                                          The user's email address or other identifier. When your app knows +

                                          id_token_hint?: string

                                          Previously issued ID Token.

                                          +
                                          invitation?: string

                                          The Id of an invitation to accept. This is available from the user invitation URL that is given when participating in a user invitation flow.

                                          +
                                          login_hint?: string

                                          The user's email address or other identifier. When your app knows which user is trying to authenticate, you can provide this parameter to pre-fill the email box or select the right session for sign-in.

                                          This currently only affects the classic Lock experience.

                                          -
                                          max_age?: string | number

                                          Maximum allowable elapsed time (in seconds) since authentication. +

                                          max_age?: string | number

                                          Maximum allowable elapsed time (in seconds) since authentication. If the last time the user authenticated is greater than this value, the user must be reauthenticated.

                                          -
                                          organization?: string

                                          The organization to log in to.

                                          -

                                          This will specify an organization parameter in your user's login request.

                                          +
                                          organization?: string

                                          The organization to log in to.

                                          +

                                          This will specify an organization parameter in your user's login request.

                                            -
                                          • If you provide an Organization ID (a string with the prefix org_), it will be validated against the org_id claim of your user's ID Token. The validation is case-sensitive.
                                          • -
                                          • If you provide an Organization Name (a string without the prefix org_), it will be validated against the org_name claim of your user's ID Token. The validation is case-insensitive.
                                          • +
                                          • If you provide an Organization ID (a string with the prefix org_), it will be validated against the org_id claim of your user's ID Token. The validation is case-sensitive.
                                          • +
                                          • If you provide an Organization Name (a string without the prefix org_), it will be validated against the org_name claim of your user's ID Token. The validation is case-insensitive.
                                          -
                                          prompt?: "none" | "login" | "consent" | "select_account"
                                            -
                                          • 'none': do not prompt user for login or consent on reauthentication
                                          • -
                                          • 'login': prompt user for reauthentication
                                          • -
                                          • 'consent': prompt user for consent before processing request
                                          • -
                                          • 'select_account': prompt user to select an account
                                          • +
                                          prompt?: "none" | "login" | "consent" | "select_account"
                                            +
                                          • 'none': do not prompt user for login or consent on reauthentication
                                          • +
                                          • 'login': prompt user for reauthentication
                                          • +
                                          • 'consent': prompt user for consent before processing request
                                          • +
                                          • 'select_account': prompt user to select an account
                                          -
                                          redirect_uri?: string

                                          The default URL where Auth0 will redirect your browser to with +

                                          redirect_uri?: string

                                          The default URL where Auth0 will redirect your browser to with the authentication result. It must be whitelisted in -the "Allowed Callback URLs" field in your Auth0 Application's +the "Allowed Callback URLs" field in your Auth0 Application's settings. If not provided here, it should be provided in the other methods that provide authentication.

                                          -
                                          scope?: string

                                          The default scope to be used on authentication requests.

                                          +
                                          scope?: string

                                          The default scope to be used on authentication requests.

                                          This defaults to profile email if not set. If you are setting extra scopes and require profile and email to be included then you must include them in the provided scope.

                                          Note: The openid scope is always applied regardless of this setting.

                                          -
                                          screen_hint?: string

                                          Provides a hint to Auth0 as to what flow should be displayed. +

                                          screen_hint?: string

                                          Provides a hint to Auth0 as to what flow should be displayed. The default behavior is to show a login page but you can override -this by passing 'signup' to show the signup page instead.

                                          +this by passing 'signup' to show the signup page instead.

                                          This only affects the New Universal Login Experience.

                                          -
                                          ui_locales?: string

                                          The space-separated list of language tags, ordered by preference. -For example: 'fr-CA fr en'.

                                          -
                                          \ No newline at end of file +
                                          ui_locales?: string

                                          The space-separated list of language tags, ordered by preference. +For example: 'fr-CA fr en'.

                                          +
                                          diff --git a/docs/interfaces/GetTokenSilentlyOptions.html b/docs/interfaces/GetTokenSilentlyOptions.html index 48e87363..7679758d 100644 --- a/docs/interfaces/GetTokenSilentlyOptions.html +++ b/docs/interfaces/GetTokenSilentlyOptions.html @@ -1,25 +1,25 @@ -GetTokenSilentlyOptions | @auth0/auth0-react

                                          Interface GetTokenSilentlyOptions

                                          interface GetTokenSilentlyOptions {
                                              authorizationParams?: {
                                                  audience?: string;
                                                  redirect_uri?: string;
                                                  scope?: string;
                                                  [key: string]: any;
                                              };
                                              cacheMode?: "on" | "off" | "cache-only";
                                              detailedResponse?: boolean;
                                              timeoutInSeconds?: number;
                                          }

                                          Properties

                                          authorizationParams?: {
                                              audience?: string;
                                              redirect_uri?: string;
                                              scope?: string;
                                              [key: string]: any;
                                          }

                                          Parameters that will be sent back to Auth0 as part of a request.

                                          -

                                          Type declaration

                                          • [key: string]: any

                                            If you need to send custom parameters to the Authorization Server, +GetTokenSilentlyOptions | @auth0/auth0-react

                                            @auth0/auth0-react
                                              Preparing search index...

                                              Interface GetTokenSilentlyOptions

                                              interface GetTokenSilentlyOptions {
                                                  authorizationParams?: {
                                                      audience?: string;
                                                      redirect_uri?: string;
                                                      scope?: string;
                                                      [key: string]: any;
                                                  };
                                                  cacheMode?: "on"
                                                  | "off"
                                                  | "cache-only";
                                                  detailedResponse?: boolean;
                                                  timeoutInSeconds?: number;
                                              }
                                              Index

                                              Properties

                                              authorizationParams?: {
                                                  audience?: string;
                                                  redirect_uri?: string;
                                                  scope?: string;
                                                  [key: string]: any;
                                              }

                                              Parameters that will be sent back to Auth0 as part of a request.

                                              +

                                              Type declaration

                                              • [key: string]: any

                                                If you need to send custom parameters to the Authorization Server, make sure to use the original parameter name.

                                                -
                                              • Optional audience?: string

                                                The audience that was used in the authentication request

                                                -
                                              • Optional redirect_uri?: string

                                                There's no actual redirect when getting a token silently, +

                                              • Optionalaudience?: string

                                                The audience that was used in the authentication request

                                                +
                                              • Optionalredirect_uri?: string

                                                There's no actual redirect when getting a token silently, but, according to the spec, a redirect_uri param is required. Auth0 uses this parameter to validate that the current origin matches the redirect_uri origin when sending the response. It must be whitelisted in the "Allowed Web Origins" in your -Auth0 Application's settings.

                                                -
                                              • Optional scope?: string

                                                The scope that was used in the authentication request

                                                -
                                              cacheMode?: "on" | "off" | "cache-only"

                                              When off, ignores the cache and always sends a +Auth0 Application's settings.

                                              +
                                            • Optionalscope?: string

                                              The scope that was used in the authentication request

                                              +
                                            cacheMode?: "on" | "off" | "cache-only"

                                            When off, ignores the cache and always sends a request to Auth0. When cache-only, only reads from the cache and never sends a request to Auth0. Defaults to on, where it both reads from the cache and sends a request to Auth0 as needed.

                                            -
                                            detailedResponse?: boolean

                                            If true, the full response from the /oauth/token endpoint (or the cache, if the cache was used) is returned +

                                            detailedResponse?: boolean

                                            If true, the full response from the /oauth/token endpoint (or the cache, if the cache was used) is returned (minus refresh_token if one was issued). Otherwise, just the access token is returned.

                                            The default is false.

                                            -
                                            timeoutInSeconds?: number

                                            A maximum number of seconds to wait before declaring the background /authorize call as failed for timeout +

                                            timeoutInSeconds?: number

                                            A maximum number of seconds to wait before declaring the background /authorize call as failed for timeout Defaults to 60s.

                                            -
                                            \ No newline at end of file +
                                            diff --git a/docs/interfaces/GetTokenWithPopupOptions.html b/docs/interfaces/GetTokenWithPopupOptions.html index 826f153b..ee46a68d 100644 --- a/docs/interfaces/GetTokenWithPopupOptions.html +++ b/docs/interfaces/GetTokenWithPopupOptions.html @@ -1,8 +1,8 @@ -GetTokenWithPopupOptions | @auth0/auth0-react

                                            Interface GetTokenWithPopupOptions

                                            interface GetTokenWithPopupOptions {
                                                authorizationParams?: AuthorizationParams;
                                                cacheMode?: "on" | "off" | "cache-only";
                                            }

                                            Hierarchy (view full)

                                            Properties

                                            authorizationParams?: AuthorizationParams

                                            URL parameters that will be sent back to the Authorization Server. This can be known parameters +GetTokenWithPopupOptions | @auth0/auth0-react

                                            @auth0/auth0-react
                                              Preparing search index...

                                              Interface GetTokenWithPopupOptions

                                              interface GetTokenWithPopupOptions {
                                                  authorizationParams?: AuthorizationParams;
                                                  cacheMode?: "on" | "off" | "cache-only";
                                              }

                                              Hierarchy (View Summary)

                                              Index

                                              Properties

                                              authorizationParams?: AuthorizationParams

                                              URL parameters that will be sent back to the Authorization Server. This can be known parameters defined by Auth0 or custom parameters that you define.

                                              -
                                              cacheMode?: "on" | "off" | "cache-only"

                                              When off, ignores the cache and always sends a request to Auth0. +

                                              cacheMode?: "on" | "off" | "cache-only"

                                              When off, ignores the cache and always sends a request to Auth0. When cache-only, only reads from the cache and never sends a request to Auth0. Defaults to on, where it both reads from the cache and sends a request to Auth0 as needed.

                                              -
                                              \ No newline at end of file +
                                              diff --git a/docs/interfaces/ICache.html b/docs/interfaces/ICache.html index 6257bcb7..1cf931f8 100644 --- a/docs/interfaces/ICache.html +++ b/docs/interfaces/ICache.html @@ -1,5 +1,5 @@ -ICache | @auth0/auth0-react

                                              Interface ICache

                                              interface ICache {
                                                  allKeys?(): MaybePromise<string[]>;
                                                  get<T>(key): MaybePromise<undefined | T>;
                                                  remove(key): MaybePromise<void>;
                                                  set<T>(key, entry): MaybePromise<void>;
                                              }

                                              Implemented by

                                              Methods

                                              Methods

                                              • Returns MaybePromise<string[]>

                                              • Type Parameters

                                                Parameters

                                                • key: string

                                                Returns MaybePromise<undefined | T>

                                              • Parameters

                                                • key: string

                                                Returns MaybePromise<void>

                                              • Type Parameters

                                                Parameters

                                                • key: string
                                                • entry: T

                                                Returns MaybePromise<void>

                                              \ No newline at end of file +ICache | @auth0/auth0-react
                                              @auth0/auth0-react
                                                Preparing search index...

                                                Interface ICache

                                                interface ICache {
                                                    allKeys(): MaybePromise<string[]>;
                                                    get<T = Cacheable>(key: string): MaybePromise<undefined | T>;
                                                    remove(key: string): MaybePromise<void>;
                                                    set<T = Cacheable>(key: string, entry: T): MaybePromise<void>;
                                                }

                                                Implemented by

                                                Index

                                                Methods

                                                Methods

                                                • Returns MaybePromise<string[]>

                                                • Type Parameters

                                                  Parameters

                                                  • key: string

                                                  Returns MaybePromise<undefined | T>

                                                • Parameters

                                                  • key: string

                                                  Returns MaybePromise<void>

                                                • Type Parameters

                                                  Parameters

                                                  • key: string
                                                  • entry: T

                                                  Returns MaybePromise<void>

                                                diff --git a/docs/interfaces/IdToken.html b/docs/interfaces/IdToken.html index edaf31c9..80d25c4e 100644 --- a/docs/interfaces/IdToken.html +++ b/docs/interfaces/IdToken.html @@ -1,39 +1,39 @@ -IdToken | @auth0/auth0-react

                                                Interface IdToken

                                                interface IdToken {
                                                    __raw: string;
                                                    acr?: string;
                                                    address?: string;
                                                    amr?: string[];
                                                    at_hash?: string;
                                                    aud?: string;
                                                    auth_time?: string;
                                                    azp?: string;
                                                    birthdate?: string;
                                                    c_hash?: string;
                                                    cnf?: string;
                                                    email?: string;
                                                    email_verified?: boolean;
                                                    exp?: number;
                                                    family_name?: string;
                                                    gender?: string;
                                                    given_name?: string;
                                                    iat?: number;
                                                    iss?: string;
                                                    jti?: string;
                                                    locale?: string;
                                                    middle_name?: string;
                                                    name?: string;
                                                    nbf?: number;
                                                    nickname?: string;
                                                    nonce?: string;
                                                    org_id?: string;
                                                    org_name?: string;
                                                    phone_number?: string;
                                                    phone_number_verified?: boolean;
                                                    picture?: string;
                                                    preferred_username?: string;
                                                    profile?: string;
                                                    sid?: string;
                                                    sub_jwk?: string;
                                                    updated_at?: string;
                                                    website?: string;
                                                    zoneinfo?: string;
                                                    [key: string]: any;
                                                }

                                                Indexable

                                                [key: string]: any

                                                Properties

                                                __raw: string
                                                acr?: string
                                                address?: string
                                                amr?: string[]
                                                at_hash?: string
                                                aud?: string
                                                auth_time?: string
                                                azp?: string
                                                birthdate?: string
                                                c_hash?: string
                                                cnf?: string
                                                email?: string
                                                email_verified?: boolean
                                                exp?: number
                                                family_name?: string
                                                gender?: string
                                                given_name?: string
                                                iat?: number
                                                iss?: string
                                                jti?: string
                                                locale?: string
                                                middle_name?: string
                                                name?: string
                                                nbf?: number
                                                nickname?: string
                                                nonce?: string
                                                org_id?: string
                                                org_name?: string
                                                phone_number?: string
                                                phone_number_verified?: boolean
                                                picture?: string
                                                preferred_username?: string
                                                profile?: string
                                                sid?: string
                                                sub_jwk?: string
                                                updated_at?: string
                                                website?: string
                                                zoneinfo?: string
                                                \ No newline at end of file +IdToken | @auth0/auth0-react
                                                @auth0/auth0-react
                                                  Preparing search index...

                                                  Interface IdToken

                                                  interface IdToken {
                                                      __raw: string;
                                                      acr?: string;
                                                      address?: string;
                                                      amr?: string[];
                                                      at_hash?: string;
                                                      aud?: string;
                                                      auth_time?: string;
                                                      azp?: string;
                                                      birthdate?: string;
                                                      c_hash?: string;
                                                      cnf?: string;
                                                      email?: string;
                                                      email_verified?: boolean;
                                                      exp?: number;
                                                      family_name?: string;
                                                      gender?: string;
                                                      given_name?: string;
                                                      iat?: number;
                                                      iss?: string;
                                                      jti?: string;
                                                      locale?: string;
                                                      middle_name?: string;
                                                      name?: string;
                                                      nbf?: number;
                                                      nickname?: string;
                                                      nonce?: string;
                                                      org_id?: string;
                                                      org_name?: string;
                                                      phone_number?: string;
                                                      phone_number_verified?: boolean;
                                                      picture?: string;
                                                      preferred_username?: string;
                                                      profile?: string;
                                                      sid?: string;
                                                      sub_jwk?: string;
                                                      updated_at?: string;
                                                      website?: string;
                                                      zoneinfo?: string;
                                                      [key: string]: any;
                                                  }

                                                  Indexable

                                                  • [key: string]: any
                                                  Index

                                                  Properties

                                                  __raw: string
                                                  acr?: string
                                                  address?: string
                                                  amr?: string[]
                                                  at_hash?: string
                                                  aud?: string
                                                  auth_time?: string
                                                  azp?: string
                                                  birthdate?: string
                                                  c_hash?: string
                                                  cnf?: string
                                                  email?: string
                                                  email_verified?: boolean
                                                  exp?: number
                                                  family_name?: string
                                                  gender?: string
                                                  given_name?: string
                                                  iat?: number
                                                  iss?: string
                                                  jti?: string
                                                  locale?: string
                                                  middle_name?: string
                                                  name?: string
                                                  nbf?: number
                                                  nickname?: string
                                                  nonce?: string
                                                  org_id?: string
                                                  org_name?: string
                                                  phone_number?: string
                                                  phone_number_verified?: boolean
                                                  picture?: string
                                                  preferred_username?: string
                                                  profile?: string
                                                  sid?: string
                                                  sub_jwk?: string
                                                  updated_at?: string
                                                  website?: string
                                                  zoneinfo?: string
                                                  diff --git a/docs/interfaces/LogoutOptions.html b/docs/interfaces/LogoutOptions.html index 39d6b947..1a6c08e4 100644 --- a/docs/interfaces/LogoutOptions.html +++ b/docs/interfaces/LogoutOptions.html @@ -1,29 +1,31 @@ -LogoutOptions | @auth0/auth0-react

                                                  Interface LogoutOptions

                                                  interface LogoutOptions {
                                                      clientId?: null | string;
                                                      logoutParams?: {
                                                          federated?: boolean;
                                                          returnTo?: string;
                                                          [key: string]: any;
                                                      };
                                                      openUrl?: false | ((url) => void | Promise<void>);
                                                  }

                                                  Hierarchy

                                                  • Omit<SPALogoutOptions, "onRedirect">
                                                    • LogoutOptions

                                                  Properties

                                                  clientId?: null | string

                                                  The clientId of your application.

                                                  +LogoutOptions | @auth0/auth0-react
                                                  @auth0/auth0-react
                                                    Preparing search index...

                                                    Interface LogoutOptions

                                                    interface LogoutOptions {
                                                        clientId?: null | string;
                                                        logoutParams?: {
                                                            federated?: boolean;
                                                            returnTo?: string;
                                                            [key: string]: any;
                                                        };
                                                        openUrl?: false
                                                        | ((url: string) => void | Promise<void>);
                                                    }

                                                    Hierarchy

                                                    • Omit<SPALogoutOptions, "onRedirect">
                                                      • LogoutOptions
                                                    Index

                                                    Properties

                                                    clientId?: null | string

                                                    The clientId of your application.

                                                    If this property is not set, then the clientId that was used during initialization of the SDK is sent to the logout endpoint.

                                                    If this property is set to null, then no client ID value is sent to the logout endpoint.

                                                    Read more about how redirecting after logout works

                                                    -
                                                    logoutParams?: {
                                                        federated?: boolean;
                                                        returnTo?: string;
                                                        [key: string]: any;
                                                    }

                                                    Parameters to pass to the logout endpoint. This can be known parameters defined by Auth0 or custom parameters +

                                                    logoutParams?: { federated?: boolean; returnTo?: string; [key: string]: any }

                                                    Parameters to pass to the logout endpoint. This can be known parameters defined by Auth0 or custom parameters you wish to provide.

                                                    -

                                                    Type declaration

                                                    • [key: string]: any

                                                      If you need to send custom parameters to the logout endpoint, make sure to use the original parameter name.

                                                      -
                                                    • Optional federated?: boolean

                                                      When supported by the upstream identity provider, +

                                                      Type declaration

                                                      • [key: string]: any

                                                        If you need to send custom parameters to the logout endpoint, make sure to use the original parameter name.

                                                        +
                                                      • Optionalfederated?: boolean

                                                        When supported by the upstream identity provider, forces the user to logout of their identity provider and from Auth0. Read more about how federated logout works at Auth0

                                                        -
                                                      • Optional returnTo?: string

                                                        The URL where Auth0 will redirect your browser to after the logout.

                                                        +
                                                      • OptionalreturnTo?: string

                                                        The URL where Auth0 will redirect your browser to after the logout.

                                                        Note: If the client_id parameter is included, the returnTo URL that is provided must be listed in the -Application's "Allowed Logout URLs" in the Auth0 dashboard. +Application's "Allowed Logout URLs" in the Auth0 dashboard. However, if the client_id parameter is not included, the returnTo URL must be listed in the "Allowed Logout URLs" at the account level in the Auth0 dashboard.

                                                        Read more about how redirecting after logout works

                                                        -
                                                    openUrl?: false | ((url) => void | Promise<void>)

                                                    Used to control the redirect and not rely on the SDK to do the actual redirect.

                                                    +
                                                    openUrl?: false | ((url: string) => void | Promise<void>)

                                                    Used to control the redirect and not rely on the SDK to do the actual redirect.

                                                    Set to false to disable the redirect, or provide a function to handle the actual redirect yourself.

                                                    -

                                                    Type declaration

                                                      • (url): void | Promise<void>
                                                      • Parameters

                                                        • url: string

                                                        Returns void | Promise<void>

                                                    Example

                                                    await auth0.logout({
                                                    openUrl(url) {
                                                    window.location.replace(url);
                                                    }
                                                    }); -
                                                    -

                                                    Example

                                                    import { Browser } from '@capacitor/browser';

                                                    await auth0.logout({
                                                    async openUrl(url) {
                                                    await Browser.open({ url });
                                                    }
                                                    }); -
                                                    -
                                                    \ No newline at end of file +
                                                    await auth0.logout({
                                                    openUrl(url) {
                                                    window.location.replace(url);
                                                    }
                                                    }); +
                                                    + +
                                                    import { Browser } from '@capacitor/browser';

                                                    await auth0.logout({
                                                    async openUrl(url) {
                                                    await Browser.open({ url });
                                                    }
                                                    }); +
                                                    + +
                                                    diff --git a/docs/interfaces/LogoutUrlOptions.html b/docs/interfaces/LogoutUrlOptions.html index f82b6a3f..5aa4a181 100644 --- a/docs/interfaces/LogoutUrlOptions.html +++ b/docs/interfaces/LogoutUrlOptions.html @@ -1,22 +1,22 @@ -LogoutUrlOptions | @auth0/auth0-react

                                                    Interface LogoutUrlOptions

                                                    interface LogoutUrlOptions {
                                                        clientId?: null | string;
                                                        logoutParams?: {
                                                            federated?: boolean;
                                                            returnTo?: string;
                                                            [key: string]: any;
                                                        };
                                                    }

                                                    Properties

                                                    clientId?: null | string

                                                    The clientId of your application.

                                                    +LogoutUrlOptions | @auth0/auth0-react
                                                    @auth0/auth0-react
                                                      Preparing search index...

                                                      Interface LogoutUrlOptions

                                                      interface LogoutUrlOptions {
                                                          clientId?: null | string;
                                                          logoutParams?: {
                                                              federated?: boolean;
                                                              returnTo?: string;
                                                              [key: string]: any;
                                                          };
                                                      }
                                                      Index

                                                      Properties

                                                      clientId?: null | string

                                                      The clientId of your application.

                                                      If this property is not set, then the clientId that was used during initialization of the SDK is sent to the logout endpoint.

                                                      If this property is set to null, then no client ID value is sent to the logout endpoint.

                                                      Read more about how redirecting after logout works

                                                      -
                                                      logoutParams?: {
                                                          federated?: boolean;
                                                          returnTo?: string;
                                                          [key: string]: any;
                                                      }

                                                      Parameters to pass to the logout endpoint. This can be known parameters defined by Auth0 or custom parameters +

                                                      logoutParams?: { federated?: boolean; returnTo?: string; [key: string]: any }

                                                      Parameters to pass to the logout endpoint. This can be known parameters defined by Auth0 or custom parameters you wish to provide.

                                                      -

                                                      Type declaration

                                                      • [key: string]: any

                                                        If you need to send custom parameters to the logout endpoint, make sure to use the original parameter name.

                                                        -
                                                      • Optional federated?: boolean

                                                        When supported by the upstream identity provider, +

                                                        Type declaration

                                                        • [key: string]: any

                                                          If you need to send custom parameters to the logout endpoint, make sure to use the original parameter name.

                                                          +
                                                        • Optionalfederated?: boolean

                                                          When supported by the upstream identity provider, forces the user to logout of their identity provider and from Auth0. Read more about how federated logout works at Auth0

                                                          -
                                                        • Optional returnTo?: string

                                                          The URL where Auth0 will redirect your browser to after the logout.

                                                          +
                                                        • OptionalreturnTo?: string

                                                          The URL where Auth0 will redirect your browser to after the logout.

                                                          Note: If the client_id parameter is included, the returnTo URL that is provided must be listed in the -Application's "Allowed Logout URLs" in the Auth0 dashboard. +Application's "Allowed Logout URLs" in the Auth0 dashboard. However, if the client_id parameter is not included, the returnTo URL must be listed in the "Allowed Logout URLs" at the account level in the Auth0 dashboard.

                                                          Read more about how redirecting after logout works

                                                          -
                                                      \ No newline at end of file +
                                                      diff --git a/docs/interfaces/PopupConfigOptions.html b/docs/interfaces/PopupConfigOptions.html index c0fed0d2..92b6983d 100644 --- a/docs/interfaces/PopupConfigOptions.html +++ b/docs/interfaces/PopupConfigOptions.html @@ -1,8 +1,8 @@ -PopupConfigOptions | @auth0/auth0-react

                                                      Interface PopupConfigOptions

                                                      interface PopupConfigOptions {
                                                          popup?: any;
                                                          timeoutInSeconds?: number;
                                                      }

                                                      Properties

                                                      popup?: any

                                                      Accepts an already-created popup window to use. If not specified, the SDK +PopupConfigOptions | @auth0/auth0-react

                                                      @auth0/auth0-react
                                                        Preparing search index...

                                                        Interface PopupConfigOptions

                                                        interface PopupConfigOptions {
                                                            popup?: any;
                                                            timeoutInSeconds?: number;
                                                        }
                                                        Index

                                                        Properties

                                                        popup?: any

                                                        Accepts an already-created popup window to use. If not specified, the SDK will create its own. This may be useful for platforms like iOS that have security restrictions around when popups can be invoked (e.g. from a user click event)

                                                        -
                                                        timeoutInSeconds?: number

                                                        The number of seconds to wait for a popup response before +

                                                        timeoutInSeconds?: number

                                                        The number of seconds to wait for a popup response before throwing a timeout error. Defaults to 60s

                                                        -
                                                        \ No newline at end of file +
                                                        diff --git a/docs/interfaces/PopupLoginOptions.html b/docs/interfaces/PopupLoginOptions.html index e906f668..b28288f5 100644 --- a/docs/interfaces/PopupLoginOptions.html +++ b/docs/interfaces/PopupLoginOptions.html @@ -1,4 +1,4 @@ -PopupLoginOptions | @auth0/auth0-react

                                                        Interface PopupLoginOptions

                                                        interface PopupLoginOptions {
                                                            authorizationParams?: AuthorizationParams;
                                                        }

                                                        Hierarchy (view full)

                                                        Properties

                                                        authorizationParams?: AuthorizationParams

                                                        URL parameters that will be sent back to the Authorization Server. This can be known parameters +PopupLoginOptions | @auth0/auth0-react

                                                        @auth0/auth0-react
                                                          Preparing search index...

                                                          Interface PopupLoginOptions

                                                          interface PopupLoginOptions {
                                                              authorizationParams?: AuthorizationParams;
                                                          }

                                                          Hierarchy (View Summary)

                                                          Index

                                                          Properties

                                                          authorizationParams?: AuthorizationParams

                                                          URL parameters that will be sent back to the Authorization Server. This can be known parameters defined by Auth0 or custom parameters that you define.

                                                          -
                                                          \ No newline at end of file +
                                                          diff --git a/docs/interfaces/RedirectLoginOptions.html b/docs/interfaces/RedirectLoginOptions.html index 7acedc83..f71396b1 100644 --- a/docs/interfaces/RedirectLoginOptions.html +++ b/docs/interfaces/RedirectLoginOptions.html @@ -1,14 +1,16 @@ -RedirectLoginOptions | @auth0/auth0-react

                                                          Interface RedirectLoginOptions<TAppState>

                                                          interface RedirectLoginOptions<TAppState> {
                                                              appState?: TAppState;
                                                              authorizationParams?: AuthorizationParams;
                                                              fragment?: string;
                                                              openUrl?: ((url) => void | Promise<void>);
                                                          }

                                                          Type Parameters

                                                          Hierarchy

                                                          • Omit<SPARedirectLoginOptions<TAppState>, "onRedirect">
                                                            • RedirectLoginOptions

                                                          Properties

                                                          appState?: TAppState

                                                          Used to store state before doing the redirect

                                                          -
                                                          authorizationParams?: AuthorizationParams

                                                          URL parameters that will be sent back to the Authorization Server. This can be known parameters +RedirectLoginOptions | @auth0/auth0-react

                                                          @auth0/auth0-react
                                                            Preparing search index...

                                                            Interface RedirectLoginOptions<TAppState>

                                                            interface RedirectLoginOptions<TAppState = AppState> {
                                                                appState?: TAppState;
                                                                authorizationParams?: AuthorizationParams;
                                                                fragment?: string;
                                                                openUrl?: (url: string) => void | Promise<void>;
                                                            }

                                                            Type Parameters

                                                            Hierarchy

                                                            • Omit<SPARedirectLoginOptions<TAppState>, "onRedirect">
                                                              • RedirectLoginOptions
                                                            Index

                                                            Properties

                                                            appState?: TAppState

                                                            Used to store state before doing the redirect

                                                            +
                                                            authorizationParams?: AuthorizationParams

                                                            URL parameters that will be sent back to the Authorization Server. This can be known parameters defined by Auth0 or custom parameters that you define.

                                                            -
                                                            fragment?: string

                                                            Used to add to the URL fragment before redirecting

                                                            -
                                                            openUrl?: ((url) => void | Promise<void>)

                                                            Used to control the redirect and not rely on the SDK to do the actual redirect.

                                                            -

                                                            Type declaration

                                                              • (url): void | Promise<void>
                                                              • Parameters

                                                                • url: string

                                                                Returns void | Promise<void>

                                                            Example

                                                            const client = new Auth0Client({
                                                            openUrl(url) {
                                                            window.location.replace(url);
                                                            }
                                                            }); -
                                                            -

                                                            Example

                                                            import { Browser } from '@capacitor/browser';

                                                            const client = new Auth0Client({
                                                            async openUrl(url) {
                                                            await Browser.open({ url });
                                                            }
                                                            }); -
                                                            -
                                                            \ No newline at end of file +
                                                            fragment?: string

                                                            Used to add to the URL fragment before redirecting

                                                            +
                                                            openUrl?: (url: string) => void | Promise<void>

                                                            Used to control the redirect and not rely on the SDK to do the actual redirect.

                                                            +
                                                            const client = new Auth0Client({
                                                            openUrl(url) {
                                                            window.location.replace(url);
                                                            }
                                                            }); +
                                                            + +
                                                            import { Browser } from '@capacitor/browser';

                                                            const client = new Auth0Client({
                                                            async openUrl(url) {
                                                            await Browser.open({ url });
                                                            }
                                                            }); +
                                                            + +
                                                            diff --git a/docs/interfaces/WithAuth0Props.html b/docs/interfaces/WithAuth0Props.html index 3e427980..b0d4b8e2 100644 --- a/docs/interfaces/WithAuth0Props.html +++ b/docs/interfaces/WithAuth0Props.html @@ -1,3 +1,3 @@ -WithAuth0Props | @auth0/auth0-react

                                                            Interface WithAuth0Props

                                                            Components wrapped in withAuth0 will have an additional auth0 prop

                                                            -
                                                            interface WithAuth0Props {
                                                                auth0: Auth0ContextInterface<User>;
                                                            }

                                                            Properties

                                                            Properties

                                                            \ No newline at end of file +WithAuth0Props | @auth0/auth0-react
                                                            @auth0/auth0-react
                                                              Preparing search index...

                                                              Interface WithAuth0Props

                                                              Components wrapped in withAuth0 will have an additional auth0 prop

                                                              +
                                                              interface WithAuth0Props {
                                                                  auth0: Auth0ContextInterface;
                                                              }
                                                              Index

                                                              Properties

                                                              Properties

                                                              diff --git a/docs/interfaces/WithAuthenticationRequiredOptions.html b/docs/interfaces/WithAuthenticationRequiredOptions.html index 52a909d9..bb8150d4 100644 --- a/docs/interfaces/WithAuthenticationRequiredOptions.html +++ b/docs/interfaces/WithAuthenticationRequiredOptions.html @@ -1,26 +1,31 @@ -WithAuthenticationRequiredOptions | @auth0/auth0-react

                                                              Interface WithAuthenticationRequiredOptions

                                                              Options for the withAuthenticationRequired Higher Order Component

                                                              -
                                                              interface WithAuthenticationRequiredOptions {
                                                                  context?: Context<Auth0ContextInterface<User>>;
                                                                  loginOptions?: RedirectLoginOptions<AppState>;
                                                                  onBeforeAuthentication?: (() => Promise<void>);
                                                                  onRedirecting?: (() => Element);
                                                                  returnTo?: string | (() => string);
                                                              }

                                                              Properties

                                                              context?: Context<Auth0ContextInterface<User>>

                                                              The context to be used when calling useAuth0, this should only be provided if you are using multiple Auth0Providers +WithAuthenticationRequiredOptions | @auth0/auth0-react

                                                              @auth0/auth0-react
                                                                Preparing search index...

                                                                Interface WithAuthenticationRequiredOptions

                                                                Options for the withAuthenticationRequired Higher Order Component

                                                                +
                                                                interface WithAuthenticationRequiredOptions {
                                                                    context?: Context<Auth0ContextInterface<User>>;
                                                                    loginOptions?: RedirectLoginOptions<AppState>;
                                                                    onBeforeAuthentication?: () => Promise<void>;
                                                                    onRedirecting?: () => Element;
                                                                    returnTo?: string | (() => string);
                                                                }
                                                                Index

                                                                Properties

                                                                context?: Context<Auth0ContextInterface<User>>

                                                                The context to be used when calling useAuth0, this should only be provided if you are using multiple Auth0Providers within your application and you wish to tie a specific component to a Auth0Provider other than the Auth0Provider associated with the default Auth0Context.

                                                                -
                                                                withAuthenticationRequired(Profile, {
                                                                loginOptions: {
                                                                appState: {
                                                                customProp: 'foo'
                                                                }
                                                                }
                                                                }) -
                                                                +
                                                                withAuthenticationRequired(Profile, {
                                                                loginOptions: {
                                                                appState: {
                                                                customProp: 'foo'
                                                                }
                                                                }
                                                                }) +
                                                                +

                                                                Pass additional login options, like extra appState to the login page. This will be merged with the returnTo option used by the onRedirectCallback handler.

                                                                -
                                                                onBeforeAuthentication?: (() => Promise<void>)
                                                                withAuthenticationRequired(Profile, {
                                                                onBeforeAuthentication: () => { analyticsLibrary.track('login_triggered'); }
                                                                }) -
                                                                +
                                                                onBeforeAuthentication?: () => Promise<void>
                                                                withAuthenticationRequired(Profile, {
                                                                onBeforeAuthentication: () => { analyticsLibrary.track('login_triggered'); }
                                                                }) +
                                                                +

                                                                Allows executing logic before the user is redirected to the login page.

                                                                -

                                                                Type declaration

                                                                  • (): Promise<void>
                                                                  • Returns Promise<void>

                                                                onRedirecting?: (() => Element)
                                                                withAuthenticationRequired(Profile, {
                                                                onRedirecting: () => <div>Redirecting you to the login...</div>
                                                                }) -
                                                                +
                                                                onRedirecting?: () => Element
                                                                withAuthenticationRequired(Profile, {
                                                                onRedirecting: () => <div>Redirecting you to the login...</div>
                                                                }) +
                                                                +

                                                                Render a message to show that the user is being redirected to the login.

                                                                -

                                                                Type declaration

                                                                  • (): Element
                                                                  • Returns Element

                                                                returnTo?: string | (() => string)
                                                                withAuthenticationRequired(Profile, {
                                                                returnTo: '/profile'
                                                                }) -
                                                                +
                                                                returnTo?: string | (() => string)
                                                                withAuthenticationRequired(Profile, {
                                                                returnTo: '/profile'
                                                                }) +
                                                                +

                                                                or

                                                                -
                                                                withAuthenticationRequired(Profile, {
                                                                returnTo: () => window.location.hash.substr(1)
                                                                }) -
                                                                +
                                                                withAuthenticationRequired(Profile, {
                                                                returnTo: () => window.location.hash.substr(1)
                                                                }) +
                                                                +

                                                                Add a path for the onRedirectCallback handler to return the user to after login.

                                                                -

                                                                Type declaration

                                                                  • (): string
                                                                  • Returns string

                                                                \ No newline at end of file +
                                                                diff --git a/docs/modules.html b/docs/modules.html index 44914ebe..37915723 100644 --- a/docs/modules.html +++ b/docs/modules.html @@ -1,34 +1 @@ -@auth0/auth0-react
                                                                \ No newline at end of file +@auth0/auth0-react
                                                                @auth0/auth0-react
                                                                  Preparing search index...
                                                                  diff --git a/docs/types/AppState.html b/docs/types/AppState.html index 9df19f14..7cb36e8c 100644 --- a/docs/types/AppState.html +++ b/docs/types/AppState.html @@ -1,2 +1,3 @@ -AppState | @auth0/auth0-react

                                                                  Type alias AppState

                                                                  AppState: {
                                                                      returnTo?: string;
                                                                      [key: string]: any;
                                                                  }

                                                                  The state of the application before the user was redirected to the login page.

                                                                  -

                                                                  Type declaration

                                                                  • [key: string]: any
                                                                  • Optional returnTo?: string
                                                                  \ No newline at end of file +AppState | @auth0/auth0-react
                                                                  @auth0/auth0-react
                                                                    Preparing search index...

                                                                    Type Alias AppState

                                                                    The state of the application before the user was redirected to the login page.

                                                                    +
                                                                    type AppState = {
                                                                        returnTo?: string;
                                                                        [key: string]: any;
                                                                    }

                                                                    Indexable

                                                                    • [key: string]: any
                                                                    Index

                                                                    Properties

                                                                    Properties

                                                                    returnTo?: string
                                                                    diff --git a/docs/types/CacheLocation.html b/docs/types/CacheLocation.html index 1ffcd4b9..4f585572 100644 --- a/docs/types/CacheLocation.html +++ b/docs/types/CacheLocation.html @@ -1,2 +1,2 @@ -CacheLocation | @auth0/auth0-react

                                                                    Type alias CacheLocation

                                                                    CacheLocation: "memory" | "localstorage"

                                                                    The possible locations where tokens can be stored

                                                                    -
                                                                    \ No newline at end of file +CacheLocation | @auth0/auth0-react
                                                                    @auth0/auth0-react
                                                                      Preparing search index...

                                                                      Type Alias CacheLocation

                                                                      CacheLocation: "memory" | "localstorage"

                                                                      The possible locations where tokens can be stored

                                                                      +
                                                                      diff --git a/docs/types/Cacheable.html b/docs/types/Cacheable.html index 7cff2b3a..30262fa8 100644 --- a/docs/types/Cacheable.html +++ b/docs/types/Cacheable.html @@ -1 +1 @@ -Cacheable | @auth0/auth0-react

                                                                      Type alias Cacheable

                                                                      Cacheable: WrappedCacheEntry | KeyManifestEntry
                                                                      \ No newline at end of file +Cacheable | @auth0/auth0-react
                                                                      @auth0/auth0-react
                                                                        Preparing search index...

                                                                        Type Alias Cacheable

                                                                        Cacheable: WrappedCacheEntry | KeyManifestEntry
                                                                        diff --git a/docs/variables/Auth0Context.html b/docs/variables/Auth0Context.html new file mode 100644 index 00000000..0224bee1 --- /dev/null +++ b/docs/variables/Auth0Context.html @@ -0,0 +1,2 @@ +Auth0Context | @auth0/auth0-react
                                                                        @auth0/auth0-react
                                                                          Preparing search index...

                                                                          Variable Auth0ContextConst

                                                                          Auth0Context: Context<Auth0ContextInterface<User>> = ...

                                                                          The Auth0 Context

                                                                          +
                                                                          diff --git a/examples/nextjs-app/package.json b/examples/nextjs-app/package.json index 59a80257..79546bb1 100644 --- a/examples/nextjs-app/package.json +++ b/examples/nextjs-app/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@auth0/auth0-react": "file:../..", - "next": "14.1.1", + "next": "15.3.5", "react": "file:../../node_modules/react", "react-dom": "file:../../node_modules/react-dom" } diff --git a/examples/users-api/package-lock.json b/examples/users-api/package-lock.json index 9557013d..73707f41 100644 --- a/examples/users-api/package-lock.json +++ b/examples/users-api/package-lock.json @@ -11,8 +11,8 @@ "dependencies": { "cors": "^2.8.5", "dotenv": "^16.0.3", - "express": "^4.19.2", - "express-oauth2-jwt-bearer": "^1.2.0" + "express": "^4.21.2", + "express-oauth2-jwt-bearer": "^1.6.1" } }, "node_modules/accepts": { @@ -33,9 +33,10 @@ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, "node_modules/body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "license": "MIT", "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.5", @@ -45,7 +46,7 @@ "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", - "qs": "6.11.0", + "qs": "6.13.0", "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" @@ -59,20 +60,32 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, - "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", "dependencies": { - "es-define-property": "^1.0.0", "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" }, "engines": { "node": ">= 0.4" @@ -96,14 +109,16 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -129,30 +144,16 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { "ms": "2.0.0" } }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -161,6 +162,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", "engines": { "node": ">= 0.8", "npm": "1.2.8000 || >= 1.4.16" @@ -174,26 +176,40 @@ "node": ">=12" } }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" }, "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "dependencies": { - "get-intrinsic": "^1.2.4" - }, + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", "engines": { "node": ">= 0.4" } @@ -202,6 +218,19 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, "engines": { "node": ">= 0.4" } @@ -209,47 +238,50 @@ "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" }, "node_modules/etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/express": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", - "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", + "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", + "license": "MIT", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.2", + "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.6.0", + "cookie": "0.7.1", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "1.2.0", + "finalhandler": "1.3.1", "fresh": "0.5.2", "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", + "merge-descriptors": "1.0.3", "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", + "path-to-regexp": "0.1.12", "proxy-addr": "~2.0.7", - "qs": "6.11.0", + "qs": "6.13.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", + "send": "0.19.0", + "serve-static": "1.16.2", "setprototypeof": "1.2.0", "statuses": "2.0.1", "type-is": "~1.6.18", @@ -258,26 +290,32 @@ }, "engines": { "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/express-oauth2-jwt-bearer": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/express-oauth2-jwt-bearer/-/express-oauth2-jwt-bearer-1.2.0.tgz", - "integrity": "sha512-ZXI8klu6RoqYSsa/d/+k7BSAH9U+8a6WS/z7lxFUdtatcky5uPyG++nYudq3pHynZi5C4oGJ5AcgtM4oWMx/cA==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/express-oauth2-jwt-bearer/-/express-oauth2-jwt-bearer-1.6.1.tgz", + "integrity": "sha512-fhgIvVZ6iSR/jqyVHBcN9Df7VeBdVhg5d2yN6+HNrSEegmhbh9hFY+TvtvBmsv130fI06EW3Dgp9ApmYwArN6Q==", + "license": "MIT", "dependencies": { - "jose": "^4.9.2" + "jose": "^4.15.5" }, "engines": { - "node": "^12.19.0 || ^14.15.0 || ^16.13.0 || ^18.12.0" + "node": "^12.19.0 || ^14.15.0 || ^16.13.0 || ^18.12.0 || ^20.2.0 || ^22.1.0" } }, "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "license": "MIT", "dependencies": { "debug": "2.6.9", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "on-finished": "2.4.1", "parseurl": "~1.3.3", @@ -300,6 +338,7 @@ "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -308,20 +347,27 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -330,32 +376,24 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/gopd": { + "node_modules/get-proto": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", "dependencies": { - "es-define-property": "^1.0.0" + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">= 0.4" } }, - "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -364,9 +402,10 @@ } }, "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -378,6 +417,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", "dependencies": { "function-bind": "^1.1.2" }, @@ -389,6 +429,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "license": "MIT", "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", @@ -404,6 +445,7 @@ "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -414,7 +456,8 @@ "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" }, "node_modules/ipaddr.js": { "version": "1.9.1", @@ -432,18 +475,32 @@ "url": "https://github.com/sponsors/panva" } }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/methods": { "version": "1.1.2", @@ -457,6 +514,7 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", "bin": { "mime": "cli.js" }, @@ -486,7 +544,8 @@ "node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, "node_modules/negotiator": { "version": "0.6.3", @@ -505,9 +564,13 @@ } }, "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -516,6 +579,7 @@ "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", "dependencies": { "ee-first": "1.1.1" }, @@ -527,14 +591,16 @@ "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", + "license": "MIT" }, "node_modules/proxy-addr": { "version": "2.0.7", @@ -549,11 +615,12 @@ } }, "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "license": "BSD-3-Clause", "dependencies": { - "side-channel": "^1.0.4" + "side-channel": "^1.0.6" }, "engines": { "node": ">=0.6" @@ -566,6 +633,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -574,6 +642,7 @@ "version": "2.5.2", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "license": "MIT", "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", @@ -606,12 +675,14 @@ "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" }, "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "license": "MIT", "dependencies": { "debug": "2.6.9", "depd": "2.0.0", @@ -631,55 +702,106 @@ "node": ">= 0.8.0" } }, + "node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/send/node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" }, "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "license": "MIT", "dependencies": { - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.18.0" + "send": "0.19.0" }, "engines": { "node": ">= 0.8.0" } }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "license": "MIT", "dependencies": { - "define-data-property": "^1.1.4", "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bound": "^1.0.2", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -692,6 +814,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -700,6 +823,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", "engines": { "node": ">=0.6" } @@ -708,6 +832,7 @@ "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" @@ -720,6 +845,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -757,9 +883,9 @@ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, "body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", "requires": { "bytes": "3.1.2", "content-type": "~1.0.5", @@ -769,7 +895,7 @@ "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", - "qs": "6.11.0", + "qs": "6.13.0", "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" @@ -780,16 +906,22 @@ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" }, - "call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", "requires": { - "es-define-property": "^1.0.0", "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" + "function-bind": "^1.1.2" + } + }, + "call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "requires": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" } }, "content-disposition": { @@ -806,9 +938,9 @@ "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==" }, "cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==" + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==" }, "cookie-signature": { "version": "1.0.6", @@ -832,16 +964,6 @@ "ms": "2.0.0" } }, - "define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "requires": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - } - }, "depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", @@ -857,29 +979,44 @@ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz", "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==" }, + "dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "requires": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + } + }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==" }, "es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "requires": { - "get-intrinsic": "^1.2.4" - } + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==" }, "es-errors": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==" }, + "es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "requires": { + "es-errors": "^1.3.0" + } + }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -891,36 +1028,36 @@ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" }, "express": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", - "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", + "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", "requires": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.2", + "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.6.0", + "cookie": "0.7.1", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "1.2.0", + "finalhandler": "1.3.1", "fresh": "0.5.2", "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", + "merge-descriptors": "1.0.3", "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", + "path-to-regexp": "0.1.12", "proxy-addr": "~2.0.7", - "qs": "6.11.0", + "qs": "6.13.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", + "send": "0.19.0", + "serve-static": "1.16.2", "setprototypeof": "1.2.0", "statuses": "2.0.1", "type-is": "~1.6.18", @@ -929,20 +1066,20 @@ } }, "express-oauth2-jwt-bearer": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/express-oauth2-jwt-bearer/-/express-oauth2-jwt-bearer-1.2.0.tgz", - "integrity": "sha512-ZXI8klu6RoqYSsa/d/+k7BSAH9U+8a6WS/z7lxFUdtatcky5uPyG++nYudq3pHynZi5C4oGJ5AcgtM4oWMx/cA==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/express-oauth2-jwt-bearer/-/express-oauth2-jwt-bearer-1.6.1.tgz", + "integrity": "sha512-fhgIvVZ6iSR/jqyVHBcN9Df7VeBdVhg5d2yN6+HNrSEegmhbh9hFY+TvtvBmsv130fI06EW3Dgp9ApmYwArN6Q==", "requires": { - "jose": "^4.9.2" + "jose": "^4.15.5" } }, "finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", "requires": { "debug": "2.6.9", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "on-finished": "2.4.1", "parseurl": "~1.3.3", @@ -966,42 +1103,40 @@ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" }, "get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", "requires": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" } }, - "gopd": { + "get-proto": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", "requires": { - "get-intrinsic": "^1.1.3" + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" } }, - "has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "requires": { - "es-define-property": "^1.0.0" - } - }, - "has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==" + "gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==" }, "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==" }, "hasown": { "version": "2.0.2", @@ -1046,15 +1181,20 @@ "resolved": "https://registry.npmjs.org/jose/-/jose-4.15.5.tgz", "integrity": "sha512-jc7BFxgKPKi94uOvEmzlSWFFe2+vASyXaKUpdQKatWAESU2MWjDfFf0fdfc83CDKcA5QecabZeNLyfhe3yKNkg==" }, + "math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==" + }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" }, "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==" }, "methods": { "version": "1.1.2", @@ -1095,9 +1235,9 @@ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==" + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==" }, "on-finished": { "version": "2.4.1", @@ -1113,9 +1253,9 @@ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" }, "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==" }, "proxy-addr": { "version": "2.0.7", @@ -1127,11 +1267,11 @@ } }, "qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", "requires": { - "side-channel": "^1.0.4" + "side-channel": "^1.0.6" } }, "range-parser": { @@ -1161,9 +1301,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", "requires": { "debug": "2.6.9", "depd": "2.0.0", @@ -1180,6 +1320,11 @@ "statuses": "2.0.1" }, "dependencies": { + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + }, "ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -1188,27 +1333,14 @@ } }, "serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", "requires": { - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.18.0" - } - }, - "set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "requires": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" + "send": "0.19.0" } }, "setprototypeof": { @@ -1217,14 +1349,47 @@ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, "side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "requires": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + } + }, + "side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "requires": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + } + }, + "side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "requires": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + } + }, + "side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", "requires": { - "call-bind": "^1.0.7", + "call-bound": "^1.0.2", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" } }, "statuses": { diff --git a/examples/users-api/package.json b/examples/users-api/package.json index 5ce55b17..ae481f33 100644 --- a/examples/users-api/package.json +++ b/examples/users-api/package.json @@ -10,7 +10,7 @@ "dependencies": { "cors": "^2.8.5", "dotenv": "^16.0.3", - "express": "^4.19.2", - "express-oauth2-jwt-bearer": "^1.2.0" + "express": "^4.21.2", + "express-oauth2-jwt-bearer": "^1.6.1" } } diff --git a/package-lock.json b/package-lock.json index 98166bd3..1d05f401 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "2.3.0", "license": "MIT", "dependencies": { - "@auth0/auth0-spa-js": "^2.1.3" + "@auth0/auth0-spa-js": "^2.2.0" }, "devDependencies": { "@rollup/plugin-node-resolve": "^15.0.1", @@ -18,25 +18,25 @@ "@testing-library/dom": "^10.4.0", "@testing-library/jest-dom": "6.6.3", "@testing-library/react": "16.1.0", - "@types/jest": "^29.2.3", - "@types/react": "19.0.7", - "@types/react-dom": "19.0.3", - "@typescript-eslint/eslint-plugin": "^5.45.0", - "@typescript-eslint/parser": "^5.45.0", + "@types/jest": "^29.5.14", + "@types/react": "19.1.8", + "@types/react-dom": "19.1.6", + "@typescript-eslint/eslint-plugin": "^8.36.0", + "@typescript-eslint/parser": "^8.36.0", "browserstack-cypress-cli": "^1.19.1", "cypress": "^13.1.0", "eslint": "^8.28.0", "eslint-plugin-react": "^7.31.11", "eslint-plugin-react-hooks": "^4.6.0", "husky": "^8.0.3", - "jest": "^29.3.1", + "jest": "^29.7.0", "jest-environment-jsdom": "^29.3.1", "jest-junit": "^15.0.0", - "oidc-provider": "^8.0.0", + "oidc-provider": "^8.8.1", "prettier": "^2.8.1", "pretty-quick": "^3.1.3", - "react": "^19.0.0", - "react-dom": "19.0.0", + "react": "19.1.0", + "react-dom": "19.1.0", "rollup": "^3.7.0", "rollup-plugin-analyzer": "^4.0.0", "rollup-plugin-delete": "^2.0.0", @@ -46,10 +46,10 @@ "rollup-plugin-serve": "^2.0.2", "rollup-plugin-typescript2": "^0.36.0", "start-server-and-test": "^2.0", - "ts-jest": "^29.0.3", - "tslib": "^2.4.1", - "typedoc": "^0.25.3", - "typescript": "^4.9.4" + "ts-jest": "^29.4.0", + "tslib": "^2.8.1", + "typedoc": "^0.28.7", + "typescript": "^5.8.3" }, "peerDependencies": { "react": "^16.11.0 || ^17 || ^18 || ^19", @@ -587,7 +587,9 @@ } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.1", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz", + "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==", "dev": true, "license": "MIT", "dependencies": { @@ -641,6 +643,20 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, + "node_modules/@gerrit0/mini-shiki": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@gerrit0/mini-shiki/-/mini-shiki-3.7.0.tgz", + "integrity": "sha512-7iY9wg4FWXmeoFJpUL2u+tsmh0d0jcEJHAIzVxl3TG4KL493JNnisdLAILZ77zcD+z3J0keEXZ+lFzUgzQzPDg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/engine-oniguruma": "^3.7.0", + "@shikijs/langs": "^3.7.0", + "@shikijs/themes": "^3.7.0", + "@shikijs/types": "^3.7.0", + "@shikijs/vscode-textmate": "^10.0.2" + } + }, "node_modules/@hapi/hoek": { "version": "9.3.0", "dev": true, @@ -1320,6 +1336,55 @@ } } }, + "node_modules/@shikijs/engine-oniguruma": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.7.0.tgz", + "integrity": "sha512-5BxcD6LjVWsGu4xyaBC5bu8LdNgPCVBnAkWTtOCs/CZxcB22L8rcoWfv7Hh/3WooVjBZmFtyxhgvkQFedPGnFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/types": "3.7.0", + "@shikijs/vscode-textmate": "^10.0.2" + } + }, + "node_modules/@shikijs/langs": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-3.7.0.tgz", + "integrity": "sha512-1zYtdfXLr9xDKLTGy5kb7O0zDQsxXiIsw1iIBcNOO8Yi5/Y1qDbJ+0VsFoqTlzdmneO8Ij35g7QKF8kcLyznCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/types": "3.7.0" + } + }, + "node_modules/@shikijs/themes": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-3.7.0.tgz", + "integrity": "sha512-VJx8497iZPy5zLiiCTSIaOChIcKQwR0FebwE9S3rcN0+J/GTWwQ1v/bqhTbpbY3zybPKeO8wdammqkpXc4NVjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/types": "3.7.0" + } + }, + "node_modules/@shikijs/types": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-3.7.0.tgz", + "integrity": "sha512-MGaLeaRlSWpnP0XSAum3kP3a8vtcTsITqoEPYdt3lQG3YCdQH4DnEhodkYcNMcU0uW0RffhoD1O3e0vG5eSBBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4" + } + }, + "node_modules/@shikijs/vscode-textmate": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz", + "integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==", + "dev": true, + "license": "MIT" + }, "node_modules/@sideway/address": { "version": "4.1.5", "dev": true, @@ -1533,6 +1598,16 @@ "@types/node": "*" } }, + "node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, "node_modules/@types/http-cache-semantics": { "version": "4.0.4", "dev": true, @@ -1607,11 +1682,6 @@ "parse5": "^7.0.0" } }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "dev": true, - "license": "MIT" - }, "node_modules/@types/minimatch": { "version": "5.1.2", "dev": true, @@ -1626,7 +1696,9 @@ } }, "node_modules/@types/react": { - "version": "19.0.7", + "version": "19.1.8", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.8.tgz", + "integrity": "sha512-AwAfQ2Wa5bCx9WP8nZL2uMZWod7J7/JSplxbTmBQ5ms6QpqNYm672H0Vu9ZVKVngQ+ii4R/byguVEUZQyeg44g==", "dev": true, "license": "MIT", "dependencies": { @@ -1634,7 +1706,9 @@ } }, "node_modules/@types/react-dom": { - "version": "19.0.3", + "version": "19.1.6", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.6.tgz", + "integrity": "sha512-4hOiT/dwO8Ko0gV1m/TJZYk3y0KBnY9vzDh7W+DH17b2HFSOGgdj33dhihPeuy3l0q23+4e+hoXHV6hCC4dCXw==", "dev": true, "license": "MIT", "peerDependencies": { @@ -1646,11 +1720,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/semver": { - "version": "7.5.8", - "dev": true, - "license": "MIT" - }, "node_modules/@types/sinonjs__fake-timers": { "version": "8.1.1", "dev": true, @@ -1671,6 +1740,13 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/yargs": { "version": "17.0.33", "dev": true, @@ -1694,250 +1770,275 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.62.0", + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.36.0.tgz", + "integrity": "sha512-lZNihHUVB6ZZiPBNgOQGSxUASI7UJWhT8nHyUGCnaQ28XFCw98IfrMCG3rUl1uwUWoAvodJQby2KTs79UTcrAg==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/type-utils": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.36.0", + "@typescript-eslint/type-utils": "8.36.0", + "@typescript-eslint/utils": "8.36.0", + "@typescript-eslint/visitor-keys": "8.36.0", "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "ignore": "^7.0.0", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.1.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "@typescript-eslint/parser": "^8.36.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { - "version": "5.62.0", + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.36.0.tgz", + "integrity": "sha512-FuYgkHwZLuPbZjQHzJXrtXreJdFMKl16BFYyRrLxDhWr6Qr7Kbcu2s1Yhu8tsiMXw1S0W1pjfFfYEt+R604s+Q==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" + "@typescript-eslint/scope-manager": "8.36.0", + "@typescript-eslint/types": "8.36.0", + "@typescript-eslint/typescript-estree": "8.36.0", + "@typescript-eslint/visitor-keys": "8.36.0", + "debug": "^4.3.4" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/eslint-scope": { - "version": "5.1.1", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/estraverse": { - "version": "4.3.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" } }, - "node_modules/@typescript-eslint/parser": { - "version": "5.62.0", + "node_modules/@typescript-eslint/project-service": { + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.36.0.tgz", + "integrity": "sha512-JAhQFIABkWccQYeLMrHadu/fhpzmSQ1F1KXkpzqiVxA/iYI6UnRt2trqXHt1sYEcw1mxLnB9rKMsOxXPxowN/g==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/tsconfig-utils": "^8.36.0", + "@typescript-eslint/types": "^8.36.0", "debug": "^4.3.4" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "typescript": ">=4.8.4 <5.9.0" } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.62.0", + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.36.0.tgz", + "integrity": "sha512-wCnapIKnDkN62fYtTGv2+RY8FlnBYA3tNm0fm91kc2BjPhV2vIjwwozJ7LToaLAyb1ca8BxrS7vT+Pvvf7RvqA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" + "@typescript-eslint/types": "8.36.0", + "@typescript-eslint/visitor-keys": "8.36.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/type-utils": { - "version": "5.62.0", + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.36.0.tgz", + "integrity": "sha512-Nhh3TIEgN18mNbdXpd5Q8mSCBnrZQeY9V7Ca3dqYvNDStNIGRmJA6dmrIPMJ0kow3C7gcQbpsG2rPzy1Ks/AnA==", "dev": true, "license": "MIT", - "dependencies": { - "@typescript-eslint/typescript-estree": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "typescript": ">=4.8.4 <5.9.0" } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/utils": { - "version": "5.62.0", + "node_modules/@typescript-eslint/type-utils": { + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.36.0.tgz", + "integrity": "sha512-5aaGYG8cVDd6cxfk/ynpYzxBRZJk7w/ymto6uiyUFtdCozQIsQWh7M28/6r57Fwkbweng8qAzoMCPwSJfWlmsg==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" + "@typescript-eslint/typescript-estree": "8.36.0", + "@typescript-eslint/utils": "8.36.0", + "debug": "^4.3.4", + "ts-api-utils": "^2.1.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" } }, - "node_modules/@typescript-eslint/type-utils/node_modules/eslint-scope": { - "version": "5.1.1", + "node_modules/@typescript-eslint/types": { + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.36.0.tgz", + "integrity": "sha512-xGms6l5cTJKQPZOKM75Dl9yBfNdGeLRsIyufewnxT4vZTrjC0ImQT4fj8QmtJK84F58uSh5HVBSANwcfiXxABQ==", "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, + "license": "MIT", "engines": { - "node": ">=8.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/type-utils/node_modules/estraverse": { - "version": "4.3.0", + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.36.0.tgz", + "integrity": "sha512-JaS8bDVrfVJX4av0jLpe4ye0BpAaUW7+tnS4Y4ETa3q7NoZgzYbN9zDQTJ8kPb5fQ4n0hliAt9tA4Pfs2zA2Hg==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", + "dependencies": { + "@typescript-eslint/project-service": "8.36.0", + "@typescript-eslint/tsconfig-utils": "8.36.0", + "@typescript-eslint/types": "8.36.0", + "@typescript-eslint/visitor-keys": "8.36.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.1.0" + }, "engines": { - "node": ">=4.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" } }, - "node_modules/@typescript-eslint/types": { - "version": "5.62.0", + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "dev": true, "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=16 || 14 >=14.17" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.62.0", + "node_modules/@typescript-eslint/utils": { + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.36.0.tgz", + "integrity": "sha512-VOqmHu42aEMT+P2qYjylw6zP/3E/HvptRwdn/PZxyV27KhZg2IOszXod4NcXisWzPAGSS4trE/g4moNj6XmH2g==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "@eslint-community/eslint-utils": "^4.7.0", + "@typescript-eslint/scope-manager": "8.36.0", + "@typescript-eslint/types": "8.36.0", + "@typescript-eslint/typescript-estree": "8.36.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.62.0", + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.36.0.tgz", + "integrity": "sha512-vZrhV2lRPWDuGoxcmrzRZyxAggPL+qp3WzUrlZD+slFueDiYHxeBa34dUXPuC0RmGKzl4lS5kFJYvKCq9cnNDA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" + "@typescript-eslint/types": "8.36.0", + "eslint-visitor-keys": "^4.2.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/@ungap/structured-clone": { "version": "1.2.1", "dev": true, @@ -2086,11 +2187,6 @@ "node": ">=8" } }, - "node_modules/ansi-sequence-parser": { - "version": "1.1.1", - "dev": true, - "license": "MIT" - }, "node_modules/ansi-styles": { "version": "4.3.0", "dev": true, @@ -5622,25 +5718,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/globby": { - "version": "11.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/gopd": { "version": "1.2.0", "dev": true, @@ -7828,11 +7905,6 @@ "node": ">=6" } }, - "node_modules/jsonc-parser": { - "version": "3.3.1", - "dev": true, - "license": "MIT" - }, "node_modules/jsonfile": { "version": "4.0.0", "dev": true, @@ -7897,7 +7969,9 @@ } }, "node_modules/koa": { - "version": "2.15.3", + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/koa/-/koa-2.16.1.tgz", + "integrity": "sha512-umfX9d3iuSxTQP4pnzLOz0HKnPg0FaUUIKcye2lOiz3KPu1Y3M3xlz76dISdFPQs37P9eJz1wUpcTS6KDPn9fA==", "dev": true, "license": "MIT", "dependencies": { @@ -8203,6 +8277,16 @@ "dev": true, "license": "MIT" }, + "node_modules/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "uc.micro": "^2.0.0" + } + }, "node_modules/listr2": { "version": "3.14.0", "dev": true, @@ -8478,15 +8562,22 @@ "version": "0.1.0", "dev": true }, - "node_modules/marked": { - "version": "4.3.0", + "node_modules/markdown-it": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", + "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", "dev": true, "license": "MIT", - "bin": { - "marked": "bin/marked.js" + "dependencies": { + "argparse": "^2.0.1", + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" }, - "engines": { - "node": ">= 12" + "bin": { + "markdown-it": "bin/markdown-it.mjs" } }, "node_modules/math-intrinsics": { @@ -8497,6 +8588,13 @@ "node": ">= 0.4" } }, + "node_modules/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", + "dev": true, + "license": "MIT" + }, "node_modules/media-typer": { "version": "0.3.0", "dev": true, @@ -8791,11 +8889,6 @@ "dev": true, "license": "MIT" }, - "node_modules/natural-compare-lite": { - "version": "1.4.0", - "dev": true, - "license": "MIT" - }, "node_modules/negotiator": { "version": "0.6.3", "dev": true, @@ -8964,19 +9057,21 @@ } }, "node_modules/oidc-provider": { - "version": "8.6.0", + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/oidc-provider/-/oidc-provider-8.8.1.tgz", + "integrity": "sha512-qVChpayTwojUREJxLkFofUSK8kiSRIdzPrVSsoGibqRHl/YO60ege94OZS8vh7zaK+zxcG/Gu8UMaYB5ulohCQ==", "dev": true, "license": "MIT", "dependencies": { "@koa/cors": "^5.0.0", "@koa/router": "^13.1.0", - "debug": "^4.3.7", + "debug": "^4.4.0", "eta": "^3.5.0", "got": "^13.0.0", "jose": "^5.9.6", - "jsesc": "^3.0.2", - "koa": "^2.15.3", - "nanoid": "^5.0.8", + "jsesc": "^3.1.0", + "koa": "^2.15.4", + "nanoid": "^5.0.9", "object-hash": "^3.0.0", "oidc-token-hash": "^5.0.3", "quick-lru": "^7.0.0", @@ -9650,6 +9745,16 @@ "node": ">=6" } }, + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/pupa": { "version": "3.1.0", "dev": true, @@ -9773,7 +9878,9 @@ } }, "node_modules/react": { - "version": "19.0.0", + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz", + "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==", "dev": true, "license": "MIT", "engines": { @@ -9781,14 +9888,16 @@ } }, "node_modules/react-dom": { - "version": "19.0.0", + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz", + "integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==", "dev": true, "license": "MIT", "dependencies": { - "scheduler": "^0.25.0" + "scheduler": "^0.26.0" }, "peerDependencies": { - "react": "^19.0.0" + "react": "^19.1.0" } }, "node_modules/react-is": { @@ -10403,7 +10512,9 @@ } }, "node_modules/scheduler": { - "version": "0.25.0", + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", + "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==", "dev": true, "license": "MIT" }, @@ -10425,7 +10536,9 @@ "license": "MIT" }, "node_modules/semver": { - "version": "7.6.3", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "dev": true, "license": "ISC", "bin": { @@ -10529,17 +10642,6 @@ "node": ">=8" } }, - "node_modules/shiki": { - "version": "0.14.7", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-sequence-parser": "^1.1.0", - "jsonc-parser": "^3.2.0", - "vscode-oniguruma": "^1.7.0", - "vscode-textmate": "^8.0.0" - } - }, "node_modules/side-channel": { "version": "1.1.0", "dev": true, @@ -11318,19 +11420,34 @@ "tree-kill": "cli.js" } }, + "node_modules/ts-api-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", + "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, "node_modules/ts-jest": { - "version": "29.2.5", + "version": "29.4.0", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.4.0.tgz", + "integrity": "sha512-d423TJMnJGu80/eSgfQ5w/R+0zFJvdtTxwtF9KzFFunOpSeD+79lHJQIiAhluJoyGRbvj9NZJsl9WjCUo0ND7Q==", "dev": true, "license": "MIT", "dependencies": { "bs-logger": "^0.2.6", "ejs": "^3.1.10", "fast-json-stable-stringify": "^2.1.0", - "jest-util": "^29.0.0", "json5": "^2.2.3", "lodash.memoize": "^4.1.2", "make-error": "^1.3.6", - "semver": "^7.6.3", + "semver": "^7.7.2", + "type-fest": "^4.41.0", "yargs-parser": "^21.1.1" }, "bin": { @@ -11341,10 +11458,11 @@ }, "peerDependencies": { "@babel/core": ">=7.0.0-beta.0 <8", - "@jest/transform": "^29.0.0", - "@jest/types": "^29.0.0", - "babel-jest": "^29.0.0", - "jest": "^29.0.0", + "@jest/transform": "^29.0.0 || ^30.0.0", + "@jest/types": "^29.0.0 || ^30.0.0", + "babel-jest": "^29.0.0 || ^30.0.0", + "jest": "^29.0.0 || ^30.0.0", + "jest-util": "^29.0.0 || ^30.0.0", "typescript": ">=4.3 <6" }, "peerDependenciesMeta": { @@ -11362,9 +11480,25 @@ }, "esbuild": { "optional": true + }, + "jest-util": { + "optional": true } } }, + "node_modules/ts-jest/node_modules/type-fest": { + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/ts-jest/node_modules/yargs-parser": { "version": "21.1.1", "dev": true, @@ -11386,25 +11520,6 @@ "node": ">=0.6.x" } }, - "node_modules/tsutils": { - "version": "3.21.0", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "dev": true, - "license": "0BSD" - }, "node_modules/tunnel-agent": { "version": "0.6.0", "dev": true, @@ -11542,23 +11657,27 @@ } }, "node_modules/typedoc": { - "version": "0.25.13", + "version": "0.28.7", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.28.7.tgz", + "integrity": "sha512-lpz0Oxl6aidFkmS90VQDQjk/Qf2iw0IUvFqirdONBdj7jPSN9mGXhy66BcGNDxx5ZMyKKiBVAREvPEzT6Uxipw==", "dev": true, "license": "Apache-2.0", "dependencies": { + "@gerrit0/mini-shiki": "^3.7.0", "lunr": "^2.3.9", - "marked": "^4.3.0", - "minimatch": "^9.0.3", - "shiki": "^0.14.7" + "markdown-it": "^14.1.0", + "minimatch": "^9.0.5", + "yaml": "^2.8.0" }, "bin": { "typedoc": "bin/typedoc" }, "engines": { - "node": ">= 16" + "node": ">= 18", + "pnpm": ">= 10" }, "peerDependencies": { - "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x" + "typescript": "5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x || 5.7.x || 5.8.x" } }, "node_modules/typedoc/node_modules/brace-expansion": { @@ -11584,7 +11703,9 @@ } }, "node_modules/typescript": { - "version": "4.9.5", + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", "dev": true, "license": "Apache-2.0", "bin": { @@ -11592,9 +11713,16 @@ "tsserver": "bin/tsserver" }, "engines": { - "node": ">=4.2.0" + "node": ">=14.17" } }, + "node_modules/uc.micro": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", + "dev": true, + "license": "MIT" + }, "node_modules/unbox-primitive": { "version": "1.1.0", "dev": true, @@ -11837,16 +11965,6 @@ "extsprintf": "^1.2.0" } }, - "node_modules/vscode-oniguruma": { - "version": "1.7.0", - "dev": true, - "license": "MIT" - }, - "node_modules/vscode-textmate": { - "version": "8.0.0", - "dev": true, - "license": "MIT" - }, "node_modules/w3c-xmlserializer": { "version": "4.0.0", "dev": true, @@ -12282,6 +12400,19 @@ "dev": true, "license": "ISC" }, + "node_modules/yaml": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.0.tgz", + "integrity": "sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==", + "dev": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + } + }, "node_modules/yargs": { "version": "14.2.3", "dev": true, diff --git a/package.json b/package.json index e9f0f6e5..fd0521a8 100644 --- a/package.json +++ b/package.json @@ -54,28 +54,28 @@ "@rollup/plugin-node-resolve": "^15.0.1", "@rollup/plugin-replace": "^5.0.1", "@rollup/plugin-terser": "^0.4.3", + "@testing-library/dom": "^10.4.0", "@testing-library/jest-dom": "6.6.3", "@testing-library/react": "16.1.0", - "@testing-library/dom": "^10.4.0", - "@types/jest": "^29.2.3", - "@types/react": "19.0.7", - "@types/react-dom": "19.0.3", - "@typescript-eslint/eslint-plugin": "^5.45.0", - "@typescript-eslint/parser": "^5.45.0", + "@types/jest": "^29.5.14", + "@types/react": "19.1.8", + "@types/react-dom": "19.1.6", + "@typescript-eslint/eslint-plugin": "^8.36.0", + "@typescript-eslint/parser": "^8.36.0", "browserstack-cypress-cli": "^1.19.1", "cypress": "^13.1.0", "eslint": "^8.28.0", "eslint-plugin-react": "^7.31.11", "eslint-plugin-react-hooks": "^4.6.0", "husky": "^8.0.3", - "jest": "^29.3.1", + "jest": "^29.7.0", "jest-environment-jsdom": "^29.3.1", "jest-junit": "^15.0.0", - "oidc-provider": "^8.0.0", + "oidc-provider": "^8.8.1", "prettier": "^2.8.1", "pretty-quick": "^3.1.3", - "react": "^19.0.0", - "react-dom": "19.0.0", + "react": "19.1.0", + "react-dom": "19.1.0", "rollup": "^3.7.0", "rollup-plugin-analyzer": "^4.0.0", "rollup-plugin-delete": "^2.0.0", @@ -85,16 +85,16 @@ "rollup-plugin-serve": "^2.0.2", "rollup-plugin-typescript2": "^0.36.0", "start-server-and-test": "^2.0", - "ts-jest": "^29.0.3", - "tslib": "^2.4.1", - "typedoc": "^0.25.3", - "typescript": "^4.9.4" + "ts-jest": "^29.4.0", + "tslib": "^2.8.1", + "typedoc": "^0.28.7", + "typescript": "^5.8.3" }, "peerDependencies": { "react": "^16.11.0 || ^17 || ^18 || ^19", "react-dom": "^16.11.0 || ^17 || ^18 || ^19" }, "dependencies": { - "@auth0/auth0-spa-js": "^2.1.3" + "@auth0/auth0-spa-js": "^2.2.0" } } diff --git a/rollup.config.mjs b/rollup.config.mjs index 8fa25d72..2d4a4708 100644 --- a/rollup.config.mjs +++ b/rollup.config.mjs @@ -6,7 +6,7 @@ import external from 'rollup-plugin-peer-deps-external'; import terser from '@rollup/plugin-terser'; import resolve from '@rollup/plugin-node-resolve'; import replace from '@rollup/plugin-replace'; -import pkg from './package.json' assert { type: 'json' }; +import pkg from './package.json' with { type: 'json' }; import analyze from 'rollup-plugin-analyzer'; import { createApp } from './scripts/oidc-provider.mjs'; diff --git a/src/auth-state.tsx b/src/auth-state.tsx index df4bb543..70610f23 100644 --- a/src/auth-state.tsx +++ b/src/auth-state.tsx @@ -4,10 +4,10 @@ import { User } from '@auth0/auth0-spa-js'; * The auth state which, when combined with the auth methods, make up the return object of the `useAuth0` hook. */ export interface AuthState { - error?: Error; + error: Error | undefined; isAuthenticated: boolean; isLoading: boolean; - user?: TUser; + user: TUser | undefined; } /** @@ -16,4 +16,6 @@ export interface AuthState { export const initialAuthState: AuthState = { isAuthenticated: false, isLoading: true, + error: undefined, + user: undefined, }; diff --git a/src/auth0-context.tsx b/src/auth0-context.tsx index d2960ab9..62d74d1e 100644 --- a/src/auth0-context.tsx +++ b/src/auth0-context.tsx @@ -14,9 +14,9 @@ import { createContext } from 'react'; import { AuthState, initialAuthState } from './auth-state'; import { AppState } from './auth0-provider'; -// eslint-disable-next-line @typescript-eslint/no-empty-interface +// eslint-disable-next-line @typescript-eslint/no-empty-object-type export interface LogoutOptions extends Omit {} -// eslint-disable-next-line @typescript-eslint/no-empty-interface +// eslint-disable-next-line @typescript-eslint/no-empty-object-type export interface RedirectLoginOptions extends Omit, 'onRedirect'> {} diff --git a/src/auth0-provider.tsx b/src/auth0-provider.tsx index ac4e4f1c..47df9472 100644 --- a/src/auth0-provider.tsx +++ b/src/auth0-provider.tsx @@ -116,7 +116,7 @@ const defaultOnRedirectCallback = (appState?: AppState): void => { window.history.replaceState( {}, document.title, - appState?.returnTo || window.location.pathname + appState?.returnTo ?? window.location.pathname ); }; @@ -198,7 +198,7 @@ const Auth0Provider = (opts: Auth0ProviderOptions { console.warn( 'Using `redirectUri` has been deprecated, please use `authorizationParams.redirect_uri` instead as `redirectUri` will be no longer supported in a future version' ); - options.authorizationParams = options.authorizationParams || {}; + options.authorizationParams = options.authorizationParams ?? {}; options.authorizationParams.redirect_uri = options.redirectUri; delete options.redirectUri; } diff --git a/src/with-authentication-required.tsx b/src/with-authentication-required.tsx index a6db68b7..3908b09d 100644 --- a/src/with-authentication-required.tsx +++ b/src/with-authentication-required.tsx @@ -117,11 +117,11 @@ const withAuthenticationRequired =

                                                                          ( const opts = { ...loginOptions, appState: { - ...(loginOptions && loginOptions.appState), + ...loginOptions?.appState, returnTo: typeof returnTo === 'function' ? returnTo() : returnTo, }, }; - (async (): Promise => { + void (async (): Promise => { await onBeforeAuthentication(); await loginWithRedirect(opts); })(); diff --git a/tsconfig.json b/tsconfig.json index 91836e20..49d69d83 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -15,7 +15,14 @@ "esModuleInterop": true, "resolveJsonModule": true, "forceConsistentCasingInFileNames": true, - "moduleResolution": "NodeNext" + "module": "ESNext", + "moduleResolution": "node", + "allowImportingTsExtensions": false, + "allowSyntheticDefaultImports": true, + "skipLibCheck": true, + "exactOptionalPropertyTypes": true, + "noUncheckedIndexedAccess": true, + "verbatimModuleSyntax": false }, "include": ["src"] -} +} \ No newline at end of file diff --git a/typedoc.js b/typedoc.js index ac23633b..2800dff2 100644 --- a/typedoc.js +++ b/typedoc.js @@ -6,6 +6,7 @@ module.exports = { excludePrivate: true, hideGenerator: true, readme: './README.md', + highlightLanguages: ['typescript', 'javascript', 'jsx', 'tsx', 'bash'], visibilityFilters: { protected: false, inherited: true, From 43825e3177d63afcb4fdb8027888da1e57c4f4e3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 18 Jul 2025 11:10:36 +0530 Subject: [PATCH 6/8] Bump @auth0/auth0-spa-js from 2.2.0 to 2.3.0 (#858) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [@auth0/auth0-spa-js](https://github.com/auth0/auth0-spa-js) from 2.2.0 to 2.3.0.

                                                                          Release notes

                                                                          Sourced from @​auth0/auth0-spa-js's releases.

                                                                          v2.3.0

                                                                          Fixed

                                                                          Changelog

                                                                          Sourced from @​auth0/auth0-spa-js's changelog.

                                                                          v2.3.0 (2025-07-16)

                                                                          Full Changelog

                                                                          Fixed

                                                                          Commits
                                                                          • 17a7ad9 Release v2.3.0 (#1378)
                                                                          • d79d576 Revert "fix: use npm registry for @​auth0/component-cdn-uploader dependency" (...
                                                                          • e21f0c5 Update doc string explaining organization name parameter (#1333)
                                                                          • 520c5c0 Fix: Token Exchange Ignoring Scope and Audience Parameters (#1365)
                                                                          • 9437965 bugfix: Correctly extract origin from domainUrl (#1372)
                                                                          • 6b584e8 build(deps-dev): Bump rollup from 2.79.1 to 2.79.2 (#1309)
                                                                          • 6dbf94c Merge branch 'main' into dependabot/npm_and_yarn/rollup-2.79.2
                                                                          • 2e2c0d7 build(deps-dev): Bump follow-redirects from 1.15.3 to 1.15.6 (#1259)
                                                                          • ab80539 Merge branch 'main' into dependabot/npm_and_yarn/follow-redirects-1.15.6
                                                                          • 188fc54 fix: use npm registry for @​auth0/component-cdn-uploader dependency (#1364)
                                                                          • Additional commits viewable in compare view

                                                                          [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@auth0/auth0-spa-js&package-manager=npm_and_yarn&previous-version=2.2.0&new-version=2.3.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
                                                                          Dependabot commands and options
                                                                          You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
                                                                          Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1d05f401..88015752 100644 --- a/package-lock.json +++ b/package-lock.json @@ -74,9 +74,9 @@ } }, "node_modules/@auth0/auth0-spa-js": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@auth0/auth0-spa-js/-/auth0-spa-js-2.2.0.tgz", - "integrity": "sha512-YaHHCxiSQxDb+Ju9gXOqcqgXWq8EkUSpZC4g24D3MoEBUaADKwOosrAnmjDZcslBZpnSFFdrl4dLYedAer3xlQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@auth0/auth0-spa-js/-/auth0-spa-js-2.3.0.tgz", + "integrity": "sha512-zAW6w79UO+G1+3AxboVQIUIZy05xluSOb1ymGg2dqG0pIi0JxEtZGec05BOf2LJ9SehzW4WeCYUQsYD9BjrVpQ==", "license": "MIT" }, "node_modules/@babel/code-frame": { From 7e0583a8857ccf60bff899818951453abbfd9e84 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 18 Jul 2025 11:16:21 +0530 Subject: [PATCH 7/8] Bump @typescript-eslint/eslint-plugin from 8.36.0 to 8.37.0 (#862) [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@typescript-eslint/eslint-plugin&package-manager=npm_and_yarn&previous-version=8.36.0&new-version=8.37.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
                                                                          Dependabot commands and options
                                                                          You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
                                                                          Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 107 +++++++++++++++++++++++----------------------- 1 file changed, 54 insertions(+), 53 deletions(-) diff --git a/package-lock.json b/package-lock.json index 88015752..334e6865 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1770,17 +1770,17 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.36.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.36.0.tgz", - "integrity": "sha512-lZNihHUVB6ZZiPBNgOQGSxUASI7UJWhT8nHyUGCnaQ28XFCw98IfrMCG3rUl1uwUWoAvodJQby2KTs79UTcrAg==", + "version": "8.37.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.37.0.tgz", + "integrity": "sha512-jsuVWeIkb6ggzB+wPCsR4e6loj+rM72ohW6IBn2C+5NCvfUVY8s33iFPySSVXqtm5Hu29Ne/9bnA0JmyLmgenA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.36.0", - "@typescript-eslint/type-utils": "8.36.0", - "@typescript-eslint/utils": "8.36.0", - "@typescript-eslint/visitor-keys": "8.36.0", + "@typescript-eslint/scope-manager": "8.37.0", + "@typescript-eslint/type-utils": "8.37.0", + "@typescript-eslint/utils": "8.37.0", + "@typescript-eslint/visitor-keys": "8.37.0", "graphemer": "^1.4.0", "ignore": "^7.0.0", "natural-compare": "^1.4.0", @@ -1794,7 +1794,7 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.36.0", + "@typescript-eslint/parser": "^8.37.0", "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <5.9.0" } @@ -1810,16 +1810,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.36.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.36.0.tgz", - "integrity": "sha512-FuYgkHwZLuPbZjQHzJXrtXreJdFMKl16BFYyRrLxDhWr6Qr7Kbcu2s1Yhu8tsiMXw1S0W1pjfFfYEt+R604s+Q==", + "version": "8.37.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.37.0.tgz", + "integrity": "sha512-kVIaQE9vrN9RLCQMQ3iyRlVJpTiDUY6woHGb30JDkfJErqrQEmtdWH3gV0PBAfGZgQXoqzXOO0T3K6ioApbbAA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.36.0", - "@typescript-eslint/types": "8.36.0", - "@typescript-eslint/typescript-estree": "8.36.0", - "@typescript-eslint/visitor-keys": "8.36.0", + "@typescript-eslint/scope-manager": "8.37.0", + "@typescript-eslint/types": "8.37.0", + "@typescript-eslint/typescript-estree": "8.37.0", + "@typescript-eslint/visitor-keys": "8.37.0", "debug": "^4.3.4" }, "engines": { @@ -1835,14 +1835,14 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.36.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.36.0.tgz", - "integrity": "sha512-JAhQFIABkWccQYeLMrHadu/fhpzmSQ1F1KXkpzqiVxA/iYI6UnRt2trqXHt1sYEcw1mxLnB9rKMsOxXPxowN/g==", + "version": "8.37.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.37.0.tgz", + "integrity": "sha512-BIUXYsbkl5A1aJDdYJCBAo8rCEbAvdquQ8AnLb6z5Lp1u3x5PNgSSx9A/zqYc++Xnr/0DVpls8iQ2cJs/izTXA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.36.0", - "@typescript-eslint/types": "^8.36.0", + "@typescript-eslint/tsconfig-utils": "^8.37.0", + "@typescript-eslint/types": "^8.37.0", "debug": "^4.3.4" }, "engines": { @@ -1857,14 +1857,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.36.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.36.0.tgz", - "integrity": "sha512-wCnapIKnDkN62fYtTGv2+RY8FlnBYA3tNm0fm91kc2BjPhV2vIjwwozJ7LToaLAyb1ca8BxrS7vT+Pvvf7RvqA==", + "version": "8.37.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.37.0.tgz", + "integrity": "sha512-0vGq0yiU1gbjKob2q691ybTg9JX6ShiVXAAfm2jGf3q0hdP6/BruaFjL/ManAR/lj05AvYCH+5bbVo0VtzmjOA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.36.0", - "@typescript-eslint/visitor-keys": "8.36.0" + "@typescript-eslint/types": "8.37.0", + "@typescript-eslint/visitor-keys": "8.37.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1875,9 +1875,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.36.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.36.0.tgz", - "integrity": "sha512-Nhh3TIEgN18mNbdXpd5Q8mSCBnrZQeY9V7Ca3dqYvNDStNIGRmJA6dmrIPMJ0kow3C7gcQbpsG2rPzy1Ks/AnA==", + "version": "8.37.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.37.0.tgz", + "integrity": "sha512-1/YHvAVTimMM9mmlPvTec9NP4bobA1RkDbMydxG8omqwJJLEW/Iy2C4adsAESIXU3WGLXFHSZUU+C9EoFWl4Zg==", "dev": true, "license": "MIT", "engines": { @@ -1892,14 +1892,15 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.36.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.36.0.tgz", - "integrity": "sha512-5aaGYG8cVDd6cxfk/ynpYzxBRZJk7w/ymto6uiyUFtdCozQIsQWh7M28/6r57Fwkbweng8qAzoMCPwSJfWlmsg==", + "version": "8.37.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.37.0.tgz", + "integrity": "sha512-SPkXWIkVZxhgwSwVq9rqj/4VFo7MnWwVaRNznfQDc/xPYHjXnPfLWn+4L6FF1cAz6e7dsqBeMawgl7QjUMj4Ow==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.36.0", - "@typescript-eslint/utils": "8.36.0", + "@typescript-eslint/types": "8.37.0", + "@typescript-eslint/typescript-estree": "8.37.0", + "@typescript-eslint/utils": "8.37.0", "debug": "^4.3.4", "ts-api-utils": "^2.1.0" }, @@ -1916,9 +1917,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.36.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.36.0.tgz", - "integrity": "sha512-xGms6l5cTJKQPZOKM75Dl9yBfNdGeLRsIyufewnxT4vZTrjC0ImQT4fj8QmtJK84F58uSh5HVBSANwcfiXxABQ==", + "version": "8.37.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.37.0.tgz", + "integrity": "sha512-ax0nv7PUF9NOVPs+lmQ7yIE7IQmAf8LGcXbMvHX5Gm+YJUYNAl340XkGnrimxZ0elXyoQJuN5sbg6C4evKA4SQ==", "dev": true, "license": "MIT", "engines": { @@ -1930,16 +1931,16 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.36.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.36.0.tgz", - "integrity": "sha512-JaS8bDVrfVJX4av0jLpe4ye0BpAaUW7+tnS4Y4ETa3q7NoZgzYbN9zDQTJ8kPb5fQ4n0hliAt9tA4Pfs2zA2Hg==", + "version": "8.37.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.37.0.tgz", + "integrity": "sha512-zuWDMDuzMRbQOM+bHyU4/slw27bAUEcKSKKs3hcv2aNnc/tvE/h7w60dwVw8vnal2Pub6RT1T7BI8tFZ1fE+yg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.36.0", - "@typescript-eslint/tsconfig-utils": "8.36.0", - "@typescript-eslint/types": "8.36.0", - "@typescript-eslint/visitor-keys": "8.36.0", + "@typescript-eslint/project-service": "8.37.0", + "@typescript-eslint/tsconfig-utils": "8.37.0", + "@typescript-eslint/types": "8.37.0", + "@typescript-eslint/visitor-keys": "8.37.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -1985,16 +1986,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.36.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.36.0.tgz", - "integrity": "sha512-VOqmHu42aEMT+P2qYjylw6zP/3E/HvptRwdn/PZxyV27KhZg2IOszXod4NcXisWzPAGSS4trE/g4moNj6XmH2g==", + "version": "8.37.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.37.0.tgz", + "integrity": "sha512-TSFvkIW6gGjN2p6zbXo20FzCABbyUAuq6tBvNRGsKdsSQ6a7rnV6ADfZ7f4iI3lIiXc4F4WWvtUfDw9CJ9pO5A==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.7.0", - "@typescript-eslint/scope-manager": "8.36.0", - "@typescript-eslint/types": "8.36.0", - "@typescript-eslint/typescript-estree": "8.36.0" + "@typescript-eslint/scope-manager": "8.37.0", + "@typescript-eslint/types": "8.37.0", + "@typescript-eslint/typescript-estree": "8.37.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2009,13 +2010,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.36.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.36.0.tgz", - "integrity": "sha512-vZrhV2lRPWDuGoxcmrzRZyxAggPL+qp3WzUrlZD+slFueDiYHxeBa34dUXPuC0RmGKzl4lS5kFJYvKCq9cnNDA==", + "version": "8.37.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.37.0.tgz", + "integrity": "sha512-YzfhzcTnZVPiLfP/oeKtDp2evwvHLMe0LOy7oe+hb9KKIumLNohYS9Hgp1ifwpu42YWxhZE8yieggz6JpqO/1w==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.36.0", + "@typescript-eslint/types": "8.37.0", "eslint-visitor-keys": "^4.2.1" }, "engines": { From 64c0fb2449b8eed8f2ac3d1493eec52539c2af04 Mon Sep 17 00:00:00 2001 From: Gyanesh Gouraw <160731216+gyaneshgouraw-okta@users.noreply.github.com> Date: Tue, 22 Jul 2025 12:40:10 +0530 Subject: [PATCH 8/8] Release v2.4.0 (#865) **Added** - Bump @auth0/auth0-spa-js from 2.2.0 to 2.3.0 [\#858](https://github.com/auth0/auth0-react/pull/858) ([dependabot[bot]](https://github.com/apps/dependabot)) **Fixed** - Enhance type safety in Auth0Provider and reducer by introducing generic user type [\#842](https://github.com/auth0/auth0-react/pull/842) ([gyaneshgouraw-okta](https://github.com/gyaneshgouraw-okta)) --- .version | 2 +- CHANGELOG.md | 9 ++++ docs/classes/OAuthError.html | 4 +- docs/classes/User.html | 4 +- docs/functions/Auth0Provider.html | 2 +- docs/functions/useAuth0.html | 2 +- docs/functions/withAuth0.html | 2 +- .../functions/withAuthenticationRequired.html | 2 +- docs/interfaces/Auth0ContextInterface.html | 18 +++---- docs/interfaces/Auth0ProviderOptions.html | 48 +++++++++---------- docs/interfaces/AuthorizationParams.html | 10 ++-- docs/interfaces/GetTokenSilentlyOptions.html | 10 ++-- docs/interfaces/GetTokenWithPopupOptions.html | 6 +-- docs/interfaces/IdToken.html | 4 +- docs/interfaces/LogoutOptions.html | 8 ++-- docs/interfaces/LogoutUrlOptions.html | 6 +-- docs/interfaces/PopupConfigOptions.html | 6 +-- docs/interfaces/PopupLoginOptions.html | 4 +- docs/interfaces/RedirectLoginOptions.html | 10 ++-- docs/interfaces/WithAuth0Props.html | 4 +- .../WithAuthenticationRequiredOptions.html | 12 ++--- docs/types/AppState.html | 4 +- docs/types/CacheLocation.html | 2 +- docs/variables/Auth0Context.html | 2 +- package-lock.json | 4 +- package.json | 2 +- 26 files changed, 99 insertions(+), 88 deletions(-) diff --git a/.version b/.version index a6316f06..fa49670c 100644 --- a/.version +++ b/.version @@ -1 +1 @@ -v2.3.0 \ No newline at end of file +v2.4.0 \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 9b11d7e9..90c5bd11 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Change Log +## [v2.4.0](https://github.com/auth0/auth0-react/tree/v2.4.0) (2025-07-22) +[Full Changelog](https://github.com/auth0/auth0-react/compare/v2.3.0...v2.4.0) + +**Added** +- Bump @auth0/auth0-spa-js from 2.2.0 to 2.3.0 [\#858](https://github.com/auth0/auth0-react/pull/858) ([dependabot[bot]](https://github.com/apps/dependabot)) + +**Fixed** +- Enhance type safety in Auth0Provider and reducer by introducing generic user type [\#842](https://github.com/auth0/auth0-react/pull/842) ([gyaneshgouraw-okta](https://github.com/gyaneshgouraw-okta)) + ## [v2.3.0](https://github.com/auth0/auth0-react/tree/v2.3.0) (2025-01-21) [Full Changelog](https://github.com/auth0/auth0-react/compare/v2.2.4...v2.3.0) diff --git a/docs/classes/OAuthError.html b/docs/classes/OAuthError.html index 205b8476..fe1a0248 100644 --- a/docs/classes/OAuthError.html +++ b/docs/classes/OAuthError.html @@ -1,7 +1,7 @@ OAuthError | @auth0/auth0-react
                                                                          @auth0/auth0-react
                                                                            Preparing search index...

                                                                            Class OAuthError

                                                                            An OAuth2 error will come from the authorization server and will have at least an error property which will be the error code. And possibly an error_description property

                                                                            See: https://openid.net/specs/openid-connect-core-1_0.html#rfc.section.3.1.2.6

                                                                            -

                                                                            Hierarchy

                                                                            • Error
                                                                              • OAuthError
                                                                            Index

                                                                            Constructors

                                                                            Hierarchy

                                                                            • Error
                                                                              • OAuthError
                                                                            Index

                                                                            Constructors

                                                                            • Parameters

                                                                              • error: string
                                                                              • Optionalerror_description: string

                                                                              Returns OAuthError

                                                                            Properties

                                                                            error: string
                                                                            error_description?: string
                                                                            message: string
                                                                            name: string
                                                                            stack?: string
                                                                            prepareStackTrace?: (err: Error, stackTraces: CallSite[]) => any

                                                                            Optional override for formatting stack traces

                                                                            +

                                                                            Constructors

                                                                            • Parameters

                                                                              • error: string
                                                                              • Optionalerror_description: string

                                                                              Returns OAuthError

                                                                            Properties

                                                                            error: string
                                                                            error_description?: string
                                                                            message: string
                                                                            name: string
                                                                            stack?: string
                                                                            prepareStackTrace?: (err: Error, stackTraces: CallSite[]) => any

                                                                            Optional override for formatting stack traces

                                                                            stackTraceLimit: number

                                                                            Methods

                                                                            • Create .stack property on a target object

                                                                              Parameters

                                                                              • targetObject: object
                                                                              • OptionalconstructorOpt: Function

                                                                              Returns void

                                                                            diff --git a/docs/classes/User.html b/docs/classes/User.html index 6365885c..16662013 100644 --- a/docs/classes/User.html +++ b/docs/classes/User.html @@ -1,4 +1,4 @@ -User | @auth0/auth0-react
                                                                            @auth0/auth0-react
                                                                              Preparing search index...

                                                                              Class User

                                                                              Indexable

                                                                              • [key: string]: any
                                                                              Index

                                                                              Constructors

                                                                              constructor +User | @auth0/auth0-react
                                                                              @auth0/auth0-react
                                                                                Preparing search index...

                                                                                Class User

                                                                                Indexable

                                                                                • [key: string]: any
                                                                                Index

                                                                                Constructors

                                                                                Properties

                                                                                Constructors

                                                                                Properties

                                                                                address?: string
                                                                                birthdate?: string
                                                                                email?: string
                                                                                email_verified?: boolean
                                                                                family_name?: string
                                                                                gender?: string
                                                                                given_name?: string
                                                                                locale?: string
                                                                                middle_name?: string
                                                                                name?: string
                                                                                nickname?: string
                                                                                phone_number?: string
                                                                                phone_number_verified?: boolean
                                                                                picture?: string
                                                                                preferred_username?: string
                                                                                profile?: string
                                                                                sub?: string
                                                                                updated_at?: string
                                                                                website?: string
                                                                                zoneinfo?: string
                                                                                +

                                                                                Constructors

                                                                                Properties

                                                                                address?: string
                                                                                birthdate?: string
                                                                                email?: string
                                                                                email_verified?: boolean
                                                                                family_name?: string
                                                                                gender?: string
                                                                                given_name?: string
                                                                                locale?: string
                                                                                middle_name?: string
                                                                                name?: string
                                                                                nickname?: string
                                                                                phone_number?: string
                                                                                phone_number_verified?: boolean
                                                                                picture?: string
                                                                                preferred_username?: string
                                                                                profile?: string
                                                                                sub?: string
                                                                                updated_at?: string
                                                                                website?: string
                                                                                zoneinfo?: string
                                                                                diff --git a/docs/functions/Auth0Provider.html b/docs/functions/Auth0Provider.html index 93ba6587..5a8a8a51 100644 --- a/docs/functions/Auth0Provider.html +++ b/docs/functions/Auth0Provider.html @@ -2,4 +2,4 @@

                                                                                Provides the Auth0Context to its child components.

                                                                                -

                                                                                Type Parameters

                                                                                Parameters

                                                                                Returns Element

                                                                                +

                                                                                Type Parameters

                                                                                Parameters

                                                                                Returns Element

                                                                                diff --git a/docs/functions/useAuth0.html b/docs/functions/useAuth0.html index 1c763cec..aab84b23 100644 --- a/docs/functions/useAuth0.html +++ b/docs/functions/useAuth0.html @@ -3,4 +3,4 @@

                                                                                Use the useAuth0 hook in your components to access the auth state and methods.

                                                                                TUser is an optional type param to provide a type to the user field.

                                                                                -

                                                                                Type Parameters

                                                                                Parameters

                                                                                Returns Auth0ContextInterface<TUser>

                                                                                +

                                                                                Type Parameters

                                                                                Parameters

                                                                                Returns Auth0ContextInterface<TUser>

                                                                                diff --git a/docs/functions/withAuth0.html b/docs/functions/withAuth0.html index 5da1eebf..9a94a284 100644 --- a/docs/functions/withAuth0.html +++ b/docs/functions/withAuth0.html @@ -4,4 +4,4 @@

                                                                                Wrap your class components in this Higher Order Component to give them access to the Auth0Context.

                                                                                Providing a context as the second argument allows you to configure the Auth0Provider the Auth0Context should come from f you have multiple within your application.

                                                                                -

                                                                                Type Parameters

                                                                                Parameters

                                                                                Returns ComponentType<Omit<P, "auth0">>

                                                                                +

                                                                                Type Parameters

                                                                                Parameters

                                                                                Returns ComponentType<Omit<P, "auth0">>

                                                                                diff --git a/docs/functions/withAuthenticationRequired.html b/docs/functions/withAuthenticationRequired.html index 8e7c4ddf..87ffb39f 100644 --- a/docs/functions/withAuthenticationRequired.html +++ b/docs/functions/withAuthenticationRequired.html @@ -3,4 +3,4 @@

                                                                                When you wrap your components in this Higher Order Component and an anonymous user visits your component they will be redirected to the login page; after login they will be returned to the page they were redirected from.

                                                                                -

                                                                                Type Parameters

                                                                                • P extends object

                                                                                Parameters

                                                                                Returns FC<P>

                                                                                +

                                                                                Type Parameters

                                                                                • P extends object

                                                                                Parameters

                                                                                Returns FC<P>

                                                                                diff --git a/docs/interfaces/Auth0ContextInterface.html b/docs/interfaces/Auth0ContextInterface.html index f7aab4cf..8e81cbba 100644 --- a/docs/interfaces/Auth0ContextInterface.html +++ b/docs/interfaces/Auth0ContextInterface.html @@ -1,5 +1,5 @@ Auth0ContextInterface | @auth0/auth0-react
                                                                                @auth0/auth0-react
                                                                                  Preparing search index...

                                                                                  Interface Auth0ContextInterface<TUser>

                                                                                  Contains the authenticated state and authentication methods provided by the useAuth0 hook.

                                                                                  -
                                                                                  interface Auth0ContextInterface<TUser extends User = User> {
                                                                                      error: undefined | Error;
                                                                                      getAccessTokenSilently: {
                                                                                          (
                                                                                              options: GetTokenSilentlyOptions & { detailedResponse: true },
                                                                                          ): Promise<GetTokenSilentlyVerboseResponse>;
                                                                                          (options?: GetTokenSilentlyOptions): Promise<string>;
                                                                                          (
                                                                                              options: GetTokenSilentlyOptions,
                                                                                          ): Promise<string | GetTokenSilentlyVerboseResponse>;
                                                                                      };
                                                                                      getAccessTokenWithPopup: (
                                                                                          options?: GetTokenWithPopupOptions,
                                                                                          config?: PopupConfigOptions,
                                                                                      ) => Promise<undefined | string>;
                                                                                      getIdTokenClaims: () => Promise<undefined | IdToken>;
                                                                                      handleRedirectCallback: (url?: string) => Promise<RedirectLoginResult<any>>;
                                                                                      isAuthenticated: boolean;
                                                                                      isLoading: boolean;
                                                                                      loginWithPopup: (
                                                                                          options?: PopupLoginOptions,
                                                                                          config?: PopupConfigOptions,
                                                                                      ) => Promise<void>;
                                                                                      loginWithRedirect: (
                                                                                          options?: RedirectLoginOptions<AppState>,
                                                                                      ) => Promise<void>;
                                                                                      logout: (options?: LogoutOptions) => Promise<void>;
                                                                                      user: undefined | TUser;
                                                                                  }

                                                                                  Type Parameters

                                                                                  Hierarchy

                                                                                  • AuthState<TUser>
                                                                                    • Auth0ContextInterface
                                                                                  Index

                                                                                  Properties

                                                                                  interface Auth0ContextInterface<TUser extends User = User> {
                                                                                      error: undefined | Error;
                                                                                      getAccessTokenSilently: {
                                                                                          (
                                                                                              options: GetTokenSilentlyOptions & { detailedResponse: true },
                                                                                          ): Promise<GetTokenSilentlyVerboseResponse>;
                                                                                          (options?: GetTokenSilentlyOptions): Promise<string>;
                                                                                          (
                                                                                              options: GetTokenSilentlyOptions,
                                                                                          ): Promise<string | GetTokenSilentlyVerboseResponse>;
                                                                                      };
                                                                                      getAccessTokenWithPopup: (
                                                                                          options?: GetTokenWithPopupOptions,
                                                                                          config?: PopupConfigOptions,
                                                                                      ) => Promise<undefined | string>;
                                                                                      getIdTokenClaims: () => Promise<undefined | IdToken>;
                                                                                      handleRedirectCallback: (url?: string) => Promise<RedirectLoginResult<any>>;
                                                                                      isAuthenticated: boolean;
                                                                                      isLoading: boolean;
                                                                                      loginWithPopup: (
                                                                                          options?: PopupLoginOptions,
                                                                                          config?: PopupConfigOptions,
                                                                                      ) => Promise<void>;
                                                                                      loginWithRedirect: (
                                                                                          options?: RedirectLoginOptions<AppState>,
                                                                                      ) => Promise<void>;
                                                                                      logout: (options?: LogoutOptions) => Promise<void>;
                                                                                      user: undefined | TUser;
                                                                                  }

                                                                                  Type Parameters

                                                                                  Hierarchy

                                                                                  • AuthState<TUser>
                                                                                    • Auth0ContextInterface
                                                                                  Index

                                                                                  Properties

                                                                                  error: undefined | Error
                                                                                  getAccessTokenSilently: {
                                                                                      (
                                                                                          options: GetTokenSilentlyOptions & { detailedResponse: true },
                                                                                      ): Promise<GetTokenSilentlyVerboseResponse>;
                                                                                      (options?: GetTokenSilentlyOptions): Promise<string>;
                                                                                      (
                                                                                          options: GetTokenSilentlyOptions,
                                                                                      ): Promise<string | GetTokenSilentlyVerboseResponse>;
                                                                                  }
                                                                                  const token = await getAccessTokenSilently(options);
                                                                                  +

                                                                                  Properties

                                                                                  error: undefined | Error
                                                                                  getAccessTokenSilently: {
                                                                                      (
                                                                                          options: GetTokenSilentlyOptions & { detailedResponse: true },
                                                                                      ): Promise<GetTokenSilentlyVerboseResponse>;
                                                                                      (options?: GetTokenSilentlyOptions): Promise<string>;
                                                                                      (
                                                                                          options: GetTokenSilentlyOptions,
                                                                                      ): Promise<string | GetTokenSilentlyVerboseResponse>;
                                                                                  }
                                                                                  const token = await getAccessTokenSilently(options);
                                                                                   

                                                                                  If there's a valid token stored, return it. Otherwise, opens an @@ -29,7 +29,7 @@ back to using an iframe to make the token exchange.

                                                                                  Note that in all cases, falling back to an iframe requires access to the auth0 cookie.

                                                                                  -
                                                                                  getAccessTokenWithPopup: (
                                                                                      options?: GetTokenWithPopupOptions,
                                                                                      config?: PopupConfigOptions,
                                                                                  ) => Promise<undefined | string>
                                                                                  const token = await getTokenWithPopup(options, config);
                                                                                  +
                                                                                  getAccessTokenWithPopup: (
                                                                                      options?: GetTokenWithPopupOptions,
                                                                                      config?: PopupConfigOptions,
                                                                                  ) => Promise<undefined | string>
                                                                                  const token = await getTokenWithPopup(options, config);
                                                                                   

                                                                                  Get an access token interactively.

                                                                                  @@ -37,16 +37,16 @@ provided as arguments. Random and secure state and nonce parameters will be auto-generated. If the response is successful, results will be valid according to their expiration times.

                                                                                  -
                                                                                  getIdTokenClaims: () => Promise<undefined | IdToken>
                                                                                  const claims = await getIdTokenClaims();
                                                                                  +
                                                                                  getIdTokenClaims: () => Promise<undefined | IdToken>
                                                                                  const claims = await getIdTokenClaims();
                                                                                   

                                                                                  Returns all claims from the id_token if available.

                                                                                  -
                                                                                  handleRedirectCallback: (url?: string) => Promise<RedirectLoginResult<any>>

                                                                                  After the browser redirects back to the callback page, +

                                                                                  handleRedirectCallback: (url?: string) => Promise<RedirectLoginResult<any>>

                                                                                  After the browser redirects back to the callback page, call handleRedirectCallback to handle success and error responses from Auth0. If the response is successful, results will be valid according to their expiration times.

                                                                                  Type declaration

                                                                                    • (url?: string): Promise<RedirectLoginResult<any>>
                                                                                    • Parameters

                                                                                      • Optionalurl: string

                                                                                        The URL to that should be used to retrieve the state and code values. Defaults to window.location.href if not given.

                                                                                        -

                                                                                      Returns Promise<RedirectLoginResult<any>>

                                                                                  isAuthenticated: boolean
                                                                                  isLoading: boolean
                                                                                  loginWithPopup: (
                                                                                      options?: PopupLoginOptions,
                                                                                      config?: PopupConfigOptions,
                                                                                  ) => Promise<void>
                                                                                  await loginWithPopup(options, config);
                                                                                  +

                                                                                  Returns Promise<RedirectLoginResult<any>>

                                                                                  isAuthenticated: boolean
                                                                                  isLoading: boolean
                                                                                  loginWithPopup: (
                                                                                      options?: PopupLoginOptions,
                                                                                      config?: PopupConfigOptions,
                                                                                  ) => Promise<void>
                                                                                  await loginWithPopup(options, config);
                                                                                   

                                                                                  Opens a popup with the /authorize URL using the parameters @@ -56,17 +56,17 @@

                                                                                  IMPORTANT: This method has to be called from an event handler that was started by the user like a button click, for example, otherwise the popup will be blocked in most browsers.

                                                                                  -
                                                                                  loginWithRedirect: (options?: RedirectLoginOptions<AppState>) => Promise<void>
                                                                                  await loginWithRedirect(options);
                                                                                  +
                                                                                  loginWithRedirect: (options?: RedirectLoginOptions<AppState>) => Promise<void>
                                                                                  await loginWithRedirect(options);
                                                                                   

                                                                                  Performs a redirect to /authorize using the parameters provided as arguments. Random and secure state and nonce parameters will be auto-generated.

                                                                                  -
                                                                                  logout: (options?: LogoutOptions) => Promise<void>
                                                                                  auth0.logout({ logoutParams: { returnTo: window.location.origin } });
                                                                                  +
                                                                                  logout: (options?: LogoutOptions) => Promise<void>
                                                                                  auth0.logout({ logoutParams: { returnTo: window.location.origin } });
                                                                                   

                                                                                  Clears the application session and performs a redirect to /v2/logout, using the parameters provided as arguments, to clear the Auth0 session. If the logoutParams.federated option is specified, it also clears the Identity Provider session. Read more about how Logout works at Auth0.

                                                                                  -
                                                                                  user: undefined | TUser
                                                                                  +
                                                                                  user: undefined | TUser
                                                                                  diff --git a/docs/interfaces/Auth0ProviderOptions.html b/docs/interfaces/Auth0ProviderOptions.html index 69a44925..b20023ce 100644 --- a/docs/interfaces/Auth0ProviderOptions.html +++ b/docs/interfaces/Auth0ProviderOptions.html @@ -1,5 +1,5 @@ Auth0ProviderOptions | @auth0/auth0-react
                                                                                  @auth0/auth0-react
                                                                                    Preparing search index...

                                                                                    Interface Auth0ProviderOptions<TUser>

                                                                                    The main configuration to instantiate the Auth0Provider.

                                                                                    -
                                                                                    interface Auth0ProviderOptions<TUser extends User = User> {
                                                                                        auth0Client?: {
                                                                                            env?: { [key: string]: string };
                                                                                            name: string;
                                                                                            version: string;
                                                                                        };
                                                                                        authorizationParams?: AuthorizationParams;
                                                                                        authorizeTimeoutInSeconds?: number;
                                                                                        cache?: ICache;
                                                                                        cacheLocation?: CacheLocation;
                                                                                        children?: ReactNode;
                                                                                        clientId: string;
                                                                                        context?: Context<Auth0ContextInterface<TUser>>;
                                                                                        cookieDomain?: string;
                                                                                        domain: string;
                                                                                        httpTimeoutInSeconds?: number;
                                                                                        issuer?: string;
                                                                                        leeway?: number;
                                                                                        legacySameSiteCookie?: boolean;
                                                                                        nowProvider?: () => number | Promise<number>;
                                                                                        onRedirectCallback?: (appState?: AppState, user?: TUser) => void;
                                                                                        sessionCheckExpiryDays?: number;
                                                                                        skipRedirectCallback?: boolean;
                                                                                        useCookiesForTransactions?: boolean;
                                                                                        useFormData?: boolean;
                                                                                        useRefreshTokens?: boolean;
                                                                                        useRefreshTokensFallback?: boolean;
                                                                                        workerUrl?: string;
                                                                                    }

                                                                                    Type Parameters

                                                                                    Hierarchy

                                                                                    • Auth0ClientOptions
                                                                                      • Auth0ProviderOptions
                                                                                    Index

                                                                                    Properties

                                                                                    interface Auth0ProviderOptions<TUser extends User = User> {
                                                                                        auth0Client?: {
                                                                                            env?: { [key: string]: string };
                                                                                            name: string;
                                                                                            version: string;
                                                                                        };
                                                                                        authorizationParams?: AuthorizationParams;
                                                                                        authorizeTimeoutInSeconds?: number;
                                                                                        cache?: ICache;
                                                                                        cacheLocation?: CacheLocation;
                                                                                        children?: ReactNode;
                                                                                        clientId: string;
                                                                                        context?: Context<Auth0ContextInterface<TUser>>;
                                                                                        cookieDomain?: string;
                                                                                        domain: string;
                                                                                        httpTimeoutInSeconds?: number;
                                                                                        issuer?: string;
                                                                                        leeway?: number;
                                                                                        legacySameSiteCookie?: boolean;
                                                                                        nowProvider?: () => number | Promise<number>;
                                                                                        onRedirectCallback?: (appState?: AppState, user?: TUser) => void;
                                                                                        sessionCheckExpiryDays?: number;
                                                                                        skipRedirectCallback?: boolean;
                                                                                        useCookiesForTransactions?: boolean;
                                                                                        useFormData?: boolean;
                                                                                        useRefreshTokens?: boolean;
                                                                                        useRefreshTokensFallback?: boolean;
                                                                                        workerUrl?: string;
                                                                                    }

                                                                                    Type Parameters

                                                                                    Hierarchy

                                                                                    • Auth0ClientOptions
                                                                                      • Auth0ProviderOptions
                                                                                    Index

                                                                                    Properties

                                                                                    auth0Client?: { env?: { [key: string]: string }; name: string; version: string }

                                                                                    Internal property to send information about the client to the authorization server.

                                                                                    -
                                                                                    authorizationParams?: AuthorizationParams

                                                                                    URL parameters that will be sent back to the Authorization Server. This can be known parameters +

                                                                                    authorizationParams?: AuthorizationParams

                                                                                    URL parameters that will be sent back to the Authorization Server. This can be known parameters defined by Auth0 or custom parameters that you define.

                                                                                    -
                                                                                    authorizeTimeoutInSeconds?: number

                                                                                    A maximum number of seconds to wait before declaring background calls to /authorize as failed for timeout +

                                                                                    authorizeTimeoutInSeconds?: number

                                                                                    A maximum number of seconds to wait before declaring background calls to /authorize as failed for timeout Defaults to 60s.

                                                                                    -
                                                                                    cache?: ICache

                                                                                    Specify a custom cache implementation to use for token storage and retrieval. This setting takes precedence over cacheLocation if they are both specified.

                                                                                    -
                                                                                    cacheLocation?: CacheLocation

                                                                                    The location to use when storing cache data. Valid values are memory or localstorage. +

                                                                                    cache?: ICache

                                                                                    Specify a custom cache implementation to use for token storage and retrieval. This setting takes precedence over cacheLocation if they are both specified.

                                                                                    +
                                                                                    cacheLocation?: CacheLocation

                                                                                    The location to use when storing cache data. Valid values are memory or localstorage. The default setting is memory.

                                                                                    Read more about changing storage options in the Auth0 docs

                                                                                    -
                                                                                    children?: ReactNode

                                                                                    The child nodes your Provider has wrapped

                                                                                    -
                                                                                    clientId: string

                                                                                    The Client ID found on your Application settings page

                                                                                    -
                                                                                    context?: Context<Auth0ContextInterface<TUser>>

                                                                                    Context to be used when creating the Auth0Provider, defaults to the internally created context.

                                                                                    +
                                                                                    children?: ReactNode

                                                                                    The child nodes your Provider has wrapped

                                                                                    +
                                                                                    clientId: string

                                                                                    The Client ID found on your Application settings page

                                                                                    +
                                                                                    context?: Context<Auth0ContextInterface<TUser>>

                                                                                    Context to be used when creating the Auth0Provider, defaults to the internally created context.

                                                                                    This allows multiple Auth0Providers to be nested within the same application, the context value can then be passed to useAuth0, withAuth0, or withAuthenticationRequired to use that specific Auth0Provider to access auth state and methods specifically tied to the provider that the context belongs to.

                                                                                    @@ -46,51 +46,51 @@ used to store data is different

                                                                                    For a sample on using multiple Auth0Providers review the React Account Linking Sample

                                                                                    -
                                                                                    cookieDomain?: string

                                                                                    The domain the cookie is accessible from. If not set, the cookie is scoped to +

                                                                                    cookieDomain?: string

                                                                                    The domain the cookie is accessible from. If not set, the cookie is scoped to the current domain, including the subdomain.

                                                                                    Note: setting this incorrectly may cause silent authentication to stop working on page load.

                                                                                    To keep a user logged in across multiple subdomains set this to your top-level domain and prefixed with a . (eg: .example.com).

                                                                                    -
                                                                                    domain: string

                                                                                    Your Auth0 account domain such as 'example.auth0.com', +

                                                                                    domain: string

                                                                                    Your Auth0 account domain such as 'example.auth0.com', 'example.eu.auth0.com' or , 'example.mycompany.com' (when using custom domains)

                                                                                    -
                                                                                    httpTimeoutInSeconds?: number

                                                                                    Specify the timeout for HTTP calls using fetch. The default is 10 seconds.

                                                                                    -
                                                                                    issuer?: string

                                                                                    The issuer to be used for validation of JWTs, optionally defaults to the domain above

                                                                                    -
                                                                                    leeway?: number

                                                                                    The value in seconds used to account for clock skew in JWT expirations. +

                                                                                    httpTimeoutInSeconds?: number

                                                                                    Specify the timeout for HTTP calls using fetch. The default is 10 seconds.

                                                                                    +
                                                                                    issuer?: string

                                                                                    The issuer to be used for validation of JWTs, optionally defaults to the domain above

                                                                                    +
                                                                                    leeway?: number

                                                                                    The value in seconds used to account for clock skew in JWT expirations. Typically, this value is no more than a minute or two at maximum. Defaults to 60s.

                                                                                    -
                                                                                    legacySameSiteCookie?: boolean

                                                                                    Sets an additional cookie with no SameSite attribute to support legacy browsers +

                                                                                    legacySameSiteCookie?: boolean

                                                                                    Sets an additional cookie with no SameSite attribute to support legacy browsers that are not compatible with the latest SameSite changes. This will log a warning on modern browsers, you can disable the warning by setting this to false but be aware that some older useragents will not work, See https://www.chromium.org/updates/same-site/incompatible-clients Defaults to true

                                                                                    -
                                                                                    nowProvider?: () => number | Promise<number>

                                                                                    Modify the value used as the current time during the token validation.

                                                                                    +
                                                                                    nowProvider?: () => number | Promise<number>

                                                                                    Modify the value used as the current time during the token validation.

                                                                                    Note: Using this improperly can potentially compromise the token validation.

                                                                                    -
                                                                                    onRedirectCallback?: (appState?: AppState, user?: TUser) => void

                                                                                    By default this removes the code and state parameters from the url when you are redirected from the authorize page. +

                                                                                    onRedirectCallback?: (appState?: AppState, user?: TUser) => void

                                                                                    By default this removes the code and state parameters from the url when you are redirected from the authorize page. It uses window.history but you might want to overwrite this if you are using a custom router, like react-router-dom See the EXAMPLES.md for more info.

                                                                                    -
                                                                                    sessionCheckExpiryDays?: number

                                                                                    Number of days until the cookie auth0.is.authenticated will expire +

                                                                                    sessionCheckExpiryDays?: number

                                                                                    Number of days until the cookie auth0.is.authenticated will expire Defaults to 1.

                                                                                    -
                                                                                    skipRedirectCallback?: boolean

                                                                                    By default, if the page url has code/state params, the SDK will treat them as Auth0's and attempt to exchange the +

                                                                                    skipRedirectCallback?: boolean

                                                                                    By default, if the page url has code/state params, the SDK will treat them as Auth0's and attempt to exchange the code for a token. In some cases the code might be for something else (another OAuth SDK perhaps). In these instances you can instruct the client to ignore them eg

                                                                                    <Auth0Provider
                                                                                    clientId={clientId}
                                                                                    domain={domain}
                                                                                    skipRedirectCallback={window.location.pathname === '/stripe-oauth-callback'}
                                                                                    >
                                                                                    -
                                                                                    useCookiesForTransactions?: boolean

                                                                                    If true, the SDK will use a cookie when storing information about the auth transaction while +

                                                                                    useCookiesForTransactions?: boolean

                                                                                    If true, the SDK will use a cookie when storing information about the auth transaction while the user is going through the authentication flow on the authorization server.

                                                                                    The default is false, in which case the SDK will use session storage.

                                                                                    You might want to enable this if you rely on your users being able to authenticate using flows that may end up spanning across multiple tabs (e.g. magic links) or you cannot otherwise rely on session storage being available.

                                                                                    -
                                                                                    useFormData?: boolean

                                                                                    If true, data to the token endpoint is transmitted as x-www-form-urlencoded data, if false it will be transmitted as JSON. The default setting is true.

                                                                                    +
                                                                                    useFormData?: boolean

                                                                                    If true, data to the token endpoint is transmitted as x-www-form-urlencoded data, if false it will be transmitted as JSON. The default setting is true.

                                                                                    Note: Setting this to false may affect you if you use Auth0 Rules and are sending custom, non-primitive data. If you disable this, please verify that your Auth0 Rules continue to work as intended.

                                                                                    -
                                                                                    useRefreshTokens?: boolean

                                                                                    If true, refresh tokens are used to fetch new access tokens from the Auth0 server. If false, the legacy technique of using a hidden iframe and the authorization_code grant with prompt=none is used. +

                                                                                    useRefreshTokens?: boolean

                                                                                    If true, refresh tokens are used to fetch new access tokens from the Auth0 server. If false, the legacy technique of using a hidden iframe and the authorization_code grant with prompt=none is used. The default setting is false.

                                                                                    Note: Use of refresh tokens must be enabled by an administrator on your Auth0 client application.

                                                                                    -
                                                                                    useRefreshTokensFallback?: boolean

                                                                                    If true, fallback to the technique of using a hidden iframe and the authorization_code grant with prompt=none when unable to use refresh tokens. If false, the iframe fallback is not used and +

                                                                                    useRefreshTokensFallback?: boolean

                                                                                    If true, fallback to the technique of using a hidden iframe and the authorization_code grant with prompt=none when unable to use refresh tokens. If false, the iframe fallback is not used and errors relating to a failed refresh_token grant should be handled appropriately. The default setting is false.

                                                                                    Note: There might be situations where doing silent auth with a Web Message response from an iframe is not possible, like when you're serving your application from the file system or a custom protocol (like in a Desktop or Native app). @@ -99,9 +99,9 @@

                                                                                    let token: string;
                                                                                    try {
                                                                                    token = await auth0.getTokenSilently();
                                                                                    } catch (e) {
                                                                                    if (e.error === 'missing_refresh_token' || e.error === 'invalid_grant') {
                                                                                    auth0.loginWithRedirect();
                                                                                    }
                                                                                    }
                                                                                    -
                                                                                    workerUrl?: string

                                                                                    If provided, the SDK will load the token worker from this URL instead of the integrated blob. An example of when this is useful is if you have strict +

                                                                                    workerUrl?: string

                                                                                    If provided, the SDK will load the token worker from this URL instead of the integrated blob. An example of when this is useful is if you have strict Content-Security-Policy (CSP) and wish to avoid needing to set worker-src: blob:. We recommend either serving the worker, which you can find in the module at <module_path>/dist/auth0-spa-js.worker.production.js, from the same host as your application or using the Auth0 CDN https://cdn.auth0.com/js/auth0-spa-js/<version>/auth0-spa-js.worker.production.js.

                                                                                    Note: The worker is only used when useRefreshTokens: true, cacheLocation: 'memory', and the cache is not custom.

                                                                                    -
                                                                                    +
                                                                                    diff --git a/docs/interfaces/AuthorizationParams.html b/docs/interfaces/AuthorizationParams.html index d352f201..a40c5611 100644 --- a/docs/interfaces/AuthorizationParams.html +++ b/docs/interfaces/AuthorizationParams.html @@ -26,7 +26,7 @@
                                                                                    id_token_hint?: string

                                                                                    Previously issued ID Token.

                                                                                    invitation?: string

                                                                                    The Id of an invitation to accept. This is available from the user invitation URL that is given when participating in a user invitation flow.

                                                                                    -
                                                                                    login_hint?: string

                                                                                    The user's email address or other identifier. When your app knows +

                                                                                    login_hint?: string

                                                                                    The user's email address or other identifier. When your app knows which user is trying to authenticate, you can provide this parameter to pre-fill the email box or select the right session for sign-in.

                                                                                    This currently only affects the classic Lock experience.

                                                                                    @@ -37,9 +37,11 @@

                                                                                    This will specify an organization parameter in your user's login request.

                                                                                    • If you provide an Organization ID (a string with the prefix org_), it will be validated against the org_id claim of your user's ID Token. The validation is case-sensitive.
                                                                                    • -
                                                                                    • If you provide an Organization Name (a string without the prefix org_), it will be validated against the org_name claim of your user's ID Token. The validation is case-insensitive.
                                                                                    • +
                                                                                    • If you provide an Organization Name (a string without the prefix org_), it will be validated against the org_name claim of your user's ID Token. The validation is case-insensitive. +To use an Organization Name you must have "Allow Organization Names in Authentication API" switched on in your Auth0 settings dashboard. +More information is available on the Auth0 documentation portal
                                                                                    -
                                                                                    prompt?: "none" | "login" | "consent" | "select_account"
                                                                                      +
                                                                                    prompt?: "none" | "login" | "consent" | "select_account"
                                                                                    • 'none': do not prompt user for login or consent on reauthentication
                                                                                    • 'login': prompt user for reauthentication
                                                                                    • 'consent': prompt user for consent before processing request
                                                                                    • @@ -50,7 +52,7 @@ the "Allowed Callback URLs" field in your Auth0 Application's settings. If not provided here, it should be provided in the other methods that provide authentication.

                                                                                      -
                                                                                    scope?: string

                                                                                    The default scope to be used on authentication requests.

                                                                                    +
                                                                                    scope?: string

                                                                                    The default scope to be used on authentication requests.

                                                                                    This defaults to profile email if not set. If you are setting extra scopes and require profile and email to be included then you must include them in the provided scope.

                                                                                    Note: The openid scope is always applied regardless of this setting.

                                                                                    diff --git a/docs/interfaces/GetTokenSilentlyOptions.html b/docs/interfaces/GetTokenSilentlyOptions.html index 7679758d..ace8ec54 100644 --- a/docs/interfaces/GetTokenSilentlyOptions.html +++ b/docs/interfaces/GetTokenSilentlyOptions.html @@ -1,4 +1,4 @@ -GetTokenSilentlyOptions | @auth0/auth0-react
                                                                                    @auth0/auth0-react
                                                                                      Preparing search index...

                                                                                      Interface GetTokenSilentlyOptions

                                                                                      interface GetTokenSilentlyOptions {
                                                                                          authorizationParams?: {
                                                                                              audience?: string;
                                                                                              redirect_uri?: string;
                                                                                              scope?: string;
                                                                                              [key: string]: any;
                                                                                          };
                                                                                          cacheMode?: "on"
                                                                                          | "off"
                                                                                          | "cache-only";
                                                                                          detailedResponse?: boolean;
                                                                                          timeoutInSeconds?: number;
                                                                                      }
                                                                                      Index

                                                                                      Properties

                                                                                      authorizationParams? +GetTokenSilentlyOptions | @auth0/auth0-react
                                                                                      @auth0/auth0-react
                                                                                        Preparing search index...

                                                                                        Interface GetTokenSilentlyOptions

                                                                                        interface GetTokenSilentlyOptions {
                                                                                            authorizationParams?: {
                                                                                                audience?: string;
                                                                                                redirect_uri?: string;
                                                                                                scope?: string;
                                                                                                [key: string]: any;
                                                                                            };
                                                                                            cacheMode?: "on"
                                                                                            | "off"
                                                                                            | "cache-only";
                                                                                            detailedResponse?: boolean;
                                                                                            timeoutInSeconds?: number;
                                                                                        }
                                                                                        Index

                                                                                        Properties

                                                                                        authorizationParams? cacheMode? detailedResponse? timeoutInSeconds? @@ -13,13 +13,13 @@ It must be whitelisted in the "Allowed Web Origins" in your Auth0 Application's settings.

                                                                                      • Optionalscope?: string

                                                                                        The scope that was used in the authentication request

                                                                                        -
                                                                                      • cacheMode?: "on" | "off" | "cache-only"

                                                                                        When off, ignores the cache and always sends a +

                                                                                        cacheMode?: "on" | "off" | "cache-only"

                                                                                        When off, ignores the cache and always sends a request to Auth0. When cache-only, only reads from the cache and never sends a request to Auth0. Defaults to on, where it both reads from the cache and sends a request to Auth0 as needed.

                                                                                        -
                                                                                        detailedResponse?: boolean

                                                                                        If true, the full response from the /oauth/token endpoint (or the cache, if the cache was used) is returned +

                                                                                        detailedResponse?: boolean

                                                                                        If true, the full response from the /oauth/token endpoint (or the cache, if the cache was used) is returned (minus refresh_token if one was issued). Otherwise, just the access token is returned.

                                                                                        The default is false.

                                                                                        -
                                                                                        timeoutInSeconds?: number

                                                                                        A maximum number of seconds to wait before declaring the background /authorize call as failed for timeout +

                                                                                        timeoutInSeconds?: number

                                                                                        A maximum number of seconds to wait before declaring the background /authorize call as failed for timeout Defaults to 60s.

                                                                                        -
                                                                                        +
                                                                                        diff --git a/docs/interfaces/GetTokenWithPopupOptions.html b/docs/interfaces/GetTokenWithPopupOptions.html index ee46a68d..5b79dc30 100644 --- a/docs/interfaces/GetTokenWithPopupOptions.html +++ b/docs/interfaces/GetTokenWithPopupOptions.html @@ -1,8 +1,8 @@ -GetTokenWithPopupOptions | @auth0/auth0-react
                                                                                        @auth0/auth0-react
                                                                                          Preparing search index...

                                                                                          Interface GetTokenWithPopupOptions

                                                                                          interface GetTokenWithPopupOptions {
                                                                                              authorizationParams?: AuthorizationParams;
                                                                                              cacheMode?: "on" | "off" | "cache-only";
                                                                                          }

                                                                                          Hierarchy (View Summary)

                                                                                          Index

                                                                                          Properties

                                                                                          authorizationParams? +GetTokenWithPopupOptions | @auth0/auth0-react
                                                                                          @auth0/auth0-react
                                                                                            Preparing search index...

                                                                                            Interface GetTokenWithPopupOptions

                                                                                            interface GetTokenWithPopupOptions {
                                                                                                authorizationParams?: AuthorizationParams;
                                                                                                cacheMode?: "on" | "off" | "cache-only";
                                                                                            }

                                                                                            Hierarchy (View Summary)

                                                                                            Index

                                                                                            Properties

                                                                                            authorizationParams?: AuthorizationParams

                                                                                            URL parameters that will be sent back to the Authorization Server. This can be known parameters defined by Auth0 or custom parameters that you define.

                                                                                            -
                                                                                            cacheMode?: "on" | "off" | "cache-only"

                                                                                            When off, ignores the cache and always sends a request to Auth0. +

                                                                                            cacheMode?: "on" | "off" | "cache-only"

                                                                                            When off, ignores the cache and always sends a request to Auth0. When cache-only, only reads from the cache and never sends a request to Auth0. Defaults to on, where it both reads from the cache and sends a request to Auth0 as needed.

                                                                                            -
                                                                                            +
                                                                                            diff --git a/docs/interfaces/IdToken.html b/docs/interfaces/IdToken.html index 80d25c4e..13b8f880 100644 --- a/docs/interfaces/IdToken.html +++ b/docs/interfaces/IdToken.html @@ -1,4 +1,4 @@ -IdToken | @auth0/auth0-react
                                                                                            @auth0/auth0-react
                                                                                              Preparing search index...

                                                                                              Interface IdToken

                                                                                              interface IdToken {
                                                                                                  __raw: string;
                                                                                                  acr?: string;
                                                                                                  address?: string;
                                                                                                  amr?: string[];
                                                                                                  at_hash?: string;
                                                                                                  aud?: string;
                                                                                                  auth_time?: string;
                                                                                                  azp?: string;
                                                                                                  birthdate?: string;
                                                                                                  c_hash?: string;
                                                                                                  cnf?: string;
                                                                                                  email?: string;
                                                                                                  email_verified?: boolean;
                                                                                                  exp?: number;
                                                                                                  family_name?: string;
                                                                                                  gender?: string;
                                                                                                  given_name?: string;
                                                                                                  iat?: number;
                                                                                                  iss?: string;
                                                                                                  jti?: string;
                                                                                                  locale?: string;
                                                                                                  middle_name?: string;
                                                                                                  name?: string;
                                                                                                  nbf?: number;
                                                                                                  nickname?: string;
                                                                                                  nonce?: string;
                                                                                                  org_id?: string;
                                                                                                  org_name?: string;
                                                                                                  phone_number?: string;
                                                                                                  phone_number_verified?: boolean;
                                                                                                  picture?: string;
                                                                                                  preferred_username?: string;
                                                                                                  profile?: string;
                                                                                                  sid?: string;
                                                                                                  sub_jwk?: string;
                                                                                                  updated_at?: string;
                                                                                                  website?: string;
                                                                                                  zoneinfo?: string;
                                                                                                  [key: string]: any;
                                                                                              }

                                                                                              Indexable

                                                                                              • [key: string]: any
                                                                                              Index

                                                                                              Properties

                                                                                              __raw +IdToken | @auth0/auth0-react
                                                                                              @auth0/auth0-react
                                                                                                Preparing search index...

                                                                                                Interface IdToken

                                                                                                interface IdToken {
                                                                                                    __raw: string;
                                                                                                    acr?: string;
                                                                                                    address?: string;
                                                                                                    amr?: string[];
                                                                                                    at_hash?: string;
                                                                                                    aud?: string;
                                                                                                    auth_time?: string;
                                                                                                    azp?: string;
                                                                                                    birthdate?: string;
                                                                                                    c_hash?: string;
                                                                                                    cnf?: string;
                                                                                                    email?: string;
                                                                                                    email_verified?: boolean;
                                                                                                    exp?: number;
                                                                                                    family_name?: string;
                                                                                                    gender?: string;
                                                                                                    given_name?: string;
                                                                                                    iat?: number;
                                                                                                    iss?: string;
                                                                                                    jti?: string;
                                                                                                    locale?: string;
                                                                                                    middle_name?: string;
                                                                                                    name?: string;
                                                                                                    nbf?: number;
                                                                                                    nickname?: string;
                                                                                                    nonce?: string;
                                                                                                    org_id?: string;
                                                                                                    org_name?: string;
                                                                                                    phone_number?: string;
                                                                                                    phone_number_verified?: boolean;
                                                                                                    picture?: string;
                                                                                                    preferred_username?: string;
                                                                                                    profile?: string;
                                                                                                    sid?: string;
                                                                                                    sub_jwk?: string;
                                                                                                    updated_at?: string;
                                                                                                    website?: string;
                                                                                                    zoneinfo?: string;
                                                                                                    [key: string]: any;
                                                                                                }

                                                                                                Indexable

                                                                                                • [key: string]: any
                                                                                                Index

                                                                                                Properties

                                                                                                Properties

                                                                                                __raw: string
                                                                                                acr?: string
                                                                                                address?: string
                                                                                                amr?: string[]
                                                                                                at_hash?: string
                                                                                                aud?: string
                                                                                                auth_time?: string
                                                                                                azp?: string
                                                                                                birthdate?: string
                                                                                                c_hash?: string
                                                                                                cnf?: string
                                                                                                email?: string
                                                                                                email_verified?: boolean
                                                                                                exp?: number
                                                                                                family_name?: string
                                                                                                gender?: string
                                                                                                given_name?: string
                                                                                                iat?: number
                                                                                                iss?: string
                                                                                                jti?: string
                                                                                                locale?: string
                                                                                                middle_name?: string
                                                                                                name?: string
                                                                                                nbf?: number
                                                                                                nickname?: string
                                                                                                nonce?: string
                                                                                                org_id?: string
                                                                                                org_name?: string
                                                                                                phone_number?: string
                                                                                                phone_number_verified?: boolean
                                                                                                picture?: string
                                                                                                preferred_username?: string
                                                                                                profile?: string
                                                                                                sid?: string
                                                                                                sub_jwk?: string
                                                                                                updated_at?: string
                                                                                                website?: string
                                                                                                zoneinfo?: string
                                                                                                +

                                                                                                Properties

                                                                                                __raw: string
                                                                                                acr?: string
                                                                                                address?: string
                                                                                                amr?: string[]
                                                                                                at_hash?: string
                                                                                                aud?: string
                                                                                                auth_time?: string
                                                                                                azp?: string
                                                                                                birthdate?: string
                                                                                                c_hash?: string
                                                                                                cnf?: string
                                                                                                email?: string
                                                                                                email_verified?: boolean
                                                                                                exp?: number
                                                                                                family_name?: string
                                                                                                gender?: string
                                                                                                given_name?: string
                                                                                                iat?: number
                                                                                                iss?: string
                                                                                                jti?: string
                                                                                                locale?: string
                                                                                                middle_name?: string
                                                                                                name?: string
                                                                                                nbf?: number
                                                                                                nickname?: string
                                                                                                nonce?: string
                                                                                                org_id?: string
                                                                                                org_name?: string
                                                                                                phone_number?: string
                                                                                                phone_number_verified?: boolean
                                                                                                picture?: string
                                                                                                preferred_username?: string
                                                                                                profile?: string
                                                                                                sid?: string
                                                                                                sub_jwk?: string
                                                                                                updated_at?: string
                                                                                                website?: string
                                                                                                zoneinfo?: string
                                                                                                diff --git a/docs/interfaces/LogoutOptions.html b/docs/interfaces/LogoutOptions.html index 1a6c08e4..a05e1792 100644 --- a/docs/interfaces/LogoutOptions.html +++ b/docs/interfaces/LogoutOptions.html @@ -1,11 +1,11 @@ -LogoutOptions | @auth0/auth0-react
                                                                                                @auth0/auth0-react
                                                                                                  Preparing search index...

                                                                                                  Interface LogoutOptions

                                                                                                  interface LogoutOptions {
                                                                                                      clientId?: null | string;
                                                                                                      logoutParams?: {
                                                                                                          federated?: boolean;
                                                                                                          returnTo?: string;
                                                                                                          [key: string]: any;
                                                                                                      };
                                                                                                      openUrl?: false
                                                                                                      | ((url: string) => void | Promise<void>);
                                                                                                  }

                                                                                                  Hierarchy

                                                                                                  • Omit<SPALogoutOptions, "onRedirect">
                                                                                                    • LogoutOptions
                                                                                                  Index

                                                                                                  Properties

                                                                                                  clientId? +LogoutOptions | @auth0/auth0-react
                                                                                                  @auth0/auth0-react
                                                                                                    Preparing search index...

                                                                                                    Interface LogoutOptions

                                                                                                    interface LogoutOptions {
                                                                                                        clientId?: null | string;
                                                                                                        logoutParams?: {
                                                                                                            federated?: boolean;
                                                                                                            returnTo?: string;
                                                                                                            [key: string]: any;
                                                                                                        };
                                                                                                        openUrl?: false
                                                                                                        | ((url: string) => void | Promise<void>);
                                                                                                    }

                                                                                                    Hierarchy

                                                                                                    • Omit<SPALogoutOptions, "onRedirect">
                                                                                                      • LogoutOptions
                                                                                                    Index

                                                                                                    Properties

                                                                                                    clientId?: null | string

                                                                                                    The clientId of your application.

                                                                                                    If this property is not set, then the clientId that was used during initialization of the SDK is sent to the logout endpoint.

                                                                                                    If this property is set to null, then no client ID value is sent to the logout endpoint.

                                                                                                    Read more about how redirecting after logout works

                                                                                                    -
                                                                                                    logoutParams?: { federated?: boolean; returnTo?: string; [key: string]: any }

                                                                                                    Parameters to pass to the logout endpoint. This can be known parameters defined by Auth0 or custom parameters +

                                                                                                    logoutParams?: { federated?: boolean; returnTo?: string; [key: string]: any }

                                                                                                    Parameters to pass to the logout endpoint. This can be known parameters defined by Auth0 or custom parameters you wish to provide.

                                                                                                    Type declaration

                                                                                                    • [key: string]: any

                                                                                                      If you need to send custom parameters to the logout endpoint, make sure to use the original parameter name.

                                                                                                    • Optionalfederated?: boolean

                                                                                                      When supported by the upstream identity provider, @@ -20,7 +20,7 @@ returnTo URL must be listed in the "Allowed Logout URLs" at the account level in the Auth0 dashboard.

                                                                                                      Read more about how redirecting after logout works

                                                                                                      -
                                                                                                    openUrl?: false | ((url: string) => void | Promise<void>)

                                                                                                    Used to control the redirect and not rely on the SDK to do the actual redirect.

                                                                                                    +
                                                                                                    openUrl?: false | ((url: string) => void | Promise<void>)

                                                                                                    Used to control the redirect and not rely on the SDK to do the actual redirect.

                                                                                                    Set to false to disable the redirect, or provide a function to handle the actual redirect yourself.

                                                                                                    await auth0.logout({
                                                                                                    openUrl(url) {
                                                                                                    window.location.replace(url);
                                                                                                    }
                                                                                                    });
                                                                                                    @@ -28,4 +28,4 @@
                                                                                                    import { Browser } from '@capacitor/browser';

                                                                                                    await auth0.logout({
                                                                                                    async openUrl(url) {
                                                                                                    await Browser.open({ url });
                                                                                                    }
                                                                                                    });
                                                                                                    -
                                                                                                    +
                                                                                                    diff --git a/docs/interfaces/LogoutUrlOptions.html b/docs/interfaces/LogoutUrlOptions.html index 5aa4a181..8a7ca5cc 100644 --- a/docs/interfaces/LogoutUrlOptions.html +++ b/docs/interfaces/LogoutUrlOptions.html @@ -1,10 +1,10 @@ -LogoutUrlOptions | @auth0/auth0-react
                                                                                                    @auth0/auth0-react
                                                                                                      Preparing search index...

                                                                                                      Interface LogoutUrlOptions

                                                                                                      interface LogoutUrlOptions {
                                                                                                          clientId?: null | string;
                                                                                                          logoutParams?: {
                                                                                                              federated?: boolean;
                                                                                                              returnTo?: string;
                                                                                                              [key: string]: any;
                                                                                                          };
                                                                                                      }
                                                                                                      Index

                                                                                                      Properties

                                                                                                      clientId? +LogoutUrlOptions | @auth0/auth0-react
                                                                                                      @auth0/auth0-react
                                                                                                        Preparing search index...

                                                                                                        Interface LogoutUrlOptions

                                                                                                        interface LogoutUrlOptions {
                                                                                                            clientId?: null | string;
                                                                                                            logoutParams?: {
                                                                                                                federated?: boolean;
                                                                                                                returnTo?: string;
                                                                                                                [key: string]: any;
                                                                                                            };
                                                                                                        }
                                                                                                        Index

                                                                                                        Properties

                                                                                                        clientId?: null | string

                                                                                                        The clientId of your application.

                                                                                                        If this property is not set, then the clientId that was used during initialization of the SDK is sent to the logout endpoint.

                                                                                                        If this property is set to null, then no client ID value is sent to the logout endpoint.

                                                                                                        Read more about how redirecting after logout works

                                                                                                        -
                                                                                                        logoutParams?: { federated?: boolean; returnTo?: string; [key: string]: any }

                                                                                                        Parameters to pass to the logout endpoint. This can be known parameters defined by Auth0 or custom parameters +

                                                                                                        logoutParams?: { federated?: boolean; returnTo?: string; [key: string]: any }

                                                                                                        Parameters to pass to the logout endpoint. This can be known parameters defined by Auth0 or custom parameters you wish to provide.

                                                                                                        Type declaration

                                                                                                        • [key: string]: any

                                                                                                          If you need to send custom parameters to the logout endpoint, make sure to use the original parameter name.

                                                                                                        • Optionalfederated?: boolean

                                                                                                          When supported by the upstream identity provider, @@ -19,4 +19,4 @@ returnTo URL must be listed in the "Allowed Logout URLs" at the account level in the Auth0 dashboard.

                                                                                                          Read more about how redirecting after logout works

                                                                                                          -
                                                                                                        +
                                                                                                        diff --git a/docs/interfaces/PopupConfigOptions.html b/docs/interfaces/PopupConfigOptions.html index 92b6983d..d02c2248 100644 --- a/docs/interfaces/PopupConfigOptions.html +++ b/docs/interfaces/PopupConfigOptions.html @@ -1,8 +1,8 @@ -PopupConfigOptions | @auth0/auth0-react
                                                                                                        @auth0/auth0-react
                                                                                                          Preparing search index...

                                                                                                          Interface PopupConfigOptions

                                                                                                          interface PopupConfigOptions {
                                                                                                              popup?: any;
                                                                                                              timeoutInSeconds?: number;
                                                                                                          }
                                                                                                          Index

                                                                                                          Properties

                                                                                                          popup? +PopupConfigOptions | @auth0/auth0-react
                                                                                                          @auth0/auth0-react
                                                                                                            Preparing search index...

                                                                                                            Interface PopupConfigOptions

                                                                                                            interface PopupConfigOptions {
                                                                                                                popup?: any;
                                                                                                                timeoutInSeconds?: number;
                                                                                                            }
                                                                                                            Index

                                                                                                            Properties

                                                                                                            popup?: any

                                                                                                            Accepts an already-created popup window to use. If not specified, the SDK will create its own. This may be useful for platforms like iOS that have security restrictions around when popups can be invoked (e.g. from a user click event)

                                                                                                            -
                                                                                                            timeoutInSeconds?: number

                                                                                                            The number of seconds to wait for a popup response before +

                                                                                                            timeoutInSeconds?: number

                                                                                                            The number of seconds to wait for a popup response before throwing a timeout error. Defaults to 60s

                                                                                                            -
                                                                                                            +
                                                                                                            diff --git a/docs/interfaces/PopupLoginOptions.html b/docs/interfaces/PopupLoginOptions.html index b28288f5..af2eb17d 100644 --- a/docs/interfaces/PopupLoginOptions.html +++ b/docs/interfaces/PopupLoginOptions.html @@ -1,4 +1,4 @@ -PopupLoginOptions | @auth0/auth0-react
                                                                                                            @auth0/auth0-react
                                                                                                              Preparing search index...

                                                                                                              Interface PopupLoginOptions

                                                                                                              interface PopupLoginOptions {
                                                                                                                  authorizationParams?: AuthorizationParams;
                                                                                                              }

                                                                                                              Hierarchy (View Summary)

                                                                                                              Index

                                                                                                              Properties

                                                                                                              authorizationParams? +PopupLoginOptions | @auth0/auth0-react
                                                                                                              @auth0/auth0-react
                                                                                                                Preparing search index...

                                                                                                                Interface PopupLoginOptions

                                                                                                                interface PopupLoginOptions {
                                                                                                                    authorizationParams?: AuthorizationParams;
                                                                                                                }

                                                                                                                Hierarchy (View Summary)

                                                                                                                Index

                                                                                                                Properties

                                                                                                                authorizationParams?: AuthorizationParams

                                                                                                                URL parameters that will be sent back to the Authorization Server. This can be known parameters defined by Auth0 or custom parameters that you define.

                                                                                                                -
                                                                                                                +
                                                                                                                diff --git a/docs/interfaces/RedirectLoginOptions.html b/docs/interfaces/RedirectLoginOptions.html index f71396b1..e314e32b 100644 --- a/docs/interfaces/RedirectLoginOptions.html +++ b/docs/interfaces/RedirectLoginOptions.html @@ -1,16 +1,16 @@ -RedirectLoginOptions | @auth0/auth0-react
                                                                                                                @auth0/auth0-react
                                                                                                                  Preparing search index...

                                                                                                                  Interface RedirectLoginOptions<TAppState>

                                                                                                                  interface RedirectLoginOptions<TAppState = AppState> {
                                                                                                                      appState?: TAppState;
                                                                                                                      authorizationParams?: AuthorizationParams;
                                                                                                                      fragment?: string;
                                                                                                                      openUrl?: (url: string) => void | Promise<void>;
                                                                                                                  }

                                                                                                                  Type Parameters

                                                                                                                  Hierarchy

                                                                                                                  • Omit<SPARedirectLoginOptions<TAppState>, "onRedirect">
                                                                                                                    • RedirectLoginOptions
                                                                                                                  Index

                                                                                                                  Properties

                                                                                                                  appState? +RedirectLoginOptions | @auth0/auth0-react
                                                                                                                  @auth0/auth0-react
                                                                                                                    Preparing search index...

                                                                                                                    Interface RedirectLoginOptions<TAppState>

                                                                                                                    interface RedirectLoginOptions<TAppState = AppState> {
                                                                                                                        appState?: TAppState;
                                                                                                                        authorizationParams?: AuthorizationParams;
                                                                                                                        fragment?: string;
                                                                                                                        openUrl?: (url: string) => void | Promise<void>;
                                                                                                                    }

                                                                                                                    Type Parameters

                                                                                                                    Hierarchy

                                                                                                                    • Omit<SPARedirectLoginOptions<TAppState>, "onRedirect">
                                                                                                                      • RedirectLoginOptions
                                                                                                                    Index

                                                                                                                    Properties

                                                                                                                    appState?: TAppState

                                                                                                                    Used to store state before doing the redirect

                                                                                                                    -
                                                                                                                    authorizationParams?: AuthorizationParams

                                                                                                                    URL parameters that will be sent back to the Authorization Server. This can be known parameters +

                                                                                                                    authorizationParams?: AuthorizationParams

                                                                                                                    URL parameters that will be sent back to the Authorization Server. This can be known parameters defined by Auth0 or custom parameters that you define.

                                                                                                                    -
                                                                                                                    fragment?: string

                                                                                                                    Used to add to the URL fragment before redirecting

                                                                                                                    -
                                                                                                                    openUrl?: (url: string) => void | Promise<void>

                                                                                                                    Used to control the redirect and not rely on the SDK to do the actual redirect.

                                                                                                                    +
                                                                                                                    fragment?: string

                                                                                                                    Used to add to the URL fragment before redirecting

                                                                                                                    +
                                                                                                                    openUrl?: (url: string) => void | Promise<void>

                                                                                                                    Used to control the redirect and not rely on the SDK to do the actual redirect.

                                                                                                                    const client = new Auth0Client({
                                                                                                                    openUrl(url) {
                                                                                                                    window.location.replace(url);
                                                                                                                    }
                                                                                                                    });
                                                                                                                    import { Browser } from '@capacitor/browser';

                                                                                                                    const client = new Auth0Client({
                                                                                                                    async openUrl(url) {
                                                                                                                    await Browser.open({ url });
                                                                                                                    }
                                                                                                                    });
                                                                                                                    -
                                                                                                                    +
                                                                                                                    diff --git a/docs/interfaces/WithAuth0Props.html b/docs/interfaces/WithAuth0Props.html index b0d4b8e2..d80f2eb4 100644 --- a/docs/interfaces/WithAuth0Props.html +++ b/docs/interfaces/WithAuth0Props.html @@ -1,3 +1,3 @@ WithAuth0Props | @auth0/auth0-react
                                                                                                                    @auth0/auth0-react
                                                                                                                      Preparing search index...

                                                                                                                      Interface WithAuth0Props

                                                                                                                      Components wrapped in withAuth0 will have an additional auth0 prop

                                                                                                                      -
                                                                                                                      interface WithAuth0Props {
                                                                                                                          auth0: Auth0ContextInterface;
                                                                                                                      }
                                                                                                                      Index

                                                                                                                      Properties

                                                                                                                      Properties

                                                                                                                      +
                                                                                                                      interface WithAuth0Props {
                                                                                                                          auth0: Auth0ContextInterface;
                                                                                                                      }
                                                                                                                      Index

                                                                                                                      Properties

                                                                                                                      Properties

                                                                                                                      diff --git a/docs/interfaces/WithAuthenticationRequiredOptions.html b/docs/interfaces/WithAuthenticationRequiredOptions.html index bb8150d4..be3c8c0d 100644 --- a/docs/interfaces/WithAuthenticationRequiredOptions.html +++ b/docs/interfaces/WithAuthenticationRequiredOptions.html @@ -1,5 +1,5 @@ WithAuthenticationRequiredOptions | @auth0/auth0-react
                                                                                                                      @auth0/auth0-react
                                                                                                                        Preparing search index...

                                                                                                                        Interface WithAuthenticationRequiredOptions

                                                                                                                        Options for the withAuthenticationRequired Higher Order Component

                                                                                                                        -
                                                                                                                        interface WithAuthenticationRequiredOptions {
                                                                                                                            context?: Context<Auth0ContextInterface<User>>;
                                                                                                                            loginOptions?: RedirectLoginOptions<AppState>;
                                                                                                                            onBeforeAuthentication?: () => Promise<void>;
                                                                                                                            onRedirecting?: () => Element;
                                                                                                                            returnTo?: string | (() => string);
                                                                                                                        }
                                                                                                                        Index

                                                                                                                        Properties

                                                                                                                        interface WithAuthenticationRequiredOptions {
                                                                                                                            context?: Context<Auth0ContextInterface<User>>;
                                                                                                                            loginOptions?: RedirectLoginOptions<AppState>;
                                                                                                                            onBeforeAuthentication?: () => Promise<void>;
                                                                                                                            onRedirecting?: () => Element;
                                                                                                                            returnTo?: string | (() => string);
                                                                                                                        }
                                                                                                                        Index

                                                                                                                        Properties

                                                                                                                        context?: Context<Auth0ContextInterface<User>>

                                                                                                                        The context to be used when calling useAuth0, this should only be provided if you are using multiple Auth0Providers within your application and you wish to tie a specific component to a Auth0Provider other than the Auth0Provider associated with the default Auth0Context.

                                                                                                                        -
                                                                                                                        withAuthenticationRequired(Profile, {
                                                                                                                        loginOptions: {
                                                                                                                        appState: {
                                                                                                                        customProp: 'foo'
                                                                                                                        }
                                                                                                                        }
                                                                                                                        }) +
                                                                                                                        withAuthenticationRequired(Profile, {
                                                                                                                        loginOptions: {
                                                                                                                        appState: {
                                                                                                                        customProp: 'foo'
                                                                                                                        }
                                                                                                                        }
                                                                                                                        })

                                                                                                                        Pass additional login options, like extra appState to the login page. This will be merged with the returnTo option used by the onRedirectCallback handler.

                                                                                                                        -
                                                                                                                        onBeforeAuthentication?: () => Promise<void>
                                                                                                                        withAuthenticationRequired(Profile, {
                                                                                                                        onBeforeAuthentication: () => { analyticsLibrary.track('login_triggered'); }
                                                                                                                        }) +
                                                                                                                        onBeforeAuthentication?: () => Promise<void>
                                                                                                                        withAuthenticationRequired(Profile, {
                                                                                                                        onBeforeAuthentication: () => { analyticsLibrary.track('login_triggered'); }
                                                                                                                        })

                                                                                                                        Allows executing logic before the user is redirected to the login page.

                                                                                                                        -
                                                                                                                        onRedirecting?: () => Element
                                                                                                                        withAuthenticationRequired(Profile, {
                                                                                                                        onRedirecting: () => <div>Redirecting you to the login...</div>
                                                                                                                        }) +
                                                                                                                        onRedirecting?: () => Element
                                                                                                                        withAuthenticationRequired(Profile, {
                                                                                                                        onRedirecting: () => <div>Redirecting you to the login...</div>
                                                                                                                        })

                                                                                                                        Render a message to show that the user is being redirected to the login.

                                                                                                                        -
                                                                                                                        returnTo?: string | (() => string)
                                                                                                                        withAuthenticationRequired(Profile, {
                                                                                                                        returnTo: '/profile'
                                                                                                                        }) +
                                                                                                                        returnTo?: string | (() => string)
                                                                                                                        withAuthenticationRequired(Profile, {
                                                                                                                        returnTo: '/profile'
                                                                                                                        })

                                                                                                                        or

                                                                                                                        @@ -28,4 +28,4 @@

                                                                                                                        Add a path for the onRedirectCallback handler to return the user to after login.

                                                                                                                        -
                                                                                                                        +
                                                                                                                        diff --git a/docs/types/AppState.html b/docs/types/AppState.html index 7cb36e8c..9967e928 100644 --- a/docs/types/AppState.html +++ b/docs/types/AppState.html @@ -1,3 +1,3 @@ AppState | @auth0/auth0-react
                                                                                                                        @auth0/auth0-react
                                                                                                                          Preparing search index...

                                                                                                                          Type Alias AppState

                                                                                                                          The state of the application before the user was redirected to the login page.

                                                                                                                          -
                                                                                                                          type AppState = {
                                                                                                                              returnTo?: string;
                                                                                                                              [key: string]: any;
                                                                                                                          }

                                                                                                                          Indexable

                                                                                                                          • [key: string]: any
                                                                                                                          Index

                                                                                                                          Properties

                                                                                                                          Properties

                                                                                                                          returnTo?: string
                                                                                                                          +
                                                                                                                          type AppState = {
                                                                                                                              returnTo?: string;
                                                                                                                              [key: string]: any;
                                                                                                                          }

                                                                                                                          Indexable

                                                                                                                          • [key: string]: any
                                                                                                                          Index

                                                                                                                          Properties

                                                                                                                          Properties

                                                                                                                          returnTo?: string
                                                                                                                          diff --git a/docs/types/CacheLocation.html b/docs/types/CacheLocation.html index 4f585572..53cf383d 100644 --- a/docs/types/CacheLocation.html +++ b/docs/types/CacheLocation.html @@ -1,2 +1,2 @@ CacheLocation | @auth0/auth0-react
                                                                                                                          @auth0/auth0-react
                                                                                                                            Preparing search index...

                                                                                                                            Type Alias CacheLocation

                                                                                                                            CacheLocation: "memory" | "localstorage"

                                                                                                                            The possible locations where tokens can be stored

                                                                                                                            -
                                                                                                                            +
                                                                                                                            diff --git a/docs/variables/Auth0Context.html b/docs/variables/Auth0Context.html index 0224bee1..c07ff85c 100644 --- a/docs/variables/Auth0Context.html +++ b/docs/variables/Auth0Context.html @@ -1,2 +1,2 @@ Auth0Context | @auth0/auth0-react
                                                                                                                            @auth0/auth0-react
                                                                                                                              Preparing search index...

                                                                                                                              Variable Auth0ContextConst

                                                                                                                              Auth0Context: Context<Auth0ContextInterface<User>> = ...

                                                                                                                              The Auth0 Context

                                                                                                                              -
                                                                                                                              +
                                                                                                                              diff --git a/package-lock.json b/package-lock.json index 334e6865..52ad95af 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@auth0/auth0-react", - "version": "2.3.0", + "version": "2.4.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@auth0/auth0-react", - "version": "2.3.0", + "version": "2.4.0", "license": "MIT", "dependencies": { "@auth0/auth0-spa-js": "^2.2.0" diff --git a/package.json b/package.json index fd0521a8..7d055e55 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "author": "Auth0", "name": "@auth0/auth0-react", - "version": "2.3.0", + "version": "2.4.0", "description": "Auth0 SDK for React Single Page Applications (SPA)", "keywords": [ "auth0",