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 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/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. 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/__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/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/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..fe1a0248 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..16662013 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..5a8a8a51 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..aab84b23 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..9a94a284 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..87ffb39f 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..8e81cbba 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..b20023ce 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..a40c5611 100644 --- a/docs/interfaces/AuthorizationParams.html +++ b/docs/interfaces/AuthorizationParams.html @@ -1,63 +1,65 @@ -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. +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"
                                            -
                                          • '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..ace8ec54 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..5b79dc30 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..13b8f880 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..a05e1792 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..8a7ca5cc 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..d02c2248 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..af2eb17d 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..e314e32b 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..d80f2eb4 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..be3c8c0d 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..9967e928 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..53cf383d 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..c07ff85c --- /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 f8ad46fa..52ad95af 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,15 +1,15 @@ { "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.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", @@ -74,7 +74,9 @@ } }, "node_modules/@auth0/auth0-spa-js": { - "version": "2.1.3", + "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": { @@ -585,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": { @@ -639,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, @@ -1318,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, @@ -1531,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, @@ -1605,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, @@ -1624,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": { @@ -1632,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": { @@ -1644,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, @@ -1669,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, @@ -1692,250 +1770,276 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.62.0", + "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.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.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": "^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.37.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.37.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.37.0.tgz", + "integrity": "sha512-kVIaQE9vrN9RLCQMQ3iyRlVJpTiDUY6woHGb30JDkfJErqrQEmtdWH3gV0PBAfGZgQXoqzXOO0T3K6ioApbbAA==", "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.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": { - "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" + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/estraverse": { - "version": "4.3.0", + "node_modules/@typescript-eslint/project-service": { + "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": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "5.62.0", - "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.37.0", + "@typescript-eslint/types": "^8.37.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.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": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" + "@typescript-eslint/types": "8.37.0", + "@typescript-eslint/visitor-keys": "8.37.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.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", - "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.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": { - "@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/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" }, "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.37.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.37.0.tgz", + "integrity": "sha512-ax0nv7PUF9NOVPs+lmQ7yIE7IQmAf8LGcXbMvHX5Gm+YJUYNAl340XkGnrimxZ0elXyoQJuN5sbg6C4evKA4SQ==", "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.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": "BSD-2-Clause", + "license": "MIT", + "dependencies": { + "@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", + "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.37.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.37.0.tgz", + "integrity": "sha512-TSFvkIW6gGjN2p6zbXo20FzCABbyUAuq6tBvNRGsKdsSQ6a7rnV6ADfZ7f4iI3lIiXc4F4WWvtUfDw9CJ9pO5A==", "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.37.0", + "@typescript-eslint/types": "8.37.0", + "@typescript-eslint/typescript-estree": "8.37.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.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": "5.62.0", - "eslint-visitor-keys": "^3.3.0" + "@typescript-eslint/types": "8.37.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, @@ -2084,11 +2188,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, @@ -5620,25 +5719,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, @@ -7826,11 +7906,6 @@ "node": ">=6" } }, - "node_modules/jsonc-parser": { - "version": "3.3.1", - "dev": true, - "license": "MIT" - }, "node_modules/jsonfile": { "version": "4.0.0", "dev": true, @@ -7895,7 +7970,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": { @@ -8201,6 +8278,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, @@ -8476,15 +8563,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": { @@ -8495,6 +8589,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, @@ -8789,11 +8890,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, @@ -8962,19 +9058,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", @@ -9648,6 +9746,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, @@ -9771,7 +9879,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": { @@ -9779,14 +9889,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": { @@ -10401,7 +10513,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" }, @@ -10423,7 +10537,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": { @@ -10527,17 +10643,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, @@ -11316,19 +11421,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": { @@ -11339,10 +11459,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": { @@ -11360,9 +11481,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, @@ -11384,25 +11521,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, @@ -11540,23 +11658,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": { @@ -11582,7 +11704,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": { @@ -11590,9 +11714,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, @@ -11835,16 +11966,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, @@ -12280,6 +12401,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..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", @@ -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 9e4e09a2..47df9472 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>; } /** @@ -116,7 +116,7 @@ const defaultOnRedirectCallback = (appState?: AppState): void => { window.history.replaceState( {}, document.title, - appState?.returnTo || window.location.pathname + appState?.returnTo ?? window.location.pathname ); }; @@ -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(); @@ -198,7 +198,7 @@ const Auth0Provider = (opts: Auth0ProviderOptions) => { const user = await client.getUser(); dispatch({ type: 'LOGIN_POPUP_COMPLETE', user }); }, - [client] + [client, handleError] ); const logout = useCallback( @@ -272,7 +272,7 @@ const Auth0Provider = (opts: Auth0ProviderOptions) => { [client] ); - const contextValue = useMemo>(() => { + const contextValue = useMemo>(() => { return { ...state, getAccessTokenSilently, diff --git a/src/errors.tsx b/src/errors.tsx index fc8a62d7..5f242b25 100644 --- a/src/errors.tsx +++ b/src/errors.tsx @@ -6,7 +6,7 @@ */ export class OAuthError extends Error { constructor(public error: string, public error_description?: string) { - super(error_description || error); + super(error_description ?? error); // https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work Object.setPrototypeOf(this, OAuthError.prototype); diff --git a/src/reducer.tsx b/src/reducer.tsx index a8fc79fe..a49e960e 100644 --- a/src/reducer.tsx +++ b/src/reducer.tsx @@ -9,7 +9,7 @@ type Action = | 'LOGIN_POPUP_COMPLETE' | 'GET_ACCESS_TOKEN_COMPLETE' | 'HANDLE_REDIRECT_COMPLETE'; - user?: User; + user: User | undefined; } | { type: 'LOGOUT' } | { type: 'ERROR'; error: Error }; @@ -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 { diff --git a/src/utils.tsx b/src/utils.tsx index d26a256c..c87d6e96 100644 --- a/src/utils.tsx +++ b/src/utils.tsx @@ -47,7 +47,7 @@ export const deprecateRedirectUri = (options?: any) => { 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,