From e04fb4b465178e4fe1d1b8e80c41516979e9702f Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Sat, 22 Jul 2023 10:03:39 +0200 Subject: [PATCH 001/440] chore(ci): invert client and react (alpha) --- ...e-static-web-apps-black-rock-0dc6b0d03.yml | 10 +- ...-static-web-apps-icy-glacier-004ab4303.yml | 10 +- .github/workflows/npm-publish.yml | 94 +++++++++++++------ .../oidc-client-service-worker/package.json | 16 +++- packages/oidc-client/package-lock.json | 4 +- packages/oidc-client/package.json | 4 +- packages/react-oidc/package.json | 3 +- pnpm-lock.yaml | 15 ++- 8 files changed, 117 insertions(+), 39 deletions(-) diff --git a/.github/workflows/azure-static-web-apps-black-rock-0dc6b0d03.yml b/.github/workflows/azure-static-web-apps-black-rock-0dc6b0d03.yml index 1d00995a0..c03d0a57e 100644 --- a/.github/workflows/azure-static-web-apps-black-rock-0dc6b0d03.yml +++ b/.github/workflows/azure-static-web-apps-black-rock-0dc6b0d03.yml @@ -9,6 +9,9 @@ on: branches: - main +env: + PNPM_VERSION: 8.5.1 + NODE_VERSION: 18 jobs: skip_ci: runs-on: ubuntu-latest @@ -27,7 +30,12 @@ jobs: submodules: true - uses: actions/setup-node@v2 with: - node-version: 18 + node-version: ${{ env.NODE_VERSION }} + - uses: pnpm/action-setup@v2 + name: Install pnpm + with: + version: ${{ env.PNPM_VERSION }} + run_install: false - name: pnpm install run: pnpm i --frozen-lockfile working-directory: ./packages/react-oidc diff --git a/.github/workflows/azure-static-web-apps-icy-glacier-004ab4303.yml b/.github/workflows/azure-static-web-apps-icy-glacier-004ab4303.yml index 33e3657df..cc8d7410d 100644 --- a/.github/workflows/azure-static-web-apps-icy-glacier-004ab4303.yml +++ b/.github/workflows/azure-static-web-apps-icy-glacier-004ab4303.yml @@ -9,6 +9,9 @@ on: branches: - main +env: + PNPM_VERSION: 8.5.1 + NODE_VERSION: 18 jobs: skip_ci: runs-on: ubuntu-latest @@ -27,7 +30,12 @@ jobs: submodules: true - uses: actions/setup-node@v2 with: - node-version: 18 + node-version: ${{ env.NODE_VERSION }} + - uses: pnpm/action-setup@v2 + name: Install pnpm + with: + version: ${{ env.PNPM_VERSION }} + run_install: false - name: pnpm install run: pnpm i --frozen-lockfile working-directory: ./examples/react-oidc-demo diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml index bce42b6f2..77d60464d 100644 --- a/.github/workflows/npm-publish.yml +++ b/.github/workflows/npm-publish.yml @@ -126,12 +126,45 @@ jobs: with: version: ${{ env.PNPM_VERSION }} run_install: false + + # oidc-client-service-worker + - name: pnpm version ${{ steps.tag.outputs.new_version }} + if: (github.ref == 'refs/heads/main' && steps.which_tag.outputs.tag == 'release') || steps.which_tag.outputs.tag == 'alpha' || steps.which_tag.outputs.tag == 'beta' + run: pnpm version ${{ steps.tag.outputs.new_version }} + working-directory: ./packages/oidc-client-service-worker + + - name: pnpm ci + run: pnpm i --frozen-lockfile + working-directory: ./packages/oidc-client-service-worker + + - name: pnpm prepare + run: pnpm run prepare + working-directory: ./packages/oidc-client-service-worker + + - name: pnpm test + run: pnpm test -- --run + working-directory: ./packages/oidc-client-service-worker + + # oidc-client + - name: pnpm version ${{ steps.tag.outputs.new_version }} + if: (github.ref == 'refs/heads/main' && steps.which_tag.outputs.tag == 'release') || steps.which_tag.outputs.tag == 'alpha' || steps.which_tag.outputs.tag == 'beta' + run: pnpm version ${{ steps.tag.outputs.new_version }} + working-directory: ./packages/oidc-client + + - name: pnpm ci + run: pnpm i --frozen-lockfile + working-directory: ./packages/oidc-client + - name: pnpm prepare + run: pnpm run prepare + working-directory: ./packages/oidc-client + + # React-oidc - name: npm version ${{ steps.tag.outputs.new_version }} if: (github.ref == 'refs/heads/main' && steps.which_tag.outputs.tag == 'release') || steps.which_tag.outputs.tag == 'alpha' || steps.which_tag.outputs.tag == 'beta' run: npm version ${{ steps.tag.outputs.new_version }} working-directory: ./packages/react-oidc - + - name: pnpm i run: pnpm i --frozen-lockfile working-directory: ./packages/react-oidc @@ -139,37 +172,54 @@ jobs: - name: pnpm prepare run: pnpm run prepare working-directory: ./packages/react-oidc - + - name: pnpm test run: pnpm test -- --run working-directory: ./packages/react-oidc - - id: publish-react + - name: Commit updates package.json + uses: stefanzweifel/git-auto-commit-action@v4 + if: github.ref == 'refs/heads/main' && steps.which_tag.outputs.tag == 'release' + with: + commit_message: "[skip ci] Update version package.json" + commit_user_name: GitHub + commit_user_email: github-action@bot.com + commit_author: GitHub + push_options: '--force' + + # oidc-client-service-worker + - id: publish-oidc-client-service-worker uses: JS-DevTools/npm-publish@v1 if: (github.ref == 'refs/heads/main' && steps.which_tag.outputs.tag == 'release') || steps.which_tag.outputs.tag == 'alpha' || steps.which_tag.outputs.tag == 'beta' with: token: ${{ secrets.NPM_TOKEN }} - package: ./packages/react-oidc/package.json - - - name: pnpm version ${{ steps.tag.outputs.new_version }} - if: (github.ref == 'refs/heads/main' && steps.which_tag.outputs.tag == 'release') || steps.which_tag.outputs.tag == 'alpha' || steps.which_tag.outputs.tag == 'beta' - run: pnpm version ${{ steps.tag.outputs.new_version }} - working-directory: ./packages/oidc-client + package: ./packages/oidc-client-service-worker/package.json - - name: pnpm ci - run: pnpm i --frozen-lockfile - working-directory: ./packages/oidc-client - - - name: pnpm prepare - run: pnpm run prepare + # oidc-client + - name: replace workspace:* by ${{ steps.tag.outputs.new_version }} + if: (github.ref == 'refs/heads/main' && steps.which_tag.outputs.tag == 'release') || steps.which_tag.outputs.tag == 'alpha' || steps.which_tag.outputs.tag == 'beta' + run: sed -i 's/workspace:\*/${{ steps.tag.outputs.new_version }}/g' package.json working-directory: ./packages/oidc-client - + - id: publish-oidc-client uses: JS-DevTools/npm-publish@v1 if: (github.ref == 'refs/heads/main' && steps.which_tag.outputs.tag == 'release') || steps.which_tag.outputs.tag == 'alpha' || steps.which_tag.outputs.tag == 'beta' with: token: ${{ secrets.NPM_TOKEN }} package: ./packages/oidc-client/package.json + + # react-oidc + - name: replace workspace:* by ${{ steps.tag.outputs.new_version }} + if: (github.ref == 'refs/heads/main' && steps.which_tag.outputs.tag == 'release') || steps.which_tag.outputs.tag == 'alpha' || steps.which_tag.outputs.tag == 'beta' + run: sed -i 's/workspace:\*/${{ steps.tag.outputs.new_version }}/g' package.json + working-directory: ./packages/react-oidc + + - id: publish-react + uses: JS-DevTools/npm-publish@v1 + if: (github.ref == 'refs/heads/main' && steps.which_tag.outputs.tag == 'release') || steps.which_tag.outputs.tag == 'alpha' || steps.which_tag.outputs.tag == 'beta' + with: + token: ${{ secrets.NPM_TOKEN }} + package: ./packages/react-oidc/package.json - name: SonarCloud Scan uses: sonarsource/sonarcloud-github-action@master @@ -183,20 +233,10 @@ jobs: -Dsonar.projectKey=AxaGuilDEv_react-oidc -Dsonar.exclusions=**/*.spec.js,**/*.stories.js,Scripts/**,**/*.scss,**/__snapshots__/**,**/*[Tt]ests.cs,**/node_modules/**,**/ClientApp/build/**,**/ClientApp/.storybook/**,**/ClientApp/storybook-static/**,**/obj/**,**/__mocks__/**,**/ClientApp/src/serviceWorker.ts -Dsonar.javascript.lcov.reportPaths=**/coverage/lcov.info - - - name: Commit updates package.json - uses: stefanzweifel/git-auto-commit-action@v4 - if: github.ref == 'refs/heads/main' - with: - commit_message: "[skip ci] Update version package.json" - commit_user_name: GitHub - commit_user_email: github-action@bot.com - commit_author: GitHub - push_options: '--force' - name: Create a GitHub release uses: ncipollo/release-action@v1 - if: github.ref == 'refs/heads/main' + if: github.ref == 'refs/heads/main' && steps.which_tag.outputs.tag == 'release' with: tag: ${{ steps.tag_version.outputs.new_tag }} name: Release ${{ steps.tag_version.outputs.new_tag }} diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 399a8169c..dcd21abc1 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,8 +1,8 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "6.16.1", - "private": true, + "version": "6.24.1", "type": "module", + "private": false, "main": "dist/OidcServiceWorker.js", "types": "dist/OidcServiceWorker.d.ts", "description": "OpenID Connect & OAuth authentication service worker", @@ -19,6 +19,10 @@ "oauth2", "oauth" ], + "repository": { + "type": "git", + "url": "https://github.com/AxaGuilDEv/react-oidc.git" + }, "scripts": { "copy": "cpy --flat ./src/OidcTrustedDomains.js ./dist/", "build": "tsc && vite build && pnpm run copy", @@ -41,13 +45,17 @@ "eslint-import-resolver-typescript": "^3.5.5", "eslint-plugin-react": "^7.32.2", "eslint-plugin-simple-import-sort": "^10.0.0", - "rimraf": "5.0.1", + "rimraf": "5.0.1", "msw": "1.2.2", "typescript": "5.1.6", "vite": "^4.4.4", "vite-plugin-dts": "^3.3.0", "vitest": "^0.33.0" }, + "publishConfig": { + "access": "public", + "registry": "https://registry.npmjs.org/" + }, "license": "MIT", "browserslist": { "production": [ @@ -61,4 +69,4 @@ "last 1 safari version" ] } -} \ No newline at end of file +} diff --git a/packages/oidc-client/package-lock.json b/packages/oidc-client/package-lock.json index 65ddfd28d..edc2f0212 100644 --- a/packages/oidc-client/package-lock.json +++ b/packages/oidc-client/package-lock.json @@ -1,12 +1,12 @@ { "name": "@axa-fr/vanilla-oidc", - "version": "6.24.1", + "version": "6.25.3-alpha950", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@axa-fr/vanilla-oidc", - "version": "6.24.1", + "version": "6.25.3-alpha950", "hasInstallScript": true, "license": "MIT", "dependencies": { diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index b566b1bfd..6a6e0e4bd 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -19,8 +19,10 @@ "type": "git", "url": "https://github.com/AxaGuilDEv/react-oidc.git" }, + "dependencies": { + "@axa-fr/oidc-client-service-worker": "workspace:*" + }, "devDependencies": { - "@axa-fr/oidc-client-service-worker": "workspace:*", "@testing-library/dom": "^9.3.1", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "13.3.0", diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index b2d851439..44f0d21d4 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -41,7 +41,8 @@ }, "dependencies": { "@axa-fr/oidc-client-service-worker": "workspace:*", - "@axa-fr/vanilla-oidc": "workspace:*" + "@axa-fr/vanilla-oidc": "workspace:*", + "base64-js": "1.5.1" }, "peerDependencies": { "react": "^17.0.0 || ^18.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 23941c819..7096bd3a6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,5 +1,9 @@ lockfileVersion: '6.0' +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + importers: .: @@ -178,10 +182,11 @@ importers: version: 0.33.0(jsdom@22.1.0) packages/oidc-client: - devDependencies: + dependencies: '@axa-fr/oidc-client-service-worker': specifier: workspace:* version: link:../oidc-client-service-worker + devDependencies: '@testing-library/dom': specifier: ^9.3.1 version: 9.3.1 @@ -299,6 +304,9 @@ importers: '@axa-fr/vanilla-oidc': specifier: workspace:* version: link:../oidc-client + base64-js: + specifier: 1.5.1 + version: 1.5.1 react-router-dom: specifier: ^6.0.0 version: 6.14.1(react-dom@18.2.0)(react@18.2.0) @@ -1251,6 +1259,7 @@ packages: engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [glibc] requiresBuild: true dev: false optional: true @@ -1260,6 +1269,7 @@ packages: engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [musl] requiresBuild: true dev: false optional: true @@ -1269,6 +1279,7 @@ packages: engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [glibc] requiresBuild: true dev: false optional: true @@ -1278,6 +1289,7 @@ packages: engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [musl] requiresBuild: true dev: false optional: true @@ -2170,7 +2182,6 @@ packages: /base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - dev: true /big-integer@1.6.51: resolution: {integrity: sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==} From 254b9f945bff154e127782522244378a3a224f94 Mon Sep 17 00:00:00 2001 From: Jason Finch Date: Mon, 24 Jul 2023 17:35:53 +1000 Subject: [PATCH 002/440] refactor(post-install): Alter post-install to not have a dependency on 'cpy' (#1106) --- packages/oidc-client/bin/post-install.mjs | 55 ++++++++++++++--------- packages/react-oidc/bin/post-install.js | 35 --------------- packages/react-oidc/bin/post-install.mjs | 48 ++++++++++++++++++++ packages/react-oidc/package.json | 2 +- 4 files changed, 82 insertions(+), 58 deletions(-) delete mode 100644 packages/react-oidc/bin/post-install.js create mode 100644 packages/react-oidc/bin/post-install.mjs diff --git a/packages/oidc-client/bin/post-install.mjs b/packages/oidc-client/bin/post-install.mjs index e6dde94e8..ef873a078 100644 --- a/packages/oidc-client/bin/post-install.mjs +++ b/packages/oidc-client/bin/post-install.mjs @@ -1,37 +1,48 @@ -import cpy from 'cpy'; import path from 'path'; +import fs from 'fs'; /** * Script to run after npm install * * Copy selected files to user's directory */ +const script_prefix= 'oidc-client'; -const initPath = process.env.INIT_CWD; -// console.log('current dir:', process.cwd()); -// console.log('userPath:', initPath); +const copyFile = async (src, dest, overwrite) => { + if (!overwrite) { + if (fileExists(dest)) { + console.log(`[${script_prefix}:skip] file exists not overwriting ${dest}`); + return; + } + } + await fs.promises.copyFile(src, dest); + console.log(`[${script_prefix}:copy] ${dest}`); +}; -function copyProgress(progress) { - console.log('✓ [oidc-client:copy] ', progress.destinationPath); -} +const fileExists = (path) => { + return !!fs.existsSync(path); +}; + +const initPath = process.env.INIT_CWD; -//TODO: Fragile.. need to find a better way to get the path const srcDir = '../oidc-client-service-worker/dist/'; const destinationDir = path.join(initPath, 'public'); -const FILE_EXISTS_CODE = 'EEXIST'; - -await cpy([path.join(srcDir,'OidcServiceWorker.js')], destinationDir, { - overwrite: true, -}).on('progress', copyProgress); -try { - await cpy([path.join(srcDir,'OidcTrustedDomains.js')], destinationDir, { +const files = [ + { + fileName: 'OidcServiceWorker.js', + overwrite: true, + }, + { + fileName: 'OidcTrustedDomains.js', overwrite: false, - }).on('progress', copyProgress); -} catch (e) { - if (e.code === FILE_EXISTS_CODE) { - console.log( - `✗ [oidc-client:skip] OidcTrustedDomains.js not copied, already exists in ${destinationDir}` - ); - } else throw e; + }, +]; + +for await (const f of files) { + await copyFile( + path.join(srcDir, f.fileName), + path.join(destinationDir, f.fileName), + f.overwrite + ); } diff --git a/packages/react-oidc/bin/post-install.js b/packages/react-oidc/bin/post-install.js deleted file mode 100644 index 49f138d49..000000000 --- a/packages/react-oidc/bin/post-install.js +++ /dev/null @@ -1,35 +0,0 @@ -import cpy from 'cpy'; -import path from 'path'; - -/** - * Script to run after npm install - * - * Copy selected files to user's directory - */ - -const initPath = process.env.INIT_CWD; -// console.log('currentdir:', process.cwd()); -// console.log('userPath:', initPath); - -function copyProgress(progress) { - console.log('✓ [react-oidc:copy] ', progress.destinationPath); -} - -const srcDir = '../oidc-client-service-worker/dist/'; -const destinationDir = path.join(initPath, 'public'); - -await cpy([path.join(srcDir,'OidcServiceWorker.js')], destinationDir, { - overwrite: true, -}).on('progress', copyProgress); - -try { - await cpy([path.join(srcDir,'OidcTrustedDomains.js')], destinationDir, { - overwrite: false, - }).on('progress', copyProgress); -} catch (e) { - if (e.code === 'EEXIST') { //file exists - console.log( - `✗ [react-oidc:skip] OidcTrustedDomains.js not copied, already exists in ${destinationDir}` - ); - } else throw e; -} diff --git a/packages/react-oidc/bin/post-install.mjs b/packages/react-oidc/bin/post-install.mjs new file mode 100644 index 000000000..b9fda60d9 --- /dev/null +++ b/packages/react-oidc/bin/post-install.mjs @@ -0,0 +1,48 @@ +import path from 'path'; +import fs from 'fs'; + +/** + * Script to run after npm install + * + * Copy selected files to user's directory + */ +const script_prefix= 'react-oidc'; + +const copyFile = async (src, dest, overwrite) => { + if (!overwrite) { + if (fileExists(dest)) { + console.log(`[${script_prefix}:skip] file exists not overwriting ${dest}`); + return; + } + } + await fs.promises.copyFile(src, dest); + console.log(`[${script_prefix}:copy] ${dest}`); +}; + +const fileExists = (path) => { + return !!fs.existsSync(path); +}; + +const initPath = process.env.INIT_CWD; + +const srcDir = '../oidc-client-service-worker/dist/'; +const destinationDir = path.join(initPath, 'public'); + +const files = [ + { + fileName: 'OidcServiceWorker.js', + overwrite: true, + }, + { + fileName: 'OidcTrustedDomains.js', + overwrite: false, + }, +]; + +for await (const f of files) { + await copyFile( + path.join(srcDir, f.fileName), + path.join(destinationDir, f.fileName), + f.overwrite + ); +} diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 44f0d21d4..9f57a8023 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -35,7 +35,7 @@ "serve": "vite preview", "test": "vitest --root . --coverage", "clean": "rimraf dist", - "postinstall": "node ./bin/post-install.js", + "postinstall": "node ./bin/post-install.mjs", "prepare": "pnpm run clean && pnpm run copy-service-worker && pnpm run build", "lint": "eslint src" }, From d0ede07c1cd1aaf8526917df299d7a308eb7ea9d Mon Sep 17 00:00:00 2001 From: Jason Finch Date: Mon, 24 Jul 2023 17:36:22 +1000 Subject: [PATCH 003/440] ci(version): Add a period between version alpha|beta and run_number (#1107) (alpha) --- .github/workflows/npm-publish.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml index 77d60464d..e2f92b316 100644 --- a/.github/workflows/npm-publish.yml +++ b/.github/workflows/npm-publish.yml @@ -111,10 +111,10 @@ jobs: echo "new_version=$version" >> $GITHUB_OUTPUT fi if [[ '${{ steps.which_tag.outputs.tag }}' = 'alpha' ]]; then - echo "new_version=$version-alpha${{ github.run_number }}" >> $GITHUB_OUTPUT + echo "new_version=$version-alpha.${{ github.run_number }}" >> $GITHUB_OUTPUT fi if [[ '${{ steps.which_tag.outputs.tag }}' = 'beta' ]]; then - echo "new_version=$version-beta${{ github.run_number }}" >> $GITHUB_OUTPUT + echo "new_version=$version-beta.${{ github.run_number }}" >> $GITHUB_OUTPUT fi - uses: actions/setup-node@v2 From ccc7c429cde1da743993d16db17ef343f374f00b Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Mon, 24 Jul 2023 11:21:43 +0200 Subject: [PATCH 004/440] fix(ci): website and packages psotinstall error when pnpm from root (#1108) --- ...e-static-web-apps-black-rock-0dc6b0d03.yml | 10 +- ...-static-web-apps-icy-glacier-004ab4303.yml | 12 ++- packages/oidc-client/bin/post-install.mjs | 94 ++++++++++--------- packages/react-oidc/bin/post-install.mjs | 94 ++++++++++--------- 4 files changed, 119 insertions(+), 91 deletions(-) diff --git a/.github/workflows/azure-static-web-apps-black-rock-0dc6b0d03.yml b/.github/workflows/azure-static-web-apps-black-rock-0dc6b0d03.yml index c03d0a57e..68c99a0ce 100644 --- a/.github/workflows/azure-static-web-apps-black-rock-0dc6b0d03.yml +++ b/.github/workflows/azure-static-web-apps-black-rock-0dc6b0d03.yml @@ -38,10 +38,12 @@ jobs: run_install: false - name: pnpm install run: pnpm i --frozen-lockfile - working-directory: ./packages/react-oidc + - name: pnpm install + run: pnpm i --frozen-lockfile + working-directory: ./examples/react-oidc-demo - name: pnpm run build run: pnpm run build - working-directory: ./packages/react-oidc + working-directory: ./examples/react-oidc-demo - name: Build And Deploy id: builddeploy uses: Azure/static-web-apps-deploy@v1 @@ -52,9 +54,9 @@ jobs: skip_app_build: true ###### Repository/Build Configurations - These values can be configured to match your app requirements. ###### # For more information regarding Static Web App workflow configurations, please visit: https://aka.ms/swaworkflowconfig - app_location: "/packages/react-oidc/build" # App source code path + app_location: "/examples/react-oidc-demo/dist" # App source code path api_location: "" # Api source code path - optional - output_location: "build" # Built app content directory - optional + output_location: "dist" # Built app content directory - optional ###### End of Repository/Build Configurations ###### close_pull_request_job: diff --git a/.github/workflows/azure-static-web-apps-icy-glacier-004ab4303.yml b/.github/workflows/azure-static-web-apps-icy-glacier-004ab4303.yml index cc8d7410d..938ba00dd 100644 --- a/.github/workflows/azure-static-web-apps-icy-glacier-004ab4303.yml +++ b/.github/workflows/azure-static-web-apps-icy-glacier-004ab4303.yml @@ -36,9 +36,14 @@ jobs: with: version: ${{ env.PNPM_VERSION }} run_install: false + - name: pnpm install root + run: pnpm i --frozen-lockfile - name: pnpm install run: pnpm i --frozen-lockfile - working-directory: ./examples/react-oidc-demo + working-directory: ./examples/oidc-client-demo + - name: pnpm run build + run: pnpm run build + working-directory: ./examples/oidc-client-demo - name: Build And Deploy id: builddeploy uses: Azure/static-web-apps-deploy@v1 @@ -46,11 +51,12 @@ jobs: azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN_ICY_GLACIER_004AB4303 }} repo_token: ${{ secrets.GITHUB_TOKEN }} # Used for Github integrations (i.e. PR comments) action: "upload" + skip_app_build: true ###### Repository/Build Configurations - These values can be configured to match your app requirements. ###### # For more information regarding Static Web App workflow configurations, please visit: https://aka.ms/swaworkflowconfig - app_location: "/examples/react-oidc-demo" # App source code path + app_location: "/examples/oidc-client-demo/dist" # App source code path api_location: "" # Api source code path - optional - output_location: "build" # Built app content directory - optional + output_location: "dist" # Built app content directory - optional ###### End of Repository/Build Configurations ###### close_pull_request_job: diff --git a/packages/oidc-client/bin/post-install.mjs b/packages/oidc-client/bin/post-install.mjs index ef873a078..ce0c6bc88 100644 --- a/packages/oidc-client/bin/post-install.mjs +++ b/packages/oidc-client/bin/post-install.mjs @@ -1,48 +1,58 @@ import path from 'path'; import fs from 'fs'; -/** - * Script to run after npm install - * - * Copy selected files to user's directory - */ -const script_prefix= 'oidc-client'; - -const copyFile = async (src, dest, overwrite) => { - if (!overwrite) { - if (fileExists(dest)) { - console.log(`[${script_prefix}:skip] file exists not overwriting ${dest}`); - return; +try { + + /** + * Script to run after npm install + * + * Copy selected files to user's directory + */ + const script_prefix= 'oidc-client'; + + const copyFile = async (src, dest, overwrite) => { + if(!fileExists(src)) { + console.log(`[${script_prefix}:skip] file does not exist ${src}`); + return; + } + if (!overwrite) { + if (fileExists(dest)) { + console.log(`[${script_prefix}:skip] file exists not overwriting ${dest}`); + return; + } } + await fs.promises.copyFile(src, dest); + console.log(`[${script_prefix}:copy] ${dest}`); + }; + + const fileExists = (path) => { + return !!fs.existsSync(path); + }; + + const initPath = process.env.INIT_CWD; + + const srcDir = '../oidc-client-service-worker/dist/'; + const destinationDir = path.join(initPath, 'public'); + + const files = [ + { + fileName: 'OidcServiceWorker.js', + overwrite: true, + }, + { + fileName: 'OidcTrustedDomains.js', + overwrite: false, + }, + ]; + + for await (const file of files) { + await copyFile( + path.join(srcDir, file.fileName), + path.join(destinationDir, file.fileName), + file.overwrite + ); } - await fs.promises.copyFile(src, dest); - console.log(`[${script_prefix}:copy] ${dest}`); -}; - -const fileExists = (path) => { - return !!fs.existsSync(path); -}; - -const initPath = process.env.INIT_CWD; - -const srcDir = '../oidc-client-service-worker/dist/'; -const destinationDir = path.join(initPath, 'public'); - -const files = [ - { - fileName: 'OidcServiceWorker.js', - overwrite: true, - }, - { - fileName: 'OidcTrustedDomains.js', - overwrite: false, - }, -]; -for await (const f of files) { - await copyFile( - path.join(srcDir, f.fileName), - path.join(destinationDir, f.fileName), - f.overwrite - ); -} +} catch (err) { + console.warn(err); +} \ No newline at end of file diff --git a/packages/react-oidc/bin/post-install.mjs b/packages/react-oidc/bin/post-install.mjs index b9fda60d9..67c64c9db 100644 --- a/packages/react-oidc/bin/post-install.mjs +++ b/packages/react-oidc/bin/post-install.mjs @@ -1,48 +1,58 @@ import path from 'path'; import fs from 'fs'; -/** - * Script to run after npm install - * - * Copy selected files to user's directory - */ -const script_prefix= 'react-oidc'; - -const copyFile = async (src, dest, overwrite) => { - if (!overwrite) { - if (fileExists(dest)) { - console.log(`[${script_prefix}:skip] file exists not overwriting ${dest}`); +try { + + /** + * Script to run after npm install + * + * Copy selected files to user's directory + */ + const script_prefix= 'oidc-client'; + + const copyFile = async (src, dest, overwrite) => { + if(!fileExists(src)) { + console.log(`[${script_prefix}:skip] file does not exist ${src}`); return; } + if (!overwrite) { + if (fileExists(dest)) { + console.log(`[${script_prefix}:skip] file exists not overwriting ${dest}`); + return; + } + } + await fs.promises.copyFile(src, dest); + console.log(`[${script_prefix}:copy] ${dest}`); + }; + + const fileExists = (path) => { + return !!fs.existsSync(path); + }; + + const initPath = process.env.INIT_CWD; + + const srcDir = '../oidc-client-service-worker/dist/'; + const destinationDir = path.join(initPath, 'public'); + + const files = [ + { + fileName: 'OidcServiceWorker.js', + overwrite: true, + }, + { + fileName: 'OidcTrustedDomains.js', + overwrite: false, + }, + ]; + + for await (const file of files) { + await copyFile( + path.join(srcDir, file.fileName), + path.join(destinationDir, file.fileName), + file.overwrite + ); } - await fs.promises.copyFile(src, dest); - console.log(`[${script_prefix}:copy] ${dest}`); -}; - -const fileExists = (path) => { - return !!fs.existsSync(path); -}; - -const initPath = process.env.INIT_CWD; - -const srcDir = '../oidc-client-service-worker/dist/'; -const destinationDir = path.join(initPath, 'public'); - -const files = [ - { - fileName: 'OidcServiceWorker.js', - overwrite: true, - }, - { - fileName: 'OidcTrustedDomains.js', - overwrite: false, - }, -]; - -for await (const f of files) { - await copyFile( - path.join(srcDir, f.fileName), - path.join(destinationDir, f.fileName), - f.overwrite - ); -} + +} catch (err) { + console.warn(err); +} \ No newline at end of file From 9139393069142b05708f73a64ee81afdfaf0104f Mon Sep 17 00:00:00 2001 From: kosciolek <45483493+kosciolek@users.noreply.github.com> Date: Mon, 24 Jul 2023 12:24:47 +0200 Subject: [PATCH 005/440] fix(oidc): Service Worker improper token revocation when logging out and showAccessToken=true (#1104) (release) fixes #1095 --- .../src/OidcServiceWorker.ts | 32 +++++++++++-------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/packages/oidc-client-service-worker/src/OidcServiceWorker.ts b/packages/oidc-client-service-worker/src/OidcServiceWorker.ts index 22c940865..e3777ef67 100644 --- a/packages/oidc-client-service-worker/src/OidcServiceWorker.ts +++ b/packages/oidc-client-service-worker/src/OidcServiceWorker.ts @@ -239,24 +239,30 @@ const handleFetch = async (event: FetchEvent) => { integrity: clonedRequest.integrity, }).then(hideTokens(currentDatabase)); } - return undefined; + + // if showAccessToken=true, the token is already in the body + // of the request, and it does not need to be injected + // and we can simply clone the request + return fetch(originalRequest, { + body: actualBody, + method: clonedRequest.method, + headers: { + ...serializeHeaders(originalRequest.headers), + }, + mode: clonedRequest.mode, + cache: clonedRequest.cache, + redirect: clonedRequest.redirect, + referrer: clonedRequest.referrer, + credentials: clonedRequest.credentials, + integrity: clonedRequest.integrity, + }); }); response .then((r) => { - if (r !== undefined) { - resolve(r); - } else { - console.log('success undefined'); - reject(new Error('Response is undefined inside a success')); - } + resolve(r); }) .catch((err) => { - if (err !== undefined) { - reject(err); - } else { - console.log('error undefined'); - reject(new Error('Response is undefined inside a error')); - } + reject(err); }); }); From 34ac877f2a82c9e048896bec8d077274216b8619 Mon Sep 17 00:00:00 2001 From: GitHub Date: Mon, 24 Jul 2023 10:27:14 +0000 Subject: [PATCH 006/440] [skip ci] Update version package.json --- .../oidc-client-service-worker/package.json | 2 +- packages/oidc-client/package-lock.json | 4 +-- packages/oidc-client/package.json | 2 +- .../oidc-client/public/OidcServiceWorker.js | 28 ++++++++++--------- packages/react-oidc/package.json | 2 +- 5 files changed, 20 insertions(+), 18 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index dcd21abc1..2913ca8d9 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "6.24.1", + "version": "6.25.4", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client/package-lock.json b/packages/oidc-client/package-lock.json index edc2f0212..a7c64ed61 100644 --- a/packages/oidc-client/package-lock.json +++ b/packages/oidc-client/package-lock.json @@ -1,12 +1,12 @@ { "name": "@axa-fr/vanilla-oidc", - "version": "6.25.3-alpha950", + "version": "6.25.4", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@axa-fr/vanilla-oidc", - "version": "6.25.3-alpha950", + "version": "6.25.4", "hasInstallScript": true, "license": "MIT", "dependencies": { diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 6a6e0e4bd..7f7689826 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/vanilla-oidc", - "version": "6.24.1", + "version": "6.25.4", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/public/OidcServiceWorker.js b/packages/oidc-client/public/OidcServiceWorker.js index b70fc4b42..0d3e97871 100644 --- a/packages/oidc-client/public/OidcServiceWorker.js +++ b/packages/oidc-client/public/OidcServiceWorker.js @@ -396,22 +396,24 @@ const handleFetch = async (event) => { integrity: clonedRequest.integrity }).then(hideTokens(currentDatabase)); } - return void 0; + return fetch(originalRequest, { + body: actualBody, + method: clonedRequest.method, + headers: { + ...serializeHeaders(originalRequest.headers) + }, + mode: clonedRequest.mode, + cache: clonedRequest.cache, + redirect: clonedRequest.redirect, + referrer: clonedRequest.referrer, + credentials: clonedRequest.credentials, + integrity: clonedRequest.integrity + }); }); response.then((r) => { - if (r !== void 0) { - resolve(r); - } else { - console.log("success undefined"); - reject(new Error("Response is undefined inside a success")); - } + resolve(r); }).catch((err) => { - if (err !== void 0) { - reject(err); - } else { - console.log("error undefined"); - reject(new Error("Response is undefined inside a error")); - } + reject(err); }); }); event.waitUntil(event.respondWith(maPromesse)); diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 9f57a8023..261f2a4c2 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "6.24.1", + "version": "6.25.4", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 8786e85190dbc23de4311381b1c59f08673b0436 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Mon, 24 Jul 2023 12:50:06 +0200 Subject: [PATCH 007/440] fix(ci): github release (release) --- .github/workflows/npm-publish.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml index e2f92b316..b5f637fa1 100644 --- a/.github/workflows/npm-publish.yml +++ b/.github/workflows/npm-publish.yml @@ -238,6 +238,6 @@ jobs: uses: ncipollo/release-action@v1 if: github.ref == 'refs/heads/main' && steps.which_tag.outputs.tag == 'release' with: - tag: ${{ steps.tag_version.outputs.new_tag }} - name: Release ${{ steps.tag_version.outputs.new_tag }} - body: ${{ steps.tag_version.outputs.changelog }} + tag: ${{ steps.tag_release.outputs.new_tag }} + name: Release ${{ steps.tag_release.outputs.new_tag }} + body: ${{ steps.tag_release.outputs.changelog }} From 7c86bd73d0e880a8ebbdfcad70ed5f2492cc0bc3 Mon Sep 17 00:00:00 2001 From: GitHub Date: Mon, 24 Jul 2023 10:52:50 +0000 Subject: [PATCH 008/440] [skip ci] Update version package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client/package-lock.json | 4 ++-- packages/oidc-client/package.json | 2 +- packages/react-oidc/package.json | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 2913ca8d9..b25f8c36f 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "6.25.4", + "version": "6.25.5", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client/package-lock.json b/packages/oidc-client/package-lock.json index a7c64ed61..866d07577 100644 --- a/packages/oidc-client/package-lock.json +++ b/packages/oidc-client/package-lock.json @@ -1,12 +1,12 @@ { "name": "@axa-fr/vanilla-oidc", - "version": "6.25.4", + "version": "6.25.5", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@axa-fr/vanilla-oidc", - "version": "6.25.4", + "version": "6.25.5", "hasInstallScript": true, "license": "MIT", "dependencies": { diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 7f7689826..a7ddaa4d7 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/vanilla-oidc", - "version": "6.25.4", + "version": "6.25.5", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 261f2a4c2..e11073a2a 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "6.25.4", + "version": "6.25.5", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 288ce9937e6e1cb8c1b7c7f6909ebef8a48f12e5 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Mon, 24 Jul 2023 14:30:23 +0200 Subject: [PATCH 009/440] fix(react): ajust peerDependencies (release) --- packages/react-oidc/package.json | 4 +--- pnpm-lock.yaml | 6 +++--- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index e11073a2a..03699790a 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -45,9 +45,7 @@ "base64-js": "1.5.1" }, "peerDependencies": { - "react": "^17.0.0 || ^18.0.0", - "react-dom": "^17.0.0 || ^18.0.0", - "react-router-dom": "^6.0.0" + "react": "^17.0.0 || ^18.0.0" }, "devDependencies": { "@testing-library/jest-dom": "5.16.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7096bd3a6..0c5cf5ee6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -307,9 +307,6 @@ importers: base64-js: specifier: 1.5.1 version: 1.5.1 - react-router-dom: - specifier: ^6.0.0 - version: 6.14.1(react-dom@18.2.0)(react@18.2.0) devDependencies: '@testing-library/jest-dom': specifier: 5.16.5 @@ -1368,6 +1365,7 @@ packages: /@remix-run/router@1.7.1: resolution: {integrity: sha512-bgVQM4ZJ2u2CM8k1ey70o1ePFXsEzYVZoWghh6WjM8p59jQ7HxzbHW4SbnWFG7V9ig9chLawQxDTZ3xzOF8MkQ==} engines: {node: '>=14'} + dev: true /@rollup/pluginutils@5.0.2: resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} @@ -5104,6 +5102,7 @@ packages: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) react-router: 6.14.1(react@18.2.0) + dev: true /react-router@6.14.1(react@18.2.0): resolution: {integrity: sha512-U4PfgvG55LdvbQjg5Y9QRWyVxIdO1LlpYT7x+tMAxd9/vmiPuJhIwdxZuIQLN/9e3O4KFDHYfR9gzGeYMasW8g==} @@ -5113,6 +5112,7 @@ packages: dependencies: '@remix-run/router': 1.7.1 react: 18.2.0 + dev: true /react@18.2.0: resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} From 6b5ba95db3549c4cfd5ea0412c6f0de046256a57 Mon Sep 17 00:00:00 2001 From: GitHub Date: Mon, 24 Jul 2023 12:33:22 +0000 Subject: [PATCH 010/440] [skip ci] Update version package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client/package-lock.json | 4 ++-- packages/oidc-client/package.json | 2 +- packages/react-oidc/package.json | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index b25f8c36f..ab36e0a56 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "6.25.5", + "version": "6.25.6", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client/package-lock.json b/packages/oidc-client/package-lock.json index 866d07577..f123ccb70 100644 --- a/packages/oidc-client/package-lock.json +++ b/packages/oidc-client/package-lock.json @@ -1,12 +1,12 @@ { "name": "@axa-fr/vanilla-oidc", - "version": "6.25.5", + "version": "6.25.6", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@axa-fr/vanilla-oidc", - "version": "6.25.5", + "version": "6.25.6", "hasInstallScript": true, "license": "MIT", "dependencies": { diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index a7ddaa4d7..7b07d22b9 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/vanilla-oidc", - "version": "6.25.5", + "version": "6.25.6", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 03699790a..228993310 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "6.25.5", + "version": "6.25.6", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 762ca423a2efe946d4213a3c482638a386a5b555 Mon Sep 17 00:00:00 2001 From: Jason Finch Date: Thu, 27 Jul 2023 00:11:29 +1000 Subject: [PATCH 011/440] ci(lint): Move eslint config to root. Add GH workflow to run lint. (#1109) - auto-fix minor lint warnings. --- .eslintignore | 13 + .eslintrc.cjs | 170 +- .github/workflows/lint.yml | 45 + .prettierignore | 11 + .prettierrc.cjs | 18 + .prettierrc.json | 4 - __mocks__/fileMock.js | 1 - __mocks__/styleMock.js | 1 - config/defaultEslintConfig.cjs | 151 - examples/nextjs-demo/package-lock.json | 611 --- examples/react-oidc-demo/.eslintrc.cjs | 18 - examples/react-oidc-demo/package.json | 8 - package.json | 9 + .../oidc-client-service-worker/.eslintrc.cjs | 18 - .../config/defaultEslintConfig.cjs | 148 - .../oidc-client-service-worker/package.json | 8 - packages/oidc-client/.eslintrc.cjs | 17 - .../config/defaultEslintConfig.cjs | 148 - packages/oidc-client/package-lock.json | 4725 ----------------- packages/oidc-client/package.json | 6 - packages/oidc-client/src/iniWorker.spec.ts | 4 +- packages/oidc-client/src/logout.spec.ts | 18 +- packages/oidc-client/src/parseTokens.spec.ts | 17 +- packages/oidc-client/src/requests.spec.ts | 2 +- packages/oidc-client/src/route-utils.spec.ts | 5 +- packages/oidc-client/tests/setup.js | 4 +- packages/oidc-client/vite.config.ts | 9 +- packages/react-oidc/.eslintrc.cjs | 18 - .../react-oidc/config/defaultEslintConfig.cjs | 148 - packages/react-oidc/package.json | 8 - .../src/core/routes/OidcRoutes.spec.tsx | 7 +- .../src/core/routes/withRouter.spec.tsx | 7 +- packages/react-oidc/tests/setup.js | 4 +- packages/react-oidc/vite.config.ts | 7 +- pnpm-lock.yaml | 423 +- pnpm-workspace.yaml | 2 +- tsconfig.base.json | 13 + tsconfig.eslint.json | 3 + tsconfig.json | 5 + 39 files changed, 475 insertions(+), 6359 deletions(-) create mode 100644 .eslintignore create mode 100644 .github/workflows/lint.yml create mode 100644 .prettierignore create mode 100644 .prettierrc.cjs delete mode 100644 .prettierrc.json delete mode 100644 __mocks__/fileMock.js delete mode 100644 __mocks__/styleMock.js delete mode 100644 config/defaultEslintConfig.cjs delete mode 100644 examples/nextjs-demo/package-lock.json delete mode 100644 examples/react-oidc-demo/.eslintrc.cjs delete mode 100644 packages/oidc-client-service-worker/.eslintrc.cjs delete mode 100644 packages/oidc-client-service-worker/config/defaultEslintConfig.cjs delete mode 100644 packages/oidc-client/.eslintrc.cjs delete mode 100644 packages/oidc-client/config/defaultEslintConfig.cjs delete mode 100644 packages/oidc-client/package-lock.json delete mode 100644 packages/react-oidc/.eslintrc.cjs delete mode 100644 packages/react-oidc/config/defaultEslintConfig.cjs create mode 100644 tsconfig.base.json create mode 100644 tsconfig.eslint.json create mode 100644 tsconfig.json diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 000000000..21c3cdfe7 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,13 @@ +**/*.d.ts +packages/**/dist/**/* +packages/**/public/**/* +packages/**/coverage/**/* +packages/**/fixtures/**/* +node_modules +# TODO Disable examples, we want to include it. +examples/**/* +public/**/* +scripts/**/* +.github +.changeset +vite.config.js \ No newline at end of file diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 968c0320f..48970a76b 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -1,18 +1,156 @@ module.exports = { - extends: [__dirname+'/config/defaultEslintConfig.cjs'], - parserOptions: { - project: './tsconfig.eslint.json', - tsconfigRootDir: __dirname, + parser: '@typescript-eslint/parser', + root: true, + extends: [ + // 'standard', + 'plugin:react/recommended', + 'plugin:react-hooks/recommended', + 'eslint:recommended', + 'plugin:@typescript-eslint/eslint-recommended', + 'plugin:@typescript-eslint/recommended', + //'plugin:@typescript-eslint/recommended-type-checked', //ideally we want this on + // 'plugin:@typescript-eslint/stylistic-type-checked', + 'plugin:import/typescript', + 'plugin:jsx-a11y/recommended', + 'prettier', // must be last + ], + plugins: ['@typescript-eslint', 'simple-import-sort', 'testing-library', 'react', 'prettier'], + parserOptions: { + project: ['./tsconfig.eslint.json', './packages/*/tsconfig.eslint.json'], + ecmaVersion: 2022, + sourceType: 'module', + ecmaFeatures: { + jsx: true, }, - rules: { - '@typescript-eslint/naming-convention': [ - 'error', - { - 'selector': 'variable', - 'types': ['boolean'], - 'format': ['PascalCase'], - 'prefix': ['is', 'with', 'should', 'has', 'can', 'did', 'will'] - } - ] - } - } \ No newline at end of file + warnOnUnsupportedTypeScriptVersion: true, + }, + rules: { + // '@typescript-eslint/naming-convention': [ + // 'error', + // { + // selector: 'variable', + // types: ['boolean'], + // format: ['PascalCase'], + // prefix: ['is', 'with', 'should', 'has', 'can', 'did', 'will'], + // }, + // ], + '@typescript-eslint/interface-name-prefix': 'off', + '@typescript-eslint/no-non-null-assertion': 'off', + '@typescript-eslint/explicit-module-boundary-types': 'off', + '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/ban-ts-comment': 'off', + 'no-unused-vars': 'off', + '@typescript-eslint/no-unused-vars': [ + 'error', + { + argsIgnorePattern: '^_|req|res|next|err|ctx|args|context|info|index|data', + ignoreRestSiblings: true, + }, + ], + 'no-array-constructor': 'off', + '@typescript-eslint/no-array-constructor': 'warn', + 'no-redeclare': 'off', + '@typescript-eslint/no-redeclare': 'warn', + 'no-use-before-define': 'off', + '@typescript-eslint/no-use-before-define': [ + 'warn', + { + functions: false, + classes: false, + variables: false, + typedefs: false, + }, + ], + 'no-unused-expressions': 'off', + '@typescript-eslint/no-unused-expressions': [ + 'error', + { + allowShortCircuit: true, + allowTernary: true, + allowTaggedTemplates: true, + }, + ], + '@typescript-eslint/triple-slash-reference': 'off', + '@typescript-eslint/member-delimiter-style': [ + 'error', + { + multiline: { + delimiter: 'semi', + requireLast: true, + }, + singleline: { + delimiter: 'semi', + requireLast: false, + }, + }, + ], + camelcase: 'off', + 'comma-dangle': [ + 'error', + { + arrays: 'always-multiline', + objects: 'always-multiline', + imports: 'always-multiline', + exports: 'always-multiline', + functions: 'always-multiline', + }, + ], + 'array-callback-return': 'warn', + 'jsx-quotes': ['error', 'prefer-double'], + // 'max-len': ['error', { code: 120 }], + indent: 'off', + // quotes: ['error', 'single'], + semi: ['error', 'always'], + 'space-before-function-paren': 'off', + + 'import/no-named-as-default': 'off', + 'import/no-named-as-default-member': 'off', + 'import/default': 'off', + 'import/named': 'off', + 'import/namespace': 'off', + 'import/no-unresolved': 'off', + 'simple-import-sort/imports': 'error', + 'simple-import-sort/exports': 'error', + 'react/prop-types': 'off', + 'react/jsx-wrap-multilines': 'error', + 'react/react-in-jsx-scope': 'off', + 'react/display-name': 'off', + // https://github.com/facebook/react/tree/master/packages/-react-hooks + 'react-hooks/rules-of-hooks': 'error', + 'react-hooks/exhaustive-deps': 'off', + }, + + overrides: [ + { + files: ['*.js', '*.jsx'], + rules: { + '@typescript-eslint/no-var-requires': 'off', + }, + }, + { + // 3) Now we enable -testing-library rules or preset only for matching files! + files: ['**/?(*.)+(spec|test).[jt]s?(x)'], + extends: ['plugin:testing-library/react'], + rules: { + 'testing-library/await-async-query': 'error', + 'testing-library/no-await-sync-query': 'error', + 'testing-library/no-debugging-utils': 'warn', + 'testing-library/no-dom-import': 'off', + 'testing-library/no-unnecessary-act': 'off', + }, + }, + ], + settings: { + react: { + version: 'detect', + }, + // 'import/parsers': { + // '@typescript-eslint/parser': ['.ts', '.tsx'], + // }, + 'import/resolver': { + typescript: { + alwaysTryTypes: true, + }, + }, + }, +}; diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 000000000..5797ce19a --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,45 @@ +name: Lint + +on: + # Trigger the workflow on push or pull request, + # but only for the main branch + push: + # branches: + # - main + pull_request: + # branches: + # - main + +env: + PNPM_VERSION: 8.5.1 + NODE_VERSION: 18 + +jobs: + run-linters: + name: Run linters + runs-on: ubuntu-latest + + steps: + - name: Check out Git repository + uses: actions/checkout@v3 + + - name: Install node.js + uses: actions/setup-node@v3 + with: + node-version: ${{ env.NODE_VERSION }} + + - uses: pnpm/action-setup@v2 + name: Install pnpm + with: + version: ${{ env.PNPM_VERSION }} + run_install: false + + # ESLint and Prettier must be in `package.json` + - name: Install dependencies + run: pnpm i + + - name: Run linters + uses: wearerequired/lint-action@v2 + with: + eslint: true + prettier: false #runs part of eslint \ No newline at end of file diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 000000000..88b151d4f --- /dev/null +++ b/.prettierignore @@ -0,0 +1,11 @@ +# deep dirs +**/dist +**/node_modules +**/fixtures + +# directories +.github +.changeset + +# files +pnpm-lock.yaml \ No newline at end of file diff --git a/.prettierrc.cjs b/.prettierrc.cjs new file mode 100644 index 000000000..dbb27c237 --- /dev/null +++ b/.prettierrc.cjs @@ -0,0 +1,18 @@ +module.exports = { + printWidth: 100, + semi: true, + singleQuote: true, + jsxSingleQuote: true, + tabWidth: 2, + trailingComma: 'es5', + useTabs: true, + plugins: [], + overrides: [ + { + files: ['.*', '*.json', '*.md', '*.toml', '*.yml'], + options: { + useTabs: false, + }, + }, + ], +}; diff --git a/.prettierrc.json b/.prettierrc.json deleted file mode 100644 index 8de7f847e..000000000 --- a/.prettierrc.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "jsxSingleQuote": true, - "singleQuote": true -} \ No newline at end of file diff --git a/__mocks__/fileMock.js b/__mocks__/fileMock.js deleted file mode 100644 index 86059f362..000000000 --- a/__mocks__/fileMock.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = 'test-file-stub'; diff --git a/__mocks__/styleMock.js b/__mocks__/styleMock.js deleted file mode 100644 index f053ebf79..000000000 --- a/__mocks__/styleMock.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = {}; diff --git a/config/defaultEslintConfig.cjs b/config/defaultEslintConfig.cjs deleted file mode 100644 index 712543dd7..000000000 --- a/config/defaultEslintConfig.cjs +++ /dev/null @@ -1,151 +0,0 @@ -module.exports = { - parser: '@typescript-eslint/parser', - extends: [ - 'standard', - // 'plugin:react/recommended', - 'plugin:react-hooks/recommended', - 'plugin:@typescript-eslint/eslint-recommended', - 'plugin:@typescript-eslint/recommended', - // 'plugin:import/errors', - //'plugin:import/warnings', - 'plugin:import/typescript', - 'plugin:jsx-a11y/recommended', - ], - plugins: ['simple-import-sort', 'testing-library'], - env: { - node: true, - es6: true, - browser: true, - }, - parserOptions: { - ecmaVersion: 2018, - sourceType: 'module', - ecmaFeatures: { - jsx: true, - }, - // typescript-eslint specific options - warnOnUnsupportedTypeScriptVersion: true, - }, - rules: { - // '@typescript-eslint/indent': ['error', 2], - '@typescript-eslint/interface-name-prefix': 'off', - '@typescript-eslint/no-non-null-assertion': 'off', - '@typescript-eslint/explicit-module-boundary-types': 'off', - '@typescript-eslint/no-explicit-any': 'off', - '@typescript-eslint/ban-ts-comment': 'off', - 'no-unused-vars': 'off', - '@typescript-eslint/no-unused-vars': [ - 'error', - { - argsIgnorePattern: '^_|req|res|next|err|ctx|args|context|info', - ignoreRestSiblings: true, - }, - ], - 'no-array-constructor': 'off', - '@typescript-eslint/no-array-constructor': 'warn', - 'no-redeclare': 'off', - '@typescript-eslint/no-redeclare': 'warn', - 'no-use-before-define': 'off', - '@typescript-eslint/no-use-before-define': [ - 'warn', - { - functions: false, - classes: false, - variables: false, - typedefs: false, - }, - ], - 'no-unused-expressions': 'off', - '@typescript-eslint/no-unused-expressions': [ - 'error', - { - allowShortCircuit: true, - allowTernary: true, - allowTaggedTemplates: true, - }, - ], - '@typescript-eslint/triple-slash-reference': 'off', - '@typescript-eslint/member-delimiter-style': [ - 'error', - { - multiline: { - delimiter: 'semi', - requireLast: true, - }, - singleline: { - delimiter: 'semi', - requireLast: false, - }, - }, - ], - camelcase: 'off', - 'comma-dangle': [ - 'error', - { - arrays: 'always-multiline', - objects: 'always-multiline', - imports: 'always-multiline', - exports: 'always-multiline', - functions: 'always-multiline', - }, - ], - 'array-callback-return': 'warn', - 'jsx-quotes': ['error', 'prefer-double'], - // 'max-len': ['error', { code: 120 }], - indent: 'off', - // quotes: ['error', 'single'], - semi: ['error', 'always'], - 'space-before-function-paren': 'off', - - 'import/no-named-as-default': 'off', - 'import/no-named-as-default-member': 'off', - 'import/default': 'off', - 'import/named': 'off', - 'import/namespace': 'off', - 'import/no-unresolved': 'off', - 'simple-import-sort/imports': 'error', - 'simple-import-sort/exports': 'error', - 'react/prop-types': 'off', - 'react/jsx-wrap-multilines': 'error', - 'react/react-in-jsx-scope': 'off', - 'react/display-name': 'off', - // https://github.com/facebook/react/tree/master/packages/eslint-plugin-react-hooks - 'react-hooks/rules-of-hooks': 'error', - 'react-hooks/exhaustive-deps': 'off', - }, - - overrides: [ - { - files: ['*.js', '*.jsx'], - rules: { - '@typescript-eslint/no-var-requires': 'off', - }, - }, - { - // 3) Now we enable eslint-plugin-testing-library rules or preset only for matching files! - files: ['**/?(*.)+(spec|test).[jt]s?(x)'], - extends: ['plugin:testing-library/react'], - rules: { - 'testing-library/await-async-query': 'error', - 'testing-library/no-await-sync-query': 'error', - 'testing-library/no-debugging-utils': 'warn', - 'testing-library/no-dom-import': 'off', - 'testing-library/no-unnecessary-act': 'off', - }, - }, - ], - - settings: { - react: { - version: 'detect', - }, - 'import/parsers': { - '@typescript-eslint/parser': ['.ts', '.tsx'], - }, - 'import/resolver': { - typescript: { - alwaysTryTypes: true, - }, - }, - }, - }; \ No newline at end of file diff --git a/examples/nextjs-demo/package-lock.json b/examples/nextjs-demo/package-lock.json deleted file mode 100644 index 211d03362..000000000 --- a/examples/nextjs-demo/package-lock.json +++ /dev/null @@ -1,611 +0,0 @@ -{ - "name": "nextjs-demo", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "dependencies": { - "@axa-fr/react-oidc": "6.22.15", - "next": "latest", - "react": "latest", - "react-dom": "latest" - } - }, - "node_modules/@axa-fr/react-oidc": { - "version": "6.22.15", - "resolved": "https://registry.npmjs.org/@axa-fr/react-oidc/-/react-oidc-6.22.15.tgz", - "integrity": "sha512-6/CpYONlBRFyJ8HW98dWkMX8LpdOD6EjGB2PvgL3p1K2fyPk/MVQKTsYGUBWnJILddxsyioqys3kWYprc4Cujw==", - "hasInstallScript": true, - "dependencies": { - "base64-js": "1.5.1" - }, - "peerDependencies": { - "react": "^17.0.0 || ^18.0.0", - "react-dom": "^17.0.0 || ^18.0.0" - } - }, - "node_modules/@next/env": { - "version": "12.1.6", - "resolved": "https://registry.npmjs.org/@next/env/-/env-12.1.6.tgz", - "integrity": "sha512-Te/OBDXFSodPU6jlXYPAXpmZr/AkG6DCATAxttQxqOWaq6eDFX25Db3dK0120GZrSZmv4QCe9KsZmJKDbWs4OA==" - }, - "node_modules/@next/swc-android-arm-eabi": { - "version": "12.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.1.6.tgz", - "integrity": "sha512-BxBr3QAAAXWgk/K7EedvzxJr2dE014mghBSA9iOEAv0bMgF+MRq4PoASjuHi15M2zfowpcRG8XQhMFtxftCleQ==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-android-arm64": { - "version": "12.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.1.6.tgz", - "integrity": "sha512-EboEk3ROYY7U6WA2RrMt/cXXMokUTXXfnxe2+CU+DOahvbrO8QSWhlBl9I9ZbFzJx28AGB9Yo3oQHCvph/4Lew==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-darwin-arm64": { - "version": "12.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.1.6.tgz", - "integrity": "sha512-P0EXU12BMSdNj1F7vdkP/VrYDuCNwBExtRPDYawgSUakzi6qP0iKJpya2BuLvNzXx+XPU49GFuDC5X+SvY0mOw==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-darwin-x64": { - "version": "12.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.1.6.tgz", - "integrity": "sha512-9FptMnbgHJK3dRDzfTpexs9S2hGpzOQxSQbe8omz6Pcl7rnEp9x4uSEKY51ho85JCjL4d0tDLBcXEJZKKLzxNg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-arm-gnueabihf": { - "version": "12.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.1.6.tgz", - "integrity": "sha512-PvfEa1RR55dsik/IDkCKSFkk6ODNGJqPY3ysVUZqmnWMDSuqFtf7BPWHFa/53znpvVB5XaJ5Z1/6aR5CTIqxPw==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-arm64-gnu": { - "version": "12.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.1.6.tgz", - "integrity": "sha512-53QOvX1jBbC2ctnmWHyRhMajGq7QZfl974WYlwclXarVV418X7ed7o/EzGY+YVAEKzIVaAB9JFFWGXn8WWo0gQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-arm64-musl": { - "version": "12.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.1.6.tgz", - "integrity": "sha512-CMWAkYqfGdQCS+uuMA1A2UhOfcUYeoqnTW7msLr2RyYAys15pD960hlDfq7QAi8BCAKk0sQ2rjsl0iqMyziohQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-x64-gnu": { - "version": "12.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.1.6.tgz", - "integrity": "sha512-AC7jE4Fxpn0s3ujngClIDTiEM/CQiB2N2vkcyWWn6734AmGT03Duq6RYtPMymFobDdAtZGFZd5nR95WjPzbZAQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-x64-musl": { - "version": "12.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.1.6.tgz", - "integrity": "sha512-c9Vjmi0EVk0Kou2qbrynskVarnFwfYIi+wKufR9Ad7/IKKuP6aEhOdZiIIdKsYWRtK2IWRF3h3YmdnEa2WLUag==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-arm64-msvc": { - "version": "12.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.1.6.tgz", - "integrity": "sha512-3UTOL/5XZSKFelM7qN0it35o3Cegm6LsyuERR3/OoqEExyj3aCk7F025b54/707HTMAnjlvQK3DzLhPu/xxO4g==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-ia32-msvc": { - "version": "12.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.1.6.tgz", - "integrity": "sha512-8ZWoj6nCq6fI1yCzKq6oK0jE6Mxlz4MrEsRyu0TwDztWQWe7rh4XXGLAa2YVPatYcHhMcUL+fQQbqd1MsgaSDA==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-x64-msvc": { - "version": "12.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.1.6.tgz", - "integrity": "sha512-4ZEwiRuZEicXhXqmhw3+de8Z4EpOLQj/gp+D9fFWo6ii6W1kBkNNvvEx4A90ugppu+74pT1lIJnOuz3A9oQeJA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001359", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001359.tgz", - "integrity": "sha512-Xln/BAsPzEuiVLgJ2/45IaqD9jShtk3Y33anKb4+yLwQzws3+v6odKfpgES/cDEaZMLzSChpIGdbOYtH9MyuHw==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - } - ] - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/next": { - "version": "12.1.6", - "resolved": "https://registry.npmjs.org/next/-/next-12.1.6.tgz", - "integrity": "sha512-cebwKxL3/DhNKfg9tPZDQmbRKjueqykHHbgaoG4VBRH3AHQJ2HO0dbKFiS1hPhe1/qgc2d/hFeadsbPicmLD+A==", - "dependencies": { - "@next/env": "12.1.6", - "caniuse-lite": "^1.0.30001332", - "postcss": "8.4.5", - "styled-jsx": "5.0.2" - }, - "bin": { - "next": "dist/bin/next" - }, - "engines": { - "node": ">=12.22.0" - }, - "optionalDependencies": { - "@next/swc-android-arm-eabi": "12.1.6", - "@next/swc-android-arm64": "12.1.6", - "@next/swc-darwin-arm64": "12.1.6", - "@next/swc-darwin-x64": "12.1.6", - "@next/swc-linux-arm-gnueabihf": "12.1.6", - "@next/swc-linux-arm64-gnu": "12.1.6", - "@next/swc-linux-arm64-musl": "12.1.6", - "@next/swc-linux-x64-gnu": "12.1.6", - "@next/swc-linux-x64-musl": "12.1.6", - "@next/swc-win32-arm64-msvc": "12.1.6", - "@next/swc-win32-ia32-msvc": "12.1.6", - "@next/swc-win32-x64-msvc": "12.1.6" - }, - "peerDependencies": { - "fibers": ">= 3.1.0", - "node-sass": "^6.0.0 || ^7.0.0", - "react": "^17.0.2 || ^18.0.0-0", - "react-dom": "^17.0.2 || ^18.0.0-0", - "sass": "^1.3.0" - }, - "peerDependenciesMeta": { - "fibers": { - "optional": true - }, - "node-sass": { - "optional": true - }, - "sass": { - "optional": true - } - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "node_modules/postcss": { - "version": "8.4.5", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", - "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", - "dependencies": { - "nanoid": "^3.1.30", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/react": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", - "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-dom": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", - "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "scheduler": "^0.20.2" - }, - "peerDependencies": { - "react": "17.0.2" - } - }, - "node_modules/scheduler": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", - "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/styled-jsx": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.2.tgz", - "integrity": "sha512-LqPQrbBh3egD57NBcHET4qcgshPks+yblyhPlH2GY8oaDgKs8SK4C3dBh3oSJjgzJ3G5t1SYEZGHkP+QEpX9EQ==", - "engines": { - "node": ">= 12.0.0" - }, - "peerDependencies": { - "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0" - }, - "peerDependenciesMeta": { - "@babel/core": { - "optional": true - }, - "babel-plugin-macros": { - "optional": true - } - } - } - }, - "dependencies": { - "@axa-fr/react-oidc": { - "version": "6.22.15", - "resolved": "https://registry.npmjs.org/@axa-fr/react-oidc/-/react-oidc-6.22.15.tgz", - "integrity": "sha512-6/CpYONlBRFyJ8HW98dWkMX8LpdOD6EjGB2PvgL3p1K2fyPk/MVQKTsYGUBWnJILddxsyioqys3kWYprc4Cujw==", - "requires": { - "base64-js": "1.5.1" - } - }, - "@next/env": { - "version": "12.1.6", - "resolved": "https://registry.npmjs.org/@next/env/-/env-12.1.6.tgz", - "integrity": "sha512-Te/OBDXFSodPU6jlXYPAXpmZr/AkG6DCATAxttQxqOWaq6eDFX25Db3dK0120GZrSZmv4QCe9KsZmJKDbWs4OA==" - }, - "@next/swc-android-arm-eabi": { - "version": "12.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.1.6.tgz", - "integrity": "sha512-BxBr3QAAAXWgk/K7EedvzxJr2dE014mghBSA9iOEAv0bMgF+MRq4PoASjuHi15M2zfowpcRG8XQhMFtxftCleQ==", - "optional": true - }, - "@next/swc-android-arm64": { - "version": "12.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.1.6.tgz", - "integrity": "sha512-EboEk3ROYY7U6WA2RrMt/cXXMokUTXXfnxe2+CU+DOahvbrO8QSWhlBl9I9ZbFzJx28AGB9Yo3oQHCvph/4Lew==", - "optional": true - }, - "@next/swc-darwin-arm64": { - "version": "12.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.1.6.tgz", - "integrity": "sha512-P0EXU12BMSdNj1F7vdkP/VrYDuCNwBExtRPDYawgSUakzi6qP0iKJpya2BuLvNzXx+XPU49GFuDC5X+SvY0mOw==", - "optional": true - }, - "@next/swc-darwin-x64": { - "version": "12.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.1.6.tgz", - "integrity": "sha512-9FptMnbgHJK3dRDzfTpexs9S2hGpzOQxSQbe8omz6Pcl7rnEp9x4uSEKY51ho85JCjL4d0tDLBcXEJZKKLzxNg==", - "optional": true - }, - "@next/swc-linux-arm-gnueabihf": { - "version": "12.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.1.6.tgz", - "integrity": "sha512-PvfEa1RR55dsik/IDkCKSFkk6ODNGJqPY3ysVUZqmnWMDSuqFtf7BPWHFa/53znpvVB5XaJ5Z1/6aR5CTIqxPw==", - "optional": true - }, - "@next/swc-linux-arm64-gnu": { - "version": "12.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.1.6.tgz", - "integrity": "sha512-53QOvX1jBbC2ctnmWHyRhMajGq7QZfl974WYlwclXarVV418X7ed7o/EzGY+YVAEKzIVaAB9JFFWGXn8WWo0gQ==", - "optional": true - }, - "@next/swc-linux-arm64-musl": { - "version": "12.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.1.6.tgz", - "integrity": "sha512-CMWAkYqfGdQCS+uuMA1A2UhOfcUYeoqnTW7msLr2RyYAys15pD960hlDfq7QAi8BCAKk0sQ2rjsl0iqMyziohQ==", - "optional": true - }, - "@next/swc-linux-x64-gnu": { - "version": "12.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.1.6.tgz", - "integrity": "sha512-AC7jE4Fxpn0s3ujngClIDTiEM/CQiB2N2vkcyWWn6734AmGT03Duq6RYtPMymFobDdAtZGFZd5nR95WjPzbZAQ==", - "optional": true - }, - "@next/swc-linux-x64-musl": { - "version": "12.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.1.6.tgz", - "integrity": "sha512-c9Vjmi0EVk0Kou2qbrynskVarnFwfYIi+wKufR9Ad7/IKKuP6aEhOdZiIIdKsYWRtK2IWRF3h3YmdnEa2WLUag==", - "optional": true - }, - "@next/swc-win32-arm64-msvc": { - "version": "12.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.1.6.tgz", - "integrity": "sha512-3UTOL/5XZSKFelM7qN0it35o3Cegm6LsyuERR3/OoqEExyj3aCk7F025b54/707HTMAnjlvQK3DzLhPu/xxO4g==", - "optional": true - }, - "@next/swc-win32-ia32-msvc": { - "version": "12.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.1.6.tgz", - "integrity": "sha512-8ZWoj6nCq6fI1yCzKq6oK0jE6Mxlz4MrEsRyu0TwDztWQWe7rh4XXGLAa2YVPatYcHhMcUL+fQQbqd1MsgaSDA==", - "optional": true - }, - "@next/swc-win32-x64-msvc": { - "version": "12.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.1.6.tgz", - "integrity": "sha512-4ZEwiRuZEicXhXqmhw3+de8Z4EpOLQj/gp+D9fFWo6ii6W1kBkNNvvEx4A90ugppu+74pT1lIJnOuz3A9oQeJA==", - "optional": true - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - }, - "caniuse-lite": { - "version": "1.0.30001359", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001359.tgz", - "integrity": "sha512-Xln/BAsPzEuiVLgJ2/45IaqD9jShtk3Y33anKb4+yLwQzws3+v6odKfpgES/cDEaZMLzSChpIGdbOYtH9MyuHw==" - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" - }, - "next": { - "version": "12.1.6", - "resolved": "https://registry.npmjs.org/next/-/next-12.1.6.tgz", - "integrity": "sha512-cebwKxL3/DhNKfg9tPZDQmbRKjueqykHHbgaoG4VBRH3AHQJ2HO0dbKFiS1hPhe1/qgc2d/hFeadsbPicmLD+A==", - "requires": { - "@next/env": "12.1.6", - "@next/swc-android-arm-eabi": "12.1.6", - "@next/swc-android-arm64": "12.1.6", - "@next/swc-darwin-arm64": "12.1.6", - "@next/swc-darwin-x64": "12.1.6", - "@next/swc-linux-arm-gnueabihf": "12.1.6", - "@next/swc-linux-arm64-gnu": "12.1.6", - "@next/swc-linux-arm64-musl": "12.1.6", - "@next/swc-linux-x64-gnu": "12.1.6", - "@next/swc-linux-x64-musl": "12.1.6", - "@next/swc-win32-arm64-msvc": "12.1.6", - "@next/swc-win32-ia32-msvc": "12.1.6", - "@next/swc-win32-x64-msvc": "12.1.6", - "caniuse-lite": "^1.0.30001332", - "postcss": "8.4.5", - "styled-jsx": "5.0.2" - } - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "postcss": { - "version": "8.4.5", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", - "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", - "requires": { - "nanoid": "^3.1.30", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.1" - } - }, - "react": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", - "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "react-dom": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", - "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "scheduler": "^0.20.2" - } - }, - "scheduler": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", - "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" - }, - "styled-jsx": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.2.tgz", - "integrity": "sha512-LqPQrbBh3egD57NBcHET4qcgshPks+yblyhPlH2GY8oaDgKs8SK4C3dBh3oSJjgzJ3G5t1SYEZGHkP+QEpX9EQ==", - "requires": {} - } - } -} diff --git a/examples/react-oidc-demo/.eslintrc.cjs b/examples/react-oidc-demo/.eslintrc.cjs deleted file mode 100644 index 968c0320f..000000000 --- a/examples/react-oidc-demo/.eslintrc.cjs +++ /dev/null @@ -1,18 +0,0 @@ -module.exports = { - extends: [__dirname+'/config/defaultEslintConfig.cjs'], - parserOptions: { - project: './tsconfig.eslint.json', - tsconfigRootDir: __dirname, - }, - rules: { - '@typescript-eslint/naming-convention': [ - 'error', - { - 'selector': 'variable', - 'types': ['boolean'], - 'format': ['PascalCase'], - 'prefix': ['is', 'with', 'should', 'has', 'can', 'did', 'will'] - } - ] - } - } \ No newline at end of file diff --git a/examples/react-oidc-demo/package.json b/examples/react-oidc-demo/package.json index 66c06e02f..dc59cabc5 100644 --- a/examples/react-oidc-demo/package.json +++ b/examples/react-oidc-demo/package.json @@ -24,19 +24,11 @@ "@testing-library/react": "13.3.0", "@testing-library/user-event": "14.4.3", "@types/react": "^18.2.15", - "@typescript-eslint/eslint-plugin": "^5.50.0", - "@typescript-eslint/parser": "^5.50.0", "@vitejs/plugin-react": "4.0.3", "@vitest/coverage-c8": "^0.33.0", "bootstrap": "^4.6.2", "copyfiles": "2.4.1", "cross-env": "^7.0.3", - "eslint": "^8.26.0", - "eslint-config-standard": "^17.1.0", - "eslint-config-standard-with-typescript": "^36.1.0", - "eslint-import-resolver-typescript": "^3.5.5", - "eslint-plugin-react": "^7.32.2", - "eslint-plugin-simple-import-sort": "^10.0.0", "jsdom": "22.1.0", "msw": "1.2.2", "react": "^18.2.0", diff --git a/package.json b/package.json index 830679489..cab2827cc 100644 --- a/package.json +++ b/package.json @@ -22,19 +22,28 @@ "preinstall": "npx only-allow pnpm", "format": "prettier --write --cache .", "lint": "eslint --cache .", + "lint-fix": "eslint --cache --fix .", "outdated": "pnpm outdated -r", "test": "pnpm run test --workspaces --if-present", "build": "pnpm -r --filter=./packages/* run build" }, "devDependencies": { + "@typescript-eslint/eslint-plugin": "^6.0.0", + "@typescript-eslint/parser": "^6.0.0", "eslint": "^8.45.0", + "eslint-config-prettier": "^8.8.0", "eslint-define-config": "^1.21.0", "eslint-plugin-import": "^2.27.5", "eslint-plugin-jsx-a11y": "^6.7.1", "eslint-plugin-n": "^16.0.1", + "eslint-plugin-no-only-tests": "^3.1.0", + "eslint-plugin-prettier": "^5.0.0", + "eslint-plugin-react": "^7.32.2", "eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-regexp": "^1.15.0", + "eslint-plugin-simple-import-sort": "^10.0.0", "eslint-plugin-testing-library": "^5.11.0", + "prettier": "^3.0.0", "tslib": "^2.6.0", "tsx": "^3.12.7", "typescript": "^5.1.6", diff --git a/packages/oidc-client-service-worker/.eslintrc.cjs b/packages/oidc-client-service-worker/.eslintrc.cjs deleted file mode 100644 index a37905353..000000000 --- a/packages/oidc-client-service-worker/.eslintrc.cjs +++ /dev/null @@ -1,18 +0,0 @@ -module.exports = { - extends: [__dirname + '/config/defaultEslintConfig.cjs'], - parserOptions: { - project: './tsconfig.eslint.json', - tsconfigRootDir: __dirname, - }, - rules: { - '@typescript-eslint/naming-convention': [ - 'error', - { - selector: 'variable', - types: ['boolean'], - format: ['PascalCase'], - prefix: ['is', 'with', 'should', 'has', 'can', 'did', 'will'], - }, - ], - }, -}; diff --git a/packages/oidc-client-service-worker/config/defaultEslintConfig.cjs b/packages/oidc-client-service-worker/config/defaultEslintConfig.cjs deleted file mode 100644 index c3fa61f5b..000000000 --- a/packages/oidc-client-service-worker/config/defaultEslintConfig.cjs +++ /dev/null @@ -1,148 +0,0 @@ -module.exports = { - parser: '@typescript-eslint/parser', - extends: [ - 'standard', - 'plugin:react/recommended', - 'plugin:react-hooks/recommended', - 'plugin:@typescript-eslint/eslint-recommended', - 'plugin:@typescript-eslint/recommended', - 'plugin:import/typescript', - 'plugin:jsx-a11y/recommended', - ], - plugins: ['simple-import-sort', 'testing-library'], - env: { - node: true, - es6: true, - browser: true, - }, - parserOptions: { - ecmaVersion: 2018, - sourceType: 'module', - ecmaFeatures: { - jsx: true, - }, - // typescript-eslint specific options - warnOnUnsupportedTypeScriptVersion: true, - }, - rules: { - '@typescript-eslint/interface-name-prefix': 'off', - '@typescript-eslint/no-non-null-assertion': 'off', - '@typescript-eslint/explicit-module-boundary-types': 'off', - '@typescript-eslint/no-explicit-any': 'off', - '@typescript-eslint/ban-ts-comment': 'off', - 'no-unused-vars': 'off', - '@typescript-eslint/no-unused-vars': [ - 'error', - { - argsIgnorePattern: '^_|req|res|next|err|ctx|args|context|info', - ignoreRestSiblings: true, - }, - ], - 'no-array-constructor': 'off', - '@typescript-eslint/no-array-constructor': 'warn', - 'no-redeclare': 'off', - '@typescript-eslint/no-redeclare': 'warn', - 'no-use-before-define': 'off', - '@typescript-eslint/no-use-before-define': [ - 'warn', - { - functions: false, - classes: false, - variables: false, - typedefs: false, - }, - ], - 'no-unused-expressions': 'off', - '@typescript-eslint/no-unused-expressions': [ - 'error', - { - allowShortCircuit: true, - allowTernary: true, - allowTaggedTemplates: true, - }, - ], - '@typescript-eslint/triple-slash-reference': 'off', - '@typescript-eslint/member-delimiter-style': [ - 'error', - { - multiline: { - delimiter: 'semi', - requireLast: true, - }, - singleline: { - delimiter: 'semi', - requireLast: false, - }, - }, - ], - camelcase: 'off', - 'comma-dangle': [ - 'error', - { - arrays: 'always-multiline', - objects: 'always-multiline', - imports: 'always-multiline', - exports: 'always-multiline', - functions: 'always-multiline', - }, - ], - 'array-callback-return': 'warn', - 'jsx-quotes': ['error', 'prefer-double'], - // 'max-len': ['error', { code: 120 }], - indent: 'off', - // quotes: ['error', 'single'], - semi: ['error', 'always'], - 'space-before-function-paren': 'off', - - 'import/no-named-as-default': 'off', - 'import/no-named-as-default-member': 'off', - 'import/default': 'off', - 'import/named': 'off', - 'import/namespace': 'off', - 'import/no-unresolved': 'off', - 'simple-import-sort/imports': 'error', - 'simple-import-sort/exports': 'error', - 'react/prop-types': 'off', - 'react/jsx-wrap-multilines': 'error', - 'react/react-in-jsx-scope': 'off', - 'react/display-name': 'off', - // https://github.com/facebook/react/tree/master/packages/eslint-plugin-react-hooks - 'react-hooks/rules-of-hooks': 'error', - 'react-hooks/exhaustive-deps': 'off', - }, - - overrides: [ - { - files: ['*.js', '*.jsx'], - rules: { - '@typescript-eslint/no-var-requires': 'off', - }, - }, - { - // 3) Now we enable eslint-plugin-testing-library rules or preset only for matching files! - files: ['**/?(*.)+(spec|test).[jt]s?(x)'], - extends: ['plugin:testing-library/react'], - rules: { - 'testing-library/await-async-query': 'error', - 'testing-library/no-await-sync-query': 'error', - 'testing-library/no-debugging-utils': 'warn', - 'testing-library/no-dom-import': 'off', - 'testing-library/no-unnecessary-act': 'off', - }, - }, - ], - - settings: { - react: { - version: 'detect', - }, - 'import/parsers': { - '@typescript-eslint/parser': ['.ts', '.tsx'], - }, - 'import/resolver': { - typescript: { - alwaysTryTypes: true, - }, - }, - }, - }; \ No newline at end of file diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index ab36e0a56..a57f857f1 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -34,17 +34,9 @@ "lint": "eslint src" }, "devDependencies": { - "@typescript-eslint/eslint-plugin": "^5.50.0", - "@typescript-eslint/parser": "^5.50.0", "@vitest/coverage-c8": "^0.33.0", "cpy": "^10.1.0", "cpy-cli": "^5.0.0", - "eslint": "^8.26.0", - "eslint-config-standard": "^17.1.0", - "eslint-config-standard-with-typescript": "^36.1.0", - "eslint-import-resolver-typescript": "^3.5.5", - "eslint-plugin-react": "^7.32.2", - "eslint-plugin-simple-import-sort": "^10.0.0", "rimraf": "5.0.1", "msw": "1.2.2", "typescript": "5.1.6", diff --git a/packages/oidc-client/.eslintrc.cjs b/packages/oidc-client/.eslintrc.cjs deleted file mode 100644 index 6f9d07624..000000000 --- a/packages/oidc-client/.eslintrc.cjs +++ /dev/null @@ -1,17 +0,0 @@ -module.exports = { - extends: [__dirname+'/config/defaultEslintConfig.cjs'], - parserOptions: { - tsconfigRootDir: __dirname, - }, - rules: { - '@typescript-eslint/naming-convention': [ - 'error', - { - 'selector': 'variable', - 'types': ['boolean'], - 'format': ['PascalCase'], - 'prefix': ['is', 'with', 'should', 'has', 'can', 'did', 'will'] - } - ] - } - } \ No newline at end of file diff --git a/packages/oidc-client/config/defaultEslintConfig.cjs b/packages/oidc-client/config/defaultEslintConfig.cjs deleted file mode 100644 index c3fa61f5b..000000000 --- a/packages/oidc-client/config/defaultEslintConfig.cjs +++ /dev/null @@ -1,148 +0,0 @@ -module.exports = { - parser: '@typescript-eslint/parser', - extends: [ - 'standard', - 'plugin:react/recommended', - 'plugin:react-hooks/recommended', - 'plugin:@typescript-eslint/eslint-recommended', - 'plugin:@typescript-eslint/recommended', - 'plugin:import/typescript', - 'plugin:jsx-a11y/recommended', - ], - plugins: ['simple-import-sort', 'testing-library'], - env: { - node: true, - es6: true, - browser: true, - }, - parserOptions: { - ecmaVersion: 2018, - sourceType: 'module', - ecmaFeatures: { - jsx: true, - }, - // typescript-eslint specific options - warnOnUnsupportedTypeScriptVersion: true, - }, - rules: { - '@typescript-eslint/interface-name-prefix': 'off', - '@typescript-eslint/no-non-null-assertion': 'off', - '@typescript-eslint/explicit-module-boundary-types': 'off', - '@typescript-eslint/no-explicit-any': 'off', - '@typescript-eslint/ban-ts-comment': 'off', - 'no-unused-vars': 'off', - '@typescript-eslint/no-unused-vars': [ - 'error', - { - argsIgnorePattern: '^_|req|res|next|err|ctx|args|context|info', - ignoreRestSiblings: true, - }, - ], - 'no-array-constructor': 'off', - '@typescript-eslint/no-array-constructor': 'warn', - 'no-redeclare': 'off', - '@typescript-eslint/no-redeclare': 'warn', - 'no-use-before-define': 'off', - '@typescript-eslint/no-use-before-define': [ - 'warn', - { - functions: false, - classes: false, - variables: false, - typedefs: false, - }, - ], - 'no-unused-expressions': 'off', - '@typescript-eslint/no-unused-expressions': [ - 'error', - { - allowShortCircuit: true, - allowTernary: true, - allowTaggedTemplates: true, - }, - ], - '@typescript-eslint/triple-slash-reference': 'off', - '@typescript-eslint/member-delimiter-style': [ - 'error', - { - multiline: { - delimiter: 'semi', - requireLast: true, - }, - singleline: { - delimiter: 'semi', - requireLast: false, - }, - }, - ], - camelcase: 'off', - 'comma-dangle': [ - 'error', - { - arrays: 'always-multiline', - objects: 'always-multiline', - imports: 'always-multiline', - exports: 'always-multiline', - functions: 'always-multiline', - }, - ], - 'array-callback-return': 'warn', - 'jsx-quotes': ['error', 'prefer-double'], - // 'max-len': ['error', { code: 120 }], - indent: 'off', - // quotes: ['error', 'single'], - semi: ['error', 'always'], - 'space-before-function-paren': 'off', - - 'import/no-named-as-default': 'off', - 'import/no-named-as-default-member': 'off', - 'import/default': 'off', - 'import/named': 'off', - 'import/namespace': 'off', - 'import/no-unresolved': 'off', - 'simple-import-sort/imports': 'error', - 'simple-import-sort/exports': 'error', - 'react/prop-types': 'off', - 'react/jsx-wrap-multilines': 'error', - 'react/react-in-jsx-scope': 'off', - 'react/display-name': 'off', - // https://github.com/facebook/react/tree/master/packages/eslint-plugin-react-hooks - 'react-hooks/rules-of-hooks': 'error', - 'react-hooks/exhaustive-deps': 'off', - }, - - overrides: [ - { - files: ['*.js', '*.jsx'], - rules: { - '@typescript-eslint/no-var-requires': 'off', - }, - }, - { - // 3) Now we enable eslint-plugin-testing-library rules or preset only for matching files! - files: ['**/?(*.)+(spec|test).[jt]s?(x)'], - extends: ['plugin:testing-library/react'], - rules: { - 'testing-library/await-async-query': 'error', - 'testing-library/no-await-sync-query': 'error', - 'testing-library/no-debugging-utils': 'warn', - 'testing-library/no-dom-import': 'off', - 'testing-library/no-unnecessary-act': 'off', - }, - }, - ], - - settings: { - react: { - version: 'detect', - }, - 'import/parsers': { - '@typescript-eslint/parser': ['.ts', '.tsx'], - }, - 'import/resolver': { - typescript: { - alwaysTryTypes: true, - }, - }, - }, - }; \ No newline at end of file diff --git a/packages/oidc-client/package-lock.json b/packages/oidc-client/package-lock.json deleted file mode 100644 index f123ccb70..000000000 --- a/packages/oidc-client/package-lock.json +++ /dev/null @@ -1,4725 +0,0 @@ -{ - "name": "@axa-fr/vanilla-oidc", - "version": "6.25.6", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "@axa-fr/vanilla-oidc", - "version": "6.25.6", - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "base64-js": "1.5.1" - }, - "devDependencies": { - "@craco/types": "^7.1.0", - "@types/react": "^18.0.21", - "copyfiles": "2.4.1", - "rimraf": "3.0.2", - "typescript": "4.5.5" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", - "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz", - "integrity": "sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==", - "dev": true, - "dependencies": { - "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.5", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@craco/types": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@craco/types/-/types-7.1.0.tgz", - "integrity": "sha512-zdyk2G9UfEItrvnB+sd3xDHB5Mf3dsD6wE+Ex6V+Nch+GSXdFGQfXD/l+ZX9hO03R1rmnJPCxrIRPJUib8Q/MQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.19.3", - "@jest/types": "^27.5.1", - "@types/eslint": "^8.4.6", - "autoprefixer": "^10.4.12", - "eslint-webpack-plugin": "^3.2.0", - "webpack": "^5.74.0" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "peer": true, - "dependencies": { - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", - "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==", - "dev": true, - "peer": true, - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz", - "integrity": "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==", - "dev": true, - "peer": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.5.2", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/js": { - "version": "8.43.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.43.0.tgz", - "integrity": "sha512-s2UHCoiXfxMvmfzqoN+vrQ84ahUSYde9qNO1MdxmoEhyHWsfmwOpFlwYV+ePJEVc7gFnATGUi376WowX1N7tFg==", - "dev": true, - "peer": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz", - "integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==", - "dev": true, - "peer": true, - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true, - "peer": true - }, - "node_modules/@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.3.tgz", - "integrity": "sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", - "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "peer": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "peer": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@types/eslint": { - "version": "8.40.2", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.40.2.tgz", - "integrity": "sha512-PRVjQ4Eh9z9pmmtaq8nTjZjQwKFk7YIHIud3lRoKRBgUQjgjRmoGxxGEPXQkF+lH7QkHJRNr5F4aBgYCW0lqpQ==", - "dev": true, - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", - "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", - "dev": true, - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "node_modules/@types/estree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", - "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==", - "dev": true - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "dev": true - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.12", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", - "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==", - "dev": true - }, - "node_modules/@types/node": { - "version": "20.3.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.3.1.tgz", - "integrity": "sha512-EhcH/wvidPy1WeML3TtYFGR83UzjxeWRen9V402T8aUGYsCHOmfoisV3ZSg03gAFIbLq8TnWOJ0f4cALtnSEUg==", - "dev": true - }, - "node_modules/@types/prop-types": { - "version": "15.7.5", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", - "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", - "dev": true - }, - "node_modules/@types/react": { - "version": "18.2.13", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.13.tgz", - "integrity": "sha512-vJ+zElvi/Zn9cVXB5slX2xL8PZodPCwPRDpittQdw43JR2AJ5k3vKdgJJyneV/cYgIbLQUwXa9JVDvUZXGba+Q==", - "dev": true, - "dependencies": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - } - }, - "node_modules/@types/scheduler": { - "version": "0.16.3", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz", - "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==", - "dev": true - }, - "node_modules/@types/yargs": { - "version": "16.0.5", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", - "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", - "dev": true - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", - "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", - "dev": true, - "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", - "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", - "dev": true, - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", - "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", - "dev": true, - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", - "dev": true, - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", - "dev": true - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", - "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-opt": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6", - "@webassemblyjs/wast-printer": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", - "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", - "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", - "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", - "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, - "node_modules/acorn": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.9.0.tgz", - "integrity": "sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-import-assertions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", - "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", - "dev": true, - "peerDependencies": { - "acorn": "^8" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peer": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dev": true, - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "peer": true - }, - "node_modules/autoprefixer": { - "version": "10.4.14", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz", - "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - } - ], - "dependencies": { - "browserslist": "^4.21.5", - "caniuse-lite": "^1.0.30001464", - "fraction.js": "^4.2.0", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.21.9", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz", - "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001503", - "electron-to-chromium": "^1.4.431", - "node-releases": "^2.0.12", - "update-browserslist-db": "^1.0.11" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001506", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001506.tgz", - "integrity": "sha512-6XNEcpygZMCKaufIcgpQNZNf00GEqc7VQON+9Rd0K1bMYo8xhMZRAo5zpbnbMNizi4YNgIDAFrdykWsvY3H4Hw==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "dev": true, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "node_modules/copyfiles": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/copyfiles/-/copyfiles-2.4.1.tgz", - "integrity": "sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==", - "dev": true, - "dependencies": { - "glob": "^7.0.5", - "minimatch": "^3.0.3", - "mkdirp": "^1.0.4", - "noms": "0.0.0", - "through2": "^2.0.1", - "untildify": "^4.0.0", - "yargs": "^16.1.0" - }, - "bin": { - "copyfiles": "copyfiles", - "copyup": "copyfiles" - } - }, - "node_modules/copyfiles/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "peer": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/csstype": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==", - "dev": true - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "peer": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true, - "peer": true - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "peer": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.4.437", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.437.tgz", - "integrity": "sha512-ZFekRuBOHUXp21wrR5lshT6pZa/KmjkhKBAtmZz4NN5sCWlHOk3kdhiwFINrDBsRLX6FjyBAb1TRN+KBeNlyzQ==", - "dev": true - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/enhanced-resolve": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", - "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/es-module-lexer": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.0.tgz", - "integrity": "sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA==", - "dev": true - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "8.43.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.43.0.tgz", - "integrity": "sha512-aaCpf2JqqKesMFGgmRPessmVKjcGXqdlAYLLC3THM8t5nBRZRQ+st5WM/hoJXkdioEXLLbXgclUpM0TXo5HX5Q==", - "dev": true, - "peer": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.0.3", - "@eslint/js": "8.43.0", - "@humanwhocodes/config-array": "^0.11.10", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.0", - "eslint-visitor-keys": "^3.4.1", - "espree": "^9.5.2", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-scope": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", - "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", - "dev": true, - "peer": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", - "dev": true, - "peer": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-webpack-plugin": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz", - "integrity": "sha512-avrKcGncpPbPSUHX6B3stNGzkKFto3eL+DKM4+VyMrVnhPc3vRczVlCq3uhuFOdRvDHTVXuzwk1ZKUrqDQHQ9w==", - "dev": true, - "dependencies": { - "@types/eslint": "^7.29.0 || ^8.4.1", - "jest-worker": "^28.0.2", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0", - "webpack": "^5.0.0" - } - }, - "node_modules/espree": { - "version": "9.5.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz", - "integrity": "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==", - "dev": true, - "peer": true, - "dependencies": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dev": true, - "peer": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true, - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true, - "peer": true - }, - "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "dev": true, - "peer": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "peer": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "peer": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "peer": true, - "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "dev": true, - "peer": true - }, - "node_modules/fraction.js": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", - "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", - "dev": true, - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://www.patreon.com/infusion" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "peer": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true - }, - "node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", - "dev": true, - "peer": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true, - "peer": true - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "peer": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "peer": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, - "peer": true - }, - "node_modules/jest-worker": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", - "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "peer": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true, - "peer": true - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "peer": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", - "dev": true, - "engines": { - "node": ">=6.11.5" - } - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "peer": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true, - "peer": true - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "peer": true - }, - "node_modules/nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "peer": true, - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true, - "peer": true - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "node_modules/node-releases": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.12.tgz", - "integrity": "sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==", - "dev": true - }, - "node_modules/noms": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/noms/-/noms-0.0.0.tgz", - "integrity": "sha1-2o69nzr51nYJGbJ9nNyAkqczKFk=", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "~1.0.31" - } - }, - "node_modules/noms/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "node_modules/noms/node_modules/readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/noms/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "peer": true, - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "peer": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "peer": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "peer": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/postcss": { - "version": "8.4.24", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.24.tgz", - "integrity": "sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "peer": true, - "dependencies": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "peer": true - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "peer": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "peer": true, - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/schema-utils/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/schema-utils/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/schema-utils/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/serialize-javascript": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", - "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "peer": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/terser": { - "version": "5.18.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.18.1.tgz", - "integrity": "sha512-j1n0Ao919h/Ai5r43VAnfV/7azUYW43GPxK7qSATzrsERfW7+y2QW9Cp9ufnRF5CQUWbnLSo7UJokSWCqg4tsQ==", - "dev": true, - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.9", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", - "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.17", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.16.8" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, - "node_modules/terser-webpack-plugin/node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/terser-webpack-plugin/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true, - "peer": true - }, - "node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "peer": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typescript": { - "version": "4.5.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz", - "integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/untildify": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", - "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", - "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "node_modules/watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", - "dev": true, - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack": { - "version": "5.88.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.88.0.tgz", - "integrity": "sha512-O3jDhG5e44qIBSi/P6KpcCcH7HD+nYIHVBhdWFxcLOcIGN8zGo5nqF3BjyNCxIh4p1vFdNnreZv2h2KkoAw3lw==", - "dev": true, - "dependencies": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^1.0.0", - "@webassemblyjs/ast": "^1.11.5", - "@webassemblyjs/wasm-edit": "^1.11.5", - "@webassemblyjs/wasm-parser": "^1.11.5", - "acorn": "^8.7.1", - "acorn-import-assertions": "^1.9.0", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.15.0", - "es-module-lexer": "^1.2.1", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.2.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.7", - "watchpack": "^2.4.0", - "webpack-sources": "^3.2.3" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "dev": true, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack/node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/webpack/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/webpack/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "peer": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - }, - "dependencies": { - "@babel/helper-string-parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", - "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", - "dev": true - }, - "@babel/types": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz", - "integrity": "sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.5", - "to-fast-properties": "^2.0.0" - } - }, - "@craco/types": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@craco/types/-/types-7.1.0.tgz", - "integrity": "sha512-zdyk2G9UfEItrvnB+sd3xDHB5Mf3dsD6wE+Ex6V+Nch+GSXdFGQfXD/l+ZX9hO03R1rmnJPCxrIRPJUib8Q/MQ==", - "dev": true, - "requires": { - "@babel/types": "^7.19.3", - "@jest/types": "^27.5.1", - "@types/eslint": "^8.4.6", - "autoprefixer": "^10.4.12", - "eslint-webpack-plugin": "^3.2.0", - "webpack": "^5.74.0" - } - }, - "@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "peer": true, - "requires": { - "eslint-visitor-keys": "^3.3.0" - } - }, - "@eslint-community/regexpp": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", - "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==", - "dev": true, - "peer": true - }, - "@eslint/eslintrc": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz", - "integrity": "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==", - "dev": true, - "peer": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.5.2", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - } - }, - "@eslint/js": { - "version": "8.43.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.43.0.tgz", - "integrity": "sha512-s2UHCoiXfxMvmfzqoN+vrQ84ahUSYde9qNO1MdxmoEhyHWsfmwOpFlwYV+ePJEVc7gFnATGUi376WowX1N7tFg==", - "dev": true, - "peer": true - }, - "@humanwhocodes/config-array": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz", - "integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==", - "dev": true, - "peer": true, - "requires": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - } - }, - "@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "peer": true - }, - "@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true, - "peer": true - }, - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true - }, - "@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true - }, - "@jridgewell/source-map": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.3.tgz", - "integrity": "sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", - "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - } - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "peer": true, - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "peer": true - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "peer": true, - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@types/eslint": { - "version": "8.40.2", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.40.2.tgz", - "integrity": "sha512-PRVjQ4Eh9z9pmmtaq8nTjZjQwKFk7YIHIud3lRoKRBgUQjgjRmoGxxGEPXQkF+lH7QkHJRNr5F4aBgYCW0lqpQ==", - "dev": true, - "requires": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "@types/eslint-scope": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", - "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", - "dev": true, - "requires": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "@types/estree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", - "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==", - "dev": true - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "dev": true - }, - "@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/json-schema": { - "version": "7.0.12", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", - "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==", - "dev": true - }, - "@types/node": { - "version": "20.3.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.3.1.tgz", - "integrity": "sha512-EhcH/wvidPy1WeML3TtYFGR83UzjxeWRen9V402T8aUGYsCHOmfoisV3ZSg03gAFIbLq8TnWOJ0f4cALtnSEUg==", - "dev": true - }, - "@types/prop-types": { - "version": "15.7.5", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", - "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", - "dev": true - }, - "@types/react": { - "version": "18.2.13", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.13.tgz", - "integrity": "sha512-vJ+zElvi/Zn9cVXB5slX2xL8PZodPCwPRDpittQdw43JR2AJ5k3vKdgJJyneV/cYgIbLQUwXa9JVDvUZXGba+Q==", - "dev": true, - "requires": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - } - }, - "@types/scheduler": { - "version": "0.16.3", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz", - "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==", - "dev": true - }, - "@types/yargs": { - "version": "16.0.5", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", - "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", - "dev": true - }, - "@webassemblyjs/ast": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", - "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", - "dev": true, - "requires": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", - "dev": true - }, - "@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", - "dev": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", - "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", - "dev": true - }, - "@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", - "dev": true, - "requires": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", - "dev": true - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", - "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", - "dev": true, - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", - "dev": true, - "requires": { - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/utf8": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", - "dev": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", - "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-opt": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6", - "@webassemblyjs/wast-printer": "1.11.6" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", - "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", - "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", - "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", - "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.6", - "@xtuc/long": "4.2.2" - } - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, - "acorn": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.9.0.tgz", - "integrity": "sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ==", - "dev": true - }, - "acorn-import-assertions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", - "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", - "dev": true, - "requires": {} - }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peer": true, - "requires": {} - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dev": true, - "requires": { - "ajv": "^8.0.0" - }, - "dependencies": { - "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - } - } - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "requires": {} - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "peer": true - }, - "autoprefixer": { - "version": "10.4.14", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz", - "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==", - "dev": true, - "requires": { - "browserslist": "^4.21.5", - "caniuse-lite": "^1.0.30001464", - "fraction.js": "^4.2.0", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "browserslist": { - "version": "4.21.9", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz", - "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001503", - "electron-to-chromium": "^1.4.431", - "node-releases": "^2.0.12", - "update-browserslist-db": "^1.0.11" - } - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "peer": true - }, - "caniuse-lite": { - "version": "1.0.30001506", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001506.tgz", - "integrity": "sha512-6XNEcpygZMCKaufIcgpQNZNf00GEqc7VQON+9Rd0K1bMYo8xhMZRAo5zpbnbMNizi4YNgIDAFrdykWsvY3H4Hw==", - "dev": true - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "dev": true - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "copyfiles": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/copyfiles/-/copyfiles-2.4.1.tgz", - "integrity": "sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==", - "dev": true, - "requires": { - "glob": "^7.0.5", - "minimatch": "^3.0.3", - "mkdirp": "^1.0.4", - "noms": "0.0.0", - "through2": "^2.0.1", - "untildify": "^4.0.0", - "yargs": "^16.1.0" - }, - "dependencies": { - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true - } - } - }, - "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "peer": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "csstype": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==", - "dev": true - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "peer": true, - "requires": { - "ms": "2.1.2" - } - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true, - "peer": true - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "peer": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "electron-to-chromium": { - "version": "1.4.437", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.437.tgz", - "integrity": "sha512-ZFekRuBOHUXp21wrR5lshT6pZa/KmjkhKBAtmZz4NN5sCWlHOk3kdhiwFINrDBsRLX6FjyBAb1TRN+KBeNlyzQ==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "enhanced-resolve": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", - "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - } - }, - "es-module-lexer": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.0.tgz", - "integrity": "sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA==", - "dev": true - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "peer": true - }, - "eslint": { - "version": "8.43.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.43.0.tgz", - "integrity": "sha512-aaCpf2JqqKesMFGgmRPessmVKjcGXqdlAYLLC3THM8t5nBRZRQ+st5WM/hoJXkdioEXLLbXgclUpM0TXo5HX5Q==", - "dev": true, - "peer": true, - "requires": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.0.3", - "@eslint/js": "8.43.0", - "@humanwhocodes/config-array": "^0.11.10", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.0", - "eslint-visitor-keys": "^3.4.1", - "espree": "^9.5.2", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0" - } - }, - "eslint-scope": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", - "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", - "dev": true, - "peer": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "eslint-visitor-keys": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", - "dev": true, - "peer": true - }, - "eslint-webpack-plugin": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz", - "integrity": "sha512-avrKcGncpPbPSUHX6B3stNGzkKFto3eL+DKM4+VyMrVnhPc3vRczVlCq3uhuFOdRvDHTVXuzwk1ZKUrqDQHQ9w==", - "dev": true, - "requires": { - "@types/eslint": "^7.29.0 || ^8.4.1", - "jest-worker": "^28.0.2", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "schema-utils": "^4.0.0" - } - }, - "espree": { - "version": "9.5.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz", - "integrity": "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==", - "dev": true, - "peer": true, - "requires": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - } - }, - "esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dev": true, - "peer": true, - "requires": { - "estraverse": "^5.1.0" - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "peer": true - }, - "events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true, - "peer": true - }, - "fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "dev": true, - "peer": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "peer": true, - "requires": { - "flat-cache": "^3.0.4" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "peer": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "peer": true, - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - } - }, - "flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "dev": true, - "peer": true - }, - "fraction.js": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", - "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", - "dev": true - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "peer": true, - "requires": { - "is-glob": "^4.0.3" - } - }, - "glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true - }, - "globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", - "dev": true, - "peer": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, - "graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true, - "peer": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true, - "peer": true - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "peer": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "peer": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "peer": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "peer": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "peer": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, - "peer": true - }, - "jest-worker": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", - "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "peer": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true, - "peer": true - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "peer": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", - "dev": true - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "peer": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true, - "peer": true - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true - }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "requires": { - "mime-db": "1.52.0" - } - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "peer": true - }, - "nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", - "dev": true, - "peer": true - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true, - "peer": true - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "node-releases": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.12.tgz", - "integrity": "sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==", - "dev": true - }, - "noms": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/noms/-/noms-0.0.0.tgz", - "integrity": "sha1-2o69nzr51nYJGbJ9nNyAkqczKFk=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "~1.0.31" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - } - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "peer": true, - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "peer": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "peer": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "peer": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "peer": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "peer": true - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "postcss": { - "version": "8.4.24", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.24.tgz", - "integrity": "sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==", - "dev": true, - "peer": true, - "requires": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - } - }, - "postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "peer": true - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "dev": true - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "peer": true - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "peer": true - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "peer": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "peer": true, - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "dependencies": { - "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - } - } - }, - "serialize-javascript": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", - "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "peer": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "peer": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true, - "peer": true - }, - "source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "peer": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true - }, - "terser": { - "version": "5.18.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.18.1.tgz", - "integrity": "sha512-j1n0Ao919h/Ai5r43VAnfV/7azUYW43GPxK7qSATzrsERfW7+y2QW9Cp9ufnRF5CQUWbnLSo7UJokSWCqg4tsQ==", - "dev": true, - "requires": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - } - }, - "terser-webpack-plugin": { - "version": "5.3.9", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", - "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "^0.3.17", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.16.8" - }, - "dependencies": { - "jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - } - }, - "schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true, - "peer": true - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "peer": true, - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "peer": true - }, - "typescript": { - "version": "4.5.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz", - "integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==", - "dev": true - }, - "untildify": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", - "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", - "dev": true - }, - "update-browserslist-db": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", - "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", - "dev": true, - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", - "dev": true, - "requires": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - } - }, - "webpack": { - "version": "5.88.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.88.0.tgz", - "integrity": "sha512-O3jDhG5e44qIBSi/P6KpcCcH7HD+nYIHVBhdWFxcLOcIGN8zGo5nqF3BjyNCxIh4p1vFdNnreZv2h2KkoAw3lw==", - "dev": true, - "requires": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^1.0.0", - "@webassemblyjs/ast": "^1.11.5", - "@webassemblyjs/wasm-edit": "^1.11.5", - "@webassemblyjs/wasm-parser": "^1.11.5", - "acorn": "^8.7.1", - "acorn-import-assertions": "^1.9.0", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.15.0", - "es-module-lexer": "^1.2.1", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.2.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.7", - "watchpack": "^2.4.0", - "webpack-sources": "^3.2.3" - }, - "dependencies": { - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "dev": true - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "peer": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, - "peer": true - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "peer": true - } - } -} diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 7b07d22b9..0c066bde1 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -30,12 +30,6 @@ "base64-js": "^1.5.1", "cpy": "^10.1.0", "cpy-cli": "^5.0.0", - "eslint": "^8.26.0", - "eslint-config-standard": "^17.1.0", - "eslint-config-standard-with-typescript": "^36.1.0", - "eslint-import-resolver-typescript": "^3.5.5", - "eslint-plugin-react": "^7.32.2", - "eslint-plugin-simple-import-sort": "^10.0.0", "rimraf": "5.0.1", "typescript": "5.1.6", "vite": "^4.4.4", diff --git a/packages/oidc-client/src/iniWorker.spec.ts b/packages/oidc-client/src/iniWorker.spec.ts index a9b00b2a2..a0228aa2b 100644 --- a/packages/oidc-client/src/iniWorker.spec.ts +++ b/packages/oidc-client/src/iniWorker.spec.ts @@ -1,6 +1,6 @@ -import { excludeOs, getOperatingSystem } from './initWorker'; +import { describe, expect,it } from 'vitest'; -import { describe, it, expect } from 'vitest'; +import { excludeOs, getOperatingSystem } from './initWorker'; describe('initWorker test Suite', () => { diff --git a/packages/oidc-client/src/logout.spec.ts b/packages/oidc-client/src/logout.spec.ts index 82035047c..a87443334 100644 --- a/packages/oidc-client/src/logout.spec.ts +++ b/packages/oidc-client/src/logout.spec.ts @@ -1,6 +1,8 @@ -import '@testing-library/jest-dom' +import '@testing-library/jest-dom'; + +import { describe, expect, it, vi } from 'vitest'; + import { logoutAsync } from "./logout"; -import { describe, it, expect, vi } from 'vitest'; describe('Logout test suite', () => { @@ -17,7 +19,7 @@ describe('Logout test suite', () => { scope: 'openid profile email api offline_access', authority: 'http://api', refresh_time_before_tokens_expiration_in_second: 70, - logout_tokens_to_invalidate + logout_tokens_to_invalidate, }; const fetch = (url, data) => { @@ -29,7 +31,7 @@ describe('Logout test suite', () => { }); }; - const mockFetchFn = vi.fn().mockImplementation(fetch) + const mockFetchFn = vi.fn().mockImplementation(fetch); const oidc = { configuration, @@ -47,15 +49,15 @@ describe('Logout test suite', () => { const window = { location: { href: "", - origin: "http://localhost:4200" - } - } + origin: "http://localhost:4200", + }, + }; await logoutAsync(oidc, oidcDatabase, mockFetchFn, window, console)("/logged_out"); // @ts-ignore - const results = mockFetchFn.mock.calls.map((call, index) => call[1].body) + const results = mockFetchFn.mock.calls.map((call, index) => call[1].body); expect(results).toEqual(expectedResults); expect(window.location.href).toBe("http://api/connect/endsession?id_token_hint=abcd&post_logout_redirect_uri=http%3A%2F%2Flocalhost%3A4200%2Flogged_out"); diff --git a/packages/oidc-client/src/parseTokens.spec.ts b/packages/oidc-client/src/parseTokens.spec.ts index a18db08be..74bc76932 100644 --- a/packages/oidc-client/src/parseTokens.spec.ts +++ b/packages/oidc-client/src/parseTokens.spec.ts @@ -1,5 +1,6 @@ -import {getValidTokenAsync, isTokensOidcValid} from "./parseTokens"; -import { describe, it, expect } from 'vitest'; +import { describe, expect,it } from 'vitest'; + +import {getValidTokenAsync, isTokensOidcValid} from "./parseTokens"; describe('ParseTokens test Suite', () => { const currentTimeUnixSecond = new Date().getTime() / 1000; @@ -15,10 +16,10 @@ describe('ParseTokens test Suite', () => { idToken: 'youhou', accessTokenPayload: null, accessToken: 'youhou', - expiresAt: expiresAt, - issuedAt: issuedAt, - } - } + expiresAt, + issuedAt, + }, + }; const result = await getValidTokenAsync(oidc, 1, 1); expect(result.isTokensValid).toEqual(expectIsValidToken); }); @@ -39,8 +40,8 @@ describe('ParseTokens test Suite', () => { ])('isTokensOidcValid', (idTokenPayload, nonce, oidcServerConfiguration, expectIsValidToken, status) => { it('should isTokensOidcValid return ' + status, async () => { const oidc = { - idTokenPayload - } + idTokenPayload, + }; const {isValid} = await isTokensOidcValid(oidc, nonce, oidcServerConfiguration); expect(isValid).toEqual(expectIsValidToken); }); diff --git a/packages/oidc-client/src/requests.spec.ts b/packages/oidc-client/src/requests.spec.ts index 7d3271d7d..3c72fbedc 100644 --- a/packages/oidc-client/src/requests.spec.ts +++ b/packages/oidc-client/src/requests.spec.ts @@ -1,5 +1,5 @@  -import { describe, it, expect } from 'vitest'; +import { describe, expect,it } from 'vitest'; describe('Requests test Suite', () => { diff --git a/packages/oidc-client/src/route-utils.spec.ts b/packages/oidc-client/src/route-utils.spec.ts index 30a1dc60a..5ce7082b0 100644 --- a/packages/oidc-client/src/route-utils.spec.ts +++ b/packages/oidc-client/src/route-utils.spec.ts @@ -1,5 +1,6 @@ +import { describe, expect,it } from 'vitest'; + import { getPath } from './route-utils'; -import { describe, it, expect } from 'vitest'; describe('Route test Suite', () => { it.each([['http://example.com/pathname', '/pathname'], @@ -8,7 +9,7 @@ describe('Route test Suite', () => { ['http://example.com:3000/pathname#hash?search=test', '/pathname#hash'], ['capacitor://localhost/index.html', '/index.html'], ['capacitor://localhost/pathname#hash?search=test', '/pathname#hash'], - ['http://example.com:3000/', ''],])( + ['http://example.com:3000/', '']])( 'getPath should return the full path of an url', (uri, expected) => { diff --git a/packages/oidc-client/tests/setup.js b/packages/oidc-client/tests/setup.js index e022aaa60..47da0ebc4 100644 --- a/packages/oidc-client/tests/setup.js +++ b/packages/oidc-client/tests/setup.js @@ -1,6 +1,6 @@ -import { expect, afterEach } from 'vitest'; +import matchers from '@testing-library/jest-dom/matchers'; import { cleanup } from '@testing-library/react'; -import matchers from '@testing-library/jest-dom/matchers'; +import { afterEach,expect } from 'vitest'; // extends Vitest's expect method with methods from react-testing-library expect.extend(matchers); diff --git a/packages/oidc-client/vite.config.ts b/packages/oidc-client/vite.config.ts index 07867ece3..8442ebe99 100644 --- a/packages/oidc-client/vite.config.ts +++ b/packages/oidc-client/vite.config.ts @@ -1,6 +1,7 @@ -import { defineConfig } from 'vite'; -import { resolve } from 'path'; +import { resolve } from 'path'; +import { defineConfig } from 'vite'; import dts from 'vite-plugin-dts'; + import pkg from './package.json'; const dependencies = externalDependencies(); @@ -20,10 +21,10 @@ export default defineConfig({ }, plugins: [ - dts(), //generate typescript typedefs + dts(), // generate typescript typedefs ], resolve: { - preserveSymlinks: true, //https://github.com/vitejs/vite/issues/11657 + preserveSymlinks: true, // https://github.com/vitejs/vite/issues/11657 }, test: { globals: true, diff --git a/packages/react-oidc/.eslintrc.cjs b/packages/react-oidc/.eslintrc.cjs deleted file mode 100644 index 968c0320f..000000000 --- a/packages/react-oidc/.eslintrc.cjs +++ /dev/null @@ -1,18 +0,0 @@ -module.exports = { - extends: [__dirname+'/config/defaultEslintConfig.cjs'], - parserOptions: { - project: './tsconfig.eslint.json', - tsconfigRootDir: __dirname, - }, - rules: { - '@typescript-eslint/naming-convention': [ - 'error', - { - 'selector': 'variable', - 'types': ['boolean'], - 'format': ['PascalCase'], - 'prefix': ['is', 'with', 'should', 'has', 'can', 'did', 'will'] - } - ] - } - } \ No newline at end of file diff --git a/packages/react-oidc/config/defaultEslintConfig.cjs b/packages/react-oidc/config/defaultEslintConfig.cjs deleted file mode 100644 index c3fa61f5b..000000000 --- a/packages/react-oidc/config/defaultEslintConfig.cjs +++ /dev/null @@ -1,148 +0,0 @@ -module.exports = { - parser: '@typescript-eslint/parser', - extends: [ - 'standard', - 'plugin:react/recommended', - 'plugin:react-hooks/recommended', - 'plugin:@typescript-eslint/eslint-recommended', - 'plugin:@typescript-eslint/recommended', - 'plugin:import/typescript', - 'plugin:jsx-a11y/recommended', - ], - plugins: ['simple-import-sort', 'testing-library'], - env: { - node: true, - es6: true, - browser: true, - }, - parserOptions: { - ecmaVersion: 2018, - sourceType: 'module', - ecmaFeatures: { - jsx: true, - }, - // typescript-eslint specific options - warnOnUnsupportedTypeScriptVersion: true, - }, - rules: { - '@typescript-eslint/interface-name-prefix': 'off', - '@typescript-eslint/no-non-null-assertion': 'off', - '@typescript-eslint/explicit-module-boundary-types': 'off', - '@typescript-eslint/no-explicit-any': 'off', - '@typescript-eslint/ban-ts-comment': 'off', - 'no-unused-vars': 'off', - '@typescript-eslint/no-unused-vars': [ - 'error', - { - argsIgnorePattern: '^_|req|res|next|err|ctx|args|context|info', - ignoreRestSiblings: true, - }, - ], - 'no-array-constructor': 'off', - '@typescript-eslint/no-array-constructor': 'warn', - 'no-redeclare': 'off', - '@typescript-eslint/no-redeclare': 'warn', - 'no-use-before-define': 'off', - '@typescript-eslint/no-use-before-define': [ - 'warn', - { - functions: false, - classes: false, - variables: false, - typedefs: false, - }, - ], - 'no-unused-expressions': 'off', - '@typescript-eslint/no-unused-expressions': [ - 'error', - { - allowShortCircuit: true, - allowTernary: true, - allowTaggedTemplates: true, - }, - ], - '@typescript-eslint/triple-slash-reference': 'off', - '@typescript-eslint/member-delimiter-style': [ - 'error', - { - multiline: { - delimiter: 'semi', - requireLast: true, - }, - singleline: { - delimiter: 'semi', - requireLast: false, - }, - }, - ], - camelcase: 'off', - 'comma-dangle': [ - 'error', - { - arrays: 'always-multiline', - objects: 'always-multiline', - imports: 'always-multiline', - exports: 'always-multiline', - functions: 'always-multiline', - }, - ], - 'array-callback-return': 'warn', - 'jsx-quotes': ['error', 'prefer-double'], - // 'max-len': ['error', { code: 120 }], - indent: 'off', - // quotes: ['error', 'single'], - semi: ['error', 'always'], - 'space-before-function-paren': 'off', - - 'import/no-named-as-default': 'off', - 'import/no-named-as-default-member': 'off', - 'import/default': 'off', - 'import/named': 'off', - 'import/namespace': 'off', - 'import/no-unresolved': 'off', - 'simple-import-sort/imports': 'error', - 'simple-import-sort/exports': 'error', - 'react/prop-types': 'off', - 'react/jsx-wrap-multilines': 'error', - 'react/react-in-jsx-scope': 'off', - 'react/display-name': 'off', - // https://github.com/facebook/react/tree/master/packages/eslint-plugin-react-hooks - 'react-hooks/rules-of-hooks': 'error', - 'react-hooks/exhaustive-deps': 'off', - }, - - overrides: [ - { - files: ['*.js', '*.jsx'], - rules: { - '@typescript-eslint/no-var-requires': 'off', - }, - }, - { - // 3) Now we enable eslint-plugin-testing-library rules or preset only for matching files! - files: ['**/?(*.)+(spec|test).[jt]s?(x)'], - extends: ['plugin:testing-library/react'], - rules: { - 'testing-library/await-async-query': 'error', - 'testing-library/no-await-sync-query': 'error', - 'testing-library/no-debugging-utils': 'warn', - 'testing-library/no-dom-import': 'off', - 'testing-library/no-unnecessary-act': 'off', - }, - }, - ], - - settings: { - react: { - version: 'detect', - }, - 'import/parsers': { - '@typescript-eslint/parser': ['.ts', '.tsx'], - }, - 'import/resolver': { - typescript: { - alwaysTryTypes: true, - }, - }, - }, - }; \ No newline at end of file diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 228993310..585d3e6f0 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -52,19 +52,11 @@ "@testing-library/react": "13.3.0", "@testing-library/user-event": "14.4.3", "@types/react": "^18.2.15", - "@typescript-eslint/eslint-plugin": "^5.50.0", - "@typescript-eslint/parser": "^5.50.0", "@vitejs/plugin-react": "4.0.3", "@vitest/coverage-v8": "^0.33.0", "cpy": "^10.1.0", "cpy-cli": "^5.0.0", "cross-env": "^7.0.3", - "eslint": "^8.26.0", - "eslint-config-standard": "^17.1.0", - "eslint-config-standard-with-typescript": "^36.1.0", - "eslint-import-resolver-typescript": "^3.5.5", - "eslint-plugin-react": "^7.32.2", - "eslint-plugin-simple-import-sort": "^10.0.0", "jsdom": "22.1.0", "msw": "1.2.2", "react": "^18.2.0", diff --git a/packages/react-oidc/src/core/routes/OidcRoutes.spec.tsx b/packages/react-oidc/src/core/routes/OidcRoutes.spec.tsx index 79a94b540..bfc81bd6b 100644 --- a/packages/react-oidc/src/core/routes/OidcRoutes.spec.tsx +++ b/packages/react-oidc/src/core/routes/OidcRoutes.spec.tsx @@ -1,7 +1,8 @@ +import { render } from "@testing-library/react"; import React from 'react'; +import { describe, expect,it } from 'vitest'; + import OidcRoutes from './OidcRoutes'; -import { render } from "@testing-library/react"; -import { describe, it, expect } from 'vitest'; describe('Authenticating test suite', () => { it('renders correctly', () => { @@ -9,7 +10,7 @@ describe('Authenticating test suite', () => { children: 'http://url.com', callbackComponent: () =>
tcallback component
, redirect_uri: 'http://example.com:3000/authentication/callback', - configurationName: '' + configurationName: '', }; const { asFragment } = render(); expect(asFragment()).toMatchSnapshot(); diff --git a/packages/react-oidc/src/core/routes/withRouter.spec.tsx b/packages/react-oidc/src/core/routes/withRouter.spec.tsx index 3cea580a0..494af6e4f 100644 --- a/packages/react-oidc/src/core/routes/withRouter.spec.tsx +++ b/packages/react-oidc/src/core/routes/withRouter.spec.tsx @@ -1,5 +1,6 @@ +import { beforeEach,describe, expect, it, vi } from 'vitest'; + import { CreateEvent, WindowInternal } from './withRouter'; -import { describe, it, expect, vi, beforeEach } from 'vitest'; describe('WithRouter test Suite', () => { const paramsMock = { bubbles: false, cancelable: false, detail: 'detail' }; @@ -13,7 +14,7 @@ describe('WithRouter test Suite', () => { const documentMock = {} as Document; const res = CreateEvent((windowMock as unknown) as WindowInternal, documentMock)( 'event test', - paramsMock + paramsMock, ); expect(res).toEqual({ event: 'event test', @@ -36,7 +37,7 @@ describe('WithRouter test Suite', () => { const typedDocumentMock = (documentMock as unknown) as Document; const res = CreateEvent((windowMock as unknown) as WindowInternal, typedDocumentMock)( 'event test', - paramsMock + paramsMock, ); expect(res).toEqual({ ...evtMock }); expect(documentMock.createEvent).toHaveBeenCalledWith('CustomEvent'); diff --git a/packages/react-oidc/tests/setup.js b/packages/react-oidc/tests/setup.js index e022aaa60..47da0ebc4 100644 --- a/packages/react-oidc/tests/setup.js +++ b/packages/react-oidc/tests/setup.js @@ -1,6 +1,6 @@ -import { expect, afterEach } from 'vitest'; +import matchers from '@testing-library/jest-dom/matchers'; import { cleanup } from '@testing-library/react'; -import matchers from '@testing-library/jest-dom/matchers'; +import { afterEach,expect } from 'vitest'; // extends Vitest's expect method with methods from react-testing-library expect.extend(matchers); diff --git a/packages/react-oidc/vite.config.ts b/packages/react-oidc/vite.config.ts index 247d9617a..04536f12c 100644 --- a/packages/react-oidc/vite.config.ts +++ b/packages/react-oidc/vite.config.ts @@ -1,7 +1,8 @@ -import { defineConfig } from 'vite'; +import react from '@vitejs/plugin-react'; import { resolve } from 'path'; -import react from '@vitejs/plugin-react'; +import { defineConfig } from 'vite'; import dts from 'vite-plugin-dts'; + import pkg from './package.json'; const dependencies = externalDependencies(); @@ -31,7 +32,7 @@ export default defineConfig({ react(), ], resolve: { - preserveSymlinks: true, //https://github.com/vitejs/vite/issues/11657 + preserveSymlinks: true, // https://github.com/vitejs/vite/issues/11657 }, test: { globals: true, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0c5cf5ee6..ea4915839 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,37 +1,57 @@ lockfileVersion: '6.0' -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - importers: .: devDependencies: + '@typescript-eslint/eslint-plugin': + specifier: ^6.0.0 + version: 6.0.0(@typescript-eslint/parser@6.0.0)(eslint@8.45.0)(typescript@5.1.6) + '@typescript-eslint/parser': + specifier: ^6.0.0 + version: 6.0.0(eslint@8.45.0)(typescript@5.1.6) eslint: specifier: ^8.45.0 version: 8.45.0 + eslint-config-prettier: + specifier: ^8.8.0 + version: 8.8.0(eslint@8.45.0) eslint-define-config: specifier: ^1.21.0 version: 1.21.0 eslint-plugin-import: specifier: ^2.27.5 - version: 2.27.5(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.45.0) + version: 2.27.5(@typescript-eslint/parser@6.0.0)(eslint@8.45.0) eslint-plugin-jsx-a11y: specifier: ^6.7.1 version: 6.7.1(eslint@8.45.0) eslint-plugin-n: specifier: ^16.0.1 version: 16.0.1(eslint@8.45.0) + eslint-plugin-no-only-tests: + specifier: ^3.1.0 + version: 3.1.0 + eslint-plugin-prettier: + specifier: ^5.0.0 + version: 5.0.0(eslint-config-prettier@8.8.0)(eslint@8.45.0)(prettier@3.0.0) + eslint-plugin-react: + specifier: ^7.32.2 + version: 7.32.2(eslint@8.45.0) eslint-plugin-react-hooks: specifier: ^4.6.0 version: 4.6.0(eslint@8.45.0) eslint-plugin-regexp: specifier: ^1.15.0 version: 1.15.0(eslint@8.45.0) + eslint-plugin-simple-import-sort: + specifier: ^10.0.0 + version: 10.0.0(eslint@8.45.0) eslint-plugin-testing-library: specifier: ^5.11.0 version: 5.11.0(eslint@8.45.0)(typescript@5.1.6) + prettier: + specifier: ^3.0.0 + version: 3.0.0 tslib: specifier: ^2.6.0 version: 2.6.0 @@ -114,12 +134,6 @@ importers: '@types/react': specifier: ^18.2.15 version: 18.2.15 - '@typescript-eslint/eslint-plugin': - specifier: ^5.50.0 - version: 5.50.0(@typescript-eslint/parser@5.62.0)(eslint@8.45.0)(typescript@5.1.6) - '@typescript-eslint/parser': - specifier: ^5.50.0 - version: 5.62.0(eslint@8.45.0)(typescript@5.1.6) '@vitejs/plugin-react': specifier: 4.0.3 version: 4.0.3(vite@4.4.4) @@ -135,24 +149,6 @@ importers: cross-env: specifier: ^7.0.3 version: 7.0.3 - eslint: - specifier: ^8.26.0 - version: 8.45.0 - eslint-config-standard: - specifier: ^17.1.0 - version: 17.1.0(eslint-plugin-import@2.27.5)(eslint-plugin-n@16.0.1)(eslint-plugin-promise@6.1.1)(eslint@8.45.0) - eslint-config-standard-with-typescript: - specifier: ^36.1.0 - version: 36.1.0(@typescript-eslint/eslint-plugin@5.50.0)(eslint-plugin-import@2.27.5)(eslint-plugin-n@16.0.1)(eslint-plugin-promise@6.1.1)(eslint@8.45.0)(typescript@5.1.6) - eslint-import-resolver-typescript: - specifier: ^3.5.5 - version: 3.5.5(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.27.5)(eslint@8.45.0) - eslint-plugin-react: - specifier: ^7.32.2 - version: 7.32.2(eslint@8.45.0) - eslint-plugin-simple-import-sort: - specifier: ^10.0.0 - version: 10.0.0(eslint@8.45.0) jsdom: specifier: 22.1.0 version: 22.1.0 @@ -208,24 +204,6 @@ importers: cpy-cli: specifier: ^5.0.0 version: 5.0.0 - eslint: - specifier: ^8.26.0 - version: 8.45.0 - eslint-config-standard: - specifier: ^17.1.0 - version: 17.1.0(eslint-plugin-import@2.27.5)(eslint-plugin-n@16.0.1)(eslint-plugin-promise@6.1.1)(eslint@8.45.0) - eslint-config-standard-with-typescript: - specifier: ^36.1.0 - version: 36.1.0(@typescript-eslint/eslint-plugin@5.50.0)(eslint-plugin-import@2.27.5)(eslint-plugin-n@16.0.1)(eslint-plugin-promise@6.1.1)(eslint@8.45.0)(typescript@5.1.6) - eslint-import-resolver-typescript: - specifier: ^3.5.5 - version: 3.5.5(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.27.5)(eslint@8.45.0) - eslint-plugin-react: - specifier: ^7.32.2 - version: 7.32.2(eslint@8.45.0) - eslint-plugin-simple-import-sort: - specifier: ^10.0.0 - version: 10.0.0(eslint@8.45.0) rimraf: specifier: 5.0.1 version: 5.0.1 @@ -244,12 +222,6 @@ importers: packages/oidc-client-service-worker: devDependencies: - '@typescript-eslint/eslint-plugin': - specifier: ^5.50.0 - version: 5.50.0(@typescript-eslint/parser@5.62.0)(eslint@8.45.0)(typescript@5.1.6) - '@typescript-eslint/parser': - specifier: ^5.50.0 - version: 5.62.0(eslint@8.45.0)(typescript@5.1.6) '@vitest/coverage-c8': specifier: ^0.33.0 version: 0.33.0(vitest@0.33.0) @@ -259,24 +231,6 @@ importers: cpy-cli: specifier: ^5.0.0 version: 5.0.0 - eslint: - specifier: ^8.26.0 - version: 8.45.0 - eslint-config-standard: - specifier: ^17.1.0 - version: 17.1.0(eslint-plugin-import@2.27.5)(eslint-plugin-n@16.0.1)(eslint-plugin-promise@6.1.1)(eslint@8.45.0) - eslint-config-standard-with-typescript: - specifier: ^36.1.0 - version: 36.1.0(@typescript-eslint/eslint-plugin@5.50.0)(eslint-plugin-import@2.27.5)(eslint-plugin-n@16.0.1)(eslint-plugin-promise@6.1.1)(eslint@8.45.0)(typescript@5.1.6) - eslint-import-resolver-typescript: - specifier: ^3.5.5 - version: 3.5.5(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.27.5)(eslint@8.45.0) - eslint-plugin-react: - specifier: ^7.32.2 - version: 7.32.2(eslint@8.45.0) - eslint-plugin-simple-import-sort: - specifier: ^10.0.0 - version: 10.0.0(eslint@8.45.0) msw: specifier: 1.2.2 version: 1.2.2(typescript@5.1.6) @@ -320,12 +274,6 @@ importers: '@types/react': specifier: ^18.2.15 version: 18.2.15 - '@typescript-eslint/eslint-plugin': - specifier: ^5.50.0 - version: 5.50.0(@typescript-eslint/parser@5.62.0)(eslint@8.45.0)(typescript@5.1.6) - '@typescript-eslint/parser': - specifier: ^5.50.0 - version: 5.62.0(eslint@8.45.0)(typescript@5.1.6) '@vitejs/plugin-react': specifier: 4.0.3 version: 4.0.3(vite@4.4.4) @@ -341,24 +289,6 @@ importers: cross-env: specifier: ^7.0.3 version: 7.0.3 - eslint: - specifier: ^8.26.0 - version: 8.45.0 - eslint-config-standard: - specifier: ^17.1.0 - version: 17.1.0(eslint-plugin-import@2.27.5)(eslint-plugin-n@16.0.1)(eslint-plugin-promise@6.1.1)(eslint@8.45.0) - eslint-config-standard-with-typescript: - specifier: ^36.1.0 - version: 36.1.0(@typescript-eslint/eslint-plugin@5.50.0)(eslint-plugin-import@2.27.5)(eslint-plugin-n@16.0.1)(eslint-plugin-promise@6.1.1)(eslint@8.45.0)(typescript@5.1.6) - eslint-import-resolver-typescript: - specifier: ^3.5.5 - version: 3.5.5(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.27.5)(eslint@8.45.0) - eslint-plugin-react: - specifier: ^7.32.2 - version: 7.32.2(eslint@8.45.0) - eslint-plugin-simple-import-sort: - specifier: ^10.0.0 - version: 10.0.0(eslint@8.45.0) jsdom: specifier: 22.1.0 version: 22.1.0 @@ -1256,7 +1186,6 @@ packages: engines: {node: '>= 10'} cpu: [arm64] os: [linux] - libc: [glibc] requiresBuild: true dev: false optional: true @@ -1266,7 +1195,6 @@ packages: engines: {node: '>= 10'} cpu: [arm64] os: [linux] - libc: [musl] requiresBuild: true dev: false optional: true @@ -1276,7 +1204,6 @@ packages: engines: {node: '>= 10'} cpu: [x64] os: [linux] - libc: [glibc] requiresBuild: true dev: false optional: true @@ -1286,7 +1213,6 @@ packages: engines: {node: '>= 10'} cpu: [x64] os: [linux] - libc: [musl] requiresBuild: true dev: false optional: true @@ -1609,47 +1535,51 @@ packages: dependencies: '@types/jest': 27.5.2 - /@typescript-eslint/eslint-plugin@5.50.0(@typescript-eslint/parser@5.62.0)(eslint@8.45.0)(typescript@5.1.6): - resolution: {integrity: sha512-vwksQWSFZiUhgq3Kv7o1Jcj0DUNylwnIlGvKvLLYsq8pAWha6/WCnXUeaSoNNha/K7QSf2+jvmkxggC1u3pIwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/eslint-plugin@6.0.0(@typescript-eslint/parser@6.0.0)(eslint@8.45.0)(typescript@5.1.6): + resolution: {integrity: sha512-xuv6ghKGoiq856Bww/yVYnXGsKa588kY3M0XK7uUW/3fJNNULKRfZfSBkMTSpqGG/8ZCXCadfh8G/z/B4aqS/A==} + engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - '@typescript-eslint/parser': ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.62.0(eslint@8.45.0)(typescript@5.1.6) - '@typescript-eslint/scope-manager': 5.50.0 - '@typescript-eslint/type-utils': 5.50.0(eslint@8.45.0)(typescript@5.1.6) - '@typescript-eslint/utils': 5.50.0(eslint@8.45.0)(typescript@5.1.6) + '@eslint-community/regexpp': 4.5.1 + '@typescript-eslint/parser': 6.0.0(eslint@8.45.0)(typescript@5.1.6) + '@typescript-eslint/scope-manager': 6.0.0 + '@typescript-eslint/type-utils': 6.0.0(eslint@8.45.0)(typescript@5.1.6) + '@typescript-eslint/utils': 6.0.0(eslint@8.45.0)(typescript@5.1.6) + '@typescript-eslint/visitor-keys': 6.0.0 debug: 4.3.4 eslint: 8.45.0 grapheme-splitter: 1.0.4 + graphemer: 1.4.0 ignore: 5.2.4 + natural-compare: 1.4.0 natural-compare-lite: 1.4.0 - regexpp: 3.2.0 semver: 7.5.4 - tsutils: 3.21.0(typescript@5.1.6) + ts-api-utils: 1.0.1(typescript@5.1.6) typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@5.62.0(eslint@8.45.0)(typescript@5.1.6): - resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/parser@6.0.0(eslint@8.45.0)(typescript@5.1.6): + resolution: {integrity: sha512-TNaufYSPrr1U8n+3xN+Yp9g31vQDJqhXzzPSHfQDLcaO4tU+mCfODPxCwf4H530zo7aUBE3QIdxCXamEnG04Tg==} + engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + eslint: ^7.0.0 || ^8.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6) + '@typescript-eslint/scope-manager': 6.0.0 + '@typescript-eslint/types': 6.0.0 + '@typescript-eslint/typescript-estree': 6.0.0(typescript@5.1.6) + '@typescript-eslint/visitor-keys': 6.0.0 debug: 4.3.4 eslint: 8.45.0 typescript: 5.1.6 @@ -1657,14 +1587,6 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager@5.50.0: - resolution: {integrity: sha512-rt03kaX+iZrhssaT974BCmoUikYtZI24Vp/kwTSy841XhiYShlqoshRFDvN1FKKvU2S3gK+kcBW1EA7kNUrogg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.50.0 - '@typescript-eslint/visitor-keys': 5.50.0 - dev: true - /@typescript-eslint/scope-manager@5.62.0: resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1673,38 +1595,46 @@ packages: '@typescript-eslint/visitor-keys': 5.62.0 dev: true - /@typescript-eslint/type-utils@5.50.0(eslint@8.45.0)(typescript@5.1.6): - resolution: {integrity: sha512-dcnXfZ6OGrNCO7E5UY/i0ktHb7Yx1fV6fnQGGrlnfDhilcs6n19eIRcvLBqx6OQkrPaFlDPk3OJ0WlzQfrV0bQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/scope-manager@6.0.0: + resolution: {integrity: sha512-o4q0KHlgCZTqjuaZ25nw5W57NeykZT9LiMEG4do/ovwvOcPnDO1BI5BQdCsUkjxFyrCL0cSzLjvIMfR9uo7cWg==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.0.0 + '@typescript-eslint/visitor-keys': 6.0.0 + dev: true + + /@typescript-eslint/type-utils@6.0.0(eslint@8.45.0)(typescript@5.1.6): + resolution: {integrity: sha512-ah6LJvLgkoZ/pyJ9GAdFkzeuMZ8goV6BH7eC9FPmojrnX9yNCIsfjB+zYcnex28YO3RFvBkV6rMV6WpIqkPvoQ==} + engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - eslint: '*' + eslint: ^7.0.0 || ^8.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.50.0(typescript@5.1.6) - '@typescript-eslint/utils': 5.50.0(eslint@8.45.0)(typescript@5.1.6) + '@typescript-eslint/typescript-estree': 6.0.0(typescript@5.1.6) + '@typescript-eslint/utils': 6.0.0(eslint@8.45.0)(typescript@5.1.6) debug: 4.3.4 eslint: 8.45.0 - tsutils: 3.21.0(typescript@5.1.6) + ts-api-utils: 1.0.1(typescript@5.1.6) typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types@5.50.0: - resolution: {integrity: sha512-atruOuJpir4OtyNdKahiHZobPKFvZnBnfDiyEaBf6d9vy9visE7gDjlmhl+y29uxZ2ZDgvXijcungGFjGGex7w==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true - /@typescript-eslint/types@5.62.0: resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree@5.50.0(typescript@5.1.6): - resolution: {integrity: sha512-Gq4zapso+OtIZlv8YNAStFtT6d05zyVCK7Fx3h5inlLBx2hWuc/0465C2mg/EQDDU2LKe52+/jN4f0g9bd+kow==} + /@typescript-eslint/types@6.0.0: + resolution: {integrity: sha512-Zk9KDggyZM6tj0AJWYYKgF0yQyrcnievdhG0g5FqyU3Y2DRxJn4yWY21sJC0QKBckbsdKKjYDV2yVrrEvuTgxg==} + engines: {node: ^16.0.0 || >=18.0.0} + dev: true + + /@typescript-eslint/typescript-estree@5.62.0(typescript@5.1.6): + resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -1712,8 +1642,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.50.0 - '@typescript-eslint/visitor-keys': 5.50.0 + '@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 @@ -1724,59 +1654,59 @@ packages: - supports-color dev: true - /@typescript-eslint/typescript-estree@5.62.0(typescript@5.1.6): - resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/typescript-estree@6.0.0(typescript@5.1.6): + resolution: {integrity: sha512-2zq4O7P6YCQADfmJ5OTDQTP3ktajnXIRrYAtHM9ofto/CJZV3QfJ89GEaM2BNGeSr1KgmBuLhEkz5FBkS2RQhQ==} + engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/visitor-keys': 5.62.0 + '@typescript-eslint/types': 6.0.0 + '@typescript-eslint/visitor-keys': 6.0.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 - tsutils: 3.21.0(typescript@5.1.6) + ts-api-utils: 1.0.1(typescript@5.1.6) typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@5.50.0(eslint@8.45.0)(typescript@5.1.6): - resolution: {integrity: sha512-v/AnUFImmh8G4PH0NDkf6wA8hujNNcrwtecqW4vtQ1UOSNBaZl49zP1SHoZ/06e+UiwzHpgb5zP5+hwlYYWYAw==} + /@typescript-eslint/utils@5.62.0(eslint@8.45.0)(typescript@5.1.6): + resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.45.0) '@types/json-schema': 7.0.12 '@types/semver': 7.5.0 - '@typescript-eslint/scope-manager': 5.50.0 - '@typescript-eslint/types': 5.50.0 - '@typescript-eslint/typescript-estree': 5.50.0(typescript@5.1.6) + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6) eslint: 8.45.0 eslint-scope: 5.1.1 - eslint-utils: 3.0.0(eslint@8.45.0) semver: 7.5.4 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/utils@5.62.0(eslint@8.45.0)(typescript@5.1.6): - resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/utils@6.0.0(eslint@8.45.0)(typescript@5.1.6): + resolution: {integrity: sha512-SOr6l4NB6HE4H/ktz0JVVWNXqCJTOo/mHnvIte1ZhBQ0Cvd04x5uKZa3zT6tiodL06zf5xxdK8COiDvPnQ27JQ==} + engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + eslint: ^7.0.0 || ^8.0.0 dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.45.0) '@types/json-schema': 7.0.12 '@types/semver': 7.5.0 - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6) + '@typescript-eslint/scope-manager': 6.0.0 + '@typescript-eslint/types': 6.0.0 + '@typescript-eslint/typescript-estree': 6.0.0(typescript@5.1.6) eslint: 8.45.0 eslint-scope: 5.1.1 semver: 7.5.4 @@ -1785,19 +1715,19 @@ packages: - typescript dev: true - /@typescript-eslint/visitor-keys@5.50.0: - resolution: {integrity: sha512-cdMeD9HGu6EXIeGOh2yVW6oGf9wq8asBgZx7nsR/D36gTfQ0odE5kcRYe5M81vjEFAcPeugXrHg78Imu55F6gg==} + /@typescript-eslint/visitor-keys@5.62.0: + resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.50.0 + '@typescript-eslint/types': 5.62.0 eslint-visitor-keys: 3.4.1 dev: true - /@typescript-eslint/visitor-keys@5.62.0: - resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/visitor-keys@6.0.0: + resolution: {integrity: sha512-cvJ63l8c0yXdeT5POHpL0Q1cZoRcmRKFCtSjNGJxPkcP571EfZMcNbzWAc7oK3D1dRzm/V5EwtkANTZxqvuuUA==} + engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/types': 6.0.0 eslint-visitor-keys: 3.4.1 dev: true @@ -2774,14 +2704,6 @@ packages: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} dev: true - /enhanced-resolve@5.15.0: - resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} - engines: {node: '>=10.13.0'} - dependencies: - graceful-fs: 4.2.11 - tapable: 2.2.1 - dev: true - /entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} @@ -2950,41 +2872,13 @@ packages: engines: {node: '>=12'} dev: true - /eslint-config-standard-with-typescript@36.1.0(@typescript-eslint/eslint-plugin@5.50.0)(eslint-plugin-import@2.27.5)(eslint-plugin-n@16.0.1)(eslint-plugin-promise@6.1.1)(eslint@8.45.0)(typescript@5.1.6): - resolution: {integrity: sha512-Gpk+7Q3EHqIzTnqYs/LpfOwVb8+kocvlFLYhBdCmUy+EUpsC7067PaHhGSp8P4N+lC2KNGBZ7e2tiGyoRNSVHA==} - peerDependencies: - '@typescript-eslint/eslint-plugin': ^5.50.0 - eslint: ^8.0.1 - eslint-plugin-import: ^2.25.2 - eslint-plugin-n: '^15.0.0 || ^16.0.0 ' - eslint-plugin-promise: ^6.0.0 - typescript: '*' - dependencies: - '@typescript-eslint/eslint-plugin': 5.50.0(@typescript-eslint/parser@5.62.0)(eslint@8.45.0)(typescript@5.1.6) - '@typescript-eslint/parser': 5.62.0(eslint@8.45.0)(typescript@5.1.6) - eslint: 8.45.0 - eslint-config-standard: 17.1.0(eslint-plugin-import@2.27.5)(eslint-plugin-n@16.0.1)(eslint-plugin-promise@6.1.1)(eslint@8.45.0) - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.45.0) - eslint-plugin-n: 16.0.1(eslint@8.45.0) - eslint-plugin-promise: 6.1.1(eslint@8.45.0) - typescript: 5.1.6 - transitivePeerDependencies: - - supports-color - dev: true - - /eslint-config-standard@17.1.0(eslint-plugin-import@2.27.5)(eslint-plugin-n@16.0.1)(eslint-plugin-promise@6.1.1)(eslint@8.45.0): - resolution: {integrity: sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==} - engines: {node: '>=12.0.0'} + /eslint-config-prettier@8.8.0(eslint@8.45.0): + resolution: {integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==} + hasBin: true peerDependencies: - eslint: ^8.0.1 - eslint-plugin-import: ^2.25.2 - eslint-plugin-n: '^15.0.0 || ^16.0.0 ' - eslint-plugin-promise: ^6.0.0 + eslint: '>=7.0.0' dependencies: eslint: 8.45.0 - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.45.0) - eslint-plugin-n: 16.0.1(eslint@8.45.0) - eslint-plugin-promise: 6.1.1(eslint@8.45.0) dev: true /eslint-define-config@1.21.0: @@ -3002,31 +2896,7 @@ packages: - supports-color dev: true - /eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.27.5)(eslint@8.45.0): - resolution: {integrity: sha512-TdJqPHs2lW5J9Zpe17DZNQuDnox4xo2o+0tE7Pggain9Rbc19ik8kFtXdxZ250FVx2kF4vlt2RSf4qlUpG7bhw==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - eslint: '*' - eslint-plugin-import: '*' - dependencies: - debug: 4.3.4 - enhanced-resolve: 5.15.0 - eslint: 8.45.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.45.0) - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.45.0) - get-tsconfig: 4.6.2 - globby: 13.2.2 - is-core-module: 2.12.1 - is-glob: 4.0.3 - synckit: 0.8.5 - transitivePeerDependencies: - - '@typescript-eslint/parser' - - eslint-import-resolver-node - - eslint-import-resolver-webpack - - supports-color - dev: true - - /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.45.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.0.0)(eslint-import-resolver-node@0.3.7)(eslint@8.45.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -3047,11 +2917,10 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.62.0(eslint@8.45.0)(typescript@5.1.6) + '@typescript-eslint/parser': 6.0.0(eslint@8.45.0)(typescript@5.1.6) debug: 3.2.7 eslint: 8.45.0 eslint-import-resolver-node: 0.3.7 - eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.27.5)(eslint@8.45.0) transitivePeerDependencies: - supports-color dev: true @@ -3067,7 +2936,7 @@ packages: eslint: 8.45.0 dev: true - /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.45.0): + /eslint-plugin-import@2.27.5(@typescript-eslint/parser@6.0.0)(eslint@8.45.0): resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} engines: {node: '>=4'} peerDependencies: @@ -3077,7 +2946,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.62.0(eslint@8.45.0)(typescript@5.1.6) + '@typescript-eslint/parser': 6.0.0(eslint@8.45.0)(typescript@5.1.6) array-includes: 3.1.6 array.prototype.flat: 1.3.1 array.prototype.flatmap: 1.3.1 @@ -3085,7 +2954,7 @@ packages: doctrine: 2.1.0 eslint: 8.45.0 eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.45.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.0.0)(eslint-import-resolver-node@0.3.7)(eslint@8.45.0) has: 1.0.3 is-core-module: 2.12.1 is-glob: 4.0.3 @@ -3142,13 +3011,30 @@ packages: semver: 7.5.4 dev: true - /eslint-plugin-promise@6.1.1(eslint@8.45.0): - resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /eslint-plugin-no-only-tests@3.1.0: + resolution: {integrity: sha512-Lf4YW/bL6Un1R6A76pRZyE1dl1vr31G/ev8UzIc/geCgFWyrKil8hVjYqWVKGB/UIGmb6Slzs9T0wNezdSVegw==} + engines: {node: '>=5.0.0'} + dev: true + + /eslint-plugin-prettier@5.0.0(eslint-config-prettier@8.8.0)(eslint@8.45.0)(prettier@3.0.0): + resolution: {integrity: sha512-AgaZCVuYDXHUGxj/ZGu1u8H8CYgDY3iG6w5kUFw4AzMVXzB7VvbKgYR4nATIN+OvUrghMbiDLeimVjVY5ilq3w==} + engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + '@types/eslint': '>=8.0.0' + eslint: '>=8.0.0' + eslint-config-prettier: '*' + prettier: '>=3.0.0' + peerDependenciesMeta: + '@types/eslint': + optional: true + eslint-config-prettier: + optional: true dependencies: eslint: 8.45.0 + eslint-config-prettier: 8.8.0(eslint@8.45.0) + prettier: 3.0.0 + prettier-linter-helpers: 1.0.0 + synckit: 0.8.5 dev: true /eslint-plugin-react-hooks@4.6.0(eslint@8.45.0): @@ -3238,21 +3124,6 @@ packages: estraverse: 5.3.0 dev: true - /eslint-utils@3.0.0(eslint@8.45.0): - resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} - engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} - peerDependencies: - eslint: '>=5' - dependencies: - eslint: 8.45.0 - eslint-visitor-keys: 2.1.0 - dev: true - - /eslint-visitor-keys@2.1.0: - resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} - engines: {node: '>=10'} - dev: true - /eslint-visitor-keys@3.4.1: resolution: {integrity: sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -3394,6 +3265,10 @@ packages: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: true + /fast-diff@1.3.0: + resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} + dev: true + /fast-glob@3.3.0: resolution: {integrity: sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==} engines: {node: '>=8.6.0'} @@ -5015,6 +4890,19 @@ packages: engines: {node: '>= 0.8.0'} dev: true + /prettier-linter-helpers@1.0.0: + resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} + engines: {node: '>=6.0.0'} + dependencies: + fast-diff: 1.3.0 + dev: true + + /prettier@3.0.0: + resolution: {integrity: sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g==} + engines: {node: '>=14'} + hasBin: true + dev: true + /pretty-format@27.5.1: resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -5217,11 +5105,6 @@ packages: define-properties: 1.2.0 functions-have-names: 1.2.3 - /regexpp@3.2.0: - resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} - engines: {node: '>=8'} - dev: true - /require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -5683,11 +5566,6 @@ packages: tslib: 2.6.0 dev: true - /tapable@2.2.1: - resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} - engines: {node: '>=6'} - dev: true - /test-exclude@6.0.0: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} @@ -5776,6 +5654,15 @@ packages: engines: {node: '>=14.16'} dev: true + /ts-api-utils@1.0.1(typescript@5.1.6): + resolution: {integrity: sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==} + engines: {node: '>=16.13.0'} + peerDependencies: + typescript: '>=4.2.0' + dependencies: + typescript: 5.1.6 + dev: true + /tsconfig-paths@3.14.2: resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==} dependencies: @@ -6366,3 +6253,7 @@ packages: /zod@3.21.4: resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==} dev: false + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index ed54ecd09..15989339b 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,3 +1,3 @@ packages: - 'packages/*' - - 'examples/*' \ No newline at end of file + - 'examples/*' diff --git a/tsconfig.base.json b/tsconfig.base.json new file mode 100644 index 000000000..f8cc4cd65 --- /dev/null +++ b/tsconfig.base.json @@ -0,0 +1,13 @@ +{ + "compilerOptions": { + "declaration": true, + "emitDeclarationOnly": true, + "strict": true, + "allowJs": true, + "noEmit": true, + "moduleResolution": "node", + "esModuleInterop": true, + "skipLibCheck": true, + "verbatimModuleSyntax": true + } +} diff --git a/tsconfig.eslint.json b/tsconfig.eslint.json new file mode 100644 index 000000000..ffcbb9477 --- /dev/null +++ b/tsconfig.eslint.json @@ -0,0 +1,3 @@ +{ + "extends": "./tsconfig.base.json" +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 000000000..7704e13bc --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,5 @@ +// Yes this file is intentionally empty! +// --- +// Having a blank `tsconfig.json` file prevents TypeScript from crawling up your directory tree +// and possibly picking up a parent `tsconfig.json` (which, unsurprisingly, is very hard to debug) +{} From 9f25be794ff6b08d8ca30cc5f27dff554136d163 Mon Sep 17 00:00:00 2001 From: Jason Finch Date: Thu, 27 Jul 2023 18:07:20 +1000 Subject: [PATCH 012/440] refactor(lint): Enable linting on examples, fix lint warnings. (#1111) - Add utils required for react-oidc-demo spec test. --- .eslintignore | 5 +- .eslintrc.cjs | 8 + examples/nextjs-demo/components/layout.js | 19 +- examples/nextjs-demo/pages/_app.js | 4 +- examples/nextjs-demo/pages/index.js | 27 ++- examples/oidc-client-demo/src/index.tsx | 16 +- examples/react-oidc-demo/src/App.spec.tsx | 44 +++-- examples/react-oidc-demo/src/App.tsx | 2 +- examples/react-oidc-demo/src/FetchUser.tsx | 2 +- examples/react-oidc-demo/src/Home.tsx | 3 +- examples/react-oidc-demo/src/MultiAuth.tsx | 2 +- examples/react-oidc-demo/src/Profile.tsx | 2 +- .../src/override/SessionLost.component.tsx | 2 +- examples/react-oidc-demo/src/utils/sleep.ts | 5 + examples/react-oidc-demo/src/utils/timer.ts | 163 ++++++++++++++++++ 15 files changed, 241 insertions(+), 63 deletions(-) create mode 100644 examples/react-oidc-demo/src/utils/sleep.ts create mode 100644 examples/react-oidc-demo/src/utils/timer.ts diff --git a/.eslintignore b/.eslintignore index 21c3cdfe7..f2c09a0d3 100644 --- a/.eslintignore +++ b/.eslintignore @@ -5,8 +5,11 @@ packages/**/coverage/**/* packages/**/fixtures/**/* node_modules # TODO Disable examples, we want to include it. -examples/**/* public/**/* +examples/**/static/**/* +examples/**/dist/**/* +examples/**/OidcTrustedDomains.js +examples/**/OidcServiceWorker.js scripts/**/* .github .changeset diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 48970a76b..3e459dd52 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -125,6 +125,14 @@ module.exports = { files: ['*.js', '*.jsx'], rules: { '@typescript-eslint/no-var-requires': 'off', + 'react/no-unknown-property':[ + 2, { + "ignore": [ + "jsx", + "global" + ] + } + ] }, }, { diff --git a/examples/nextjs-demo/components/layout.js b/examples/nextjs-demo/components/layout.js index ca6a0aa79..b476e7ddc 100644 --- a/examples/nextjs-demo/components/layout.js +++ b/examples/nextjs-demo/components/layout.js @@ -1,30 +1,33 @@ import { OidcProvider } from '@axa-fr/react-oidc'; -import { useRouter } from 'next/router' +import { useRouter } from 'next/router'; +import React from 'react'; const configuration = { client_id: 'interactive.public.short', redirect_uri: 'http://localhost:3001/#authentication/callback', silent_redirect_uri: 'http://localhost:3001/#authentication/silent-callback', // Optional activate silent-signin that use cookies between OIDC server and client javascript to restore the session scope: 'openid profile email api offline_access', - authority: 'https://demo.duendesoftware.com' + authority: 'https://demo.duendesoftware.com', }; const onEvent=(configurationName, eventName, data )=>{ + // eslint-disable-next-line no-undef console.log(`oidc:${configurationName}:${eventName}`, data); - } + }; export default function Layout({ children }) { - const router = useRouter() + const router = useRouter(); const withCustomHistory= () => { return { replaceState: (url) => { router.replace({ pathname: url, }).then(() => { + // eslint-disable-next-line no-undef window.dispatchEvent(new Event('popstate')); - } - ) - } + }, + ); + }, }; }; return ( @@ -33,5 +36,5 @@ export default function Layout({ children }) {
{children}
- ) + ); } \ No newline at end of file diff --git a/examples/nextjs-demo/pages/_app.js b/examples/nextjs-demo/pages/_app.js index 09bfde03a..829aeaaca 100644 --- a/examples/nextjs-demo/pages/_app.js +++ b/examples/nextjs-demo/pages/_app.js @@ -1,9 +1,9 @@ -import Layout from '../components/layout' +import Layout from '../components/layout'; export default function MyApp({ Component, pageProps }) { return ( - ) + ); } \ No newline at end of file diff --git a/examples/nextjs-demo/pages/index.js b/examples/nextjs-demo/pages/index.js index 44b8015e2..679fae649 100644 --- a/examples/nextjs-demo/pages/index.js +++ b/examples/nextjs-demo/pages/index.js @@ -1,6 +1,5 @@ -import Head from 'next/head' -import { OidcSecure, useOidcAccessToken, useOidcIdToken, useOidcUser, OidcUserStatus} from '@axa-fr/react-oidc'; - +import { OidcSecure, OidcUserStatus,useOidcAccessToken, useOidcIdToken, useOidcUser} from '@axa-fr/react-oidc'; +import Head from 'next/head'; const DisplayUserInfo = () => { const{ oidcUser, oidcUserLoadingState } = useOidcUser(); @@ -33,24 +32,25 @@ export const Profile = () => { ); -} +}; const DisplayAccessToken = () => { const{ accessToken, accessTokenPayload } = useOidcAccessToken(); if(!accessToken){ - return

you are not authenticated

+ return

you are not authenticated

; } return (
Access Token
-

Please consider to configure the ServiceWorker in order to protect your application from XSRF attacks. "access_token" and "refresh_token" will never be accessible from your client side javascript.

+

+ Please consider to configure the ServiceWorker in order to protect your application from XSRF attacks. "access_token" and "refresh_token" will never be accessible from your client side javascript.

{

Access Token: {JSON.stringify(accessToken)}

} {accessTokenPayload != null &&

Access Token Payload: {JSON.stringify(accessTokenPayload)}

}
- ) + ); }; @@ -58,7 +58,7 @@ const DisplayIdToken =() => { const{ idToken, idTokenPayload } = useOidcIdToken(); if(!idToken){ - return

you are not authenticated

+ return

you are not authenticated

; } return ( @@ -70,10 +70,9 @@ const DisplayIdToken =() => { ); -} - -export default function Home({}) { +}; +export default function Home() { return (
@@ -242,7 +241,7 @@ export default function Home({}) { } `}
- ) + ); } import Layout from '../components/layout'; @@ -252,5 +251,5 @@ Home.getLayout = function getLayout(page) { {page} - ) -} \ No newline at end of file + ); +}; \ No newline at end of file diff --git a/examples/oidc-client-demo/src/index.tsx b/examples/oidc-client-demo/src/index.tsx index 664937d13..b9e5470b3 100644 --- a/examples/oidc-client-demo/src/index.tsx +++ b/examples/oidc-client-demo/src/index.tsx @@ -104,19 +104,19 @@ vanillaOidc.tryKeepExistingSessionAsync().then(() => { router.getCustomHistory().replaceState("/"); // @ts-ignore window.logout = () => vanillaOidc.logoutAsync(); - let tokens = vanillaOidc.tokens; + const tokens = vanillaOidc.tokens; // @ts-ignore element.innerHTML = `

@axa-fr/vanilla-oidc demo

Authenticated

${JSON.stringify(tokens,null,'\t')}
-
` + `; }); - return + return; } - let tokens = vanillaOidc.tokens; + const tokens = vanillaOidc.tokens; if(tokens){ @@ -128,7 +128,7 @@ vanillaOidc.tryKeepExistingSessionAsync().then(() => {

Authenticated

${JSON.stringify(tokens,null,'\t')}
- ` + `; } else { @@ -139,13 +139,13 @@ vanillaOidc.tryKeepExistingSessionAsync().then(() => {

@axa-fr/vanilla-oidc demo

Loading

`; - vanillaOidc.loginAsync("/") + vanillaOidc.loginAsync("/"); }; // @ts-ignore element.innerHTML = `

@axa-fr/vanilla-oidc demo

-
` + `; } -}) +}); diff --git a/examples/react-oidc-demo/src/App.spec.tsx b/examples/react-oidc-demo/src/App.spec.tsx index 3b3523295..f54be1852 100644 --- a/examples/react-oidc-demo/src/App.spec.tsx +++ b/examples/react-oidc-demo/src/App.spec.tsx @@ -1,11 +1,12 @@ -import React from 'react' -import {rest} from 'msw' -import {setupServer} from 'msw/node' -import {render, fireEvent, waitFor, screen} from '@testing-library/react' -import '@testing-library/jest-dom' +import '@testing-library/jest-dom'; + +import {fireEvent, render, screen} from '@testing-library/react'; +import {rest} from 'msw'; +import {setupServer} from 'msw/node'; +import { describe, expect,it } from 'vitest'; + import App from "./App"; -import {sleepAsync} from "./oidc/vanilla/initWorker"; -import { describe, it, expect } from 'vitest'; +import {sleepAsync} from "./utils/sleep"; const server = setupServer( rest.get('http://api/.well-known/openid-configuration', (req, res, ctx) => { @@ -19,29 +20,26 @@ const server = setupServer( "check_session_iframe":"https://demo.identityserver.io/connect/checksession", "revocation_endpoint":"https://demo.identityserver.io/connect/revocation", "introspection_endpoint":"https://demo.identityserver.io/connect/introspect", - "device_authorization_endpoint":"https://demo.identityserver.io/connect/deviceauthorization","frontchannel_logout_supported":true,"frontchannel_logout_session_supported":true,"backchannel_logout_supported":true,"backchannel_logout_session_supported":true,"scopes_supported":["openid","profile","email","api","api.scope1","api.scope2","scope2","policyserver.runtime","policyserver.management","offline_access"],"claims_supported":["sub","name","family_name","given_name","middle_name","nickname","preferred_username","profile","picture","website","gender","birthdate","zoneinfo","locale","updated_at","email","email_verified"],"grant_types_supported":["authorization_code","client_credentials","refresh_token","implicit","password","urn:ietf:params:oauth:grant-type:device_code"],"response_types_supported":["code","token","id_token","id_token token","code id_token","code token","code id_token token"],"response_modes_supported":["form_post","query","fragment"],"token_endpoint_auth_methods_supported":["client_secret_basic","client_secret_post"],"id_token_signing_alg_values_supported":["RS256"],"subject_types_supported":["public"],"code_challenge_methods_supported":["plain","S256"],"request_parameter_supported":true})) + "device_authorization_endpoint":"https://demo.identityserver.io/connect/deviceauthorization","frontchannel_logout_supported":true,"frontchannel_logout_session_supported":true,"backchannel_logout_supported":true,"backchannel_logout_session_supported":true,"scopes_supported":["openid","profile","email","api","api.scope1","api.scope2","scope2","policyserver.runtime","policyserver.management","offline_access"],"claims_supported":["sub","name","family_name","given_name","middle_name","nickname","preferred_username","profile","picture","website","gender","birthdate","zoneinfo","locale","updated_at","email","email_verified"],"grant_types_supported":["authorization_code","client_credentials","refresh_token","implicit","password","urn:ietf:params:oauth:grant-type:device_code"],"response_types_supported":["code","token","id_token","id_token token","code id_token","code token","code id_token token"],"response_modes_supported":["form_post","query","fragment"],"token_endpoint_auth_methods_supported":["client_secret_basic","client_secret_post"],"id_token_signing_alg_values_supported":["RS256"],"subject_types_supported":["public"],"code_challenge_methods_supported":["plain","S256"],"request_parameter_supported":true})); }), -) +); -// @ts-ignore global.window["crypto"]={ // @ts-ignore - getRandomValues:(buffer)=>{return ""}, + getRandomValues:()=>{return "";}, // @ts-ignore subtle:{ - // @ts-ignore - digest:(algo, code) => {return Promise.resolve(new ArrayBuffer(32))}} -} -// @ts-ignore + digest:() => {return Promise.resolve(new ArrayBuffer(32));}}, +}; const url = "http://dummy.com"; Object.defineProperty(global.window, 'location', { value: { - href: url - } + href: url, + }, }); -beforeAll(() => server.listen()) -afterEach(() => server.resetHandlers()) -afterAll(() => server.close()) +beforeAll(() => server.listen()); +afterEach(() => server.resetHandlers()); +afterAll(() => server.close()); describe('Authenticating test suite', () => { it('Load home page then login should log', async () => { @@ -54,10 +52,10 @@ describe('Authenticating test suite', () => { refresh_time_before_tokens_expiration_in_second: 70, }; // @ts-ignore - const { getByText } = render(); - await waitFor(() => getByText('GitHub @axa-fr/react-oidc')); + render(); + await screen.findByText('GitHub @axa-fr/react-oidc'); fireEvent.click(screen.getByText('Login')); - await waitFor(() => getByText('Authentication in progress')); + await screen.findByText('Authentication in progress'); await sleepAsync(4000); expect(global.window.location.href).toBe("https://demo.duendesoftware.com/connect/authorize?client_id=interactive.public.short&redirect_uri=http%3A%2F%2Flocalhost%3A3000%2Fauthentication%2Fcallback&scope=openid%20profile%20email%20api%20offline_access&response_type=code&youhou_demo=youhou&state=AAAAAAAAAAAAAAAA&nonce=AAAAAAAAAAAA&code_challenge=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA&code_challenge_method=S256"); }); diff --git a/examples/react-oidc-demo/src/App.tsx b/examples/react-oidc-demo/src/App.tsx index 62d6615d5..f80c9250f 100644 --- a/examples/react-oidc-demo/src/App.tsx +++ b/examples/react-oidc-demo/src/App.tsx @@ -1,3 +1,4 @@ +import { OidcProvider, withOidcSecure } from '@axa-fr/react-oidc'; import React, { useReducer } from 'react'; import { BrowserRouter, NavLink, Route, Routes } from 'react-router-dom'; @@ -5,7 +6,6 @@ import { configurationIdentityServer } from './configurations.js'; import { FetchUserHoc, FetchUserHook } from './FetchUser.js'; import { Home } from './Home.js'; import { MultiAuthContainer } from './MultiAuth.js'; -import { OidcProvider, withOidcSecure } from '@axa-fr/react-oidc'; import { Profile, SecureProfile } from './Profile.js'; const OidcSecureHoc = withOidcSecure(Profile); diff --git a/examples/react-oidc-demo/src/FetchUser.tsx b/examples/react-oidc-demo/src/FetchUser.tsx index e1e7fd920..b4178363e 100644 --- a/examples/react-oidc-demo/src/FetchUser.tsx +++ b/examples/react-oidc-demo/src/FetchUser.tsx @@ -1,5 +1,5 @@ -import React, { useEffect, useState } from 'react'; import { OidcSecure, useOidcFetch, withOidcFetch } from '@axa-fr/react-oidc'; +import React, { useEffect, useState } from 'react'; const DisplayUserInfo = ({ fetch }) => { const [oidcUser, setOidcUser] = useState(null); diff --git a/examples/react-oidc-demo/src/Home.tsx b/examples/react-oidc-demo/src/Home.tsx index 420695fa5..045c8ef2c 100644 --- a/examples/react-oidc-demo/src/Home.tsx +++ b/examples/react-oidc-demo/src/Home.tsx @@ -1,6 +1,5 @@ -import React from 'react'; - import { useOidc } from '@axa-fr/react-oidc'; +import React from 'react'; export const Home = () => { const { login, logout, renewTokens, isAuthenticated } = useOidc(); diff --git a/examples/react-oidc-demo/src/MultiAuth.tsx b/examples/react-oidc-demo/src/MultiAuth.tsx index 85a88266c..38ee6663f 100644 --- a/examples/react-oidc-demo/src/MultiAuth.tsx +++ b/examples/react-oidc-demo/src/MultiAuth.tsx @@ -1,7 +1,7 @@ +import { Fetch, OidcProvider, useOidc, useOidcAccessToken, useOidcIdToken } from '@axa-fr/react-oidc'; import React, { useReducer, useState } from 'react'; import { configurationGoogle, configurationIdentityServer, configurationIdentityServerWithHash } from './configurations'; -import { Fetch, OidcProvider, useOidc, useOidcAccessToken, useOidcIdToken } from '@axa-fr/react-oidc'; import AuthenticatingError from './override/AuthenticateError.component'; import Authenticating from './override/Authenticating.component'; import { CallBackSuccess } from './override/Callback.component'; diff --git a/examples/react-oidc-demo/src/Profile.tsx b/examples/react-oidc-demo/src/Profile.tsx index dd2cfcb95..4a510d6bd 100644 --- a/examples/react-oidc-demo/src/Profile.tsx +++ b/examples/react-oidc-demo/src/Profile.tsx @@ -1,5 +1,5 @@ +import { OidcSecure, type OidcUserInfo, OidcUserStatus, useOidcAccessToken, useOidcIdToken, useOidcUser } from '@axa-fr/react-oidc'; import React from 'react'; -import { type OidcUserInfo, OidcSecure, OidcUserStatus, useOidcAccessToken, useOidcIdToken, useOidcUser } from '@axa-fr/react-oidc'; interface OidcUserRoleInfo extends OidcUserInfo{ role?: string[]; diff --git a/examples/react-oidc-demo/src/override/SessionLost.component.tsx b/examples/react-oidc-demo/src/override/SessionLost.component.tsx index b90000eab..ab6edd96f 100644 --- a/examples/react-oidc-demo/src/override/SessionLost.component.tsx +++ b/examples/react-oidc-demo/src/override/SessionLost.component.tsx @@ -1,6 +1,6 @@ +import { useOidc } from '@axa-fr/react-oidc'; import { ComponentType } from 'react'; -import { useOidc } from '@axa-fr/react-oidc'; import { style } from './style.js'; export const SessionLost: ComponentType = ({ configurationName }) => { diff --git a/examples/react-oidc-demo/src/utils/sleep.ts b/examples/react-oidc-demo/src/utils/sleep.ts new file mode 100644 index 000000000..78dde1573 --- /dev/null +++ b/examples/react-oidc-demo/src/utils/sleep.ts @@ -0,0 +1,5 @@ +import timer from './timer'; + +export const sleepAsync = (milliseconds) => { + return new Promise((resolve) => timer.setTimeout(resolve, milliseconds)); +}; diff --git a/examples/react-oidc-demo/src/utils/timer.ts b/examples/react-oidc-demo/src/utils/timer.ts new file mode 100644 index 000000000..cd088f52b --- /dev/null +++ b/examples/react-oidc-demo/src/utils/timer.ts @@ -0,0 +1,163 @@ +const timer = (function () { + const workerPort = (function () { + let worker; + let blobURL; + + const workerCode = function () { + const innerIdsByOuterIds = {}; + + const methods = { + setTimeout: function (port, id, timeout) { + innerIdsByOuterIds[id] = setTimeout(function () { + port.postMessage(id); + innerIdsByOuterIds[id] = null; + }, timeout); + }, + + setInterval: function (port, id, timeout) { + innerIdsByOuterIds[id] = setInterval(function () { + port.postMessage(id); + }, timeout); + }, + + clearTimeout: function (port, id) { + clearTimeout(innerIdsByOuterIds[id]); + innerIdsByOuterIds[id] = null; + }, + + clearInterval: function (port, id) { + clearInterval(innerIdsByOuterIds[id]); + innerIdsByOuterIds[id] = null; + }, + }; + + function onMessage(port, event) { + const method = event.data[0]; + const id = event.data[1]; + const option = event.data[2]; + + if (methods[method]) { + methods[method](port, id, option); + } + } + + // For Dedicated Worker + this.onmessage = function (event) { + onMessage(self, event); + }; + + // For Shared Worker + this.onconnect = function (event) { + const port = event.ports[0]; + + port.onmessage = function (event) { + onMessage(port, event); + }; + }; + }.toString(); + + try { + const blob = new Blob(['(', workerCode, ')()'], { type: 'application/javascript' }); + blobURL = URL.createObjectURL(blob); + } catch (error) { + return null; + } + const isInsideBrowser = (typeof process === 'undefined'); + try { + if (SharedWorker) { + worker = new SharedWorker(blobURL); + return worker.port; + } + } catch (error) { + if (isInsideBrowser) { + console.warn('SharedWorker not available'); + } + } + try { + if (Worker) { + worker = new Worker(blobURL); + return worker; + } + } catch (error) { + if (isInsideBrowser) { + console.warn('Worker not available'); + } + } + + return null; + }()); + + if (!workerPort) { + // In NextJS with SSR (Server Side Rendering) during rending in Node JS, the window object is undefined, + // the global object is used instead as it is the closest approximation of a browsers window object. + const bindContext = (typeof window === 'undefined') ? global : window; + + return { + setTimeout: setTimeout.bind(bindContext), + clearTimeout: clearTimeout.bind(bindContext), + setInterval: setInterval.bind(bindContext), + clearInterval: clearInterval.bind(bindContext), + }; + } + + const getId = (function () { + let currentId = 0; + + return function () { + currentId++; + return currentId; + }; + }()); + + const timeoutCallbacksById = {}; + const intervalCallbacksById = {}; + + workerPort.onmessage = function (event) { + const id = event.data; + + const timeoutCallback = timeoutCallbacksById[id]; + if (timeoutCallback) { + timeoutCallback(); + timeoutCallbacksById[id] = null; + return; + } + + const intervalCallback = intervalCallbacksById[id]; + if (intervalCallback) { + intervalCallback(); + } + }; + + function setTimeoutWorker(callback, timeout) { + const id = getId(); + workerPort.postMessage(['setTimeout', id, timeout]); + timeoutCallbacksById[id] = callback; + return id; + } + + function clearTimeoutWorker(id) { + workerPort.postMessage(['clearTimeout', id]); + timeoutCallbacksById[id] = null; + } + + function setIntervalWorker(callback, timeout) { + const id = getId(); + workerPort.postMessage(['setInterval', id, timeout]); + intervalCallbacksById[id] = callback; + return id; + } + + function clearIntervalWorker(id) { + workerPort.postMessage(['clearInterval', id]); + intervalCallbacksById[id] = null; + } + + return { + setTimeout: setTimeoutWorker, + clearTimeout: clearTimeoutWorker, + setInterval: setIntervalWorker, + clearInterval: clearIntervalWorker, + }; +}()); + +export default timer; From 0d8bc0626be0d5d14edca83dacb7367f57d4bb6d Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Fri, 28 Jul 2023 11:54:07 +0200 Subject: [PATCH 013/440] feat(oidc): rename vanilla-oidc to oidc-client (#1112) (release) --- .github/workflows/npm-publish.yml | 60 +++++++++++++------ examples/oidc-client-demo/package.json | 2 +- examples/oidc-client-demo/src/index.tsx | 12 ++-- examples/react-oidc-demo/README.md | 2 +- examples/react-oidc-demo/package.json | 12 ++-- package.json | 5 +- packages/oidc-client/README.md | 10 ++-- packages/oidc-client/package.json | 2 +- packages/react-oidc/package.json | 2 +- packages/react-oidc/src/FetchToken.tsx | 2 +- packages/react-oidc/src/OidcProvider.tsx | 2 +- packages/react-oidc/src/OidcSecure.tsx | 2 +- packages/react-oidc/src/ReactOidc.tsx | 2 +- packages/react-oidc/src/User.ts | 2 +- .../default-component/Callback.component.tsx | 2 +- .../SilentCallback.component.tsx | 2 +- .../SilentLogin.component.tsx | 2 +- .../react-oidc/src/core/routes/OidcRoutes.tsx | 2 +- packages/react-oidc/src/index.ts | 4 +- pnpm-lock.yaml | 53 ++++++++-------- readme.md | 17 +++--- 21 files changed, 112 insertions(+), 87 deletions(-) diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml index b5f637fa1..39600d4c9 100644 --- a/.github/workflows/npm-publish.yml +++ b/.github/workflows/npm-publish.yml @@ -148,7 +148,10 @@ jobs: # oidc-client - name: pnpm version ${{ steps.tag.outputs.new_version }} if: (github.ref == 'refs/heads/main' && steps.which_tag.outputs.tag == 'release') || steps.which_tag.outputs.tag == 'alpha' || steps.which_tag.outputs.tag == 'beta' - run: pnpm version ${{ steps.tag.outputs.new_version }} + run: | + set -e + pnpm version ${{ steps.tag.outputs.new_version }} || true + cat package.json working-directory: ./packages/oidc-client - name: pnpm ci @@ -160,9 +163,12 @@ jobs: working-directory: ./packages/oidc-client # React-oidc - - name: npm version ${{ steps.tag.outputs.new_version }} + - name: pnpm version ${{ steps.tag.outputs.new_version }} if: (github.ref == 'refs/heads/main' && steps.which_tag.outputs.tag == 'release') || steps.which_tag.outputs.tag == 'alpha' || steps.which_tag.outputs.tag == 'beta' - run: npm version ${{ steps.tag.outputs.new_version }} + run: | + set -e + pnpm version ${{ steps.tag.outputs.new_version }} || true + cat package.json working-directory: ./packages/react-oidc - name: pnpm i @@ -177,16 +183,6 @@ jobs: run: pnpm test -- --run working-directory: ./packages/react-oidc - - name: Commit updates package.json - uses: stefanzweifel/git-auto-commit-action@v4 - if: github.ref == 'refs/heads/main' && steps.which_tag.outputs.tag == 'release' - with: - commit_message: "[skip ci] Update version package.json" - commit_user_name: GitHub - commit_user_email: github-action@bot.com - commit_author: GitHub - push_options: '--force' - # oidc-client-service-worker - id: publish-oidc-client-service-worker uses: JS-DevTools/npm-publish@v1 @@ -198,7 +194,9 @@ jobs: # oidc-client - name: replace workspace:* by ${{ steps.tag.outputs.new_version }} if: (github.ref == 'refs/heads/main' && steps.which_tag.outputs.tag == 'release') || steps.which_tag.outputs.tag == 'alpha' || steps.which_tag.outputs.tag == 'beta' - run: sed -i 's/workspace:\*/${{ steps.tag.outputs.new_version }}/g' package.json + run: | + sed -i 's/workspace:\*/${{ steps.tag.outputs.new_version }}/g' package.json + cat package.json working-directory: ./packages/oidc-client - id: publish-oidc-client @@ -207,19 +205,47 @@ jobs: with: token: ${{ secrets.NPM_TOKEN }} package: ./packages/oidc-client/package.json - + + - name: replace ${{ steps.tag.outputs.new_version }} by workspace:* + if: (github.ref == 'refs/heads/main' && steps.which_tag.outputs.tag == 'release') || steps.which_tag.outputs.tag == 'alpha' || steps.which_tag.outputs.tag == 'beta' + run: | + sed -i 's/"@axa-fr\/oidc-client-service-worker": "[^"]*"/"@axa-fr\/oidc-client-service-worker": "workspace:*"/g' package.json + cat package.json + working-directory: ./packages/oidc-client + # react-oidc - name: replace workspace:* by ${{ steps.tag.outputs.new_version }} if: (github.ref == 'refs/heads/main' && steps.which_tag.outputs.tag == 'release') || steps.which_tag.outputs.tag == 'alpha' || steps.which_tag.outputs.tag == 'beta' - run: sed -i 's/workspace:\*/${{ steps.tag.outputs.new_version }}/g' package.json + run: | + sed -i 's/workspace:\*/${{ steps.tag.outputs.new_version }}/g' package.json + cat package.json working-directory: ./packages/react-oidc - + - id: publish-react uses: JS-DevTools/npm-publish@v1 if: (github.ref == 'refs/heads/main' && steps.which_tag.outputs.tag == 'release') || steps.which_tag.outputs.tag == 'alpha' || steps.which_tag.outputs.tag == 'beta' with: token: ${{ secrets.NPM_TOKEN }} package: ./packages/react-oidc/package.json + + - name: replace ${{ steps.tag.outputs.new_version }} by workspace:* + if: (github.ref == 'refs/heads/main' && steps.which_tag.outputs.tag == 'release') || steps.which_tag.outputs.tag == 'alpha' || steps.which_tag.outputs.tag == 'beta' + run: | + sed -i 's/"@axa-fr\/oidc-client-service-worker": "[^"]*"/"@axa-fr\/oidc-client-service-worker": "workspace:*"/g' package.json + sed -i 's/"@axa-fr\/oidc-client": "[^"]*"/"@axa-fr\/oidc-client": "workspace:*"/g' package.json + cat package.json + working-directory: ./packages/react-oidc + + - name: Commit updates package.json + uses: stefanzweifel/git-auto-commit-action@v4 + if: github.ref == 'refs/heads/main' && steps.which_tag.outputs.tag == 'release' + with: + commit_message: "[skip ci] Update version package.json" + commit_user_name: GitHub + commit_user_email: github-action@bot.com + commit_author: GitHub + push_options: '--force' + - name: SonarCloud Scan uses: sonarsource/sonarcloud-github-action@master diff --git a/examples/oidc-client-demo/package.json b/examples/oidc-client-demo/package.json index bfc877e94..b64e62557 100644 --- a/examples/oidc-client-demo/package.json +++ b/examples/oidc-client-demo/package.json @@ -3,7 +3,7 @@ "version": "1.0.0", "private": true, "dependencies": { - "@axa-fr/vanilla-oidc": "workspace:~", + "@axa-fr/oidc-client": "workspace:~", "@testing-library/jest-dom": "^5.16.5", "@testing-library/user-event": "^13.5.0", "@types/jest": "^27.5.2", diff --git a/examples/oidc-client-demo/src/index.tsx b/examples/oidc-client-demo/src/index.tsx index b9e5470b3..f13b97615 100644 --- a/examples/oidc-client-demo/src/index.tsx +++ b/examples/oidc-client-demo/src/index.tsx @@ -1,4 +1,4 @@ -import { VanillaOidc } from '@axa-fr/vanilla-oidc'; +import { VanillaOidc } from '@axa-fr/oidc-client'; class Router { getCustomHistory(){ const generateKey = () => @@ -97,7 +97,7 @@ vanillaOidc.tryKeepExistingSessionAsync().then(() => { if(href.includes(configuration.redirect_uri)){ // @ts-ignore element.innerHTML = `
-

@axa-fr/vanilla-oidc demo

+

@axa-fr/oidc-client demo

Loading callback

`; vanillaOidc.loginCallbackAsync().then(()=>{ @@ -107,7 +107,7 @@ vanillaOidc.tryKeepExistingSessionAsync().then(() => { const tokens = vanillaOidc.tokens; // @ts-ignore element.innerHTML = `
-

@axa-fr/vanilla-oidc demo

+

@axa-fr/oidc-client demo

Authenticated

${JSON.stringify(tokens,null,'\t')}
@@ -124,7 +124,7 @@ vanillaOidc.tryKeepExistingSessionAsync().then(() => { window.logout = () => vanillaOidc.logoutAsync(); // @ts-ignore element.innerHTML = `
-

@axa-fr/vanilla-oidc demo

+

@axa-fr/oidc-client demo

Authenticated

${JSON.stringify(tokens,null,'\t')}
@@ -136,14 +136,14 @@ vanillaOidc.tryKeepExistingSessionAsync().then(() => { window.login= () => { // @ts-ignore element.innerHTML = `
-

@axa-fr/vanilla-oidc demo

+

@axa-fr/oidc-client demo

Loading

`; vanillaOidc.loginAsync("/"); }; // @ts-ignore element.innerHTML = `
-

@axa-fr/vanilla-oidc demo

+

@axa-fr/oidc-client demo

`; } diff --git a/examples/react-oidc-demo/README.md b/examples/react-oidc-demo/README.md index 102b48cfa..b61a546b4 100644 --- a/examples/react-oidc-demo/README.md +++ b/examples/react-oidc-demo/README.md @@ -547,7 +547,7 @@ render(, document.getElementById("root")); ## How It Works -These components encapsulate the use of "@axa-fr/vanilla-oidc" in order to hide workflow complexity. +These components encapsulate the use of "@axa-fr/oidc-client" in order to hide workflow complexity. Internally, native History API is used to be router library agnostic. More information about OIDC diff --git a/examples/react-oidc-demo/package.json b/examples/react-oidc-demo/package.json index dc59cabc5..7f30f2314 100644 --- a/examples/react-oidc-demo/package.json +++ b/examples/react-oidc-demo/package.json @@ -16,10 +16,13 @@ "serve": "vite preview", "clean": "rimraf dist" }, - "devDependencies": { - "@axa-fr/vanilla-oidc": "workspace:*", + "dependencies": { "@axa-fr/react-oidc":"workspace:*", - "@axa-fr/oidc-client-service-worker": "workspace:*", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-router-dom": "^6.14.1" + }, + "devDependencies": { "@testing-library/jest-dom": "5.16.5", "@testing-library/react": "13.3.0", "@testing-library/user-event": "14.4.3", @@ -31,9 +34,6 @@ "cross-env": "^7.0.3", "jsdom": "22.1.0", "msw": "1.2.2", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "react-router-dom": "^6.14.1", "typescript": "5.1.6", "vite": "^4.4.4", "vite-plugin-dts": "^3.3.0", diff --git a/package.json b/package.json index cab2827cc..239b780dc 100644 --- a/package.json +++ b/package.json @@ -6,9 +6,8 @@ "license": "MIT", "workspaces": [ "packages/oidc-service-worker", - "packages/vanilla", - "packages/react", - "packages/vanilla-demo" + "packages/oidc-client", + "packages/react-oidc" ], "keywords": [ "react", diff --git a/packages/oidc-client/README.md b/packages/oidc-client/README.md index e0144279d..c8b7aa9f0 100644 --- a/packages/oidc-client/README.md +++ b/packages/oidc-client/README.md @@ -42,7 +42,7 @@ The service worker catch **access_token** and **refresh_token** that will never ### Getting Started ```sh -npm install @axa-fr/vanilla-oidc --save +npm install @axa-fr/oidc-client --save # If you have a "public" folder, the 2 files will be created : # ./public/OidcServiceWorker.js <-- will be updated at each "npm install" @@ -68,7 +68,7 @@ const trustedDomains = { The code of the demo : ```js -import { VanillaOidc } from '@axa-fr/vanilla-oidc' +import { VanillaOidc } from '@axa-fr/oidc-client' export const configuration = { client_id: 'interactive.public.short', @@ -91,7 +91,7 @@ vanillaOidc.tryKeepExistingSessionAsync().then(() => { window.location.href = "/"; }); document.body.innerHTML = `
-

@axa-fr/vanilla-oidc demo

+

@axa-fr/oidc-client demo

Loading

`; return @@ -104,7 +104,7 @@ vanillaOidc.tryKeepExistingSessionAsync().then(() => { // @ts-ignore window.logout = () => vanillaOidc.logoutAsync(); document.body.innerHTML = `
-

@axa-fr/vanilla-oidc demo

+

@axa-fr/oidc-client demo

Authenticated

${JSON.stringify(tokens,null,'\t')}
@@ -115,7 +115,7 @@ vanillaOidc.tryKeepExistingSessionAsync().then(() => { // @ts-ignore window.login= () => vanillaOidc.loginAsync("/"); document.body.innerHTML = `
-

@axa-fr/vanilla-oidc demo

+

@axa-fr/oidc-client demo

` } diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 0c066bde1..597f3138e 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,5 +1,5 @@ { - "name": "@axa-fr/vanilla-oidc", + "name": "@axa-fr/oidc-client", "version": "6.25.6", "private": false, "type": "module", diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 585d3e6f0..0c39dae24 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -41,7 +41,7 @@ }, "dependencies": { "@axa-fr/oidc-client-service-worker": "workspace:*", - "@axa-fr/vanilla-oidc": "workspace:*", + "@axa-fr/oidc-client": "workspace:*", "base64-js": "1.5.1" }, "peerDependencies": { diff --git a/packages/react-oidc/src/FetchToken.tsx b/packages/react-oidc/src/FetchToken.tsx index aea6d68e7..160bbcadf 100644 --- a/packages/react-oidc/src/FetchToken.tsx +++ b/packages/react-oidc/src/FetchToken.tsx @@ -1,4 +1,4 @@ -import { Fetch, VanillaOidc } from '@axa-fr/vanilla-oidc'; +import { Fetch, VanillaOidc } from '@axa-fr/oidc-client'; import { useCallback } from 'react'; export interface ComponentWithOidcFetchProps { diff --git a/packages/react-oidc/src/OidcProvider.tsx b/packages/react-oidc/src/OidcProvider.tsx index b7ca22e55..6ec25b693 100644 --- a/packages/react-oidc/src/OidcProvider.tsx +++ b/packages/react-oidc/src/OidcProvider.tsx @@ -1,4 +1,4 @@ -import { Fetch, getFetchDefault, OidcConfiguration, VanillaOidc } from '@axa-fr/vanilla-oidc'; +import { Fetch, getFetchDefault, OidcConfiguration, VanillaOidc } from '@axa-fr/oidc-client'; import { ComponentType, FC, PropsWithChildren, useEffect, useState } from 'react'; import AuthenticatingError from './core/default-component/AuthenticateError.component.js'; diff --git a/packages/react-oidc/src/OidcSecure.tsx b/packages/react-oidc/src/OidcSecure.tsx index 0635e2f66..a83c4e00c 100644 --- a/packages/react-oidc/src/OidcSecure.tsx +++ b/packages/react-oidc/src/OidcSecure.tsx @@ -1,4 +1,4 @@ -import { StringMap, VanillaOidc } from '@axa-fr/vanilla-oidc'; +import { StringMap, VanillaOidc } from '@axa-fr/oidc-client'; import { FC, PropsWithChildren, useEffect } from 'react'; export type OidcSecureProps = { diff --git a/packages/react-oidc/src/ReactOidc.tsx b/packages/react-oidc/src/ReactOidc.tsx index 367c4d085..4d6e9a122 100644 --- a/packages/react-oidc/src/ReactOidc.tsx +++ b/packages/react-oidc/src/ReactOidc.tsx @@ -1,4 +1,4 @@ -import { StringMap, VanillaOidc } from '@axa-fr/vanilla-oidc'; +import { StringMap, VanillaOidc } from '@axa-fr/oidc-client'; import { useEffect, useState } from 'react'; const defaultConfigurationName = 'default'; diff --git a/packages/react-oidc/src/User.ts b/packages/react-oidc/src/User.ts index 4311e0c58..c889d0319 100644 --- a/packages/react-oidc/src/User.ts +++ b/packages/react-oidc/src/User.ts @@ -1,4 +1,4 @@ -import { type OidcUserInfo, VanillaOidc } from '@axa-fr/vanilla-oidc'; +import { type OidcUserInfo, VanillaOidc } from '@axa-fr/oidc-client'; import { useEffect, useState } from 'react'; export enum OidcUserStatus { diff --git a/packages/react-oidc/src/core/default-component/Callback.component.tsx b/packages/react-oidc/src/core/default-component/Callback.component.tsx index 612d326b8..ee8474032 100644 --- a/packages/react-oidc/src/core/default-component/Callback.component.tsx +++ b/packages/react-oidc/src/core/default-component/Callback.component.tsx @@ -1,4 +1,4 @@ -import { VanillaOidc } from '@axa-fr/vanilla-oidc'; +import { VanillaOidc } from '@axa-fr/oidc-client'; import { ComponentType, useEffect, useState } from 'react'; import { getCustomHistory } from '../routes/withRouter.js'; diff --git a/packages/react-oidc/src/core/default-component/SilentCallback.component.tsx b/packages/react-oidc/src/core/default-component/SilentCallback.component.tsx index dcef5baa4..6f6236076 100644 --- a/packages/react-oidc/src/core/default-component/SilentCallback.component.tsx +++ b/packages/react-oidc/src/core/default-component/SilentCallback.component.tsx @@ -1,4 +1,4 @@ -import { VanillaOidc } from '@axa-fr/vanilla-oidc'; +import { VanillaOidc } from '@axa-fr/oidc-client'; import { ComponentType, useEffect } from 'react'; const SilentCallbackManager: ComponentType = ({ configurationName }) => { diff --git a/packages/react-oidc/src/core/default-component/SilentLogin.component.tsx b/packages/react-oidc/src/core/default-component/SilentLogin.component.tsx index f12290bbd..26d9ec696 100644 --- a/packages/react-oidc/src/core/default-component/SilentLogin.component.tsx +++ b/packages/react-oidc/src/core/default-component/SilentLogin.component.tsx @@ -1,4 +1,4 @@ -import { getParseQueryStringFromLocation, VanillaOidc } from '@axa-fr/vanilla-oidc'; +import { getParseQueryStringFromLocation, VanillaOidc } from '@axa-fr/oidc-client'; import { ComponentType, useEffect } from 'react'; const SilentLogin: ComponentType = ({ configurationName }) => { diff --git a/packages/react-oidc/src/core/routes/OidcRoutes.tsx b/packages/react-oidc/src/core/routes/OidcRoutes.tsx index 7440d5e19..bddfd8132 100644 --- a/packages/react-oidc/src/core/routes/OidcRoutes.tsx +++ b/packages/react-oidc/src/core/routes/OidcRoutes.tsx @@ -1,4 +1,4 @@ -import { getPath } from '@axa-fr/vanilla-oidc'; +import { getPath } from '@axa-fr/oidc-client'; import React, { ComponentType, FC, PropsWithChildren, useEffect, useState } from 'react'; import CallbackComponent from '../default-component/Callback.component.js'; diff --git a/packages/react-oidc/src/index.ts b/packages/react-oidc/src/index.ts index 44537a8a1..1970a986f 100644 --- a/packages/react-oidc/src/index.ts +++ b/packages/react-oidc/src/index.ts @@ -8,5 +8,5 @@ export type { Fetch, OidcConfiguration, StringMap, -} from '@axa-fr/vanilla-oidc'; -export { type OidcUserInfo, TokenRenewMode } from '@axa-fr/vanilla-oidc'; +} from '@axa-fr/oidc-client'; +export { type OidcUserInfo, TokenRenewMode } from '@axa-fr/oidc-client'; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ea4915839..fb5534e72 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,5 +1,9 @@ lockfileVersion: '6.0' +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + importers: .: @@ -82,7 +86,7 @@ importers: examples/oidc-client-demo: dependencies: - '@axa-fr/vanilla-oidc': + '@axa-fr/oidc-client': specifier: workspace:~ version: link:../../packages/oidc-client '@testing-library/jest-dom': @@ -112,16 +116,20 @@ importers: version: 4.4.4(@types/node@18.11.9) examples/react-oidc-demo: - devDependencies: - '@axa-fr/oidc-client-service-worker': - specifier: workspace:* - version: link:../../packages/oidc-client-service-worker + dependencies: '@axa-fr/react-oidc': specifier: workspace:* version: link:../../packages/react-oidc - '@axa-fr/vanilla-oidc': - specifier: workspace:* - version: link:../../packages/oidc-client + react: + specifier: ^18.2.0 + version: 18.2.0 + react-dom: + specifier: ^18.2.0 + version: 18.2.0(react@18.2.0) + react-router-dom: + specifier: ^6.14.1 + version: 6.14.1(react-dom@18.2.0)(react@18.2.0) + devDependencies: '@testing-library/jest-dom': specifier: 5.16.5 version: 5.16.5 @@ -155,15 +163,6 @@ importers: msw: specifier: 1.2.2 version: 1.2.2(typescript@5.1.6) - react: - specifier: ^18.2.0 - version: 18.2.0 - react-dom: - specifier: ^18.2.0 - version: 18.2.0(react@18.2.0) - react-router-dom: - specifier: ^6.14.1 - version: 6.14.1(react-dom@18.2.0)(react@18.2.0) typescript: specifier: 5.1.6 version: 5.1.6 @@ -252,12 +251,12 @@ importers: packages/react-oidc: dependencies: + '@axa-fr/oidc-client': + specifier: workspace:* + version: link:../oidc-client '@axa-fr/oidc-client-service-worker': specifier: workspace:* version: link:../oidc-client-service-worker - '@axa-fr/vanilla-oidc': - specifier: workspace:* - version: link:../oidc-client base64-js: specifier: 1.5.1 version: 1.5.1 @@ -1186,6 +1185,7 @@ packages: engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [glibc] requiresBuild: true dev: false optional: true @@ -1195,6 +1195,7 @@ packages: engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [musl] requiresBuild: true dev: false optional: true @@ -1204,6 +1205,7 @@ packages: engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [glibc] requiresBuild: true dev: false optional: true @@ -1213,6 +1215,7 @@ packages: engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [musl] requiresBuild: true dev: false optional: true @@ -1291,7 +1294,7 @@ packages: /@remix-run/router@1.7.1: resolution: {integrity: sha512-bgVQM4ZJ2u2CM8k1ey70o1ePFXsEzYVZoWghh6WjM8p59jQ7HxzbHW4SbnWFG7V9ig9chLawQxDTZ3xzOF8MkQ==} engines: {node: '>=14'} - dev: true + dev: false /@rollup/pluginutils@5.0.2: resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} @@ -4990,7 +4993,7 @@ packages: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) react-router: 6.14.1(react@18.2.0) - dev: true + dev: false /react-router@6.14.1(react@18.2.0): resolution: {integrity: sha512-U4PfgvG55LdvbQjg5Y9QRWyVxIdO1LlpYT7x+tMAxd9/vmiPuJhIwdxZuIQLN/9e3O4KFDHYfR9gzGeYMasW8g==} @@ -5000,7 +5003,7 @@ packages: dependencies: '@remix-run/router': 1.7.1 react: 18.2.0 - dev: true + dev: false /react@18.2.0: resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} @@ -6253,7 +6256,3 @@ packages: /zod@3.21.4: resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==} dev: false - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false diff --git a/readme.md b/readme.md index fc9af3e02..4c414ae67 100644 --- a/readme.md +++ b/readme.md @@ -20,13 +20,14 @@ A set of react components to make Oidc (OpenID Connect) client easy. It aim to s - [Run The NextJS Demo](#run-the-nextjs-demo) - [How It Works](#how-it-works) - Packages - - [`@axa-fr/react-oidc`](./packages/react#readme.md) [![npm version](https://badge.fury.io/js/%40axa-fr%2Freact-oidc.svg)](https://badge.fury.io/js/%40axa-fr%2Freact-oidc) - - [`@axa-fr/vanilla-oidc`](./packages/vanilla#readme.md) [![npm version](https://badge.fury.io/js/%40axa-fr%2Fvanilla-oidc.svg)](https://badge.fury.io/js/%40axa-fr%2Fvanilla-oidc) - - [`@axa-fr/react-oidc-context`](./packages/context#readme.md) [![npm version](https://badge.fury.io/js/%40axa-fr%2Freact-oidc-context.svg)](https://badge.fury.io/js/%40axa-fr%2Freact-oidc-context) **Will be deprecated in v6: has been renamed to @axa-fr/react-oidc** - - [`@axa-fr/react-oidc-context-fetch`](./packages/context-fetch#readme.md) [![npm version](https://badge.fury.io/js/%40axa-fr%2Freact-oidc-context-fetch.svg)](https://badge.fury.io/js/%40axa-fr%2Freact-oidc-context-fetch) **Deprecated in v4** - - [`@axa-fr/react-oidc-redux`](./packages/redux#readme.md) [![npm version](https://badge.fury.io/js/%40axa-fr%2Freact-oidc-redux.svg)](https://badge.fury.io/js/%40axa-fr%2Freact-oidc-redux) **Deprecated in v4 : use react-oidc-context which works with redux and in fact does not use any react context** - - [`@axa-fr/react-oidc-redux-fetch`](./packages/redux-fetch#readme.md) [![npm version](https://badge.fury.io/js/%40axa-fr%2Freact-oidc-redux-fetch.svg)](https://badge.fury.io/js/%40axa-fr%2Freact-oidc-redux-fetch) **Deprecated in v4** - - [`@axa-fr/react-oidc-fetch-observable`](./packages/fetch-observable#readme.md) [![npm version](https://badge.fury.io/js/%40axa-fr%2Freact-oidc-fetch-observable.svg)](https://badge.fury.io/js/%40axa-fr%2Freact-oidc-fetch-observable) **Deprecated in v4** + - [`@axa-fr/react-oidc`](./packages/react-oidc#readme.md) [![npm version](https://badge.fury.io/js/%40axa-fr%2Freact-oidc.svg)](https://badge.fury.io/js/%40axa-fr%2Freact-oidc) + - [`@axa-fr/oidc-client`](./packages/oidc-client#readme.md) [![npm version](https://badge.fury.io/js/%40axa-fr%2Foidc-client.svg)](https://badge.fury.io/js/%40axa-fr%2Foidc-client) + - [`@axa-fr/vanilla-oidc`](./packages/oidc-client#readme.md) [![npm version](https://badge.fury.io/js/%40axa-fr%2Fvanilla-oidc.svg)](https://badge.fury.io/js/%40axa-fr%2Fvanilla-oidc) **Deprecated in v6: has been renamed to @axa-fr/oidc-client** + - [`@axa-fr/react-oidc-context`] [![npm version](https://badge.fury.io/js/%40axa-fr%2Freact-oidc-context.svg)](https://badge.fury.io/js/%40axa-fr%2Freact-oidc-context) **Deprecated in v6: has been renamed to @axa-fr/react-oidc** + - [`@axa-fr/react-oidc-context-fetch`] [![npm version](https://badge.fury.io/js/%40axa-fr%2Freact-oidc-context-fetch.svg)](https://badge.fury.io/js/%40axa-fr%2Freact-oidc-context-fetch) **Deprecated in v4** + - [`@axa-fr/react-oidc-redux`] [![npm version](https://badge.fury.io/js/%40axa-fr%2Freact-oidc-redux.svg)](https://badge.fury.io/js/%40axa-fr%2Freact-oidc-redux) **Deprecated in v4 : use react-oidc-context which works with redux and in fact does not use any react context** + - [`@axa-fr/react-oidc-redux-fetch`] [![npm version](https://badge.fury.io/js/%40axa-fr%2Freact-oidc-redux-fetch.svg)](https://badge.fury.io/js/%40axa-fr%2Freact-oidc-redux-fetch) **Deprecated in v4** + - [`@axa-fr/react-oidc-fetch-observable`] [![npm version](https://badge.fury.io/js/%40axa-fr%2Freact-oidc-fetch-observable.svg)](https://badge.fury.io/js/%40axa-fr%2Freact-oidc-fetch-observable) **Deprecated in v4** - [Migrations](#migrations) - [Contribute](#contribute) @@ -317,7 +318,7 @@ pnpm run dev ## How It Works -These components encapsulate the use of "`@axa-fr/vanilla-oidc`" in order to hide workflow complexity. +These components encapsulate the use of "`@axa-fr/oidc-client`" in order to hide workflow complexity. Internally, native History API is used to be router library agnostic. More information about OIDC From 6e9e8bb94db0c52f684ea4c42a81c69f59dd3f2c Mon Sep 17 00:00:00 2001 From: GitHub Date: Fri, 28 Jul 2023 12:28:26 +0000 Subject: [PATCH 014/440] [skip ci] Update version package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client/package.json | 2 +- packages/react-oidc/package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index a57f857f1..de0dbee59 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "6.25.6", + "version": "6.26.6", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 597f3138e..3d57a62e1 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "6.25.6", + "version": "6.26.6", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 0c39dae24..f844e9c5f 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "6.25.6", + "version": "6.26.6", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From ff61e5d5e3387888ce18ec8e99fde0044009f481 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Mon, 31 Jul 2023 11:08:32 +0200 Subject: [PATCH 015/440] fix(demo): google new link and add navigate button --- .../public/OidcTrustedDomains.js | 2 +- .../public/OidcTrustedDomains.js | 2 +- examples/react-oidc-demo/src/Home.tsx | 7 + .../src/override/SessionLost.component.tsx | 6 + pnpm-lock.yaml | 3037 +++++++++-------- 5 files changed, 1622 insertions(+), 1432 deletions(-) diff --git a/examples/oidc-client-demo/public/OidcTrustedDomains.js b/examples/oidc-client-demo/public/OidcTrustedDomains.js index c1b0f6fc3..5bc49de89 100644 --- a/examples/oidc-client-demo/public/OidcTrustedDomains.js +++ b/examples/oidc-client-demo/public/OidcTrustedDomains.js @@ -9,7 +9,7 @@ const trustedDomains = { config_without_silent_login: ['https://demo.duendesoftware.com'], config_without_refresh_token: ['https://demo.duendesoftware.com'], config_without_refresh_token_silent_login: ['https://demo.duendesoftware.com'], - config_google: ['https://oauth2.googleapis.com', 'https://openidconnect.googleapis.com'], + config_google: ['https://oauth2.googleapis.com', 'https://openidconnect.googleapis.com', 'https://accounts.google.com'], config_with_hash: ['https://demo.duendesoftware.com'], }; // Service worker will continue to give access token to the JavaScript client diff --git a/examples/react-oidc-demo/public/OidcTrustedDomains.js b/examples/react-oidc-demo/public/OidcTrustedDomains.js index c1b0f6fc3..5bc49de89 100644 --- a/examples/react-oidc-demo/public/OidcTrustedDomains.js +++ b/examples/react-oidc-demo/public/OidcTrustedDomains.js @@ -9,7 +9,7 @@ const trustedDomains = { config_without_silent_login: ['https://demo.duendesoftware.com'], config_without_refresh_token: ['https://demo.duendesoftware.com'], config_without_refresh_token_silent_login: ['https://demo.duendesoftware.com'], - config_google: ['https://oauth2.googleapis.com', 'https://openidconnect.googleapis.com'], + config_google: ['https://oauth2.googleapis.com', 'https://openidconnect.googleapis.com', 'https://accounts.google.com'], config_with_hash: ['https://demo.duendesoftware.com'], }; // Service worker will continue to give access token to the JavaScript client diff --git a/examples/react-oidc-demo/src/Home.tsx b/examples/react-oidc-demo/src/Home.tsx index 045c8ef2c..20353fce5 100644 --- a/examples/react-oidc-demo/src/Home.tsx +++ b/examples/react-oidc-demo/src/Home.tsx @@ -1,8 +1,14 @@ import { useOidc } from '@axa-fr/react-oidc'; import React from 'react'; +import {useNavigate} from "react-router-dom"; export const Home = () => { const { login, logout, renewTokens, isAuthenticated } = useOidc(); + const navigate = useNavigate(); + + const navigateProfile = () => { + navigate("/profile"); + }; return (
@@ -15,6 +21,7 @@ export const Home = () => { {isAuthenticated &&

} {isAuthenticated &&

} {isAuthenticated &&

} +

diff --git a/examples/react-oidc-demo/src/override/SessionLost.component.tsx b/examples/react-oidc-demo/src/override/SessionLost.component.tsx index ab6edd96f..080e599dc 100644 --- a/examples/react-oidc-demo/src/override/SessionLost.component.tsx +++ b/examples/react-oidc-demo/src/override/SessionLost.component.tsx @@ -2,9 +2,14 @@ import { useOidc } from '@axa-fr/react-oidc'; import { ComponentType } from 'react'; import { style } from './style.js'; +import {useNavigate} from "react-router-dom"; export const SessionLost: ComponentType = ({ configurationName }) => { const { login } = useOidc(configurationName); + const navigate = useNavigate(); + const navigateProfile = () => { + navigate("/profile"); + }; return (
@@ -14,6 +19,7 @@ export const SessionLost: ComponentType = ({ configurationName }) => { Your session has expired. Please re-authenticate.

+
); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fb5534e72..ac70b8a06 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,332 +1,240 @@ -lockfileVersion: '6.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false +lockfileVersion: 5.4 importers: .: + specifiers: + '@typescript-eslint/eslint-plugin': ^6.0.0 + '@typescript-eslint/parser': ^6.0.0 + eslint: ^8.45.0 + eslint-config-prettier: ^8.8.0 + eslint-define-config: ^1.21.0 + eslint-plugin-import: ^2.27.5 + eslint-plugin-jsx-a11y: ^6.7.1 + eslint-plugin-n: ^16.0.1 + eslint-plugin-no-only-tests: ^3.1.0 + eslint-plugin-prettier: ^5.0.0 + eslint-plugin-react: ^7.32.2 + eslint-plugin-react-hooks: ^4.6.0 + eslint-plugin-regexp: ^1.15.0 + eslint-plugin-simple-import-sort: ^10.0.0 + eslint-plugin-testing-library: ^5.11.0 + prettier: ^3.0.0 + tslib: ^2.6.0 + tsx: ^3.12.7 + typescript: ^5.1.6 + vitest: ^0.33.0 devDependencies: - '@typescript-eslint/eslint-plugin': - specifier: ^6.0.0 - version: 6.0.0(@typescript-eslint/parser@6.0.0)(eslint@8.45.0)(typescript@5.1.6) - '@typescript-eslint/parser': - specifier: ^6.0.0 - version: 6.0.0(eslint@8.45.0)(typescript@5.1.6) - eslint: - specifier: ^8.45.0 - version: 8.45.0 - eslint-config-prettier: - specifier: ^8.8.0 - version: 8.8.0(eslint@8.45.0) - eslint-define-config: - specifier: ^1.21.0 - version: 1.21.0 - eslint-plugin-import: - specifier: ^2.27.5 - version: 2.27.5(@typescript-eslint/parser@6.0.0)(eslint@8.45.0) - eslint-plugin-jsx-a11y: - specifier: ^6.7.1 - version: 6.7.1(eslint@8.45.0) - eslint-plugin-n: - specifier: ^16.0.1 - version: 16.0.1(eslint@8.45.0) - eslint-plugin-no-only-tests: - specifier: ^3.1.0 - version: 3.1.0 - eslint-plugin-prettier: - specifier: ^5.0.0 - version: 5.0.0(eslint-config-prettier@8.8.0)(eslint@8.45.0)(prettier@3.0.0) - eslint-plugin-react: - specifier: ^7.32.2 - version: 7.32.2(eslint@8.45.0) - eslint-plugin-react-hooks: - specifier: ^4.6.0 - version: 4.6.0(eslint@8.45.0) - eslint-plugin-regexp: - specifier: ^1.15.0 - version: 1.15.0(eslint@8.45.0) - eslint-plugin-simple-import-sort: - specifier: ^10.0.0 - version: 10.0.0(eslint@8.45.0) - eslint-plugin-testing-library: - specifier: ^5.11.0 - version: 5.11.0(eslint@8.45.0)(typescript@5.1.6) - prettier: - specifier: ^3.0.0 - version: 3.0.0 - tslib: - specifier: ^2.6.0 - version: 2.6.0 - tsx: - specifier: ^3.12.7 - version: 3.12.7 - typescript: - specifier: ^5.1.6 - version: 5.1.6 - vitest: - specifier: ^0.33.0 - version: 0.33.0(jsdom@22.1.0) + '@typescript-eslint/eslint-plugin': 6.2.0_idzvfmj5qli4h3jfxnf522w3fe + '@typescript-eslint/parser': 6.2.0_7haavtekmro7ptbnqmctjaodju + eslint: 8.46.0 + eslint-config-prettier: 8.9.0_eslint@8.46.0 + eslint-define-config: 1.22.0 + eslint-plugin-import: 2.28.0_ec5nhyiwpcpmef4grv6n2vqr5y + eslint-plugin-jsx-a11y: 6.7.1_eslint@8.46.0 + eslint-plugin-n: 16.0.1_eslint@8.46.0 + eslint-plugin-no-only-tests: 3.1.0 + eslint-plugin-prettier: 5.0.0_zqxxaukdltekzrbl7w2kyx7tna + eslint-plugin-react: 7.33.1_eslint@8.46.0 + eslint-plugin-react-hooks: 4.6.0_eslint@8.46.0 + eslint-plugin-regexp: 1.15.0_eslint@8.46.0 + eslint-plugin-simple-import-sort: 10.0.0_eslint@8.46.0 + eslint-plugin-testing-library: 5.11.0_7haavtekmro7ptbnqmctjaodju + prettier: 3.0.0 + tslib: 2.6.1 + tsx: 3.12.7 + typescript: 5.1.6 + vitest: 0.33.0 examples/nextjs-demo: - dependencies: - '@axa-fr/react-oidc': - specifier: workspace:* - version: link:../../packages/react-oidc - next: - specifier: latest - version: 13.4.10(react-dom@18.2.0)(react@18.2.0) - react: - specifier: latest - version: 18.2.0 - react-dom: - specifier: latest - version: 18.2.0(react@18.2.0) + specifiers: + '@axa-fr/react-oidc': workspace:* + next: latest + react: latest + react-dom: latest + dependencies: + '@axa-fr/react-oidc': link:../../packages/react-oidc + next: 13.4.12_biqbaboplfbrettd7655fr4n2y + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 examples/oidc-client-demo: - dependencies: - '@axa-fr/oidc-client': - specifier: workspace:~ - version: link:../../packages/oidc-client - '@testing-library/jest-dom': - specifier: ^5.16.5 - version: 5.16.5 - '@testing-library/user-event': - specifier: ^13.5.0 - version: 13.5.0(@testing-library/dom@9.3.1) - '@types/jest': - specifier: ^27.5.2 - version: 27.5.2 - typescript: - specifier: ^5.1.6 - version: 5.1.6 - web-vitals: - specifier: ^3.4.0 - version: 3.4.0 + specifiers: + '@axa-fr/oidc-client': workspace:~ + '@testing-library/jest-dom': ^5.16.5 + '@testing-library/user-event': ^13.5.0 + '@types/jest': ^27.5.2 + '@types/node': ^18.11.9 + cross-env: ^7.0.3 + typescript: ^5.1.6 + vite: ^4.4.4 + web-vitals: ^3.4.0 + dependencies: + '@axa-fr/oidc-client': link:../../packages/oidc-client + '@testing-library/jest-dom': 5.17.0 + '@testing-library/user-event': 13.5.0 + '@types/jest': 27.5.2 + typescript: 5.1.6 + web-vitals: 3.4.0 devDependencies: - '@types/node': - specifier: ^18.11.9 - version: 18.11.9 - cross-env: - specifier: ^7.0.3 - version: 7.0.3 - vite: - specifier: ^4.4.4 - version: 4.4.4(@types/node@18.11.9) + '@types/node': 18.17.1 + cross-env: 7.0.3 + vite: 4.4.7_@types+node@18.17.1 examples/react-oidc-demo: + specifiers: + '@axa-fr/react-oidc': workspace:* + '@testing-library/jest-dom': 5.16.5 + '@testing-library/react': 13.3.0 + '@testing-library/user-event': 14.4.3 + '@types/react': ^18.2.15 + '@vitejs/plugin-react': 4.0.3 + '@vitest/coverage-c8': ^0.33.0 + bootstrap: ^4.6.2 + copyfiles: 2.4.1 + cross-env: ^7.0.3 + jsdom: 22.1.0 + msw: 1.2.2 + react: ^18.2.0 + react-dom: ^18.2.0 + react-router-dom: ^6.14.1 + typescript: 5.1.6 + vite: ^4.4.4 + vite-plugin-dts: ^3.3.0 + vitest: ^0.33.0 dependencies: - '@axa-fr/react-oidc': - specifier: workspace:* - version: link:../../packages/react-oidc - react: - specifier: ^18.2.0 - version: 18.2.0 - react-dom: - specifier: ^18.2.0 - version: 18.2.0(react@18.2.0) - react-router-dom: - specifier: ^6.14.1 - version: 6.14.1(react-dom@18.2.0)(react@18.2.0) + '@axa-fr/react-oidc': link:../../packages/react-oidc + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + react-router-dom: 6.14.2_biqbaboplfbrettd7655fr4n2y devDependencies: - '@testing-library/jest-dom': - specifier: 5.16.5 - version: 5.16.5 - '@testing-library/react': - specifier: 13.3.0 - version: 13.3.0(react-dom@18.2.0)(react@18.2.0) - '@testing-library/user-event': - specifier: 14.4.3 - version: 14.4.3(@testing-library/dom@9.3.1) - '@types/react': - specifier: ^18.2.15 - version: 18.2.15 - '@vitejs/plugin-react': - specifier: 4.0.3 - version: 4.0.3(vite@4.4.4) - '@vitest/coverage-c8': - specifier: ^0.33.0 - version: 0.33.0(vitest@0.33.0) - bootstrap: - specifier: ^4.6.2 - version: 4.6.2(jquery@3.7.0)(popper.js@1.16.1) - copyfiles: - specifier: 2.4.1 - version: 2.4.1 - cross-env: - specifier: ^7.0.3 - version: 7.0.3 - jsdom: - specifier: 22.1.0 - version: 22.1.0 - msw: - specifier: 1.2.2 - version: 1.2.2(typescript@5.1.6) - typescript: - specifier: 5.1.6 - version: 5.1.6 - vite: - specifier: ^4.4.4 - version: 4.4.4(@types/node@18.11.9) - vite-plugin-dts: - specifier: ^3.3.0 - version: 3.3.0(typescript@5.1.6)(vite@4.4.4) - vitest: - specifier: ^0.33.0 - version: 0.33.0(jsdom@22.1.0) + '@testing-library/jest-dom': 5.16.5 + '@testing-library/react': 13.3.0_biqbaboplfbrettd7655fr4n2y + '@testing-library/user-event': 14.4.3 + '@types/react': 18.2.17 + '@vitejs/plugin-react': 4.0.3_vite@4.4.7 + '@vitest/coverage-c8': 0.33.0_vitest@0.33.0 + bootstrap: 4.6.2 + copyfiles: 2.4.1 + cross-env: 7.0.3 + jsdom: 22.1.0 + msw: 1.2.2_typescript@5.1.6 + typescript: 5.1.6 + vite: 4.4.7 + vite-plugin-dts: 3.4.0_npxhaqyhuvoil5zmsh4ym23fea + vitest: 0.33.0_jsdom@22.1.0 packages/oidc-client: + specifiers: + '@axa-fr/oidc-client-service-worker': workspace:* + '@testing-library/dom': ^9.3.1 + '@testing-library/jest-dom': ^5.16.5 + '@testing-library/react': 13.3.0 + '@vitest/coverage-v8': ^0.33.0 + base64-js: ^1.5.1 + cpy: ^10.1.0 + cpy-cli: ^5.0.0 + rimraf: 5.0.1 + typescript: 5.1.6 + vite: ^4.4.4 + vite-plugin-dts: ^3.3.0 + vitest: ^0.33.0 dependencies: - '@axa-fr/oidc-client-service-worker': - specifier: workspace:* - version: link:../oidc-client-service-worker + '@axa-fr/oidc-client-service-worker': link:../oidc-client-service-worker devDependencies: - '@testing-library/dom': - specifier: ^9.3.1 - version: 9.3.1 - '@testing-library/jest-dom': - specifier: ^5.16.5 - version: 5.16.5 - '@testing-library/react': - specifier: 13.3.0 - version: 13.3.0(react-dom@18.2.0)(react@18.2.0) - '@vitest/coverage-v8': - specifier: ^0.33.0 - version: 0.33.0(vitest@0.33.0) - base64-js: - specifier: ^1.5.1 - version: 1.5.1 - cpy: - specifier: ^10.1.0 - version: 10.1.0 - cpy-cli: - specifier: ^5.0.0 - version: 5.0.0 - rimraf: - specifier: 5.0.1 - version: 5.0.1 - typescript: - specifier: 5.1.6 - version: 5.1.6 - vite: - specifier: ^4.4.4 - version: 4.4.4(@types/node@18.11.9) - vite-plugin-dts: - specifier: ^3.3.0 - version: 3.3.0(typescript@5.1.6)(vite@4.4.4) - vitest: - specifier: ^0.33.0 - version: 0.33.0(jsdom@22.1.0) + '@testing-library/dom': 9.3.1 + '@testing-library/jest-dom': 5.17.0 + '@testing-library/react': 13.3.0 + '@vitest/coverage-v8': 0.33.0_vitest@0.33.0 + base64-js: 1.5.1 + cpy: 10.1.0 + cpy-cli: 5.0.0 + rimraf: 5.0.1 + typescript: 5.1.6 + vite: 4.4.7 + vite-plugin-dts: 3.4.0_npxhaqyhuvoil5zmsh4ym23fea + vitest: 0.33.0 packages/oidc-client-service-worker: + specifiers: + '@vitest/coverage-c8': ^0.33.0 + cpy: ^10.1.0 + cpy-cli: ^5.0.0 + msw: 1.2.2 + rimraf: 5.0.1 + typescript: 5.1.6 + vite: ^4.4.4 + vite-plugin-dts: ^3.3.0 + vitest: ^0.33.0 devDependencies: - '@vitest/coverage-c8': - specifier: ^0.33.0 - version: 0.33.0(vitest@0.33.0) - cpy: - specifier: ^10.1.0 - version: 10.1.0 - cpy-cli: - specifier: ^5.0.0 - version: 5.0.0 - msw: - specifier: 1.2.2 - version: 1.2.2(typescript@5.1.6) - rimraf: - specifier: 5.0.1 - version: 5.0.1 - typescript: - specifier: 5.1.6 - version: 5.1.6 - vite: - specifier: ^4.4.4 - version: 4.4.4(@types/node@18.11.9) - vite-plugin-dts: - specifier: ^3.3.0 - version: 3.3.0(typescript@5.1.6)(vite@4.4.4) - vitest: - specifier: ^0.33.0 - version: 0.33.0(jsdom@22.1.0) + '@vitest/coverage-c8': 0.33.0_vitest@0.33.0 + cpy: 10.1.0 + cpy-cli: 5.0.0 + msw: 1.2.2_typescript@5.1.6 + rimraf: 5.0.1 + typescript: 5.1.6 + vite: 4.4.7 + vite-plugin-dts: 3.4.0_npxhaqyhuvoil5zmsh4ym23fea + vitest: 0.33.0 packages/react-oidc: + specifiers: + '@axa-fr/oidc-client': workspace:* + '@axa-fr/oidc-client-service-worker': workspace:* + '@testing-library/jest-dom': 5.16.5 + '@testing-library/react': 13.3.0 + '@testing-library/user-event': 14.4.3 + '@types/react': ^18.2.15 + '@vitejs/plugin-react': 4.0.3 + '@vitest/coverage-v8': ^0.33.0 + base64-js: 1.5.1 + cpy: ^10.1.0 + cpy-cli: ^5.0.0 + cross-env: ^7.0.3 + jsdom: 22.1.0 + msw: 1.2.2 + react: ^18.2.0 + react-dom: ^18.2.0 + rimraf: 5.0.1 + typescript: 5.1.6 + vite: ^4.4.4 + vite-plugin-dts: ^3.3.0 + vitest: ^0.33.0 dependencies: - '@axa-fr/oidc-client': - specifier: workspace:* - version: link:../oidc-client - '@axa-fr/oidc-client-service-worker': - specifier: workspace:* - version: link:../oidc-client-service-worker - base64-js: - specifier: 1.5.1 - version: 1.5.1 + '@axa-fr/oidc-client': link:../oidc-client + '@axa-fr/oidc-client-service-worker': link:../oidc-client-service-worker + base64-js: 1.5.1 devDependencies: - '@testing-library/jest-dom': - specifier: 5.16.5 - version: 5.16.5 - '@testing-library/react': - specifier: 13.3.0 - version: 13.3.0(react-dom@18.2.0)(react@18.2.0) - '@testing-library/user-event': - specifier: 14.4.3 - version: 14.4.3(@testing-library/dom@9.3.1) - '@types/react': - specifier: ^18.2.15 - version: 18.2.15 - '@vitejs/plugin-react': - specifier: 4.0.3 - version: 4.0.3(vite@4.4.4) - '@vitest/coverage-v8': - specifier: ^0.33.0 - version: 0.33.0(vitest@0.33.0) - cpy: - specifier: ^10.1.0 - version: 10.1.0 - cpy-cli: - specifier: ^5.0.0 - version: 5.0.0 - cross-env: - specifier: ^7.0.3 - version: 7.0.3 - jsdom: - specifier: 22.1.0 - version: 22.1.0 - msw: - specifier: 1.2.2 - version: 1.2.2(typescript@5.1.6) - react: - specifier: ^18.2.0 - version: 18.2.0 - react-dom: - specifier: ^18.2.0 - version: 18.2.0(react@18.2.0) - rimraf: - specifier: 5.0.1 - version: 5.0.1 - typescript: - specifier: 5.1.6 - version: 5.1.6 - vite: - specifier: ^4.4.4 - version: 4.4.4(@types/node@18.11.9) - vite-plugin-dts: - specifier: ^3.3.0 - version: 3.3.0(typescript@5.1.6)(vite@4.4.4) - vitest: - specifier: ^0.33.0 - version: 0.33.0(jsdom@22.1.0) + '@testing-library/jest-dom': 5.16.5 + '@testing-library/react': 13.3.0_biqbaboplfbrettd7655fr4n2y + '@testing-library/user-event': 14.4.3 + '@types/react': 18.2.17 + '@vitejs/plugin-react': 4.0.3_vite@4.4.7 + '@vitest/coverage-v8': 0.33.0_vitest@0.33.0 + cpy: 10.1.0 + cpy-cli: 5.0.0 + cross-env: 7.0.3 + jsdom: 22.1.0 + msw: 1.2.2_typescript@5.1.6 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + rimraf: 5.0.1 + typescript: 5.1.6 + vite: 4.4.7 + vite-plugin-dts: 3.4.0_npxhaqyhuvoil5zmsh4ym23fea + vitest: 0.33.0_jsdom@22.1.0 packages: - /@aashutoshrathi/word-wrap@1.2.6: + /@aashutoshrathi/word-wrap/1.2.6: resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} engines: {node: '>=0.10.0'} dev: true - /@adobe/css-tools@4.2.0: + /@adobe/css-tools/4.2.0: resolution: {integrity: sha512-E09FiIft46CmH5Qnjb0wsW54/YQd69LsxeKUOWawmws1XWvyFGURnAChH0mlr7YPFR1ofwvUQfcL0J3lMxXqPA==} - /@ampproject/remapping@2.2.1: + /@ampproject/remapping/2.2.1: resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} engines: {node: '>=6.0.0'} dependencies: @@ -334,26 +242,27 @@ packages: '@jridgewell/trace-mapping': 0.3.18 dev: true - /@babel/code-frame@7.22.5: + /@babel/code-frame/7.22.5: resolution: {integrity: sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==} engines: {node: '>=6.9.0'} dependencies: '@babel/highlight': 7.22.5 + dev: true - /@babel/compat-data@7.22.9: + /@babel/compat-data/7.22.9: resolution: {integrity: sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==} engines: {node: '>=6.9.0'} dev: true - /@babel/core@7.22.9: + /@babel/core/7.22.9: resolution: {integrity: sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.1 '@babel/code-frame': 7.22.5 '@babel/generator': 7.22.9 - '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9) - '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.9) + '@babel/helper-compilation-targets': 7.22.9_@babel+core@7.22.9 + '@babel/helper-module-transforms': 7.22.9_@babel+core@7.22.9 '@babel/helpers': 7.22.6 '@babel/parser': 7.22.7 '@babel/template': 7.22.5 @@ -368,7 +277,7 @@ packages: - supports-color dev: true - /@babel/generator@7.22.9: + /@babel/generator/7.22.9: resolution: {integrity: sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw==} engines: {node: '>=6.9.0'} dependencies: @@ -378,7 +287,7 @@ packages: jsesc: 2.5.2 dev: true - /@babel/helper-compilation-targets@7.22.9(@babel/core@7.22.9): + /@babel/helper-compilation-targets/7.22.9_@babel+core@7.22.9: resolution: {integrity: sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw==} engines: {node: '>=6.9.0'} peerDependencies: @@ -387,17 +296,17 @@ packages: '@babel/compat-data': 7.22.9 '@babel/core': 7.22.9 '@babel/helper-validator-option': 7.22.5 - browserslist: 4.21.9 + browserslist: 4.21.10 lru-cache: 5.1.1 semver: 6.3.1 dev: true - /@babel/helper-environment-visitor@7.22.5: + /@babel/helper-environment-visitor/7.22.5: resolution: {integrity: sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==} engines: {node: '>=6.9.0'} dev: true - /@babel/helper-function-name@7.22.5: + /@babel/helper-function-name/7.22.5: resolution: {integrity: sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==} engines: {node: '>=6.9.0'} dependencies: @@ -405,21 +314,21 @@ packages: '@babel/types': 7.22.5 dev: true - /@babel/helper-hoist-variables@7.22.5: + /@babel/helper-hoist-variables/7.22.5: resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.22.5 dev: true - /@babel/helper-module-imports@7.22.5: + /@babel/helper-module-imports/7.22.5: resolution: {integrity: sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.22.5 dev: true - /@babel/helper-module-transforms@7.22.9(@babel/core@7.22.9): + /@babel/helper-module-transforms/7.22.9_@babel+core@7.22.9: resolution: {integrity: sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==} engines: {node: '>=6.9.0'} peerDependencies: @@ -433,40 +342,41 @@ packages: '@babel/helper-validator-identifier': 7.22.5 dev: true - /@babel/helper-plugin-utils@7.22.5: + /@babel/helper-plugin-utils/7.22.5: resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} engines: {node: '>=6.9.0'} dev: true - /@babel/helper-simple-access@7.22.5: + /@babel/helper-simple-access/7.22.5: resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.22.5 dev: true - /@babel/helper-split-export-declaration@7.22.6: + /@babel/helper-split-export-declaration/7.22.6: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.22.5 dev: true - /@babel/helper-string-parser@7.22.5: + /@babel/helper-string-parser/7.22.5: resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} engines: {node: '>=6.9.0'} dev: true - /@babel/helper-validator-identifier@7.22.5: + /@babel/helper-validator-identifier/7.22.5: resolution: {integrity: sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==} engines: {node: '>=6.9.0'} + dev: true - /@babel/helper-validator-option@7.22.5: + /@babel/helper-validator-option/7.22.5: resolution: {integrity: sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==} engines: {node: '>=6.9.0'} dev: true - /@babel/helpers@7.22.6: + /@babel/helpers/7.22.6: resolution: {integrity: sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA==} engines: {node: '>=6.9.0'} dependencies: @@ -477,15 +387,16 @@ packages: - supports-color dev: true - /@babel/highlight@7.22.5: + /@babel/highlight/7.22.5: resolution: {integrity: sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-validator-identifier': 7.22.5 chalk: 2.4.2 js-tokens: 4.0.0 + dev: true - /@babel/parser@7.22.7: + /@babel/parser/7.22.7: resolution: {integrity: sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==} engines: {node: '>=6.0.0'} hasBin: true @@ -493,7 +404,7 @@ packages: '@babel/types': 7.22.5 dev: true - /@babel/plugin-transform-react-jsx-self@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-react-jsx-self/7.22.5_@babel+core@7.22.9: resolution: {integrity: sha512-nTh2ogNUtxbiSbxaT4Ds6aXnXEipHweN9YRgOX/oNXdf0cCrGn/+2LozFa3lnPV5D90MkjhgckCPBrsoSc1a7g==} engines: {node: '>=6.9.0'} peerDependencies: @@ -503,7 +414,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-react-jsx-source@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-react-jsx-source/7.22.5_@babel+core@7.22.9: resolution: {integrity: sha512-yIiRO6yobeEIaI0RTbIr8iAK9FcBHLtZq0S89ZPjDLQXBA4xvghaKqI0etp/tF3htTM0sazJKKLz9oEiGRtu7w==} engines: {node: '>=6.9.0'} peerDependencies: @@ -513,13 +424,13 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/runtime@7.22.6: + /@babel/runtime/7.22.6: resolution: {integrity: sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ==} engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.13.11 - /@babel/template@7.22.5: + /@babel/template/7.22.5: resolution: {integrity: sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==} engines: {node: '>=6.9.0'} dependencies: @@ -528,7 +439,7 @@ packages: '@babel/types': 7.22.5 dev: true - /@babel/traverse@7.22.8: + /@babel/traverse/7.22.8: resolution: {integrity: sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw==} engines: {node: '>=6.9.0'} dependencies: @@ -546,7 +457,7 @@ packages: - supports-color dev: true - /@babel/types@7.22.5: + /@babel/types/7.22.5: resolution: {integrity: sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==} engines: {node: '>=6.9.0'} dependencies: @@ -555,68 +466,68 @@ packages: to-fast-properties: 2.0.0 dev: true - /@bcoe/v8-coverage@0.2.3: + /@bcoe/v8-coverage/0.2.3: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} dev: true - /@esbuild-kit/cjs-loader@2.4.2: + /@esbuild-kit/cjs-loader/2.4.2: resolution: {integrity: sha512-BDXFbYOJzT/NBEtp71cvsrGPwGAMGRB/349rwKuoxNSiKjPraNNnlK6MIIabViCjqZugu6j+xeMDlEkWdHHJSg==} dependencies: '@esbuild-kit/core-utils': 3.1.0 get-tsconfig: 4.6.2 dev: true - /@esbuild-kit/core-utils@3.1.0: + /@esbuild-kit/core-utils/3.1.0: resolution: {integrity: sha512-Uuk8RpCg/7fdHSceR1M6XbSZFSuMrxcePFuGgyvsBn+u339dk5OeL4jv2EojwTN2st/unJGsVm4qHWjWNmJ/tw==} dependencies: esbuild: 0.17.19 source-map-support: 0.5.21 dev: true - /@esbuild-kit/esm-loader@2.5.5: + /@esbuild-kit/esm-loader/2.5.5: resolution: {integrity: sha512-Qwfvj/qoPbClxCRNuac1Du01r9gvNOT+pMYtJDapfB1eoGN1YlJ1BixLyL9WVENRx5RXgNLdfYdx/CuswlGhMw==} dependencies: '@esbuild-kit/core-utils': 3.1.0 get-tsconfig: 4.6.2 dev: true - /@esbuild/android-arm64@0.17.19: - resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} + /@esbuild/android-arm/0.17.19: + resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} engines: {node: '>=12'} - cpu: [arm64] + cpu: [arm] os: [android] requiresBuild: true dev: true optional: true - /@esbuild/android-arm64@0.18.13: - resolution: {integrity: sha512-j7NhycJUoUAG5kAzGf4fPWfd17N6SM3o1X6MlXVqfHvs2buFraCJzos9vbeWjLxOyBKHyPOnuCuipbhvbYtTAg==} + /@esbuild/android-arm/0.18.17: + resolution: {integrity: sha512-wHsmJG/dnL3OkpAcwbgoBTTMHVi4Uyou3F5mf58ZtmUyIKfcdA7TROav/6tCzET4A3QW2Q2FC+eFneMU+iyOxg==} engines: {node: '>=12'} - cpu: [arm64] + cpu: [arm] os: [android] requiresBuild: true dev: true optional: true - /@esbuild/android-arm@0.17.19: - resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} + /@esbuild/android-arm64/0.17.19: + resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} engines: {node: '>=12'} - cpu: [arm] + cpu: [arm64] os: [android] requiresBuild: true dev: true optional: true - /@esbuild/android-arm@0.18.13: - resolution: {integrity: sha512-KwqFhxRFMKZINHzCqf8eKxE0XqWlAVPRxwy6rc7CbVFxzUWB2sA/s3hbMZeemPdhN3fKBkqOaFhTbS8xJXYIWQ==} + /@esbuild/android-arm64/0.18.17: + resolution: {integrity: sha512-9np+YYdNDed5+Jgr1TdWBsozZ85U1Oa3xW0c7TWqH0y2aGghXtZsuT8nYRbzOMcl0bXZXjOGbksoTtVOlWrRZg==} engines: {node: '>=12'} - cpu: [arm] + cpu: [arm64] os: [android] requiresBuild: true dev: true optional: true - /@esbuild/android-x64@0.17.19: + /@esbuild/android-x64/0.17.19: resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} engines: {node: '>=12'} cpu: [x64] @@ -625,8 +536,8 @@ packages: dev: true optional: true - /@esbuild/android-x64@0.18.13: - resolution: {integrity: sha512-M2eZkRxR6WnWfVELHmv6MUoHbOqnzoTVSIxgtsyhm/NsgmL+uTmag/VVzdXvmahak1I6sOb1K/2movco5ikDJg==} + /@esbuild/android-x64/0.18.17: + resolution: {integrity: sha512-O+FeWB/+xya0aLg23hHEM2E3hbfwZzjqumKMSIqcHbNvDa+dza2D0yLuymRBQQnC34CWrsJUXyH2MG5VnLd6uw==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -634,7 +545,7 @@ packages: dev: true optional: true - /@esbuild/darwin-arm64@0.17.19: + /@esbuild/darwin-arm64/0.17.19: resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} engines: {node: '>=12'} cpu: [arm64] @@ -643,8 +554,8 @@ packages: dev: true optional: true - /@esbuild/darwin-arm64@0.18.13: - resolution: {integrity: sha512-f5goG30YgR1GU+fxtaBRdSW3SBG9pZW834Mmhxa6terzcboz7P2R0k4lDxlkP7NYRIIdBbWp+VgwQbmMH4yV7w==} + /@esbuild/darwin-arm64/0.18.17: + resolution: {integrity: sha512-M9uJ9VSB1oli2BE/dJs3zVr9kcCBBsE883prage1NWz6pBS++1oNn/7soPNS3+1DGj0FrkSvnED4Bmlu1VAE9g==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -652,7 +563,7 @@ packages: dev: true optional: true - /@esbuild/darwin-x64@0.17.19: + /@esbuild/darwin-x64/0.17.19: resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} engines: {node: '>=12'} cpu: [x64] @@ -661,8 +572,8 @@ packages: dev: true optional: true - /@esbuild/darwin-x64@0.18.13: - resolution: {integrity: sha512-RIrxoKH5Eo+yE5BtaAIMZaiKutPhZjw+j0OCh8WdvKEKJQteacq0myZvBDLU+hOzQOZWJeDnuQ2xgSScKf1Ovw==} + /@esbuild/darwin-x64/0.18.17: + resolution: {integrity: sha512-XDre+J5YeIJDMfp3n0279DFNrGCXlxOuGsWIkRb1NThMZ0BsrWXoTg23Jer7fEXQ9Ye5QjrvXpxnhzl3bHtk0g==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -670,7 +581,7 @@ packages: dev: true optional: true - /@esbuild/freebsd-arm64@0.17.19: + /@esbuild/freebsd-arm64/0.17.19: resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} engines: {node: '>=12'} cpu: [arm64] @@ -679,8 +590,8 @@ packages: dev: true optional: true - /@esbuild/freebsd-arm64@0.18.13: - resolution: {integrity: sha512-AfRPhHWmj9jGyLgW/2FkYERKmYR+IjYxf2rtSLmhOrPGFh0KCETFzSjx/JX/HJnvIqHt/DRQD/KAaVsUKoI3Xg==} + /@esbuild/freebsd-arm64/0.18.17: + resolution: {integrity: sha512-cjTzGa3QlNfERa0+ptykyxs5A6FEUQQF0MuilYXYBGdBxD3vxJcKnzDlhDCa1VAJCmAxed6mYhA2KaJIbtiNuQ==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -688,7 +599,7 @@ packages: dev: true optional: true - /@esbuild/freebsd-x64@0.17.19: + /@esbuild/freebsd-x64/0.17.19: resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} engines: {node: '>=12'} cpu: [x64] @@ -697,8 +608,8 @@ packages: dev: true optional: true - /@esbuild/freebsd-x64@0.18.13: - resolution: {integrity: sha512-pGzWWZJBInhIgdEwzn8VHUBang8UvFKsvjDkeJ2oyY5gZtAM6BaxK0QLCuZY+qoj/nx/lIaItH425rm/hloETA==} + /@esbuild/freebsd-x64/0.18.17: + resolution: {integrity: sha512-sOxEvR8d7V7Kw8QqzxWc7bFfnWnGdaFBut1dRUYtu+EIRXefBc/eIsiUiShnW0hM3FmQ5Zf27suDuHsKgZ5QrA==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -706,43 +617,43 @@ packages: dev: true optional: true - /@esbuild/linux-arm64@0.17.19: - resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} + /@esbuild/linux-arm/0.17.19: + resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} engines: {node: '>=12'} - cpu: [arm64] + cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /@esbuild/linux-arm64@0.18.13: - resolution: {integrity: sha512-hCzZbVJEHV7QM77fHPv2qgBcWxgglGFGCxk6KfQx6PsVIdi1u09X7IvgE9QKqm38OpkzaAkPnnPqwRsltvLkIQ==} + /@esbuild/linux-arm/0.18.17: + resolution: {integrity: sha512-2d3Lw6wkwgSLC2fIvXKoMNGVaeY8qdN0IC3rfuVxJp89CRfA3e3VqWifGDfuakPmp90+ZirmTfye1n4ncjv2lg==} engines: {node: '>=12'} - cpu: [arm64] + cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /@esbuild/linux-arm@0.17.19: - resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} + /@esbuild/linux-arm64/0.17.19: + resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} engines: {node: '>=12'} - cpu: [arm] + cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@esbuild/linux-arm@0.18.13: - resolution: {integrity: sha512-4iMxLRMCxGyk7lEvkkvrxw4aJeC93YIIrfbBlUJ062kilUUnAiMb81eEkVvCVoh3ON283ans7+OQkuy1uHW+Hw==} + /@esbuild/linux-arm64/0.18.17: + resolution: {integrity: sha512-c9w3tE7qA3CYWjT+M3BMbwMt+0JYOp3vCMKgVBrCl1nwjAlOMYzEo+gG7QaZ9AtqZFj5MbUc885wuBBmu6aADQ==} engines: {node: '>=12'} - cpu: [arm] + cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@esbuild/linux-ia32@0.17.19: + /@esbuild/linux-ia32/0.17.19: resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} engines: {node: '>=12'} cpu: [ia32] @@ -751,8 +662,8 @@ packages: dev: true optional: true - /@esbuild/linux-ia32@0.18.13: - resolution: {integrity: sha512-I3OKGbynl3AAIO6onXNrup/ttToE6Rv2XYfFgLK/wnr2J+1g+7k4asLrE+n7VMhaqX+BUnyWkCu27rl+62Adug==} + /@esbuild/linux-ia32/0.18.17: + resolution: {integrity: sha512-1DS9F966pn5pPnqXYz16dQqWIB0dmDfAQZd6jSSpiT9eX1NzKh07J6VKR3AoXXXEk6CqZMojiVDSZi1SlmKVdg==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -760,7 +671,7 @@ packages: dev: true optional: true - /@esbuild/linux-loong64@0.17.19: + /@esbuild/linux-loong64/0.17.19: resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} engines: {node: '>=12'} cpu: [loong64] @@ -769,8 +680,8 @@ packages: dev: true optional: true - /@esbuild/linux-loong64@0.18.13: - resolution: {integrity: sha512-8pcKDApAsKc6WW51ZEVidSGwGbebYw2qKnO1VyD8xd6JN0RN6EUXfhXmDk9Vc4/U3Y4AoFTexQewQDJGsBXBpg==} + /@esbuild/linux-loong64/0.18.17: + resolution: {integrity: sha512-EvLsxCk6ZF0fpCB6w6eOI2Fc8KW5N6sHlIovNe8uOFObL2O+Mr0bflPHyHwLT6rwMg9r77WOAWb2FqCQrVnwFg==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -778,7 +689,7 @@ packages: dev: true optional: true - /@esbuild/linux-mips64el@0.17.19: + /@esbuild/linux-mips64el/0.17.19: resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} engines: {node: '>=12'} cpu: [mips64el] @@ -787,8 +698,8 @@ packages: dev: true optional: true - /@esbuild/linux-mips64el@0.18.13: - resolution: {integrity: sha512-6GU+J1PLiVqWx8yoCK4Z0GnfKyCGIH5L2KQipxOtbNPBs+qNDcMJr9euxnyJ6FkRPyMwaSkjejzPSISD9hb+gg==} + /@esbuild/linux-mips64el/0.18.17: + resolution: {integrity: sha512-e0bIdHA5p6l+lwqTE36NAW5hHtw2tNRmHlGBygZC14QObsA3bD4C6sXLJjvnDIjSKhW1/0S3eDy+QmX/uZWEYQ==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -796,7 +707,7 @@ packages: dev: true optional: true - /@esbuild/linux-ppc64@0.17.19: + /@esbuild/linux-ppc64/0.17.19: resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} engines: {node: '>=12'} cpu: [ppc64] @@ -805,8 +716,8 @@ packages: dev: true optional: true - /@esbuild/linux-ppc64@0.18.13: - resolution: {integrity: sha512-pfn/OGZ8tyR8YCV7MlLl5hAit2cmS+j/ZZg9DdH0uxdCoJpV7+5DbuXrR+es4ayRVKIcfS9TTMCs60vqQDmh+w==} + /@esbuild/linux-ppc64/0.18.17: + resolution: {integrity: sha512-BAAilJ0M5O2uMxHYGjFKn4nJKF6fNCdP1E0o5t5fvMYYzeIqy2JdAP88Az5LHt9qBoUa4tDaRpfWt21ep5/WqQ==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -814,7 +725,7 @@ packages: dev: true optional: true - /@esbuild/linux-riscv64@0.17.19: + /@esbuild/linux-riscv64/0.17.19: resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} engines: {node: '>=12'} cpu: [riscv64] @@ -823,8 +734,8 @@ packages: dev: true optional: true - /@esbuild/linux-riscv64@0.18.13: - resolution: {integrity: sha512-aIbhU3LPg0lOSCfVeGHbmGYIqOtW6+yzO+Nfv57YblEK01oj0mFMtvDJlOaeAZ6z0FZ9D13oahi5aIl9JFphGg==} + /@esbuild/linux-riscv64/0.18.17: + resolution: {integrity: sha512-Wh/HW2MPnC3b8BqRSIme/9Zhab36PPH+3zam5pqGRH4pE+4xTrVLx2+XdGp6fVS3L2x+DrsIcsbMleex8fbE6g==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -832,7 +743,7 @@ packages: dev: true optional: true - /@esbuild/linux-s390x@0.17.19: + /@esbuild/linux-s390x/0.17.19: resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} engines: {node: '>=12'} cpu: [s390x] @@ -841,8 +752,8 @@ packages: dev: true optional: true - /@esbuild/linux-s390x@0.18.13: - resolution: {integrity: sha512-Pct1QwF2sp+5LVi4Iu5Y+6JsGaV2Z2vm4O9Dd7XZ5tKYxEHjFtb140fiMcl5HM1iuv6xXO8O1Vrb1iJxHlv8UA==} + /@esbuild/linux-s390x/0.18.17: + resolution: {integrity: sha512-j/34jAl3ul3PNcK3pfI0NSlBANduT2UO5kZ7FCaK33XFv3chDhICLY8wJJWIhiQ+YNdQ9dxqQctRg2bvrMlYgg==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -850,7 +761,7 @@ packages: dev: true optional: true - /@esbuild/linux-x64@0.17.19: + /@esbuild/linux-x64/0.17.19: resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} engines: {node: '>=12'} cpu: [x64] @@ -859,8 +770,8 @@ packages: dev: true optional: true - /@esbuild/linux-x64@0.18.13: - resolution: {integrity: sha512-zTrIP0KzYP7O0+3ZnmzvUKgGtUvf4+piY8PIO3V8/GfmVd3ZyHJGz7Ht0np3P1wz+I8qJ4rjwJKqqEAbIEPngA==} + /@esbuild/linux-x64/0.18.17: + resolution: {integrity: sha512-QM50vJ/y+8I60qEmFxMoxIx4de03pGo2HwxdBeFd4nMh364X6TIBZ6VQ5UQmPbQWUVWHWws5MmJXlHAXvJEmpQ==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -868,7 +779,7 @@ packages: dev: true optional: true - /@esbuild/netbsd-x64@0.17.19: + /@esbuild/netbsd-x64/0.17.19: resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} engines: {node: '>=12'} cpu: [x64] @@ -877,8 +788,8 @@ packages: dev: true optional: true - /@esbuild/netbsd-x64@0.18.13: - resolution: {integrity: sha512-I6zs10TZeaHDYoGxENuksxE1sxqZpCp+agYeW039yqFwh3MgVvdmXL5NMveImOC6AtpLvE4xG5ujVic4NWFIDQ==} + /@esbuild/netbsd-x64/0.18.17: + resolution: {integrity: sha512-/jGlhWR7Sj9JPZHzXyyMZ1RFMkNPjC6QIAan0sDOtIo2TYk3tZn5UDrkE0XgsTQCxWTTOcMPf9p6Rh2hXtl5TQ==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -886,7 +797,7 @@ packages: dev: true optional: true - /@esbuild/openbsd-x64@0.17.19: + /@esbuild/openbsd-x64/0.17.19: resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} engines: {node: '>=12'} cpu: [x64] @@ -895,8 +806,8 @@ packages: dev: true optional: true - /@esbuild/openbsd-x64@0.18.13: - resolution: {integrity: sha512-W5C5nczhrt1y1xPG5bV+0M12p2vetOGlvs43LH8SopQ3z2AseIROu09VgRqydx5qFN7y9qCbpgHLx0kb0TcW7g==} + /@esbuild/openbsd-x64/0.18.17: + resolution: {integrity: sha512-rSEeYaGgyGGf4qZM2NonMhMOP/5EHp4u9ehFiBrg7stH6BYEEjlkVREuDEcQ0LfIl53OXLxNbfuIj7mr5m29TA==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -904,7 +815,7 @@ packages: dev: true optional: true - /@esbuild/sunos-x64@0.17.19: + /@esbuild/sunos-x64/0.17.19: resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} engines: {node: '>=12'} cpu: [x64] @@ -913,8 +824,8 @@ packages: dev: true optional: true - /@esbuild/sunos-x64@0.18.13: - resolution: {integrity: sha512-X/xzuw4Hzpo/yq3YsfBbIsipNgmsm8mE/QeWbdGdTTeZ77fjxI2K0KP3AlhZ6gU3zKTw1bKoZTuKLnqcJ537qw==} + /@esbuild/sunos-x64/0.18.17: + resolution: {integrity: sha512-Y7ZBbkLqlSgn4+zot4KUNYst0bFoO68tRgI6mY2FIM+b7ZbyNVtNbDP5y8qlu4/knZZ73fgJDlXID+ohY5zt5g==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -922,7 +833,7 @@ packages: dev: true optional: true - /@esbuild/win32-arm64@0.17.19: + /@esbuild/win32-arm64/0.17.19: resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} engines: {node: '>=12'} cpu: [arm64] @@ -931,8 +842,8 @@ packages: dev: true optional: true - /@esbuild/win32-arm64@0.18.13: - resolution: {integrity: sha512-4CGYdRQT/ILd+yLLE5i4VApMPfGE0RPc/wFQhlluDQCK09+b4JDbxzzjpgQqTPrdnP7r5KUtGVGZYclYiPuHrw==} + /@esbuild/win32-arm64/0.18.17: + resolution: {integrity: sha512-bwPmTJsEQcbZk26oYpc4c/8PvTY3J5/QK8jM19DVlEsAB41M39aWovWoHtNm78sd6ip6prilxeHosPADXtEJFw==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -940,7 +851,7 @@ packages: dev: true optional: true - /@esbuild/win32-ia32@0.17.19: + /@esbuild/win32-ia32/0.17.19: resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} engines: {node: '>=12'} cpu: [ia32] @@ -949,8 +860,8 @@ packages: dev: true optional: true - /@esbuild/win32-ia32@0.18.13: - resolution: {integrity: sha512-D+wKZaRhQI+MUGMH+DbEr4owC2D7XnF+uyGiZk38QbgzLcofFqIOwFs7ELmIeU45CQgfHNy9Q+LKW3cE8g37Kg==} + /@esbuild/win32-ia32/0.18.17: + resolution: {integrity: sha512-H/XaPtPKli2MhW+3CQueo6Ni3Avggi6hP/YvgkEe1aSaxw+AeO8MFjq8DlgfTd9Iz4Yih3QCZI6YLMoyccnPRg==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -958,7 +869,7 @@ packages: dev: true optional: true - /@esbuild/win32-x64@0.17.19: + /@esbuild/win32-x64/0.17.19: resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} engines: {node: '>=12'} cpu: [x64] @@ -967,8 +878,8 @@ packages: dev: true optional: true - /@esbuild/win32-x64@0.18.13: - resolution: {integrity: sha512-iVl6lehAfJS+VmpF3exKpNQ8b0eucf5VWfzR8S7xFve64NBNz2jPUgx1X93/kfnkfgP737O+i1k54SVQS7uVZA==} + /@esbuild/win32-x64/0.18.17: + resolution: {integrity: sha512-fGEb8f2BSA3CW7riJVurug65ACLuQAzKq0SSqkY2b2yHHH0MzDfbLyKIGzHwOI/gkHcxM/leuSW6D5w/LMNitA==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -976,23 +887,23 @@ packages: dev: true optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.45.0): + /@eslint-community/eslint-utils/4.4.0_eslint@8.46.0: resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.45.0 - eslint-visitor-keys: 3.4.1 + eslint: 8.46.0 + eslint-visitor-keys: 3.4.2 dev: true - /@eslint-community/regexpp@4.5.1: - resolution: {integrity: sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==} + /@eslint-community/regexpp/4.6.2: + resolution: {integrity: sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true - /@eslint/eslintrc@2.1.0: - resolution: {integrity: sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A==} + /@eslint/eslintrc/2.1.1: + resolution: {integrity: sha512-9t7ZA7NGGK8ckelF0PQCfcxIUzs1Md5rrO6U/c+FIQNanea5UZC0wqKXH4vHBccmu4ZJgZ2idtPeW7+Q2npOEA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 @@ -1008,12 +919,12 @@ packages: - supports-color dev: true - /@eslint/js@8.44.0: - resolution: {integrity: sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==} + /@eslint/js/8.46.0: + resolution: {integrity: sha512-a8TLtmPi8xzPkCbp/OGFUo5yhRkHM2Ko9kOWP4znJr0WAhWyThaw3PnwX4vOTWOAMsV2uRt32PPDcEz63esSaA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@humanwhocodes/config-array@0.11.10: + /@humanwhocodes/config-array/0.11.10: resolution: {integrity: sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==} engines: {node: '>=10.10.0'} dependencies: @@ -1024,40 +935,40 @@ packages: - supports-color dev: true - /@humanwhocodes/module-importer@1.0.1: + /@humanwhocodes/module-importer/1.0.1: resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} dev: true - /@humanwhocodes/object-schema@1.2.1: + /@humanwhocodes/object-schema/1.2.1: resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} dev: true - /@isaacs/cliui@8.0.2: + /@isaacs/cliui/8.0.2: resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} dependencies: string-width: 5.1.2 - string-width-cjs: /string-width@4.2.3 + string-width-cjs: /string-width/4.2.3 strip-ansi: 7.1.0 - strip-ansi-cjs: /strip-ansi@6.0.1 + strip-ansi-cjs: /strip-ansi/6.0.1 wrap-ansi: 8.1.0 - wrap-ansi-cjs: /wrap-ansi@7.0.0 + wrap-ansi-cjs: /wrap-ansi/7.0.0 dev: true - /@istanbuljs/schema@0.1.3: + /@istanbuljs/schema/0.1.3: resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} engines: {node: '>=8'} dev: true - /@jest/schemas@29.6.0: + /@jest/schemas/29.6.0: resolution: {integrity: sha512-rxLjXyJBTL4LQeJW3aKo0M/+GkCOXsO+8i9Iu7eDb6KwtP65ayoDsitrdPBtujxQ88k4wI2FNYfa6TOGwSn6cQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@sinclair/typebox': 0.27.8 dev: true - /@jridgewell/gen-mapping@0.3.3: + /@jridgewell/gen-mapping/0.3.3: resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} engines: {node: '>=6.0.0'} dependencies: @@ -1066,62 +977,62 @@ packages: '@jridgewell/trace-mapping': 0.3.18 dev: true - /@jridgewell/resolve-uri@3.1.0: + /@jridgewell/resolve-uri/3.1.0: resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} engines: {node: '>=6.0.0'} dev: true - /@jridgewell/set-array@1.1.2: + /@jridgewell/set-array/1.1.2: resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} engines: {node: '>=6.0.0'} dev: true - /@jridgewell/sourcemap-codec@1.4.14: + /@jridgewell/sourcemap-codec/1.4.14: resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} dev: true - /@jridgewell/sourcemap-codec@1.4.15: + /@jridgewell/sourcemap-codec/1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} dev: true - /@jridgewell/trace-mapping@0.3.18: + /@jridgewell/trace-mapping/0.3.18: resolution: {integrity: sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==} dependencies: '@jridgewell/resolve-uri': 3.1.0 '@jridgewell/sourcemap-codec': 1.4.14 dev: true - /@microsoft/api-extractor-model@7.27.4: - resolution: {integrity: sha512-HjqQFmuGPOS20rtnu+9Jj0QrqZyR59E+piUWXPMZTTn4jaZI+4UmsHSf3Id8vyueAhOBH2cgwBuRTE5R+MfSMw==} + /@microsoft/api-extractor-model/7.27.5: + resolution: {integrity: sha512-9/tBzYMJitR+o+zkPr1lQh2+e8ClcaTF6eZo7vZGDqRt2O5XmXWPbYJZmxyM3wb5at6lfJNEeGZrQXLjsQ0Nbw==} dependencies: '@microsoft/tsdoc': 0.14.2 '@microsoft/tsdoc-config': 0.16.2 - '@rushstack/node-core-library': 3.59.5 + '@rushstack/node-core-library': 3.59.6 transitivePeerDependencies: - '@types/node' dev: true - /@microsoft/api-extractor@7.36.2: - resolution: {integrity: sha512-ONe/jOmTZtR3OjTkWKHmeSV1P5ozbHDxHr6FV3KoWyIl1AcPk2B3dmvVBM5eOlZB5bgM66nxcWQTZ6msQo2hHg==} + /@microsoft/api-extractor/7.36.3: + resolution: {integrity: sha512-u0H6362AQq+r55X8drHx4npgkrCfJnMzRRHfQo8PMNKB8TcBnrTLfXhXWi+xnTM6CzlU/netEN8c4bq581Rnrg==} hasBin: true dependencies: - '@microsoft/api-extractor-model': 7.27.4 + '@microsoft/api-extractor-model': 7.27.5 '@microsoft/tsdoc': 0.14.2 '@microsoft/tsdoc-config': 0.16.2 - '@rushstack/node-core-library': 3.59.5 + '@rushstack/node-core-library': 3.59.6 '@rushstack/rig-package': 0.4.0 '@rushstack/ts-command-line': 4.15.1 colors: 1.2.5 lodash: 4.17.21 resolve: 1.22.2 - semver: 7.3.8 + semver: 7.5.4 source-map: 0.6.1 typescript: 5.0.4 transitivePeerDependencies: - '@types/node' dev: true - /@microsoft/tsdoc-config@0.16.2: + /@microsoft/tsdoc-config/0.16.2: resolution: {integrity: sha512-OGiIzzoBLgWWR0UdRJX98oYO+XKGf7tiK4Zk6tQ/E4IJqGCe7dvkTvgDZV5cFJUzLGDOjeAXrnZoA6QkVySuxw==} dependencies: '@microsoft/tsdoc': 0.14.2 @@ -1130,25 +1041,25 @@ packages: resolve: 1.19.0 dev: true - /@microsoft/tsdoc@0.14.2: + /@microsoft/tsdoc/0.14.2: resolution: {integrity: sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==} dev: true - /@mswjs/cookies@0.2.2: + /@mswjs/cookies/0.2.2: resolution: {integrity: sha512-mlN83YSrcFgk7Dm1Mys40DLssI1KdJji2CMKN8eOlBqsTADYzj2+jWzsANsUTFbxDMWPD5e9bfA1RGqBpS3O1g==} engines: {node: '>=14'} dependencies: - '@types/set-cookie-parser': 2.4.2 + '@types/set-cookie-parser': 2.4.3 set-cookie-parser: 2.6.0 dev: true - /@mswjs/interceptors@0.17.9: + /@mswjs/interceptors/0.17.9: resolution: {integrity: sha512-4LVGt03RobMH/7ZrbHqRxQrS9cc2uh+iNKSj8UWr8M26A2i793ju+csaB5zaqYltqJmA2jUq4VeYfKmVqvsXQg==} engines: {node: '>=14'} dependencies: '@open-draft/until': 1.0.3 '@types/debug': 4.1.8 - '@xmldom/xmldom': 0.8.9 + '@xmldom/xmldom': 0.8.10 debug: 4.3.4 headers-polyfill: 3.1.2 outvariant: 1.4.0 @@ -1158,12 +1069,12 @@ packages: - supports-color dev: true - /@next/env@13.4.10: - resolution: {integrity: sha512-3G1yD/XKTSLdihyDSa8JEsaWOELY+OWe08o0LUYzfuHp1zHDA8SObQlzKt+v+wrkkPcnPweoLH1ImZeUa0A1NQ==} + /@next/env/13.4.12: + resolution: {integrity: sha512-RmHanbV21saP/6OEPBJ7yJMuys68cIf8OBBWd7+uj40LdpmswVAwe1uzeuFyUsd6SfeITWT3XnQfn6wULeKwDQ==} dev: false - /@next/swc-darwin-arm64@13.4.10: - resolution: {integrity: sha512-4bsdfKmmg7mgFGph0UorD1xWfZ5jZEw4kKRHYEeTK9bT1QnMbPVPlVXQRIiFPrhoDQnZUoa6duuPUJIEGLV1Jg==} + /@next/swc-darwin-arm64/13.4.12: + resolution: {integrity: sha512-deUrbCXTMZ6ZhbOoloqecnUeNpUOupi8SE2tx4jPfNS9uyUR9zK4iXBvH65opVcA/9F5I/p8vDXSYbUlbmBjZg==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] @@ -1171,8 +1082,8 @@ packages: dev: false optional: true - /@next/swc-darwin-x64@13.4.10: - resolution: {integrity: sha512-ngXhUBbcZIWZWqNbQSNxQrB9T1V+wgfCzAor2olYuo/YpaL6mUYNUEgeBMhr8qwV0ARSgKaOp35lRvB7EmCRBg==} + /@next/swc-darwin-x64/13.4.12: + resolution: {integrity: sha512-WRvH7RxgRHlC1yb5oG0ZLx8F7uci9AivM5/HGGv9ZyG2Als8Ij64GC3d+mQ5sJhWjusyU6T6V1WKTUoTmOB0zQ==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] @@ -1180,48 +1091,44 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-gnu@13.4.10: - resolution: {integrity: sha512-SjCZZCOmHD4uyM75MVArSAmF5Y+IJSGroPRj2v9/jnBT36SYFTORN8Ag/lhw81W9EeexKY/CUg2e9mdebZOwsg==} + /@next/swc-linux-arm64-gnu/13.4.12: + resolution: {integrity: sha512-YEKracAWuxp54tKiAvvq73PUs9lok57cc8meYRibTWe/VdPB2vLgkTVWFcw31YDuRXdEhdX0fWS6Q+ESBhnEig==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - libc: [glibc] requiresBuild: true dev: false optional: true - /@next/swc-linux-arm64-musl@13.4.10: - resolution: {integrity: sha512-F+VlcWijX5qteoYIOxNiBbNE8ruaWuRlcYyIRK10CugqI/BIeCDzEDyrHIHY8AWwbkTwe6GRHabMdE688Rqq4Q==} + /@next/swc-linux-arm64-musl/13.4.12: + resolution: {integrity: sha512-LhJR7/RAjdHJ2Isl2pgc/JaoxNk0KtBgkVpiDJPVExVWA1c6gzY57+3zWuxuyWzTG+fhLZo2Y80pLXgIJv7g3g==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - libc: [musl] requiresBuild: true dev: false optional: true - /@next/swc-linux-x64-gnu@13.4.10: - resolution: {integrity: sha512-WDv1YtAV07nhfy3i1visr5p/tjiH6CeXp4wX78lzP1jI07t4PnHHG1WEDFOduXh3WT4hG6yN82EQBQHDi7hBrQ==} + /@next/swc-linux-x64-gnu/13.4.12: + resolution: {integrity: sha512-1DWLL/B9nBNiQRng+1aqs3OaZcxC16Nf+mOnpcrZZSdyKHek3WQh6j/fkbukObgNGwmCoVevLUa/p3UFTTqgqg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - libc: [glibc] requiresBuild: true dev: false optional: true - /@next/swc-linux-x64-musl@13.4.10: - resolution: {integrity: sha512-zFkzqc737xr6qoBgDa3AwC7jPQzGLjDlkNmt/ljvQJ/Veri5ECdHjZCUuiTUfVjshNIIpki6FuP0RaQYK9iCRg==} + /@next/swc-linux-x64-musl/13.4.12: + resolution: {integrity: sha512-kEAJmgYFhp0VL+eRWmUkVxLVunn7oL9Mdue/FS8yzRBVj7Z0AnIrHpTIeIUl1bbdQq1VaoOztnKicAjfkLTRCQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - libc: [musl] requiresBuild: true dev: false optional: true - /@next/swc-win32-arm64-msvc@13.4.10: - resolution: {integrity: sha512-IboRS8IWz5mWfnjAdCekkl8s0B7ijpWeDwK2O8CdgZkoCDY0ZQHBSGiJ2KViAG6+BJVfLvcP+a2fh6cdyBr9QQ==} + /@next/swc-win32-arm64-msvc/13.4.12: + resolution: {integrity: sha512-GMLuL/loR6yIIRTnPRY6UGbLL9MBdw2anxkOnANxvLvsml4F0HNIgvnU3Ej4BjbqMTNjD4hcPFdlEow4XHPdZA==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] @@ -1229,8 +1136,8 @@ packages: dev: false optional: true - /@next/swc-win32-ia32-msvc@13.4.10: - resolution: {integrity: sha512-bSA+4j8jY4EEiwD/M2bol4uVEu1lBlgsGdvM+mmBm/BbqofNBfaZ2qwSbwE2OwbAmzNdVJRFRXQZ0dkjopTRaQ==} + /@next/swc-win32-ia32-msvc/13.4.12: + resolution: {integrity: sha512-PhgNqN2Vnkm7XaMdRmmX0ZSwZXQAtamBVSa9A/V1dfKQCV1rjIZeiy/dbBnVYGdj63ANfsOR/30XpxP71W0eww==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] @@ -1238,8 +1145,8 @@ packages: dev: false optional: true - /@next/swc-win32-x64-msvc@13.4.10: - resolution: {integrity: sha512-g2+tU63yTWmcVQKDGY0MV1PjjqgZtwM4rB1oVVi/v0brdZAcrcTV+04agKzWtvWroyFz6IqtT0MoZJA7PNyLVw==} + /@next/swc-win32-x64-msvc/13.4.12: + resolution: {integrity: sha512-Z+56e/Ljt0bUs+T+jPjhFyxYBcdY2RIq9ELFU+qAMQMteHo7ymbV7CKmlcX59RI9C4YzN8PgMgLyAoi916b5HA==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -1247,7 +1154,7 @@ packages: dev: false optional: true - /@nodelib/fs.scandir@2.1.5: + /@nodelib/fs.scandir/2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} dependencies: @@ -1255,12 +1162,12 @@ packages: run-parallel: 1.2.0 dev: true - /@nodelib/fs.stat@2.0.5: + /@nodelib/fs.stat/2.0.5: resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} engines: {node: '>= 8'} dev: true - /@nodelib/fs.walk@1.2.8: + /@nodelib/fs.walk/1.2.8: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} dependencies: @@ -1268,35 +1175,35 @@ packages: fastq: 1.15.0 dev: true - /@open-draft/until@1.0.3: + /@open-draft/until/1.0.3: resolution: {integrity: sha512-Aq58f5HiWdyDlFffbbSjAlv596h/cOnt2DO1w3DOC7OJ5EHs0hd/nycJfiu9RJbT6Yk6F1knnRRXNSpxoIVZ9Q==} dev: true - /@pkgjs/parseargs@0.11.0: + /@pkgjs/parseargs/0.11.0: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} requiresBuild: true dev: true optional: true - /@pkgr/utils@2.4.2: + /@pkgr/utils/2.4.2: resolution: {integrity: sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} dependencies: cross-spawn: 7.0.3 - fast-glob: 3.3.0 + fast-glob: 3.3.1 is-glob: 4.0.3 open: 9.1.0 picocolors: 1.0.0 - tslib: 2.6.0 + tslib: 2.6.1 dev: true - /@remix-run/router@1.7.1: - resolution: {integrity: sha512-bgVQM4ZJ2u2CM8k1ey70o1ePFXsEzYVZoWghh6WjM8p59jQ7HxzbHW4SbnWFG7V9ig9chLawQxDTZ3xzOF8MkQ==} + /@remix-run/router/1.7.2: + resolution: {integrity: sha512-7Lcn7IqGMV+vizMPoEl5F0XDshcdDYtMI6uJLQdQz5CfZAwy3vvGKYSUk789qndt5dEC4HfSjviSYlSoHGL2+A==} engines: {node: '>=14'} dev: false - /@rollup/pluginutils@5.0.2: + /@rollup/pluginutils/5.0.2: resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1310,8 +1217,8 @@ packages: picomatch: 2.3.1 dev: true - /@rushstack/node-core-library@3.59.5: - resolution: {integrity: sha512-1IpV7LufrI1EoVO8hYsb3t6L8L+yp40Sa0OaOV2CIu1zx4e6ZeVNaVIEXFgMXBKdGXkAh21MnCaIzlDNpG6ZQw==} + /@rushstack/node-core-library/3.59.6: + resolution: {integrity: sha512-bMYJwNFfWXRNUuHnsE9wMlW/mOB4jIwSUkRKtu02CwZhQdmzMsUbxE0s1xOLwTpNIwlzfW/YT7OnOHgDffLgYg==} peerDependencies: '@types/node': '*' peerDependenciesMeta: @@ -1323,18 +1230,18 @@ packages: import-lazy: 4.0.0 jju: 1.4.0 resolve: 1.22.2 - semver: 7.3.8 + semver: 7.5.4 z-schema: 5.0.5 dev: true - /@rushstack/rig-package@0.4.0: + /@rushstack/rig-package/0.4.0: resolution: {integrity: sha512-FnM1TQLJYwSiurP6aYSnansprK5l8WUK8VG38CmAaZs29ZeL1msjK0AP1VS4ejD33G0kE/2cpsPsS9jDenBMxw==} dependencies: resolve: 1.22.2 strip-json-comments: 3.1.1 dev: true - /@rushstack/ts-command-line@4.15.1: + /@rushstack/ts-command-line/4.15.1: resolution: {integrity: sha512-EL4jxZe5fhb1uVL/P/wQO+Z8Rc8FMiWJ1G7VgnPDvdIt5GVjRfK7vwzder1CZQiX3x0PY6uxENYLNGTFd1InRQ==} dependencies: '@types/argparse': 1.0.38 @@ -1343,17 +1250,17 @@ packages: string-argv: 0.3.2 dev: true - /@sinclair/typebox@0.27.8: + /@sinclair/typebox/0.27.8: resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} dev: true - /@swc/helpers@0.5.1: + /@swc/helpers/0.5.1: resolution: {integrity: sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg==} dependencies: - tslib: 2.6.0 + tslib: 2.6.1 dev: false - /@testing-library/dom@8.20.1: + /@testing-library/dom/8.20.1: resolution: {integrity: sha512-/DiOQ5xBxgdYRC8LNk7U+RWat0S3qRLeIw3ZIkMQ9kkVlRmwD/Eg8k8CqIpD6GW7u20JIUOfMKbxtiLutpjQ4g==} engines: {node: '>=12'} dependencies: @@ -1367,7 +1274,7 @@ packages: pretty-format: 27.5.1 dev: true - /@testing-library/dom@9.3.1: + /@testing-library/dom/9.3.1: resolution: {integrity: sha512-0DGPd9AR3+iDTjGoMpxIkAsUihHZ3Ai6CneU6bRRrffXMgzCdlNk43jTrD2/5LT6CBb3MWTP8v510JzYtahD2w==} engines: {node: '>=14'} dependencies: @@ -1379,22 +1286,50 @@ packages: dom-accessibility-api: 0.5.16 lz-string: 1.5.0 pretty-format: 27.5.1 + dev: true - /@testing-library/jest-dom@5.16.5: + /@testing-library/jest-dom/5.16.5: resolution: {integrity: sha512-N5ixQ2qKpi5OLYfwQmUb/5mSV9LneAcaUfp32pn4yCnpb8r/Yz0pXFPck21dIicKmi+ta5WRAknkZCfA8refMA==} engines: {node: '>=8', npm: '>=6', yarn: '>=1'} dependencies: '@adobe/css-tools': 4.2.0 '@babel/runtime': 7.22.6 - '@types/testing-library__jest-dom': 5.14.8 + '@types/testing-library__jest-dom': 5.14.9 aria-query: 5.3.0 chalk: 3.0.0 css.escape: 1.5.1 dom-accessibility-api: 0.5.16 lodash: 4.17.21 redent: 3.0.0 + dev: true - /@testing-library/react@13.3.0(react-dom@18.2.0)(react@18.2.0): + /@testing-library/jest-dom/5.17.0: + resolution: {integrity: sha512-ynmNeT7asXyH3aSVv4vvX4Rb+0qjOhdNHnO/3vuZNqPmhDpV/+rCSGwQ7bLcmU2cJ4dvoheIO85LQj0IbJHEtg==} + engines: {node: '>=8', npm: '>=6', yarn: '>=1'} + dependencies: + '@adobe/css-tools': 4.2.0 + '@babel/runtime': 7.22.6 + '@types/testing-library__jest-dom': 5.14.9 + aria-query: 5.3.0 + chalk: 3.0.0 + css.escape: 1.5.1 + dom-accessibility-api: 0.5.16 + lodash: 4.17.21 + redent: 3.0.0 + + /@testing-library/react/13.3.0: + resolution: {integrity: sha512-DB79aA426+deFgGSjnf5grczDPiL4taK3hFaa+M5q7q20Kcve9eQottOG5kZ74KEr55v0tU2CQormSSDK87zYQ==} + engines: {node: '>=12'} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + dependencies: + '@babel/runtime': 7.22.6 + '@testing-library/dom': 8.20.1 + '@types/react-dom': 18.2.7 + dev: true + + /@testing-library/react/13.3.0_biqbaboplfbrettd7655fr4n2y: resolution: {integrity: sha512-DB79aA426+deFgGSjnf5grczDPiL4taK3hFaa+M5q7q20Kcve9eQottOG5kZ74KEr55v0tU2CQormSSDK87zYQ==} engines: {node: '>=12'} peerDependencies: @@ -1405,141 +1340,143 @@ packages: '@testing-library/dom': 8.20.1 '@types/react-dom': 18.2.7 react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react-dom: 18.2.0_react@18.2.0 dev: true - /@testing-library/user-event@13.5.0(@testing-library/dom@9.3.1): + /@testing-library/user-event/13.5.0: resolution: {integrity: sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg==} engines: {node: '>=10', npm: '>=6'} peerDependencies: '@testing-library/dom': '>=7.21.4' dependencies: '@babel/runtime': 7.22.6 - '@testing-library/dom': 9.3.1 dev: false - /@testing-library/user-event@14.4.3(@testing-library/dom@9.3.1): + /@testing-library/user-event/14.4.3: resolution: {integrity: sha512-kCUc5MEwaEMakkO5x7aoD+DLi02ehmEM2QCGWvNqAS1dV/fAvORWEjnjsEIvml59M7Y5kCkWN6fCCyPOe8OL6Q==} engines: {node: '>=12', npm: '>=6'} peerDependencies: '@testing-library/dom': '>=7.21.4' - dependencies: - '@testing-library/dom': 9.3.1 dev: true - /@tootallnate/once@2.0.0: + /@tootallnate/once/2.0.0: resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} engines: {node: '>= 10'} dev: true - /@types/argparse@1.0.38: + /@types/argparse/1.0.38: resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} dev: true - /@types/aria-query@5.0.1: + /@types/aria-query/5.0.1: resolution: {integrity: sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q==} + dev: true - /@types/chai-subset@1.3.3: + /@types/chai-subset/1.3.3: resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} dependencies: '@types/chai': 4.3.5 dev: true - /@types/chai@4.3.5: + /@types/chai/4.3.5: resolution: {integrity: sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==} dev: true - /@types/cookie@0.4.1: + /@types/cookie/0.4.1: resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==} dev: true - /@types/debug@4.1.8: + /@types/debug/4.1.8: resolution: {integrity: sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ==} dependencies: '@types/ms': 0.7.31 dev: true - /@types/estree@1.0.1: + /@types/estree/1.0.1: resolution: {integrity: sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==} dev: true - /@types/istanbul-lib-coverage@2.0.4: + /@types/istanbul-lib-coverage/2.0.4: resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} dev: true - /@types/jest@27.5.2: + /@types/jest/27.5.2: resolution: {integrity: sha512-mpT8LJJ4CMeeahobofYWIjFo0xonRS/HfxnVEPMPFSQdGUt1uHCnoPT7Zhb+sjDU2wz0oKV0OLUR0WzrHNgfeA==} dependencies: jest-matcher-utils: 27.5.1 pretty-format: 27.5.1 - /@types/js-levenshtein@1.1.1: + /@types/js-levenshtein/1.1.1: resolution: {integrity: sha512-qC4bCqYGy1y/NP7dDVr7KJarn+PbX1nSpwA7JXdu0HxT3QYjO8MJ+cntENtHFVy2dRAyBV23OZ6MxsW1AM1L8g==} dev: true - /@types/json-schema@7.0.12: + /@types/json-schema/7.0.12: resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==} dev: true - /@types/json5@0.0.29: + /@types/json5/0.0.29: resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} dev: true - /@types/minimist@1.2.2: + /@types/minimist/1.2.2: resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} dev: true - /@types/ms@0.7.31: + /@types/ms/0.7.31: resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} dev: true - /@types/node@18.11.9: - resolution: {integrity: sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==} + /@types/node/18.17.1: + resolution: {integrity: sha512-xlR1jahfizdplZYRU59JlUx9uzF1ARa8jbhM11ccpCJya8kvos5jwdm2ZAgxSCwOl0fq21svP18EVwPBXMQudw==} + dev: true + + /@types/node/20.4.5: + resolution: {integrity: sha512-rt40Nk13II9JwQBdeYqmbn2Q6IVTA5uPhvSO+JVqdXw/6/4glI6oR9ezty/A9Hg5u7JH4OmYmuQ+XvjKm0Datg==} dev: true - /@types/normalize-package-data@2.4.1: + /@types/normalize-package-data/2.4.1: resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} dev: true - /@types/prop-types@15.7.5: + /@types/prop-types/15.7.5: resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} dev: true - /@types/react-dom@18.2.7: + /@types/react-dom/18.2.7: resolution: {integrity: sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA==} dependencies: - '@types/react': 18.2.15 + '@types/react': 18.2.17 dev: true - /@types/react@18.2.15: - resolution: {integrity: sha512-oEjE7TQt1fFTFSbf8kkNuc798ahTUzn3Le67/PWjE8MAfYAD/qB7O8hSTcromLFqHCt9bcdOg5GXMokzTjJ5SA==} + /@types/react/18.2.17: + resolution: {integrity: sha512-u+e7OlgPPh+aryjOm5UJMX32OvB2E3QASOAqVMY6Ahs90djagxwv2ya0IctglNbNTexC12qCSMZG47KPfy1hAA==} dependencies: '@types/prop-types': 15.7.5 '@types/scheduler': 0.16.3 csstype: 3.1.2 dev: true - /@types/scheduler@0.16.3: + /@types/scheduler/0.16.3: resolution: {integrity: sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==} dev: true - /@types/semver@7.5.0: + /@types/semver/7.5.0: resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} dev: true - /@types/set-cookie-parser@2.4.2: - resolution: {integrity: sha512-fBZgytwhYAUkj/jC/FAV4RQ5EerRup1YQsXQCh8rZfiHkc4UahC192oH0smGwsXol3cL3A5oETuAHeQHmhXM4w==} + /@types/set-cookie-parser/2.4.3: + resolution: {integrity: sha512-7QhnH7bi+6KAhBB+Auejz1uV9DHiopZqu7LfR/5gZZTkejJV5nYeZZpgfFoE0N8aDsXuiYpfKyfyMatCwQhyTQ==} dependencies: - '@types/node': 18.11.9 + '@types/node': 20.4.5 dev: true - /@types/testing-library__jest-dom@5.14.8: - resolution: {integrity: sha512-NRfJE9Cgpmu4fx716q9SYmU4jxxhYRU1BQo239Txt/9N3EC745XZX1Yl7h/SBIDlo1ANVOCRB4YDXjaQdoKCHQ==} + /@types/testing-library__jest-dom/5.14.9: + resolution: {integrity: sha512-FSYhIjFlfOpGSRyVoMBMuS3ws5ehFQODymf3vlI7U1K8c7PHwWwFY7VREfmsuzHSOnoKs/9/Y983ayOs7eRzqw==} dependencies: '@types/jest': 27.5.2 - /@typescript-eslint/eslint-plugin@6.0.0(@typescript-eslint/parser@6.0.0)(eslint@8.45.0)(typescript@5.1.6): - resolution: {integrity: sha512-xuv6ghKGoiq856Bww/yVYnXGsKa588kY3M0XK7uUW/3fJNNULKRfZfSBkMTSpqGG/8ZCXCadfh8G/z/B4aqS/A==} + /@typescript-eslint/eslint-plugin/6.2.0_idzvfmj5qli4h3jfxnf522w3fe: + resolution: {integrity: sha512-rClGrMuyS/3j0ETa1Ui7s6GkLhfZGKZL3ZrChLeAiACBE/tRc1wq8SNZESUuluxhLj9FkUefRs2l6bCIArWBiQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha @@ -1549,28 +1486,27 @@ packages: typescript: optional: true dependencies: - '@eslint-community/regexpp': 4.5.1 - '@typescript-eslint/parser': 6.0.0(eslint@8.45.0)(typescript@5.1.6) - '@typescript-eslint/scope-manager': 6.0.0 - '@typescript-eslint/type-utils': 6.0.0(eslint@8.45.0)(typescript@5.1.6) - '@typescript-eslint/utils': 6.0.0(eslint@8.45.0)(typescript@5.1.6) - '@typescript-eslint/visitor-keys': 6.0.0 + '@eslint-community/regexpp': 4.6.2 + '@typescript-eslint/parser': 6.2.0_7haavtekmro7ptbnqmctjaodju + '@typescript-eslint/scope-manager': 6.2.0 + '@typescript-eslint/type-utils': 6.2.0_7haavtekmro7ptbnqmctjaodju + '@typescript-eslint/utils': 6.2.0_7haavtekmro7ptbnqmctjaodju + '@typescript-eslint/visitor-keys': 6.2.0 debug: 4.3.4 - eslint: 8.45.0 - grapheme-splitter: 1.0.4 + eslint: 8.46.0 graphemer: 1.4.0 ignore: 5.2.4 natural-compare: 1.4.0 natural-compare-lite: 1.4.0 semver: 7.5.4 - ts-api-utils: 1.0.1(typescript@5.1.6) + ts-api-utils: 1.0.1_typescript@5.1.6 typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@6.0.0(eslint@8.45.0)(typescript@5.1.6): - resolution: {integrity: sha512-TNaufYSPrr1U8n+3xN+Yp9g31vQDJqhXzzPSHfQDLcaO4tU+mCfODPxCwf4H530zo7aUBE3QIdxCXamEnG04Tg==} + /@typescript-eslint/parser/6.2.0_7haavtekmro7ptbnqmctjaodju: + resolution: {integrity: sha512-igVYOqtiK/UsvKAmmloQAruAdUHihsOCvplJpplPZ+3h4aDkC/UKZZNKgB6h93ayuYLuEymU3h8nF1xMRbh37g==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -1579,18 +1515,18 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.0.0 - '@typescript-eslint/types': 6.0.0 - '@typescript-eslint/typescript-estree': 6.0.0(typescript@5.1.6) - '@typescript-eslint/visitor-keys': 6.0.0 + '@typescript-eslint/scope-manager': 6.2.0 + '@typescript-eslint/types': 6.2.0 + '@typescript-eslint/typescript-estree': 6.2.0_typescript@5.1.6 + '@typescript-eslint/visitor-keys': 6.2.0 debug: 4.3.4 - eslint: 8.45.0 + eslint: 8.46.0 typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager@5.62.0: + /@typescript-eslint/scope-manager/5.62.0: resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: @@ -1598,16 +1534,16 @@ packages: '@typescript-eslint/visitor-keys': 5.62.0 dev: true - /@typescript-eslint/scope-manager@6.0.0: - resolution: {integrity: sha512-o4q0KHlgCZTqjuaZ25nw5W57NeykZT9LiMEG4do/ovwvOcPnDO1BI5BQdCsUkjxFyrCL0cSzLjvIMfR9uo7cWg==} + /@typescript-eslint/scope-manager/6.2.0: + resolution: {integrity: sha512-1ZMNVgm5nnHURU8ZSJ3snsHzpFeNK84rdZjluEVBGNu7jDymfqceB3kdIZ6A4xCfEFFhRIB6rF8q/JIqJd2R0Q==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.0.0 - '@typescript-eslint/visitor-keys': 6.0.0 + '@typescript-eslint/types': 6.2.0 + '@typescript-eslint/visitor-keys': 6.2.0 dev: true - /@typescript-eslint/type-utils@6.0.0(eslint@8.45.0)(typescript@5.1.6): - resolution: {integrity: sha512-ah6LJvLgkoZ/pyJ9GAdFkzeuMZ8goV6BH7eC9FPmojrnX9yNCIsfjB+zYcnex28YO3RFvBkV6rMV6WpIqkPvoQ==} + /@typescript-eslint/type-utils/6.2.0_7haavtekmro7ptbnqmctjaodju: + resolution: {integrity: sha512-DnGZuNU2JN3AYwddYIqrVkYW0uUQdv0AY+kz2M25euVNlujcN2u+rJgfJsBFlUEzBB6OQkUqSZPyuTLf2bP5mw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -1616,27 +1552,27 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.0.0(typescript@5.1.6) - '@typescript-eslint/utils': 6.0.0(eslint@8.45.0)(typescript@5.1.6) + '@typescript-eslint/typescript-estree': 6.2.0_typescript@5.1.6 + '@typescript-eslint/utils': 6.2.0_7haavtekmro7ptbnqmctjaodju debug: 4.3.4 - eslint: 8.45.0 - ts-api-utils: 1.0.1(typescript@5.1.6) + eslint: 8.46.0 + ts-api-utils: 1.0.1_typescript@5.1.6 typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types@5.62.0: + /@typescript-eslint/types/5.62.0: resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/types@6.0.0: - resolution: {integrity: sha512-Zk9KDggyZM6tj0AJWYYKgF0yQyrcnievdhG0g5FqyU3Y2DRxJn4yWY21sJC0QKBckbsdKKjYDV2yVrrEvuTgxg==} + /@typescript-eslint/types/6.2.0: + resolution: {integrity: sha512-1nRRaDlp/XYJQLvkQJG5F3uBTno5SHPT7XVcJ5n1/k2WfNI28nJsvLakxwZRNY5spuatEKO7d5nZWsQpkqXwBA==} engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@5.62.0(typescript@5.1.6): + /@typescript-eslint/typescript-estree/5.62.0_typescript@5.1.6: resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -1651,14 +1587,14 @@ packages: globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 - tsutils: 3.21.0(typescript@5.1.6) + tsutils: 3.21.0_typescript@5.1.6 typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/typescript-estree@6.0.0(typescript@5.1.6): - resolution: {integrity: sha512-2zq4O7P6YCQADfmJ5OTDQTP3ktajnXIRrYAtHM9ofto/CJZV3QfJ89GEaM2BNGeSr1KgmBuLhEkz5FBkS2RQhQ==} + /@typescript-eslint/typescript-estree/6.2.0_typescript@5.1.6: + resolution: {integrity: sha512-Mts6+3HQMSM+LZCglsc2yMIny37IhUgp1Qe8yJUYVyO6rHP7/vN0vajKu3JvHCBIy8TSiKddJ/Zwu80jhnGj1w==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -1666,31 +1602,31 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.0.0 - '@typescript-eslint/visitor-keys': 6.0.0 + '@typescript-eslint/types': 6.2.0 + '@typescript-eslint/visitor-keys': 6.2.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 - ts-api-utils: 1.0.1(typescript@5.1.6) + ts-api-utils: 1.0.1_typescript@5.1.6 typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@5.62.0(eslint@8.45.0)(typescript@5.1.6): + /@typescript-eslint/utils/5.62.0_7haavtekmro7ptbnqmctjaodju: resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.45.0) + '@eslint-community/eslint-utils': 4.4.0_eslint@8.46.0 '@types/json-schema': 7.0.12 '@types/semver': 7.5.0 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6) - eslint: 8.45.0 + '@typescript-eslint/typescript-estree': 5.62.0_typescript@5.1.6 + eslint: 8.46.0 eslint-scope: 5.1.1 semver: 7.5.4 transitivePeerDependencies: @@ -1698,71 +1634,70 @@ packages: - typescript dev: true - /@typescript-eslint/utils@6.0.0(eslint@8.45.0)(typescript@5.1.6): - resolution: {integrity: sha512-SOr6l4NB6HE4H/ktz0JVVWNXqCJTOo/mHnvIte1ZhBQ0Cvd04x5uKZa3zT6tiodL06zf5xxdK8COiDvPnQ27JQ==} + /@typescript-eslint/utils/6.2.0_7haavtekmro7ptbnqmctjaodju: + resolution: {integrity: sha512-RCFrC1lXiX1qEZN8LmLrxYRhOkElEsPKTVSNout8DMzf8PeWoQG7Rxz2SadpJa3VSh5oYKGwt7j7X/VRg+Y3OQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.45.0) + '@eslint-community/eslint-utils': 4.4.0_eslint@8.46.0 '@types/json-schema': 7.0.12 '@types/semver': 7.5.0 - '@typescript-eslint/scope-manager': 6.0.0 - '@typescript-eslint/types': 6.0.0 - '@typescript-eslint/typescript-estree': 6.0.0(typescript@5.1.6) - eslint: 8.45.0 - eslint-scope: 5.1.1 + '@typescript-eslint/scope-manager': 6.2.0 + '@typescript-eslint/types': 6.2.0 + '@typescript-eslint/typescript-estree': 6.2.0_typescript@5.1.6 + eslint: 8.46.0 semver: 7.5.4 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys@5.62.0: + /@typescript-eslint/visitor-keys/5.62.0: resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: '@typescript-eslint/types': 5.62.0 - eslint-visitor-keys: 3.4.1 + eslint-visitor-keys: 3.4.2 dev: true - /@typescript-eslint/visitor-keys@6.0.0: - resolution: {integrity: sha512-cvJ63l8c0yXdeT5POHpL0Q1cZoRcmRKFCtSjNGJxPkcP571EfZMcNbzWAc7oK3D1dRzm/V5EwtkANTZxqvuuUA==} + /@typescript-eslint/visitor-keys/6.2.0: + resolution: {integrity: sha512-QbaYUQVKKo9bgCzpjz45llCfwakyoxHetIy8CAvYCtd16Zu1KrpzNHofwF8kGkpPOxZB2o6kz+0nqH8ZkIzuoQ==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.0.0 - eslint-visitor-keys: 3.4.1 + '@typescript-eslint/types': 6.2.0 + eslint-visitor-keys: 3.4.2 dev: true - /@vitejs/plugin-react@4.0.3(vite@4.4.4): + /@vitejs/plugin-react/4.0.3_vite@4.4.7: resolution: {integrity: sha512-pwXDog5nwwvSIzwrvYYmA2Ljcd/ZNlcsSG2Q9CNDBwnsd55UGAyr2doXtB5j+2uymRCnCfExlznzzSFbBRcoCg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: vite: ^4.2.0 dependencies: '@babel/core': 7.22.9 - '@babel/plugin-transform-react-jsx-self': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-react-jsx-source': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-react-jsx-self': 7.22.5_@babel+core@7.22.9 + '@babel/plugin-transform-react-jsx-source': 7.22.5_@babel+core@7.22.9 react-refresh: 0.14.0 - vite: 4.4.4(@types/node@18.11.9) + vite: 4.4.7 transitivePeerDependencies: - supports-color dev: true - /@vitest/coverage-c8@0.33.0(vitest@0.33.0): + /@vitest/coverage-c8/0.33.0_vitest@0.33.0: resolution: {integrity: sha512-DaF1zJz4dcOZS4k/neiQJokmOWqsGXwhthfmUdPGorXIQHjdPvV6JQSYhQDI41MyI8c+IieQUdIDs5XAMHtDDw==} peerDependencies: vitest: '>=0.30.0 <1' dependencies: '@ampproject/remapping': 2.2.1 c8: 7.14.0 - magic-string: 0.30.1 + magic-string: 0.30.2 picocolors: 1.0.0 std-env: 3.3.3 - vitest: 0.33.0(jsdom@22.1.0) + vitest: 0.33.0_jsdom@22.1.0 dev: true - /@vitest/coverage-v8@0.33.0(vitest@0.33.0): + /@vitest/coverage-v8/0.33.0_vitest@0.33.0: resolution: {integrity: sha512-Rj5IzoLF7FLj6yR7TmqsfRDSeaFki6NAJ/cQexqhbWkHEV2htlVGrmuOde3xzvFsCbLCagf4omhcIaVmfU8Okg==} peerDependencies: vitest: '>=0.32.0 <1' @@ -1770,20 +1705,20 @@ packages: '@ampproject/remapping': 2.2.1 '@bcoe/v8-coverage': 0.2.3 istanbul-lib-coverage: 3.2.0 - istanbul-lib-report: 3.0.0 + istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 4.0.1 - istanbul-reports: 3.1.5 - magic-string: 0.30.1 + istanbul-reports: 3.1.6 + magic-string: 0.30.2 picocolors: 1.0.0 std-env: 3.3.3 test-exclude: 6.0.0 v8-to-istanbul: 9.1.0 - vitest: 0.33.0(jsdom@22.1.0) + vitest: 0.33.0 transitivePeerDependencies: - supports-color dev: true - /@vitest/expect@0.33.0: + /@vitest/expect/0.33.0: resolution: {integrity: sha512-sVNf+Gla3mhTCxNJx+wJLDPp/WcstOe0Ksqz4Vec51MmgMth/ia0MGFEkIZmVGeTL5HtjYR4Wl/ZxBxBXZJTzQ==} dependencies: '@vitest/spy': 0.33.0 @@ -1791,7 +1726,7 @@ packages: chai: 4.3.7 dev: true - /@vitest/runner@0.33.0: + /@vitest/runner/0.33.0: resolution: {integrity: sha512-UPfACnmCB6HKRHTlcgCoBh6ppl6fDn+J/xR8dTufWiKt/74Y9bHci5CKB8tESSV82zKYtkBJo9whU3mNvfaisg==} dependencies: '@vitest/utils': 0.33.0 @@ -1799,47 +1734,47 @@ packages: pathe: 1.1.1 dev: true - /@vitest/snapshot@0.33.0: + /@vitest/snapshot/0.33.0: resolution: {integrity: sha512-tJjrl//qAHbyHajpFvr8Wsk8DIOODEebTu7pgBrP07iOepR5jYkLFiqLq2Ltxv+r0uptUb4izv1J8XBOwKkVYA==} dependencies: - magic-string: 0.30.1 + magic-string: 0.30.2 pathe: 1.1.1 - pretty-format: 29.6.1 + pretty-format: 29.6.2 dev: true - /@vitest/spy@0.33.0: + /@vitest/spy/0.33.0: resolution: {integrity: sha512-Kv+yZ4hnH1WdiAkPUQTpRxW8kGtH8VRTnus7ZTGovFYM1ZezJpvGtb9nPIjPnptHbsyIAxYZsEpVPYgtpjGnrg==} dependencies: tinyspy: 2.1.1 dev: true - /@vitest/utils@0.33.0: + /@vitest/utils/0.33.0: resolution: {integrity: sha512-pF1w22ic965sv+EN6uoePkAOTkAPWM03Ri/jXNyMIKBb/XHLDPfhLvf/Fa9g0YECevAIz56oVYXhodLvLQ/awA==} dependencies: diff-sequences: 29.4.3 loupe: 2.3.6 - pretty-format: 29.6.1 + pretty-format: 29.6.2 dev: true - /@volar/language-core@1.9.0: - resolution: {integrity: sha512-+PTRrGanAD2PxqMty0ZC46xhgW5BWzb67RLHhZyB3Im4+eMXsKlYjFUt7Z8ZCwTWQQOnj8NQ6gSgUEoOTwAHrQ==} + /@volar/language-core/1.10.0: + resolution: {integrity: sha512-ddyWwSYqcbEZNFHm+Z3NZd6M7Ihjcwl/9B5cZd8kECdimVXUFdFi60XHWD27nrWtUQIsUYIG7Ca1WBwV2u2LSQ==} dependencies: - '@volar/source-map': 1.9.0 + '@volar/source-map': 1.10.0 dev: true - /@volar/source-map@1.9.0: - resolution: {integrity: sha512-TQWLY8ozUOHBHTMC2pHZsNbtM25Q9QCEwAL8JFR/gmR9Yv0d9qup/gQdd5sDI7RmoPYKD+gqjLrbM4Ib41QSJQ==} + /@volar/source-map/1.10.0: + resolution: {integrity: sha512-/ibWdcOzDGiq/GM1JU2eX8fH1bvAhl66hfe8yEgLEzg9txgr6qb5sQ/DEz5PcDL75tF5H5sCRRwn8Eu8ezi9mw==} dependencies: muggle-string: 0.3.1 dev: true - /@volar/typescript@1.9.0: - resolution: {integrity: sha512-B8X4/H6V93uD7zu5VCw05eB0Ukcc39SFKsZoeylkAk2sJ50oaJLpajnQ8Ov4c+FnVQ6iPA6Xy1qdWoWJjh6xEg==} + /@volar/typescript/1.10.0: + resolution: {integrity: sha512-OtqGtFbUKYC0pLNIk3mHQp5xWnvL1CJIUc9VE39VdZ/oqpoBh5jKfb9uJ45Y4/oP/WYTrif/Uxl1k8VTPz66Gg==} dependencies: - '@volar/language-core': 1.9.0 + '@volar/language-core': 1.10.0 dev: true - /@vue/compiler-core@3.3.4: + /@vue/compiler-core/3.3.4: resolution: {integrity: sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==} dependencies: '@babel/parser': 7.22.7 @@ -1848,23 +1783,23 @@ packages: source-map-js: 1.0.2 dev: true - /@vue/compiler-dom@3.3.4: + /@vue/compiler-dom/3.3.4: resolution: {integrity: sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==} dependencies: '@vue/compiler-core': 3.3.4 '@vue/shared': 3.3.4 dev: true - /@vue/language-core@1.8.5(typescript@5.1.6): - resolution: {integrity: sha512-DKQNiNQzNV7nrkZQujvjfX73zqKdj2+KoM4YeKl+ft3f+crO3JB4ycPnmgaRMNX/ULJootdQPGHKFRl5cXxwaw==} + /@vue/language-core/1.8.8_typescript@5.1.6: + resolution: {integrity: sha512-i4KMTuPazf48yMdYoebTkgSOJdFraE4pQf0B+FTOFkbB+6hAfjrSou/UmYWRsWyZV6r4Rc6DDZdI39CJwL0rWw==} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@volar/language-core': 1.9.0 - '@volar/source-map': 1.9.0 + '@volar/language-core': 1.10.0 + '@volar/source-map': 1.10.0 '@vue/compiler-dom': 3.3.4 '@vue/reactivity': 3.3.4 '@vue/shared': 3.3.4 @@ -1874,41 +1809,41 @@ packages: vue-template-compiler: 2.7.14 dev: true - /@vue/reactivity@3.3.4: + /@vue/reactivity/3.3.4: resolution: {integrity: sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==} dependencies: '@vue/shared': 3.3.4 dev: true - /@vue/shared@3.3.4: + /@vue/shared/3.3.4: resolution: {integrity: sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==} dev: true - /@vue/typescript@1.8.5(typescript@5.1.6): - resolution: {integrity: sha512-domFBbNr3PEcjGBeB+cmgUM3cI6pJsJezguIUKZ1rphkfIkICyoMjCd3TitoP32yo2KABLiaXcGFzgFfQf6B3w==} + /@vue/typescript/1.8.8_typescript@5.1.6: + resolution: {integrity: sha512-jUnmMB6egu5wl342eaUH236v8tdcEPXXkPgj+eI/F6JwW/lb+yAU6U07ZbQ3MVabZRlupIlPESB7ajgAGixhow==} dependencies: - '@volar/typescript': 1.9.0 - '@vue/language-core': 1.8.5(typescript@5.1.6) + '@volar/typescript': 1.10.0 + '@vue/language-core': 1.8.8_typescript@5.1.6 transitivePeerDependencies: - typescript dev: true - /@xmldom/xmldom@0.8.9: - resolution: {integrity: sha512-4VSbbcMoxc4KLjb1gs96SRmi7w4h1SF+fCoiK0XaQX62buCc1G5d0DC5bJ9xJBNPDSVCmIrcl8BiYxzjrqaaJA==} + /@xmldom/xmldom/0.8.10: + resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==} engines: {node: '>=10.0.0'} dev: true - /@zxing/text-encoding@0.9.0: + /@zxing/text-encoding/0.9.0: resolution: {integrity: sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==} requiresBuild: true dev: true optional: true - /abab@2.0.6: + /abab/2.0.6: resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} dev: true - /acorn-jsx@5.3.2(acorn@8.10.0): + /acorn-jsx/5.3.2_acorn@8.10.0: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -1916,18 +1851,18 @@ packages: acorn: 8.10.0 dev: true - /acorn-walk@8.2.0: + /acorn-walk/8.2.0: resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} engines: {node: '>=0.4.0'} dev: true - /acorn@8.10.0: + /acorn/8.10.0: resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} engines: {node: '>=0.4.0'} hasBin: true dev: true - /agent-base@6.0.2: + /agent-base/6.0.2: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} dependencies: @@ -1936,7 +1871,7 @@ packages: - supports-color dev: true - /aggregate-error@4.0.1: + /aggregate-error/4.0.1: resolution: {integrity: sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==} engines: {node: '>=12'} dependencies: @@ -1944,7 +1879,7 @@ packages: indent-string: 5.0.0 dev: true - /ajv@6.12.6: + /ajv/6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} dependencies: fast-deep-equal: 3.1.3 @@ -1953,44 +1888,45 @@ packages: uri-js: 4.4.1 dev: true - /ansi-escapes@4.3.2: + /ansi-escapes/4.3.2: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} engines: {node: '>=8'} dependencies: type-fest: 0.21.3 dev: true - /ansi-regex@5.0.1: + /ansi-regex/5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - /ansi-regex@6.0.1: + /ansi-regex/6.0.1: resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} engines: {node: '>=12'} dev: true - /ansi-styles@3.2.1: + /ansi-styles/3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} engines: {node: '>=4'} dependencies: color-convert: 1.9.3 + dev: true - /ansi-styles@4.3.0: + /ansi-styles/4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} dependencies: color-convert: 2.0.1 - /ansi-styles@5.2.0: + /ansi-styles/5.2.0: resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} engines: {node: '>=10'} - /ansi-styles@6.2.1: + /ansi-styles/6.2.1: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} dev: true - /anymatch@3.1.3: + /anymatch/3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} dependencies: @@ -1998,133 +1934,159 @@ packages: picomatch: 2.3.1 dev: true - /argparse@1.0.10: + /argparse/1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} dependencies: sprintf-js: 1.0.3 dev: true - /argparse@2.0.1: + /argparse/2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} dev: true - /aria-query@5.1.3: + /aria-query/5.1.3: resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} dependencies: deep-equal: 2.2.2 + dev: true - /aria-query@5.3.0: + /aria-query/5.3.0: resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} dependencies: dequal: 2.0.3 - /array-buffer-byte-length@1.0.0: + /array-buffer-byte-length/1.0.0: resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} dependencies: call-bind: 1.0.2 is-array-buffer: 3.0.2 + dev: true - /array-includes@3.1.6: + /array-includes/3.1.6: resolution: {integrity: sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - es-abstract: 1.21.3 + es-abstract: 1.22.1 get-intrinsic: 1.2.1 is-string: 1.0.7 dev: true - /array-union@2.1.0: + /array-union/2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} dev: true - /array.prototype.flat@1.3.1: + /array.prototype.findlastindex/1.2.2: + resolution: {integrity: sha512-tb5thFFlUcp7NdNF6/MpDk/1r/4awWG1FIz3YqDf+/zJSTezBb+/5WViH41obXULHVpDzoiCLpJ/ZO9YbJMsdw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + es-shim-unscopables: 1.0.0 + get-intrinsic: 1.2.1 + dev: true + + /array.prototype.flat/1.3.1: resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - es-abstract: 1.21.3 + es-abstract: 1.22.1 es-shim-unscopables: 1.0.0 dev: true - /array.prototype.flatmap@1.3.1: + /array.prototype.flatmap/1.3.1: resolution: {integrity: sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - es-abstract: 1.21.3 + es-abstract: 1.22.1 es-shim-unscopables: 1.0.0 dev: true - /array.prototype.tosorted@1.1.1: + /array.prototype.tosorted/1.1.1: resolution: {integrity: sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==} dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - es-abstract: 1.21.3 + es-abstract: 1.22.1 es-shim-unscopables: 1.0.0 get-intrinsic: 1.2.1 dev: true - /arrify@1.0.1: + /arraybuffer.prototype.slice/1.0.1: + resolution: {integrity: sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + call-bind: 1.0.2 + define-properties: 1.2.0 + get-intrinsic: 1.2.1 + is-array-buffer: 3.0.2 + is-shared-array-buffer: 1.0.2 + dev: true + + /arrify/1.0.1: resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} engines: {node: '>=0.10.0'} dev: true - /arrify@3.0.0: + /arrify/3.0.0: resolution: {integrity: sha512-tLkvA81vQG/XqE2mjDkGQHoOINtMHtysSnemrmoGe6PydDPMRbVugqyk4A6V/WDWEfm3l+0d8anA9r8cv/5Jaw==} engines: {node: '>=12'} dev: true - /assertion-error@1.1.0: + /assertion-error/1.1.0: resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} dev: true - /ast-types-flow@0.0.7: + /ast-types-flow/0.0.7: resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==} dev: true - /asynckit@0.4.0: + /asynckit/0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} dev: true - /available-typed-arrays@1.0.5: + /available-typed-arrays/1.0.5: resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} engines: {node: '>= 0.4'} + dev: true - /axe-core@4.7.2: + /axe-core/4.7.2: resolution: {integrity: sha512-zIURGIS1E1Q4pcrMjp+nnEh+16G56eG/MUllJH8yEvw7asDo7Ac9uhC9KIH5jzpITueEZolfYglnCGIuSBz39g==} engines: {node: '>=4'} dev: true - /axobject-query@3.2.1: + /axobject-query/3.2.1: resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} dependencies: dequal: 2.0.3 dev: true - /balanced-match@1.0.2: + /balanced-match/1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} dev: true - /base64-js@1.5.1: + /base64-js/1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - /big-integer@1.6.51: + /big-integer/1.6.51: resolution: {integrity: sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==} engines: {node: '>=0.6'} dev: true - /binary-extensions@2.2.0: + /binary-extensions/2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} dev: true - /bl@4.1.0: + /bl/4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} dependencies: buffer: 5.7.1 @@ -2132,86 +2094,83 @@ packages: readable-stream: 3.6.2 dev: true - /bootstrap@4.6.2(jquery@3.7.0)(popper.js@1.16.1): + /bootstrap/4.6.2: resolution: {integrity: sha512-51Bbp/Uxr9aTuy6ca/8FbFloBUJZLHwnhTcnjIeRn2suQWsWzcuJhGjKDB5eppVte/8oCdOL3VuwxvZDUggwGQ==} peerDependencies: jquery: 1.9.1 - 3 popper.js: ^1.16.1 - dependencies: - jquery: 3.7.0 - popper.js: 1.16.1 dev: true - /bplist-parser@0.2.0: + /bplist-parser/0.2.0: resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==} engines: {node: '>= 5.10.0'} dependencies: big-integer: 1.6.51 dev: true - /brace-expansion@1.1.11: + /brace-expansion/1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 dev: true - /brace-expansion@2.0.1: + /brace-expansion/2.0.1: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} dependencies: balanced-match: 1.0.2 dev: true - /braces@3.0.2: + /braces/3.0.2: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} engines: {node: '>=8'} dependencies: fill-range: 7.0.1 dev: true - /browserslist@4.21.9: - resolution: {integrity: sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==} + /browserslist/4.21.10: + resolution: {integrity: sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001516 - electron-to-chromium: 1.4.461 + caniuse-lite: 1.0.30001517 + electron-to-chromium: 1.4.477 node-releases: 2.0.13 - update-browserslist-db: 1.0.11(browserslist@4.21.9) + update-browserslist-db: 1.0.11_browserslist@4.21.10 dev: true - /buffer-from@1.1.2: + /buffer-from/1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} dev: true - /buffer@5.7.1: + /buffer/5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} dependencies: base64-js: 1.5.1 ieee754: 1.2.1 dev: true - /builtins@5.0.1: + /builtins/5.0.1: resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} dependencies: semver: 7.5.4 dev: true - /bundle-name@3.0.0: + /bundle-name/3.0.0: resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==} engines: {node: '>=12'} dependencies: run-applescript: 5.0.0 dev: true - /busboy@1.6.0: + /busboy/1.6.0: resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} engines: {node: '>=10.16.0'} dependencies: streamsearch: 1.1.0 dev: false - /c8@7.14.0: + /c8/7.14.0: resolution: {integrity: sha512-i04rtkkcNcCf7zsQcSv/T9EbUn4RXQ6mropeMcjFOsQXQ0iGLAr/xT6TImQg4+U9hmNpN9XdvPkjUL1IzbgxJw==} engines: {node: '>=10.12.0'} hasBin: true @@ -2221,8 +2180,8 @@ packages: find-up: 5.0.0 foreground-child: 2.0.0 istanbul-lib-coverage: 3.2.0 - istanbul-lib-report: 3.0.0 - istanbul-reports: 3.1.5 + istanbul-lib-report: 3.0.1 + istanbul-reports: 3.1.6 rimraf: 3.0.2 test-exclude: 6.0.0 v8-to-istanbul: 9.1.0 @@ -2230,23 +2189,24 @@ packages: yargs-parser: 20.2.9 dev: true - /cac@6.7.14: + /cac/6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} dev: true - /call-bind@1.0.2: + /call-bind/1.0.2: resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} dependencies: function-bind: 1.1.1 get-intrinsic: 1.2.1 + dev: true - /callsites@3.1.0: + /callsites/3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} dev: true - /camelcase-keys@8.0.2: + /camelcase-keys/8.0.2: resolution: {integrity: sha512-qMKdlOfsjlezMqxkUGGMaWWs17i2HoL15tM+wtx8ld4nLrUwU58TFdvyGOz/piNP842KeO8yXvggVQSdQ828NA==} engines: {node: '>=14.16'} dependencies: @@ -2256,15 +2216,15 @@ packages: type-fest: 2.19.0 dev: true - /camelcase@7.0.1: + /camelcase/7.0.1: resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} engines: {node: '>=14.16'} dev: true - /caniuse-lite@1.0.30001516: - resolution: {integrity: sha512-Wmec9pCBY8CWbmI4HsjBeQLqDTqV91nFVR83DnZpYyRnPI1wePDsTg0bGLPC5VU/3OIZV1fmxEea1b+tFKe86g==} + /caniuse-lite/1.0.30001517: + resolution: {integrity: sha512-Vdhm5S11DaFVLlyiKu4hiUTkpZu+y1KA/rZZqVQfOD5YdDT/eQKlkt7NaE0WGOFgX32diqt9MiP9CAiFeRklaA==} - /chai@4.3.7: + /chai/4.3.7: resolution: {integrity: sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==} engines: {node: '>=4'} dependencies: @@ -2277,22 +2237,23 @@ packages: type-detect: 4.0.8 dev: true - /chalk@2.4.2: + /chalk/2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} dependencies: ansi-styles: 3.2.1 escape-string-regexp: 1.0.5 supports-color: 5.5.0 + dev: true - /chalk@3.0.0: + /chalk/3.0.0: resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} engines: {node: '>=8'} dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 - /chalk@4.1.1: + /chalk/4.1.1: resolution: {integrity: sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==} engines: {node: '>=10'} dependencies: @@ -2300,22 +2261,22 @@ packages: supports-color: 7.2.0 dev: true - /chalk@4.1.2: + /chalk/4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 - /chardet@0.7.0: + /chardet/0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} dev: true - /check-error@1.0.2: + /check-error/1.0.2: resolution: {integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==} dev: true - /chokidar@3.5.3: + /chokidar/3.5.3: resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} engines: {node: '>= 8.10.0'} dependencies: @@ -2330,35 +2291,35 @@ packages: fsevents: 2.3.2 dev: true - /clean-stack@4.2.0: + /clean-stack/4.2.0: resolution: {integrity: sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==} engines: {node: '>=12'} dependencies: escape-string-regexp: 5.0.0 dev: true - /cli-cursor@3.1.0: + /cli-cursor/3.1.0: resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} engines: {node: '>=8'} dependencies: restore-cursor: 3.1.0 dev: true - /cli-spinners@2.9.0: + /cli-spinners/2.9.0: resolution: {integrity: sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g==} engines: {node: '>=6'} dev: true - /cli-width@3.0.0: + /cli-width/3.0.0: resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} engines: {node: '>= 10'} dev: true - /client-only@0.0.1: + /client-only/0.0.1: resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} dev: false - /cliui@7.0.4: + /cliui/7.0.4: resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} dependencies: string-width: 4.2.3 @@ -2366,7 +2327,7 @@ packages: wrap-ansi: 7.0.0 dev: true - /cliui@8.0.1: + /cliui/8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} dependencies: @@ -2375,66 +2336,68 @@ packages: wrap-ansi: 7.0.0 dev: true - /clone@1.0.4: + /clone/1.0.4: resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} engines: {node: '>=0.8'} dev: true - /color-convert@1.9.3: + /color-convert/1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: color-name: 1.1.3 + dev: true - /color-convert@2.0.1: + /color-convert/2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} dependencies: color-name: 1.1.4 - /color-name@1.1.3: + /color-name/1.1.3: resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + dev: true - /color-name@1.1.4: + /color-name/1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - /colors@1.2.5: + /colors/1.2.5: resolution: {integrity: sha512-erNRLao/Y3Fv54qUa0LBB+//Uf3YwMUmdJinN20yMXm9zdKKqH9wt7R9IIVZ+K7ShzfpLV/Zg8+VyrBJYB4lpg==} engines: {node: '>=0.1.90'} dev: true - /combined-stream@1.0.8: + /combined-stream/1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} dependencies: delayed-stream: 1.0.0 dev: true - /commander@9.5.0: + /commander/9.5.0: resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} engines: {node: ^12.20.0 || >=14} requiresBuild: true dev: true optional: true - /comment-parser@1.3.1: + /comment-parser/1.3.1: resolution: {integrity: sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA==} engines: {node: '>= 12.0.0'} dev: true - /concat-map@0.0.1: + /concat-map/0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} dev: true - /convert-source-map@1.9.0: + /convert-source-map/1.9.0: resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} dev: true - /cookie@0.4.2: + /cookie/0.4.2: resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==} engines: {node: '>= 0.6'} dev: true - /copyfiles@2.4.1: + /copyfiles/2.4.1: resolution: {integrity: sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==} hasBin: true dependencies: @@ -2447,11 +2410,11 @@ packages: yargs: 16.2.0 dev: true - /core-util-is@1.0.3: + /core-util-is/1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} dev: true - /cp-file@10.0.0: + /cp-file/10.0.0: resolution: {integrity: sha512-vy2Vi1r2epK5WqxOLnskeKeZkdZvTKfFZQCplE3XWsP+SUJyd5XAUFC9lFgTjjXJF2GMne/UML14iEmkAaDfFg==} engines: {node: '>=14.16'} dependencies: @@ -2460,7 +2423,7 @@ packages: p-event: 5.0.1 dev: true - /cpy-cli@5.0.0: + /cpy-cli/5.0.0: resolution: {integrity: sha512-fb+DZYbL9KHc0BC4NYqGRrDIJZPXUmjjtqdw4XRRg8iV8dIfghUX/WiL+q4/B/KFTy3sK6jsbUhBaz0/Hxg7IQ==} engines: {node: '>=16'} hasBin: true @@ -2469,7 +2432,7 @@ packages: meow: 12.0.1 dev: true - /cpy@10.1.0: + /cpy/10.1.0: resolution: {integrity: sha512-VC2Gs20JcTyeQob6UViBLnyP0bYHkBh6EiKzot9vi2DmeGlFT9Wd7VG3NBrkNx/jYvFBeyDOMMHdHQhbtKLgHQ==} engines: {node: '>=16'} dependencies: @@ -2483,7 +2446,7 @@ packages: p-map: 6.0.0 dev: true - /cross-env@7.0.3: + /cross-env/7.0.3: resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} hasBin: true @@ -2491,7 +2454,7 @@ packages: cross-spawn: 7.0.3 dev: true - /cross-spawn@7.0.3: + /cross-spawn/7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} dependencies: @@ -2500,25 +2463,25 @@ packages: which: 2.0.2 dev: true - /css.escape@1.5.1: + /css.escape/1.5.1: resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} - /cssstyle@3.0.0: + /cssstyle/3.0.0: resolution: {integrity: sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg==} engines: {node: '>=14'} dependencies: rrweb-cssom: 0.6.0 dev: true - /csstype@3.1.2: + /csstype/3.1.2: resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} dev: true - /damerau-levenshtein@1.0.8: + /damerau-levenshtein/1.0.8: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} dev: true - /data-urls@4.0.0: + /data-urls/4.0.0: resolution: {integrity: sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g==} engines: {node: '>=14'} dependencies: @@ -2527,11 +2490,11 @@ packages: whatwg-url: 12.0.1 dev: true - /de-indent@1.0.2: + /de-indent/1.0.2: resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} dev: true - /debug@3.2.7: + /debug/3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: supports-color: '*' @@ -2542,7 +2505,7 @@ packages: ms: 2.1.3 dev: true - /debug@4.3.4: + /debug/4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} peerDependencies: @@ -2554,7 +2517,7 @@ packages: ms: 2.1.2 dev: true - /decamelize-keys@2.0.1: + /decamelize-keys/2.0.1: resolution: {integrity: sha512-nrNeSCtU2gV3Apcmn/EZ+aR20zKDuNDStV67jPiupokD3sOAFeMzslLMCFdKv1sPqzwoe5ZUhsSW9IAVgKSL/Q==} engines: {node: '>=14.16'} dependencies: @@ -2564,23 +2527,23 @@ packages: type-fest: 3.13.1 dev: true - /decamelize@6.0.0: + /decamelize/6.0.0: resolution: {integrity: sha512-Fv96DCsdOgB6mdGl67MT5JaTNKRzrzill5OH5s8bjYJXVlcXyPYGyPsUkWyGV5p1TXI5esYIYMMeDJL0hEIwaA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true - /decimal.js@10.4.3: + /decimal.js/10.4.3: resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} dev: true - /deep-eql@4.1.3: + /deep-eql/4.1.3: resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} engines: {node: '>=6'} dependencies: type-detect: 4.0.8 dev: true - /deep-equal@2.2.2: + /deep-equal/2.2.2: resolution: {integrity: sha512-xjVyBf0w5vH0I42jdAZzOKVldmPgSulmiyPRywoyq7HXC9qdgo17kxJE+rdnif5Tz6+pIrpJI8dCpMNLIGkUiA==} dependencies: array-buffer-byte-length: 1.0.0 @@ -2600,13 +2563,14 @@ packages: side-channel: 1.0.4 which-boxed-primitive: 1.0.2 which-collection: 1.0.1 - which-typed-array: 1.1.10 + which-typed-array: 1.1.11 + dev: true - /deep-is@0.1.4: + /deep-is/0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: true - /default-browser-id@3.0.0: + /default-browser-id/3.0.0: resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==} engines: {node: '>=12'} dependencies: @@ -2614,115 +2578,117 @@ packages: untildify: 4.0.0 dev: true - /default-browser@4.0.0: + /default-browser/4.0.0: resolution: {integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==} engines: {node: '>=14.16'} dependencies: bundle-name: 3.0.0 default-browser-id: 3.0.0 - execa: 7.1.1 + execa: 7.2.0 titleize: 3.0.0 dev: true - /defaults@1.0.4: + /defaults/1.0.4: resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} dependencies: clone: 1.0.4 dev: true - /define-lazy-prop@3.0.0: + /define-lazy-prop/3.0.0: resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} engines: {node: '>=12'} dev: true - /define-properties@1.2.0: + /define-properties/1.2.0: resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} engines: {node: '>= 0.4'} dependencies: has-property-descriptors: 1.0.0 object-keys: 1.1.1 + dev: true - /delayed-stream@1.0.0: + /delayed-stream/1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} dev: true - /dequal@2.0.3: + /dequal/2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} - /diff-sequences@27.5.1: + /diff-sequences/27.5.1: resolution: {integrity: sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - /diff-sequences@29.4.3: + /diff-sequences/29.4.3: resolution: {integrity: sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true - /dir-glob@3.0.1: + /dir-glob/3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} dependencies: path-type: 4.0.0 dev: true - /doctrine@2.1.0: + /doctrine/2.1.0: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} engines: {node: '>=0.10.0'} dependencies: esutils: 2.0.3 dev: true - /doctrine@3.0.0: + /doctrine/3.0.0: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} engines: {node: '>=6.0.0'} dependencies: esutils: 2.0.3 dev: true - /dom-accessibility-api@0.5.16: + /dom-accessibility-api/0.5.16: resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} - /domexception@4.0.0: + /domexception/4.0.0: resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} engines: {node: '>=12'} dependencies: webidl-conversions: 7.0.0 dev: true - /eastasianwidth@0.2.0: + /eastasianwidth/0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} dev: true - /electron-to-chromium@1.4.461: - resolution: {integrity: sha512-1JkvV2sgEGTDXjdsaQCeSwYYuhLRphRpc+g6EHTFELJXEiznLt3/0pZ9JuAOQ5p2rI3YxKTbivtvajirIfhrEQ==} + /electron-to-chromium/1.4.477: + resolution: {integrity: sha512-shUVy6Eawp33dFBFIoYbIwLHrX0IZ857AlH9ug2o4rvbWmpaCUdBpQ5Zw39HRrfzAFm4APJE9V+E2A/WB0YqJw==} dev: true - /emoji-regex@8.0.0: + /emoji-regex/8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: true - /emoji-regex@9.2.2: + /emoji-regex/9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} dev: true - /entities@4.5.0: + /entities/4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} dev: true - /error-ex@1.3.2: + /error-ex/1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} dependencies: is-arrayish: 0.2.1 dev: true - /es-abstract@1.21.3: - resolution: {integrity: sha512-ZU4miiY1j3sGPFLJ34VJXEqhpmL+HGByCinGHv4HC+Fxl2fI2Z4yR6tl0mORnDr6PA8eihWo4LmSWDbvhALckg==} + /es-abstract/1.22.1: + resolution: {integrity: sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==} engines: {node: '>= 0.4'} dependencies: array-buffer-byte-length: 1.0.0 + arraybuffer.prototype.slice: 1.0.1 available-typed-arrays: 1.0.5 call-bind: 1.0.2 es-set-tostringtag: 2.0.1 @@ -2743,23 +2709,26 @@ packages: is-regex: 1.1.4 is-shared-array-buffer: 1.0.2 is-string: 1.0.7 - is-typed-array: 1.1.10 + is-typed-array: 1.1.12 is-weakref: 1.0.2 object-inspect: 1.12.3 object-keys: 1.1.1 object.assign: 4.1.4 regexp.prototype.flags: 1.5.0 + safe-array-concat: 1.0.0 safe-regex-test: 1.0.0 string.prototype.trim: 1.2.7 string.prototype.trimend: 1.0.6 string.prototype.trimstart: 1.0.6 + typed-array-buffer: 1.0.0 + typed-array-byte-length: 1.0.0 typed-array-byte-offset: 1.0.0 typed-array-length: 1.0.4 unbox-primitive: 1.0.2 - which-typed-array: 1.1.10 + which-typed-array: 1.1.11 dev: true - /es-get-iterator@1.1.3: + /es-get-iterator/1.1.3: resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} dependencies: call-bind: 1.0.2 @@ -2771,8 +2740,9 @@ packages: is-string: 1.0.7 isarray: 2.0.5 stop-iteration-iterator: 1.0.0 + dev: true - /es-set-tostringtag@2.0.1: + /es-set-tostringtag/2.0.1: resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} engines: {node: '>= 0.4'} dependencies: @@ -2781,13 +2751,13 @@ packages: has-tostringtag: 1.0.0 dev: true - /es-shim-unscopables@1.0.0: + /es-shim-unscopables/1.0.0: resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} dependencies: has: 1.0.3 dev: true - /es-to-primitive@1.2.1: + /es-to-primitive/1.2.1: resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} engines: {node: '>= 0.4'} dependencies: @@ -2796,7 +2766,7 @@ packages: is-symbol: 1.0.4 dev: true - /esbuild@0.17.19: + /esbuild/0.17.19: resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==} engines: {node: '>=12'} hasBin: true @@ -2826,80 +2796,81 @@ packages: '@esbuild/win32-x64': 0.17.19 dev: true - /esbuild@0.18.13: - resolution: {integrity: sha512-vhg/WR/Oiu4oUIkVhmfcc23G6/zWuEQKFS+yiosSHe4aN6+DQRXIfeloYGibIfVhkr4wyfuVsGNLr+sQU1rWWw==} + /esbuild/0.18.17: + resolution: {integrity: sha512-1GJtYnUxsJreHYA0Y+iQz2UEykonY66HNWOb0yXYZi9/kNrORUEHVg87eQsCtqh59PEJ5YVZJO98JHznMJSWjg==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.18.13 - '@esbuild/android-arm64': 0.18.13 - '@esbuild/android-x64': 0.18.13 - '@esbuild/darwin-arm64': 0.18.13 - '@esbuild/darwin-x64': 0.18.13 - '@esbuild/freebsd-arm64': 0.18.13 - '@esbuild/freebsd-x64': 0.18.13 - '@esbuild/linux-arm': 0.18.13 - '@esbuild/linux-arm64': 0.18.13 - '@esbuild/linux-ia32': 0.18.13 - '@esbuild/linux-loong64': 0.18.13 - '@esbuild/linux-mips64el': 0.18.13 - '@esbuild/linux-ppc64': 0.18.13 - '@esbuild/linux-riscv64': 0.18.13 - '@esbuild/linux-s390x': 0.18.13 - '@esbuild/linux-x64': 0.18.13 - '@esbuild/netbsd-x64': 0.18.13 - '@esbuild/openbsd-x64': 0.18.13 - '@esbuild/sunos-x64': 0.18.13 - '@esbuild/win32-arm64': 0.18.13 - '@esbuild/win32-ia32': 0.18.13 - '@esbuild/win32-x64': 0.18.13 - dev: true - - /escalade@3.1.1: + '@esbuild/android-arm': 0.18.17 + '@esbuild/android-arm64': 0.18.17 + '@esbuild/android-x64': 0.18.17 + '@esbuild/darwin-arm64': 0.18.17 + '@esbuild/darwin-x64': 0.18.17 + '@esbuild/freebsd-arm64': 0.18.17 + '@esbuild/freebsd-x64': 0.18.17 + '@esbuild/linux-arm': 0.18.17 + '@esbuild/linux-arm64': 0.18.17 + '@esbuild/linux-ia32': 0.18.17 + '@esbuild/linux-loong64': 0.18.17 + '@esbuild/linux-mips64el': 0.18.17 + '@esbuild/linux-ppc64': 0.18.17 + '@esbuild/linux-riscv64': 0.18.17 + '@esbuild/linux-s390x': 0.18.17 + '@esbuild/linux-x64': 0.18.17 + '@esbuild/netbsd-x64': 0.18.17 + '@esbuild/openbsd-x64': 0.18.17 + '@esbuild/sunos-x64': 0.18.17 + '@esbuild/win32-arm64': 0.18.17 + '@esbuild/win32-ia32': 0.18.17 + '@esbuild/win32-x64': 0.18.17 + dev: true + + /escalade/3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} dev: true - /escape-string-regexp@1.0.5: + /escape-string-regexp/1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} + dev: true - /escape-string-regexp@4.0.0: + /escape-string-regexp/4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} dev: true - /escape-string-regexp@5.0.0: + /escape-string-regexp/5.0.0: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} dev: true - /eslint-config-prettier@8.8.0(eslint@8.45.0): - resolution: {integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==} + /eslint-config-prettier/8.9.0_eslint@8.46.0: + resolution: {integrity: sha512-+sbni7NfVXnOpnRadUA8S28AUlsZt9GjgFvABIRL9Hkn8KqNzOp+7Lw4QWtrwn20KzU3wqu1QoOj2m+7rKRqkA==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.45.0 + eslint: 8.46.0 dev: true - /eslint-define-config@1.21.0: - resolution: {integrity: sha512-OKfreV19Nw4yK4UX1CDkv5FXWdzeF+VSROsO28DVi1BrzqOD4a3U71LJqEhcupK65MoLXxARQ0pSg8bDvNPONA==} + /eslint-define-config/1.22.0: + resolution: {integrity: sha512-pckNJppFwC4AX+AGK63aa4sX5BluPwWwHES3fq/ER0jDR2U2czwlngg38B4EQ2ibvofufc+R5QfmdPKI6+74vQ==} engines: {node: ^16.13.0 || >=18.0.0, npm: '>=7.0.0', pnpm: '>= 8.6.0'} dev: true - /eslint-import-resolver-node@0.3.7: + /eslint-import-resolver-node/0.3.7: resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==} dependencies: debug: 3.2.7 is-core-module: 2.12.1 - resolve: 1.22.2 + resolve: 1.22.3 transitivePeerDependencies: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.0.0)(eslint-import-resolver-node@0.3.7)(eslint@8.45.0): + /eslint-module-utils/2.8.0_yld263lccdegtok2y3jirl2p4y: resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -2920,27 +2891,27 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.0.0(eslint@8.45.0)(typescript@5.1.6) + '@typescript-eslint/parser': 6.2.0_7haavtekmro7ptbnqmctjaodju debug: 3.2.7 - eslint: 8.45.0 + eslint: 8.46.0 eslint-import-resolver-node: 0.3.7 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-es-x@7.1.0(eslint@8.45.0): - resolution: {integrity: sha512-AhiaF31syh4CCQ+C5ccJA0VG6+kJK8+5mXKKE7Qs1xcPRg02CDPOj3mWlQxuWS/AYtg7kxrDNgW9YW3vc0Q+Mw==} + /eslint-plugin-es-x/7.2.0_eslint@8.46.0: + resolution: {integrity: sha512-9dvv5CcvNjSJPqnS5uZkqb3xmbeqRLnvXKK7iI5+oK/yTusyc46zbBZKENGsOfojm/mKfszyZb+wNqNPAPeGXA==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '>=8' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.45.0) - '@eslint-community/regexpp': 4.5.1 - eslint: 8.45.0 + '@eslint-community/eslint-utils': 4.4.0_eslint@8.46.0 + '@eslint-community/regexpp': 4.6.2 + eslint: 8.46.0 dev: true - /eslint-plugin-import@2.27.5(@typescript-eslint/parser@6.0.0)(eslint@8.45.0): - resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} + /eslint-plugin-import/2.28.0_ec5nhyiwpcpmef4grv6n2vqr5y: + resolution: {integrity: sha512-B8s/n+ZluN7sxj9eUf7/pRFERX0r5bnFA2dCaLHy2ZeaQEAz0k+ZZkFWRFHJAqxfxQDx6KLv9LeIki7cFdwW+Q==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -2949,21 +2920,24 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.0.0(eslint@8.45.0)(typescript@5.1.6) + '@typescript-eslint/parser': 6.2.0_7haavtekmro7ptbnqmctjaodju array-includes: 3.1.6 + array.prototype.findlastindex: 1.2.2 array.prototype.flat: 1.3.1 array.prototype.flatmap: 1.3.1 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.45.0 + eslint: 8.46.0 eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.0.0)(eslint-import-resolver-node@0.3.7)(eslint@8.45.0) + eslint-module-utils: 2.8.0_yld263lccdegtok2y3jirl2p4y has: 1.0.3 is-core-module: 2.12.1 is-glob: 4.0.3 minimatch: 3.1.2 + object.fromentries: 2.0.6 + object.groupby: 1.0.0 object.values: 1.1.6 - resolve: 1.22.2 + resolve: 1.22.3 semver: 6.3.1 tsconfig-paths: 3.14.2 transitivePeerDependencies: @@ -2972,7 +2946,7 @@ packages: - supports-color dev: true - /eslint-plugin-jsx-a11y@6.7.1(eslint@8.45.0): + /eslint-plugin-jsx-a11y/6.7.1_eslint@8.46.0: resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==} engines: {node: '>=4.0'} peerDependencies: @@ -2987,9 +2961,9 @@ packages: axobject-query: 3.2.1 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 8.45.0 + eslint: 8.46.0 has: 1.0.3 - jsx-ast-utils: 3.3.4 + jsx-ast-utils: 3.3.5 language-tags: 1.0.5 minimatch: 3.1.2 object.entries: 1.1.6 @@ -2997,16 +2971,16 @@ packages: semver: 6.3.1 dev: true - /eslint-plugin-n@16.0.1(eslint@8.45.0): + /eslint-plugin-n/16.0.1_eslint@8.46.0: resolution: {integrity: sha512-CDmHegJN0OF3L5cz5tATH84RPQm9kG+Yx39wIqIwPR2C0uhBGMWfbbOtetR83PQjjidA5aXMu+LEFw1jaSwvTA==} engines: {node: '>=16.0.0'} peerDependencies: eslint: '>=7.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.45.0) + '@eslint-community/eslint-utils': 4.4.0_eslint@8.46.0 builtins: 5.0.1 - eslint: 8.45.0 - eslint-plugin-es-x: 7.1.0(eslint@8.45.0) + eslint: 8.46.0 + eslint-plugin-es-x: 7.2.0_eslint@8.46.0 ignore: 5.2.4 is-core-module: 2.12.1 minimatch: 3.1.2 @@ -3014,12 +2988,12 @@ packages: semver: 7.5.4 dev: true - /eslint-plugin-no-only-tests@3.1.0: + /eslint-plugin-no-only-tests/3.1.0: resolution: {integrity: sha512-Lf4YW/bL6Un1R6A76pRZyE1dl1vr31G/ev8UzIc/geCgFWyrKil8hVjYqWVKGB/UIGmb6Slzs9T0wNezdSVegw==} engines: {node: '>=5.0.0'} dev: true - /eslint-plugin-prettier@5.0.0(eslint-config-prettier@8.8.0)(eslint@8.45.0)(prettier@3.0.0): + /eslint-plugin-prettier/5.0.0_zqxxaukdltekzrbl7w2kyx7tna: resolution: {integrity: sha512-AgaZCVuYDXHUGxj/ZGu1u8H8CYgDY3iG6w5kUFw4AzMVXzB7VvbKgYR4nATIN+OvUrghMbiDLeimVjVY5ilq3w==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -3033,24 +3007,24 @@ packages: eslint-config-prettier: optional: true dependencies: - eslint: 8.45.0 - eslint-config-prettier: 8.8.0(eslint@8.45.0) + eslint: 8.46.0 + eslint-config-prettier: 8.9.0_eslint@8.46.0 prettier: 3.0.0 prettier-linter-helpers: 1.0.0 synckit: 0.8.5 dev: true - /eslint-plugin-react-hooks@4.6.0(eslint@8.45.0): + /eslint-plugin-react-hooks/4.6.0_eslint@8.46.0: resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: - eslint: 8.45.0 + eslint: 8.46.0 dev: true - /eslint-plugin-react@7.32.2(eslint@8.45.0): - resolution: {integrity: sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==} + /eslint-plugin-react/7.33.1_eslint@8.46.0: + resolution: {integrity: sha512-L093k0WAMvr6VhNwReB8VgOq5s2LesZmrpPdKz/kZElQDzqS7G7+DnKoqT+w4JwuiGeAhAvHO0fvy0Eyk4ejDA==} engines: {node: '>=4'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 @@ -3059,9 +3033,9 @@ packages: array.prototype.flatmap: 1.3.1 array.prototype.tosorted: 1.1.1 doctrine: 2.1.0 - eslint: 8.45.0 + eslint: 8.46.0 estraverse: 5.3.0 - jsx-ast-utils: 3.3.4 + jsx-ast-utils: 3.3.5 minimatch: 3.1.2 object.entries: 1.1.6 object.fromentries: 2.0.6 @@ -3073,16 +3047,16 @@ packages: string.prototype.matchall: 4.0.8 dev: true - /eslint-plugin-regexp@1.15.0(eslint@8.45.0): + /eslint-plugin-regexp/1.15.0_eslint@8.46.0: resolution: {integrity: sha512-YEtQPfdudafU7RBIFci81R/Q1yErm0mVh3BkGnXD2Dk8DLwTFdc2ITYH1wCnHKim2gnHfPFgrkh+b2ozyyU7ag==} engines: {node: ^12 || >=14} peerDependencies: eslint: '>=6.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.45.0) - '@eslint-community/regexpp': 4.5.1 + '@eslint-community/eslint-utils': 4.4.0_eslint@8.46.0 + '@eslint-community/regexpp': 4.6.2 comment-parser: 1.3.1 - eslint: 8.45.0 + eslint: 8.46.0 grapheme-splitter: 1.0.4 jsdoctypeparser: 9.0.0 refa: 0.11.0 @@ -3090,28 +3064,28 @@ packages: scslre: 0.2.0 dev: true - /eslint-plugin-simple-import-sort@10.0.0(eslint@8.45.0): + /eslint-plugin-simple-import-sort/10.0.0_eslint@8.46.0: resolution: {integrity: sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw==} peerDependencies: eslint: '>=5.0.0' dependencies: - eslint: 8.45.0 + eslint: 8.46.0 dev: true - /eslint-plugin-testing-library@5.11.0(eslint@8.45.0)(typescript@5.1.6): + /eslint-plugin-testing-library/5.11.0_7haavtekmro7ptbnqmctjaodju: resolution: {integrity: sha512-ELY7Gefo+61OfXKlQeXNIDVVLPcvKTeiQOoMZG9TeuWa7Ln4dUNRv8JdRWBQI9Mbb427XGlVB1aa1QPZxBJM8Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0, npm: '>=6'} peerDependencies: eslint: ^7.5.0 || ^8.0.0 dependencies: - '@typescript-eslint/utils': 5.62.0(eslint@8.45.0)(typescript@5.1.6) - eslint: 8.45.0 + '@typescript-eslint/utils': 5.62.0_7haavtekmro7ptbnqmctjaodju + eslint: 8.46.0 transitivePeerDependencies: - supports-color - typescript dev: true - /eslint-scope@5.1.1: + /eslint-scope/5.1.1: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'} dependencies: @@ -3119,28 +3093,28 @@ packages: estraverse: 4.3.0 dev: true - /eslint-scope@7.2.1: - resolution: {integrity: sha512-CvefSOsDdaYYvxChovdrPo/ZGt8d5lrJWleAc1diXRKhHGiTYEI26cvo8Kle/wGnsizoCJjK73FMg1/IkIwiNA==} + /eslint-scope/7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 dev: true - /eslint-visitor-keys@3.4.1: - resolution: {integrity: sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==} + /eslint-visitor-keys/3.4.2: + resolution: {integrity: sha512-8drBzUEyZ2llkpCA67iYrgEssKDUu68V8ChqqOfFupIaG/LCVPUT+CoGJpT77zJprs4T/W7p07LP7zAIMuweVw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.45.0: - resolution: {integrity: sha512-pd8KSxiQpdYRfYa9Wufvdoct3ZPQQuVuU5O6scNgMuOMYuxvH0IGaYK0wUFjo4UYYQQCUndlXiMbnxopwvvTiw==} + /eslint/8.46.0: + resolution: {integrity: sha512-cIO74PvbW0qU8e0mIvk5IV3ToWdCq5FYG6gWPHHkx6gNdjlbAYvtfHmlCMXxjcoVaIdwy/IAt3+mDkZkfvb2Dg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.45.0) - '@eslint-community/regexpp': 4.5.1 - '@eslint/eslintrc': 2.1.0 - '@eslint/js': 8.44.0 + '@eslint-community/eslint-utils': 4.4.0_eslint@8.46.0 + '@eslint-community/regexpp': 4.6.2 + '@eslint/eslintrc': 2.1.1 + '@eslint/js': 8.46.0 '@humanwhocodes/config-array': 0.11.10 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 @@ -3150,8 +3124,8 @@ packages: debug: 4.3.4 doctrine: 3.0.0 escape-string-regexp: 4.0.0 - eslint-scope: 7.2.1 - eslint-visitor-keys: 3.4.1 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.2 espree: 9.6.1 esquery: 1.5.0 esutils: 2.0.3 @@ -3178,54 +3152,54 @@ packages: - supports-color dev: true - /espree@9.6.1: + /espree/9.6.1: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: acorn: 8.10.0 - acorn-jsx: 5.3.2(acorn@8.10.0) - eslint-visitor-keys: 3.4.1 + acorn-jsx: 5.3.2_acorn@8.10.0 + eslint-visitor-keys: 3.4.2 dev: true - /esquery@1.5.0: + /esquery/1.5.0: resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} engines: {node: '>=0.10'} dependencies: estraverse: 5.3.0 dev: true - /esrecurse@4.3.0: + /esrecurse/4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} dependencies: estraverse: 5.3.0 dev: true - /estraverse@4.3.0: + /estraverse/4.3.0: resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} engines: {node: '>=4.0'} dev: true - /estraverse@5.3.0: + /estraverse/5.3.0: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} dev: true - /estree-walker@2.0.2: + /estree-walker/2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} dev: true - /esutils@2.0.3: + /esutils/2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} dev: true - /events@3.3.0: + /events/3.3.0: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} dev: true - /execa@5.1.1: + /execa/5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} dependencies: @@ -3240,8 +3214,8 @@ packages: strip-final-newline: 2.0.0 dev: true - /execa@7.1.1: - resolution: {integrity: sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==} + /execa/7.2.0: + resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} dependencies: cross-spawn: 7.0.3 @@ -3255,7 +3229,7 @@ packages: strip-final-newline: 3.0.0 dev: true - /external-editor@3.1.0: + /external-editor/3.1.0: resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} engines: {node: '>=4'} dependencies: @@ -3264,16 +3238,16 @@ packages: tmp: 0.0.33 dev: true - /fast-deep-equal@3.1.3: + /fast-deep-equal/3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: true - /fast-diff@1.3.0: + /fast-diff/1.3.0: resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} dev: true - /fast-glob@3.3.0: - resolution: {integrity: sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==} + /fast-glob/3.3.1: + resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} engines: {node: '>=8.6.0'} dependencies: '@nodelib/fs.stat': 2.0.5 @@ -3283,42 +3257,42 @@ packages: micromatch: 4.0.5 dev: true - /fast-json-stable-stringify@2.1.0: + /fast-json-stable-stringify/2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} dev: true - /fast-levenshtein@2.0.6: + /fast-levenshtein/2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} dev: true - /fastq@1.15.0: + /fastq/1.15.0: resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} dependencies: reusify: 1.0.4 dev: true - /figures@3.2.0: + /figures/3.2.0: resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} engines: {node: '>=8'} dependencies: escape-string-regexp: 1.0.5 dev: true - /file-entry-cache@6.0.1: + /file-entry-cache/6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: flat-cache: 3.0.4 dev: true - /fill-range@7.0.1: + /fill-range/7.0.1: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} engines: {node: '>=8'} dependencies: to-regex-range: 5.0.1 dev: true - /find-up@5.0.0: + /find-up/5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} dependencies: @@ -3326,7 +3300,7 @@ packages: path-exists: 4.0.0 dev: true - /find-up@6.3.0: + /find-up/6.3.0: resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: @@ -3334,7 +3308,7 @@ packages: path-exists: 5.0.0 dev: true - /flat-cache@3.0.4: + /flat-cache/3.0.4: resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: @@ -3342,16 +3316,17 @@ packages: rimraf: 3.0.2 dev: true - /flatted@3.2.7: + /flatted/3.2.7: resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} dev: true - /for-each@0.3.3: + /for-each/0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} dependencies: is-callable: 1.2.7 + dev: true - /foreground-child@2.0.0: + /foreground-child/2.0.0: resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==} engines: {node: '>=8.0.0'} dependencies: @@ -3359,15 +3334,15 @@ packages: signal-exit: 3.0.7 dev: true - /foreground-child@3.1.1: + /foreground-child/3.1.1: resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} engines: {node: '>=14'} dependencies: cross-spawn: 7.0.3 - signal-exit: 4.0.2 + signal-exit: 4.1.0 dev: true - /form-data@4.0.0: + /form-data/4.0.0: resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} engines: {node: '>= 6'} dependencies: @@ -3376,7 +3351,7 @@ packages: mime-types: 2.1.35 dev: true - /fs-extra@7.0.1: + /fs-extra/7.0.1: resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} engines: {node: '>=6 <7 || >=8'} dependencies: @@ -3385,11 +3360,11 @@ packages: universalify: 0.1.2 dev: true - /fs.realpath@1.0.0: + /fs.realpath/1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} dev: true - /fsevents@2.3.2: + /fsevents/2.3.2: resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] @@ -3397,50 +3372,53 @@ packages: dev: true optional: true - /function-bind@1.1.1: + /function-bind/1.1.1: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + dev: true - /function.prototype.name@1.1.5: + /function.prototype.name/1.1.5: resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - es-abstract: 1.21.3 + es-abstract: 1.22.1 functions-have-names: 1.2.3 dev: true - /functions-have-names@1.2.3: + /functions-have-names/1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + dev: true - /gensync@1.0.0-beta.2: + /gensync/1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} dev: true - /get-caller-file@2.0.5: + /get-caller-file/2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} dev: true - /get-func-name@2.0.0: + /get-func-name/2.0.0: resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==} dev: true - /get-intrinsic@1.2.1: + /get-intrinsic/1.2.1: resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} dependencies: function-bind: 1.1.1 has: 1.0.3 has-proto: 1.0.1 has-symbols: 1.0.3 + dev: true - /get-stream@6.0.1: + /get-stream/6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} dev: true - /get-symbol-description@1.0.0: + /get-symbol-description/1.0.0: resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} engines: {node: '>= 0.4'} dependencies: @@ -3448,43 +3426,43 @@ packages: get-intrinsic: 1.2.1 dev: true - /get-tsconfig@4.6.2: + /get-tsconfig/4.6.2: resolution: {integrity: sha512-E5XrT4CbbXcXWy+1jChlZmrmCwd5KGx502kDCXJJ7y898TtWW9FwoG5HfOLVRKmlmDGkWN2HM9Ho+/Y8F0sJDg==} dependencies: resolve-pkg-maps: 1.0.0 dev: true - /glob-parent@5.1.2: + /glob-parent/5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} dependencies: is-glob: 4.0.3 dev: true - /glob-parent@6.0.2: + /glob-parent/6.0.2: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} dependencies: is-glob: 4.0.3 dev: true - /glob-to-regexp@0.4.1: + /glob-to-regexp/0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} dev: false - /glob@10.3.3: + /glob/10.3.3: resolution: {integrity: sha512-92vPiMb/iqpmEgsOoIDvTjc50wf9CCCvMzsi6W0JLPeUKE8TWP1a73PgqSrqy7iAZxaSD1YdzU7QZR5LF51MJw==} engines: {node: '>=16 || 14 >=14.17'} hasBin: true dependencies: foreground-child: 3.1.1 - jackspeak: 2.2.1 + jackspeak: 2.2.2 minimatch: 9.0.3 minipass: 7.0.2 path-scurry: 1.10.1 dev: true - /glob@7.2.3: + /glob/7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} dependencies: fs.realpath: 1.0.0 @@ -3495,145 +3473,153 @@ packages: path-is-absolute: 1.0.1 dev: true - /globals@11.12.0: + /globals/11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} dev: true - /globals@13.20.0: + /globals/13.20.0: resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} engines: {node: '>=8'} dependencies: type-fest: 0.20.2 dev: true - /globalthis@1.0.3: + /globalthis/1.0.3: resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} engines: {node: '>= 0.4'} dependencies: define-properties: 1.2.0 dev: true - /globby@11.1.0: + /globby/11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.3.0 + fast-glob: 3.3.1 ignore: 5.2.4 merge2: 1.4.1 slash: 3.0.0 dev: true - /globby@13.2.2: + /globby/13.2.2: resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: dir-glob: 3.0.1 - fast-glob: 3.3.0 + fast-glob: 3.3.1 ignore: 5.2.4 merge2: 1.4.1 slash: 4.0.0 dev: true - /gopd@1.0.1: + /gopd/1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} dependencies: get-intrinsic: 1.2.1 + dev: true - /graceful-fs@4.2.11: + /graceful-fs/4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - /grapheme-splitter@1.0.4: + /grapheme-splitter/1.0.4: resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} dev: true - /graphemer@1.4.0: + /graphemer/1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} dev: true - /graphql@16.7.1: + /graphql/16.7.1: resolution: {integrity: sha512-DRYR9tf+UGU0KOsMcKAlXeFfX89UiiIZ0dRU3mR0yJfu6OjZqUcp68NnFLnqQU5RexygFoDy1EW+ccOYcPfmHg==} engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} dev: true - /hard-rejection@2.1.0: + /hard-rejection/2.1.0: resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} engines: {node: '>=6'} dev: true - /has-bigints@1.0.2: + /has-bigints/1.0.2: resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + dev: true - /has-flag@3.0.0: + /has-flag/3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} + dev: true - /has-flag@4.0.0: + /has-flag/4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - /has-property-descriptors@1.0.0: + /has-property-descriptors/1.0.0: resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} dependencies: get-intrinsic: 1.2.1 + dev: true - /has-proto@1.0.1: + /has-proto/1.0.1: resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} engines: {node: '>= 0.4'} + dev: true - /has-symbols@1.0.3: + /has-symbols/1.0.3: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} + dev: true - /has-tostringtag@1.0.0: + /has-tostringtag/1.0.0: resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} engines: {node: '>= 0.4'} dependencies: has-symbols: 1.0.3 + dev: true - /has@1.0.3: + /has/1.0.3: resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} engines: {node: '>= 0.4.0'} dependencies: function-bind: 1.1.1 + dev: true - /he@1.2.0: + /he/1.2.0: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true dev: true - /headers-polyfill@3.1.2: + /headers-polyfill/3.1.2: resolution: {integrity: sha512-tWCK4biJ6hcLqTviLXVR9DTRfYGQMXEIUj3gwJ2rZ5wO/at3XtkI4g8mCvFdUF9l1KMBNCfmNAdnahm1cgavQA==} dev: true - /hosted-git-info@4.1.0: + /hosted-git-info/4.1.0: resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} engines: {node: '>=10'} dependencies: lru-cache: 6.0.0 dev: true - /hosted-git-info@6.1.1: + /hosted-git-info/6.1.1: resolution: {integrity: sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: lru-cache: 7.18.3 dev: true - /html-encoding-sniffer@3.0.0: + /html-encoding-sniffer/3.0.0: resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} engines: {node: '>=12'} dependencies: whatwg-encoding: 2.0.0 dev: true - /html-escaper@2.0.2: + /html-escaper/2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} dev: true - /http-proxy-agent@5.0.0: + /http-proxy-agent/5.0.0: resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} engines: {node: '>= 6'} dependencies: @@ -3644,7 +3630,7 @@ packages: - supports-color dev: true - /https-proxy-agent@5.0.1: + /https-proxy-agent/5.0.1: resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} engines: {node: '>= 6'} dependencies: @@ -3654,40 +3640,40 @@ packages: - supports-color dev: true - /human-signals@2.1.0: + /human-signals/2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} dev: true - /human-signals@4.3.1: + /human-signals/4.3.1: resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} engines: {node: '>=14.18.0'} dev: true - /iconv-lite@0.4.24: + /iconv-lite/0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} dependencies: safer-buffer: 2.1.2 dev: true - /iconv-lite@0.6.3: + /iconv-lite/0.6.3: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} dependencies: safer-buffer: 2.1.2 dev: true - /ieee754@1.2.1: + /ieee754/1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} dev: true - /ignore@5.2.4: + /ignore/5.2.4: resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} engines: {node: '>= 4'} dev: true - /import-fresh@3.3.0: + /import-fresh/3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} dependencies: @@ -3695,42 +3681,42 @@ packages: resolve-from: 4.0.0 dev: true - /import-lazy@4.0.0: + /import-lazy/4.0.0: resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} engines: {node: '>=8'} dev: true - /imurmurhash@0.1.4: + /imurmurhash/0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} dev: true - /indent-string@4.0.0: + /indent-string/4.0.0: resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} engines: {node: '>=8'} - /indent-string@5.0.0: + /indent-string/5.0.0: resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} engines: {node: '>=12'} dev: true - /inflight@1.0.6: + /inflight/1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} dependencies: once: 1.4.0 wrappy: 1.0.2 dev: true - /inherits@2.0.4: + /inherits/2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} dev: true - /inquirer@8.2.5: + /inquirer/8.2.5: resolution: {integrity: sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==} engines: {node: '>=12.0.0'} dependencies: ansi-escapes: 4.3.2 - chalk: 4.1.2 + chalk: 4.1.1 cli-cursor: 3.1.0 cli-width: 3.0.0 external-editor: 3.1.0 @@ -3746,104 +3732,111 @@ packages: wrap-ansi: 7.0.0 dev: true - /internal-slot@1.0.5: + /internal-slot/1.0.5: resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} engines: {node: '>= 0.4'} dependencies: get-intrinsic: 1.2.1 has: 1.0.3 side-channel: 1.0.4 + dev: true - /is-arguments@1.1.1: + /is-arguments/1.1.1: resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 has-tostringtag: 1.0.0 + dev: true - /is-array-buffer@3.0.2: + /is-array-buffer/3.0.2: resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} dependencies: call-bind: 1.0.2 get-intrinsic: 1.2.1 - is-typed-array: 1.1.10 + is-typed-array: 1.1.12 + dev: true - /is-arrayish@0.2.1: + /is-arrayish/0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} dev: true - /is-bigint@1.0.4: + /is-bigint/1.0.4: resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} dependencies: has-bigints: 1.0.2 + dev: true - /is-binary-path@2.1.0: + /is-binary-path/2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} dependencies: binary-extensions: 2.2.0 dev: true - /is-boolean-object@1.1.2: + /is-boolean-object/1.1.2: resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 has-tostringtag: 1.0.0 + dev: true - /is-callable@1.2.7: + /is-callable/1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} + dev: true - /is-core-module@2.12.1: + /is-core-module/2.12.1: resolution: {integrity: sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==} dependencies: has: 1.0.3 dev: true - /is-date-object@1.0.5: + /is-date-object/1.0.5: resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.0 + dev: true - /is-docker@2.2.1: + /is-docker/2.2.1: resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} engines: {node: '>=8'} hasBin: true dev: true - /is-docker@3.0.0: + /is-docker/3.0.0: resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} hasBin: true dev: true - /is-extglob@2.1.1: + /is-extglob/2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} dev: true - /is-fullwidth-code-point@3.0.0: + /is-fullwidth-code-point/3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} dev: true - /is-generator-function@1.0.10: + /is-generator-function/1.0.10: resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.0 dev: true - /is-glob@4.0.3: + /is-glob/4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} dependencies: is-extglob: 2.1.1 dev: true - /is-inside-container@1.0.0: + /is-inside-container/1.0.0: resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} engines: {node: '>=14.16'} hasBin: true @@ -3851,152 +3844,159 @@ packages: is-docker: 3.0.0 dev: true - /is-interactive@1.0.0: + /is-interactive/1.0.0: resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} engines: {node: '>=8'} dev: true - /is-map@2.0.2: + /is-map/2.0.2: resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} + dev: true - /is-negative-zero@2.0.2: + /is-negative-zero/2.0.2: resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} engines: {node: '>= 0.4'} dev: true - /is-node-process@1.2.0: + /is-node-process/1.2.0: resolution: {integrity: sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==} dev: true - /is-number-object@1.0.7: + /is-number-object/1.0.7: resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.0 + dev: true - /is-number@7.0.0: + /is-number/7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} dev: true - /is-path-inside@3.0.3: + /is-path-inside/3.0.3: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} engines: {node: '>=8'} dev: true - /is-plain-obj@1.1.0: + /is-plain-obj/1.1.0: resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} engines: {node: '>=0.10.0'} dev: true - /is-potential-custom-element-name@1.0.1: + /is-potential-custom-element-name/1.0.1: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} dev: true - /is-regex@1.1.4: + /is-regex/1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 has-tostringtag: 1.0.0 + dev: true - /is-set@2.0.2: + /is-set/2.0.2: resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} + dev: true - /is-shared-array-buffer@1.0.2: + /is-shared-array-buffer/1.0.2: resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} dependencies: call-bind: 1.0.2 + dev: true - /is-stream@2.0.1: + /is-stream/2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} dev: true - /is-stream@3.0.0: + /is-stream/3.0.0: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true - /is-string@1.0.7: + /is-string/1.0.7: resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.0 + dev: true - /is-symbol@1.0.4: + /is-symbol/1.0.4: resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} engines: {node: '>= 0.4'} dependencies: has-symbols: 1.0.3 + dev: true - /is-typed-array@1.1.10: - resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==} + /is-typed-array/1.1.12: + resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} engines: {node: '>= 0.4'} dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.2 - for-each: 0.3.3 - gopd: 1.0.1 - has-tostringtag: 1.0.0 + which-typed-array: 1.1.11 + dev: true - /is-unicode-supported@0.1.0: + /is-unicode-supported/0.1.0: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} dev: true - /is-weakmap@2.0.1: + /is-weakmap/2.0.1: resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} + dev: true - /is-weakref@1.0.2: + /is-weakref/1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} dependencies: call-bind: 1.0.2 dev: true - /is-weakset@2.0.2: + /is-weakset/2.0.2: resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} dependencies: call-bind: 1.0.2 get-intrinsic: 1.2.1 + dev: true - /is-wsl@2.2.0: + /is-wsl/2.2.0: resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} engines: {node: '>=8'} dependencies: is-docker: 2.2.1 dev: true - /isarray@0.0.1: + /isarray/0.0.1: resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} dev: true - /isarray@1.0.0: + /isarray/1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} dev: true - /isarray@2.0.5: + /isarray/2.0.5: resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + dev: true - /isexe@2.0.0: + /isexe/2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} dev: true - /istanbul-lib-coverage@3.2.0: + /istanbul-lib-coverage/3.2.0: resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==} engines: {node: '>=8'} dev: true - /istanbul-lib-report@3.0.0: - resolution: {integrity: sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==} - engines: {node: '>=8'} + /istanbul-lib-report/3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} dependencies: istanbul-lib-coverage: 3.2.0 - make-dir: 3.1.0 + make-dir: 4.0.0 supports-color: 7.2.0 dev: true - /istanbul-lib-source-maps@4.0.1: + /istanbul-lib-source-maps/4.0.1: resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} engines: {node: '>=10'} dependencies: @@ -4007,16 +4007,16 @@ packages: - supports-color dev: true - /istanbul-reports@3.1.5: - resolution: {integrity: sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==} + /istanbul-reports/3.1.6: + resolution: {integrity: sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==} engines: {node: '>=8'} dependencies: html-escaper: 2.0.2 - istanbul-lib-report: 3.0.0 + istanbul-lib-report: 3.0.1 dev: true - /jackspeak@2.2.1: - resolution: {integrity: sha512-MXbxovZ/Pm42f6cDIDkl3xpwv1AGwObKwfmjs2nQePiy85tP3fatofl3FC1aBsOtP/6fq5SbtgHwWcMsLP+bDw==} + /jackspeak/2.2.2: + resolution: {integrity: sha512-mgNtVv4vUuaKA97yxUHoA3+FkuhtxkjdXEWOyB/N76fjy0FjezEt34oy3epBtvCvS+7DyKwqCFWx/oJLV5+kCg==} engines: {node: '>=14'} dependencies: '@isaacs/cliui': 8.0.2 @@ -4024,7 +4024,7 @@ packages: '@pkgjs/parseargs': 0.11.0 dev: true - /jest-diff@27.5.1: + /jest-diff/27.5.1: resolution: {integrity: sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: @@ -4033,11 +4033,11 @@ packages: jest-get-type: 27.5.1 pretty-format: 27.5.1 - /jest-get-type@27.5.1: + /jest-get-type/27.5.1: resolution: {integrity: sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - /jest-matcher-utils@27.5.1: + /jest-matcher-utils/27.5.1: resolution: {integrity: sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: @@ -4046,36 +4046,32 @@ packages: jest-get-type: 27.5.1 pretty-format: 27.5.1 - /jju@1.4.0: + /jju/1.4.0: resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} dev: true - /jquery@3.7.0: - resolution: {integrity: sha512-umpJ0/k8X0MvD1ds0P9SfowREz2LenHsQaxSohMZ5OMNEU2r0tf8pdeEFTHMFxWVxKNyU9rTtK3CWzUCTKJUeQ==} - dev: true - - /js-levenshtein@1.1.6: + /js-levenshtein/1.1.6: resolution: {integrity: sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==} engines: {node: '>=0.10.0'} dev: true - /js-tokens@4.0.0: + /js-tokens/4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - /js-yaml@4.1.0: + /js-yaml/4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true dependencies: argparse: 2.0.1 dev: true - /jsdoctypeparser@9.0.0: + /jsdoctypeparser/9.0.0: resolution: {integrity: sha512-jrTA2jJIL6/DAEILBEh2/w9QxCuwmvNXIry39Ay/HVfhE3o2yVV0U44blYkqdHA/OKloJEqvJy0xU+GSdE2SIw==} engines: {node: '>=10'} hasBin: true dev: true - /jsdom@22.1.0: + /jsdom/22.1.0: resolution: {integrity: sha512-/9AVW7xNbsBv6GfWho4TTNjEo9fe6Zhf9O7s0Fhhr3u+awPwAJMKwAMXnkk5vBxflqLW9hTHX/0cs+P3gW+cQw==} engines: {node: '>=16'} peerDependencies: @@ -4113,49 +4109,49 @@ packages: - utf-8-validate dev: true - /jsesc@2.5.2: + /jsesc/2.5.2: resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} engines: {node: '>=4'} hasBin: true dev: true - /json-parse-even-better-errors@2.3.1: + /json-parse-even-better-errors/2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} dev: true - /json-schema-traverse@0.4.1: + /json-schema-traverse/0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} dev: true - /json-stable-stringify-without-jsonify@1.0.1: + /json-stable-stringify-without-jsonify/1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} dev: true - /json5@1.0.2: + /json5/1.0.2: resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} hasBin: true dependencies: minimist: 1.2.8 dev: true - /json5@2.2.3: + /json5/2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} hasBin: true dev: true - /jsonc-parser@3.2.0: + /jsonc-parser/3.2.0: resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} dev: true - /jsonfile@4.0.0: + /jsonfile/4.0.0: resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} optionalDependencies: graceful-fs: 4.2.11 dev: true - /jsx-ast-utils@3.3.4: - resolution: {integrity: sha512-fX2TVdCViod6HwKEtSWGHs57oFhVfCMwieb9PuRDgjDPh5XeqJiHFFFJCHxU5cnTc3Bu/GRL+kPiFmw8XWOfKw==} + /jsx-ast-utils/3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} engines: {node: '>=4.0'} dependencies: array-includes: 3.1.6 @@ -4164,31 +4160,31 @@ packages: object.values: 1.1.6 dev: true - /junk@4.0.1: + /junk/4.0.1: resolution: {integrity: sha512-Qush0uP+G8ZScpGMZvHUiRfI0YBWuB3gVBYlI0v0vvOJt5FLicco+IkP0a50LqTTQhmts/m6tP5SWE+USyIvcQ==} engines: {node: '>=12.20'} dev: true - /kind-of@6.0.3: + /kind-of/6.0.3: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} dev: true - /kolorist@1.8.0: + /kolorist/1.8.0: resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} dev: true - /language-subtag-registry@0.3.22: + /language-subtag-registry/0.3.22: resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} dev: true - /language-tags@1.0.5: + /language-tags/1.0.5: resolution: {integrity: sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==} dependencies: language-subtag-registry: 0.3.22 dev: true - /levn@0.4.1: + /levn/0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} dependencies: @@ -4196,111 +4192,112 @@ packages: type-check: 0.4.0 dev: true - /lines-and-columns@1.2.4: + /lines-and-columns/1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} dev: true - /local-pkg@0.4.3: + /local-pkg/0.4.3: resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} engines: {node: '>=14'} dev: true - /locate-path@6.0.0: + /locate-path/6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} dependencies: p-locate: 5.0.0 dev: true - /locate-path@7.2.0: + /locate-path/7.2.0: resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: p-locate: 6.0.0 dev: true - /lodash.get@4.4.2: + /lodash.get/4.4.2: resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} dev: true - /lodash.isequal@4.5.0: + /lodash.isequal/4.5.0: resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} dev: true - /lodash.merge@4.6.2: + /lodash.merge/4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} dev: true - /lodash@4.17.21: + /lodash/4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - /log-symbols@4.1.0: + /log-symbols/4.1.0: resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} engines: {node: '>=10'} dependencies: - chalk: 4.1.2 + chalk: 4.1.1 is-unicode-supported: 0.1.0 dev: true - /loose-envify@1.4.0: + /loose-envify/1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true dependencies: js-tokens: 4.0.0 - /loupe@2.3.6: + /loupe/2.3.6: resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==} dependencies: get-func-name: 2.0.0 dev: true - /lru-cache@10.0.0: + /lru-cache/10.0.0: resolution: {integrity: sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw==} engines: {node: 14 || >=16.14} dev: true - /lru-cache@5.1.1: + /lru-cache/5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} dependencies: yallist: 3.1.1 dev: true - /lru-cache@6.0.0: + /lru-cache/6.0.0: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} engines: {node: '>=10'} dependencies: yallist: 4.0.0 dev: true - /lru-cache@7.18.3: + /lru-cache/7.18.3: resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} engines: {node: '>=12'} dev: true - /lz-string@1.5.0: + /lz-string/1.5.0: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true + dev: true - /magic-string@0.30.1: - resolution: {integrity: sha512-mbVKXPmS0z0G4XqFDCTllmDQ6coZzn94aMlb0o/A4HEHJCKcanlDZwYJgwnkmgD3jyWhUgj9VsPrfd972yPffA==} + /magic-string/0.30.2: + resolution: {integrity: sha512-lNZdu7pewtq/ZvWUp9Wpf/x7WzMTsR26TWV03BRZrXFsv+BI6dy8RAiKgm1uM/kyR0rCfUcqvOlXKG66KhIGug==} engines: {node: '>=12'} dependencies: '@jridgewell/sourcemap-codec': 1.4.15 dev: true - /make-dir@3.1.0: - resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} - engines: {node: '>=8'} + /make-dir/4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} dependencies: - semver: 6.3.1 + semver: 7.5.4 dev: true - /map-obj@4.3.0: + /map-obj/4.3.0: resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} engines: {node: '>=8'} dev: true - /meow@12.0.1: + /meow/12.0.1: resolution: {integrity: sha512-/QOqMALNoKQcJAOOdIXjNLtfcCdLXbMFyB1fOOPdm6RzfBTlsuodOCTBDjVbeUSmgDQb8UI2oONqYGtq1PKKKA==} engines: {node: '>=16.10'} dependencies: @@ -4318,16 +4315,16 @@ packages: yargs-parser: 21.1.1 dev: true - /merge-stream@2.0.0: + /merge-stream/2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} dev: true - /merge2@1.4.1: + /merge2/1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} dev: true - /micromatch@4.0.5: + /micromatch/4.0.5: resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} engines: {node: '>=8.6'} dependencies: @@ -4335,46 +4332,46 @@ packages: picomatch: 2.3.1 dev: true - /mime-db@1.52.0: + /mime-db/1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} dev: true - /mime-types@2.1.35: + /mime-types/2.1.35: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} dependencies: mime-db: 1.52.0 dev: true - /mimic-fn@2.1.0: + /mimic-fn/2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} dev: true - /mimic-fn@4.0.0: + /mimic-fn/4.0.0: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} engines: {node: '>=12'} dev: true - /min-indent@1.0.1: + /min-indent/1.0.1: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} - /minimatch@3.1.2: + /minimatch/3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: brace-expansion: 1.1.11 dev: true - /minimatch@9.0.3: + /minimatch/9.0.3: resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 dev: true - /minimist-options@4.1.0: + /minimist-options/4.1.0: resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} engines: {node: '>= 6'} dependencies: @@ -4383,39 +4380,39 @@ packages: kind-of: 6.0.3 dev: true - /minimist@1.2.8: + /minimist/1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} dev: true - /minipass@7.0.2: + /minipass/7.0.2: resolution: {integrity: sha512-eL79dXrE1q9dBbDCLg7xfn/vl7MS4F1gvJAgjJrQli/jbQWdUttuVawphqpffoIYfRdq78LHx6GP4bU/EQ2ATA==} engines: {node: '>=16 || 14 >=14.17'} dev: true - /mkdirp@1.0.4: + /mkdirp/1.0.4: resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} engines: {node: '>=10'} hasBin: true dev: true - /mlly@1.4.0: + /mlly/1.4.0: resolution: {integrity: sha512-ua8PAThnTwpprIaU47EPeZ/bPUVp2QYBbWMphUQpVdBI3Lgqzm5KZQ45Agm3YJedHXaIHl6pBGabaLSUPPSptg==} dependencies: acorn: 8.10.0 pathe: 1.1.1 pkg-types: 1.0.3 - ufo: 1.1.2 + ufo: 1.2.0 dev: true - /ms@2.1.2: + /ms/2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} dev: true - /ms@2.1.3: + /ms/2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} dev: true - /msw@1.2.2(typescript@5.1.6): + /msw/1.2.2_typescript@5.1.6: resolution: {integrity: sha512-GsW3PE/Es/a1tYThXcM8YHOZ1S1MtivcS3He/LQbbTCx3rbWJYCtWD5XXyJ53KlNPT7O1VI9sCW3xMtgFe8XpQ==} engines: {node: '>=14'} hasBin: true @@ -4451,33 +4448,33 @@ packages: - supports-color dev: true - /muggle-string@0.3.1: + /muggle-string/0.3.1: resolution: {integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==} dev: true - /mute-stream@0.0.8: + /mute-stream/0.0.8: resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} dev: true - /nanoid@3.3.6: + /nanoid/3.3.6: resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - /natural-compare-lite@1.4.0: + /natural-compare-lite/1.4.0: resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} dev: true - /natural-compare@1.4.0: + /natural-compare/1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true - /nested-error-stacks@2.1.1: + /nested-error-stacks/2.1.1: resolution: {integrity: sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==} dev: true - /next@13.4.10(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-4ep6aKxVTQ7rkUW2fBLhpBr/5oceCuf4KmlUpvG/aXuDTIf9mexNSpabUD6RWPspu6wiJJvozZREhXhueYO36A==} + /next/13.4.12_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-eHfnru9x6NRmTMcjQp6Nz0J4XH9OubmzOa7CkWL+AUrUxpibub3vWwttjduu9No16dug1kq04hiUUpo7J3m3Xw==} engines: {node: '>=16.8.0'} hasBin: true peerDependencies: @@ -4494,32 +4491,32 @@ packages: sass: optional: true dependencies: - '@next/env': 13.4.10 + '@next/env': 13.4.12 '@swc/helpers': 0.5.1 busboy: 1.6.0 - caniuse-lite: 1.0.30001516 + caniuse-lite: 1.0.30001517 postcss: 8.4.14 react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - styled-jsx: 5.1.1(react@18.2.0) + react-dom: 18.2.0_react@18.2.0 + styled-jsx: 5.1.1_react@18.2.0 watchpack: 2.4.0 zod: 3.21.4 optionalDependencies: - '@next/swc-darwin-arm64': 13.4.10 - '@next/swc-darwin-x64': 13.4.10 - '@next/swc-linux-arm64-gnu': 13.4.10 - '@next/swc-linux-arm64-musl': 13.4.10 - '@next/swc-linux-x64-gnu': 13.4.10 - '@next/swc-linux-x64-musl': 13.4.10 - '@next/swc-win32-arm64-msvc': 13.4.10 - '@next/swc-win32-ia32-msvc': 13.4.10 - '@next/swc-win32-x64-msvc': 13.4.10 + '@next/swc-darwin-arm64': 13.4.12 + '@next/swc-darwin-x64': 13.4.12 + '@next/swc-linux-arm64-gnu': 13.4.12 + '@next/swc-linux-arm64-musl': 13.4.12 + '@next/swc-linux-x64-gnu': 13.4.12 + '@next/swc-linux-x64-musl': 13.4.12 + '@next/swc-win32-arm64-msvc': 13.4.12 + '@next/swc-win32-ia32-msvc': 13.4.12 + '@next/swc-win32-x64-msvc': 13.4.12 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros dev: false - /node-fetch@2.6.12: + /node-fetch/2.6.12: resolution: {integrity: sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==} engines: {node: 4.x || >=6.0.0} peerDependencies: @@ -4531,18 +4528,18 @@ packages: whatwg-url: 5.0.0 dev: true - /node-releases@2.0.13: + /node-releases/2.0.13: resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} dev: true - /noms@0.0.0: + /noms/0.0.0: resolution: {integrity: sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow==} dependencies: inherits: 2.0.4 readable-stream: 1.0.34 dev: true - /normalize-package-data@3.0.3: + /normalize-package-data/3.0.3: resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} engines: {node: '>=10'} dependencies: @@ -4552,7 +4549,7 @@ packages: validate-npm-package-license: 3.0.4 dev: true - /normalize-package-data@5.0.0: + /normalize-package-data/5.0.0: resolution: {integrity: sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: @@ -4562,49 +4559,52 @@ packages: validate-npm-package-license: 3.0.4 dev: true - /normalize-path@3.0.0: + /normalize-path/3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} dev: true - /npm-run-path@4.0.1: + /npm-run-path/4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} dependencies: path-key: 3.1.1 dev: true - /npm-run-path@5.1.0: + /npm-run-path/5.1.0: resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: path-key: 4.0.0 dev: true - /nwsapi@2.2.7: + /nwsapi/2.2.7: resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==} dev: true - /object-assign@4.1.1: + /object-assign/4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} dev: true - /object-inspect@1.12.3: + /object-inspect/1.12.3: resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} + dev: true - /object-is@1.1.5: + /object-is/1.1.5: resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.2.0 + dev: true - /object-keys@1.1.1: + /object-keys/1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} + dev: true - /object.assign@4.1.4: + /object.assign/4.1.4: resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} engines: {node: '>= 0.4'} dependencies: @@ -4612,62 +4612,72 @@ packages: define-properties: 1.2.0 has-symbols: 1.0.3 object-keys: 1.1.1 + dev: true - /object.entries@1.1.6: + /object.entries/1.1.6: resolution: {integrity: sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - es-abstract: 1.21.3 + es-abstract: 1.22.1 dev: true - /object.fromentries@2.0.6: + /object.fromentries/2.0.6: resolution: {integrity: sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - es-abstract: 1.21.3 + es-abstract: 1.22.1 + dev: true + + /object.groupby/1.0.0: + resolution: {integrity: sha512-70MWG6NfRH9GnbZOikuhPPYzpUpof9iW2J9E4dW7FXTqPNb6rllE6u39SKwwiNh8lCwX3DDb5OgcKGiEBrTTyw==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + get-intrinsic: 1.2.1 dev: true - /object.hasown@1.1.2: + /object.hasown/1.1.2: resolution: {integrity: sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==} dependencies: define-properties: 1.2.0 - es-abstract: 1.21.3 + es-abstract: 1.22.1 dev: true - /object.values@1.1.6: + /object.values/1.1.6: resolution: {integrity: sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - es-abstract: 1.21.3 + es-abstract: 1.22.1 dev: true - /once@1.4.0: + /once/1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: wrappy: 1.0.2 dev: true - /onetime@5.1.2: + /onetime/5.1.2: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} dependencies: mimic-fn: 2.1.0 dev: true - /onetime@6.0.0: + /onetime/6.0.0: resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} engines: {node: '>=12'} dependencies: mimic-fn: 4.0.0 dev: true - /open@9.1.0: + /open/9.1.0: resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==} engines: {node: '>=14.16'} dependencies: @@ -4677,7 +4687,7 @@ packages: is-wsl: 2.2.0 dev: true - /optionator@0.9.3: + /optionator/0.9.3: resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} engines: {node: '>= 0.8.0'} dependencies: @@ -4689,12 +4699,12 @@ packages: type-check: 0.4.0 dev: true - /ora@5.4.1: + /ora/5.4.1: resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} engines: {node: '>=10'} dependencies: bl: 4.1.0 - chalk: 4.1.2 + chalk: 4.1.1 cli-cursor: 3.1.0 cli-spinners: 2.9.0 is-interactive: 1.0.0 @@ -4704,82 +4714,82 @@ packages: wcwidth: 1.0.1 dev: true - /os-tmpdir@1.0.2: + /os-tmpdir/1.0.2: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} engines: {node: '>=0.10.0'} dev: true - /outvariant@1.4.0: + /outvariant/1.4.0: resolution: {integrity: sha512-AlWY719RF02ujitly7Kk/0QlV+pXGFDHrHf9O2OKqyqgBieaPOIeuSkL8sRK6j2WK+/ZAURq2kZsY0d8JapUiw==} dev: true - /p-event@5.0.1: + /p-event/5.0.1: resolution: {integrity: sha512-dd589iCQ7m1L0bmC5NLlVYfy3TbBEsMUfWx9PyAgPeIcFZ/E2yaTZ4Rz4MiBmmJShviiftHVXOqfnfzJ6kyMrQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: p-timeout: 5.1.0 dev: true - /p-filter@3.0.0: + /p-filter/3.0.0: resolution: {integrity: sha512-QtoWLjXAW++uTX67HZQz1dbTpqBfiidsB6VtQUC9iR85S120+s0T5sO6s+B5MLzFcZkrEd/DGMmCjR+f2Qpxwg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: p-map: 5.5.0 dev: true - /p-limit@3.1.0: + /p-limit/3.1.0: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} dependencies: yocto-queue: 0.1.0 dev: true - /p-limit@4.0.0: + /p-limit/4.0.0: resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: yocto-queue: 1.0.0 dev: true - /p-locate@5.0.0: + /p-locate/5.0.0: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} dependencies: p-limit: 3.1.0 dev: true - /p-locate@6.0.0: + /p-locate/6.0.0: resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: p-limit: 4.0.0 dev: true - /p-map@5.5.0: + /p-map/5.5.0: resolution: {integrity: sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==} engines: {node: '>=12'} dependencies: aggregate-error: 4.0.1 dev: true - /p-map@6.0.0: + /p-map/6.0.0: resolution: {integrity: sha512-T8BatKGY+k5rU+Q/GTYgrEf2r4xRMevAN5mtXc2aPc4rS1j3s+vWTaO2Wag94neXuCAUAs8cxBL9EeB5EA6diw==} engines: {node: '>=16'} dev: true - /p-timeout@5.1.0: + /p-timeout/5.1.0: resolution: {integrity: sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==} engines: {node: '>=12'} dev: true - /parent-module@1.0.1: + /parent-module/1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} dependencies: callsites: 3.1.0 dev: true - /parse-json@5.2.0: + /parse-json/5.2.0: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: @@ -4789,42 +4799,42 @@ packages: lines-and-columns: 1.2.4 dev: true - /parse5@7.1.2: + /parse5/7.1.2: resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} dependencies: entities: 4.5.0 dev: true - /path-exists@4.0.0: + /path-exists/4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} dev: true - /path-exists@5.0.0: + /path-exists/5.0.0: resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true - /path-is-absolute@1.0.1: + /path-is-absolute/1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} dev: true - /path-key@3.1.1: + /path-key/3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} dev: true - /path-key@4.0.0: + /path-key/4.0.0: resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} engines: {node: '>=12'} dev: true - /path-parse@1.0.7: + /path-parse/1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} dev: true - /path-scurry@1.10.1: + /path-scurry/1.10.1: resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} engines: {node: '>=16 || 14 >=14.17'} dependencies: @@ -4832,32 +4842,32 @@ packages: minipass: 7.0.2 dev: true - /path-to-regexp@6.2.1: + /path-to-regexp/6.2.1: resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} dev: true - /path-type@4.0.0: + /path-type/4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} dev: true - /pathe@1.1.1: + /pathe/1.1.1: resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==} dev: true - /pathval@1.1.1: + /pathval/1.1.1: resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} dev: true - /picocolors@1.0.0: + /picocolors/1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - /picomatch@2.3.1: + /picomatch/2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} dev: true - /pkg-types@1.0.3: + /pkg-types/1.0.3: resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} dependencies: jsonc-parser: 3.2.0 @@ -4865,12 +4875,7 @@ packages: pathe: 1.1.1 dev: true - /popper.js@1.16.1: - resolution: {integrity: sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==} - deprecated: You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1 - dev: true - - /postcss@8.4.14: + /postcss/8.4.14: resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==} engines: {node: ^10 || ^12 || >=14} dependencies: @@ -4879,8 +4884,8 @@ packages: source-map-js: 1.0.2 dev: false - /postcss@8.4.26: - resolution: {integrity: sha512-jrXHFF8iTloAenySjM/ob3gSj7pCu0Ji49hnjqzsgSRa50hkWCKD0HQ+gMNJkW38jBI68MpAAg7ZWwHwX8NMMw==} + /postcss/8.4.27: + resolution: {integrity: sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.6 @@ -4888,25 +4893,25 @@ packages: source-map-js: 1.0.2 dev: true - /prelude-ls@1.2.1: + /prelude-ls/1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} dev: true - /prettier-linter-helpers@1.0.0: + /prettier-linter-helpers/1.0.0: resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} engines: {node: '>=6.0.0'} dependencies: fast-diff: 1.3.0 dev: true - /prettier@3.0.0: + /prettier/3.0.0: resolution: {integrity: sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g==} engines: {node: '>=14'} hasBin: true dev: true - /pretty-format@27.5.1: + /pretty-format/27.5.1: resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: @@ -4914,8 +4919,8 @@ packages: ansi-styles: 5.2.0 react-is: 17.0.2 - /pretty-format@29.6.1: - resolution: {integrity: sha512-7jRj+yXO0W7e4/tSJKoR7HRIHLPPjtNaUGG2xxKQnGvPNRkgWcQ0AZX6P4KBRJN4FcTBWb3sa7DVUJmocYuoog==} + /pretty-format/29.6.2: + resolution: {integrity: sha512-1q0oC8eRveTg5nnBEWMXAU2qpv65Gnuf2eCQzSjxpWFkPaPARwqZZDGuNE0zPAZfTCHzIk3A8dIjwlQKKLphyg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/schemas': 29.6.0 @@ -4923,11 +4928,11 @@ packages: react-is: 18.2.0 dev: true - /process-nextick-args@2.0.1: + /process-nextick-args/2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} dev: true - /prop-types@15.8.1: + /prop-types/15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} dependencies: loose-envify: 1.4.0 @@ -4935,29 +4940,29 @@ packages: react-is: 16.13.1 dev: true - /psl@1.9.0: + /psl/1.9.0: resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} dev: true - /punycode@2.3.0: + /punycode/2.3.0: resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} engines: {node: '>=6'} dev: true - /querystringify@2.2.0: + /querystringify/2.2.0: resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} dev: true - /queue-microtask@1.2.3: + /queue-microtask/1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: true - /quick-lru@6.1.1: + /quick-lru/6.1.1: resolution: {integrity: sha512-S27GBT+F0NTRiehtbrgaSE1idUAJ5bX8dPAQTdylEyNlrdcH5X4Lz7Edz3DYzecbsCluD5zO8ZNEe04z3D3u6Q==} engines: {node: '>=12'} dev: true - /react-dom@18.2.0(react@18.2.0): + /react-dom/18.2.0_react@18.2.0: resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} peerDependencies: react: ^18.2.0 @@ -4966,52 +4971,52 @@ packages: react: 18.2.0 scheduler: 0.23.0 - /react-is@16.13.1: + /react-is/16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} dev: true - /react-is@17.0.2: + /react-is/17.0.2: resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} - /react-is@18.2.0: + /react-is/18.2.0: resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} dev: true - /react-refresh@0.14.0: + /react-refresh/0.14.0: resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} engines: {node: '>=0.10.0'} dev: true - /react-router-dom@6.14.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-ssF6M5UkQjHK70fgukCJyjlda0Dgono2QGwqGvuk7D+EDGHdacEN3Yke2LTMjkrpHuFwBfDFsEjGVXBDmL+bWw==} + /react-router-dom/6.14.2_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-5pWX0jdKR48XFZBuJqHosX3AAHjRAzygouMTyimnBPOLdY3WjzUSKhus2FVMihUFWzeLebDgr4r8UeQFAct7Bg==} engines: {node: '>=14'} peerDependencies: react: '>=16.8' react-dom: '>=16.8' dependencies: - '@remix-run/router': 1.7.1 + '@remix-run/router': 1.7.2 react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-router: 6.14.1(react@18.2.0) + react-dom: 18.2.0_react@18.2.0 + react-router: 6.14.2_react@18.2.0 dev: false - /react-router@6.14.1(react@18.2.0): - resolution: {integrity: sha512-U4PfgvG55LdvbQjg5Y9QRWyVxIdO1LlpYT7x+tMAxd9/vmiPuJhIwdxZuIQLN/9e3O4KFDHYfR9gzGeYMasW8g==} + /react-router/6.14.2_react@18.2.0: + resolution: {integrity: sha512-09Zss2dE2z+T1D03IheqAFtK4UzQyX8nFPWx6jkwdYzGLXd5ie06A6ezS2fO6zJfEb/SpG6UocN2O1hfD+2urQ==} engines: {node: '>=14'} peerDependencies: react: '>=16.8' dependencies: - '@remix-run/router': 1.7.1 + '@remix-run/router': 1.7.2 react: 18.2.0 dev: false - /react@18.2.0: + /react/18.2.0: resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} engines: {node: '>=0.10.0'} dependencies: loose-envify: 1.4.0 - /read-pkg-up@9.1.0: + /read-pkg-up/9.1.0: resolution: {integrity: sha512-vaMRR1AC1nrd5CQM0PhlRsO5oc2AAigqr7cCrZ/MW/Rsaflz4RlgzkpL4qoU/z1F6wrbd85iFv1OQj/y5RdGvg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: @@ -5020,7 +5025,7 @@ packages: type-fest: 2.19.0 dev: true - /read-pkg@7.1.0: + /read-pkg/7.1.0: resolution: {integrity: sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==} engines: {node: '>=12.20'} dependencies: @@ -5030,7 +5035,7 @@ packages: type-fest: 2.19.0 dev: true - /readable-stream@1.0.34: + /readable-stream/1.0.34: resolution: {integrity: sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==} dependencies: core-util-is: 1.0.3 @@ -5039,7 +5044,7 @@ packages: string_decoder: 0.10.31 dev: true - /readable-stream@2.3.8: + /readable-stream/2.3.8: resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} dependencies: core-util-is: 1.0.3 @@ -5051,7 +5056,7 @@ packages: util-deprecate: 1.0.2 dev: true - /readable-stream@3.6.2: + /readable-stream/3.6.2: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} dependencies: @@ -5060,21 +5065,21 @@ packages: util-deprecate: 1.0.2 dev: true - /readdirp@3.6.0: + /readdirp/3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} dependencies: picomatch: 2.3.1 dev: true - /redent@3.0.0: + /redent/3.0.0: resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} engines: {node: '>=8'} dependencies: indent-string: 4.0.0 strip-indent: 3.0.0 - /redent@4.0.0: + /redent/4.0.0: resolution: {integrity: sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==} engines: {node: '>=12'} dependencies: @@ -5082,58 +5087,59 @@ packages: strip-indent: 4.0.0 dev: true - /refa@0.11.0: + /refa/0.11.0: resolution: {integrity: sha512-486O8/pQXwj9jV0mVvUnTsxq0uknpBnNJ0eCUhkZqJRQ8KutrT1PhzmumdCeM1hSBF2eMlFPmwECRER4IbKXlQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dependencies: - '@eslint-community/regexpp': 4.5.1 + '@eslint-community/regexpp': 4.6.2 dev: true - /regenerator-runtime@0.13.11: + /regenerator-runtime/0.13.11: resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} - /regexp-ast-analysis@0.6.0: + /regexp-ast-analysis/0.6.0: resolution: {integrity: sha512-OLxjyjPkVH+rQlBLb1I/P/VTmamSjGkvN5PTV5BXP432k3uVz727J7H29GA5IFiY0m7e1xBN7049Wn59FY3DEQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dependencies: - '@eslint-community/regexpp': 4.5.1 + '@eslint-community/regexpp': 4.6.2 refa: 0.11.0 dev: true - /regexp.prototype.flags@1.5.0: + /regexp.prototype.flags/1.5.0: resolution: {integrity: sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.2.0 functions-have-names: 1.2.3 + dev: true - /require-directory@2.1.1: + /require-directory/2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} dev: true - /requires-port@1.0.0: + /requires-port/1.0.0: resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} dev: true - /resolve-from@4.0.0: + /resolve-from/4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} dev: true - /resolve-pkg-maps@1.0.0: + /resolve-pkg-maps/1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} dev: true - /resolve@1.19.0: + /resolve/1.19.0: resolution: {integrity: sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==} dependencies: is-core-module: 2.12.1 path-parse: 1.0.7 dev: true - /resolve@1.22.2: + /resolve/1.22.2: resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} hasBin: true dependencies: @@ -5142,7 +5148,16 @@ packages: supports-preserve-symlinks-flag: 1.0.0 dev: true - /resolve@2.0.0-next.4: + /resolve/1.22.3: + resolution: {integrity: sha512-P8ur/gp/AmbEzjr729bZnLjXK5Z+4P0zhIJgBgzqRih7hL7BOukHGtSTA3ACMY467GRFz3duQsi0bDZdR7DKdw==} + hasBin: true + dependencies: + is-core-module: 2.12.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + + /resolve/2.0.0-next.4: resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==} hasBin: true dependencies: @@ -5151,7 +5166,7 @@ packages: supports-preserve-symlinks-flag: 1.0.0 dev: true - /restore-cursor@3.1.0: + /restore-cursor/3.1.0: resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} engines: {node: '>=8'} dependencies: @@ -5159,19 +5174,19 @@ packages: signal-exit: 3.0.7 dev: true - /reusify@1.0.4: + /reusify/1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} dev: true - /rimraf@3.0.2: + /rimraf/3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} hasBin: true dependencies: glob: 7.2.3 dev: true - /rimraf@5.0.1: + /rimraf/5.0.1: resolution: {integrity: sha512-OfFZdwtd3lZ+XZzYP/6gTACubwFcHdLRqS9UX3UwpU2dnGQYkPFISRwvM3w9IiB2w7bW5qGo/uAwE4SmXXSKvg==} engines: {node: '>=14'} hasBin: true @@ -5179,51 +5194,61 @@ packages: glob: 10.3.3 dev: true - /rollup@3.26.2: - resolution: {integrity: sha512-6umBIGVz93er97pMgQO08LuH3m6PUb3jlDUUGFsNJB6VgTCUaDFpupf5JfU30529m/UKOgmiX+uY6Sx8cOYpLA==} + /rollup/3.27.0: + resolution: {integrity: sha512-aOltLCrYZ0FhJDm7fCqwTjIUEVjWjcydKBV/Zeid6Mn8BWgDCUBBWT5beM5ieForYNo/1ZHuGJdka26kvQ3Gzg==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: fsevents: 2.3.2 dev: true - /rrweb-cssom@0.6.0: + /rrweb-cssom/0.6.0: resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} dev: true - /run-applescript@5.0.0: + /run-applescript/5.0.0: resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==} engines: {node: '>=12'} dependencies: execa: 5.1.1 dev: true - /run-async@2.4.1: + /run-async/2.4.1: resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} engines: {node: '>=0.12.0'} dev: true - /run-parallel@1.2.0: + /run-parallel/1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: queue-microtask: 1.2.3 dev: true - /rxjs@7.8.1: + /rxjs/7.8.1: resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} dependencies: - tslib: 2.6.0 + tslib: 2.6.1 + dev: true + + /safe-array-concat/1.0.0: + resolution: {integrity: sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==} + engines: {node: '>=0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + has-symbols: 1.0.3 + isarray: 2.0.5 dev: true - /safe-buffer@5.1.2: + /safe-buffer/5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} dev: true - /safe-buffer@5.2.1: + /safe-buffer/5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} dev: true - /safe-regex-test@1.0.0: + /safe-regex-test/1.0.0: resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} dependencies: call-bind: 1.0.2 @@ -5231,44 +5256,36 @@ packages: is-regex: 1.1.4 dev: true - /safer-buffer@2.1.2: + /safer-buffer/2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} dev: true - /saxes@6.0.0: + /saxes/6.0.0: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} engines: {node: '>=v12.22.7'} dependencies: xmlchars: 2.2.0 dev: true - /scheduler@0.23.0: + /scheduler/0.23.0: resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} dependencies: loose-envify: 1.4.0 - /scslre@0.2.0: + /scslre/0.2.0: resolution: {integrity: sha512-4hc49fUMmX3jM0XdFUAPBrs1xwEcdHa0KyjEsjFs+Zfc66mpFpq5YmRgDtl+Ffo6AtJIilfei+yKw8fUn3N88w==} dependencies: - '@eslint-community/regexpp': 4.5.1 + '@eslint-community/regexpp': 4.6.2 refa: 0.11.0 regexp-ast-analysis: 0.6.0 dev: true - /semver@6.3.1: + /semver/6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true dev: true - /semver@7.3.8: - resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} - engines: {node: '>=10'} - hasBin: true - dependencies: - lru-cache: 6.0.0 - dev: true - - /semver@7.5.4: + /semver/7.5.4: resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} engines: {node: '>=10'} hasBin: true @@ -5276,129 +5293,131 @@ packages: lru-cache: 6.0.0 dev: true - /set-cookie-parser@2.6.0: + /set-cookie-parser/2.6.0: resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==} dev: true - /shebang-command@2.0.0: + /shebang-command/2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} dependencies: shebang-regex: 3.0.0 dev: true - /shebang-regex@3.0.0: + /shebang-regex/3.0.0: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} dev: true - /side-channel@1.0.4: + /side-channel/1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: call-bind: 1.0.2 get-intrinsic: 1.2.1 object-inspect: 1.12.3 + dev: true - /siginfo@2.0.0: + /siginfo/2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} dev: true - /signal-exit@3.0.7: + /signal-exit/3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} dev: true - /signal-exit@4.0.2: - resolution: {integrity: sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==} + /signal-exit/4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} dev: true - /slash@3.0.0: + /slash/3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} dev: true - /slash@4.0.0: + /slash/4.0.0: resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} engines: {node: '>=12'} dev: true - /source-map-js@1.0.2: + /source-map-js/1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} - /source-map-support@0.5.21: + /source-map-support/0.5.21: resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} dependencies: buffer-from: 1.1.2 source-map: 0.6.1 dev: true - /source-map@0.6.1: + /source-map/0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} dev: true - /spdx-correct@3.2.0: + /spdx-correct/3.2.0: resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} dependencies: spdx-expression-parse: 3.0.1 spdx-license-ids: 3.0.13 dev: true - /spdx-exceptions@2.3.0: + /spdx-exceptions/2.3.0: resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} dev: true - /spdx-expression-parse@3.0.1: + /spdx-expression-parse/3.0.1: resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} dependencies: spdx-exceptions: 2.3.0 spdx-license-ids: 3.0.13 dev: true - /spdx-license-ids@3.0.13: + /spdx-license-ids/3.0.13: resolution: {integrity: sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==} dev: true - /sprintf-js@1.0.3: + /sprintf-js/1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} dev: true - /stackback@0.0.2: + /stackback/0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} dev: true - /std-env@3.3.3: + /std-env/3.3.3: resolution: {integrity: sha512-Rz6yejtVyWnVjC1RFvNmYL10kgjC49EOghxWn0RFqlCHGFpQx+Xe7yW3I4ceK1SGrWIGMjD5Kbue8W/udkbMJg==} dev: true - /stop-iteration-iterator@1.0.0: + /stop-iteration-iterator/1.0.0: resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} engines: {node: '>= 0.4'} dependencies: internal-slot: 1.0.5 + dev: true - /streamsearch@1.1.0: + /streamsearch/1.1.0: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} engines: {node: '>=10.0.0'} dev: false - /strict-event-emitter@0.2.8: + /strict-event-emitter/0.2.8: resolution: {integrity: sha512-KDf/ujU8Zud3YaLtMCcTI4xkZlZVIYxTLr+XIULexP+77EEVWixeXroLUXQXiVtH4XH2W7jr/3PT1v3zBuvc3A==} dependencies: events: 3.3.0 dev: true - /strict-event-emitter@0.4.6: + /strict-event-emitter/0.4.6: resolution: {integrity: sha512-12KWeb+wixJohmnwNFerbyiBrAlq5qJLwIt38etRtKtmmHyDSoGlIqFE9wx+4IwG0aDjI7GV8tc8ZccjWZZtTg==} dev: true - /string-argv@0.3.2: + /string-argv/0.3.2: resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} engines: {node: '>=0.6.19'} dev: true - /string-width@4.2.3: + /string-width/4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} dependencies: @@ -5407,7 +5426,7 @@ packages: strip-ansi: 6.0.1 dev: true - /string-width@5.1.2: + /string-width/5.1.2: resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} engines: {node: '>=12'} dependencies: @@ -5416,12 +5435,12 @@ packages: strip-ansi: 7.1.0 dev: true - /string.prototype.matchall@4.0.8: + /string.prototype.matchall/4.0.8: resolution: {integrity: sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==} dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - es-abstract: 1.21.3 + es-abstract: 1.22.1 get-intrinsic: 1.2.1 has-symbols: 1.0.3 internal-slot: 1.0.5 @@ -5429,101 +5448,101 @@ packages: side-channel: 1.0.4 dev: true - /string.prototype.trim@1.2.7: + /string.prototype.trim/1.2.7: resolution: {integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - es-abstract: 1.21.3 + es-abstract: 1.22.1 dev: true - /string.prototype.trimend@1.0.6: + /string.prototype.trimend/1.0.6: resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - es-abstract: 1.21.3 + es-abstract: 1.22.1 dev: true - /string.prototype.trimstart@1.0.6: + /string.prototype.trimstart/1.0.6: resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - es-abstract: 1.21.3 + es-abstract: 1.22.1 dev: true - /string_decoder@0.10.31: + /string_decoder/0.10.31: resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==} dev: true - /string_decoder@1.1.1: + /string_decoder/1.1.1: resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} dependencies: safe-buffer: 5.1.2 dev: true - /string_decoder@1.3.0: + /string_decoder/1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} dependencies: safe-buffer: 5.2.1 dev: true - /strip-ansi@6.0.1: + /strip-ansi/6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} dependencies: ansi-regex: 5.0.1 dev: true - /strip-ansi@7.1.0: + /strip-ansi/7.1.0: resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} engines: {node: '>=12'} dependencies: ansi-regex: 6.0.1 dev: true - /strip-bom@3.0.0: + /strip-bom/3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} dev: true - /strip-final-newline@2.0.0: + /strip-final-newline/2.0.0: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} dev: true - /strip-final-newline@3.0.0: + /strip-final-newline/3.0.0: resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} engines: {node: '>=12'} dev: true - /strip-indent@3.0.0: + /strip-indent/3.0.0: resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} engines: {node: '>=8'} dependencies: min-indent: 1.0.1 - /strip-indent@4.0.0: + /strip-indent/4.0.0: resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==} engines: {node: '>=12'} dependencies: min-indent: 1.0.1 dev: true - /strip-json-comments@3.1.1: + /strip-json-comments/3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} dev: true - /strip-literal@1.0.1: + /strip-literal/1.0.1: resolution: {integrity: sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==} dependencies: acorn: 8.10.0 dev: true - /styled-jsx@5.1.1(react@18.2.0): + /styled-jsx/5.1.1_react@18.2.0: resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} engines: {node: '>= 12.0.0'} peerDependencies: @@ -5540,36 +5559,37 @@ packages: react: 18.2.0 dev: false - /supports-color@5.5.0: + /supports-color/5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} dependencies: has-flag: 3.0.0 + dev: true - /supports-color@7.2.0: + /supports-color/7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} dependencies: has-flag: 4.0.0 - /supports-preserve-symlinks-flag@1.0.0: + /supports-preserve-symlinks-flag/1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} dev: true - /symbol-tree@3.2.4: + /symbol-tree/3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} dev: true - /synckit@0.8.5: + /synckit/0.8.5: resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==} engines: {node: ^14.18.0 || >=16.0.0} dependencies: '@pkgr/utils': 2.4.2 - tslib: 2.6.0 + tslib: 2.6.1 dev: true - /test-exclude@6.0.0: + /test-exclude/6.0.0: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} dependencies: @@ -5578,60 +5598,60 @@ packages: minimatch: 3.1.2 dev: true - /text-table@0.2.0: + /text-table/0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true - /through2@2.0.5: + /through/2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + dev: true + + /through2/2.0.5: resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} dependencies: readable-stream: 2.3.8 xtend: 4.0.2 dev: true - /through@2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - dev: true - - /tinybench@2.5.0: + /tinybench/2.5.0: resolution: {integrity: sha512-kRwSG8Zx4tjF9ZiyH4bhaebu+EDz1BOx9hOigYHlUW4xxI/wKIUQUqo018UlU4ar6ATPBsaMrdbKZ+tmPdohFA==} dev: true - /tinypool@0.6.0: + /tinypool/0.6.0: resolution: {integrity: sha512-FdswUUo5SxRizcBc6b1GSuLpLjisa8N8qMyYoP3rl+bym+QauhtJP5bvZY1ytt8krKGmMLYIRl36HBZfeAoqhQ==} engines: {node: '>=14.0.0'} dev: true - /tinyspy@2.1.1: + /tinyspy/2.1.1: resolution: {integrity: sha512-XPJL2uSzcOyBMky6OFrusqWlzfFrXtE0hPuMgW8A2HmaqrPo4ZQHRN/V0QXN3FSjKxpsbRrFc5LI7KOwBsT1/w==} engines: {node: '>=14.0.0'} dev: true - /titleize@3.0.0: + /titleize/3.0.0: resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==} engines: {node: '>=12'} dev: true - /tmp@0.0.33: + /tmp/0.0.33: resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} engines: {node: '>=0.6.0'} dependencies: os-tmpdir: 1.0.2 dev: true - /to-fast-properties@2.0.0: + /to-fast-properties/2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} dev: true - /to-regex-range@5.0.1: + /to-regex-range/5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} dependencies: is-number: 7.0.0 dev: true - /tough-cookie@4.1.3: + /tough-cookie/4.1.3: resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==} engines: {node: '>=6'} dependencies: @@ -5641,23 +5661,23 @@ packages: url-parse: 1.5.10 dev: true - /tr46@0.0.3: + /tr46/0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} dev: true - /tr46@4.1.1: + /tr46/4.1.1: resolution: {integrity: sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==} engines: {node: '>=14'} dependencies: punycode: 2.3.0 dev: true - /trim-newlines@5.0.0: + /trim-newlines/5.0.0: resolution: {integrity: sha512-kstfs+hgwmdsOadN3KgA+C68wPJwnZq4DN6WMDCvZapDWEF34W2TyPKN2v2+BJnZgIz5QOfxFeldLyYvdgRAwg==} engines: {node: '>=14.16'} dev: true - /ts-api-utils@1.0.1(typescript@5.1.6): + /ts-api-utils/1.0.1_typescript@5.1.6: resolution: {integrity: sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==} engines: {node: '>=16.13.0'} peerDependencies: @@ -5666,7 +5686,7 @@ packages: typescript: 5.1.6 dev: true - /tsconfig-paths@3.14.2: + /tsconfig-paths/3.14.2: resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==} dependencies: '@types/json5': 0.0.29 @@ -5675,14 +5695,14 @@ packages: strip-bom: 3.0.0 dev: true - /tslib@1.14.1: + /tslib/1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true - /tslib@2.6.0: - resolution: {integrity: sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==} + /tslib/2.6.1: + resolution: {integrity: sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==} - /tsutils@3.21.0(typescript@5.1.6): + /tsutils/3.21.0_typescript@5.1.6: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: @@ -5692,7 +5712,7 @@ packages: typescript: 5.1.6 dev: true - /tsx@3.12.7: + /tsx/3.12.7: resolution: {integrity: sha512-C2Ip+jPmqKd1GWVQDvz/Eyc6QJbGfE7NrR3fx5BpEHMZsEHoIxHL1j+lKdGobr8ovEyqeNkPLSKp6SCSOt7gmw==} hasBin: true dependencies: @@ -5703,39 +5723,58 @@ packages: fsevents: 2.3.2 dev: true - /type-check@0.4.0: + /type-check/0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.2.1 dev: true - /type-detect@4.0.8: + /type-detect/4.0.8: resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} engines: {node: '>=4'} dev: true - /type-fest@0.20.2: + /type-fest/0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} dev: true - /type-fest@0.21.3: + /type-fest/0.21.3: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} dev: true - /type-fest@2.19.0: + /type-fest/2.19.0: resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} engines: {node: '>=12.20'} dev: true - /type-fest@3.13.1: + /type-fest/3.13.1: resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} engines: {node: '>=14.16'} dev: true - /typed-array-byte-offset@1.0.0: + /typed-array-buffer/1.0.0: + resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + is-typed-array: 1.1.12 + dev: true + + /typed-array-byte-length/1.0.0: + resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + dev: true + + /typed-array-byte-offset/1.0.0: resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} engines: {node: '>= 0.4'} dependencies: @@ -5743,33 +5782,33 @@ packages: call-bind: 1.0.2 for-each: 0.3.3 has-proto: 1.0.1 - is-typed-array: 1.1.10 + is-typed-array: 1.1.12 dev: true - /typed-array-length@1.0.4: + /typed-array-length/1.0.4: resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} dependencies: call-bind: 1.0.2 for-each: 0.3.3 - is-typed-array: 1.1.10 + is-typed-array: 1.1.12 dev: true - /typescript@5.0.4: + /typescript/5.0.4: resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==} engines: {node: '>=12.20'} hasBin: true dev: true - /typescript@5.1.6: + /typescript/5.1.6: resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==} engines: {node: '>=14.17'} hasBin: true - /ufo@1.1.2: - resolution: {integrity: sha512-TrY6DsjTQQgyS3E3dBaOXf0TpPD8u9FVrVYmKVegJuFw51n/YB9XPt+U6ydzFG5ZIN7+DIjPbNmXoBj9esYhgQ==} + /ufo/1.2.0: + resolution: {integrity: sha512-RsPyTbqORDNDxqAdQPQBpgqhWle1VcTSou/FraClYlHf6TZnQcGslpLcAphNR+sQW4q5lLWLbOsRlh9j24baQg==} dev: true - /unbox-primitive@1.0.2: + /unbox-primitive/1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} dependencies: call-bind: 1.0.2 @@ -5778,60 +5817,60 @@ packages: which-boxed-primitive: 1.0.2 dev: true - /universalify@0.1.2: + /universalify/0.1.2: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} engines: {node: '>= 4.0.0'} dev: true - /universalify@0.2.0: + /universalify/0.2.0: resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} engines: {node: '>= 4.0.0'} dev: true - /untildify@4.0.0: + /untildify/4.0.0: resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} engines: {node: '>=8'} dev: true - /update-browserslist-db@1.0.11(browserslist@4.21.9): + /update-browserslist-db/1.0.11_browserslist@4.21.10: resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' dependencies: - browserslist: 4.21.9 + browserslist: 4.21.10 escalade: 3.1.1 picocolors: 1.0.0 dev: true - /uri-js@4.4.1: + /uri-js/4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: punycode: 2.3.0 dev: true - /url-parse@1.5.10: + /url-parse/1.5.10: resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} dependencies: querystringify: 2.2.0 requires-port: 1.0.0 dev: true - /util-deprecate@1.0.2: + /util-deprecate/1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} dev: true - /util@0.12.5: + /util/0.12.5: resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} dependencies: inherits: 2.0.4 is-arguments: 1.1.1 is-generator-function: 1.0.10 - is-typed-array: 1.1.10 - which-typed-array: 1.1.10 + is-typed-array: 1.1.12 + which-typed-array: 1.1.11 dev: true - /v8-to-istanbul@9.1.0: + /v8-to-istanbul/9.1.0: resolution: {integrity: sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==} engines: {node: '>=10.12.0'} dependencies: @@ -5840,19 +5879,19 @@ packages: convert-source-map: 1.9.0 dev: true - /validate-npm-package-license@3.0.4: + /validate-npm-package-license/3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} dependencies: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 dev: true - /validator@13.9.0: + /validator/13.9.0: resolution: {integrity: sha512-B+dGG8U3fdtM0/aNK4/X8CXq/EcxU2WPrPEkJGslb47qyHsxmbggTWK0yEA4qnYVNF+nxNlN88o14hIcPmSIEA==} engines: {node: '>= 0.10'} dev: true - /vite-node@0.33.0(@types/node@18.11.9): + /vite-node/0.33.0_@types+node@20.4.5: resolution: {integrity: sha512-19FpHYbwWWxDr73ruNahC+vtEdza52kA90Qb3La98yZ0xULqV8A5JLNPUff0f5zID4984tW7l3DH2przTJUZSw==} engines: {node: '>=v14.18.0'} hasBin: true @@ -5862,7 +5901,7 @@ packages: mlly: 1.4.0 pathe: 1.1.1 picocolors: 1.0.0 - vite: 4.4.4(@types/node@18.11.9) + vite: 4.4.7_@types+node@20.4.5 transitivePeerDependencies: - '@types/node' - less @@ -5874,8 +5913,8 @@ packages: - terser dev: true - /vite-plugin-dts@3.3.0(typescript@5.1.6)(vite@4.4.4): - resolution: {integrity: sha512-9jm7wV8fkA4JaKmZdeg/X71dMi8l9SbdmzQRafW4ea1fOfd/LHBDKuwFuxKpK8h1h8O7abKycXS087EP7EL8Hw==} + /vite-plugin-dts/3.4.0_npxhaqyhuvoil5zmsh4ym23fea: + resolution: {integrity: sha512-B5UbhiF83hPlJpdri3k2FlseO2qIQfY95XJib7z1s8NTQKgPK+KgeuOQf8FR1hnE/pSU+RA3ra2T18HvymPDyA==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -5884,22 +5923,57 @@ packages: vite: optional: true dependencies: - '@microsoft/api-extractor': 7.36.2 + '@microsoft/api-extractor': 7.36.3 '@rollup/pluginutils': 5.0.2 - '@vue/language-core': 1.8.5(typescript@5.1.6) + '@vue/language-core': 1.8.8_typescript@5.1.6 debug: 4.3.4 kolorist: 1.8.0 typescript: 5.1.6 - vite: 4.4.4(@types/node@18.11.9) - vue-tsc: 1.8.5(typescript@5.1.6) + vite: 4.4.7 + vue-tsc: 1.8.8_typescript@5.1.6 transitivePeerDependencies: - '@types/node' - rollup - supports-color dev: true - /vite@4.4.4(@types/node@18.11.9): - resolution: {integrity: sha512-4mvsTxjkveWrKDJI70QmelfVqTm+ihFAb6+xf4sjEU2TmUCTlVX87tmg/QooPEMQb/lM9qGHT99ebqPziEd3wg==} + /vite/4.4.7: + resolution: {integrity: sha512-6pYf9QJ1mHylfVh39HpuSfMPojPSKVxZvnclX1K1FyZ1PXDOcLBibdq5t1qxJSnL63ca8Wf4zts6mD8u8oc9Fw==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + esbuild: 0.18.17 + postcss: 8.4.27 + rollup: 3.27.0 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /vite/4.4.7_@types+node@18.17.1: + resolution: {integrity: sha512-6pYf9QJ1mHylfVh39HpuSfMPojPSKVxZvnclX1K1FyZ1PXDOcLBibdq5t1qxJSnL63ca8Wf4zts6mD8u8oc9Fw==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: @@ -5926,15 +6000,51 @@ packages: terser: optional: true dependencies: - '@types/node': 18.11.9 - esbuild: 0.18.13 - postcss: 8.4.26 - rollup: 3.26.2 + '@types/node': 18.17.1 + esbuild: 0.18.17 + postcss: 8.4.27 + rollup: 3.27.0 optionalDependencies: fsevents: 2.3.2 dev: true - /vitest@0.33.0(jsdom@22.1.0): + /vite/4.4.7_@types+node@20.4.5: + resolution: {integrity: sha512-6pYf9QJ1mHylfVh39HpuSfMPojPSKVxZvnclX1K1FyZ1PXDOcLBibdq5t1qxJSnL63ca8Wf4zts6mD8u8oc9Fw==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 20.4.5 + esbuild: 0.18.17 + postcss: 8.4.27 + rollup: 3.27.0 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /vitest/0.33.0: resolution: {integrity: sha512-1CxaugJ50xskkQ0e969R/hW47za4YXDUfWJDxip1hwbnhUjYolpfUn2AMOulqG/Dtd9WYAtkHmM/m3yKVrEejQ==} engines: {node: '>=v14.18.0'} hasBin: true @@ -5967,7 +6077,72 @@ packages: dependencies: '@types/chai': 4.3.5 '@types/chai-subset': 1.3.3 - '@types/node': 18.11.9 + '@types/node': 20.4.5 + '@vitest/expect': 0.33.0 + '@vitest/runner': 0.33.0 + '@vitest/snapshot': 0.33.0 + '@vitest/spy': 0.33.0 + '@vitest/utils': 0.33.0 + acorn: 8.10.0 + acorn-walk: 8.2.0 + cac: 6.7.14 + chai: 4.3.7 + debug: 4.3.4 + local-pkg: 0.4.3 + magic-string: 0.30.2 + pathe: 1.1.1 + picocolors: 1.0.0 + std-env: 3.3.3 + strip-literal: 1.0.1 + tinybench: 2.5.0 + tinypool: 0.6.0 + vite: 4.4.7_@types+node@20.4.5 + vite-node: 0.33.0_@types+node@20.4.5 + why-is-node-running: 2.2.2 + transitivePeerDependencies: + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + + /vitest/0.33.0_jsdom@22.1.0: + resolution: {integrity: sha512-1CxaugJ50xskkQ0e969R/hW47za4YXDUfWJDxip1hwbnhUjYolpfUn2AMOulqG/Dtd9WYAtkHmM/m3yKVrEejQ==} + engines: {node: '>=v14.18.0'} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@vitest/browser': '*' + '@vitest/ui': '*' + happy-dom: '*' + jsdom: '*' + playwright: '*' + safaridriver: '*' + webdriverio: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + playwright: + optional: true + safaridriver: + optional: true + webdriverio: + optional: true + dependencies: + '@types/chai': 4.3.5 + '@types/chai-subset': 1.3.3 + '@types/node': 20.4.5 '@vitest/expect': 0.33.0 '@vitest/runner': 0.33.0 '@vitest/snapshot': 0.33.0 @@ -5980,15 +6155,15 @@ packages: debug: 4.3.4 jsdom: 22.1.0 local-pkg: 0.4.3 - magic-string: 0.30.1 + magic-string: 0.30.2 pathe: 1.1.1 picocolors: 1.0.0 std-env: 3.3.3 strip-literal: 1.0.1 tinybench: 2.5.0 tinypool: 0.6.0 - vite: 4.4.4(@types/node@18.11.9) - vite-node: 0.33.0(@types/node@18.11.9) + vite: 4.4.7_@types+node@20.4.5 + vite-node: 0.33.0_@types+node@20.4.5 why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -6000,33 +6175,33 @@ packages: - terser dev: true - /vue-template-compiler@2.7.14: + /vue-template-compiler/2.7.14: resolution: {integrity: sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==} dependencies: de-indent: 1.0.2 he: 1.2.0 dev: true - /vue-tsc@1.8.5(typescript@5.1.6): - resolution: {integrity: sha512-Jr8PTghJIwp69MFsEZoADDcv2l+lXA8juyN/5AYA5zxyZNvIHjSbgKgkYIYc1qnihrOyIG1VOnfk4ZE0jqn8bw==} + /vue-tsc/1.8.8_typescript@5.1.6: + resolution: {integrity: sha512-bSydNFQsF7AMvwWsRXD7cBIXaNs/KSjvzWLymq/UtKE36697sboX4EccSHFVxvgdBlI1frYPc/VMKJNB7DFeDQ==} hasBin: true peerDependencies: typescript: '*' dependencies: - '@vue/language-core': 1.8.5(typescript@5.1.6) - '@vue/typescript': 1.8.5(typescript@5.1.6) + '@vue/language-core': 1.8.8_typescript@5.1.6 + '@vue/typescript': 1.8.8_typescript@5.1.6 semver: 7.5.4 typescript: 5.1.6 dev: true - /w3c-xmlserializer@4.0.0: + /w3c-xmlserializer/4.0.0: resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} engines: {node: '>=14'} dependencies: xml-name-validator: 4.0.0 dev: true - /watchpack@2.4.0: + /watchpack/2.4.0: resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} engines: {node: '>=10.13.0'} dependencies: @@ -6034,13 +6209,13 @@ packages: graceful-fs: 4.2.11 dev: false - /wcwidth@1.0.1: + /wcwidth/1.0.1: resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} dependencies: defaults: 1.0.4 dev: true - /web-encoding@1.1.5: + /web-encoding/1.1.5: resolution: {integrity: sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==} dependencies: util: 0.12.5 @@ -6048,32 +6223,32 @@ packages: '@zxing/text-encoding': 0.9.0 dev: true - /web-vitals@3.4.0: + /web-vitals/3.4.0: resolution: {integrity: sha512-n9fZ5/bG1oeDkyxLWyep0eahrNcPDF6bFqoyispt7xkW0xhDzpUBTgyDKqWDi1twT0MgH4HvvqzpUyh0ZxZV4A==} dev: false - /webidl-conversions@3.0.1: + /webidl-conversions/3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} dev: true - /webidl-conversions@7.0.0: + /webidl-conversions/7.0.0: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} engines: {node: '>=12'} dev: true - /whatwg-encoding@2.0.0: + /whatwg-encoding/2.0.0: resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} engines: {node: '>=12'} dependencies: iconv-lite: 0.6.3 dev: true - /whatwg-mimetype@3.0.0: + /whatwg-mimetype/3.0.0: resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} engines: {node: '>=12'} dev: true - /whatwg-url@12.0.1: + /whatwg-url/12.0.1: resolution: {integrity: sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ==} engines: {node: '>=14'} dependencies: @@ -6081,14 +6256,14 @@ packages: webidl-conversions: 7.0.0 dev: true - /whatwg-url@5.0.0: + /whatwg-url/5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} dependencies: tr46: 0.0.3 webidl-conversions: 3.0.1 dev: true - /which-boxed-primitive@1.0.2: + /which-boxed-primitive/1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} dependencies: is-bigint: 1.0.4 @@ -6096,17 +6271,19 @@ packages: is-number-object: 1.0.7 is-string: 1.0.7 is-symbol: 1.0.4 + dev: true - /which-collection@1.0.1: + /which-collection/1.0.1: resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} dependencies: is-map: 2.0.2 is-set: 2.0.2 is-weakmap: 2.0.1 is-weakset: 2.0.2 + dev: true - /which-typed-array@1.1.10: - resolution: {integrity: sha512-uxoA5vLUfRPdjCuJ1h5LlYdmTLbYfums398v3WLkM+i/Wltl2/XyZpQWKbN++ck5L64SR/grOHqtXCUKmlZPNA==} + /which-typed-array/1.1.11: + resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==} engines: {node: '>= 0.4'} dependencies: available-typed-arrays: 1.0.5 @@ -6114,9 +6291,9 @@ packages: for-each: 0.3.3 gopd: 1.0.1 has-tostringtag: 1.0.0 - is-typed-array: 1.1.10 + dev: true - /which@2.0.2: + /which/2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} hasBin: true @@ -6124,7 +6301,7 @@ packages: isexe: 2.0.0 dev: true - /why-is-node-running@2.2.2: + /why-is-node-running/2.2.2: resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} engines: {node: '>=8'} hasBin: true @@ -6133,7 +6310,7 @@ packages: stackback: 0.0.2 dev: true - /wrap-ansi@7.0.0: + /wrap-ansi/7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} dependencies: @@ -6142,7 +6319,7 @@ packages: strip-ansi: 6.0.1 dev: true - /wrap-ansi@8.1.0: + /wrap-ansi/8.1.0: resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} engines: {node: '>=12'} dependencies: @@ -6151,11 +6328,11 @@ packages: strip-ansi: 7.1.0 dev: true - /wrappy@1.0.2: + /wrappy/1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} dev: true - /ws@8.13.0: + /ws/8.13.0: resolution: {integrity: sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==} engines: {node: '>=10.0.0'} peerDependencies: @@ -6168,44 +6345,44 @@ packages: optional: true dev: true - /xml-name-validator@4.0.0: + /xml-name-validator/4.0.0: resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} engines: {node: '>=12'} dev: true - /xmlchars@2.2.0: + /xmlchars/2.2.0: resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} dev: true - /xtend@4.0.2: + /xtend/4.0.2: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} dev: true - /y18n@5.0.8: + /y18n/5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} dev: true - /yallist@3.1.1: + /yallist/3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} dev: true - /yallist@4.0.0: + /yallist/4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} dev: true - /yargs-parser@20.2.9: + /yargs-parser/20.2.9: resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} engines: {node: '>=10'} dev: true - /yargs-parser@21.1.1: + /yargs-parser/21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} dev: true - /yargs@16.2.0: + /yargs/16.2.0: resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} engines: {node: '>=10'} dependencies: @@ -6218,7 +6395,7 @@ packages: yargs-parser: 20.2.9 dev: true - /yargs@17.7.2: + /yargs/17.7.2: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} dependencies: @@ -6231,17 +6408,17 @@ packages: yargs-parser: 21.1.1 dev: true - /yocto-queue@0.1.0: + /yocto-queue/0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} dev: true - /yocto-queue@1.0.0: + /yocto-queue/1.0.0: resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} engines: {node: '>=12.20'} dev: true - /z-schema@5.0.5: + /z-schema/5.0.5: resolution: {integrity: sha512-D7eujBWkLa3p2sIpJA0d1pr7es+a7m0vFAnZLlCEKq/Ij2k0MLi9Br2UPxoxdYystm5K1yeBGzub0FlYUEWj2Q==} engines: {node: '>=8.0.0'} hasBin: true @@ -6253,6 +6430,6 @@ packages: commander: 9.5.0 dev: true - /zod@3.21.4: + /zod/3.21.4: resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==} dev: false From 95678734c0495f80628f99ad3aa284a3014f8bbc Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Tue, 1 Aug 2023 15:25:54 +0200 Subject: [PATCH 016/440] feat(oidc): rename repository oidc-client (#1115) (release) BREAKING CHANGE: VanillaOidc renamed OidcClient @axa-fr/vanilla-oidc renamed @axa-fr/oidc-client --- CONTRIBUTING.md | 32 +- FAQ.md | 84 + MIGRATION_GUIDE_V6_TO_V7.md | 4 + examples/oidc-client-demo/src/index.tsx | 4 +- packages/oidc-client/README.md | 314 ++- packages/oidc-client/src/index.ts | 2 +- .../src/{vanillaOidc.ts => oidcClient.ts} | 10 +- packages/react-oidc/README.md | 148 +- packages/react-oidc/src/FetchToken.tsx | 6 +- packages/react-oidc/src/OidcProvider.tsx | 38 +- packages/react-oidc/src/OidcSecure.tsx | 4 +- packages/react-oidc/src/ReactOidc.tsx | 38 +- packages/react-oidc/src/User.ts | 4 +- .../default-component/Callback.component.tsx | 4 +- .../SilentCallback.component.tsx | 4 +- .../SilentLogin.component.tsx | 4 +- pnpm-lock.yaml | 2406 ++++++++--------- readme.md | 313 +-- 18 files changed, 1708 insertions(+), 1711 deletions(-) create mode 100644 FAQ.md create mode 100644 MIGRATION_GUIDE_V6_TO_V7.md rename packages/oidc-client/src/{vanillaOidc.ts => oidcClient.ts} (91%) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index acd889a70..346f0293e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,14 +1,32 @@ -# Contributing to @axa-fr/react-oidc +# Contributing to @axa-fr/oidc-client -First, ensure you have the [latest `npm`](https://docs.npmjs.com/). +First, ensure you have the [latest `pnpm`](https://pnpm.io/). To get started with the repository: ```sh -git clone https://github.com/AxaGuilDEv/react-oidc.git -cd react-oidc/packages/react -npm install -npm start +git clone https://github.com/AxaFrance/oidc-client.git + +cd oidc-client +pnpm install + +# oidc client demo +cd examples/oidc-client-demo +pnpm install +pnpm start +# then navigate to http://localhost:5174 + +# react vite demo +cd examples/react-oidc-demo +pnpm install +pnpm start +# then navigate to http://localhost:4200 + +# react NextJS demo +cd examples/nextjs-demo +pnpm install +pnpm run dev +# then navigate to http://localhost:3001 ``` You are now ready to contribute! @@ -16,7 +34,7 @@ You are now ready to contribute! Please respect the following [PULL_REQUEST_TEMPLATE.md](./PULL_REQUEST_TEMPLATE.md) -Packages are automaticaly published on npm when a PR is merged on main. +Packages are automatically published on npm when a PR is merged on main. Example of commit messages : diff --git a/FAQ.md b/FAQ.md new file mode 100644 index 000000000..0f91b78f1 --- /dev/null +++ b/FAQ.md @@ -0,0 +1,84 @@ + +# FAQ (Frequently Asked Questions) + +## Condition to make silent signing work + +Third party cookies are blocked by default on Safari. +They will be on all browsers very soon. +Today, silent sigin work on safari only if OIDC provider is on the same domain than client application. +Third party cookies are blocked. They will be on all browsers very soon. + +Example of domain that work: +- https://oidc-provider.axa.fr +- https://my-app.axa.fr + +Silent Signing use cookies with your OIDC provider to restore the session and retrieve tokens. +It open in background an IFrame to a specific page to your OIDC provider. + +## Condition to single logout work + +Same contraint for Single Logout that for "silent signing". +*Single logout allow your to disconnect from multiple OIDC Client session in one action event if your are connected on different application. + +## Condition to Monitor Session work + +Same constraint for "monitorSession" that for "silent signing". + +Monitor session allow you to be notified when your session is expired or when you are disconnected from your OIDC provider. + +## Tokens are always refreshed in background every seconds + +@axa-fr/oidc-client refresh automatically tokens in background. +It refresh token before its expiration to have always a valid token. + +If your tokens sessions Lifetime is too short, it will refresh it very often. +It start refreshing 120 seconds before expiration. + +So set a session validity upper from 3 minutes is a good idea. + +By default @axa-fr/oidc-client take the shortest lifetime between access_token and id_token. +You can use the option "token_renew_mode" to change this behavior. + + - **token_renew_mode**: String, // Optional, update tokens based on the selected token(s) lifetime: "access_token_or_id_token_invalid" (default), "access_token_invalid", "id_token_invalid" + +## Hard-reload in browser unregister ServiceWorker +https://github.com/AxaFrance/react-oidc/issues/1098 + +## window.crypto.subtle is unavailable over HTTP + +The library does not work over HTTP. You need to use HTTPS. +We think it is quite easy to setup nowadays event on local development. + +https://github.com/AxaFrance/react-oidc/issues/1028 + +## Why OIDC at Client side instead of BFF (Backend for Frontend) ? + +We think that @axa-fr/oidc-client is a good choice for the following reasons : +- Secure by default with the use of the Service Worker. OIDC at Server Side from a BFF can be secure but with a bad configuration it can be very insecure. With OIDC Client you reuse the OIDC Server configuration which generally is well configured by OIDC security experts, so secure. +- With OIDC at Server side, It is more difficult to fine grain the scope of the token. With OIDC at Client side you can acquire a new token with a new scope for specific scenario (multiple authentication). You can fine tune token lifetime and scope for each scenario. +- Sometime your Web Application does not need a server, OIDC at client side is a good choice because you do not need to spend money for a server juste for Authentication. For example for a payment, you can retrieve only an access_token valid 2 minutes without any refresh_token. +- OIDC at Client side can be also a good choice for a fast time to market. You can start with OIDC at Client side and then migrate to OIDC at Server side if you need it. The two solutions are compatible. + +

+ @axa-fr/oidc-client is one of the securest way to Authenticate. +
+ @axa-fr/oidc-client is one of the securest way to Authenticate. +

+ +

+ Service Worker lifetime drawback. +
+ Service Worker lifetime drawback. +

+ +

+ @axa-fr/oidc-client is the simplest and cheapest. +
+ @axa-fr/oidc-client is the simplest and cheapest. +

\ No newline at end of file diff --git a/MIGRATION_GUIDE_V6_TO_V7.md b/MIGRATION_GUIDE_V6_TO_V7.md new file mode 100644 index 000000000..7d6c39a85 --- /dev/null +++ b/MIGRATION_GUIDE_V6_TO_V7.md @@ -0,0 +1,4 @@ +# Migrating from v6 to v7 + +- Package `@axa-fr/vanilla-oidc` as been renamed to `@axa-fr/oidc-client` +- VanillaOidc class as been renamed to OidcClient \ No newline at end of file diff --git a/examples/oidc-client-demo/src/index.tsx b/examples/oidc-client-demo/src/index.tsx index f13b97615..fe65de5f7 100644 --- a/examples/oidc-client-demo/src/index.tsx +++ b/examples/oidc-client-demo/src/index.tsx @@ -1,4 +1,4 @@ -import { VanillaOidc } from '@axa-fr/oidc-client'; +import { OidcClient } from '@axa-fr/oidc-client'; class Router { getCustomHistory(){ const generateKey = () => @@ -88,7 +88,7 @@ export const configuration = { const href = window.location.href; -const vanillaOidc = VanillaOidc.getOrCreate(() => fetch)(configuration); +const vanillaOidc = OidcClient.getOrCreate(() => fetch)(configuration); console.log(href); diff --git a/packages/oidc-client/README.md b/packages/oidc-client/README.md index c8b7aa9f0..96fcb5471 100644 --- a/packages/oidc-client/README.md +++ b/packages/oidc-client/README.md @@ -1,4 +1,4 @@ -# @axa-fr/vanilla-oidc +# @axa-fr/oidc-client [![Continuous Integration](https://github.com/AxaGuilDEv/react-oidc/actions/workflows/npm-publish.yml/badge.svg)](https://github.com/AxaGuilDEv/react-oidc/actions/workflows/npm-publish.yml) [![Quality Gate](https://sonarcloud.io/api/project_badges/measure?project=AxaGuilDEv_react-oidc&metric=alert_status)](https://sonarcloud.io/dashboard?id=AxaGuilDEv_react-oidc) [![Reliability](https://sonarcloud.io/api/project_badges/measure?project=AxaGuilDEv_react-oidc&metric=reliability_rating)](https://sonarcloud.io/component_measures?id=AxaGuilDEv_react-oidc&metric=reliability_rating) [![Security](https://sonarcloud.io/api/project_badges/measure?project=AxaGuilDEv_react-oidc&metric=security_rating)](https://sonarcloud.io/component_measures?id=AxaGuilDEv_react-oidc&metric=security_rating) [![Code Corevage](https://sonarcloud.io/api/project_badges/measure?project=AxaGuilDEv_react-oidc&metric=coverage)](https://sonarcloud.io/component_measures?id=AxaGuilDEv_react-oidc&metric=Coverage) [![Twitter](https://img.shields.io/twitter/follow/GuildDEvOpen?style=social)](https://twitter.com/intent/follow?screen_name=GuildDEvOpen) @@ -16,23 +16,21 @@ Try the demo at https://icy-glacier-004ab4303.2.azurestaticapps.net/ ## About -@axa-fr/vanilla-oidc is a pure OIDC client library agnostic to any framework. It is used by @axa-fr/react-oidc and can be used by any framework. - -It is a real alternative to existing oidc-client libraries. +@axa-fr/oidc-client is: - **Secure** : - - With the use of Service Worker, your tokens (refresh_token and access_token) are not accessible to the JavaScript client code (big protection against XSRF attacks) - - OIDC using client side Code Credential Grant with PKCE only -- **Lightweight** -- **Simple** : - - refresh_token and access_token are auto refreshed in background - - with the use of the Service Worker, you do not need to inject the access_token in every fetch, you have only to configure `OidcTrustedDomains.js` file -- **No cookies problem** : You can disable silent signin (that internally use an iframe). For your information, your OIDC server should be in the same domain of your website in order to be able to send OIDC server cookies from your website via an internal IFRAME, else, you may encounter COOKIES problem. + - With the use of Service Worker, your tokens (refresh_token and access_token) are not accessible to the JavaScript client code (big protection against XSS attacks) + - OIDC using client side Code Credential Grant with pkce only +- **Lightweight** : Unpacked Size on npm is **274 kB** +- **Simple** + - refresh_token and access_token are auto refreshed in background + - with the use of the Service Worker, you do not need to inject the access_token in every fetch, you have only to configure OidcTrustedDomains.js file - **Multiple Authentication** : - - You can authenticate many times to the same provider with different scope (for example you can acquire a new 'payment' scope for a payment) - - You can authenticate to multiple different providers inside the same SPA (single page application) website + - You can authenticate many times to the same provider with different scope (for example you can acquire a new 'payment' scope for a payment) + - You can authenticate to multiple different providers inside the same SPA (single page application) website - **Flexible** : - - Work with Service Worker (more secure) and without for older browser (less secure) + - Work with Service Worker (more secure) and without for older browser (less secure). + - You can disable Service Worker if you want (but less secure) and just use SessionStorage or LocalStorage mode. ![](https://github.com/AxaGuilDEv/react-oidc/blob/master/docs/img/schema_pcke_client_side_with_service_worker.png?raw=true) @@ -61,64 +59,75 @@ The only file you should edit is "OidcTrustedDomains.js". // Domains used by OIDC server must be also declared here const trustedDomains = { - default: ["https://demo.duendesoftware.com", "https://www.myapi.com/users"], + default: { + oidcDomains :["https://demo.duendesoftware.com"], + accessTokenDomains : ["https://www.myapi.com/users"] + }, +}; + +// Service worker will continue to give access token to the JavaScript client +// Ideal to hide refresh token from client JavaScript, but to retrieve access_token for some +// scenarios which require it. For example, to send it via websocket connection. +trustedDomains.config_show_access_token = { + oidcDomains :["https://demo.duendesoftware.com"], + accessTokenDomains : ["https://www.myapi.com/users"], + showAccessToken: true }; ``` The code of the demo : ```js -import { VanillaOidc } from '@axa-fr/oidc-client' +import {OidcClient} from '@axa-fr/oidc-client' export const configuration = { - client_id: 'interactive.public.short', - redirect_uri: window.location.origin + '/#/authentication/callback', - silent_redirect_uri: window.location.origin + '/#/authentication/silent-callback', - scope: 'openid profile email api offline_access', - authority: 'https://demo.duendesoftware.com', - service_worker_relative_url:'/OidcServiceWorker.js', - service_worker_only: false, + client_id: 'interactive.public.short', + redirect_uri: window.location.origin + '/#/authentication/callback', + silent_redirect_uri: window.location.origin + '/#/authentication/silent-callback', + scope: 'openid profile email api offline_access', + authority: 'https://demo.duendesoftware.com', + service_worker_relative_url: '/OidcServiceWorker.js', + service_worker_only: false, }; const href = window.location.href; -const vanillaOidc = VanillaOidc.getOrCreate(() => fetch)(configuration); +const oidcClient = OidcClient.getOrCreate(() => fetch)(configuration); console.log(href); -vanillaOidc.tryKeepExistingSessionAsync().then(() => { - if(href.includes(configuration.redirect_uri)){ - vanillaOidc.loginCallbackAsync().then(()=>{ - window.location.href = "/"; - }); - document.body.innerHTML = `
+oidcClient.tryKeepExistingSessionAsync().then(() => { + if (href.includes(configuration.redirect_uri)) { + oidcClient.loginCallbackAsync().then(() => { + window.location.href = "/"; + }); + document.body.innerHTML = `

@axa-fr/oidc-client demo

Loading

`; - return - } + return + } - let tokens = vanillaOidc.tokens; + let tokens = oidcClient.tokens; - if(tokens){ + if (tokens) { - // @ts-ignore - window.logout = () => vanillaOidc.logoutAsync(); - document.body.innerHTML = `
+ // @ts-ignore + window.logout = () => oidcClient.logoutAsync(); + document.body.innerHTML = `

@axa-fr/oidc-client demo

Authenticated

-
${JSON.stringify(tokens,null,'\t')}
+
${JSON.stringify(tokens, null, '\t')}
` - - } - else { - // @ts-ignore - window.login= () => vanillaOidc.loginAsync("/"); - document.body.innerHTML = `
+ + } else { + // @ts-ignore + window.login = () => oidcClient.loginAsync("/"); + document.body.innerHTML = `

@axa-fr/oidc-client demo

` - } + } }) @@ -127,50 +136,178 @@ vanillaOidc.tryKeepExistingSessionAsync().then(() => { ## Configuration ```javascript -const configuration: { - client_id: PropTypes.string.isRequired, // oidc client id - redirect_uri: PropTypes.string.isRequired, // oidc redirect url - silent_redirect_uri: PropTypes.string, // Optional activate silent-signin that use cookies between OIDC server and client javascript to restore sessions - silent_login_uri: PropTypes.string, // Optional, route that trigger the signin - silent_login_timeout: PropTypes.number, // Optional default is 12000 milliseconds - scope: PropTypes.string.isRequired, // oidc scope (you need to set "offline_access") - authority: PropTypes.string.isRequired, - storage: Storage, // Default sessionStorage, you can set localStorage but it is less secure to XSS attacks - authority_configuration: PropTypes.shape({ - // Optional for providers that does not implement OIDC server auto discovery via a .wellknowurl - authorization_endpoint: PropTypes.string, - token_endpoint: PropTypes.string, - userinfo_endpoint: PropTypes.string, - end_session_endpoint: PropTypes.string, - revocation_endpoint: PropTypes.string, - check_session_iframe: PropTypes.string, - issuer: PropTypes.string, - }), - refresh_time_before_tokens_expiration_in_second: PropTypes.number, // default is 120 seconds - service_worker_relative_url: PropTypes.string, - service_worker_only: PropTypes.boolean, // default false - service_worker_convert_all_requests_to_cors: PropTypes.boolean, // force all requests that servie worker upgrades to have 'cors' mode. This allows setting authentication token on requests initialted by html parsing(e.g. img tags, download links etc). - extras: StringMap | undefined, // ex: {'prompt': 'consent', 'access_type': 'offline'} list of key/value that are send to the oidc server (more info: https://github.com/openid/AppAuth-JS) - token_request_extras: StringMap | undefined, // ex: {'prompt': 'consent', 'access_type': 'offline'} list of key/value that are send to the oidc server during token request (more info: https://github.com/openid/AppAuth-JS) - withCustomHistory: PropTypes.function, // Override history modification, return instance with replaceState(url, stateHistory) implemented (like History.replaceState()) - authority_time_cache_wellknowurl_in_second: 60 * 60, // Time to cache in second of openid wellknowurl, default is 1 hour - authority_timeout_wellknowurl_in_millisecond: 10000, // Timeout in millisecond of openid wellknowurl, default is 10 seconds, then error is throwed - monitor_session: PropTypes.boolean, // Add OpenId monitor session, default is false (more information https://openid.net/specs/openid-connect-session-1_0.html), if you need to set it to true consider https://infi.nl/nieuws/spa-necromancy/ - onLogoutFromAnotherTab: Function, // Optional, can be set to override the default behavior, this function is triggered when user with the same subject is logged out from another tab when session_monitor is active - onLogoutFromSameTab: Function, // Optional, can be set to override the default behavior, this function is triggered when user is logged out from same tab when session_monitor is active - token_renew_mode: PropTypes.string, // Optional, update tokens base on the selected token(s) lifetime: "access_token_or_id_token_invalid" (default), "access_token_invalid" , "id_token_invalid" - logout_tokens_to_invalidate : Array // Optional tokens to invalidate during logout, default: ['access_token', 'refresh_token'] - }; + +const configuration = { + client_id: String.isRequired, // oidc client id + redirect_uri: String.isRequired, // oidc redirect url + silent_redirect_uri: String, // Optional activate silent-signin that use cookies between OIDC server and client javascript to restore sessions + silent_login_uri: String, // Optional, route that triggers the signin + silent_login_timeout: Number, // Optional, default is 12000 milliseconds + scope: String.isRequired, // oidc scope (you need to set "offline_access") + authority: String.isRequired, + storage: Storage, // Default sessionStorage, you can set localStorage, but it is less secure against XSS attacks + authority_configuration: { + // Optional for providers that do not implement OIDC server auto-discovery via a .wellknown URL + authorization_endpoint: String, + token_endpoint: String, + userinfo_endpoint: String, + end_session_endpoint: String, + revocation_endpoint: String, + check_session_iframe: String, + issuer: String, + }, + refresh_time_before_tokens_expiration_in_second: Number, // default is 120 seconds + service_worker_relative_url: String, + service_worker_only: Boolean, // default false + service_worker_convert_all_requests_to_cors: Boolean, // force all requests that service worker upgrades to have 'cors' mode. This allows setting an authentication token on requests initiated by HTML parsing (e.g., img tags, download links, etc.). + extras: StringMap | undefined, // ex: {'prompt': 'consent', 'access_type': 'offline'} list of key/value that is sent to the OIDC server (more info: https://github.com/openid/AppAuth-JS) + token_request_extras: StringMap | undefined, // ex: {'prompt': 'consent', 'access_type': 'offline'} list of key/value that is sent to the OIDC server during token request (more info: https://github.com/openid/AppAuth-JS) + authority_time_cache_wellknowurl_in_second: 60 * 60, // Time to cache in seconds of the openid well-known URL, default is 1 hour + authority_timeout_wellknowurl_in_millisecond: 10000, // Timeout in milliseconds of the openid well-known URL, default is 10 seconds, then an error is thrown + monitor_session: Boolean, // Add OpenID monitor session, default is false (more information https://openid.net/specs/openid-connect-session-1_0.html), if you need to set it to true consider https://infi.nl/nieuws/spa-necromancy/ + token_renew_mode: String, // Optional, update tokens based on the selected token(s) lifetime: "access_token_or_id_token_invalid" (default), "access_token_invalid", "id_token_invalid" + logout_tokens_to_invalidate: Array, // Optional tokens to invalidate during logout, default: ['access_token', 'refresh_token'] +}; +``` + +## API + +```javascript +/** + * OidcClient is a class that acts as a wrapper around the `Oidc` object. It provides methods to handle event subscriptions, logins, logouts, token renewals, user information, etc. + */ +export class OidcClient { + /** + * Creates an instance of OidcClient using a provided `Oidc` object. + * @param oidc The instance of the underlying Oidc object to use. + */ + constructor(oidc: Oidc); + + /** + * Subscribes a function to events emitted by the underlying Oidc object. + * @param func The function to be called when an event is emitted. + * @returns A string that identifies the subscription and can be used to unsubscribe later. + */ + subscribeEvents(func: EventSubscriber): string; + + /** + * Removes a subscription to a specified event. + * @param id The identifier of the subscription to remove, obtained during the initial subscription. + */ + removeEventSubscription(id: string): void; + + /** + * Publishes an event with the specified name and associated data. + * @param eventName The name of the event to publish. + * @param data The data associated with the event. + */ + publishEvent(eventName: string, data: any): void; + + /** + * Creates a new instance of OidcClient using a fetch retrieval function `getFetch`, with a given OIDC configuration and an optional name. + * @param getFetch The function to retrieve the `Fetch` object. + * @param configuration The OIDC configuration to use for creating the OidcClient instance. + * @param name The optional name for the created OidcClient instance. + * @returns A new instance of OidcClient with the specified configuration. + */ + static getOrCreate(getFetch: () => Fetch)(configuration: OidcConfiguration, name?: string): OidcClient; + + /** + * Retrieves an existing OidcClient instance with the specified name, or creates a new instance if it does not exist. + * @param name The name of the OidcClient instance to retrieve. + * @returns The existing OidcClient instance or a new instance with the specified name. + */ + static get(name?: string): OidcClient; + + /** + * The names of the events supported by the Oidc class. + */ + static eventNames: Oidc.eventNames; + + /** + * Attempts to keep the existing user session by calling the function of the underlying Oidc object. + * @returns A promise resolved with `true` if the user session was kept, otherwise `false`. + */ + tryKeepExistingSessionAsync(): Promise; + + /** + * Starts the OIDC login process with specified options. + * @param callbackPath The callback path for authentication. + * @param extras Additional parameters to send to the OIDC server during the login request. + * @param isSilentSignin Indicates if the login is silent. + * @param scope The OIDC scope for the login request. + * @param silentLoginOnly Indicates if only silent login is allowed. + * @returns A promise resolved with the login information, or rejected with an error. + */ + loginAsync(callbackPath?: string, extras?: StringMap, isSilentSignin?: boolean, scope?: string, silentLoginOnly?: boolean): Promise; + + /** + * Starts the OIDC logout process with specified options. + * @param callbackPathOrUrl The callback path or URL to use after logout. + * @param extras Additional parameters to send to the OIDC server during the logout request. + * @returns A promise resolved when the logout is completed. + */ + logoutAsync(callbackPathOrUrl?: string | null | undefined, extras?: StringMap): Promise; + + /** + * Performs the silent login process and retrieves user information. + * @returns A promise resolved when the silent login process is completed. + */ + silentLoginCallbackAsync(): Promise; + + /** + * Renews the user's OIDC tokens. + * @param extras Additional parameters to send to the OIDC server during the token renewal request. + * @returns A promise resolved when the token renewal is completed. + */ + renewTokensAsync(extras?: StringMap): Promise; + + /** + * Performs the callback process after a successful login and automatically renews tokens. + * @returns A promise resolved with the callback information, or rejected with an error. + */ + loginCallbackAsync(): Promise; + + /** + * Retrieves the current OIDC tokens for the user. + */ + get tokens(): Tokens; + + /** + * Retrieves the current OIDC configuration used by the OidcClient instance. + */ + get configuration(): OidcConfiguration; + + /** + * Retrieves the valid OIDC token for the user. + * @param waitMs The maximum wait time in milliseconds to obtain a valid token. + * @param numberWait The number of attempts to obtain a valid token. + * @returns A promise resolved with the valid token, or rejected with an error. + */ + async getValidTokenAsync(waitMs = 200, numberWait = 50): Promise; + + /** + * Retrieves OIDC user information. + * @param noCache Indicates whether user information should be retrieved bypassing the cache. + * @returns A promise resolved with the user information, or rejected with an error. + */ + async userInfoAsync(noCache = false): Promise; +} + ``` ## Run The Demo ```sh -git clone https://github.com/AxaGuilDEv/react-oidc.git -cd react-oidc/packages/vanilla-demo -npm install -npm start -# then navigate to http://localhost:3000 +git clone https://github.com/AxaFrance/oidc-client.git +cd oidc-client + +# oidc client demo +cd /examples/oidc-client-demo +pnpm install +pnpm start +# then navigate to http://localhost:5174 + ``` ## How It Works @@ -185,7 +322,7 @@ More information about OIDC ## Hash route -`vanilla-oidc` work also with hash route. +`@axa-fr/oidc-client` work also with hash route. ```javascript export const configurationIdentityServerWithHash = { @@ -200,10 +337,3 @@ export const configurationIdentityServerWithHash = { service_worker_only: false, }; ``` - -## Service Worker Support - -- Firefox : tested on Firefox 98.0.2 -- Chrome/Edge : tested on version upper to 90 -- Opera : tested on version upper to 80 -- Safari : tested on Safari/605.1.15 diff --git a/packages/oidc-client/src/index.ts b/packages/oidc-client/src/index.ts index 8e6bbd857..ef6a82997 100644 --- a/packages/oidc-client/src/index.ts +++ b/packages/oidc-client/src/index.ts @@ -7,4 +7,4 @@ export type { OidcConfiguration, StringMap, } from './types.js'; -export { type OidcUserInfo, VanillaOidc } from './vanillaOidc.js'; +export { type OidcUserInfo, OidcClient } from './oidcClient.js'; diff --git a/packages/oidc-client/src/vanillaOidc.ts b/packages/oidc-client/src/oidcClient.ts similarity index 91% rename from packages/oidc-client/src/vanillaOidc.ts rename to packages/oidc-client/src/oidcClient.ts index e2f3c7477..c542e16d7 100644 --- a/packages/oidc-client/src/vanillaOidc.ts +++ b/packages/oidc-client/src/oidcClient.ts @@ -6,7 +6,7 @@ export interface EventSubscriber { (name: string, data:any); } -export class VanillaOidc { +export class OidcClient { private _oidc: Oidc; constructor(oidc: Oidc) { this._oidc = oidc; @@ -24,12 +24,12 @@ export class VanillaOidc { this._oidc.publishEvent(eventName, data); } - static getOrCreate = (getFetch : () => Fetch) => (configuration:OidcConfiguration, name = 'default'): VanillaOidc => { - return new VanillaOidc(Oidc.getOrCreate(getFetch)(configuration, name)); + static getOrCreate = (getFetch : () => Fetch) => (configuration:OidcConfiguration, name = 'default'): OidcClient => { + return new OidcClient(Oidc.getOrCreate(getFetch)(configuration, name)); }; - static get(name = 'default'):VanillaOidc { - return new VanillaOidc(Oidc.get(name)); + static get(name = 'default'):OidcClient { + return new OidcClient(Oidc.get(name)); } static eventNames = Oidc.eventNames; diff --git a/packages/react-oidc/README.md b/packages/react-oidc/README.md index 102b48cfa..3ee51d99b 100644 --- a/packages/react-oidc/README.md +++ b/packages/react-oidc/README.md @@ -1,13 +1,21 @@ # @axa-fr/react-oidc -[![Continuous Integration](https://github.com/AxaGuilDEv/react-oidc/actions/workflows/npm-publish.yml/badge.svg)](https://github.com/AxaGuilDEv/react-oidc/actions/workflows/npm-publish.yml) +[![Continuous Integration](https://github.com/AxaFrance/react-oidc/actions/workflows/npm-publish.yml/badge.svg)](https://github.com/AxaFrance/react-oidc/actions/workflows/npm-publish.yml) [![Quality Gate](https://sonarcloud.io/api/project_badges/measure?project=AxaGuilDEv_react-oidc&metric=alert_status)](https://sonarcloud.io/dashboard?id=AxaGuilDEv_react-oidc) [![Reliability](https://sonarcloud.io/api/project_badges/measure?project=AxaGuilDEv_react-oidc&metric=reliability_rating)](https://sonarcloud.io/component_measures?id=AxaGuilDEv_react-oidc&metric=reliability_rating) [![Security](https://sonarcloud.io/api/project_badges/measure?project=AxaGuilDEv_react-oidc&metric=security_rating)](https://sonarcloud.io/component_measures?id=AxaGuilDEv_react-oidc&metric=security_rating) [![Code Corevage](https://sonarcloud.io/api/project_badges/measure?project=AxaGuilDEv_react-oidc&metric=coverage)](https://sonarcloud.io/component_measures?id=AxaGuilDEv_react-oidc&metric=Coverage) [![Twitter](https://img.shields.io/twitter/follow/GuildDEvOpen?style=social)](https://twitter.com/intent/follow?screen_name=GuildDEvOpen) -Try the demo at https://black-rock-0dc6b0d03.1.azurestaticapps.net/ +**@axa-fr/oidc-client** the lightest and securest library to manage authentication with OpenID Connect (OIDC) and OAuth2 protocol. It is compatible with all OIDC providers. +**@axa-fr/oidc-client** is a pure javascript library. It works with any JavaScript framework or library. -![Sample React OIDC](https://github.com/AxaGuilDEv/react-oidc/blob/master/docs/img/introduction.gif?raw=true) +We provide a wrapper **@axa-fr/react-oidc** for **React** (compatible next.js) and we expect soon to provide one for **Vue**, **Angular** and **Svelte**. -A set of react components to make OIDC (OpenID Connect) client easy. It aim to simplify OAuth authentication between multiples providers. +- Try the react demo at https://black-rock-0dc6b0d03.1.azurestaticapps.net/ (most advanced) +- Try the pure javascript demo at https://icy-glacier-004ab4303.2.azurestaticapps.net/ + +

+ Sample React Oicd +

- [About](#about) - [Getting Started](#getting-started) @@ -20,22 +28,21 @@ A set of react components to make OIDC (OpenID Connect) client easy. It aim to s ## About -Easy set up of OIDC for react. -It is a real alternative to existing oidc-client libraries. +@axa-fr/react is: - **Secure** : - - With the use of Service Worker, your tokens (refresh_token and access_token) are not accessible to the JavaScript client code (big protection against XSRF attacks) - - OIDC using client side Code Credential Grant with PKCE only -- **Lightweight** -- **Simple** : + - With the use of Service Worker, your tokens (refresh_token and access_token) are not accessible to the JavaScript client code (big protection against XSS attacks) + - OIDC using client side Code Credential Grant with pkce only +- **Lightweight** : Unpacked Size on npm is **274 kB** +- **Simple** - refresh_token and access_token are auto refreshed in background - - with the use of the Service Worker, you do not need to inject the access_token in every fetch, you have only to configure `OidcTrustedDomains.js` file -- **No cookies problem** : You can disable silent signin (that internally use an iframe). For your information, your OIDC server should be in the same domain of your website in order to be able to send OIDC server cookies from your website via an internal IFRAME, else, you may encounter COOKIES problem. + - with the use of the Service Worker, you do not need to inject the access_token in every fetch, you have only to configure OidcTrustedDomains.js file - **Multiple Authentication** : - You can authenticate many times to the same provider with different scope (for example you can acquire a new 'payment' scope for a payment) - You can authenticate to multiple different providers inside the same SPA (single page application) website - **Flexible** : - - Work with Service Worker (more secure) and without for older browser (less secure) + - Work with Service Worker (more secure) and without for older browser (less secure). + - You can disable Service Worker if you want (but less secure) and just use SessionStorage or LocalStorage mode. ![](https://github.com/AxaGuilDEv/react-oidc/blob/master/docs/img/schema_pcke_client_side_with_service_worker.png?raw=true) @@ -63,23 +70,32 @@ The only file you should edit is "OidcTrustedDomains.js". // Domains used by OIDC server must be also declared here const trustedDomains = { - default: ["https://demo.duendesoftware.com", "https://www.myapi.com/users"], + default: { + oidcDomains :["https://demo.duendesoftware.com"], + accessTokenDomains : ["https://www.myapi.com/users"] + }, }; // Service worker will continue to give access token to the JavaScript client // Ideal to hide refresh token from client JavaScript, but to retrieve access_token for some // scenarios which require it. For example, to send it via websocket connection. -trustedDomains.config_show_access_token = { domains : ["https://demo.duendesoftware.com"], showAccessToken: true }; +trustedDomains.config_show_access_token = { + oidcDomains :["https://demo.duendesoftware.com"], + accessTokenDomains : ["https://www.myapi.com/users"], + showAccessToken: true +}; ``` ## Run The Demo ```sh -git clone https://github.com/AxaGuilDEv/react-oidc.git -cd react-oidc/packages/react -npm install -npm start +git clone https://github.com/AxaFrance/oidc-client.git +cd oidc-client +pnpm install +cd /examples/react-oidc-demo +pnpm install +pnpm start # then navigate to http://localhost:4200 ``` @@ -111,7 +127,7 @@ const configuration = { window.location.origin + "/authentication/silent-callback", scope: "openid profile email api offline_access", // offline_access scope allow your client to retrieve the refresh_token authority: "https://demo.duendesoftware.com", - service_worker_relative_url: "/OidcServiceWorker.js", + service_worker_relative_url: "/OidcServiceWorker.js", // just comment that line to disable service worker mode service_worker_only: false, }; @@ -128,49 +144,50 @@ render(, document.getElementById("root")); ``` ```javascript -const propTypes = { - loadingComponent: PropTypes.elementType, // you can inject your own loading component - sessionLostComponent: PropTypes.elementType, // you can inject your own session lost component - authenticating: PropTypes.elementType, // you can inject your own authenticationg component - authenticatingErrorComponent: PropTypes.elementType, - callbackSuccessComponent: PropTypes.elementType, // you can inject your own call back success component - serviceWorkerNotSupportedComponent: PropTypes.elementType, // you can inject your page that explain your require a more modern browser - onSessionLost: PropTypes.function, // If set "sessionLostComponent" is not displayed and onSessionLost callback is called instead - configuration: PropTypes.shape({ - client_id: PropTypes.string.isRequired, // oidc client id - redirect_uri: PropTypes.string.isRequired, // oidc redirect url - silent_redirect_uri: PropTypes.string, // Optional activate silent-signin that use cookies between OIDC server and client javascript to restore sessions - silent_login_uri: PropTypes.string, // Optional, route that trigger the signin - silent_login_timeout: PropTypes.number, // Optional default is 12000 milliseconds - scope: PropTypes.string.isRequired, // oidc scope (you need to set "offline_access") - authority: PropTypes.string.isRequired, - storage: Storage, // Default sessionStorage, you can set localStorage but it is less secure to XSS attacks - authority_configuration: PropTypes.shape({ - // Optional for providers that does not implement OIDC server auto discovery via a .wellknowurl - authorization_endpoint: PropTypes.string, - token_endpoint: PropTypes.string, - userinfo_endpoint: PropTypes.string, - end_session_endpoint: PropTypes.string, - revocation_endpoint: PropTypes.string, - check_session_iframe: PropTypes.string, - issuer: PropTypes.string, - }), - refresh_time_before_tokens_expiration_in_second: PropTypes.number, // default is 120 seconds - service_worker_relative_url: PropTypes.string, - service_worker_only: PropTypes.boolean, // default false - service_worker_convert_all_requests_to_cors: PropTypes.boolean, // force all requests that servie worker upgrades to have 'cors' mode. This allows setting authentication token on requests initialted by html parsing(e.g. img tags, download links etc). - extras: StringMap | undefined, // ex: {'prompt': 'consent', 'access_type': 'offline'} list of key/value that are send to the oidc server (more info: https://github.com/openid/AppAuth-JS) - token_request_extras: StringMap | undefined, // ex: {'prompt': 'consent', 'access_type': 'offline'} list of key/value that are send to the oidc server during token request (more info: https://github.com/openid/AppAuth-JS) - withCustomHistory: PropTypes.function, // Override history modification, return instance with replaceState(url, stateHistory) implemented (like History.replaceState()) - authority_time_cache_wellknowurl_in_second: 60 * 60, // Time to cache in second of openid wellknowurl, default is 1 hour - authority_timeout_wellknowurl_in_millisecond: 10000, // Timeout in millisecond of openid wellknowurl, default is 10 seconds, then error is throwed - monitor_session: PropTypes.boolean, // Add OpenId monitor session, default is false (more information https://openid.net/specs/openid-connect-session-1_0.html), if you need to set it to true consider https://infi.nl/nieuws/spa-necromancy/ - onLogoutFromAnotherTab: Function, // Optional, can be set to override the default behavior, this function is triggered when user with the same subject is logged out from another tab when session_monitor is active - onLogoutFromSameTab: Function, // Optional, can be set to override the default behavior, this function is triggered when user is logged out from same tab when session_monitor is active - token_renew_mode: PropTypes.string, // Optional, update tokens base on the selected token(s) lifetime: "access_token_or_id_token_invalid" (default), "access_token_invalid" , "id_token_invalid" - logout_tokens_to_invalidate : Array // Optional tokens to invalidate during logout, default: ['access_token', 'refresh_token'] - }).isRequired, +const configuration = { + loadingComponent: ReactComponent, // you can inject your own loading component + sessionLostComponent: ReactComponent, // you can inject your own session lost component + authenticating: ReactComponent, // you can inject your own authenticating component + authenticatingErrorComponent: ReactComponent, + callbackSuccessComponent: ReactComponent, // you can inject your own call back success component + serviceWorkerNotSupportedComponent: ReactComponent, // you can inject your page that explains you require a more modern browser + onSessionLost: Function, // If set, "sessionLostComponent" is not displayed, and onSessionLost callback is called instead + configuration: { + client_id: String.isRequired, // oidc client id + redirect_uri: String.isRequired, // oidc redirect url + silent_redirect_uri: String, // Optional activate silent-signin that use cookies between OIDC server and client javascript to restore sessions + silent_login_uri: String, // Optional, route that triggers the signin + silent_login_timeout: Number, // Optional, default is 12000 milliseconds + scope: String.isRequired, // oidc scope (you need to set "offline_access") + authority: String.isRequired, + storage: Storage, // Default sessionStorage, you can set localStorage, but it is less secure against XSS attacks + authority_configuration: { + // Optional for providers that do not implement OIDC server auto-discovery via a .wellknown URL + authorization_endpoint: String, + token_endpoint: String, + userinfo_endpoint: String, + end_session_endpoint: String, + revocation_endpoint: String, + check_session_iframe: String, + issuer: String, + }, + refresh_time_before_tokens_expiration_in_second: Number, // default is 120 seconds + service_worker_relative_url: String, + service_worker_only: Boolean, // default false + service_worker_convert_all_requests_to_cors: Boolean, // force all requests that service worker upgrades to have 'cors' mode. This allows setting an authentication token on requests initiated by HTML parsing (e.g., img tags, download links, etc.). + extras: StringMap | undefined, // ex: {'prompt': 'consent', 'access_type': 'offline'} list of key/value that is sent to the OIDC server (more info: https://github.com/openid/AppAuth-JS) + token_request_extras: StringMap | undefined, // ex: {'prompt': 'consent', 'access_type': 'offline'} list of key/value that is sent to the OIDC server during token request (more info: https://github.com/openid/AppAuth-JS) + withCustomHistory: Function, // Override history modification, return an instance with replaceState(url, stateHistory) implemented (like History.replaceState()) + authority_time_cache_wellknowurl_in_second: 60 * 60, // Time to cache in seconds of the openid well-known URL, default is 1 hour + authority_timeout_wellknowurl_in_millisecond: 10000, // Timeout in milliseconds of the openid well-known URL, default is 10 seconds, then an error is thrown + monitor_session: Boolean, // Add OpenID monitor session, default is false (more information https://openid.net/specs/openid-connect-session-1_0.html), if you need to set it to true consider https://infi.nl/nieuws/spa-necromancy/ + onLogoutFromAnotherTab: Function, // Optional, can be set to override the default behavior, this function is triggered when a user with the same subject is logged out from another tab when session_monitor is active + onLogoutFromSameTab: Function, // Optional, can be set to override the default behavior, this function is triggered when a user is logged out from the same tab when session_monitor is active + token_renew_mode: String, // Optional, update tokens based on the selected token(s) lifetime: "access_token_or_id_token_invalid" (default), "access_token_invalid", "id_token_invalid" + logout_tokens_to_invalidate: Array, // Optional tokens to invalidate during logout, default: ['access_token', 'refresh_token'] + }.isRequired, }; + ``` ## How to consume @@ -626,10 +643,3 @@ export const configurationIdentityServerWithHash = { service_worker_only: false, }; ``` - -## Service Worker Support - -- Firefox : tested on Firefox 98.0.2 -- Chrome/Edge : tested on version upper to 90 -- Opera : tested on version upper to 80 -- Safari : tested on Safari/605.1.15 diff --git a/packages/react-oidc/src/FetchToken.tsx b/packages/react-oidc/src/FetchToken.tsx index 160bbcadf..e8d1c9e59 100644 --- a/packages/react-oidc/src/FetchToken.tsx +++ b/packages/react-oidc/src/FetchToken.tsx @@ -1,4 +1,4 @@ -import { Fetch, VanillaOidc } from '@axa-fr/oidc-client'; +import { Fetch, OidcClient } from '@axa-fr/oidc-client'; import { useCallback } from 'react'; export interface ComponentWithOidcFetchProps { @@ -7,7 +7,7 @@ export interface ComponentWithOidcFetchProps { const defaultConfigurationName = 'default'; -const fetchWithToken = (fetch: Fetch, getOidcWithConfigurationName: () => VanillaOidc | null) => async (...params: Parameters) => { +const fetchWithToken = (fetch: Fetch, getOidcWithConfigurationName: () => OidcClient | null) => async (...params: Parameters) => { const [url, options, ...rest] = params; const optionTmp = options ? { ...options } : { method: 'GET' }; @@ -45,7 +45,7 @@ export const withOidcFetch = (fetch: Fetch = null, configurationName = defaultCo export const useOidcFetch = (fetch: Fetch = null, configurationName = defaultConfigurationName) => { const previousFetch = fetch || window.fetch; - const getOidc = VanillaOidc.get; + const getOidc = OidcClient.get; const memoizedFetchCallback = useCallback( (input: RequestInfo | URL, init?: RequestInit) => { diff --git a/packages/react-oidc/src/OidcProvider.tsx b/packages/react-oidc/src/OidcProvider.tsx index 6ec25b693..347fc412b 100644 --- a/packages/react-oidc/src/OidcProvider.tsx +++ b/packages/react-oidc/src/OidcProvider.tsx @@ -1,4 +1,4 @@ -import { Fetch, getFetchDefault, OidcConfiguration, VanillaOidc } from '@axa-fr/oidc-client'; +import { Fetch, getFetchDefault, OidcConfiguration, OidcClient } from '@axa-fr/oidc-client'; import { ComponentType, FC, PropsWithChildren, useEffect, useState } from 'react'; import AuthenticatingError from './core/default-component/AuthenticateError.component.js'; @@ -8,7 +8,7 @@ import OidcRoutes from './core/routes/OidcRoutes.js'; import { CustomHistory } from './core/routes/withRouter.js'; export type oidcContext = { - (name?: string): VanillaOidc; + (name?: string): OidcClient; }; const defaultEventState = { name: '', data: null }; @@ -38,7 +38,7 @@ export type OidcSessionProps = { const OidcSession: FC> = ({ loadingComponent, children, configurationName }) => { const [isLoading, setIsLoading] = useState(true); - const getOidc = VanillaOidc.get; + const getOidc = OidcClient.get; const oidc = getOidc(configurationName); useEffect(() => { let isMounted = true; @@ -94,7 +94,7 @@ export const OidcProvider: FC> = ({ getFetch = null, }) => { const getOidc = (configurationName = 'default') => { - return VanillaOidc.getOrCreate(getFetch ?? getFetchDefault)(configuration, configurationName); + return OidcClient.getOrCreate(getFetch ?? getFetchDefault)(configuration, configurationName); }; // eslint-disable-next-line @typescript-eslint/naming-convention const [loading, setLoading] = useState(true); @@ -117,30 +117,30 @@ export const OidcProvider: FC> = ({ useEffect(() => { const oidc = getOidc(configurationName); const newSubscriptionId = oidc.subscribeEvents((name, data) => { - if (name === VanillaOidc.eventNames.refreshTokensAsync_error || name === VanillaOidc.eventNames.syncTokensAsync_error) { + if (name === OidcClient.eventNames.refreshTokensAsync_error || name === OidcClient.eventNames.syncTokensAsync_error) { if (onSessionLost != null) { onSessionLost(); return; } setEvent({ name, data }); - } else if (name === VanillaOidc.eventNames.logout_from_another_tab) { + } else if (name === OidcClient.eventNames.logout_from_another_tab) { if (onLogoutFromAnotherTab != null) { onLogoutFromAnotherTab(); return; } setEvent({ name, data }); - } else if (name === VanillaOidc.eventNames.logout_from_same_tab) { + } else if (name === OidcClient.eventNames.logout_from_same_tab) { if (onLogoutFromSameTab != null) { onLogoutFromSameTab(); } // setEvent({name, data}); - } else if (name === VanillaOidc.eventNames.loginAsync_begin || - name === VanillaOidc.eventNames.loginCallbackAsync_end || - name === VanillaOidc.eventNames.loginAsync_error || - name === VanillaOidc.eventNames.loginCallbackAsync_error + } else if (name === OidcClient.eventNames.loginAsync_begin || + name === OidcClient.eventNames.loginCallbackAsync_end || + name === OidcClient.eventNames.loginAsync_error || + name === OidcClient.eventNames.loginCallbackAsync_error ) { setEvent({ name, data }); - } else if (name === VanillaOidc.eventNames.service_worker_not_supported_by_browser && configuration.service_worker_only === true) { + } else if (name === OidcClient.eventNames.service_worker_not_supported_by_browser && configuration.service_worker_only === true) { setEvent({ name, data }); } }); @@ -165,22 +165,22 @@ export const OidcProvider: FC> = ({ const oidc = getOidc(configurationName); const eventName = event.name; switch (eventName) { - case VanillaOidc.eventNames.service_worker_not_supported_by_browser: + case OidcClient.eventNames.service_worker_not_supported_by_browser: return ( ); - case VanillaOidc.eventNames.loginAsync_begin: + case OidcClient.eventNames.loginAsync_begin: return ( ); - case VanillaOidc.eventNames.loginAsync_error: - case VanillaOidc.eventNames.loginCallbackAsync_error: + case OidcClient.eventNames.loginAsync_error: + case OidcClient.eventNames.loginCallbackAsync_error: return ( ); - case VanillaOidc.eventNames.refreshTokensAsync_error: - case VanillaOidc.eventNames.syncTokensAsync_error: - case VanillaOidc.eventNames.logout_from_another_tab: + case OidcClient.eventNames.refreshTokensAsync_error: + case OidcClient.eventNames.syncTokensAsync_error: + case OidcClient.eventNames.logout_from_another_tab: return ( ); diff --git a/packages/react-oidc/src/OidcSecure.tsx b/packages/react-oidc/src/OidcSecure.tsx index a83c4e00c..0a44df84e 100644 --- a/packages/react-oidc/src/OidcSecure.tsx +++ b/packages/react-oidc/src/OidcSecure.tsx @@ -1,4 +1,4 @@ -import { StringMap, VanillaOidc } from '@axa-fr/oidc-client'; +import { StringMap, OidcClient } from '@axa-fr/oidc-client'; import { FC, PropsWithChildren, useEffect } from 'react'; export type OidcSecureProps = { @@ -8,7 +8,7 @@ export type OidcSecureProps = { }; export const OidcSecure: FC> = ({ children, callbackPath = null, extras = null, configurationName = 'default' }) => { - const getOidc = VanillaOidc.get; + const getOidc = OidcClient.get; const oidc = getOidc(configurationName); useEffect(() => { if (!oidc.tokens) { diff --git a/packages/react-oidc/src/ReactOidc.tsx b/packages/react-oidc/src/ReactOidc.tsx index 4d6e9a122..005e44710 100644 --- a/packages/react-oidc/src/ReactOidc.tsx +++ b/packages/react-oidc/src/ReactOidc.tsx @@ -1,4 +1,4 @@ -import { StringMap, VanillaOidc } from '@axa-fr/oidc-client'; +import { StringMap, OidcClient } from '@axa-fr/oidc-client'; import { useEffect, useState } from 'react'; const defaultConfigurationName = 'default'; @@ -17,7 +17,7 @@ const defaultIsAuthenticated = (getOidc: GetOidcFn, configurationName: string) = }; export const useOidc = (configurationName = defaultConfigurationName) => { - const getOidc = VanillaOidc.get; + const getOidc = OidcClient.get; const [isAuthenticated, setIsAuthenticated] = useState(defaultIsAuthenticated(getOidc, configurationName)); useEffect(() => { @@ -26,7 +26,7 @@ export const useOidc = (configurationName = defaultConfigurationName) => { setIsAuthenticated(defaultIsAuthenticated(getOidc, configurationName)); // eslint-disable-next-line @typescript-eslint/no-unused-vars const newSubscriptionId = oidc.subscribeEvents((name: string, data: any) => { - if (name === VanillaOidc.eventNames.logout_from_another_tab || name === VanillaOidc.eventNames.logout_from_same_tab || name === VanillaOidc.eventNames.token_aquired) { + if (name === OidcClient.eventNames.logout_from_another_tab || name === OidcClient.eventNames.logout_from_same_tab || name === OidcClient.eventNames.token_aquired) { if (isMounted) { setIsAuthenticated(defaultIsAuthenticated(getOidc, configurationName)); } @@ -65,7 +65,7 @@ export const useOidc = (configurationName = defaultConfigurationName) => { const accessTokenInitialState = { accessToken: null, accessTokenPayload: null }; const initTokens = (configurationName: string) => { - const getOidc = VanillaOidc.get; + const getOidc = OidcClient.get; const oidc = getOidc(configurationName); if (oidc.tokens) { const tokens = oidc.tokens; @@ -83,7 +83,7 @@ export type OidcAccessToken = { } export const useOidcAccessToken = (configurationName = defaultConfigurationName) => { - const getOidc = VanillaOidc.get; + const getOidc = OidcClient.get; const [state, setAccessToken] = useState(initTokens(configurationName)); useEffect(() => { @@ -95,12 +95,12 @@ export const useOidcAccessToken = (configurationName = defaultConfigurationName) } // eslint-disable-next-line @typescript-eslint/no-unused-vars const newSubscriptionId = oidc.subscribeEvents((name: string, data: any) => { - if (name === VanillaOidc.eventNames.token_renewed || - name === VanillaOidc.eventNames.token_aquired || - name === VanillaOidc.eventNames.logout_from_another_tab || - name === VanillaOidc.eventNames.logout_from_same_tab || - name === VanillaOidc.eventNames.refreshTokensAsync_error || - name === VanillaOidc.eventNames.syncTokensAsync_error) { + if (name === OidcClient.eventNames.token_renewed || + name === OidcClient.eventNames.token_aquired || + name === OidcClient.eventNames.logout_from_another_tab || + name === OidcClient.eventNames.logout_from_same_tab || + name === OidcClient.eventNames.refreshTokensAsync_error || + name === OidcClient.eventNames.syncTokensAsync_error) { if (isMounted) { const tokens = oidc.tokens; setAccessToken(tokens != null ? { accessToken: tokens.accessToken, accessTokenPayload: tokens.accessTokenPayload } : accessTokenInitialState); @@ -119,7 +119,7 @@ export const useOidcAccessToken = (configurationName = defaultConfigurationName) const idTokenInitialState = { idToken: null, idTokenPayload: null }; const initIdToken = (configurationName: string) => { - const getOidc = VanillaOidc.get; + const getOidc = OidcClient.get; const oidc = getOidc(configurationName); if (oidc.tokens) { const tokens = oidc.tokens; @@ -134,7 +134,7 @@ export type OidcIdToken = { } export const useOidcIdToken = (configurationName = defaultConfigurationName) => { - const getOidc = VanillaOidc.get; + const getOidc = OidcClient.get; const [state, setIDToken] = useState(initIdToken(configurationName)); useEffect(() => { @@ -146,12 +146,12 @@ export const useOidcIdToken = (configurationName = defaultConfigurationName) => } // eslint-disable-next-line @typescript-eslint/no-unused-vars const newSubscriptionId = oidc.subscribeEvents((name: string, data: any) => { - if (name === VanillaOidc.eventNames.token_renewed || - name === VanillaOidc.eventNames.token_aquired || - name === VanillaOidc.eventNames.logout_from_another_tab || - name === VanillaOidc.eventNames.logout_from_same_tab || - name === VanillaOidc.eventNames.refreshTokensAsync_error || - name === VanillaOidc.eventNames.syncTokensAsync_error) { + if (name === OidcClient.eventNames.token_renewed || + name === OidcClient.eventNames.token_aquired || + name === OidcClient.eventNames.logout_from_another_tab || + name === OidcClient.eventNames.logout_from_same_tab || + name === OidcClient.eventNames.refreshTokensAsync_error || + name === OidcClient.eventNames.syncTokensAsync_error) { if (isMounted) { const tokens = oidc.tokens; setIDToken(tokens != null ? { idToken: tokens.idToken, idTokenPayload: tokens.idTokenPayload } : idTokenInitialState); diff --git a/packages/react-oidc/src/User.ts b/packages/react-oidc/src/User.ts index c889d0319..0b1b6a712 100644 --- a/packages/react-oidc/src/User.ts +++ b/packages/react-oidc/src/User.ts @@ -1,4 +1,4 @@ -import { type OidcUserInfo, VanillaOidc } from '@axa-fr/oidc-client'; +import { type OidcUserInfo, OidcClient } from '@axa-fr/oidc-client'; import { useEffect, useState } from 'react'; export enum OidcUserStatus { @@ -17,7 +17,7 @@ export const useOidcUser = (configuration const [oidcUser, setOidcUser] = useState>({ user: null, status: OidcUserStatus.Unauthenticated }); const [oidcUserId, setOidcUserId] = useState(''); - const oidc = VanillaOidc.get(configurationName); + const oidc = OidcClient.get(configurationName); useEffect(() => { let isMounted = true; if (oidc && oidc.tokens) { diff --git a/packages/react-oidc/src/core/default-component/Callback.component.tsx b/packages/react-oidc/src/core/default-component/Callback.component.tsx index ee8474032..4e8b8154f 100644 --- a/packages/react-oidc/src/core/default-component/Callback.component.tsx +++ b/packages/react-oidc/src/core/default-component/Callback.component.tsx @@ -1,4 +1,4 @@ -import { VanillaOidc } from '@axa-fr/oidc-client'; +import { OidcClient } from '@axa-fr/oidc-client'; import { ComponentType, useEffect, useState } from 'react'; import { getCustomHistory } from '../routes/withRouter.js'; @@ -16,7 +16,7 @@ const CallbackManager: ComponentType = ({ callBackError, callBackSuccess, c useEffect(() => { let isMounted = true; const playCallbackAsync = async () => { - const getOidc = VanillaOidc.get; + const getOidc = OidcClient.get; try { const { callbackPath } = await getOidc(configurationName).loginCallbackAsync(); const history = (withCustomHistory) ? withCustomHistory() : getCustomHistory(); diff --git a/packages/react-oidc/src/core/default-component/SilentCallback.component.tsx b/packages/react-oidc/src/core/default-component/SilentCallback.component.tsx index 6f6236076..019110e6e 100644 --- a/packages/react-oidc/src/core/default-component/SilentCallback.component.tsx +++ b/packages/react-oidc/src/core/default-component/SilentCallback.component.tsx @@ -1,10 +1,10 @@ -import { VanillaOidc } from '@axa-fr/oidc-client'; +import { OidcClient } from '@axa-fr/oidc-client'; import { ComponentType, useEffect } from 'react'; const SilentCallbackManager: ComponentType = ({ configurationName }) => { useEffect(() => { const playCallbackAsync = async () => { - const getOidc = VanillaOidc.get; + const getOidc = OidcClient.get; const oidc = getOidc(configurationName); oidc.silentLoginCallbackAsync(); }; diff --git a/packages/react-oidc/src/core/default-component/SilentLogin.component.tsx b/packages/react-oidc/src/core/default-component/SilentLogin.component.tsx index 26d9ec696..32bba4545 100644 --- a/packages/react-oidc/src/core/default-component/SilentLogin.component.tsx +++ b/packages/react-oidc/src/core/default-component/SilentLogin.component.tsx @@ -1,10 +1,10 @@ -import { getParseQueryStringFromLocation, VanillaOidc } from '@axa-fr/oidc-client'; +import { getParseQueryStringFromLocation, OidcClient } from '@axa-fr/oidc-client'; import { ComponentType, useEffect } from 'react'; const SilentLogin: ComponentType = ({ configurationName }) => { const queryParams = getParseQueryStringFromLocation(window.location.href); - const getOidc = VanillaOidc.get; + const getOidc = OidcClient.get; const oidc = getOidc(configurationName); let extras = null; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ac70b8a06..e10f7b049 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,240 +1,332 @@ -lockfileVersion: 5.4 +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false importers: .: - specifiers: - '@typescript-eslint/eslint-plugin': ^6.0.0 - '@typescript-eslint/parser': ^6.0.0 - eslint: ^8.45.0 - eslint-config-prettier: ^8.8.0 - eslint-define-config: ^1.21.0 - eslint-plugin-import: ^2.27.5 - eslint-plugin-jsx-a11y: ^6.7.1 - eslint-plugin-n: ^16.0.1 - eslint-plugin-no-only-tests: ^3.1.0 - eslint-plugin-prettier: ^5.0.0 - eslint-plugin-react: ^7.32.2 - eslint-plugin-react-hooks: ^4.6.0 - eslint-plugin-regexp: ^1.15.0 - eslint-plugin-simple-import-sort: ^10.0.0 - eslint-plugin-testing-library: ^5.11.0 - prettier: ^3.0.0 - tslib: ^2.6.0 - tsx: ^3.12.7 - typescript: ^5.1.6 - vitest: ^0.33.0 devDependencies: - '@typescript-eslint/eslint-plugin': 6.2.0_idzvfmj5qli4h3jfxnf522w3fe - '@typescript-eslint/parser': 6.2.0_7haavtekmro7ptbnqmctjaodju - eslint: 8.46.0 - eslint-config-prettier: 8.9.0_eslint@8.46.0 - eslint-define-config: 1.22.0 - eslint-plugin-import: 2.28.0_ec5nhyiwpcpmef4grv6n2vqr5y - eslint-plugin-jsx-a11y: 6.7.1_eslint@8.46.0 - eslint-plugin-n: 16.0.1_eslint@8.46.0 - eslint-plugin-no-only-tests: 3.1.0 - eslint-plugin-prettier: 5.0.0_zqxxaukdltekzrbl7w2kyx7tna - eslint-plugin-react: 7.33.1_eslint@8.46.0 - eslint-plugin-react-hooks: 4.6.0_eslint@8.46.0 - eslint-plugin-regexp: 1.15.0_eslint@8.46.0 - eslint-plugin-simple-import-sort: 10.0.0_eslint@8.46.0 - eslint-plugin-testing-library: 5.11.0_7haavtekmro7ptbnqmctjaodju - prettier: 3.0.0 - tslib: 2.6.1 - tsx: 3.12.7 - typescript: 5.1.6 - vitest: 0.33.0 + '@typescript-eslint/eslint-plugin': + specifier: ^6.0.0 + version: 6.2.0(@typescript-eslint/parser@6.2.0)(eslint@8.46.0)(typescript@5.1.6) + '@typescript-eslint/parser': + specifier: ^6.0.0 + version: 6.2.0(eslint@8.46.0)(typescript@5.1.6) + eslint: + specifier: ^8.45.0 + version: 8.46.0 + eslint-config-prettier: + specifier: ^8.8.0 + version: 8.9.0(eslint@8.46.0) + eslint-define-config: + specifier: ^1.21.0 + version: 1.22.0 + eslint-plugin-import: + specifier: ^2.27.5 + version: 2.28.0(@typescript-eslint/parser@6.2.0)(eslint@8.46.0) + eslint-plugin-jsx-a11y: + specifier: ^6.7.1 + version: 6.7.1(eslint@8.46.0) + eslint-plugin-n: + specifier: ^16.0.1 + version: 16.0.1(eslint@8.46.0) + eslint-plugin-no-only-tests: + specifier: ^3.1.0 + version: 3.1.0 + eslint-plugin-prettier: + specifier: ^5.0.0 + version: 5.0.0(eslint-config-prettier@8.9.0)(eslint@8.46.0)(prettier@3.0.0) + eslint-plugin-react: + specifier: ^7.32.2 + version: 7.33.1(eslint@8.46.0) + eslint-plugin-react-hooks: + specifier: ^4.6.0 + version: 4.6.0(eslint@8.46.0) + eslint-plugin-regexp: + specifier: ^1.15.0 + version: 1.15.0(eslint@8.46.0) + eslint-plugin-simple-import-sort: + specifier: ^10.0.0 + version: 10.0.0(eslint@8.46.0) + eslint-plugin-testing-library: + specifier: ^5.11.0 + version: 5.11.0(eslint@8.46.0)(typescript@5.1.6) + prettier: + specifier: ^3.0.0 + version: 3.0.0 + tslib: + specifier: ^2.6.0 + version: 2.6.1 + tsx: + specifier: ^3.12.7 + version: 3.12.7 + typescript: + specifier: ^5.1.6 + version: 5.1.6 + vitest: + specifier: ^0.33.0 + version: 0.33.0(jsdom@22.1.0) examples/nextjs-demo: - specifiers: - '@axa-fr/react-oidc': workspace:* - next: latest - react: latest - react-dom: latest - dependencies: - '@axa-fr/react-oidc': link:../../packages/react-oidc - next: 13.4.12_biqbaboplfbrettd7655fr4n2y - react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 + dependencies: + '@axa-fr/react-oidc': + specifier: workspace:* + version: link:../../packages/react-oidc + next: + specifier: latest + version: 13.4.12(react-dom@18.2.0)(react@18.2.0) + react: + specifier: latest + version: 18.2.0 + react-dom: + specifier: latest + version: 18.2.0(react@18.2.0) examples/oidc-client-demo: - specifiers: - '@axa-fr/oidc-client': workspace:~ - '@testing-library/jest-dom': ^5.16.5 - '@testing-library/user-event': ^13.5.0 - '@types/jest': ^27.5.2 - '@types/node': ^18.11.9 - cross-env: ^7.0.3 - typescript: ^5.1.6 - vite: ^4.4.4 - web-vitals: ^3.4.0 - dependencies: - '@axa-fr/oidc-client': link:../../packages/oidc-client - '@testing-library/jest-dom': 5.17.0 - '@testing-library/user-event': 13.5.0 - '@types/jest': 27.5.2 - typescript: 5.1.6 - web-vitals: 3.4.0 + dependencies: + '@axa-fr/oidc-client': + specifier: workspace:~ + version: link:../../packages/oidc-client + '@testing-library/jest-dom': + specifier: ^5.16.5 + version: 5.17.0 + '@testing-library/user-event': + specifier: ^13.5.0 + version: 13.5.0(@testing-library/dom@9.3.1) + '@types/jest': + specifier: ^27.5.2 + version: 27.5.2 + typescript: + specifier: ^5.1.6 + version: 5.1.6 + web-vitals: + specifier: ^3.4.0 + version: 3.4.0 devDependencies: - '@types/node': 18.17.1 - cross-env: 7.0.3 - vite: 4.4.7_@types+node@18.17.1 + '@types/node': + specifier: ^18.11.9 + version: 18.17.1 + cross-env: + specifier: ^7.0.3 + version: 7.0.3 + vite: + specifier: ^4.4.4 + version: 4.4.7(@types/node@18.17.1) examples/react-oidc-demo: - specifiers: - '@axa-fr/react-oidc': workspace:* - '@testing-library/jest-dom': 5.16.5 - '@testing-library/react': 13.3.0 - '@testing-library/user-event': 14.4.3 - '@types/react': ^18.2.15 - '@vitejs/plugin-react': 4.0.3 - '@vitest/coverage-c8': ^0.33.0 - bootstrap: ^4.6.2 - copyfiles: 2.4.1 - cross-env: ^7.0.3 - jsdom: 22.1.0 - msw: 1.2.2 - react: ^18.2.0 - react-dom: ^18.2.0 - react-router-dom: ^6.14.1 - typescript: 5.1.6 - vite: ^4.4.4 - vite-plugin-dts: ^3.3.0 - vitest: ^0.33.0 dependencies: - '@axa-fr/react-oidc': link:../../packages/react-oidc - react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 - react-router-dom: 6.14.2_biqbaboplfbrettd7655fr4n2y + '@axa-fr/react-oidc': + specifier: workspace:* + version: link:../../packages/react-oidc + react: + specifier: ^18.2.0 + version: 18.2.0 + react-dom: + specifier: ^18.2.0 + version: 18.2.0(react@18.2.0) + react-router-dom: + specifier: ^6.14.1 + version: 6.14.2(react-dom@18.2.0)(react@18.2.0) devDependencies: - '@testing-library/jest-dom': 5.16.5 - '@testing-library/react': 13.3.0_biqbaboplfbrettd7655fr4n2y - '@testing-library/user-event': 14.4.3 - '@types/react': 18.2.17 - '@vitejs/plugin-react': 4.0.3_vite@4.4.7 - '@vitest/coverage-c8': 0.33.0_vitest@0.33.0 - bootstrap: 4.6.2 - copyfiles: 2.4.1 - cross-env: 7.0.3 - jsdom: 22.1.0 - msw: 1.2.2_typescript@5.1.6 - typescript: 5.1.6 - vite: 4.4.7 - vite-plugin-dts: 3.4.0_npxhaqyhuvoil5zmsh4ym23fea - vitest: 0.33.0_jsdom@22.1.0 + '@testing-library/jest-dom': + specifier: 5.16.5 + version: 5.16.5 + '@testing-library/react': + specifier: 13.3.0 + version: 13.3.0(react-dom@18.2.0)(react@18.2.0) + '@testing-library/user-event': + specifier: 14.4.3 + version: 14.4.3(@testing-library/dom@9.3.1) + '@types/react': + specifier: ^18.2.15 + version: 18.2.17 + '@vitejs/plugin-react': + specifier: 4.0.3 + version: 4.0.3(vite@4.4.7) + '@vitest/coverage-c8': + specifier: ^0.33.0 + version: 0.33.0(vitest@0.33.0) + bootstrap: + specifier: ^4.6.2 + version: 4.6.2(jquery@3.7.0)(popper.js@1.16.1) + copyfiles: + specifier: 2.4.1 + version: 2.4.1 + cross-env: + specifier: ^7.0.3 + version: 7.0.3 + jsdom: + specifier: 22.1.0 + version: 22.1.0 + msw: + specifier: 1.2.2 + version: 1.2.2(typescript@5.1.6) + typescript: + specifier: 5.1.6 + version: 5.1.6 + vite: + specifier: ^4.4.4 + version: 4.4.7(@types/node@18.17.1) + vite-plugin-dts: + specifier: ^3.3.0 + version: 3.4.0(typescript@5.1.6)(vite@4.4.7) + vitest: + specifier: ^0.33.0 + version: 0.33.0(jsdom@22.1.0) packages/oidc-client: - specifiers: - '@axa-fr/oidc-client-service-worker': workspace:* - '@testing-library/dom': ^9.3.1 - '@testing-library/jest-dom': ^5.16.5 - '@testing-library/react': 13.3.0 - '@vitest/coverage-v8': ^0.33.0 - base64-js: ^1.5.1 - cpy: ^10.1.0 - cpy-cli: ^5.0.0 - rimraf: 5.0.1 - typescript: 5.1.6 - vite: ^4.4.4 - vite-plugin-dts: ^3.3.0 - vitest: ^0.33.0 dependencies: - '@axa-fr/oidc-client-service-worker': link:../oidc-client-service-worker + '@axa-fr/oidc-client-service-worker': + specifier: workspace:* + version: link:../oidc-client-service-worker devDependencies: - '@testing-library/dom': 9.3.1 - '@testing-library/jest-dom': 5.17.0 - '@testing-library/react': 13.3.0 - '@vitest/coverage-v8': 0.33.0_vitest@0.33.0 - base64-js: 1.5.1 - cpy: 10.1.0 - cpy-cli: 5.0.0 - rimraf: 5.0.1 - typescript: 5.1.6 - vite: 4.4.7 - vite-plugin-dts: 3.4.0_npxhaqyhuvoil5zmsh4ym23fea - vitest: 0.33.0 + '@testing-library/dom': + specifier: ^9.3.1 + version: 9.3.1 + '@testing-library/jest-dom': + specifier: ^5.16.5 + version: 5.17.0 + '@testing-library/react': + specifier: 13.3.0 + version: 13.3.0(react-dom@18.2.0)(react@18.2.0) + '@vitest/coverage-v8': + specifier: ^0.33.0 + version: 0.33.0(vitest@0.33.0) + base64-js: + specifier: ^1.5.1 + version: 1.5.1 + cpy: + specifier: ^10.1.0 + version: 10.1.0 + cpy-cli: + specifier: ^5.0.0 + version: 5.0.0 + rimraf: + specifier: 5.0.1 + version: 5.0.1 + typescript: + specifier: 5.1.6 + version: 5.1.6 + vite: + specifier: ^4.4.4 + version: 4.4.7(@types/node@18.17.1) + vite-plugin-dts: + specifier: ^3.3.0 + version: 3.4.0(typescript@5.1.6)(vite@4.4.7) + vitest: + specifier: ^0.33.0 + version: 0.33.0(jsdom@22.1.0) packages/oidc-client-service-worker: - specifiers: - '@vitest/coverage-c8': ^0.33.0 - cpy: ^10.1.0 - cpy-cli: ^5.0.0 - msw: 1.2.2 - rimraf: 5.0.1 - typescript: 5.1.6 - vite: ^4.4.4 - vite-plugin-dts: ^3.3.0 - vitest: ^0.33.0 devDependencies: - '@vitest/coverage-c8': 0.33.0_vitest@0.33.0 - cpy: 10.1.0 - cpy-cli: 5.0.0 - msw: 1.2.2_typescript@5.1.6 - rimraf: 5.0.1 - typescript: 5.1.6 - vite: 4.4.7 - vite-plugin-dts: 3.4.0_npxhaqyhuvoil5zmsh4ym23fea - vitest: 0.33.0 + '@vitest/coverage-c8': + specifier: ^0.33.0 + version: 0.33.0(vitest@0.33.0) + cpy: + specifier: ^10.1.0 + version: 10.1.0 + cpy-cli: + specifier: ^5.0.0 + version: 5.0.0 + msw: + specifier: 1.2.2 + version: 1.2.2(typescript@5.1.6) + rimraf: + specifier: 5.0.1 + version: 5.0.1 + typescript: + specifier: 5.1.6 + version: 5.1.6 + vite: + specifier: ^4.4.4 + version: 4.4.7(@types/node@18.17.1) + vite-plugin-dts: + specifier: ^3.3.0 + version: 3.4.0(typescript@5.1.6)(vite@4.4.7) + vitest: + specifier: ^0.33.0 + version: 0.33.0(jsdom@22.1.0) packages/react-oidc: - specifiers: - '@axa-fr/oidc-client': workspace:* - '@axa-fr/oidc-client-service-worker': workspace:* - '@testing-library/jest-dom': 5.16.5 - '@testing-library/react': 13.3.0 - '@testing-library/user-event': 14.4.3 - '@types/react': ^18.2.15 - '@vitejs/plugin-react': 4.0.3 - '@vitest/coverage-v8': ^0.33.0 - base64-js: 1.5.1 - cpy: ^10.1.0 - cpy-cli: ^5.0.0 - cross-env: ^7.0.3 - jsdom: 22.1.0 - msw: 1.2.2 - react: ^18.2.0 - react-dom: ^18.2.0 - rimraf: 5.0.1 - typescript: 5.1.6 - vite: ^4.4.4 - vite-plugin-dts: ^3.3.0 - vitest: ^0.33.0 dependencies: - '@axa-fr/oidc-client': link:../oidc-client - '@axa-fr/oidc-client-service-worker': link:../oidc-client-service-worker - base64-js: 1.5.1 + '@axa-fr/oidc-client': + specifier: workspace:* + version: link:../oidc-client + '@axa-fr/oidc-client-service-worker': + specifier: workspace:* + version: link:../oidc-client-service-worker + base64-js: + specifier: 1.5.1 + version: 1.5.1 devDependencies: - '@testing-library/jest-dom': 5.16.5 - '@testing-library/react': 13.3.0_biqbaboplfbrettd7655fr4n2y - '@testing-library/user-event': 14.4.3 - '@types/react': 18.2.17 - '@vitejs/plugin-react': 4.0.3_vite@4.4.7 - '@vitest/coverage-v8': 0.33.0_vitest@0.33.0 - cpy: 10.1.0 - cpy-cli: 5.0.0 - cross-env: 7.0.3 - jsdom: 22.1.0 - msw: 1.2.2_typescript@5.1.6 - react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 - rimraf: 5.0.1 - typescript: 5.1.6 - vite: 4.4.7 - vite-plugin-dts: 3.4.0_npxhaqyhuvoil5zmsh4ym23fea - vitest: 0.33.0_jsdom@22.1.0 + '@testing-library/jest-dom': + specifier: 5.16.5 + version: 5.16.5 + '@testing-library/react': + specifier: 13.3.0 + version: 13.3.0(react-dom@18.2.0)(react@18.2.0) + '@testing-library/user-event': + specifier: 14.4.3 + version: 14.4.3(@testing-library/dom@9.3.1) + '@types/react': + specifier: ^18.2.15 + version: 18.2.17 + '@vitejs/plugin-react': + specifier: 4.0.3 + version: 4.0.3(vite@4.4.7) + '@vitest/coverage-v8': + specifier: ^0.33.0 + version: 0.33.0(vitest@0.33.0) + cpy: + specifier: ^10.1.0 + version: 10.1.0 + cpy-cli: + specifier: ^5.0.0 + version: 5.0.0 + cross-env: + specifier: ^7.0.3 + version: 7.0.3 + jsdom: + specifier: 22.1.0 + version: 22.1.0 + msw: + specifier: 1.2.2 + version: 1.2.2(typescript@5.1.6) + react: + specifier: ^18.2.0 + version: 18.2.0 + react-dom: + specifier: ^18.2.0 + version: 18.2.0(react@18.2.0) + rimraf: + specifier: 5.0.1 + version: 5.0.1 + typescript: + specifier: 5.1.6 + version: 5.1.6 + vite: + specifier: ^4.4.4 + version: 4.4.7(@types/node@18.17.1) + vite-plugin-dts: + specifier: ^3.3.0 + version: 3.4.0(typescript@5.1.6)(vite@4.4.7) + vitest: + specifier: ^0.33.0 + version: 0.33.0(jsdom@22.1.0) packages: - /@aashutoshrathi/word-wrap/1.2.6: + /@aashutoshrathi/word-wrap@1.2.6: resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} engines: {node: '>=0.10.0'} dev: true - /@adobe/css-tools/4.2.0: + /@adobe/css-tools@4.2.0: resolution: {integrity: sha512-E09FiIft46CmH5Qnjb0wsW54/YQd69LsxeKUOWawmws1XWvyFGURnAChH0mlr7YPFR1ofwvUQfcL0J3lMxXqPA==} - /@ampproject/remapping/2.2.1: + /@ampproject/remapping@2.2.1: resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} engines: {node: '>=6.0.0'} dependencies: @@ -242,27 +334,26 @@ packages: '@jridgewell/trace-mapping': 0.3.18 dev: true - /@babel/code-frame/7.22.5: + /@babel/code-frame@7.22.5: resolution: {integrity: sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==} engines: {node: '>=6.9.0'} dependencies: '@babel/highlight': 7.22.5 - dev: true - /@babel/compat-data/7.22.9: + /@babel/compat-data@7.22.9: resolution: {integrity: sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==} engines: {node: '>=6.9.0'} dev: true - /@babel/core/7.22.9: + /@babel/core@7.22.9: resolution: {integrity: sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.1 '@babel/code-frame': 7.22.5 '@babel/generator': 7.22.9 - '@babel/helper-compilation-targets': 7.22.9_@babel+core@7.22.9 - '@babel/helper-module-transforms': 7.22.9_@babel+core@7.22.9 + '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9) + '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.9) '@babel/helpers': 7.22.6 '@babel/parser': 7.22.7 '@babel/template': 7.22.5 @@ -277,7 +368,7 @@ packages: - supports-color dev: true - /@babel/generator/7.22.9: + /@babel/generator@7.22.9: resolution: {integrity: sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw==} engines: {node: '>=6.9.0'} dependencies: @@ -287,7 +378,7 @@ packages: jsesc: 2.5.2 dev: true - /@babel/helper-compilation-targets/7.22.9_@babel+core@7.22.9: + /@babel/helper-compilation-targets@7.22.9(@babel/core@7.22.9): resolution: {integrity: sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw==} engines: {node: '>=6.9.0'} peerDependencies: @@ -301,12 +392,12 @@ packages: semver: 6.3.1 dev: true - /@babel/helper-environment-visitor/7.22.5: + /@babel/helper-environment-visitor@7.22.5: resolution: {integrity: sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==} engines: {node: '>=6.9.0'} dev: true - /@babel/helper-function-name/7.22.5: + /@babel/helper-function-name@7.22.5: resolution: {integrity: sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==} engines: {node: '>=6.9.0'} dependencies: @@ -314,21 +405,21 @@ packages: '@babel/types': 7.22.5 dev: true - /@babel/helper-hoist-variables/7.22.5: + /@babel/helper-hoist-variables@7.22.5: resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.22.5 dev: true - /@babel/helper-module-imports/7.22.5: + /@babel/helper-module-imports@7.22.5: resolution: {integrity: sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.22.5 dev: true - /@babel/helper-module-transforms/7.22.9_@babel+core@7.22.9: + /@babel/helper-module-transforms@7.22.9(@babel/core@7.22.9): resolution: {integrity: sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==} engines: {node: '>=6.9.0'} peerDependencies: @@ -342,41 +433,40 @@ packages: '@babel/helper-validator-identifier': 7.22.5 dev: true - /@babel/helper-plugin-utils/7.22.5: + /@babel/helper-plugin-utils@7.22.5: resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} engines: {node: '>=6.9.0'} dev: true - /@babel/helper-simple-access/7.22.5: + /@babel/helper-simple-access@7.22.5: resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.22.5 dev: true - /@babel/helper-split-export-declaration/7.22.6: + /@babel/helper-split-export-declaration@7.22.6: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.22.5 dev: true - /@babel/helper-string-parser/7.22.5: + /@babel/helper-string-parser@7.22.5: resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} engines: {node: '>=6.9.0'} dev: true - /@babel/helper-validator-identifier/7.22.5: + /@babel/helper-validator-identifier@7.22.5: resolution: {integrity: sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==} engines: {node: '>=6.9.0'} - dev: true - /@babel/helper-validator-option/7.22.5: + /@babel/helper-validator-option@7.22.5: resolution: {integrity: sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==} engines: {node: '>=6.9.0'} dev: true - /@babel/helpers/7.22.6: + /@babel/helpers@7.22.6: resolution: {integrity: sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA==} engines: {node: '>=6.9.0'} dependencies: @@ -387,16 +477,15 @@ packages: - supports-color dev: true - /@babel/highlight/7.22.5: + /@babel/highlight@7.22.5: resolution: {integrity: sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-validator-identifier': 7.22.5 chalk: 2.4.2 js-tokens: 4.0.0 - dev: true - /@babel/parser/7.22.7: + /@babel/parser@7.22.7: resolution: {integrity: sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==} engines: {node: '>=6.0.0'} hasBin: true @@ -404,7 +493,7 @@ packages: '@babel/types': 7.22.5 dev: true - /@babel/plugin-transform-react-jsx-self/7.22.5_@babel+core@7.22.9: + /@babel/plugin-transform-react-jsx-self@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-nTh2ogNUtxbiSbxaT4Ds6aXnXEipHweN9YRgOX/oNXdf0cCrGn/+2LozFa3lnPV5D90MkjhgckCPBrsoSc1a7g==} engines: {node: '>=6.9.0'} peerDependencies: @@ -414,7 +503,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-react-jsx-source/7.22.5_@babel+core@7.22.9: + /@babel/plugin-transform-react-jsx-source@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-yIiRO6yobeEIaI0RTbIr8iAK9FcBHLtZq0S89ZPjDLQXBA4xvghaKqI0etp/tF3htTM0sazJKKLz9oEiGRtu7w==} engines: {node: '>=6.9.0'} peerDependencies: @@ -424,13 +513,13 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/runtime/7.22.6: + /@babel/runtime@7.22.6: resolution: {integrity: sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ==} engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.13.11 - /@babel/template/7.22.5: + /@babel/template@7.22.5: resolution: {integrity: sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==} engines: {node: '>=6.9.0'} dependencies: @@ -439,7 +528,7 @@ packages: '@babel/types': 7.22.5 dev: true - /@babel/traverse/7.22.8: + /@babel/traverse@7.22.8: resolution: {integrity: sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw==} engines: {node: '>=6.9.0'} dependencies: @@ -457,7 +546,7 @@ packages: - supports-color dev: true - /@babel/types/7.22.5: + /@babel/types@7.22.5: resolution: {integrity: sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==} engines: {node: '>=6.9.0'} dependencies: @@ -466,68 +555,68 @@ packages: to-fast-properties: 2.0.0 dev: true - /@bcoe/v8-coverage/0.2.3: + /@bcoe/v8-coverage@0.2.3: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} dev: true - /@esbuild-kit/cjs-loader/2.4.2: + /@esbuild-kit/cjs-loader@2.4.2: resolution: {integrity: sha512-BDXFbYOJzT/NBEtp71cvsrGPwGAMGRB/349rwKuoxNSiKjPraNNnlK6MIIabViCjqZugu6j+xeMDlEkWdHHJSg==} dependencies: '@esbuild-kit/core-utils': 3.1.0 get-tsconfig: 4.6.2 dev: true - /@esbuild-kit/core-utils/3.1.0: + /@esbuild-kit/core-utils@3.1.0: resolution: {integrity: sha512-Uuk8RpCg/7fdHSceR1M6XbSZFSuMrxcePFuGgyvsBn+u339dk5OeL4jv2EojwTN2st/unJGsVm4qHWjWNmJ/tw==} dependencies: esbuild: 0.17.19 source-map-support: 0.5.21 dev: true - /@esbuild-kit/esm-loader/2.5.5: + /@esbuild-kit/esm-loader@2.5.5: resolution: {integrity: sha512-Qwfvj/qoPbClxCRNuac1Du01r9gvNOT+pMYtJDapfB1eoGN1YlJ1BixLyL9WVENRx5RXgNLdfYdx/CuswlGhMw==} dependencies: '@esbuild-kit/core-utils': 3.1.0 get-tsconfig: 4.6.2 dev: true - /@esbuild/android-arm/0.17.19: - resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} + /@esbuild/android-arm64@0.17.19: + resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} engines: {node: '>=12'} - cpu: [arm] + cpu: [arm64] os: [android] requiresBuild: true dev: true optional: true - /@esbuild/android-arm/0.18.17: - resolution: {integrity: sha512-wHsmJG/dnL3OkpAcwbgoBTTMHVi4Uyou3F5mf58ZtmUyIKfcdA7TROav/6tCzET4A3QW2Q2FC+eFneMU+iyOxg==} + /@esbuild/android-arm64@0.18.17: + resolution: {integrity: sha512-9np+YYdNDed5+Jgr1TdWBsozZ85U1Oa3xW0c7TWqH0y2aGghXtZsuT8nYRbzOMcl0bXZXjOGbksoTtVOlWrRZg==} engines: {node: '>=12'} - cpu: [arm] + cpu: [arm64] os: [android] requiresBuild: true dev: true optional: true - /@esbuild/android-arm64/0.17.19: - resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} + /@esbuild/android-arm@0.17.19: + resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} engines: {node: '>=12'} - cpu: [arm64] + cpu: [arm] os: [android] requiresBuild: true dev: true optional: true - /@esbuild/android-arm64/0.18.17: - resolution: {integrity: sha512-9np+YYdNDed5+Jgr1TdWBsozZ85U1Oa3xW0c7TWqH0y2aGghXtZsuT8nYRbzOMcl0bXZXjOGbksoTtVOlWrRZg==} + /@esbuild/android-arm@0.18.17: + resolution: {integrity: sha512-wHsmJG/dnL3OkpAcwbgoBTTMHVi4Uyou3F5mf58ZtmUyIKfcdA7TROav/6tCzET4A3QW2Q2FC+eFneMU+iyOxg==} engines: {node: '>=12'} - cpu: [arm64] + cpu: [arm] os: [android] requiresBuild: true dev: true optional: true - /@esbuild/android-x64/0.17.19: + /@esbuild/android-x64@0.17.19: resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} engines: {node: '>=12'} cpu: [x64] @@ -536,7 +625,7 @@ packages: dev: true optional: true - /@esbuild/android-x64/0.18.17: + /@esbuild/android-x64@0.18.17: resolution: {integrity: sha512-O+FeWB/+xya0aLg23hHEM2E3hbfwZzjqumKMSIqcHbNvDa+dza2D0yLuymRBQQnC34CWrsJUXyH2MG5VnLd6uw==} engines: {node: '>=12'} cpu: [x64] @@ -545,7 +634,7 @@ packages: dev: true optional: true - /@esbuild/darwin-arm64/0.17.19: + /@esbuild/darwin-arm64@0.17.19: resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} engines: {node: '>=12'} cpu: [arm64] @@ -554,7 +643,7 @@ packages: dev: true optional: true - /@esbuild/darwin-arm64/0.18.17: + /@esbuild/darwin-arm64@0.18.17: resolution: {integrity: sha512-M9uJ9VSB1oli2BE/dJs3zVr9kcCBBsE883prage1NWz6pBS++1oNn/7soPNS3+1DGj0FrkSvnED4Bmlu1VAE9g==} engines: {node: '>=12'} cpu: [arm64] @@ -563,7 +652,7 @@ packages: dev: true optional: true - /@esbuild/darwin-x64/0.17.19: + /@esbuild/darwin-x64@0.17.19: resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} engines: {node: '>=12'} cpu: [x64] @@ -572,7 +661,7 @@ packages: dev: true optional: true - /@esbuild/darwin-x64/0.18.17: + /@esbuild/darwin-x64@0.18.17: resolution: {integrity: sha512-XDre+J5YeIJDMfp3n0279DFNrGCXlxOuGsWIkRb1NThMZ0BsrWXoTg23Jer7fEXQ9Ye5QjrvXpxnhzl3bHtk0g==} engines: {node: '>=12'} cpu: [x64] @@ -581,7 +670,7 @@ packages: dev: true optional: true - /@esbuild/freebsd-arm64/0.17.19: + /@esbuild/freebsd-arm64@0.17.19: resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} engines: {node: '>=12'} cpu: [arm64] @@ -590,7 +679,7 @@ packages: dev: true optional: true - /@esbuild/freebsd-arm64/0.18.17: + /@esbuild/freebsd-arm64@0.18.17: resolution: {integrity: sha512-cjTzGa3QlNfERa0+ptykyxs5A6FEUQQF0MuilYXYBGdBxD3vxJcKnzDlhDCa1VAJCmAxed6mYhA2KaJIbtiNuQ==} engines: {node: '>=12'} cpu: [arm64] @@ -599,7 +688,7 @@ packages: dev: true optional: true - /@esbuild/freebsd-x64/0.17.19: + /@esbuild/freebsd-x64@0.17.19: resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} engines: {node: '>=12'} cpu: [x64] @@ -608,7 +697,7 @@ packages: dev: true optional: true - /@esbuild/freebsd-x64/0.18.17: + /@esbuild/freebsd-x64@0.18.17: resolution: {integrity: sha512-sOxEvR8d7V7Kw8QqzxWc7bFfnWnGdaFBut1dRUYtu+EIRXefBc/eIsiUiShnW0hM3FmQ5Zf27suDuHsKgZ5QrA==} engines: {node: '>=12'} cpu: [x64] @@ -617,43 +706,43 @@ packages: dev: true optional: true - /@esbuild/linux-arm/0.17.19: - resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} + /@esbuild/linux-arm64@0.17.19: + resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} engines: {node: '>=12'} - cpu: [arm] + cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@esbuild/linux-arm/0.18.17: - resolution: {integrity: sha512-2d3Lw6wkwgSLC2fIvXKoMNGVaeY8qdN0IC3rfuVxJp89CRfA3e3VqWifGDfuakPmp90+ZirmTfye1n4ncjv2lg==} + /@esbuild/linux-arm64@0.18.17: + resolution: {integrity: sha512-c9w3tE7qA3CYWjT+M3BMbwMt+0JYOp3vCMKgVBrCl1nwjAlOMYzEo+gG7QaZ9AtqZFj5MbUc885wuBBmu6aADQ==} engines: {node: '>=12'} - cpu: [arm] + cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@esbuild/linux-arm64/0.17.19: - resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} + /@esbuild/linux-arm@0.17.19: + resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} engines: {node: '>=12'} - cpu: [arm64] + cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /@esbuild/linux-arm64/0.18.17: - resolution: {integrity: sha512-c9w3tE7qA3CYWjT+M3BMbwMt+0JYOp3vCMKgVBrCl1nwjAlOMYzEo+gG7QaZ9AtqZFj5MbUc885wuBBmu6aADQ==} + /@esbuild/linux-arm@0.18.17: + resolution: {integrity: sha512-2d3Lw6wkwgSLC2fIvXKoMNGVaeY8qdN0IC3rfuVxJp89CRfA3e3VqWifGDfuakPmp90+ZirmTfye1n4ncjv2lg==} engines: {node: '>=12'} - cpu: [arm64] + cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /@esbuild/linux-ia32/0.17.19: + /@esbuild/linux-ia32@0.17.19: resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} engines: {node: '>=12'} cpu: [ia32] @@ -662,7 +751,7 @@ packages: dev: true optional: true - /@esbuild/linux-ia32/0.18.17: + /@esbuild/linux-ia32@0.18.17: resolution: {integrity: sha512-1DS9F966pn5pPnqXYz16dQqWIB0dmDfAQZd6jSSpiT9eX1NzKh07J6VKR3AoXXXEk6CqZMojiVDSZi1SlmKVdg==} engines: {node: '>=12'} cpu: [ia32] @@ -671,7 +760,7 @@ packages: dev: true optional: true - /@esbuild/linux-loong64/0.17.19: + /@esbuild/linux-loong64@0.17.19: resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} engines: {node: '>=12'} cpu: [loong64] @@ -680,7 +769,7 @@ packages: dev: true optional: true - /@esbuild/linux-loong64/0.18.17: + /@esbuild/linux-loong64@0.18.17: resolution: {integrity: sha512-EvLsxCk6ZF0fpCB6w6eOI2Fc8KW5N6sHlIovNe8uOFObL2O+Mr0bflPHyHwLT6rwMg9r77WOAWb2FqCQrVnwFg==} engines: {node: '>=12'} cpu: [loong64] @@ -689,7 +778,7 @@ packages: dev: true optional: true - /@esbuild/linux-mips64el/0.17.19: + /@esbuild/linux-mips64el@0.17.19: resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} engines: {node: '>=12'} cpu: [mips64el] @@ -698,7 +787,7 @@ packages: dev: true optional: true - /@esbuild/linux-mips64el/0.18.17: + /@esbuild/linux-mips64el@0.18.17: resolution: {integrity: sha512-e0bIdHA5p6l+lwqTE36NAW5hHtw2tNRmHlGBygZC14QObsA3bD4C6sXLJjvnDIjSKhW1/0S3eDy+QmX/uZWEYQ==} engines: {node: '>=12'} cpu: [mips64el] @@ -707,7 +796,7 @@ packages: dev: true optional: true - /@esbuild/linux-ppc64/0.17.19: + /@esbuild/linux-ppc64@0.17.19: resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} engines: {node: '>=12'} cpu: [ppc64] @@ -716,7 +805,7 @@ packages: dev: true optional: true - /@esbuild/linux-ppc64/0.18.17: + /@esbuild/linux-ppc64@0.18.17: resolution: {integrity: sha512-BAAilJ0M5O2uMxHYGjFKn4nJKF6fNCdP1E0o5t5fvMYYzeIqy2JdAP88Az5LHt9qBoUa4tDaRpfWt21ep5/WqQ==} engines: {node: '>=12'} cpu: [ppc64] @@ -725,7 +814,7 @@ packages: dev: true optional: true - /@esbuild/linux-riscv64/0.17.19: + /@esbuild/linux-riscv64@0.17.19: resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} engines: {node: '>=12'} cpu: [riscv64] @@ -734,7 +823,7 @@ packages: dev: true optional: true - /@esbuild/linux-riscv64/0.18.17: + /@esbuild/linux-riscv64@0.18.17: resolution: {integrity: sha512-Wh/HW2MPnC3b8BqRSIme/9Zhab36PPH+3zam5pqGRH4pE+4xTrVLx2+XdGp6fVS3L2x+DrsIcsbMleex8fbE6g==} engines: {node: '>=12'} cpu: [riscv64] @@ -743,7 +832,7 @@ packages: dev: true optional: true - /@esbuild/linux-s390x/0.17.19: + /@esbuild/linux-s390x@0.17.19: resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} engines: {node: '>=12'} cpu: [s390x] @@ -752,7 +841,7 @@ packages: dev: true optional: true - /@esbuild/linux-s390x/0.18.17: + /@esbuild/linux-s390x@0.18.17: resolution: {integrity: sha512-j/34jAl3ul3PNcK3pfI0NSlBANduT2UO5kZ7FCaK33XFv3chDhICLY8wJJWIhiQ+YNdQ9dxqQctRg2bvrMlYgg==} engines: {node: '>=12'} cpu: [s390x] @@ -761,7 +850,7 @@ packages: dev: true optional: true - /@esbuild/linux-x64/0.17.19: + /@esbuild/linux-x64@0.17.19: resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} engines: {node: '>=12'} cpu: [x64] @@ -770,7 +859,7 @@ packages: dev: true optional: true - /@esbuild/linux-x64/0.18.17: + /@esbuild/linux-x64@0.18.17: resolution: {integrity: sha512-QM50vJ/y+8I60qEmFxMoxIx4de03pGo2HwxdBeFd4nMh364X6TIBZ6VQ5UQmPbQWUVWHWws5MmJXlHAXvJEmpQ==} engines: {node: '>=12'} cpu: [x64] @@ -779,7 +868,7 @@ packages: dev: true optional: true - /@esbuild/netbsd-x64/0.17.19: + /@esbuild/netbsd-x64@0.17.19: resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} engines: {node: '>=12'} cpu: [x64] @@ -788,7 +877,7 @@ packages: dev: true optional: true - /@esbuild/netbsd-x64/0.18.17: + /@esbuild/netbsd-x64@0.18.17: resolution: {integrity: sha512-/jGlhWR7Sj9JPZHzXyyMZ1RFMkNPjC6QIAan0sDOtIo2TYk3tZn5UDrkE0XgsTQCxWTTOcMPf9p6Rh2hXtl5TQ==} engines: {node: '>=12'} cpu: [x64] @@ -797,7 +886,7 @@ packages: dev: true optional: true - /@esbuild/openbsd-x64/0.17.19: + /@esbuild/openbsd-x64@0.17.19: resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} engines: {node: '>=12'} cpu: [x64] @@ -806,7 +895,7 @@ packages: dev: true optional: true - /@esbuild/openbsd-x64/0.18.17: + /@esbuild/openbsd-x64@0.18.17: resolution: {integrity: sha512-rSEeYaGgyGGf4qZM2NonMhMOP/5EHp4u9ehFiBrg7stH6BYEEjlkVREuDEcQ0LfIl53OXLxNbfuIj7mr5m29TA==} engines: {node: '>=12'} cpu: [x64] @@ -815,7 +904,7 @@ packages: dev: true optional: true - /@esbuild/sunos-x64/0.17.19: + /@esbuild/sunos-x64@0.17.19: resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} engines: {node: '>=12'} cpu: [x64] @@ -824,7 +913,7 @@ packages: dev: true optional: true - /@esbuild/sunos-x64/0.18.17: + /@esbuild/sunos-x64@0.18.17: resolution: {integrity: sha512-Y7ZBbkLqlSgn4+zot4KUNYst0bFoO68tRgI6mY2FIM+b7ZbyNVtNbDP5y8qlu4/knZZ73fgJDlXID+ohY5zt5g==} engines: {node: '>=12'} cpu: [x64] @@ -833,7 +922,7 @@ packages: dev: true optional: true - /@esbuild/win32-arm64/0.17.19: + /@esbuild/win32-arm64@0.17.19: resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} engines: {node: '>=12'} cpu: [arm64] @@ -842,7 +931,7 @@ packages: dev: true optional: true - /@esbuild/win32-arm64/0.18.17: + /@esbuild/win32-arm64@0.18.17: resolution: {integrity: sha512-bwPmTJsEQcbZk26oYpc4c/8PvTY3J5/QK8jM19DVlEsAB41M39aWovWoHtNm78sd6ip6prilxeHosPADXtEJFw==} engines: {node: '>=12'} cpu: [arm64] @@ -851,7 +940,7 @@ packages: dev: true optional: true - /@esbuild/win32-ia32/0.17.19: + /@esbuild/win32-ia32@0.17.19: resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} engines: {node: '>=12'} cpu: [ia32] @@ -860,7 +949,7 @@ packages: dev: true optional: true - /@esbuild/win32-ia32/0.18.17: + /@esbuild/win32-ia32@0.18.17: resolution: {integrity: sha512-H/XaPtPKli2MhW+3CQueo6Ni3Avggi6hP/YvgkEe1aSaxw+AeO8MFjq8DlgfTd9Iz4Yih3QCZI6YLMoyccnPRg==} engines: {node: '>=12'} cpu: [ia32] @@ -869,7 +958,7 @@ packages: dev: true optional: true - /@esbuild/win32-x64/0.17.19: + /@esbuild/win32-x64@0.17.19: resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} engines: {node: '>=12'} cpu: [x64] @@ -878,7 +967,7 @@ packages: dev: true optional: true - /@esbuild/win32-x64/0.18.17: + /@esbuild/win32-x64@0.18.17: resolution: {integrity: sha512-fGEb8f2BSA3CW7riJVurug65ACLuQAzKq0SSqkY2b2yHHH0MzDfbLyKIGzHwOI/gkHcxM/leuSW6D5w/LMNitA==} engines: {node: '>=12'} cpu: [x64] @@ -887,7 +976,7 @@ packages: dev: true optional: true - /@eslint-community/eslint-utils/4.4.0_eslint@8.46.0: + /@eslint-community/eslint-utils@4.4.0(eslint@8.46.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -897,12 +986,12 @@ packages: eslint-visitor-keys: 3.4.2 dev: true - /@eslint-community/regexpp/4.6.2: + /@eslint-community/regexpp@4.6.2: resolution: {integrity: sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true - /@eslint/eslintrc/2.1.1: + /@eslint/eslintrc@2.1.1: resolution: {integrity: sha512-9t7ZA7NGGK8ckelF0PQCfcxIUzs1Md5rrO6U/c+FIQNanea5UZC0wqKXH4vHBccmu4ZJgZ2idtPeW7+Q2npOEA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: @@ -919,12 +1008,12 @@ packages: - supports-color dev: true - /@eslint/js/8.46.0: + /@eslint/js@8.46.0: resolution: {integrity: sha512-a8TLtmPi8xzPkCbp/OGFUo5yhRkHM2Ko9kOWP4znJr0WAhWyThaw3PnwX4vOTWOAMsV2uRt32PPDcEz63esSaA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@humanwhocodes/config-array/0.11.10: + /@humanwhocodes/config-array@0.11.10: resolution: {integrity: sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==} engines: {node: '>=10.10.0'} dependencies: @@ -935,40 +1024,40 @@ packages: - supports-color dev: true - /@humanwhocodes/module-importer/1.0.1: + /@humanwhocodes/module-importer@1.0.1: resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} dev: true - /@humanwhocodes/object-schema/1.2.1: + /@humanwhocodes/object-schema@1.2.1: resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} dev: true - /@isaacs/cliui/8.0.2: + /@isaacs/cliui@8.0.2: resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} dependencies: string-width: 5.1.2 - string-width-cjs: /string-width/4.2.3 + string-width-cjs: /string-width@4.2.3 strip-ansi: 7.1.0 - strip-ansi-cjs: /strip-ansi/6.0.1 + strip-ansi-cjs: /strip-ansi@6.0.1 wrap-ansi: 8.1.0 - wrap-ansi-cjs: /wrap-ansi/7.0.0 + wrap-ansi-cjs: /wrap-ansi@7.0.0 dev: true - /@istanbuljs/schema/0.1.3: + /@istanbuljs/schema@0.1.3: resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} engines: {node: '>=8'} dev: true - /@jest/schemas/29.6.0: + /@jest/schemas@29.6.0: resolution: {integrity: sha512-rxLjXyJBTL4LQeJW3aKo0M/+GkCOXsO+8i9Iu7eDb6KwtP65ayoDsitrdPBtujxQ88k4wI2FNYfa6TOGwSn6cQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@sinclair/typebox': 0.27.8 dev: true - /@jridgewell/gen-mapping/0.3.3: + /@jridgewell/gen-mapping@0.3.3: resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} engines: {node: '>=6.0.0'} dependencies: @@ -977,32 +1066,32 @@ packages: '@jridgewell/trace-mapping': 0.3.18 dev: true - /@jridgewell/resolve-uri/3.1.0: + /@jridgewell/resolve-uri@3.1.0: resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} engines: {node: '>=6.0.0'} dev: true - /@jridgewell/set-array/1.1.2: + /@jridgewell/set-array@1.1.2: resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} engines: {node: '>=6.0.0'} dev: true - /@jridgewell/sourcemap-codec/1.4.14: + /@jridgewell/sourcemap-codec@1.4.14: resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} dev: true - /@jridgewell/sourcemap-codec/1.4.15: + /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} dev: true - /@jridgewell/trace-mapping/0.3.18: + /@jridgewell/trace-mapping@0.3.18: resolution: {integrity: sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==} dependencies: '@jridgewell/resolve-uri': 3.1.0 '@jridgewell/sourcemap-codec': 1.4.14 dev: true - /@microsoft/api-extractor-model/7.27.5: + /@microsoft/api-extractor-model@7.27.5: resolution: {integrity: sha512-9/tBzYMJitR+o+zkPr1lQh2+e8ClcaTF6eZo7vZGDqRt2O5XmXWPbYJZmxyM3wb5at6lfJNEeGZrQXLjsQ0Nbw==} dependencies: '@microsoft/tsdoc': 0.14.2 @@ -1012,7 +1101,7 @@ packages: - '@types/node' dev: true - /@microsoft/api-extractor/7.36.3: + /@microsoft/api-extractor@7.36.3: resolution: {integrity: sha512-u0H6362AQq+r55X8drHx4npgkrCfJnMzRRHfQo8PMNKB8TcBnrTLfXhXWi+xnTM6CzlU/netEN8c4bq581Rnrg==} hasBin: true dependencies: @@ -1032,7 +1121,7 @@ packages: - '@types/node' dev: true - /@microsoft/tsdoc-config/0.16.2: + /@microsoft/tsdoc-config@0.16.2: resolution: {integrity: sha512-OGiIzzoBLgWWR0UdRJX98oYO+XKGf7tiK4Zk6tQ/E4IJqGCe7dvkTvgDZV5cFJUzLGDOjeAXrnZoA6QkVySuxw==} dependencies: '@microsoft/tsdoc': 0.14.2 @@ -1041,11 +1130,11 @@ packages: resolve: 1.19.0 dev: true - /@microsoft/tsdoc/0.14.2: + /@microsoft/tsdoc@0.14.2: resolution: {integrity: sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==} dev: true - /@mswjs/cookies/0.2.2: + /@mswjs/cookies@0.2.2: resolution: {integrity: sha512-mlN83YSrcFgk7Dm1Mys40DLssI1KdJji2CMKN8eOlBqsTADYzj2+jWzsANsUTFbxDMWPD5e9bfA1RGqBpS3O1g==} engines: {node: '>=14'} dependencies: @@ -1053,7 +1142,7 @@ packages: set-cookie-parser: 2.6.0 dev: true - /@mswjs/interceptors/0.17.9: + /@mswjs/interceptors@0.17.9: resolution: {integrity: sha512-4LVGt03RobMH/7ZrbHqRxQrS9cc2uh+iNKSj8UWr8M26A2i793ju+csaB5zaqYltqJmA2jUq4VeYfKmVqvsXQg==} engines: {node: '>=14'} dependencies: @@ -1069,11 +1158,11 @@ packages: - supports-color dev: true - /@next/env/13.4.12: + /@next/env@13.4.12: resolution: {integrity: sha512-RmHanbV21saP/6OEPBJ7yJMuys68cIf8OBBWd7+uj40LdpmswVAwe1uzeuFyUsd6SfeITWT3XnQfn6wULeKwDQ==} dev: false - /@next/swc-darwin-arm64/13.4.12: + /@next/swc-darwin-arm64@13.4.12: resolution: {integrity: sha512-deUrbCXTMZ6ZhbOoloqecnUeNpUOupi8SE2tx4jPfNS9uyUR9zK4iXBvH65opVcA/9F5I/p8vDXSYbUlbmBjZg==} engines: {node: '>= 10'} cpu: [arm64] @@ -1082,7 +1171,7 @@ packages: dev: false optional: true - /@next/swc-darwin-x64/13.4.12: + /@next/swc-darwin-x64@13.4.12: resolution: {integrity: sha512-WRvH7RxgRHlC1yb5oG0ZLx8F7uci9AivM5/HGGv9ZyG2Als8Ij64GC3d+mQ5sJhWjusyU6T6V1WKTUoTmOB0zQ==} engines: {node: '>= 10'} cpu: [x64] @@ -1091,7 +1180,7 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-gnu/13.4.12: + /@next/swc-linux-arm64-gnu@13.4.12: resolution: {integrity: sha512-YEKracAWuxp54tKiAvvq73PUs9lok57cc8meYRibTWe/VdPB2vLgkTVWFcw31YDuRXdEhdX0fWS6Q+ESBhnEig==} engines: {node: '>= 10'} cpu: [arm64] @@ -1100,7 +1189,7 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-musl/13.4.12: + /@next/swc-linux-arm64-musl@13.4.12: resolution: {integrity: sha512-LhJR7/RAjdHJ2Isl2pgc/JaoxNk0KtBgkVpiDJPVExVWA1c6gzY57+3zWuxuyWzTG+fhLZo2Y80pLXgIJv7g3g==} engines: {node: '>= 10'} cpu: [arm64] @@ -1109,7 +1198,7 @@ packages: dev: false optional: true - /@next/swc-linux-x64-gnu/13.4.12: + /@next/swc-linux-x64-gnu@13.4.12: resolution: {integrity: sha512-1DWLL/B9nBNiQRng+1aqs3OaZcxC16Nf+mOnpcrZZSdyKHek3WQh6j/fkbukObgNGwmCoVevLUa/p3UFTTqgqg==} engines: {node: '>= 10'} cpu: [x64] @@ -1118,7 +1207,7 @@ packages: dev: false optional: true - /@next/swc-linux-x64-musl/13.4.12: + /@next/swc-linux-x64-musl@13.4.12: resolution: {integrity: sha512-kEAJmgYFhp0VL+eRWmUkVxLVunn7oL9Mdue/FS8yzRBVj7Z0AnIrHpTIeIUl1bbdQq1VaoOztnKicAjfkLTRCQ==} engines: {node: '>= 10'} cpu: [x64] @@ -1127,7 +1216,7 @@ packages: dev: false optional: true - /@next/swc-win32-arm64-msvc/13.4.12: + /@next/swc-win32-arm64-msvc@13.4.12: resolution: {integrity: sha512-GMLuL/loR6yIIRTnPRY6UGbLL9MBdw2anxkOnANxvLvsml4F0HNIgvnU3Ej4BjbqMTNjD4hcPFdlEow4XHPdZA==} engines: {node: '>= 10'} cpu: [arm64] @@ -1136,7 +1225,7 @@ packages: dev: false optional: true - /@next/swc-win32-ia32-msvc/13.4.12: + /@next/swc-win32-ia32-msvc@13.4.12: resolution: {integrity: sha512-PhgNqN2Vnkm7XaMdRmmX0ZSwZXQAtamBVSa9A/V1dfKQCV1rjIZeiy/dbBnVYGdj63ANfsOR/30XpxP71W0eww==} engines: {node: '>= 10'} cpu: [ia32] @@ -1145,7 +1234,7 @@ packages: dev: false optional: true - /@next/swc-win32-x64-msvc/13.4.12: + /@next/swc-win32-x64-msvc@13.4.12: resolution: {integrity: sha512-Z+56e/Ljt0bUs+T+jPjhFyxYBcdY2RIq9ELFU+qAMQMteHo7ymbV7CKmlcX59RI9C4YzN8PgMgLyAoi916b5HA==} engines: {node: '>= 10'} cpu: [x64] @@ -1154,7 +1243,7 @@ packages: dev: false optional: true - /@nodelib/fs.scandir/2.1.5: + /@nodelib/fs.scandir@2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} dependencies: @@ -1162,12 +1251,12 @@ packages: run-parallel: 1.2.0 dev: true - /@nodelib/fs.stat/2.0.5: + /@nodelib/fs.stat@2.0.5: resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} engines: {node: '>= 8'} dev: true - /@nodelib/fs.walk/1.2.8: + /@nodelib/fs.walk@1.2.8: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} dependencies: @@ -1175,18 +1264,18 @@ packages: fastq: 1.15.0 dev: true - /@open-draft/until/1.0.3: + /@open-draft/until@1.0.3: resolution: {integrity: sha512-Aq58f5HiWdyDlFffbbSjAlv596h/cOnt2DO1w3DOC7OJ5EHs0hd/nycJfiu9RJbT6Yk6F1knnRRXNSpxoIVZ9Q==} dev: true - /@pkgjs/parseargs/0.11.0: + /@pkgjs/parseargs@0.11.0: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} requiresBuild: true dev: true optional: true - /@pkgr/utils/2.4.2: + /@pkgr/utils@2.4.2: resolution: {integrity: sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} dependencies: @@ -1198,12 +1287,12 @@ packages: tslib: 2.6.1 dev: true - /@remix-run/router/1.7.2: + /@remix-run/router@1.7.2: resolution: {integrity: sha512-7Lcn7IqGMV+vizMPoEl5F0XDshcdDYtMI6uJLQdQz5CfZAwy3vvGKYSUk789qndt5dEC4HfSjviSYlSoHGL2+A==} engines: {node: '>=14'} dev: false - /@rollup/pluginutils/5.0.2: + /@rollup/pluginutils@5.0.2: resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1217,7 +1306,7 @@ packages: picomatch: 2.3.1 dev: true - /@rushstack/node-core-library/3.59.6: + /@rushstack/node-core-library@3.59.6: resolution: {integrity: sha512-bMYJwNFfWXRNUuHnsE9wMlW/mOB4jIwSUkRKtu02CwZhQdmzMsUbxE0s1xOLwTpNIwlzfW/YT7OnOHgDffLgYg==} peerDependencies: '@types/node': '*' @@ -1234,14 +1323,14 @@ packages: z-schema: 5.0.5 dev: true - /@rushstack/rig-package/0.4.0: + /@rushstack/rig-package@0.4.0: resolution: {integrity: sha512-FnM1TQLJYwSiurP6aYSnansprK5l8WUK8VG38CmAaZs29ZeL1msjK0AP1VS4ejD33G0kE/2cpsPsS9jDenBMxw==} dependencies: resolve: 1.22.2 strip-json-comments: 3.1.1 dev: true - /@rushstack/ts-command-line/4.15.1: + /@rushstack/ts-command-line@4.15.1: resolution: {integrity: sha512-EL4jxZe5fhb1uVL/P/wQO+Z8Rc8FMiWJ1G7VgnPDvdIt5GVjRfK7vwzder1CZQiX3x0PY6uxENYLNGTFd1InRQ==} dependencies: '@types/argparse': 1.0.38 @@ -1250,17 +1339,17 @@ packages: string-argv: 0.3.2 dev: true - /@sinclair/typebox/0.27.8: + /@sinclair/typebox@0.27.8: resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} dev: true - /@swc/helpers/0.5.1: + /@swc/helpers@0.5.1: resolution: {integrity: sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg==} dependencies: tslib: 2.6.1 dev: false - /@testing-library/dom/8.20.1: + /@testing-library/dom@8.20.1: resolution: {integrity: sha512-/DiOQ5xBxgdYRC8LNk7U+RWat0S3qRLeIw3ZIkMQ9kkVlRmwD/Eg8k8CqIpD6GW7u20JIUOfMKbxtiLutpjQ4g==} engines: {node: '>=12'} dependencies: @@ -1274,7 +1363,7 @@ packages: pretty-format: 27.5.1 dev: true - /@testing-library/dom/9.3.1: + /@testing-library/dom@9.3.1: resolution: {integrity: sha512-0DGPd9AR3+iDTjGoMpxIkAsUihHZ3Ai6CneU6bRRrffXMgzCdlNk43jTrD2/5LT6CBb3MWTP8v510JzYtahD2w==} engines: {node: '>=14'} dependencies: @@ -1286,9 +1375,8 @@ packages: dom-accessibility-api: 0.5.16 lz-string: 1.5.0 pretty-format: 27.5.1 - dev: true - /@testing-library/jest-dom/5.16.5: + /@testing-library/jest-dom@5.16.5: resolution: {integrity: sha512-N5ixQ2qKpi5OLYfwQmUb/5mSV9LneAcaUfp32pn4yCnpb8r/Yz0pXFPck21dIicKmi+ta5WRAknkZCfA8refMA==} engines: {node: '>=8', npm: '>=6', yarn: '>=1'} dependencies: @@ -1303,7 +1391,7 @@ packages: redent: 3.0.0 dev: true - /@testing-library/jest-dom/5.17.0: + /@testing-library/jest-dom@5.17.0: resolution: {integrity: sha512-ynmNeT7asXyH3aSVv4vvX4Rb+0qjOhdNHnO/3vuZNqPmhDpV/+rCSGwQ7bLcmU2cJ4dvoheIO85LQj0IbJHEtg==} engines: {node: '>=8', npm: '>=6', yarn: '>=1'} dependencies: @@ -1317,19 +1405,7 @@ packages: lodash: 4.17.21 redent: 3.0.0 - /@testing-library/react/13.3.0: - resolution: {integrity: sha512-DB79aA426+deFgGSjnf5grczDPiL4taK3hFaa+M5q7q20Kcve9eQottOG5kZ74KEr55v0tU2CQormSSDK87zYQ==} - engines: {node: '>=12'} - peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 - dependencies: - '@babel/runtime': 7.22.6 - '@testing-library/dom': 8.20.1 - '@types/react-dom': 18.2.7 - dev: true - - /@testing-library/react/13.3.0_biqbaboplfbrettd7655fr4n2y: + /@testing-library/react@13.3.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-DB79aA426+deFgGSjnf5grczDPiL4taK3hFaa+M5q7q20Kcve9eQottOG5kZ74KEr55v0tU2CQormSSDK87zYQ==} engines: {node: '>=12'} peerDependencies: @@ -1340,115 +1416,117 @@ packages: '@testing-library/dom': 8.20.1 '@types/react-dom': 18.2.7 react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 + react-dom: 18.2.0(react@18.2.0) dev: true - /@testing-library/user-event/13.5.0: + /@testing-library/user-event@13.5.0(@testing-library/dom@9.3.1): resolution: {integrity: sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg==} engines: {node: '>=10', npm: '>=6'} peerDependencies: '@testing-library/dom': '>=7.21.4' dependencies: '@babel/runtime': 7.22.6 + '@testing-library/dom': 9.3.1 dev: false - /@testing-library/user-event/14.4.3: + /@testing-library/user-event@14.4.3(@testing-library/dom@9.3.1): resolution: {integrity: sha512-kCUc5MEwaEMakkO5x7aoD+DLi02ehmEM2QCGWvNqAS1dV/fAvORWEjnjsEIvml59M7Y5kCkWN6fCCyPOe8OL6Q==} engines: {node: '>=12', npm: '>=6'} peerDependencies: '@testing-library/dom': '>=7.21.4' + dependencies: + '@testing-library/dom': 9.3.1 dev: true - /@tootallnate/once/2.0.0: + /@tootallnate/once@2.0.0: resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} engines: {node: '>= 10'} dev: true - /@types/argparse/1.0.38: + /@types/argparse@1.0.38: resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} dev: true - /@types/aria-query/5.0.1: + /@types/aria-query@5.0.1: resolution: {integrity: sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q==} - dev: true - /@types/chai-subset/1.3.3: + /@types/chai-subset@1.3.3: resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} dependencies: '@types/chai': 4.3.5 dev: true - /@types/chai/4.3.5: + /@types/chai@4.3.5: resolution: {integrity: sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==} dev: true - /@types/cookie/0.4.1: + /@types/cookie@0.4.1: resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==} dev: true - /@types/debug/4.1.8: + /@types/debug@4.1.8: resolution: {integrity: sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ==} dependencies: '@types/ms': 0.7.31 dev: true - /@types/estree/1.0.1: + /@types/estree@1.0.1: resolution: {integrity: sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==} dev: true - /@types/istanbul-lib-coverage/2.0.4: + /@types/istanbul-lib-coverage@2.0.4: resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} dev: true - /@types/jest/27.5.2: + /@types/jest@27.5.2: resolution: {integrity: sha512-mpT8LJJ4CMeeahobofYWIjFo0xonRS/HfxnVEPMPFSQdGUt1uHCnoPT7Zhb+sjDU2wz0oKV0OLUR0WzrHNgfeA==} dependencies: jest-matcher-utils: 27.5.1 pretty-format: 27.5.1 - /@types/js-levenshtein/1.1.1: + /@types/js-levenshtein@1.1.1: resolution: {integrity: sha512-qC4bCqYGy1y/NP7dDVr7KJarn+PbX1nSpwA7JXdu0HxT3QYjO8MJ+cntENtHFVy2dRAyBV23OZ6MxsW1AM1L8g==} dev: true - /@types/json-schema/7.0.12: + /@types/json-schema@7.0.12: resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==} dev: true - /@types/json5/0.0.29: + /@types/json5@0.0.29: resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} dev: true - /@types/minimist/1.2.2: + /@types/minimist@1.2.2: resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} dev: true - /@types/ms/0.7.31: + /@types/ms@0.7.31: resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} dev: true - /@types/node/18.17.1: + /@types/node@18.17.1: resolution: {integrity: sha512-xlR1jahfizdplZYRU59JlUx9uzF1ARa8jbhM11ccpCJya8kvos5jwdm2ZAgxSCwOl0fq21svP18EVwPBXMQudw==} dev: true - /@types/node/20.4.5: + /@types/node@20.4.5: resolution: {integrity: sha512-rt40Nk13II9JwQBdeYqmbn2Q6IVTA5uPhvSO+JVqdXw/6/4glI6oR9ezty/A9Hg5u7JH4OmYmuQ+XvjKm0Datg==} dev: true - /@types/normalize-package-data/2.4.1: + /@types/normalize-package-data@2.4.1: resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} dev: true - /@types/prop-types/15.7.5: + /@types/prop-types@15.7.5: resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} dev: true - /@types/react-dom/18.2.7: + /@types/react-dom@18.2.7: resolution: {integrity: sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA==} dependencies: '@types/react': 18.2.17 dev: true - /@types/react/18.2.17: + /@types/react@18.2.17: resolution: {integrity: sha512-u+e7OlgPPh+aryjOm5UJMX32OvB2E3QASOAqVMY6Ahs90djagxwv2ya0IctglNbNTexC12qCSMZG47KPfy1hAA==} dependencies: '@types/prop-types': 15.7.5 @@ -1456,26 +1534,26 @@ packages: csstype: 3.1.2 dev: true - /@types/scheduler/0.16.3: + /@types/scheduler@0.16.3: resolution: {integrity: sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==} dev: true - /@types/semver/7.5.0: + /@types/semver@7.5.0: resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} dev: true - /@types/set-cookie-parser/2.4.3: + /@types/set-cookie-parser@2.4.3: resolution: {integrity: sha512-7QhnH7bi+6KAhBB+Auejz1uV9DHiopZqu7LfR/5gZZTkejJV5nYeZZpgfFoE0N8aDsXuiYpfKyfyMatCwQhyTQ==} dependencies: '@types/node': 20.4.5 dev: true - /@types/testing-library__jest-dom/5.14.9: + /@types/testing-library__jest-dom@5.14.9: resolution: {integrity: sha512-FSYhIjFlfOpGSRyVoMBMuS3ws5ehFQODymf3vlI7U1K8c7PHwWwFY7VREfmsuzHSOnoKs/9/Y983ayOs7eRzqw==} dependencies: '@types/jest': 27.5.2 - /@typescript-eslint/eslint-plugin/6.2.0_idzvfmj5qli4h3jfxnf522w3fe: + /@typescript-eslint/eslint-plugin@6.2.0(@typescript-eslint/parser@6.2.0)(eslint@8.46.0)(typescript@5.1.6): resolution: {integrity: sha512-rClGrMuyS/3j0ETa1Ui7s6GkLhfZGKZL3ZrChLeAiACBE/tRc1wq8SNZESUuluxhLj9FkUefRs2l6bCIArWBiQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -1487,10 +1565,10 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.6.2 - '@typescript-eslint/parser': 6.2.0_7haavtekmro7ptbnqmctjaodju + '@typescript-eslint/parser': 6.2.0(eslint@8.46.0)(typescript@5.1.6) '@typescript-eslint/scope-manager': 6.2.0 - '@typescript-eslint/type-utils': 6.2.0_7haavtekmro7ptbnqmctjaodju - '@typescript-eslint/utils': 6.2.0_7haavtekmro7ptbnqmctjaodju + '@typescript-eslint/type-utils': 6.2.0(eslint@8.46.0)(typescript@5.1.6) + '@typescript-eslint/utils': 6.2.0(eslint@8.46.0)(typescript@5.1.6) '@typescript-eslint/visitor-keys': 6.2.0 debug: 4.3.4 eslint: 8.46.0 @@ -1499,13 +1577,13 @@ packages: natural-compare: 1.4.0 natural-compare-lite: 1.4.0 semver: 7.5.4 - ts-api-utils: 1.0.1_typescript@5.1.6 + ts-api-utils: 1.0.1(typescript@5.1.6) typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser/6.2.0_7haavtekmro7ptbnqmctjaodju: + /@typescript-eslint/parser@6.2.0(eslint@8.46.0)(typescript@5.1.6): resolution: {integrity: sha512-igVYOqtiK/UsvKAmmloQAruAdUHihsOCvplJpplPZ+3h4aDkC/UKZZNKgB6h93ayuYLuEymU3h8nF1xMRbh37g==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -1517,7 +1595,7 @@ packages: dependencies: '@typescript-eslint/scope-manager': 6.2.0 '@typescript-eslint/types': 6.2.0 - '@typescript-eslint/typescript-estree': 6.2.0_typescript@5.1.6 + '@typescript-eslint/typescript-estree': 6.2.0(typescript@5.1.6) '@typescript-eslint/visitor-keys': 6.2.0 debug: 4.3.4 eslint: 8.46.0 @@ -1526,7 +1604,7 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager/5.62.0: + /@typescript-eslint/scope-manager@5.62.0: resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: @@ -1534,7 +1612,7 @@ packages: '@typescript-eslint/visitor-keys': 5.62.0 dev: true - /@typescript-eslint/scope-manager/6.2.0: + /@typescript-eslint/scope-manager@6.2.0: resolution: {integrity: sha512-1ZMNVgm5nnHURU8ZSJ3snsHzpFeNK84rdZjluEVBGNu7jDymfqceB3kdIZ6A4xCfEFFhRIB6rF8q/JIqJd2R0Q==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: @@ -1542,7 +1620,7 @@ packages: '@typescript-eslint/visitor-keys': 6.2.0 dev: true - /@typescript-eslint/type-utils/6.2.0_7haavtekmro7ptbnqmctjaodju: + /@typescript-eslint/type-utils@6.2.0(eslint@8.46.0)(typescript@5.1.6): resolution: {integrity: sha512-DnGZuNU2JN3AYwddYIqrVkYW0uUQdv0AY+kz2M25euVNlujcN2u+rJgfJsBFlUEzBB6OQkUqSZPyuTLf2bP5mw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -1552,27 +1630,27 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.2.0_typescript@5.1.6 - '@typescript-eslint/utils': 6.2.0_7haavtekmro7ptbnqmctjaodju + '@typescript-eslint/typescript-estree': 6.2.0(typescript@5.1.6) + '@typescript-eslint/utils': 6.2.0(eslint@8.46.0)(typescript@5.1.6) debug: 4.3.4 eslint: 8.46.0 - ts-api-utils: 1.0.1_typescript@5.1.6 + ts-api-utils: 1.0.1(typescript@5.1.6) typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types/5.62.0: + /@typescript-eslint/types@5.62.0: resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/types/6.2.0: + /@typescript-eslint/types@6.2.0: resolution: {integrity: sha512-1nRRaDlp/XYJQLvkQJG5F3uBTno5SHPT7XVcJ5n1/k2WfNI28nJsvLakxwZRNY5spuatEKO7d5nZWsQpkqXwBA==} engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree/5.62.0_typescript@5.1.6: + /@typescript-eslint/typescript-estree@5.62.0(typescript@5.1.6): resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -1587,13 +1665,13 @@ packages: globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 - tsutils: 3.21.0_typescript@5.1.6 + tsutils: 3.21.0(typescript@5.1.6) typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/typescript-estree/6.2.0_typescript@5.1.6: + /@typescript-eslint/typescript-estree@6.2.0(typescript@5.1.6): resolution: {integrity: sha512-Mts6+3HQMSM+LZCglsc2yMIny37IhUgp1Qe8yJUYVyO6rHP7/vN0vajKu3JvHCBIy8TSiKddJ/Zwu80jhnGj1w==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -1608,24 +1686,24 @@ packages: globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 - ts-api-utils: 1.0.1_typescript@5.1.6 + ts-api-utils: 1.0.1(typescript@5.1.6) typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils/5.62.0_7haavtekmro7ptbnqmctjaodju: + /@typescript-eslint/utils@5.62.0(eslint@8.46.0)(typescript@5.1.6): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0_eslint@8.46.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0) '@types/json-schema': 7.0.12 '@types/semver': 7.5.0 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0_typescript@5.1.6 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6) eslint: 8.46.0 eslint-scope: 5.1.1 semver: 7.5.4 @@ -1634,18 +1712,18 @@ packages: - typescript dev: true - /@typescript-eslint/utils/6.2.0_7haavtekmro7ptbnqmctjaodju: + /@typescript-eslint/utils@6.2.0(eslint@8.46.0)(typescript@5.1.6): resolution: {integrity: sha512-RCFrC1lXiX1qEZN8LmLrxYRhOkElEsPKTVSNout8DMzf8PeWoQG7Rxz2SadpJa3VSh5oYKGwt7j7X/VRg+Y3OQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0_eslint@8.46.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0) '@types/json-schema': 7.0.12 '@types/semver': 7.5.0 '@typescript-eslint/scope-manager': 6.2.0 '@typescript-eslint/types': 6.2.0 - '@typescript-eslint/typescript-estree': 6.2.0_typescript@5.1.6 + '@typescript-eslint/typescript-estree': 6.2.0(typescript@5.1.6) eslint: 8.46.0 semver: 7.5.4 transitivePeerDependencies: @@ -1653,7 +1731,7 @@ packages: - typescript dev: true - /@typescript-eslint/visitor-keys/5.62.0: + /@typescript-eslint/visitor-keys@5.62.0: resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: @@ -1661,7 +1739,7 @@ packages: eslint-visitor-keys: 3.4.2 dev: true - /@typescript-eslint/visitor-keys/6.2.0: + /@typescript-eslint/visitor-keys@6.2.0: resolution: {integrity: sha512-QbaYUQVKKo9bgCzpjz45llCfwakyoxHetIy8CAvYCtd16Zu1KrpzNHofwF8kGkpPOxZB2o6kz+0nqH8ZkIzuoQ==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: @@ -1669,22 +1747,22 @@ packages: eslint-visitor-keys: 3.4.2 dev: true - /@vitejs/plugin-react/4.0.3_vite@4.4.7: + /@vitejs/plugin-react@4.0.3(vite@4.4.7): resolution: {integrity: sha512-pwXDog5nwwvSIzwrvYYmA2Ljcd/ZNlcsSG2Q9CNDBwnsd55UGAyr2doXtB5j+2uymRCnCfExlznzzSFbBRcoCg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: vite: ^4.2.0 dependencies: '@babel/core': 7.22.9 - '@babel/plugin-transform-react-jsx-self': 7.22.5_@babel+core@7.22.9 - '@babel/plugin-transform-react-jsx-source': 7.22.5_@babel+core@7.22.9 + '@babel/plugin-transform-react-jsx-self': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-react-jsx-source': 7.22.5(@babel/core@7.22.9) react-refresh: 0.14.0 - vite: 4.4.7 + vite: 4.4.7(@types/node@18.17.1) transitivePeerDependencies: - supports-color dev: true - /@vitest/coverage-c8/0.33.0_vitest@0.33.0: + /@vitest/coverage-c8@0.33.0(vitest@0.33.0): resolution: {integrity: sha512-DaF1zJz4dcOZS4k/neiQJokmOWqsGXwhthfmUdPGorXIQHjdPvV6JQSYhQDI41MyI8c+IieQUdIDs5XAMHtDDw==} peerDependencies: vitest: '>=0.30.0 <1' @@ -1694,10 +1772,10 @@ packages: magic-string: 0.30.2 picocolors: 1.0.0 std-env: 3.3.3 - vitest: 0.33.0_jsdom@22.1.0 + vitest: 0.33.0(jsdom@22.1.0) dev: true - /@vitest/coverage-v8/0.33.0_vitest@0.33.0: + /@vitest/coverage-v8@0.33.0(vitest@0.33.0): resolution: {integrity: sha512-Rj5IzoLF7FLj6yR7TmqsfRDSeaFki6NAJ/cQexqhbWkHEV2htlVGrmuOde3xzvFsCbLCagf4omhcIaVmfU8Okg==} peerDependencies: vitest: '>=0.32.0 <1' @@ -1713,12 +1791,12 @@ packages: std-env: 3.3.3 test-exclude: 6.0.0 v8-to-istanbul: 9.1.0 - vitest: 0.33.0 + vitest: 0.33.0(jsdom@22.1.0) transitivePeerDependencies: - supports-color dev: true - /@vitest/expect/0.33.0: + /@vitest/expect@0.33.0: resolution: {integrity: sha512-sVNf+Gla3mhTCxNJx+wJLDPp/WcstOe0Ksqz4Vec51MmgMth/ia0MGFEkIZmVGeTL5HtjYR4Wl/ZxBxBXZJTzQ==} dependencies: '@vitest/spy': 0.33.0 @@ -1726,7 +1804,7 @@ packages: chai: 4.3.7 dev: true - /@vitest/runner/0.33.0: + /@vitest/runner@0.33.0: resolution: {integrity: sha512-UPfACnmCB6HKRHTlcgCoBh6ppl6fDn+J/xR8dTufWiKt/74Y9bHci5CKB8tESSV82zKYtkBJo9whU3mNvfaisg==} dependencies: '@vitest/utils': 0.33.0 @@ -1734,7 +1812,7 @@ packages: pathe: 1.1.1 dev: true - /@vitest/snapshot/0.33.0: + /@vitest/snapshot@0.33.0: resolution: {integrity: sha512-tJjrl//qAHbyHajpFvr8Wsk8DIOODEebTu7pgBrP07iOepR5jYkLFiqLq2Ltxv+r0uptUb4izv1J8XBOwKkVYA==} dependencies: magic-string: 0.30.2 @@ -1742,13 +1820,13 @@ packages: pretty-format: 29.6.2 dev: true - /@vitest/spy/0.33.0: + /@vitest/spy@0.33.0: resolution: {integrity: sha512-Kv+yZ4hnH1WdiAkPUQTpRxW8kGtH8VRTnus7ZTGovFYM1ZezJpvGtb9nPIjPnptHbsyIAxYZsEpVPYgtpjGnrg==} dependencies: tinyspy: 2.1.1 dev: true - /@vitest/utils/0.33.0: + /@vitest/utils@0.33.0: resolution: {integrity: sha512-pF1w22ic965sv+EN6uoePkAOTkAPWM03Ri/jXNyMIKBb/XHLDPfhLvf/Fa9g0YECevAIz56oVYXhodLvLQ/awA==} dependencies: diff-sequences: 29.4.3 @@ -1756,25 +1834,25 @@ packages: pretty-format: 29.6.2 dev: true - /@volar/language-core/1.10.0: + /@volar/language-core@1.10.0: resolution: {integrity: sha512-ddyWwSYqcbEZNFHm+Z3NZd6M7Ihjcwl/9B5cZd8kECdimVXUFdFi60XHWD27nrWtUQIsUYIG7Ca1WBwV2u2LSQ==} dependencies: '@volar/source-map': 1.10.0 dev: true - /@volar/source-map/1.10.0: + /@volar/source-map@1.10.0: resolution: {integrity: sha512-/ibWdcOzDGiq/GM1JU2eX8fH1bvAhl66hfe8yEgLEzg9txgr6qb5sQ/DEz5PcDL75tF5H5sCRRwn8Eu8ezi9mw==} dependencies: muggle-string: 0.3.1 dev: true - /@volar/typescript/1.10.0: + /@volar/typescript@1.10.0: resolution: {integrity: sha512-OtqGtFbUKYC0pLNIk3mHQp5xWnvL1CJIUc9VE39VdZ/oqpoBh5jKfb9uJ45Y4/oP/WYTrif/Uxl1k8VTPz66Gg==} dependencies: '@volar/language-core': 1.10.0 dev: true - /@vue/compiler-core/3.3.4: + /@vue/compiler-core@3.3.4: resolution: {integrity: sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==} dependencies: '@babel/parser': 7.22.7 @@ -1783,14 +1861,14 @@ packages: source-map-js: 1.0.2 dev: true - /@vue/compiler-dom/3.3.4: + /@vue/compiler-dom@3.3.4: resolution: {integrity: sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==} dependencies: '@vue/compiler-core': 3.3.4 '@vue/shared': 3.3.4 dev: true - /@vue/language-core/1.8.8_typescript@5.1.6: + /@vue/language-core@1.8.8(typescript@5.1.6): resolution: {integrity: sha512-i4KMTuPazf48yMdYoebTkgSOJdFraE4pQf0B+FTOFkbB+6hAfjrSou/UmYWRsWyZV6r4Rc6DDZdI39CJwL0rWw==} peerDependencies: typescript: '*' @@ -1809,41 +1887,41 @@ packages: vue-template-compiler: 2.7.14 dev: true - /@vue/reactivity/3.3.4: + /@vue/reactivity@3.3.4: resolution: {integrity: sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==} dependencies: '@vue/shared': 3.3.4 dev: true - /@vue/shared/3.3.4: + /@vue/shared@3.3.4: resolution: {integrity: sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==} dev: true - /@vue/typescript/1.8.8_typescript@5.1.6: + /@vue/typescript@1.8.8(typescript@5.1.6): resolution: {integrity: sha512-jUnmMB6egu5wl342eaUH236v8tdcEPXXkPgj+eI/F6JwW/lb+yAU6U07ZbQ3MVabZRlupIlPESB7ajgAGixhow==} dependencies: '@volar/typescript': 1.10.0 - '@vue/language-core': 1.8.8_typescript@5.1.6 + '@vue/language-core': 1.8.8(typescript@5.1.6) transitivePeerDependencies: - typescript dev: true - /@xmldom/xmldom/0.8.10: + /@xmldom/xmldom@0.8.10: resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==} engines: {node: '>=10.0.0'} dev: true - /@zxing/text-encoding/0.9.0: + /@zxing/text-encoding@0.9.0: resolution: {integrity: sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==} requiresBuild: true dev: true optional: true - /abab/2.0.6: + /abab@2.0.6: resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} dev: true - /acorn-jsx/5.3.2_acorn@8.10.0: + /acorn-jsx@5.3.2(acorn@8.10.0): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -1851,18 +1929,18 @@ packages: acorn: 8.10.0 dev: true - /acorn-walk/8.2.0: + /acorn-walk@8.2.0: resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} engines: {node: '>=0.4.0'} dev: true - /acorn/8.10.0: + /acorn@8.10.0: resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} engines: {node: '>=0.4.0'} hasBin: true dev: true - /agent-base/6.0.2: + /agent-base@6.0.2: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} dependencies: @@ -1871,7 +1949,7 @@ packages: - supports-color dev: true - /aggregate-error/4.0.1: + /aggregate-error@4.0.1: resolution: {integrity: sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==} engines: {node: '>=12'} dependencies: @@ -1879,7 +1957,7 @@ packages: indent-string: 5.0.0 dev: true - /ajv/6.12.6: + /ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} dependencies: fast-deep-equal: 3.1.3 @@ -1888,45 +1966,44 @@ packages: uri-js: 4.4.1 dev: true - /ansi-escapes/4.3.2: + /ansi-escapes@4.3.2: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} engines: {node: '>=8'} dependencies: type-fest: 0.21.3 dev: true - /ansi-regex/5.0.1: + /ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - /ansi-regex/6.0.1: + /ansi-regex@6.0.1: resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} engines: {node: '>=12'} dev: true - /ansi-styles/3.2.1: + /ansi-styles@3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} engines: {node: '>=4'} dependencies: color-convert: 1.9.3 - dev: true - /ansi-styles/4.3.0: + /ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} dependencies: color-convert: 2.0.1 - /ansi-styles/5.2.0: + /ansi-styles@5.2.0: resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} engines: {node: '>=10'} - /ansi-styles/6.2.1: + /ansi-styles@6.2.1: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} dev: true - /anymatch/3.1.3: + /anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} dependencies: @@ -1934,35 +2011,33 @@ packages: picomatch: 2.3.1 dev: true - /argparse/1.0.10: + /argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} dependencies: sprintf-js: 1.0.3 dev: true - /argparse/2.0.1: + /argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} dev: true - /aria-query/5.1.3: + /aria-query@5.1.3: resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} dependencies: deep-equal: 2.2.2 - dev: true - /aria-query/5.3.0: + /aria-query@5.3.0: resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} dependencies: dequal: 2.0.3 - /array-buffer-byte-length/1.0.0: + /array-buffer-byte-length@1.0.0: resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} dependencies: call-bind: 1.0.2 is-array-buffer: 3.0.2 - dev: true - /array-includes/3.1.6: + /array-includes@3.1.6: resolution: {integrity: sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==} engines: {node: '>= 0.4'} dependencies: @@ -1973,12 +2048,12 @@ packages: is-string: 1.0.7 dev: true - /array-union/2.1.0: + /array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} dev: true - /array.prototype.findlastindex/1.2.2: + /array.prototype.findlastindex@1.2.2: resolution: {integrity: sha512-tb5thFFlUcp7NdNF6/MpDk/1r/4awWG1FIz3YqDf+/zJSTezBb+/5WViH41obXULHVpDzoiCLpJ/ZO9YbJMsdw==} engines: {node: '>= 0.4'} dependencies: @@ -1989,7 +2064,7 @@ packages: get-intrinsic: 1.2.1 dev: true - /array.prototype.flat/1.3.1: + /array.prototype.flat@1.3.1: resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==} engines: {node: '>= 0.4'} dependencies: @@ -1999,7 +2074,7 @@ packages: es-shim-unscopables: 1.0.0 dev: true - /array.prototype.flatmap/1.3.1: + /array.prototype.flatmap@1.3.1: resolution: {integrity: sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==} engines: {node: '>= 0.4'} dependencies: @@ -2009,7 +2084,7 @@ packages: es-shim-unscopables: 1.0.0 dev: true - /array.prototype.tosorted/1.1.1: + /array.prototype.tosorted@1.1.1: resolution: {integrity: sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==} dependencies: call-bind: 1.0.2 @@ -2019,7 +2094,7 @@ packages: get-intrinsic: 1.2.1 dev: true - /arraybuffer.prototype.slice/1.0.1: + /arraybuffer.prototype.slice@1.0.1: resolution: {integrity: sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==} engines: {node: '>= 0.4'} dependencies: @@ -2031,62 +2106,61 @@ packages: is-shared-array-buffer: 1.0.2 dev: true - /arrify/1.0.1: + /arrify@1.0.1: resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} engines: {node: '>=0.10.0'} dev: true - /arrify/3.0.0: + /arrify@3.0.0: resolution: {integrity: sha512-tLkvA81vQG/XqE2mjDkGQHoOINtMHtysSnemrmoGe6PydDPMRbVugqyk4A6V/WDWEfm3l+0d8anA9r8cv/5Jaw==} engines: {node: '>=12'} dev: true - /assertion-error/1.1.0: + /assertion-error@1.1.0: resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} dev: true - /ast-types-flow/0.0.7: + /ast-types-flow@0.0.7: resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==} dev: true - /asynckit/0.4.0: + /asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} dev: true - /available-typed-arrays/1.0.5: + /available-typed-arrays@1.0.5: resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} engines: {node: '>= 0.4'} - dev: true - /axe-core/4.7.2: + /axe-core@4.7.2: resolution: {integrity: sha512-zIURGIS1E1Q4pcrMjp+nnEh+16G56eG/MUllJH8yEvw7asDo7Ac9uhC9KIH5jzpITueEZolfYglnCGIuSBz39g==} engines: {node: '>=4'} dev: true - /axobject-query/3.2.1: + /axobject-query@3.2.1: resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} dependencies: dequal: 2.0.3 dev: true - /balanced-match/1.0.2: + /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} dev: true - /base64-js/1.5.1: + /base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - /big-integer/1.6.51: + /big-integer@1.6.51: resolution: {integrity: sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==} engines: {node: '>=0.6'} dev: true - /binary-extensions/2.2.0: + /binary-extensions@2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} dev: true - /bl/4.1.0: + /bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} dependencies: buffer: 5.7.1 @@ -2094,41 +2168,44 @@ packages: readable-stream: 3.6.2 dev: true - /bootstrap/4.6.2: + /bootstrap@4.6.2(jquery@3.7.0)(popper.js@1.16.1): resolution: {integrity: sha512-51Bbp/Uxr9aTuy6ca/8FbFloBUJZLHwnhTcnjIeRn2suQWsWzcuJhGjKDB5eppVte/8oCdOL3VuwxvZDUggwGQ==} peerDependencies: jquery: 1.9.1 - 3 popper.js: ^1.16.1 + dependencies: + jquery: 3.7.0 + popper.js: 1.16.1 dev: true - /bplist-parser/0.2.0: + /bplist-parser@0.2.0: resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==} engines: {node: '>= 5.10.0'} dependencies: big-integer: 1.6.51 dev: true - /brace-expansion/1.1.11: + /brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 dev: true - /brace-expansion/2.0.1: + /brace-expansion@2.0.1: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} dependencies: balanced-match: 1.0.2 dev: true - /braces/3.0.2: + /braces@3.0.2: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} engines: {node: '>=8'} dependencies: fill-range: 7.0.1 dev: true - /browserslist/4.21.10: + /browserslist@4.21.10: resolution: {integrity: sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -2136,41 +2213,41 @@ packages: caniuse-lite: 1.0.30001517 electron-to-chromium: 1.4.477 node-releases: 2.0.13 - update-browserslist-db: 1.0.11_browserslist@4.21.10 + update-browserslist-db: 1.0.11(browserslist@4.21.10) dev: true - /buffer-from/1.1.2: + /buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} dev: true - /buffer/5.7.1: + /buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} dependencies: base64-js: 1.5.1 ieee754: 1.2.1 dev: true - /builtins/5.0.1: + /builtins@5.0.1: resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} dependencies: semver: 7.5.4 dev: true - /bundle-name/3.0.0: + /bundle-name@3.0.0: resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==} engines: {node: '>=12'} dependencies: run-applescript: 5.0.0 dev: true - /busboy/1.6.0: + /busboy@1.6.0: resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} engines: {node: '>=10.16.0'} dependencies: streamsearch: 1.1.0 dev: false - /c8/7.14.0: + /c8@7.14.0: resolution: {integrity: sha512-i04rtkkcNcCf7zsQcSv/T9EbUn4RXQ6mropeMcjFOsQXQ0iGLAr/xT6TImQg4+U9hmNpN9XdvPkjUL1IzbgxJw==} engines: {node: '>=10.12.0'} hasBin: true @@ -2189,24 +2266,23 @@ packages: yargs-parser: 20.2.9 dev: true - /cac/6.7.14: + /cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} dev: true - /call-bind/1.0.2: + /call-bind@1.0.2: resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} dependencies: function-bind: 1.1.1 get-intrinsic: 1.2.1 - dev: true - /callsites/3.1.0: + /callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} dev: true - /camelcase-keys/8.0.2: + /camelcase-keys@8.0.2: resolution: {integrity: sha512-qMKdlOfsjlezMqxkUGGMaWWs17i2HoL15tM+wtx8ld4nLrUwU58TFdvyGOz/piNP842KeO8yXvggVQSdQ828NA==} engines: {node: '>=14.16'} dependencies: @@ -2216,15 +2292,15 @@ packages: type-fest: 2.19.0 dev: true - /camelcase/7.0.1: + /camelcase@7.0.1: resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} engines: {node: '>=14.16'} dev: true - /caniuse-lite/1.0.30001517: + /caniuse-lite@1.0.30001517: resolution: {integrity: sha512-Vdhm5S11DaFVLlyiKu4hiUTkpZu+y1KA/rZZqVQfOD5YdDT/eQKlkt7NaE0WGOFgX32diqt9MiP9CAiFeRklaA==} - /chai/4.3.7: + /chai@4.3.7: resolution: {integrity: sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==} engines: {node: '>=4'} dependencies: @@ -2237,23 +2313,22 @@ packages: type-detect: 4.0.8 dev: true - /chalk/2.4.2: + /chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} dependencies: ansi-styles: 3.2.1 escape-string-regexp: 1.0.5 supports-color: 5.5.0 - dev: true - /chalk/3.0.0: + /chalk@3.0.0: resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} engines: {node: '>=8'} dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 - /chalk/4.1.1: + /chalk@4.1.1: resolution: {integrity: sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==} engines: {node: '>=10'} dependencies: @@ -2261,22 +2336,22 @@ packages: supports-color: 7.2.0 dev: true - /chalk/4.1.2: + /chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 - /chardet/0.7.0: + /chardet@0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} dev: true - /check-error/1.0.2: + /check-error@1.0.2: resolution: {integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==} dev: true - /chokidar/3.5.3: + /chokidar@3.5.3: resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} engines: {node: '>= 8.10.0'} dependencies: @@ -2291,35 +2366,35 @@ packages: fsevents: 2.3.2 dev: true - /clean-stack/4.2.0: + /clean-stack@4.2.0: resolution: {integrity: sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==} engines: {node: '>=12'} dependencies: escape-string-regexp: 5.0.0 dev: true - /cli-cursor/3.1.0: + /cli-cursor@3.1.0: resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} engines: {node: '>=8'} dependencies: restore-cursor: 3.1.0 dev: true - /cli-spinners/2.9.0: + /cli-spinners@2.9.0: resolution: {integrity: sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g==} engines: {node: '>=6'} dev: true - /cli-width/3.0.0: + /cli-width@3.0.0: resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} engines: {node: '>= 10'} dev: true - /client-only/0.0.1: + /client-only@0.0.1: resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} dev: false - /cliui/7.0.4: + /cliui@7.0.4: resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} dependencies: string-width: 4.2.3 @@ -2327,7 +2402,7 @@ packages: wrap-ansi: 7.0.0 dev: true - /cliui/8.0.1: + /cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} dependencies: @@ -2336,68 +2411,66 @@ packages: wrap-ansi: 7.0.0 dev: true - /clone/1.0.4: + /clone@1.0.4: resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} engines: {node: '>=0.8'} dev: true - /color-convert/1.9.3: + /color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: color-name: 1.1.3 - dev: true - /color-convert/2.0.1: + /color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} dependencies: color-name: 1.1.4 - /color-name/1.1.3: + /color-name@1.1.3: resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - dev: true - /color-name/1.1.4: + /color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - /colors/1.2.5: + /colors@1.2.5: resolution: {integrity: sha512-erNRLao/Y3Fv54qUa0LBB+//Uf3YwMUmdJinN20yMXm9zdKKqH9wt7R9IIVZ+K7ShzfpLV/Zg8+VyrBJYB4lpg==} engines: {node: '>=0.1.90'} dev: true - /combined-stream/1.0.8: + /combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} dependencies: delayed-stream: 1.0.0 dev: true - /commander/9.5.0: + /commander@9.5.0: resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} engines: {node: ^12.20.0 || >=14} requiresBuild: true dev: true optional: true - /comment-parser/1.3.1: + /comment-parser@1.3.1: resolution: {integrity: sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA==} engines: {node: '>= 12.0.0'} dev: true - /concat-map/0.0.1: + /concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} dev: true - /convert-source-map/1.9.0: + /convert-source-map@1.9.0: resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} dev: true - /cookie/0.4.2: + /cookie@0.4.2: resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==} engines: {node: '>= 0.6'} dev: true - /copyfiles/2.4.1: + /copyfiles@2.4.1: resolution: {integrity: sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==} hasBin: true dependencies: @@ -2410,11 +2483,11 @@ packages: yargs: 16.2.0 dev: true - /core-util-is/1.0.3: + /core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} dev: true - /cp-file/10.0.0: + /cp-file@10.0.0: resolution: {integrity: sha512-vy2Vi1r2epK5WqxOLnskeKeZkdZvTKfFZQCplE3XWsP+SUJyd5XAUFC9lFgTjjXJF2GMne/UML14iEmkAaDfFg==} engines: {node: '>=14.16'} dependencies: @@ -2423,7 +2496,7 @@ packages: p-event: 5.0.1 dev: true - /cpy-cli/5.0.0: + /cpy-cli@5.0.0: resolution: {integrity: sha512-fb+DZYbL9KHc0BC4NYqGRrDIJZPXUmjjtqdw4XRRg8iV8dIfghUX/WiL+q4/B/KFTy3sK6jsbUhBaz0/Hxg7IQ==} engines: {node: '>=16'} hasBin: true @@ -2432,7 +2505,7 @@ packages: meow: 12.0.1 dev: true - /cpy/10.1.0: + /cpy@10.1.0: resolution: {integrity: sha512-VC2Gs20JcTyeQob6UViBLnyP0bYHkBh6EiKzot9vi2DmeGlFT9Wd7VG3NBrkNx/jYvFBeyDOMMHdHQhbtKLgHQ==} engines: {node: '>=16'} dependencies: @@ -2446,7 +2519,7 @@ packages: p-map: 6.0.0 dev: true - /cross-env/7.0.3: + /cross-env@7.0.3: resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} hasBin: true @@ -2454,7 +2527,7 @@ packages: cross-spawn: 7.0.3 dev: true - /cross-spawn/7.0.3: + /cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} dependencies: @@ -2463,25 +2536,25 @@ packages: which: 2.0.2 dev: true - /css.escape/1.5.1: + /css.escape@1.5.1: resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} - /cssstyle/3.0.0: + /cssstyle@3.0.0: resolution: {integrity: sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg==} engines: {node: '>=14'} dependencies: rrweb-cssom: 0.6.0 dev: true - /csstype/3.1.2: + /csstype@3.1.2: resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} dev: true - /damerau-levenshtein/1.0.8: + /damerau-levenshtein@1.0.8: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} dev: true - /data-urls/4.0.0: + /data-urls@4.0.0: resolution: {integrity: sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g==} engines: {node: '>=14'} dependencies: @@ -2490,11 +2563,11 @@ packages: whatwg-url: 12.0.1 dev: true - /de-indent/1.0.2: + /de-indent@1.0.2: resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} dev: true - /debug/3.2.7: + /debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: supports-color: '*' @@ -2505,7 +2578,7 @@ packages: ms: 2.1.3 dev: true - /debug/4.3.4: + /debug@4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} peerDependencies: @@ -2517,7 +2590,7 @@ packages: ms: 2.1.2 dev: true - /decamelize-keys/2.0.1: + /decamelize-keys@2.0.1: resolution: {integrity: sha512-nrNeSCtU2gV3Apcmn/EZ+aR20zKDuNDStV67jPiupokD3sOAFeMzslLMCFdKv1sPqzwoe5ZUhsSW9IAVgKSL/Q==} engines: {node: '>=14.16'} dependencies: @@ -2527,23 +2600,23 @@ packages: type-fest: 3.13.1 dev: true - /decamelize/6.0.0: + /decamelize@6.0.0: resolution: {integrity: sha512-Fv96DCsdOgB6mdGl67MT5JaTNKRzrzill5OH5s8bjYJXVlcXyPYGyPsUkWyGV5p1TXI5esYIYMMeDJL0hEIwaA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true - /decimal.js/10.4.3: + /decimal.js@10.4.3: resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} dev: true - /deep-eql/4.1.3: + /deep-eql@4.1.3: resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} engines: {node: '>=6'} dependencies: type-detect: 4.0.8 dev: true - /deep-equal/2.2.2: + /deep-equal@2.2.2: resolution: {integrity: sha512-xjVyBf0w5vH0I42jdAZzOKVldmPgSulmiyPRywoyq7HXC9qdgo17kxJE+rdnif5Tz6+pIrpJI8dCpMNLIGkUiA==} dependencies: array-buffer-byte-length: 1.0.0 @@ -2564,13 +2637,12 @@ packages: which-boxed-primitive: 1.0.2 which-collection: 1.0.1 which-typed-array: 1.1.11 - dev: true - /deep-is/0.1.4: + /deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: true - /default-browser-id/3.0.0: + /default-browser-id@3.0.0: resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==} engines: {node: '>=12'} dependencies: @@ -2578,7 +2650,7 @@ packages: untildify: 4.0.0 dev: true - /default-browser/4.0.0: + /default-browser@4.0.0: resolution: {integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==} engines: {node: '>=14.16'} dependencies: @@ -2588,102 +2660,101 @@ packages: titleize: 3.0.0 dev: true - /defaults/1.0.4: + /defaults@1.0.4: resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} dependencies: clone: 1.0.4 dev: true - /define-lazy-prop/3.0.0: + /define-lazy-prop@3.0.0: resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} engines: {node: '>=12'} dev: true - /define-properties/1.2.0: + /define-properties@1.2.0: resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} engines: {node: '>= 0.4'} dependencies: has-property-descriptors: 1.0.0 object-keys: 1.1.1 - dev: true - /delayed-stream/1.0.0: + /delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} dev: true - /dequal/2.0.3: + /dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} - /diff-sequences/27.5.1: + /diff-sequences@27.5.1: resolution: {integrity: sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - /diff-sequences/29.4.3: + /diff-sequences@29.4.3: resolution: {integrity: sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true - /dir-glob/3.0.1: + /dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} dependencies: path-type: 4.0.0 dev: true - /doctrine/2.1.0: + /doctrine@2.1.0: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} engines: {node: '>=0.10.0'} dependencies: esutils: 2.0.3 dev: true - /doctrine/3.0.0: + /doctrine@3.0.0: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} engines: {node: '>=6.0.0'} dependencies: esutils: 2.0.3 dev: true - /dom-accessibility-api/0.5.16: + /dom-accessibility-api@0.5.16: resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} - /domexception/4.0.0: + /domexception@4.0.0: resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} engines: {node: '>=12'} dependencies: webidl-conversions: 7.0.0 dev: true - /eastasianwidth/0.2.0: + /eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} dev: true - /electron-to-chromium/1.4.477: + /electron-to-chromium@1.4.477: resolution: {integrity: sha512-shUVy6Eawp33dFBFIoYbIwLHrX0IZ857AlH9ug2o4rvbWmpaCUdBpQ5Zw39HRrfzAFm4APJE9V+E2A/WB0YqJw==} dev: true - /emoji-regex/8.0.0: + /emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: true - /emoji-regex/9.2.2: + /emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} dev: true - /entities/4.5.0: + /entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} dev: true - /error-ex/1.3.2: + /error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} dependencies: is-arrayish: 0.2.1 dev: true - /es-abstract/1.22.1: + /es-abstract@1.22.1: resolution: {integrity: sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==} engines: {node: '>= 0.4'} dependencies: @@ -2728,7 +2799,7 @@ packages: which-typed-array: 1.1.11 dev: true - /es-get-iterator/1.1.3: + /es-get-iterator@1.1.3: resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} dependencies: call-bind: 1.0.2 @@ -2740,9 +2811,8 @@ packages: is-string: 1.0.7 isarray: 2.0.5 stop-iteration-iterator: 1.0.0 - dev: true - /es-set-tostringtag/2.0.1: + /es-set-tostringtag@2.0.1: resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} engines: {node: '>= 0.4'} dependencies: @@ -2751,13 +2821,13 @@ packages: has-tostringtag: 1.0.0 dev: true - /es-shim-unscopables/1.0.0: + /es-shim-unscopables@1.0.0: resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} dependencies: has: 1.0.3 dev: true - /es-to-primitive/1.2.1: + /es-to-primitive@1.2.1: resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} engines: {node: '>= 0.4'} dependencies: @@ -2766,7 +2836,7 @@ packages: is-symbol: 1.0.4 dev: true - /esbuild/0.17.19: + /esbuild@0.17.19: resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==} engines: {node: '>=12'} hasBin: true @@ -2796,7 +2866,7 @@ packages: '@esbuild/win32-x64': 0.17.19 dev: true - /esbuild/0.18.17: + /esbuild@0.18.17: resolution: {integrity: sha512-1GJtYnUxsJreHYA0Y+iQz2UEykonY66HNWOb0yXYZi9/kNrORUEHVg87eQsCtqh59PEJ5YVZJO98JHznMJSWjg==} engines: {node: '>=12'} hasBin: true @@ -2826,27 +2896,26 @@ packages: '@esbuild/win32-x64': 0.18.17 dev: true - /escalade/3.1.1: + /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} dev: true - /escape-string-regexp/1.0.5: + /escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} - dev: true - /escape-string-regexp/4.0.0: + /escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} dev: true - /escape-string-regexp/5.0.0: + /escape-string-regexp@5.0.0: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} dev: true - /eslint-config-prettier/8.9.0_eslint@8.46.0: + /eslint-config-prettier@8.9.0(eslint@8.46.0): resolution: {integrity: sha512-+sbni7NfVXnOpnRadUA8S28AUlsZt9GjgFvABIRL9Hkn8KqNzOp+7Lw4QWtrwn20KzU3wqu1QoOj2m+7rKRqkA==} hasBin: true peerDependencies: @@ -2855,12 +2924,12 @@ packages: eslint: 8.46.0 dev: true - /eslint-define-config/1.22.0: + /eslint-define-config@1.22.0: resolution: {integrity: sha512-pckNJppFwC4AX+AGK63aa4sX5BluPwWwHES3fq/ER0jDR2U2czwlngg38B4EQ2ibvofufc+R5QfmdPKI6+74vQ==} engines: {node: ^16.13.0 || >=18.0.0, npm: '>=7.0.0', pnpm: '>= 8.6.0'} dev: true - /eslint-import-resolver-node/0.3.7: + /eslint-import-resolver-node@0.3.7: resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==} dependencies: debug: 3.2.7 @@ -2870,7 +2939,7 @@ packages: - supports-color dev: true - /eslint-module-utils/2.8.0_yld263lccdegtok2y3jirl2p4y: + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.2.0)(eslint-import-resolver-node@0.3.7)(eslint@8.46.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -2891,7 +2960,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.2.0_7haavtekmro7ptbnqmctjaodju + '@typescript-eslint/parser': 6.2.0(eslint@8.46.0)(typescript@5.1.6) debug: 3.2.7 eslint: 8.46.0 eslint-import-resolver-node: 0.3.7 @@ -2899,18 +2968,18 @@ packages: - supports-color dev: true - /eslint-plugin-es-x/7.2.0_eslint@8.46.0: + /eslint-plugin-es-x@7.2.0(eslint@8.46.0): resolution: {integrity: sha512-9dvv5CcvNjSJPqnS5uZkqb3xmbeqRLnvXKK7iI5+oK/yTusyc46zbBZKENGsOfojm/mKfszyZb+wNqNPAPeGXA==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '>=8' dependencies: - '@eslint-community/eslint-utils': 4.4.0_eslint@8.46.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0) '@eslint-community/regexpp': 4.6.2 eslint: 8.46.0 dev: true - /eslint-plugin-import/2.28.0_ec5nhyiwpcpmef4grv6n2vqr5y: + /eslint-plugin-import@2.28.0(@typescript-eslint/parser@6.2.0)(eslint@8.46.0): resolution: {integrity: sha512-B8s/n+ZluN7sxj9eUf7/pRFERX0r5bnFA2dCaLHy2ZeaQEAz0k+ZZkFWRFHJAqxfxQDx6KLv9LeIki7cFdwW+Q==} engines: {node: '>=4'} peerDependencies: @@ -2920,7 +2989,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.2.0_7haavtekmro7ptbnqmctjaodju + '@typescript-eslint/parser': 6.2.0(eslint@8.46.0)(typescript@5.1.6) array-includes: 3.1.6 array.prototype.findlastindex: 1.2.2 array.prototype.flat: 1.3.1 @@ -2929,7 +2998,7 @@ packages: doctrine: 2.1.0 eslint: 8.46.0 eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.8.0_yld263lccdegtok2y3jirl2p4y + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.2.0)(eslint-import-resolver-node@0.3.7)(eslint@8.46.0) has: 1.0.3 is-core-module: 2.12.1 is-glob: 4.0.3 @@ -2946,7 +3015,7 @@ packages: - supports-color dev: true - /eslint-plugin-jsx-a11y/6.7.1_eslint@8.46.0: + /eslint-plugin-jsx-a11y@6.7.1(eslint@8.46.0): resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==} engines: {node: '>=4.0'} peerDependencies: @@ -2971,16 +3040,16 @@ packages: semver: 6.3.1 dev: true - /eslint-plugin-n/16.0.1_eslint@8.46.0: + /eslint-plugin-n@16.0.1(eslint@8.46.0): resolution: {integrity: sha512-CDmHegJN0OF3L5cz5tATH84RPQm9kG+Yx39wIqIwPR2C0uhBGMWfbbOtetR83PQjjidA5aXMu+LEFw1jaSwvTA==} engines: {node: '>=16.0.0'} peerDependencies: eslint: '>=7.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0_eslint@8.46.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0) builtins: 5.0.1 eslint: 8.46.0 - eslint-plugin-es-x: 7.2.0_eslint@8.46.0 + eslint-plugin-es-x: 7.2.0(eslint@8.46.0) ignore: 5.2.4 is-core-module: 2.12.1 minimatch: 3.1.2 @@ -2988,12 +3057,12 @@ packages: semver: 7.5.4 dev: true - /eslint-plugin-no-only-tests/3.1.0: + /eslint-plugin-no-only-tests@3.1.0: resolution: {integrity: sha512-Lf4YW/bL6Un1R6A76pRZyE1dl1vr31G/ev8UzIc/geCgFWyrKil8hVjYqWVKGB/UIGmb6Slzs9T0wNezdSVegw==} engines: {node: '>=5.0.0'} dev: true - /eslint-plugin-prettier/5.0.0_zqxxaukdltekzrbl7w2kyx7tna: + /eslint-plugin-prettier@5.0.0(eslint-config-prettier@8.9.0)(eslint@8.46.0)(prettier@3.0.0): resolution: {integrity: sha512-AgaZCVuYDXHUGxj/ZGu1u8H8CYgDY3iG6w5kUFw4AzMVXzB7VvbKgYR4nATIN+OvUrghMbiDLeimVjVY5ilq3w==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -3008,13 +3077,13 @@ packages: optional: true dependencies: eslint: 8.46.0 - eslint-config-prettier: 8.9.0_eslint@8.46.0 + eslint-config-prettier: 8.9.0(eslint@8.46.0) prettier: 3.0.0 prettier-linter-helpers: 1.0.0 synckit: 0.8.5 dev: true - /eslint-plugin-react-hooks/4.6.0_eslint@8.46.0: + /eslint-plugin-react-hooks@4.6.0(eslint@8.46.0): resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} engines: {node: '>=10'} peerDependencies: @@ -3023,7 +3092,7 @@ packages: eslint: 8.46.0 dev: true - /eslint-plugin-react/7.33.1_eslint@8.46.0: + /eslint-plugin-react@7.33.1(eslint@8.46.0): resolution: {integrity: sha512-L093k0WAMvr6VhNwReB8VgOq5s2LesZmrpPdKz/kZElQDzqS7G7+DnKoqT+w4JwuiGeAhAvHO0fvy0Eyk4ejDA==} engines: {node: '>=4'} peerDependencies: @@ -3047,13 +3116,13 @@ packages: string.prototype.matchall: 4.0.8 dev: true - /eslint-plugin-regexp/1.15.0_eslint@8.46.0: + /eslint-plugin-regexp@1.15.0(eslint@8.46.0): resolution: {integrity: sha512-YEtQPfdudafU7RBIFci81R/Q1yErm0mVh3BkGnXD2Dk8DLwTFdc2ITYH1wCnHKim2gnHfPFgrkh+b2ozyyU7ag==} engines: {node: ^12 || >=14} peerDependencies: eslint: '>=6.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0_eslint@8.46.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0) '@eslint-community/regexpp': 4.6.2 comment-parser: 1.3.1 eslint: 8.46.0 @@ -3064,7 +3133,7 @@ packages: scslre: 0.2.0 dev: true - /eslint-plugin-simple-import-sort/10.0.0_eslint@8.46.0: + /eslint-plugin-simple-import-sort@10.0.0(eslint@8.46.0): resolution: {integrity: sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw==} peerDependencies: eslint: '>=5.0.0' @@ -3072,20 +3141,20 @@ packages: eslint: 8.46.0 dev: true - /eslint-plugin-testing-library/5.11.0_7haavtekmro7ptbnqmctjaodju: + /eslint-plugin-testing-library@5.11.0(eslint@8.46.0)(typescript@5.1.6): resolution: {integrity: sha512-ELY7Gefo+61OfXKlQeXNIDVVLPcvKTeiQOoMZG9TeuWa7Ln4dUNRv8JdRWBQI9Mbb427XGlVB1aa1QPZxBJM8Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0, npm: '>=6'} peerDependencies: eslint: ^7.5.0 || ^8.0.0 dependencies: - '@typescript-eslint/utils': 5.62.0_7haavtekmro7ptbnqmctjaodju + '@typescript-eslint/utils': 5.62.0(eslint@8.46.0)(typescript@5.1.6) eslint: 8.46.0 transitivePeerDependencies: - supports-color - typescript dev: true - /eslint-scope/5.1.1: + /eslint-scope@5.1.1: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'} dependencies: @@ -3093,7 +3162,7 @@ packages: estraverse: 4.3.0 dev: true - /eslint-scope/7.2.2: + /eslint-scope@7.2.2: resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: @@ -3101,17 +3170,17 @@ packages: estraverse: 5.3.0 dev: true - /eslint-visitor-keys/3.4.2: + /eslint-visitor-keys@3.4.2: resolution: {integrity: sha512-8drBzUEyZ2llkpCA67iYrgEssKDUu68V8ChqqOfFupIaG/LCVPUT+CoGJpT77zJprs4T/W7p07LP7zAIMuweVw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint/8.46.0: + /eslint@8.46.0: resolution: {integrity: sha512-cIO74PvbW0qU8e0mIvk5IV3ToWdCq5FYG6gWPHHkx6gNdjlbAYvtfHmlCMXxjcoVaIdwy/IAt3+mDkZkfvb2Dg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0_eslint@8.46.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0) '@eslint-community/regexpp': 4.6.2 '@eslint/eslintrc': 2.1.1 '@eslint/js': 8.46.0 @@ -3152,54 +3221,54 @@ packages: - supports-color dev: true - /espree/9.6.1: + /espree@9.6.1: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: acorn: 8.10.0 - acorn-jsx: 5.3.2_acorn@8.10.0 + acorn-jsx: 5.3.2(acorn@8.10.0) eslint-visitor-keys: 3.4.2 dev: true - /esquery/1.5.0: + /esquery@1.5.0: resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} engines: {node: '>=0.10'} dependencies: estraverse: 5.3.0 dev: true - /esrecurse/4.3.0: + /esrecurse@4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} dependencies: estraverse: 5.3.0 dev: true - /estraverse/4.3.0: + /estraverse@4.3.0: resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} engines: {node: '>=4.0'} dev: true - /estraverse/5.3.0: + /estraverse@5.3.0: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} dev: true - /estree-walker/2.0.2: + /estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} dev: true - /esutils/2.0.3: + /esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} dev: true - /events/3.3.0: + /events@3.3.0: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} dev: true - /execa/5.1.1: + /execa@5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} dependencies: @@ -3214,7 +3283,7 @@ packages: strip-final-newline: 2.0.0 dev: true - /execa/7.2.0: + /execa@7.2.0: resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} dependencies: @@ -3229,7 +3298,7 @@ packages: strip-final-newline: 3.0.0 dev: true - /external-editor/3.1.0: + /external-editor@3.1.0: resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} engines: {node: '>=4'} dependencies: @@ -3238,15 +3307,15 @@ packages: tmp: 0.0.33 dev: true - /fast-deep-equal/3.1.3: + /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: true - /fast-diff/1.3.0: + /fast-diff@1.3.0: resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} dev: true - /fast-glob/3.3.1: + /fast-glob@3.3.1: resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} engines: {node: '>=8.6.0'} dependencies: @@ -3257,42 +3326,42 @@ packages: micromatch: 4.0.5 dev: true - /fast-json-stable-stringify/2.1.0: + /fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} dev: true - /fast-levenshtein/2.0.6: + /fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} dev: true - /fastq/1.15.0: + /fastq@1.15.0: resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} dependencies: reusify: 1.0.4 dev: true - /figures/3.2.0: + /figures@3.2.0: resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} engines: {node: '>=8'} dependencies: escape-string-regexp: 1.0.5 dev: true - /file-entry-cache/6.0.1: + /file-entry-cache@6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: flat-cache: 3.0.4 dev: true - /fill-range/7.0.1: + /fill-range@7.0.1: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} engines: {node: '>=8'} dependencies: to-regex-range: 5.0.1 dev: true - /find-up/5.0.0: + /find-up@5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} dependencies: @@ -3300,7 +3369,7 @@ packages: path-exists: 4.0.0 dev: true - /find-up/6.3.0: + /find-up@6.3.0: resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: @@ -3308,7 +3377,7 @@ packages: path-exists: 5.0.0 dev: true - /flat-cache/3.0.4: + /flat-cache@3.0.4: resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: @@ -3316,17 +3385,16 @@ packages: rimraf: 3.0.2 dev: true - /flatted/3.2.7: + /flatted@3.2.7: resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} dev: true - /for-each/0.3.3: + /for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} dependencies: is-callable: 1.2.7 - dev: true - /foreground-child/2.0.0: + /foreground-child@2.0.0: resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==} engines: {node: '>=8.0.0'} dependencies: @@ -3334,7 +3402,7 @@ packages: signal-exit: 3.0.7 dev: true - /foreground-child/3.1.1: + /foreground-child@3.1.1: resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} engines: {node: '>=14'} dependencies: @@ -3342,7 +3410,7 @@ packages: signal-exit: 4.1.0 dev: true - /form-data/4.0.0: + /form-data@4.0.0: resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} engines: {node: '>= 6'} dependencies: @@ -3351,7 +3419,7 @@ packages: mime-types: 2.1.35 dev: true - /fs-extra/7.0.1: + /fs-extra@7.0.1: resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} engines: {node: '>=6 <7 || >=8'} dependencies: @@ -3360,11 +3428,11 @@ packages: universalify: 0.1.2 dev: true - /fs.realpath/1.0.0: + /fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} dev: true - /fsevents/2.3.2: + /fsevents@2.3.2: resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] @@ -3372,11 +3440,10 @@ packages: dev: true optional: true - /function-bind/1.1.1: + /function-bind@1.1.1: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} - dev: true - /function.prototype.name/1.1.5: + /function.prototype.name@1.1.5: resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} engines: {node: '>= 0.4'} dependencies: @@ -3386,39 +3453,37 @@ packages: functions-have-names: 1.2.3 dev: true - /functions-have-names/1.2.3: + /functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - dev: true - /gensync/1.0.0-beta.2: + /gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} dev: true - /get-caller-file/2.0.5: + /get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} dev: true - /get-func-name/2.0.0: + /get-func-name@2.0.0: resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==} dev: true - /get-intrinsic/1.2.1: + /get-intrinsic@1.2.1: resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} dependencies: function-bind: 1.1.1 has: 1.0.3 has-proto: 1.0.1 has-symbols: 1.0.3 - dev: true - /get-stream/6.0.1: + /get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} dev: true - /get-symbol-description/1.0.0: + /get-symbol-description@1.0.0: resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} engines: {node: '>= 0.4'} dependencies: @@ -3426,31 +3491,31 @@ packages: get-intrinsic: 1.2.1 dev: true - /get-tsconfig/4.6.2: + /get-tsconfig@4.6.2: resolution: {integrity: sha512-E5XrT4CbbXcXWy+1jChlZmrmCwd5KGx502kDCXJJ7y898TtWW9FwoG5HfOLVRKmlmDGkWN2HM9Ho+/Y8F0sJDg==} dependencies: resolve-pkg-maps: 1.0.0 dev: true - /glob-parent/5.1.2: + /glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} dependencies: is-glob: 4.0.3 dev: true - /glob-parent/6.0.2: + /glob-parent@6.0.2: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} dependencies: is-glob: 4.0.3 dev: true - /glob-to-regexp/0.4.1: + /glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} dev: false - /glob/10.3.3: + /glob@10.3.3: resolution: {integrity: sha512-92vPiMb/iqpmEgsOoIDvTjc50wf9CCCvMzsi6W0JLPeUKE8TWP1a73PgqSrqy7iAZxaSD1YdzU7QZR5LF51MJw==} engines: {node: '>=16 || 14 >=14.17'} hasBin: true @@ -3462,7 +3527,7 @@ packages: path-scurry: 1.10.1 dev: true - /glob/7.2.3: + /glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} dependencies: fs.realpath: 1.0.0 @@ -3473,26 +3538,26 @@ packages: path-is-absolute: 1.0.1 dev: true - /globals/11.12.0: + /globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} dev: true - /globals/13.20.0: + /globals@13.20.0: resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} engines: {node: '>=8'} dependencies: type-fest: 0.20.2 dev: true - /globalthis/1.0.3: + /globalthis@1.0.3: resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} engines: {node: '>= 0.4'} dependencies: define-properties: 1.2.0 dev: true - /globby/11.1.0: + /globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} dependencies: @@ -3504,7 +3569,7 @@ packages: slash: 3.0.0 dev: true - /globby/13.2.2: + /globby@13.2.2: resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: @@ -3515,111 +3580,103 @@ packages: slash: 4.0.0 dev: true - /gopd/1.0.1: + /gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} dependencies: get-intrinsic: 1.2.1 - dev: true - /graceful-fs/4.2.11: + /graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - /grapheme-splitter/1.0.4: + /grapheme-splitter@1.0.4: resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} dev: true - /graphemer/1.4.0: + /graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} dev: true - /graphql/16.7.1: + /graphql@16.7.1: resolution: {integrity: sha512-DRYR9tf+UGU0KOsMcKAlXeFfX89UiiIZ0dRU3mR0yJfu6OjZqUcp68NnFLnqQU5RexygFoDy1EW+ccOYcPfmHg==} engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} dev: true - /hard-rejection/2.1.0: + /hard-rejection@2.1.0: resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} engines: {node: '>=6'} dev: true - /has-bigints/1.0.2: + /has-bigints@1.0.2: resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} - dev: true - /has-flag/3.0.0: + /has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} - dev: true - /has-flag/4.0.0: + /has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - /has-property-descriptors/1.0.0: + /has-property-descriptors@1.0.0: resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} dependencies: get-intrinsic: 1.2.1 - dev: true - /has-proto/1.0.1: + /has-proto@1.0.1: resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} engines: {node: '>= 0.4'} - dev: true - /has-symbols/1.0.3: + /has-symbols@1.0.3: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} - dev: true - /has-tostringtag/1.0.0: + /has-tostringtag@1.0.0: resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} engines: {node: '>= 0.4'} dependencies: has-symbols: 1.0.3 - dev: true - /has/1.0.3: + /has@1.0.3: resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} engines: {node: '>= 0.4.0'} dependencies: function-bind: 1.1.1 - dev: true - /he/1.2.0: + /he@1.2.0: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true dev: true - /headers-polyfill/3.1.2: + /headers-polyfill@3.1.2: resolution: {integrity: sha512-tWCK4biJ6hcLqTviLXVR9DTRfYGQMXEIUj3gwJ2rZ5wO/at3XtkI4g8mCvFdUF9l1KMBNCfmNAdnahm1cgavQA==} dev: true - /hosted-git-info/4.1.0: + /hosted-git-info@4.1.0: resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} engines: {node: '>=10'} dependencies: lru-cache: 6.0.0 dev: true - /hosted-git-info/6.1.1: + /hosted-git-info@6.1.1: resolution: {integrity: sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: lru-cache: 7.18.3 dev: true - /html-encoding-sniffer/3.0.0: + /html-encoding-sniffer@3.0.0: resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} engines: {node: '>=12'} dependencies: whatwg-encoding: 2.0.0 dev: true - /html-escaper/2.0.2: + /html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} dev: true - /http-proxy-agent/5.0.0: + /http-proxy-agent@5.0.0: resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} engines: {node: '>= 6'} dependencies: @@ -3630,7 +3687,7 @@ packages: - supports-color dev: true - /https-proxy-agent/5.0.1: + /https-proxy-agent@5.0.1: resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} engines: {node: '>= 6'} dependencies: @@ -3640,40 +3697,40 @@ packages: - supports-color dev: true - /human-signals/2.1.0: + /human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} dev: true - /human-signals/4.3.1: + /human-signals@4.3.1: resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} engines: {node: '>=14.18.0'} dev: true - /iconv-lite/0.4.24: + /iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} dependencies: safer-buffer: 2.1.2 dev: true - /iconv-lite/0.6.3: + /iconv-lite@0.6.3: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} dependencies: safer-buffer: 2.1.2 dev: true - /ieee754/1.2.1: + /ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} dev: true - /ignore/5.2.4: + /ignore@5.2.4: resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} engines: {node: '>= 4'} dev: true - /import-fresh/3.3.0: + /import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} dependencies: @@ -3681,37 +3738,37 @@ packages: resolve-from: 4.0.0 dev: true - /import-lazy/4.0.0: + /import-lazy@4.0.0: resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} engines: {node: '>=8'} dev: true - /imurmurhash/0.1.4: + /imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} dev: true - /indent-string/4.0.0: + /indent-string@4.0.0: resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} engines: {node: '>=8'} - /indent-string/5.0.0: + /indent-string@5.0.0: resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} engines: {node: '>=12'} dev: true - /inflight/1.0.6: + /inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} dependencies: once: 1.4.0 wrappy: 1.0.2 dev: true - /inherits/2.0.4: + /inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} dev: true - /inquirer/8.2.5: + /inquirer@8.2.5: resolution: {integrity: sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==} engines: {node: '>=12.0.0'} dependencies: @@ -3732,111 +3789,104 @@ packages: wrap-ansi: 7.0.0 dev: true - /internal-slot/1.0.5: + /internal-slot@1.0.5: resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} engines: {node: '>= 0.4'} dependencies: get-intrinsic: 1.2.1 has: 1.0.3 side-channel: 1.0.4 - dev: true - /is-arguments/1.1.1: + /is-arguments@1.1.1: resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 has-tostringtag: 1.0.0 - dev: true - /is-array-buffer/3.0.2: + /is-array-buffer@3.0.2: resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} dependencies: call-bind: 1.0.2 get-intrinsic: 1.2.1 is-typed-array: 1.1.12 - dev: true - /is-arrayish/0.2.1: + /is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} dev: true - /is-bigint/1.0.4: + /is-bigint@1.0.4: resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} dependencies: has-bigints: 1.0.2 - dev: true - /is-binary-path/2.1.0: + /is-binary-path@2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} dependencies: binary-extensions: 2.2.0 dev: true - /is-boolean-object/1.1.2: + /is-boolean-object@1.1.2: resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 has-tostringtag: 1.0.0 - dev: true - /is-callable/1.2.7: + /is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} - dev: true - /is-core-module/2.12.1: + /is-core-module@2.12.1: resolution: {integrity: sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==} dependencies: has: 1.0.3 dev: true - /is-date-object/1.0.5: + /is-date-object@1.0.5: resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.0 - dev: true - /is-docker/2.2.1: + /is-docker@2.2.1: resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} engines: {node: '>=8'} hasBin: true dev: true - /is-docker/3.0.0: + /is-docker@3.0.0: resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} hasBin: true dev: true - /is-extglob/2.1.1: + /is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} dev: true - /is-fullwidth-code-point/3.0.0: + /is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} dev: true - /is-generator-function/1.0.10: + /is-generator-function@1.0.10: resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.0 dev: true - /is-glob/4.0.3: + /is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} dependencies: is-extglob: 2.1.1 dev: true - /is-inside-container/1.0.0: + /is-inside-container@1.0.0: resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} engines: {node: '>=14.16'} hasBin: true @@ -3844,150 +3894,139 @@ packages: is-docker: 3.0.0 dev: true - /is-interactive/1.0.0: + /is-interactive@1.0.0: resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} engines: {node: '>=8'} dev: true - /is-map/2.0.2: + /is-map@2.0.2: resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} - dev: true - /is-negative-zero/2.0.2: + /is-negative-zero@2.0.2: resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} engines: {node: '>= 0.4'} dev: true - /is-node-process/1.2.0: + /is-node-process@1.2.0: resolution: {integrity: sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==} dev: true - /is-number-object/1.0.7: + /is-number-object@1.0.7: resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.0 - dev: true - /is-number/7.0.0: + /is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} dev: true - /is-path-inside/3.0.3: + /is-path-inside@3.0.3: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} engines: {node: '>=8'} dev: true - /is-plain-obj/1.1.0: + /is-plain-obj@1.1.0: resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} engines: {node: '>=0.10.0'} dev: true - /is-potential-custom-element-name/1.0.1: + /is-potential-custom-element-name@1.0.1: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} dev: true - /is-regex/1.1.4: + /is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 has-tostringtag: 1.0.0 - dev: true - /is-set/2.0.2: + /is-set@2.0.2: resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} - dev: true - /is-shared-array-buffer/1.0.2: + /is-shared-array-buffer@1.0.2: resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} dependencies: call-bind: 1.0.2 - dev: true - /is-stream/2.0.1: + /is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} dev: true - /is-stream/3.0.0: + /is-stream@3.0.0: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true - /is-string/1.0.7: + /is-string@1.0.7: resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.0 - dev: true - /is-symbol/1.0.4: + /is-symbol@1.0.4: resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} engines: {node: '>= 0.4'} dependencies: has-symbols: 1.0.3 - dev: true - /is-typed-array/1.1.12: + /is-typed-array@1.1.12: resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} engines: {node: '>= 0.4'} dependencies: which-typed-array: 1.1.11 - dev: true - /is-unicode-supported/0.1.0: + /is-unicode-supported@0.1.0: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} dev: true - /is-weakmap/2.0.1: + /is-weakmap@2.0.1: resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} - dev: true - /is-weakref/1.0.2: + /is-weakref@1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} dependencies: call-bind: 1.0.2 dev: true - /is-weakset/2.0.2: + /is-weakset@2.0.2: resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} dependencies: call-bind: 1.0.2 get-intrinsic: 1.2.1 - dev: true - /is-wsl/2.2.0: + /is-wsl@2.2.0: resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} engines: {node: '>=8'} dependencies: is-docker: 2.2.1 dev: true - /isarray/0.0.1: + /isarray@0.0.1: resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} dev: true - /isarray/1.0.0: + /isarray@1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} dev: true - /isarray/2.0.5: + /isarray@2.0.5: resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - dev: true - /isexe/2.0.0: + /isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} dev: true - /istanbul-lib-coverage/3.2.0: + /istanbul-lib-coverage@3.2.0: resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==} engines: {node: '>=8'} dev: true - /istanbul-lib-report/3.0.1: + /istanbul-lib-report@3.0.1: resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} engines: {node: '>=10'} dependencies: @@ -3996,7 +4035,7 @@ packages: supports-color: 7.2.0 dev: true - /istanbul-lib-source-maps/4.0.1: + /istanbul-lib-source-maps@4.0.1: resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} engines: {node: '>=10'} dependencies: @@ -4007,7 +4046,7 @@ packages: - supports-color dev: true - /istanbul-reports/3.1.6: + /istanbul-reports@3.1.6: resolution: {integrity: sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==} engines: {node: '>=8'} dependencies: @@ -4015,7 +4054,7 @@ packages: istanbul-lib-report: 3.0.1 dev: true - /jackspeak/2.2.2: + /jackspeak@2.2.2: resolution: {integrity: sha512-mgNtVv4vUuaKA97yxUHoA3+FkuhtxkjdXEWOyB/N76fjy0FjezEt34oy3epBtvCvS+7DyKwqCFWx/oJLV5+kCg==} engines: {node: '>=14'} dependencies: @@ -4024,7 +4063,7 @@ packages: '@pkgjs/parseargs': 0.11.0 dev: true - /jest-diff/27.5.1: + /jest-diff@27.5.1: resolution: {integrity: sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: @@ -4033,11 +4072,11 @@ packages: jest-get-type: 27.5.1 pretty-format: 27.5.1 - /jest-get-type/27.5.1: + /jest-get-type@27.5.1: resolution: {integrity: sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - /jest-matcher-utils/27.5.1: + /jest-matcher-utils@27.5.1: resolution: {integrity: sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: @@ -4046,32 +4085,36 @@ packages: jest-get-type: 27.5.1 pretty-format: 27.5.1 - /jju/1.4.0: + /jju@1.4.0: resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} dev: true - /js-levenshtein/1.1.6: + /jquery@3.7.0: + resolution: {integrity: sha512-umpJ0/k8X0MvD1ds0P9SfowREz2LenHsQaxSohMZ5OMNEU2r0tf8pdeEFTHMFxWVxKNyU9rTtK3CWzUCTKJUeQ==} + dev: true + + /js-levenshtein@1.1.6: resolution: {integrity: sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==} engines: {node: '>=0.10.0'} dev: true - /js-tokens/4.0.0: + /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - /js-yaml/4.1.0: + /js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true dependencies: argparse: 2.0.1 dev: true - /jsdoctypeparser/9.0.0: + /jsdoctypeparser@9.0.0: resolution: {integrity: sha512-jrTA2jJIL6/DAEILBEh2/w9QxCuwmvNXIry39Ay/HVfhE3o2yVV0U44blYkqdHA/OKloJEqvJy0xU+GSdE2SIw==} engines: {node: '>=10'} hasBin: true dev: true - /jsdom/22.1.0: + /jsdom@22.1.0: resolution: {integrity: sha512-/9AVW7xNbsBv6GfWho4TTNjEo9fe6Zhf9O7s0Fhhr3u+awPwAJMKwAMXnkk5vBxflqLW9hTHX/0cs+P3gW+cQw==} engines: {node: '>=16'} peerDependencies: @@ -4109,48 +4152,48 @@ packages: - utf-8-validate dev: true - /jsesc/2.5.2: + /jsesc@2.5.2: resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} engines: {node: '>=4'} hasBin: true dev: true - /json-parse-even-better-errors/2.3.1: + /json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} dev: true - /json-schema-traverse/0.4.1: + /json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} dev: true - /json-stable-stringify-without-jsonify/1.0.1: + /json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} dev: true - /json5/1.0.2: + /json5@1.0.2: resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} hasBin: true dependencies: minimist: 1.2.8 dev: true - /json5/2.2.3: + /json5@2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} hasBin: true dev: true - /jsonc-parser/3.2.0: + /jsonc-parser@3.2.0: resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} dev: true - /jsonfile/4.0.0: + /jsonfile@4.0.0: resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} optionalDependencies: graceful-fs: 4.2.11 dev: true - /jsx-ast-utils/3.3.5: + /jsx-ast-utils@3.3.5: resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} engines: {node: '>=4.0'} dependencies: @@ -4160,31 +4203,31 @@ packages: object.values: 1.1.6 dev: true - /junk/4.0.1: + /junk@4.0.1: resolution: {integrity: sha512-Qush0uP+G8ZScpGMZvHUiRfI0YBWuB3gVBYlI0v0vvOJt5FLicco+IkP0a50LqTTQhmts/m6tP5SWE+USyIvcQ==} engines: {node: '>=12.20'} dev: true - /kind-of/6.0.3: + /kind-of@6.0.3: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} dev: true - /kolorist/1.8.0: + /kolorist@1.8.0: resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} dev: true - /language-subtag-registry/0.3.22: + /language-subtag-registry@0.3.22: resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} dev: true - /language-tags/1.0.5: + /language-tags@1.0.5: resolution: {integrity: sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==} dependencies: language-subtag-registry: 0.3.22 dev: true - /levn/0.4.1: + /levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} dependencies: @@ -4192,45 +4235,45 @@ packages: type-check: 0.4.0 dev: true - /lines-and-columns/1.2.4: + /lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} dev: true - /local-pkg/0.4.3: + /local-pkg@0.4.3: resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} engines: {node: '>=14'} dev: true - /locate-path/6.0.0: + /locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} dependencies: p-locate: 5.0.0 dev: true - /locate-path/7.2.0: + /locate-path@7.2.0: resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: p-locate: 6.0.0 dev: true - /lodash.get/4.4.2: + /lodash.get@4.4.2: resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} dev: true - /lodash.isequal/4.5.0: + /lodash.isequal@4.5.0: resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} dev: true - /lodash.merge/4.6.2: + /lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} dev: true - /lodash/4.17.21: + /lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - /log-symbols/4.1.0: + /log-symbols@4.1.0: resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} engines: {node: '>=10'} dependencies: @@ -4238,66 +4281,65 @@ packages: is-unicode-supported: 0.1.0 dev: true - /loose-envify/1.4.0: + /loose-envify@1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true dependencies: js-tokens: 4.0.0 - /loupe/2.3.6: + /loupe@2.3.6: resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==} dependencies: get-func-name: 2.0.0 dev: true - /lru-cache/10.0.0: + /lru-cache@10.0.0: resolution: {integrity: sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw==} engines: {node: 14 || >=16.14} dev: true - /lru-cache/5.1.1: + /lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} dependencies: yallist: 3.1.1 dev: true - /lru-cache/6.0.0: + /lru-cache@6.0.0: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} engines: {node: '>=10'} dependencies: yallist: 4.0.0 dev: true - /lru-cache/7.18.3: + /lru-cache@7.18.3: resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} engines: {node: '>=12'} dev: true - /lz-string/1.5.0: + /lz-string@1.5.0: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true - dev: true - /magic-string/0.30.2: + /magic-string@0.30.2: resolution: {integrity: sha512-lNZdu7pewtq/ZvWUp9Wpf/x7WzMTsR26TWV03BRZrXFsv+BI6dy8RAiKgm1uM/kyR0rCfUcqvOlXKG66KhIGug==} engines: {node: '>=12'} dependencies: '@jridgewell/sourcemap-codec': 1.4.15 dev: true - /make-dir/4.0.0: + /make-dir@4.0.0: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} dependencies: semver: 7.5.4 dev: true - /map-obj/4.3.0: + /map-obj@4.3.0: resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} engines: {node: '>=8'} dev: true - /meow/12.0.1: + /meow@12.0.1: resolution: {integrity: sha512-/QOqMALNoKQcJAOOdIXjNLtfcCdLXbMFyB1fOOPdm6RzfBTlsuodOCTBDjVbeUSmgDQb8UI2oONqYGtq1PKKKA==} engines: {node: '>=16.10'} dependencies: @@ -4315,16 +4357,16 @@ packages: yargs-parser: 21.1.1 dev: true - /merge-stream/2.0.0: + /merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} dev: true - /merge2/1.4.1: + /merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} dev: true - /micromatch/4.0.5: + /micromatch@4.0.5: resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} engines: {node: '>=8.6'} dependencies: @@ -4332,46 +4374,46 @@ packages: picomatch: 2.3.1 dev: true - /mime-db/1.52.0: + /mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} dev: true - /mime-types/2.1.35: + /mime-types@2.1.35: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} dependencies: mime-db: 1.52.0 dev: true - /mimic-fn/2.1.0: + /mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} dev: true - /mimic-fn/4.0.0: + /mimic-fn@4.0.0: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} engines: {node: '>=12'} dev: true - /min-indent/1.0.1: + /min-indent@1.0.1: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} - /minimatch/3.1.2: + /minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: brace-expansion: 1.1.11 dev: true - /minimatch/9.0.3: + /minimatch@9.0.3: resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 dev: true - /minimist-options/4.1.0: + /minimist-options@4.1.0: resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} engines: {node: '>= 6'} dependencies: @@ -4380,22 +4422,22 @@ packages: kind-of: 6.0.3 dev: true - /minimist/1.2.8: + /minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} dev: true - /minipass/7.0.2: + /minipass@7.0.2: resolution: {integrity: sha512-eL79dXrE1q9dBbDCLg7xfn/vl7MS4F1gvJAgjJrQli/jbQWdUttuVawphqpffoIYfRdq78LHx6GP4bU/EQ2ATA==} engines: {node: '>=16 || 14 >=14.17'} dev: true - /mkdirp/1.0.4: + /mkdirp@1.0.4: resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} engines: {node: '>=10'} hasBin: true dev: true - /mlly/1.4.0: + /mlly@1.4.0: resolution: {integrity: sha512-ua8PAThnTwpprIaU47EPeZ/bPUVp2QYBbWMphUQpVdBI3Lgqzm5KZQ45Agm3YJedHXaIHl6pBGabaLSUPPSptg==} dependencies: acorn: 8.10.0 @@ -4404,15 +4446,15 @@ packages: ufo: 1.2.0 dev: true - /ms/2.1.2: + /ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} dev: true - /ms/2.1.3: + /ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} dev: true - /msw/1.2.2_typescript@5.1.6: + /msw@1.2.2(typescript@5.1.6): resolution: {integrity: sha512-GsW3PE/Es/a1tYThXcM8YHOZ1S1MtivcS3He/LQbbTCx3rbWJYCtWD5XXyJ53KlNPT7O1VI9sCW3xMtgFe8XpQ==} engines: {node: '>=14'} hasBin: true @@ -4448,32 +4490,32 @@ packages: - supports-color dev: true - /muggle-string/0.3.1: + /muggle-string@0.3.1: resolution: {integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==} dev: true - /mute-stream/0.0.8: + /mute-stream@0.0.8: resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} dev: true - /nanoid/3.3.6: + /nanoid@3.3.6: resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - /natural-compare-lite/1.4.0: + /natural-compare-lite@1.4.0: resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} dev: true - /natural-compare/1.4.0: + /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true - /nested-error-stacks/2.1.1: + /nested-error-stacks@2.1.1: resolution: {integrity: sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==} dev: true - /next/13.4.12_biqbaboplfbrettd7655fr4n2y: + /next@13.4.12(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-eHfnru9x6NRmTMcjQp6Nz0J4XH9OubmzOa7CkWL+AUrUxpibub3vWwttjduu9No16dug1kq04hiUUpo7J3m3Xw==} engines: {node: '>=16.8.0'} hasBin: true @@ -4497,8 +4539,8 @@ packages: caniuse-lite: 1.0.30001517 postcss: 8.4.14 react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 - styled-jsx: 5.1.1_react@18.2.0 + react-dom: 18.2.0(react@18.2.0) + styled-jsx: 5.1.1(react@18.2.0) watchpack: 2.4.0 zod: 3.21.4 optionalDependencies: @@ -4516,7 +4558,7 @@ packages: - babel-plugin-macros dev: false - /node-fetch/2.6.12: + /node-fetch@2.6.12: resolution: {integrity: sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==} engines: {node: 4.x || >=6.0.0} peerDependencies: @@ -4528,18 +4570,18 @@ packages: whatwg-url: 5.0.0 dev: true - /node-releases/2.0.13: + /node-releases@2.0.13: resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} dev: true - /noms/0.0.0: + /noms@0.0.0: resolution: {integrity: sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow==} dependencies: inherits: 2.0.4 readable-stream: 1.0.34 dev: true - /normalize-package-data/3.0.3: + /normalize-package-data@3.0.3: resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} engines: {node: '>=10'} dependencies: @@ -4549,7 +4591,7 @@ packages: validate-npm-package-license: 3.0.4 dev: true - /normalize-package-data/5.0.0: + /normalize-package-data@5.0.0: resolution: {integrity: sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: @@ -4559,52 +4601,49 @@ packages: validate-npm-package-license: 3.0.4 dev: true - /normalize-path/3.0.0: + /normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} dev: true - /npm-run-path/4.0.1: + /npm-run-path@4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} dependencies: path-key: 3.1.1 dev: true - /npm-run-path/5.1.0: + /npm-run-path@5.1.0: resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: path-key: 4.0.0 dev: true - /nwsapi/2.2.7: + /nwsapi@2.2.7: resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==} dev: true - /object-assign/4.1.1: + /object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} dev: true - /object-inspect/1.12.3: + /object-inspect@1.12.3: resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} - dev: true - /object-is/1.1.5: + /object-is@1.1.5: resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - dev: true - /object-keys/1.1.1: + /object-keys@1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} - dev: true - /object.assign/4.1.4: + /object.assign@4.1.4: resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} engines: {node: '>= 0.4'} dependencies: @@ -4612,9 +4651,8 @@ packages: define-properties: 1.2.0 has-symbols: 1.0.3 object-keys: 1.1.1 - dev: true - /object.entries/1.1.6: + /object.entries@1.1.6: resolution: {integrity: sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==} engines: {node: '>= 0.4'} dependencies: @@ -4623,7 +4661,7 @@ packages: es-abstract: 1.22.1 dev: true - /object.fromentries/2.0.6: + /object.fromentries@2.0.6: resolution: {integrity: sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==} engines: {node: '>= 0.4'} dependencies: @@ -4632,7 +4670,7 @@ packages: es-abstract: 1.22.1 dev: true - /object.groupby/1.0.0: + /object.groupby@1.0.0: resolution: {integrity: sha512-70MWG6NfRH9GnbZOikuhPPYzpUpof9iW2J9E4dW7FXTqPNb6rllE6u39SKwwiNh8lCwX3DDb5OgcKGiEBrTTyw==} dependencies: call-bind: 1.0.2 @@ -4641,14 +4679,14 @@ packages: get-intrinsic: 1.2.1 dev: true - /object.hasown/1.1.2: + /object.hasown@1.1.2: resolution: {integrity: sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==} dependencies: define-properties: 1.2.0 es-abstract: 1.22.1 dev: true - /object.values/1.1.6: + /object.values@1.1.6: resolution: {integrity: sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==} engines: {node: '>= 0.4'} dependencies: @@ -4657,27 +4695,27 @@ packages: es-abstract: 1.22.1 dev: true - /once/1.4.0: + /once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: wrappy: 1.0.2 dev: true - /onetime/5.1.2: + /onetime@5.1.2: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} dependencies: mimic-fn: 2.1.0 dev: true - /onetime/6.0.0: + /onetime@6.0.0: resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} engines: {node: '>=12'} dependencies: mimic-fn: 4.0.0 dev: true - /open/9.1.0: + /open@9.1.0: resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==} engines: {node: '>=14.16'} dependencies: @@ -4687,7 +4725,7 @@ packages: is-wsl: 2.2.0 dev: true - /optionator/0.9.3: + /optionator@0.9.3: resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} engines: {node: '>= 0.8.0'} dependencies: @@ -4699,7 +4737,7 @@ packages: type-check: 0.4.0 dev: true - /ora/5.4.1: + /ora@5.4.1: resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} engines: {node: '>=10'} dependencies: @@ -4714,82 +4752,82 @@ packages: wcwidth: 1.0.1 dev: true - /os-tmpdir/1.0.2: + /os-tmpdir@1.0.2: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} engines: {node: '>=0.10.0'} dev: true - /outvariant/1.4.0: + /outvariant@1.4.0: resolution: {integrity: sha512-AlWY719RF02ujitly7Kk/0QlV+pXGFDHrHf9O2OKqyqgBieaPOIeuSkL8sRK6j2WK+/ZAURq2kZsY0d8JapUiw==} dev: true - /p-event/5.0.1: + /p-event@5.0.1: resolution: {integrity: sha512-dd589iCQ7m1L0bmC5NLlVYfy3TbBEsMUfWx9PyAgPeIcFZ/E2yaTZ4Rz4MiBmmJShviiftHVXOqfnfzJ6kyMrQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: p-timeout: 5.1.0 dev: true - /p-filter/3.0.0: + /p-filter@3.0.0: resolution: {integrity: sha512-QtoWLjXAW++uTX67HZQz1dbTpqBfiidsB6VtQUC9iR85S120+s0T5sO6s+B5MLzFcZkrEd/DGMmCjR+f2Qpxwg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: p-map: 5.5.0 dev: true - /p-limit/3.1.0: + /p-limit@3.1.0: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} dependencies: yocto-queue: 0.1.0 dev: true - /p-limit/4.0.0: + /p-limit@4.0.0: resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: yocto-queue: 1.0.0 dev: true - /p-locate/5.0.0: + /p-locate@5.0.0: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} dependencies: p-limit: 3.1.0 dev: true - /p-locate/6.0.0: + /p-locate@6.0.0: resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: p-limit: 4.0.0 dev: true - /p-map/5.5.0: + /p-map@5.5.0: resolution: {integrity: sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==} engines: {node: '>=12'} dependencies: aggregate-error: 4.0.1 dev: true - /p-map/6.0.0: + /p-map@6.0.0: resolution: {integrity: sha512-T8BatKGY+k5rU+Q/GTYgrEf2r4xRMevAN5mtXc2aPc4rS1j3s+vWTaO2Wag94neXuCAUAs8cxBL9EeB5EA6diw==} engines: {node: '>=16'} dev: true - /p-timeout/5.1.0: + /p-timeout@5.1.0: resolution: {integrity: sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==} engines: {node: '>=12'} dev: true - /parent-module/1.0.1: + /parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} dependencies: callsites: 3.1.0 dev: true - /parse-json/5.2.0: + /parse-json@5.2.0: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: @@ -4799,42 +4837,42 @@ packages: lines-and-columns: 1.2.4 dev: true - /parse5/7.1.2: + /parse5@7.1.2: resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} dependencies: entities: 4.5.0 dev: true - /path-exists/4.0.0: + /path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} dev: true - /path-exists/5.0.0: + /path-exists@5.0.0: resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true - /path-is-absolute/1.0.1: + /path-is-absolute@1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} dev: true - /path-key/3.1.1: + /path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} dev: true - /path-key/4.0.0: + /path-key@4.0.0: resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} engines: {node: '>=12'} dev: true - /path-parse/1.0.7: + /path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} dev: true - /path-scurry/1.10.1: + /path-scurry@1.10.1: resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} engines: {node: '>=16 || 14 >=14.17'} dependencies: @@ -4842,32 +4880,32 @@ packages: minipass: 7.0.2 dev: true - /path-to-regexp/6.2.1: + /path-to-regexp@6.2.1: resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} dev: true - /path-type/4.0.0: + /path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} dev: true - /pathe/1.1.1: + /pathe@1.1.1: resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==} dev: true - /pathval/1.1.1: + /pathval@1.1.1: resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} dev: true - /picocolors/1.0.0: + /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - /picomatch/2.3.1: + /picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} dev: true - /pkg-types/1.0.3: + /pkg-types@1.0.3: resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} dependencies: jsonc-parser: 3.2.0 @@ -4875,7 +4913,12 @@ packages: pathe: 1.1.1 dev: true - /postcss/8.4.14: + /popper.js@1.16.1: + resolution: {integrity: sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==} + deprecated: You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1 + dev: true + + /postcss@8.4.14: resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==} engines: {node: ^10 || ^12 || >=14} dependencies: @@ -4884,7 +4927,7 @@ packages: source-map-js: 1.0.2 dev: false - /postcss/8.4.27: + /postcss@8.4.27: resolution: {integrity: sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==} engines: {node: ^10 || ^12 || >=14} dependencies: @@ -4893,25 +4936,25 @@ packages: source-map-js: 1.0.2 dev: true - /prelude-ls/1.2.1: + /prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} dev: true - /prettier-linter-helpers/1.0.0: + /prettier-linter-helpers@1.0.0: resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} engines: {node: '>=6.0.0'} dependencies: fast-diff: 1.3.0 dev: true - /prettier/3.0.0: + /prettier@3.0.0: resolution: {integrity: sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g==} engines: {node: '>=14'} hasBin: true dev: true - /pretty-format/27.5.1: + /pretty-format@27.5.1: resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: @@ -4919,7 +4962,7 @@ packages: ansi-styles: 5.2.0 react-is: 17.0.2 - /pretty-format/29.6.2: + /pretty-format@29.6.2: resolution: {integrity: sha512-1q0oC8eRveTg5nnBEWMXAU2qpv65Gnuf2eCQzSjxpWFkPaPARwqZZDGuNE0zPAZfTCHzIk3A8dIjwlQKKLphyg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: @@ -4928,11 +4971,11 @@ packages: react-is: 18.2.0 dev: true - /process-nextick-args/2.0.1: + /process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} dev: true - /prop-types/15.8.1: + /prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} dependencies: loose-envify: 1.4.0 @@ -4940,29 +4983,29 @@ packages: react-is: 16.13.1 dev: true - /psl/1.9.0: + /psl@1.9.0: resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} dev: true - /punycode/2.3.0: + /punycode@2.3.0: resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} engines: {node: '>=6'} dev: true - /querystringify/2.2.0: + /querystringify@2.2.0: resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} dev: true - /queue-microtask/1.2.3: + /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: true - /quick-lru/6.1.1: + /quick-lru@6.1.1: resolution: {integrity: sha512-S27GBT+F0NTRiehtbrgaSE1idUAJ5bX8dPAQTdylEyNlrdcH5X4Lz7Edz3DYzecbsCluD5zO8ZNEe04z3D3u6Q==} engines: {node: '>=12'} dev: true - /react-dom/18.2.0_react@18.2.0: + /react-dom@18.2.0(react@18.2.0): resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} peerDependencies: react: ^18.2.0 @@ -4971,23 +5014,23 @@ packages: react: 18.2.0 scheduler: 0.23.0 - /react-is/16.13.1: + /react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} dev: true - /react-is/17.0.2: + /react-is@17.0.2: resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} - /react-is/18.2.0: + /react-is@18.2.0: resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} dev: true - /react-refresh/0.14.0: + /react-refresh@0.14.0: resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} engines: {node: '>=0.10.0'} dev: true - /react-router-dom/6.14.2_biqbaboplfbrettd7655fr4n2y: + /react-router-dom@6.14.2(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-5pWX0jdKR48XFZBuJqHosX3AAHjRAzygouMTyimnBPOLdY3WjzUSKhus2FVMihUFWzeLebDgr4r8UeQFAct7Bg==} engines: {node: '>=14'} peerDependencies: @@ -4996,11 +5039,11 @@ packages: dependencies: '@remix-run/router': 1.7.2 react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 - react-router: 6.14.2_react@18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-router: 6.14.2(react@18.2.0) dev: false - /react-router/6.14.2_react@18.2.0: + /react-router@6.14.2(react@18.2.0): resolution: {integrity: sha512-09Zss2dE2z+T1D03IheqAFtK4UzQyX8nFPWx6jkwdYzGLXd5ie06A6ezS2fO6zJfEb/SpG6UocN2O1hfD+2urQ==} engines: {node: '>=14'} peerDependencies: @@ -5010,13 +5053,13 @@ packages: react: 18.2.0 dev: false - /react/18.2.0: + /react@18.2.0: resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} engines: {node: '>=0.10.0'} dependencies: loose-envify: 1.4.0 - /read-pkg-up/9.1.0: + /read-pkg-up@9.1.0: resolution: {integrity: sha512-vaMRR1AC1nrd5CQM0PhlRsO5oc2AAigqr7cCrZ/MW/Rsaflz4RlgzkpL4qoU/z1F6wrbd85iFv1OQj/y5RdGvg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: @@ -5025,7 +5068,7 @@ packages: type-fest: 2.19.0 dev: true - /read-pkg/7.1.0: + /read-pkg@7.1.0: resolution: {integrity: sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==} engines: {node: '>=12.20'} dependencies: @@ -5035,7 +5078,7 @@ packages: type-fest: 2.19.0 dev: true - /readable-stream/1.0.34: + /readable-stream@1.0.34: resolution: {integrity: sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==} dependencies: core-util-is: 1.0.3 @@ -5044,7 +5087,7 @@ packages: string_decoder: 0.10.31 dev: true - /readable-stream/2.3.8: + /readable-stream@2.3.8: resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} dependencies: core-util-is: 1.0.3 @@ -5056,7 +5099,7 @@ packages: util-deprecate: 1.0.2 dev: true - /readable-stream/3.6.2: + /readable-stream@3.6.2: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} dependencies: @@ -5065,21 +5108,21 @@ packages: util-deprecate: 1.0.2 dev: true - /readdirp/3.6.0: + /readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} dependencies: picomatch: 2.3.1 dev: true - /redent/3.0.0: + /redent@3.0.0: resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} engines: {node: '>=8'} dependencies: indent-string: 4.0.0 strip-indent: 3.0.0 - /redent/4.0.0: + /redent@4.0.0: resolution: {integrity: sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==} engines: {node: '>=12'} dependencies: @@ -5087,17 +5130,17 @@ packages: strip-indent: 4.0.0 dev: true - /refa/0.11.0: + /refa@0.11.0: resolution: {integrity: sha512-486O8/pQXwj9jV0mVvUnTsxq0uknpBnNJ0eCUhkZqJRQ8KutrT1PhzmumdCeM1hSBF2eMlFPmwECRER4IbKXlQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dependencies: '@eslint-community/regexpp': 4.6.2 dev: true - /regenerator-runtime/0.13.11: + /regenerator-runtime@0.13.11: resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} - /regexp-ast-analysis/0.6.0: + /regexp-ast-analysis@0.6.0: resolution: {integrity: sha512-OLxjyjPkVH+rQlBLb1I/P/VTmamSjGkvN5PTV5BXP432k3uVz727J7H29GA5IFiY0m7e1xBN7049Wn59FY3DEQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dependencies: @@ -5105,41 +5148,40 @@ packages: refa: 0.11.0 dev: true - /regexp.prototype.flags/1.5.0: + /regexp.prototype.flags@1.5.0: resolution: {integrity: sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.2.0 functions-have-names: 1.2.3 - dev: true - /require-directory/2.1.1: + /require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} dev: true - /requires-port/1.0.0: + /requires-port@1.0.0: resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} dev: true - /resolve-from/4.0.0: + /resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} dev: true - /resolve-pkg-maps/1.0.0: + /resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} dev: true - /resolve/1.19.0: + /resolve@1.19.0: resolution: {integrity: sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==} dependencies: is-core-module: 2.12.1 path-parse: 1.0.7 dev: true - /resolve/1.22.2: + /resolve@1.22.2: resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} hasBin: true dependencies: @@ -5148,7 +5190,7 @@ packages: supports-preserve-symlinks-flag: 1.0.0 dev: true - /resolve/1.22.3: + /resolve@1.22.3: resolution: {integrity: sha512-P8ur/gp/AmbEzjr729bZnLjXK5Z+4P0zhIJgBgzqRih7hL7BOukHGtSTA3ACMY467GRFz3duQsi0bDZdR7DKdw==} hasBin: true dependencies: @@ -5157,7 +5199,7 @@ packages: supports-preserve-symlinks-flag: 1.0.0 dev: true - /resolve/2.0.0-next.4: + /resolve@2.0.0-next.4: resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==} hasBin: true dependencies: @@ -5166,7 +5208,7 @@ packages: supports-preserve-symlinks-flag: 1.0.0 dev: true - /restore-cursor/3.1.0: + /restore-cursor@3.1.0: resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} engines: {node: '>=8'} dependencies: @@ -5174,19 +5216,19 @@ packages: signal-exit: 3.0.7 dev: true - /reusify/1.0.4: + /reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} dev: true - /rimraf/3.0.2: + /rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} hasBin: true dependencies: glob: 7.2.3 dev: true - /rimraf/5.0.1: + /rimraf@5.0.1: resolution: {integrity: sha512-OfFZdwtd3lZ+XZzYP/6gTACubwFcHdLRqS9UX3UwpU2dnGQYkPFISRwvM3w9IiB2w7bW5qGo/uAwE4SmXXSKvg==} engines: {node: '>=14'} hasBin: true @@ -5194,7 +5236,7 @@ packages: glob: 10.3.3 dev: true - /rollup/3.27.0: + /rollup@3.27.0: resolution: {integrity: sha512-aOltLCrYZ0FhJDm7fCqwTjIUEVjWjcydKBV/Zeid6Mn8BWgDCUBBWT5beM5ieForYNo/1ZHuGJdka26kvQ3Gzg==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true @@ -5202,35 +5244,35 @@ packages: fsevents: 2.3.2 dev: true - /rrweb-cssom/0.6.0: + /rrweb-cssom@0.6.0: resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} dev: true - /run-applescript/5.0.0: + /run-applescript@5.0.0: resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==} engines: {node: '>=12'} dependencies: execa: 5.1.1 dev: true - /run-async/2.4.1: + /run-async@2.4.1: resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} engines: {node: '>=0.12.0'} dev: true - /run-parallel/1.2.0: + /run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: queue-microtask: 1.2.3 dev: true - /rxjs/7.8.1: + /rxjs@7.8.1: resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} dependencies: tslib: 2.6.1 dev: true - /safe-array-concat/1.0.0: + /safe-array-concat@1.0.0: resolution: {integrity: sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==} engines: {node: '>=0.4'} dependencies: @@ -5240,15 +5282,15 @@ packages: isarray: 2.0.5 dev: true - /safe-buffer/5.1.2: + /safe-buffer@5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} dev: true - /safe-buffer/5.2.1: + /safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} dev: true - /safe-regex-test/1.0.0: + /safe-regex-test@1.0.0: resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} dependencies: call-bind: 1.0.2 @@ -5256,23 +5298,23 @@ packages: is-regex: 1.1.4 dev: true - /safer-buffer/2.1.2: + /safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} dev: true - /saxes/6.0.0: + /saxes@6.0.0: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} engines: {node: '>=v12.22.7'} dependencies: xmlchars: 2.2.0 dev: true - /scheduler/0.23.0: + /scheduler@0.23.0: resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} dependencies: loose-envify: 1.4.0 - /scslre/0.2.0: + /scslre@0.2.0: resolution: {integrity: sha512-4hc49fUMmX3jM0XdFUAPBrs1xwEcdHa0KyjEsjFs+Zfc66mpFpq5YmRgDtl+Ffo6AtJIilfei+yKw8fUn3N88w==} dependencies: '@eslint-community/regexpp': 4.6.2 @@ -5280,12 +5322,12 @@ packages: regexp-ast-analysis: 0.6.0 dev: true - /semver/6.3.1: + /semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true dev: true - /semver/7.5.4: + /semver@7.5.4: resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} engines: {node: '>=10'} hasBin: true @@ -5293,131 +5335,129 @@ packages: lru-cache: 6.0.0 dev: true - /set-cookie-parser/2.6.0: + /set-cookie-parser@2.6.0: resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==} dev: true - /shebang-command/2.0.0: + /shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} dependencies: shebang-regex: 3.0.0 dev: true - /shebang-regex/3.0.0: + /shebang-regex@3.0.0: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} dev: true - /side-channel/1.0.4: + /side-channel@1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: call-bind: 1.0.2 get-intrinsic: 1.2.1 object-inspect: 1.12.3 - dev: true - /siginfo/2.0.0: + /siginfo@2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} dev: true - /signal-exit/3.0.7: + /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} dev: true - /signal-exit/4.1.0: + /signal-exit@4.1.0: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} dev: true - /slash/3.0.0: + /slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} dev: true - /slash/4.0.0: + /slash@4.0.0: resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} engines: {node: '>=12'} dev: true - /source-map-js/1.0.2: + /source-map-js@1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} - /source-map-support/0.5.21: + /source-map-support@0.5.21: resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} dependencies: buffer-from: 1.1.2 source-map: 0.6.1 dev: true - /source-map/0.6.1: + /source-map@0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} dev: true - /spdx-correct/3.2.0: + /spdx-correct@3.2.0: resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} dependencies: spdx-expression-parse: 3.0.1 spdx-license-ids: 3.0.13 dev: true - /spdx-exceptions/2.3.0: + /spdx-exceptions@2.3.0: resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} dev: true - /spdx-expression-parse/3.0.1: + /spdx-expression-parse@3.0.1: resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} dependencies: spdx-exceptions: 2.3.0 spdx-license-ids: 3.0.13 dev: true - /spdx-license-ids/3.0.13: + /spdx-license-ids@3.0.13: resolution: {integrity: sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==} dev: true - /sprintf-js/1.0.3: + /sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} dev: true - /stackback/0.0.2: + /stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} dev: true - /std-env/3.3.3: + /std-env@3.3.3: resolution: {integrity: sha512-Rz6yejtVyWnVjC1RFvNmYL10kgjC49EOghxWn0RFqlCHGFpQx+Xe7yW3I4ceK1SGrWIGMjD5Kbue8W/udkbMJg==} dev: true - /stop-iteration-iterator/1.0.0: + /stop-iteration-iterator@1.0.0: resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} engines: {node: '>= 0.4'} dependencies: internal-slot: 1.0.5 - dev: true - /streamsearch/1.1.0: + /streamsearch@1.1.0: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} engines: {node: '>=10.0.0'} dev: false - /strict-event-emitter/0.2.8: + /strict-event-emitter@0.2.8: resolution: {integrity: sha512-KDf/ujU8Zud3YaLtMCcTI4xkZlZVIYxTLr+XIULexP+77EEVWixeXroLUXQXiVtH4XH2W7jr/3PT1v3zBuvc3A==} dependencies: events: 3.3.0 dev: true - /strict-event-emitter/0.4.6: + /strict-event-emitter@0.4.6: resolution: {integrity: sha512-12KWeb+wixJohmnwNFerbyiBrAlq5qJLwIt38etRtKtmmHyDSoGlIqFE9wx+4IwG0aDjI7GV8tc8ZccjWZZtTg==} dev: true - /string-argv/0.3.2: + /string-argv@0.3.2: resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} engines: {node: '>=0.6.19'} dev: true - /string-width/4.2.3: + /string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} dependencies: @@ -5426,7 +5466,7 @@ packages: strip-ansi: 6.0.1 dev: true - /string-width/5.1.2: + /string-width@5.1.2: resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} engines: {node: '>=12'} dependencies: @@ -5435,7 +5475,7 @@ packages: strip-ansi: 7.1.0 dev: true - /string.prototype.matchall/4.0.8: + /string.prototype.matchall@4.0.8: resolution: {integrity: sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==} dependencies: call-bind: 1.0.2 @@ -5448,7 +5488,7 @@ packages: side-channel: 1.0.4 dev: true - /string.prototype.trim/1.2.7: + /string.prototype.trim@1.2.7: resolution: {integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==} engines: {node: '>= 0.4'} dependencies: @@ -5457,7 +5497,7 @@ packages: es-abstract: 1.22.1 dev: true - /string.prototype.trimend/1.0.6: + /string.prototype.trimend@1.0.6: resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} dependencies: call-bind: 1.0.2 @@ -5465,7 +5505,7 @@ packages: es-abstract: 1.22.1 dev: true - /string.prototype.trimstart/1.0.6: + /string.prototype.trimstart@1.0.6: resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} dependencies: call-bind: 1.0.2 @@ -5473,76 +5513,76 @@ packages: es-abstract: 1.22.1 dev: true - /string_decoder/0.10.31: + /string_decoder@0.10.31: resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==} dev: true - /string_decoder/1.1.1: + /string_decoder@1.1.1: resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} dependencies: safe-buffer: 5.1.2 dev: true - /string_decoder/1.3.0: + /string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} dependencies: safe-buffer: 5.2.1 dev: true - /strip-ansi/6.0.1: + /strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} dependencies: ansi-regex: 5.0.1 dev: true - /strip-ansi/7.1.0: + /strip-ansi@7.1.0: resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} engines: {node: '>=12'} dependencies: ansi-regex: 6.0.1 dev: true - /strip-bom/3.0.0: + /strip-bom@3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} dev: true - /strip-final-newline/2.0.0: + /strip-final-newline@2.0.0: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} dev: true - /strip-final-newline/3.0.0: + /strip-final-newline@3.0.0: resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} engines: {node: '>=12'} dev: true - /strip-indent/3.0.0: + /strip-indent@3.0.0: resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} engines: {node: '>=8'} dependencies: min-indent: 1.0.1 - /strip-indent/4.0.0: + /strip-indent@4.0.0: resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==} engines: {node: '>=12'} dependencies: min-indent: 1.0.1 dev: true - /strip-json-comments/3.1.1: + /strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} dev: true - /strip-literal/1.0.1: + /strip-literal@1.0.1: resolution: {integrity: sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==} dependencies: acorn: 8.10.0 dev: true - /styled-jsx/5.1.1_react@18.2.0: + /styled-jsx@5.1.1(react@18.2.0): resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} engines: {node: '>= 12.0.0'} peerDependencies: @@ -5559,29 +5599,28 @@ packages: react: 18.2.0 dev: false - /supports-color/5.5.0: + /supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} dependencies: has-flag: 3.0.0 - dev: true - /supports-color/7.2.0: + /supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} dependencies: has-flag: 4.0.0 - /supports-preserve-symlinks-flag/1.0.0: + /supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} dev: true - /symbol-tree/3.2.4: + /symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} dev: true - /synckit/0.8.5: + /synckit@0.8.5: resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==} engines: {node: ^14.18.0 || >=16.0.0} dependencies: @@ -5589,7 +5628,7 @@ packages: tslib: 2.6.1 dev: true - /test-exclude/6.0.0: + /test-exclude@6.0.0: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} dependencies: @@ -5598,60 +5637,60 @@ packages: minimatch: 3.1.2 dev: true - /text-table/0.2.0: + /text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true - /through/2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - dev: true - - /through2/2.0.5: + /through2@2.0.5: resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} dependencies: readable-stream: 2.3.8 xtend: 4.0.2 dev: true - /tinybench/2.5.0: + /through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + dev: true + + /tinybench@2.5.0: resolution: {integrity: sha512-kRwSG8Zx4tjF9ZiyH4bhaebu+EDz1BOx9hOigYHlUW4xxI/wKIUQUqo018UlU4ar6ATPBsaMrdbKZ+tmPdohFA==} dev: true - /tinypool/0.6.0: + /tinypool@0.6.0: resolution: {integrity: sha512-FdswUUo5SxRizcBc6b1GSuLpLjisa8N8qMyYoP3rl+bym+QauhtJP5bvZY1ytt8krKGmMLYIRl36HBZfeAoqhQ==} engines: {node: '>=14.0.0'} dev: true - /tinyspy/2.1.1: + /tinyspy@2.1.1: resolution: {integrity: sha512-XPJL2uSzcOyBMky6OFrusqWlzfFrXtE0hPuMgW8A2HmaqrPo4ZQHRN/V0QXN3FSjKxpsbRrFc5LI7KOwBsT1/w==} engines: {node: '>=14.0.0'} dev: true - /titleize/3.0.0: + /titleize@3.0.0: resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==} engines: {node: '>=12'} dev: true - /tmp/0.0.33: + /tmp@0.0.33: resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} engines: {node: '>=0.6.0'} dependencies: os-tmpdir: 1.0.2 dev: true - /to-fast-properties/2.0.0: + /to-fast-properties@2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} dev: true - /to-regex-range/5.0.1: + /to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} dependencies: is-number: 7.0.0 dev: true - /tough-cookie/4.1.3: + /tough-cookie@4.1.3: resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==} engines: {node: '>=6'} dependencies: @@ -5661,23 +5700,23 @@ packages: url-parse: 1.5.10 dev: true - /tr46/0.0.3: + /tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} dev: true - /tr46/4.1.1: + /tr46@4.1.1: resolution: {integrity: sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==} engines: {node: '>=14'} dependencies: punycode: 2.3.0 dev: true - /trim-newlines/5.0.0: + /trim-newlines@5.0.0: resolution: {integrity: sha512-kstfs+hgwmdsOadN3KgA+C68wPJwnZq4DN6WMDCvZapDWEF34W2TyPKN2v2+BJnZgIz5QOfxFeldLyYvdgRAwg==} engines: {node: '>=14.16'} dev: true - /ts-api-utils/1.0.1_typescript@5.1.6: + /ts-api-utils@1.0.1(typescript@5.1.6): resolution: {integrity: sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==} engines: {node: '>=16.13.0'} peerDependencies: @@ -5686,7 +5725,7 @@ packages: typescript: 5.1.6 dev: true - /tsconfig-paths/3.14.2: + /tsconfig-paths@3.14.2: resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==} dependencies: '@types/json5': 0.0.29 @@ -5695,14 +5734,14 @@ packages: strip-bom: 3.0.0 dev: true - /tslib/1.14.1: + /tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true - /tslib/2.6.1: + /tslib@2.6.1: resolution: {integrity: sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==} - /tsutils/3.21.0_typescript@5.1.6: + /tsutils@3.21.0(typescript@5.1.6): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: @@ -5712,7 +5751,7 @@ packages: typescript: 5.1.6 dev: true - /tsx/3.12.7: + /tsx@3.12.7: resolution: {integrity: sha512-C2Ip+jPmqKd1GWVQDvz/Eyc6QJbGfE7NrR3fx5BpEHMZsEHoIxHL1j+lKdGobr8ovEyqeNkPLSKp6SCSOt7gmw==} hasBin: true dependencies: @@ -5723,39 +5762,39 @@ packages: fsevents: 2.3.2 dev: true - /type-check/0.4.0: + /type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.2.1 dev: true - /type-detect/4.0.8: + /type-detect@4.0.8: resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} engines: {node: '>=4'} dev: true - /type-fest/0.20.2: + /type-fest@0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} dev: true - /type-fest/0.21.3: + /type-fest@0.21.3: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} dev: true - /type-fest/2.19.0: + /type-fest@2.19.0: resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} engines: {node: '>=12.20'} dev: true - /type-fest/3.13.1: + /type-fest@3.13.1: resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} engines: {node: '>=14.16'} dev: true - /typed-array-buffer/1.0.0: + /typed-array-buffer@1.0.0: resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} engines: {node: '>= 0.4'} dependencies: @@ -5764,7 +5803,7 @@ packages: is-typed-array: 1.1.12 dev: true - /typed-array-byte-length/1.0.0: + /typed-array-byte-length@1.0.0: resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} engines: {node: '>= 0.4'} dependencies: @@ -5774,7 +5813,7 @@ packages: is-typed-array: 1.1.12 dev: true - /typed-array-byte-offset/1.0.0: + /typed-array-byte-offset@1.0.0: resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} engines: {node: '>= 0.4'} dependencies: @@ -5785,7 +5824,7 @@ packages: is-typed-array: 1.1.12 dev: true - /typed-array-length/1.0.4: + /typed-array-length@1.0.4: resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} dependencies: call-bind: 1.0.2 @@ -5793,22 +5832,22 @@ packages: is-typed-array: 1.1.12 dev: true - /typescript/5.0.4: + /typescript@5.0.4: resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==} engines: {node: '>=12.20'} hasBin: true dev: true - /typescript/5.1.6: + /typescript@5.1.6: resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==} engines: {node: '>=14.17'} hasBin: true - /ufo/1.2.0: + /ufo@1.2.0: resolution: {integrity: sha512-RsPyTbqORDNDxqAdQPQBpgqhWle1VcTSou/FraClYlHf6TZnQcGslpLcAphNR+sQW4q5lLWLbOsRlh9j24baQg==} dev: true - /unbox-primitive/1.0.2: + /unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} dependencies: call-bind: 1.0.2 @@ -5817,22 +5856,22 @@ packages: which-boxed-primitive: 1.0.2 dev: true - /universalify/0.1.2: + /universalify@0.1.2: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} engines: {node: '>= 4.0.0'} dev: true - /universalify/0.2.0: + /universalify@0.2.0: resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} engines: {node: '>= 4.0.0'} dev: true - /untildify/4.0.0: + /untildify@4.0.0: resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} engines: {node: '>=8'} dev: true - /update-browserslist-db/1.0.11_browserslist@4.21.10: + /update-browserslist-db@1.0.11(browserslist@4.21.10): resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} hasBin: true peerDependencies: @@ -5843,24 +5882,24 @@ packages: picocolors: 1.0.0 dev: true - /uri-js/4.4.1: + /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: punycode: 2.3.0 dev: true - /url-parse/1.5.10: + /url-parse@1.5.10: resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} dependencies: querystringify: 2.2.0 requires-port: 1.0.0 dev: true - /util-deprecate/1.0.2: + /util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} dev: true - /util/0.12.5: + /util@0.12.5: resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} dependencies: inherits: 2.0.4 @@ -5870,7 +5909,7 @@ packages: which-typed-array: 1.1.11 dev: true - /v8-to-istanbul/9.1.0: + /v8-to-istanbul@9.1.0: resolution: {integrity: sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==} engines: {node: '>=10.12.0'} dependencies: @@ -5879,19 +5918,19 @@ packages: convert-source-map: 1.9.0 dev: true - /validate-npm-package-license/3.0.4: + /validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} dependencies: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 dev: true - /validator/13.9.0: + /validator@13.9.0: resolution: {integrity: sha512-B+dGG8U3fdtM0/aNK4/X8CXq/EcxU2WPrPEkJGslb47qyHsxmbggTWK0yEA4qnYVNF+nxNlN88o14hIcPmSIEA==} engines: {node: '>= 0.10'} dev: true - /vite-node/0.33.0_@types+node@20.4.5: + /vite-node@0.33.0(@types/node@20.4.5): resolution: {integrity: sha512-19FpHYbwWWxDr73ruNahC+vtEdza52kA90Qb3La98yZ0xULqV8A5JLNPUff0f5zID4984tW7l3DH2przTJUZSw==} engines: {node: '>=v14.18.0'} hasBin: true @@ -5901,7 +5940,7 @@ packages: mlly: 1.4.0 pathe: 1.1.1 picocolors: 1.0.0 - vite: 4.4.7_@types+node@20.4.5 + vite: 4.4.7(@types/node@20.4.5) transitivePeerDependencies: - '@types/node' - less @@ -5913,7 +5952,7 @@ packages: - terser dev: true - /vite-plugin-dts/3.4.0_npxhaqyhuvoil5zmsh4ym23fea: + /vite-plugin-dts@3.4.0(typescript@5.1.6)(vite@4.4.7): resolution: {integrity: sha512-B5UbhiF83hPlJpdri3k2FlseO2qIQfY95XJib7z1s8NTQKgPK+KgeuOQf8FR1hnE/pSU+RA3ra2T18HvymPDyA==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -5925,54 +5964,19 @@ packages: dependencies: '@microsoft/api-extractor': 7.36.3 '@rollup/pluginutils': 5.0.2 - '@vue/language-core': 1.8.8_typescript@5.1.6 + '@vue/language-core': 1.8.8(typescript@5.1.6) debug: 4.3.4 kolorist: 1.8.0 typescript: 5.1.6 - vite: 4.4.7 - vue-tsc: 1.8.8_typescript@5.1.6 + vite: 4.4.7(@types/node@18.17.1) + vue-tsc: 1.8.8(typescript@5.1.6) transitivePeerDependencies: - '@types/node' - rollup - supports-color dev: true - /vite/4.4.7: - resolution: {integrity: sha512-6pYf9QJ1mHylfVh39HpuSfMPojPSKVxZvnclX1K1FyZ1PXDOcLBibdq5t1qxJSnL63ca8Wf4zts6mD8u8oc9Fw==} - engines: {node: ^14.18.0 || >=16.0.0} - hasBin: true - peerDependencies: - '@types/node': '>= 14' - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - dependencies: - esbuild: 0.18.17 - postcss: 8.4.27 - rollup: 3.27.0 - optionalDependencies: - fsevents: 2.3.2 - dev: true - - /vite/4.4.7_@types+node@18.17.1: + /vite@4.4.7(@types/node@18.17.1): resolution: {integrity: sha512-6pYf9QJ1mHylfVh39HpuSfMPojPSKVxZvnclX1K1FyZ1PXDOcLBibdq5t1qxJSnL63ca8Wf4zts6mD8u8oc9Fw==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -6008,7 +6012,7 @@ packages: fsevents: 2.3.2 dev: true - /vite/4.4.7_@types+node@20.4.5: + /vite@4.4.7(@types/node@20.4.5): resolution: {integrity: sha512-6pYf9QJ1mHylfVh39HpuSfMPojPSKVxZvnclX1K1FyZ1PXDOcLBibdq5t1qxJSnL63ca8Wf4zts6mD8u8oc9Fw==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -6044,72 +6048,7 @@ packages: fsevents: 2.3.2 dev: true - /vitest/0.33.0: - resolution: {integrity: sha512-1CxaugJ50xskkQ0e969R/hW47za4YXDUfWJDxip1hwbnhUjYolpfUn2AMOulqG/Dtd9WYAtkHmM/m3yKVrEejQ==} - engines: {node: '>=v14.18.0'} - hasBin: true - peerDependencies: - '@edge-runtime/vm': '*' - '@vitest/browser': '*' - '@vitest/ui': '*' - happy-dom: '*' - jsdom: '*' - playwright: '*' - safaridriver: '*' - webdriverio: '*' - peerDependenciesMeta: - '@edge-runtime/vm': - optional: true - '@vitest/browser': - optional: true - '@vitest/ui': - optional: true - happy-dom: - optional: true - jsdom: - optional: true - playwright: - optional: true - safaridriver: - optional: true - webdriverio: - optional: true - dependencies: - '@types/chai': 4.3.5 - '@types/chai-subset': 1.3.3 - '@types/node': 20.4.5 - '@vitest/expect': 0.33.0 - '@vitest/runner': 0.33.0 - '@vitest/snapshot': 0.33.0 - '@vitest/spy': 0.33.0 - '@vitest/utils': 0.33.0 - acorn: 8.10.0 - acorn-walk: 8.2.0 - cac: 6.7.14 - chai: 4.3.7 - debug: 4.3.4 - local-pkg: 0.4.3 - magic-string: 0.30.2 - pathe: 1.1.1 - picocolors: 1.0.0 - std-env: 3.3.3 - strip-literal: 1.0.1 - tinybench: 2.5.0 - tinypool: 0.6.0 - vite: 4.4.7_@types+node@20.4.5 - vite-node: 0.33.0_@types+node@20.4.5 - why-is-node-running: 2.2.2 - transitivePeerDependencies: - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - dev: true - - /vitest/0.33.0_jsdom@22.1.0: + /vitest@0.33.0(jsdom@22.1.0): resolution: {integrity: sha512-1CxaugJ50xskkQ0e969R/hW47za4YXDUfWJDxip1hwbnhUjYolpfUn2AMOulqG/Dtd9WYAtkHmM/m3yKVrEejQ==} engines: {node: '>=v14.18.0'} hasBin: true @@ -6162,8 +6101,8 @@ packages: strip-literal: 1.0.1 tinybench: 2.5.0 tinypool: 0.6.0 - vite: 4.4.7_@types+node@20.4.5 - vite-node: 0.33.0_@types+node@20.4.5 + vite: 4.4.7(@types/node@20.4.5) + vite-node: 0.33.0(@types/node@20.4.5) why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -6175,33 +6114,33 @@ packages: - terser dev: true - /vue-template-compiler/2.7.14: + /vue-template-compiler@2.7.14: resolution: {integrity: sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==} dependencies: de-indent: 1.0.2 he: 1.2.0 dev: true - /vue-tsc/1.8.8_typescript@5.1.6: + /vue-tsc@1.8.8(typescript@5.1.6): resolution: {integrity: sha512-bSydNFQsF7AMvwWsRXD7cBIXaNs/KSjvzWLymq/UtKE36697sboX4EccSHFVxvgdBlI1frYPc/VMKJNB7DFeDQ==} hasBin: true peerDependencies: typescript: '*' dependencies: - '@vue/language-core': 1.8.8_typescript@5.1.6 - '@vue/typescript': 1.8.8_typescript@5.1.6 + '@vue/language-core': 1.8.8(typescript@5.1.6) + '@vue/typescript': 1.8.8(typescript@5.1.6) semver: 7.5.4 typescript: 5.1.6 dev: true - /w3c-xmlserializer/4.0.0: + /w3c-xmlserializer@4.0.0: resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} engines: {node: '>=14'} dependencies: xml-name-validator: 4.0.0 dev: true - /watchpack/2.4.0: + /watchpack@2.4.0: resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} engines: {node: '>=10.13.0'} dependencies: @@ -6209,13 +6148,13 @@ packages: graceful-fs: 4.2.11 dev: false - /wcwidth/1.0.1: + /wcwidth@1.0.1: resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} dependencies: defaults: 1.0.4 dev: true - /web-encoding/1.1.5: + /web-encoding@1.1.5: resolution: {integrity: sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==} dependencies: util: 0.12.5 @@ -6223,32 +6162,32 @@ packages: '@zxing/text-encoding': 0.9.0 dev: true - /web-vitals/3.4.0: + /web-vitals@3.4.0: resolution: {integrity: sha512-n9fZ5/bG1oeDkyxLWyep0eahrNcPDF6bFqoyispt7xkW0xhDzpUBTgyDKqWDi1twT0MgH4HvvqzpUyh0ZxZV4A==} dev: false - /webidl-conversions/3.0.1: + /webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} dev: true - /webidl-conversions/7.0.0: + /webidl-conversions@7.0.0: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} engines: {node: '>=12'} dev: true - /whatwg-encoding/2.0.0: + /whatwg-encoding@2.0.0: resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} engines: {node: '>=12'} dependencies: iconv-lite: 0.6.3 dev: true - /whatwg-mimetype/3.0.0: + /whatwg-mimetype@3.0.0: resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} engines: {node: '>=12'} dev: true - /whatwg-url/12.0.1: + /whatwg-url@12.0.1: resolution: {integrity: sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ==} engines: {node: '>=14'} dependencies: @@ -6256,14 +6195,14 @@ packages: webidl-conversions: 7.0.0 dev: true - /whatwg-url/5.0.0: + /whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} dependencies: tr46: 0.0.3 webidl-conversions: 3.0.1 dev: true - /which-boxed-primitive/1.0.2: + /which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} dependencies: is-bigint: 1.0.4 @@ -6271,18 +6210,16 @@ packages: is-number-object: 1.0.7 is-string: 1.0.7 is-symbol: 1.0.4 - dev: true - /which-collection/1.0.1: + /which-collection@1.0.1: resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} dependencies: is-map: 2.0.2 is-set: 2.0.2 is-weakmap: 2.0.1 is-weakset: 2.0.2 - dev: true - /which-typed-array/1.1.11: + /which-typed-array@1.1.11: resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==} engines: {node: '>= 0.4'} dependencies: @@ -6291,9 +6228,8 @@ packages: for-each: 0.3.3 gopd: 1.0.1 has-tostringtag: 1.0.0 - dev: true - /which/2.0.2: + /which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} hasBin: true @@ -6301,7 +6237,7 @@ packages: isexe: 2.0.0 dev: true - /why-is-node-running/2.2.2: + /why-is-node-running@2.2.2: resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} engines: {node: '>=8'} hasBin: true @@ -6310,7 +6246,7 @@ packages: stackback: 0.0.2 dev: true - /wrap-ansi/7.0.0: + /wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} dependencies: @@ -6319,7 +6255,7 @@ packages: strip-ansi: 6.0.1 dev: true - /wrap-ansi/8.1.0: + /wrap-ansi@8.1.0: resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} engines: {node: '>=12'} dependencies: @@ -6328,11 +6264,11 @@ packages: strip-ansi: 7.1.0 dev: true - /wrappy/1.0.2: + /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} dev: true - /ws/8.13.0: + /ws@8.13.0: resolution: {integrity: sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==} engines: {node: '>=10.0.0'} peerDependencies: @@ -6345,44 +6281,44 @@ packages: optional: true dev: true - /xml-name-validator/4.0.0: + /xml-name-validator@4.0.0: resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} engines: {node: '>=12'} dev: true - /xmlchars/2.2.0: + /xmlchars@2.2.0: resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} dev: true - /xtend/4.0.2: + /xtend@4.0.2: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} dev: true - /y18n/5.0.8: + /y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} dev: true - /yallist/3.1.1: + /yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} dev: true - /yallist/4.0.0: + /yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} dev: true - /yargs-parser/20.2.9: + /yargs-parser@20.2.9: resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} engines: {node: '>=10'} dev: true - /yargs-parser/21.1.1: + /yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} dev: true - /yargs/16.2.0: + /yargs@16.2.0: resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} engines: {node: '>=10'} dependencies: @@ -6395,7 +6331,7 @@ packages: yargs-parser: 20.2.9 dev: true - /yargs/17.7.2: + /yargs@17.7.2: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} dependencies: @@ -6408,17 +6344,17 @@ packages: yargs-parser: 21.1.1 dev: true - /yocto-queue/0.1.0: + /yocto-queue@0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} dev: true - /yocto-queue/1.0.0: + /yocto-queue@1.0.0: resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} engines: {node: '>=12.20'} dev: true - /z-schema/5.0.5: + /z-schema@5.0.5: resolution: {integrity: sha512-D7eujBWkLa3p2sIpJA0d1pr7es+a7m0vFAnZLlCEKq/Ij2k0MLi9Br2UPxoxdYystm5K1yeBGzub0FlYUEWj2Q==} engines: {node: '>=8.0.0'} hasBin: true @@ -6430,6 +6366,6 @@ packages: commander: 9.5.0 dev: true - /zod/3.21.4: + /zod@3.21.4: resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==} dev: false diff --git a/readme.md b/readme.md index 4c414ae67..5c84f6103 100644 --- a/readme.md +++ b/readme.md @@ -1,10 +1,8 @@ -# @axa-fr/react-oidc +# @axa-fr/oidc-client -[![Continuous Integration](https://github.com/AxaGuilDEv/react-oidc/actions/workflows/npm-publish.yml/badge.svg)](https://github.com/AxaGuilDEv/react-oidc/actions/workflows/npm-publish.yml) +[![Continuous Integration](https://github.com/AxaFrance/react-oidc/actions/workflows/npm-publish.yml/badge.svg)](https://github.com/AxaFrance/react-oidc/actions/workflows/npm-publish.yml) [![Quality Gate](https://sonarcloud.io/api/project_badges/measure?project=AxaGuilDEv_react-oidc&metric=alert_status)](https://sonarcloud.io/dashboard?id=AxaGuilDEv_react-oidc) [![Reliability](https://sonarcloud.io/api/project_badges/measure?project=AxaGuilDEv_react-oidc&metric=reliability_rating)](https://sonarcloud.io/component_measures?id=AxaGuilDEv_react-oidc&metric=reliability_rating) [![Security](https://sonarcloud.io/api/project_badges/measure?project=AxaGuilDEv_react-oidc&metric=security_rating)](https://sonarcloud.io/component_measures?id=AxaGuilDEv_react-oidc&metric=security_rating) [![Code Coverage](https://sonarcloud.io/api/project_badges/measure?project=AxaGuilDEv_react-oidc&metric=coverage)](https://sonarcloud.io/component_measures?id=AxaGuilDEv_react-oidc&metric=Coverage) [![Twitter](https://img.shields.io/twitter/follow/GuildDEvOpen?style=social)](https://twitter.com/intent/follow?screen_name=GuildDEvOpen) -- Try the demo react at https://black-rock-0dc6b0d03.1.azurestaticapps.net/ -- Try the demo vanilla at https://icy-glacier-004ab4303.2.azurestaticapps.net/

-A set of react components to make Oidc (OpenID Connect) client easy. It aim to simplify OAuth authentication between multiples providers. It is compatible with NextJS. - - [About](#about) - [Getting Started](#getting-started) -- [Run The Demo](#run-the-demo) -- [Run The NextJS Demo](#run-the-nextjs-demo) +- [Run The Demos](#run-the-demos) - [How It Works](#how-it-works) - Packages - - [`@axa-fr/react-oidc`](./packages/react-oidc#readme.md) [![npm version](https://badge.fury.io/js/%40axa-fr%2Freact-oidc.svg)](https://badge.fury.io/js/%40axa-fr%2Freact-oidc) - [`@axa-fr/oidc-client`](./packages/oidc-client#readme.md) [![npm version](https://badge.fury.io/js/%40axa-fr%2Foidc-client.svg)](https://badge.fury.io/js/%40axa-fr%2Foidc-client) - - [`@axa-fr/vanilla-oidc`](./packages/oidc-client#readme.md) [![npm version](https://badge.fury.io/js/%40axa-fr%2Fvanilla-oidc.svg)](https://badge.fury.io/js/%40axa-fr%2Fvanilla-oidc) **Deprecated in v6: has been renamed to @axa-fr/oidc-client** - - [`@axa-fr/react-oidc-context`] [![npm version](https://badge.fury.io/js/%40axa-fr%2Freact-oidc-context.svg)](https://badge.fury.io/js/%40axa-fr%2Freact-oidc-context) **Deprecated in v6: has been renamed to @axa-fr/react-oidc** - - [`@axa-fr/react-oidc-context-fetch`] [![npm version](https://badge.fury.io/js/%40axa-fr%2Freact-oidc-context-fetch.svg)](https://badge.fury.io/js/%40axa-fr%2Freact-oidc-context-fetch) **Deprecated in v4** - - [`@axa-fr/react-oidc-redux`] [![npm version](https://badge.fury.io/js/%40axa-fr%2Freact-oidc-redux.svg)](https://badge.fury.io/js/%40axa-fr%2Freact-oidc-redux) **Deprecated in v4 : use react-oidc-context which works with redux and in fact does not use any react context** - - [`@axa-fr/react-oidc-redux-fetch`] [![npm version](https://badge.fury.io/js/%40axa-fr%2Freact-oidc-redux-fetch.svg)](https://badge.fury.io/js/%40axa-fr%2Freact-oidc-redux-fetch) **Deprecated in v4** - - [`@axa-fr/react-oidc-fetch-observable`] [![npm version](https://badge.fury.io/js/%40axa-fr%2Freact-oidc-fetch-observable.svg)](https://badge.fury.io/js/%40axa-fr%2Freact-oidc-fetch-observable) **Deprecated in v4** + - [`@axa-fr/react-oidc`](./packages/react-oidc#readme.md) [![npm version](https://badge.fury.io/js/%40axa-fr%2Freact-oidc.svg)](https://badge.fury.io/js/%40axa-fr%2Freact-oidc) + - `@axa-fr/svelte-oidc` : we are looking for contributor + - `@axa-fr/vue-oidc` : we are looking for contributor + - `@axa-fr/angular-oidc` : we are looking for contributor +- [FAQ](#FAQ) - [Migrations](#migrations) - [Contribute](#contribute) ## About -These libraries is used to manage client authentication. +**@axa-fr/oidc-client** the lightest and securest library to manage authentication with OpenID Connect (OIDC) and OAuth2 protocol. It is compatible with all OIDC providers. +**@axa-fr/oidc-client** is a pure javascript library. It works with any JavaScript framework or library. +**@axa-fr/react-oidc** is for **React** (compatible next.js, etc.), we expect soon to provide one for **Vue**, **Angular** and **Svelte**. + +Demos: +- Try the react demo at https://black-rock-0dc6b0d03.1.azurestaticapps.net/ (most advanced) +- Try the pure javascript demo at https://icy-glacier-004ab4303.2.azurestaticapps.net/ + + +**@axa-fr/oidc-client** is: - **Secure** : - - With the use of Service Worker, your tokens (refresh_token and access_token) are not accessible to the JavaScript client code (big protection against XSRF attacks) + - With the use of Service Worker, your tokens (refresh_token and access_token) are not accessible to the JavaScript client code (big protection against XSS attacks) - OIDC using client side Code Credential Grant with pkce only -- **Lightweight** +- **Lightweight** : Unpacked Size on npm is **274 kB** - **Simple** - refresh_token and access_token are auto refreshed in background - with the use of the Service Worker, you do not need to inject the access_token in every fetch, you have only to configure OidcTrustedDomains.js file -- **No cookies problem** : You can disable silent signin (that internally use an iFrame). For your information, your OIDC server should be in the same domain of your website in order to be able to send OIDC server cookies from your website via an internal IFRAME, else, you may encounter COOKIES problem. - **Multiple Authentication** : - You can authenticate many times to the same provider with different scope (for example you can acquire a new 'payment' scope for a payment) - You can authenticate to multiple different providers inside the same SPA (single page application) website - **Flexible** : - - Work with Service Worker (more secure) and without for older browser (less secure) - -

- Schema Authorization Code Grant with pcke flow on the using service worker -
- The service worker catch access_token and refresh_token that will never be accessible to the client. -

+ - Work with Service Worker (more secure) and without for older browser (less secure). + - You can disable Service Worker if you want (but less secure) and just use SessionStorage or LocalStorage mode. Works perfectly well with: - [Auth0](https://auth0.com/) - [Duende Identity Server](https://duendesoftware.com/) +- Azure AD - Google - AWS - [Keycloak](https://www.keycloak.org/) -- all OIDC compatible providers - -

- @axa-fr/react-oidc is one of the securest way to Authenticate. -
- @axa-fr/react-oidc is one of the securest way to Authenticate. -

+- etc., all OIDC providers -

- Service Worker lifetime drawback. -
- Service Worker lifetime drawback. -

-

- Silent-Signing constraints. -
- Silent-Signing constraints. -

-

- @axa-fr/react-oidc is the simplest and cheapest. -
- @axa-fr/react-oidc is the simplest and cheapest. -

## Getting Started -### Getting Started React using create-react-app +### Getting Started with @axa-fr/oidc-client ```sh -npm install @axa-fr/react-oidc --save +npm install @axa-fr/oidc-client --save # If you have a "public" folder, the 2 files will be created : # ./public/OidcServiceWorker.js <-- will be updated at each "npm install" # ./public/OidcTrustedDomains.js <-- won't be updated if already exist ``` -If you require a very secure mode where `refresh_token` and `access_token` will be hidden behind a service worker that will proxify requests. -The only file you should edit is `OidcTrustedDomains.js`. - -```javascript -import React from 'react'; -import { render } from 'react-dom'; -import { BrowserRouter as Router } from 'react-router-dom'; -import { OidcProvider } from '@axa-fr/react-oidc'; -import Header from './Layout/Header'; -import Routes from './Router'; - -// This configuration use the ServiceWorker mode only -// "access_token" will be provided automaticaly to the urls and domains configured inside "OidcTrustedDomains.js" -const configuration = { - client_id: 'interactive.public.short', - redirect_uri: window.location.origin + '/authentication/callback', - silent_redirect_uri: window.location.origin + '/authentication/silent-callback', // Optional activate silent-signin that use cookies between OIDC server and client javascript to restore the session - scope: 'openid profile email api offline_access', - authority: 'https://demo.duendesoftware.com', - service_worker_relative_url:'/OidcServiceWorker.js', - service_worker_only:true, -}; - -const App = () => ( - - -
- - - -); - -render(, document.getElementById('root')); -``` - -#### Trusted Domains - -Any domain that has a match in the `OidcTrustedDomains.js` will have the access token automatically injected on requests. - -The `OidcTrustedDomains.js` format is key (`default` being the default key) that has an array of string URLs or RegExp to match trusted domain URLs. - -> **Warning** -> You could use a wildcard for the value, by either providing the wildcard string value `'*'` or a RegExp such as `RegExp('^http.*')` , but you are reducing the security of your application by doing so and it is strongly discouraged. - -```javascript -// OidcTrustedDomains.js - -// Add below trusted domains, access tokens will automatically injected to be send to -// trusted domain can also be a path like https://www.myapi.com/users, -// then all subroute like https://www.myapi.com/useers/1 will be authorized to send access_token to. - -// Domains used by OIDC server must be also declared here -const trustedDomains = { - default:[ - "https://demo.duendesoftware.com", - "https://www.myapi.com/users", - new RegExp('^(https://[a-zA-Z0-9-]+.domain.com/api/)')] -}; - -// Service worker will continue to give access token to the JavaScript client -// Ideal to hide refresh token from client JavaScript, but to retrieve access_token for some -// scenarios which require it. For example, to send it via websocket connection. -trustedDomains.config_show_access_token = { domains : ["https://demo.duendesoftware.com"], showAccessToken: true }; - -// This example defines domains used by OIDC server separately from domains to which access tokens will be injected. -trustedDomains.config_separate_oidc_access_token_domains = { - oidcDomains: ["https://demo.duendesoftware.com"], - accessTokenDomains: ["https://myapi"] -}; - -``` - -#### How to consume - -`useOidc` returns all props from the Hook : - -```javascript -import React from 'react'; -import {useOidc} from "./oidc"; - -export const Home = () => { - - const { login, logout, isAuthenticated} = useOidc(); - - return ( -
-
-
-
Welcome!
-

React Demo Application protected by OpenID Connect

- {!isAuthenticated && - } - {isAuthenticated && - } -
-
-
- ) -}; - -``` - -The Hook method exposes : - -- isAuthenticated : if the user is logged in or not -- logout: logout function (return a promise) -- login: login function 'return a promise' - -"OidcSecure" component trigger authentication in case user is not authenticated. So, the children of that component can be accessible only once you are connected. - -```javascript -import React from 'react'; -import { OidcSecure } from '@axa-fr/react-oidc'; +More documentation : -const AdminSecure = () => ( - -

My sub component

-
-); +- [`@axa-fr/oidc-client`](./packages/oidc-client#readme) -export default AdminSecure; -``` +### Getting Started with @axa-fr/react-oidc -How to get IDToken - -```javascript -import { useOidcIdToken } from '@axa-fr/react-oidc'; - -const DisplayIdToken =() => { - const{ idToken, idTokenPayload } = useOidcIdToken(); - - if(!idToken){ - return

you are not authentified

- } - - return ( -
-
-
ID Token
- {

{JSON.stringify(idToken)}

} - {idTokenPayload != null && -

{JSON.stringify(idTokenPayload)}

} -
-
- ); -} -``` +```sh +npm install @axa-fr/react-oidc --save -#### How to get User Information - -```javascript -import {useOidcUser} from '@axa-fr/react-oidc'; - -const DisplayUserInfo = () => { - const {oidcUser, oidcUserLoadingState} = useOidcUser(); - - switch (oidcUserLoadingState) { - case OidcUserStatus.Loading: - return

User Information are loading

; - case OidcUserStatus.Unauthenticated: - return

you are not authenticated

; - case OidcUserStatus.LoadingError: - return

Fail to load user information

; - default: - return ( -
-
-
User information
-

{JSON.stringify(oidcUser)}

-
-
- ); - } -}; +# If you have a "public" folder, the 2 files will be created : +# ./public/OidcServiceWorker.js <-- will be updated at each "npm install" +# ./public/OidcTrustedDomains.js <-- won't be updated if already exist ``` More documentation : - [`@axa-fr/react-oidc`](./packages/react#readme) -### Getting Started Vanilla +## Run The Demos -More documentation : +```sh +git clone https://github.com/AxaFrance/oidc-client.git -- [`@axa-fr/vanilla-oidc`](./packages/vanilla#readme) +cd oidc-client +pnpm install -## Run The Demo +# oidc client demo +cd examples/oidc-client-demo +pnpm install +pnpm start +# then navigate to http://localhost:5174 -```sh -git clone https://github.com/AxaGuilDEv/react-oidc.git -cd react-oidc/packages/react +# react vite demo +cd examples/react-oidc-demo pnpm install pnpm start # then navigate to http://localhost:4200 -``` - -## Run The NextJS Demo -```sh -git clone https://github.com/AxaGuilDEv/react-oidc.git -cd react-oidc/packages/nextjs-demo +# react NextJS demo +cd examples/nextjs-demo pnpm install pnpm run dev # then navigate to http://localhost:3001 @@ -318,24 +123,34 @@ pnpm run dev ## How It Works +

+ Schema Authorization Code Grant with pcke flow on the using service worker +
+ The service worker catch access_token and refresh_token that will never be accessible to the client. +

+ + These components encapsulate the use of "`@axa-fr/oidc-client`" in order to hide workflow complexity. -Internally, native History API is used to be router library agnostic. +Internally for "`@axa-fr/react-oidc`", native History API is used to be router library agnostic. -More information about OIDC +More information about OIDC : - [French : Augmentez la sécurité et la simplicité de votre Système d’Information OpenID Connect](https://medium.com/just-tech-it-now/augmentez-la-s%C3%A9curit%C3%A9-et-la-simplicit%C3%A9-de-votre-syst%C3%A8me-dinformation-avec-oauth-2-0-cf0732d71284) - [English : Increase the security and simplicity of your information system with OpenID Connect](https://medium.com/just-tech-it-now/increase-the-security-and-simplicity-of-your-information-system-with-openid-connect-fa8c26b99d6d) -## Migrations +## FAQ -v4 is a complete rewrite. It uses the libraries ["App-AuthJS"](https://github.com/openid/AppAuth-JS) instead of oidc-client. -In v4 we have chosen to remove a lot of the surface API in order to simplify usage and enforce security. -In this version you can use a ServiceWorker that will hide the `refresh_token` and `access_token` (more secure). +- Frequented Asked Question [`FAQ`](./FAQ.md) + +## Migrations - Migrating from v3 to v4 [`guide`](./MIGRATION_GUIDE_V3_TO_V4.md) - Migrating from v3 to v5 [`guide`](./MIGRATION_GUIDE_V3_TO_V5.md) - Migrating from v4 to v5 [`guide`](./MIGRATION_GUIDE_V4_TO_V5.md) - Migrating from v5 to v6 [`guide`](./MIGRATION_GUIDE_V5_TO_V6.md) +- Migrating from v6 to v7 [`guide`](./MIGRATION_GUIDE_V6_TO_V7.md) ## Contribute From e74c0df57140ca2bd3c7fd631eef39661b1b2b8c Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 1 Aug 2023 13:29:17 +0000 Subject: [PATCH 017/440] [skip ci] Update version package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client/package.json | 2 +- packages/react-oidc/package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index de0dbee59..398402a57 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "6.26.6", + "version": "7.0.0", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 3d57a62e1..3ebd70c4b 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "6.26.6", + "version": "7.0.0", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index f844e9c5f..c0015a3db 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "6.26.6", + "version": "7.0.0", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From cd9789520090b27ea905401be6d03fd87f817f76 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Thu, 3 Aug 2023 11:35:14 +0200 Subject: [PATCH 018/440] fix(oidc): expire_in in string instead of number (#1118) (release) --- .github/workflows/npm-publish.yml | 2 +- FAQ.md | 3 +- .../oidc-client-service-worker/src/types.ts | 4 +- .../src/utils/__tests__/testHelper.ts | 8 ++-- .../src/utils/__tests__/tokens.spec.ts | 15 +++++--- .../src/utils/tokens.ts | 6 ++- packages/oidc-client/src/parseTokens.spec.ts | 38 ++++++++++++++++++- packages/oidc-client/src/parseTokens.ts | 26 ++++++++----- 8 files changed, 75 insertions(+), 27 deletions(-) diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml index 39600d4c9..b0f6ad62c 100644 --- a/.github/workflows/npm-publish.yml +++ b/.github/workflows/npm-publish.yml @@ -68,7 +68,7 @@ jobs: id: which_tag run: | if [[ ${{ github.ref }} == refs/pull* ]]; then - last_commit_message=$(curl -s "https://api.github.com/repos/AxaFrance/react-oidc/pulls/${{ github.event.number }}/commits" | jq -r '.[-1].commit.message') + last_commit_message=$(curl -s "https://api.github.com/repos/AxaFrance/oidc-client/pulls/${{ github.event.number }}/commits" | jq -r '.[-1].commit.message') else last_commit_message=$(git log --format=%B -n 1) fi diff --git a/FAQ.md b/FAQ.md index 0f91b78f1..f94c86798 100644 --- a/FAQ.md +++ b/FAQ.md @@ -1,4 +1,3 @@ - # FAQ (Frequently Asked Questions) ## Condition to make silent signing work @@ -81,4 +80,4 @@ We think that @axa-fr/oidc-client is a good choice for the following reasons : />
@axa-fr/oidc-client is the simplest and cheapest. -

\ No newline at end of file +

diff --git a/packages/oidc-client-service-worker/src/types.ts b/packages/oidc-client-service-worker/src/types.ts index 4fbce2143..0775e3a8a 100644 --- a/packages/oidc-client-service-worker/src/types.ts +++ b/packages/oidc-client-service-worker/src/types.ts @@ -86,14 +86,14 @@ export type AccessTokenPayload = { } export type Tokens = { - issued_at: number; + issued_at: number | string; access_token: string; accessTokenPayload: AccessTokenPayload | null; id_token: null | string; idTokenPayload: IdTokenPayload; refresh_token?: string; expiresAt: number; - expires_in: number; + expires_in: number | string; }; export type Database = { diff --git a/packages/oidc-client-service-worker/src/utils/__tests__/testHelper.ts b/packages/oidc-client-service-worker/src/utils/__tests__/testHelper.ts index 37e11373b..97de3ae11 100644 --- a/packages/oidc-client-service-worker/src/utils/__tests__/testHelper.ts +++ b/packages/oidc-client-service-worker/src/utils/__tests__/testHelper.ts @@ -44,7 +44,7 @@ class TokenBuilder { return this; } - public WithNonExpiredToken(): TokenBuilder { + public withNonExpiredToken(): TokenBuilder { this.withExpiresAt(currentTimeUnixSeconds() + 60); this.withExpiresIn(currentTimeUnixSeconds() + 60); this.withIssuedAt(currentTimeUnixSeconds() - 60); @@ -56,12 +56,12 @@ class TokenBuilder { return this; } - public withIssuedAt(issued_at: number): TokenBuilder { + public withIssuedAt(issued_at: number | string): TokenBuilder { this.tokens.issued_at = issued_at; return this; } - public withExpiresIn(expires_in: number): TokenBuilder { + public withExpiresIn(expires_in: number | string): TokenBuilder { this.tokens.expires_in = expires_in; return this; } @@ -136,7 +136,7 @@ class OidcConfigBuilder { public withTestingDefault(): OidcConfigBuilder { this.oidcConfig.configurationName = 'test'; - this.oidcConfig.tokens = new TokenBuilder().WithNonExpiredToken().build(); + this.oidcConfig.tokens = new TokenBuilder().withNonExpiredToken().build(); this.oidcConfig.status = 'NOT_CONNECTED'; this.oidcConfig.state = 'state'; this.oidcConfig.codeVerifier = 'codeVerifier'; diff --git a/packages/oidc-client-service-worker/src/utils/__tests__/tokens.spec.ts b/packages/oidc-client-service-worker/src/utils/__tests__/tokens.spec.ts index e8b9d0de5..41435f4b2 100644 --- a/packages/oidc-client-service-worker/src/utils/__tests__/tokens.spec.ts +++ b/packages/oidc-client-service-worker/src/utils/__tests__/tokens.spec.ts @@ -21,7 +21,7 @@ describe('tokens', () => { }); it('can check non-expired token', () => { - const token = new TokenBuilder().WithNonExpiredToken().build(); + const token = new TokenBuilder().withNonExpiredToken().build(); expect(isTokensValid(token)).toBeTruthy(); }); @@ -53,7 +53,7 @@ describe('tokens', () => { describe('isTokensOidcValid', () => { it('can validate valid token', () => { const token = new TokenBuilder() - .WithNonExpiredToken() + .withNonExpiredToken() .withIdTokenPayload({ iss: oidcServerConfig.issuer, exp: 0, @@ -69,9 +69,9 @@ describe('tokens', () => { describe('_hideTokens', () => { it.each([ - { hideAccessToken: true, expectedAccessToken: 'ACCESS_TOKEN_SECURED_BY_OIDC_SERVICE_WORKER_test' }, - { hideAccessToken: false, expectedAccessToken: 'test_access_token' }, - ])('accesstoken will be hide $hideAccessToken result should be $expectedAccessToken', ({ hideAccessToken, expectedAccessToken }) => { + { hideAccessToken: true, expectedAccessToken: 'ACCESS_TOKEN_SECURED_BY_OIDC_SERVICE_WORKER_test', issued_at: "0", expires_in: "2" }, + { hideAccessToken: false, expectedAccessToken: 'test_access_token', issued_at: 0, expires_in: 2 }, + ])('accesstoken will be hide $hideAccessToken result should be $expectedAccessToken', ({ hideAccessToken, expectedAccessToken, issued_at, expires_in }) => { const token = new TokenBuilder() .withIdTokenPayload({ iss: oidcServerConfig.issuer, @@ -79,12 +79,15 @@ describe('tokens', () => { iat: 0, nonce: null, }) - .WithNonExpiredToken() + .withNonExpiredToken() .withAccessToken('test_access_token') + .withExpiresIn(expires_in) + .withIssuedAt(issued_at) .build(); const oidcConfiguration = new OidcConfigBuilder().withTestingDefault().withHideAccessToken(hideAccessToken).build(); const secureTokens = _hideTokens(token, oidcConfiguration, 'test'); expect(secureTokens.access_token).toBe(expectedAccessToken); + expect(typeof secureTokens.expiresAt).toBe("number"); }); }); }); diff --git a/packages/oidc-client-service-worker/src/utils/tokens.ts b/packages/oidc-client-service-worker/src/utils/tokens.ts index 75e5cb95f..8155d6b26 100644 --- a/packages/oidc-client-service-worker/src/utils/tokens.ts +++ b/packages/oidc-client-service-worker/src/utils/tokens.ts @@ -96,6 +96,8 @@ function _hideTokens(tokens: Tokens, currentDatabaseElement: OidcConfig, configu if (!tokens.issued_at) { const currentTimeUnixSecond = new Date().getTime() / 1000; tokens.issued_at = currentTimeUnixSecond; + } else if (typeof tokens.issued_at == "string") { + tokens.issued_at = parseInt(tokens.issued_at, 10); } const accessTokenPayload = extractTokenPayload(tokens.access_token); @@ -124,6 +126,8 @@ function _hideTokens(tokens: Tokens, currentDatabaseElement: OidcConfig, configu TOKEN.REFRESH_TOKEN + '_' + configurationName; } + const expireIn = typeof tokens.expires_in == "string" ? parseInt(tokens.expires_in, 10) : tokens.expires_in; + const idTokenExpiresAt = _idTokenPayload && _idTokenPayload.exp ? _idTokenPayload.exp @@ -131,7 +135,7 @@ function _hideTokens(tokens: Tokens, currentDatabaseElement: OidcConfig, configu const accessTokenExpiresAt = accessTokenPayload && accessTokenPayload.exp ? accessTokenPayload.exp - : tokens.issued_at + tokens.expires_in; + : tokens.issued_at + expireIn; let expiresAt: number; const tokenRenewMode = ( diff --git a/packages/oidc-client/src/parseTokens.spec.ts b/packages/oidc-client/src/parseTokens.spec.ts index 74bc76932..070bbeea6 100644 --- a/packages/oidc-client/src/parseTokens.spec.ts +++ b/packages/oidc-client/src/parseTokens.spec.ts @@ -1,6 +1,6 @@ import { describe, expect,it } from 'vitest'; -import {getValidTokenAsync, isTokensOidcValid} from "./parseTokens"; +import {getValidTokenAsync, isTokensOidcValid, parseOriginalTokens} from "./parseTokens"; describe('ParseTokens test Suite', () => { const currentTimeUnixSecond = new Date().getTime() / 1000; @@ -26,6 +26,40 @@ describe('ParseTokens test Suite', () => { }); + const id_token ="eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IjUwNWZkODljLTM4YzktNGI2Mi04ZjQ3LWI4MGQ0ZTNhYjYxNSJ9.eyJpc3MiOiJodHRwOlwvXC9sb2NhbGhvc3Q6ODA4MCIsInN1YiI6ImFkbWluIiwiYXVkIjoiM2FTbk5XUGxZQWQwOGVES3c1UUNpSWVMcWpIdHkxTTVzSGFzcDJDZWREcWYzbmJkZm8xUFo1cXhmbWoyaFhkUyIsImV4cCI6MTY5MDk4NzQ1NCwiYXV0aF90aW1lIjoxNjkwOTg2NTUxLCJpYXQiOjE2OTA5ODY1NTQsImFjciI6IjAiLCJhenAiOiIzYVNuTldQbFlBZDA4ZURLdzVRQ2lJZUxxakh0eTFNNXNIYXNwMkNlZERxZjNuYmRmbzFQWjVxeGZtajJoWGRTIiwicHJlZmVycmVkX3VzZXJuYW1lIjoiYWRtaW4iLCJzY29wZSI6Im9wZW5pZCBwcm9maWxlIGdyb3VwcyBvZmZsaW5lX2FjY2VzcyIsIm5iZiI6MTY5MDk4NjU1NCwianRpIjoiNjMiLCJub25jZSI6ImNpQkVVOTdaVmRWVSIsImdyb3VwcyI6WyJhZG1pbiJdLCJuYW1lIjoiQWRtaW5pc3RyYXRvciIsInVwZGF0ZWRfYXQiOjE2OTA5ODY1NDV9.2MUdtQR_QtzDY9BTMctG8C4uvg92DgMIUUoJed2cI7WTd5_VEPFW87esDQLw4snVdAJM1_Wf3wB88B2MXFDMCnMTNn0TMnzetRDiG3xlr2LL-geL5SNgwD0Y6RPK_aITjrC9uiQCTj3LPEENrBulNRZPURwaVon9WUVNuuBmMTKd7QKEuFN0zYDoRs0HnXo6WKnFy1rldLGh_JpA3PBUuXt4VMjfGQ7yYEuNn7MkFVDX6OnTffR8jTQp74hREvuRLFjYxfgfgu547X7yIcboOl81D0ZQlP-gfvBOeypZolRLScuqAA3fHBYvE0vCtOM6ObekfeeTDfms75csMLUuZtTR07x32xYC8vdoFsY0sRpMByTqlhsae9VX_rETJ7PIWEfruojzcj47WN9dG0K3pdPiJHEwZ1CKgZfU_cY0gtuAGaIcIjKL0txXCevaiIiIsrgSU_HTjNVybp4WHSAs3h6x0XLz4_91luCylsaoMQbwKOQNwAfr2L74jF6DOg-8DIPb-WClRQzaQtrkx_iv6FtqCB3ogFoZwi6xljdYUc2EHUmoAo-LXal-QAgUXGGzfFU2YOpxV3RyAbMGPm7PfkMVzDsDJwORJNhh38QQ6o88GgNnV28BT-d2G0n7okc0QC6o2IW0jpyCrI6v0hWOBUX2EqiJ5Wao-4LYZfCaRgU"; + const refresh_token ="DEsqDca7nDGSgT6tJPkCwbPy98B8VOC4AA55lOPs03G3hqhZ8WH08REBcwTZg1s0jZyVoA3iCXzm4PPJ096gjV7ZKYyN8vnFKw6P6KLV3tUI6mWFaSROoh1LipThFrkS"; + const access_token ="opqavdgHEYx8nhCdc3iByd1HD0jiYN30LevhJy4f5wIavINXKdh4lQ9C3kA49QF0OH0XeA02"; + describe.each([ + [{ + "access_token":access_token, + "token_type":"Bearer", + "expires_in":"900", // Here a string instead of a number + "refresh_token":refresh_token, + "id_token":id_token + }], + [{ + "access_token":access_token, + "token_type":"Bearer", + "expires_in":900, + "refresh_token":refresh_token, + "id_token":id_token + }], + [{ + "access_token":access_token, + "token_type":"Bearer", + "expires_in":900, + "expiresAt": 1609987454, // Here expiresAt that come from Service Worker + "refresh_token":refresh_token, + "id_token":id_token + }], + ])('getValidTokenAsync', (tokens) => { + it('should parseOriginalTokens', async () => { + // @ts-ignore + const result = parseOriginalTokens(tokens); + expect(typeof result.issuedAt).toEqual("number"); + }); + }); + const idTokenPayload = {iss: "toto", exp: currentTimeUnixSecond +900, iat: currentTimeUnixSecond -900, nonce: "nonce"}; const oidcServerConfiguration = {issuer:"toto"}; const idTokenPayloadExpired = {...idTokenPayload, exp: currentTimeUnixSecond-20}; @@ -42,7 +76,7 @@ describe('ParseTokens test Suite', () => { const oidc = { idTokenPayload, }; - const {isValid} = await isTokensOidcValid(oidc, nonce, oidcServerConfiguration); + const {isValid} = isTokensOidcValid(oidc, nonce, oidcServerConfiguration); expect(isValid).toEqual(expectIsValidToken); }); }); diff --git a/packages/oidc-client/src/parseTokens.ts b/packages/oidc-client/src/parseTokens.ts index c5ddd8ab9..2acba0385 100644 --- a/packages/oidc-client/src/parseTokens.ts +++ b/packages/oidc-client/src/parseTokens.ts @@ -51,10 +51,13 @@ export const setTokens = (tokens, oldTokens = null, tokenRenewMode: string):Toke return null; } let accessTokenPayload; + const expireIn = typeof tokens.expiresIn == "string" ? parseInt(tokens.expiresIn, 10) : tokens.expiresIn; if (!tokens.issuedAt) { const currentTimeUnixSecond = new Date().getTime() / 1000; tokens.issuedAt = currentTimeUnixSecond; + } else if (typeof tokens.issuedAt == "string") { + tokens.issuedAt = parseInt(tokens.issuedAt, 10); } if (tokens.accessTokenPayload !== undefined) { @@ -65,18 +68,23 @@ export const setTokens = (tokens, oldTokens = null, tokenRenewMode: string):Toke const _idTokenPayload = tokens.idTokenPayload ? tokens.idTokenPayload : extractTokenPayload(tokens.idToken); const idTokenExpireAt = (_idTokenPayload && _idTokenPayload.exp) ? _idTokenPayload.exp : Number.MAX_VALUE; - const accessTokenExpiresAt = (accessTokenPayload && accessTokenPayload.exp) ? accessTokenPayload.exp : tokens.issuedAt + tokens.expiresIn; + const accessTokenExpiresAt = (accessTokenPayload && accessTokenPayload.exp) ? accessTokenPayload.exp : tokens.issuedAt + expireIn; let expiresAt; - - if (tokenRenewMode === TokenRenewMode.access_token_invalid) { - expiresAt = accessTokenExpiresAt; - } else if (tokenRenewMode === TokenRenewMode.id_token_invalid) { - expiresAt = idTokenExpireAt; - } else { - expiresAt = idTokenExpireAt < accessTokenExpiresAt ? idTokenExpireAt : accessTokenExpiresAt; + if(tokens.expiresAt) + { + expiresAt = tokens.expiresAt; + } + else { + if (tokenRenewMode === TokenRenewMode.access_token_invalid) { + expiresAt = accessTokenExpiresAt; + } else if (tokenRenewMode === TokenRenewMode.id_token_invalid) { + expiresAt = idTokenExpireAt; + } else { + expiresAt = idTokenExpireAt < accessTokenExpiresAt ? idTokenExpireAt : accessTokenExpiresAt; + } } - + const newTokens = { ...tokens, idTokenPayload: _idTokenPayload, accessTokenPayload, expiresAt }; // When refresh_token is not rotated we reuse ald refresh_token if (oldTokens != null && 'refreshToken' in oldTokens && !('refreshToken' in tokens)) { From 9f986c6b576c50b9d87d94e2fc5af0c7521c7bdf Mon Sep 17 00:00:00 2001 From: GitHub Date: Thu, 3 Aug 2023 09:38:38 +0000 Subject: [PATCH 019/440] [skip ci] Update version package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/public/OidcServiceWorker.js | 5 ++++- packages/react-oidc/package.json | 2 +- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 398402a57..8dfcd4382 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.0.0", + "version": "7.0.1", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 3ebd70c4b..b500a0106 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.0.0", + "version": "7.0.1", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/public/OidcServiceWorker.js b/packages/oidc-client/public/OidcServiceWorker.js index 0d3e97871..82a329c80 100644 --- a/packages/oidc-client/public/OidcServiceWorker.js +++ b/packages/oidc-client/public/OidcServiceWorker.js @@ -158,6 +158,8 @@ function _hideTokens(tokens, currentDatabaseElement, configurationName) { if (!tokens.issued_at) { const currentTimeUnixSecond = (/* @__PURE__ */ new Date()).getTime() / 1e3; tokens.issued_at = currentTimeUnixSecond; + } else if (typeof tokens.issued_at == "string") { + tokens.issued_at = parseInt(tokens.issued_at, 10); } const accessTokenPayload = extractTokenPayload(tokens.access_token); const secureTokens = { @@ -181,8 +183,9 @@ function _hideTokens(tokens, currentDatabaseElement, configurationName) { if (tokens.refresh_token) { secureTokens.refresh_token = TOKEN.REFRESH_TOKEN + "_" + configurationName; } + const expireIn = typeof tokens.expires_in == "string" ? parseInt(tokens.expires_in, 10) : tokens.expires_in; const idTokenExpiresAt = _idTokenPayload && _idTokenPayload.exp ? _idTokenPayload.exp : Number.MAX_VALUE; - const accessTokenExpiresAt = accessTokenPayload && accessTokenPayload.exp ? accessTokenPayload.exp : tokens.issued_at + tokens.expires_in; + const accessTokenExpiresAt = accessTokenPayload && accessTokenPayload.exp ? accessTokenPayload.exp : tokens.issued_at + expireIn; let expiresAt; const tokenRenewMode = currentDatabaseElement.oidcConfiguration.token_renew_mode; if (tokenRenewMode === TokenRenewMode.access_token_invalid) { diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index c0015a3db..6522bdc8b 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.0.0", + "version": "7.0.1", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From ae8a60130b4dacfe7a73f6e2262ca1238a07a509 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Fri, 4 Aug 2023 14:12:41 +0200 Subject: [PATCH 020/440] feat(oidc): update service worker from version (#1121) (release) --- .github/workflows/npm-publish.yml | 13 +++++ .../src/OidcServiceWorker.ts | 3 ++ .../oidc-client-service-worker/src/version.ts | 1 + packages/oidc-client/README.md | 1 + packages/oidc-client/src/initWorker.ts | 54 +++++++++++-------- packages/oidc-client/src/login.ts | 4 +- packages/oidc-client/src/types.ts | 3 ++ packages/oidc-client/src/version.ts | 1 + packages/react-oidc/README.md | 1 + 9 files changed, 56 insertions(+), 25 deletions(-) create mode 100644 packages/oidc-client-service-worker/src/version.ts create mode 100644 packages/oidc-client/src/version.ts diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml index b0f6ad62c..46290a5e9 100644 --- a/.github/workflows/npm-publish.yml +++ b/.github/workflows/npm-publish.yml @@ -132,6 +132,13 @@ jobs: if: (github.ref == 'refs/heads/main' && steps.which_tag.outputs.tag == 'release') || steps.which_tag.outputs.tag == 'alpha' || steps.which_tag.outputs.tag == 'beta' run: pnpm version ${{ steps.tag.outputs.new_version }} working-directory: ./packages/oidc-client-service-worker + + - name: update version.ts ${{ steps.tag.outputs.new_version }} + if: (github.ref == 'refs/heads/main' && steps.which_tag.outputs.tag == 'release') || steps.which_tag.outputs.tag == 'alpha' || steps.which_tag.outputs.tag == 'beta' + run: | + echo "export default '${{ steps.tag.outputs.new_version }}';" > version.ts + working-directory: ./packages/oidc-client-service-worker/src + - name: pnpm ci run: pnpm i --frozen-lockfile @@ -154,6 +161,12 @@ jobs: cat package.json working-directory: ./packages/oidc-client + - name: update version.ts ${{ steps.tag.outputs.new_version }} + if: (github.ref == 'refs/heads/main' && steps.which_tag.outputs.tag == 'release') || steps.which_tag.outputs.tag == 'alpha' || steps.which_tag.outputs.tag == 'beta' + run: | + echo "export default '${{ steps.tag.outputs.new_version }}';" > version.ts + working-directory: ./packages/oidc-client/src + - name: pnpm ci run: pnpm i --frozen-lockfile working-directory: ./packages/oidc-client diff --git a/packages/oidc-client-service-worker/src/OidcServiceWorker.ts b/packages/oidc-client-service-worker/src/OidcServiceWorker.ts index e3777ef67..8eeda4ef5 100644 --- a/packages/oidc-client-service-worker/src/OidcServiceWorker.ts +++ b/packages/oidc-client-service-worker/src/OidcServiceWorker.ts @@ -1,4 +1,5 @@ import { acceptAnyDomainToken, scriptFilename, TOKEN } from './constants'; +import version from './version'; import { Database, MessageEventData, @@ -347,6 +348,7 @@ const handleMessage = (event: ExtendableMessageEvent) => { tokens: null, status: currentDatabase.status, configurationName, + version }); } else { const tokens = { @@ -370,6 +372,7 @@ const handleMessage = (event: ExtendableMessageEvent) => { tokens, status: currentDatabase.status, configurationName, + version }); } return; diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts new file mode 100644 index 000000000..b70e25dfa --- /dev/null +++ b/packages/oidc-client-service-worker/src/version.ts @@ -0,0 +1 @@ +export default "7.0.1"; \ No newline at end of file diff --git a/packages/oidc-client/README.md b/packages/oidc-client/README.md index 96fcb5471..34ad60a0f 100644 --- a/packages/oidc-client/README.md +++ b/packages/oidc-client/README.md @@ -159,6 +159,7 @@ const configuration = { refresh_time_before_tokens_expiration_in_second: Number, // default is 120 seconds service_worker_relative_url: String, service_worker_only: Boolean, // default false + service_worker_update_require_callback: (registration:any, stopKeepAlive:Function) => Promise, // callback called when service worker need to be updated, you can take the control of the update process service_worker_convert_all_requests_to_cors: Boolean, // force all requests that service worker upgrades to have 'cors' mode. This allows setting an authentication token on requests initiated by HTML parsing (e.g., img tags, download links, etc.). extras: StringMap | undefined, // ex: {'prompt': 'consent', 'access_type': 'offline'} list of key/value that is sent to the OIDC server (more info: https://github.com/openid/AppAuth-JS) token_request_extras: StringMap | undefined, // ex: {'prompt': 'consent', 'access_type': 'offline'} list of key/value that is sent to the OIDC server during token request (more info: https://github.com/openid/AppAuth-JS) diff --git a/packages/oidc-client/src/initWorker.ts b/packages/oidc-client/src/initWorker.ts index e38f718c8..537e3fd5c 100644 --- a/packages/oidc-client/src/initWorker.ts +++ b/packages/oidc-client/src/initWorker.ts @@ -1,6 +1,7 @@ import { parseOriginalTokens } from './parseTokens.js'; import timer from './timer.js'; import { OidcConfiguration } from './types.js'; +import codeVersion from './version.js'; export const getOperatingSystem = (navigator) => { const nVer = navigator.appVersion; @@ -107,16 +108,24 @@ export const sleepAsync = (milliseconds) => { return new Promise(resolve => timer.setTimeout(resolve, milliseconds)); }; +let keepAliveController ; const keepAlive = () => { try { const operatingSystem = getOperatingSystem(navigator); const minSleepSeconds = operatingSystem.os === 'Android' ? 240 : 150; - const promise = fetch(`/OidcKeepAliveServiceWorker.json?minSleepSeconds=${minSleepSeconds}`); + keepAliveController = new AbortController(); + const promise = fetch(`/OidcKeepAliveServiceWorker.json?minSleepSeconds=${minSleepSeconds}`, { signal: keepAliveController.signal }); promise.catch(error => { console.log(error); }); sleepAsync(minSleepSeconds * 1000).then(keepAlive); } catch (error) { console.log(error); } }; +const stopKeepAlive = () => { + if(keepAliveController) { + keepAliveController.abort(); + } +}; + const isServiceWorkerProxyActiveAsync = () => { return fetch('/OidcKeepAliveServiceWorker.json', { headers: { @@ -183,26 +192,7 @@ export const initWorkerAsync = async(serviceWorkerRelativeUrl, configurationName } catch (err) { return null; } - - const unregisterAsync = async () => { - return await registration.unregister(); - }; - - registration.addEventListener('updatefound', () => { - const newWorker = registration.installing; - newWorker.addEventListener('statechange', () => { - switch (newWorker.state) { - case 'installed': - if (navigator.serviceWorker.controller) { - registration.unregister().then(() => { - window.location.reload(); - }); - } - break; - } - }); - }); - + const clearAsync = async (status) => { return sendMessageAsync(registration)({ type: 'clear', data: { status }, configurationName }); }; @@ -219,6 +209,25 @@ export const initWorkerAsync = async(serviceWorkerRelativeUrl, configurationName }, configurationName, }); + + // @ts-ignore + const serviceWorkerVersion = result.version; + if(serviceWorkerVersion !== codeVersion) { + console.warn(`Service worker ${serviceWorkerVersion} version mismatch with js client version ${codeVersion}, unregistering and reloading`); + + if(oidcConfiguration.service_worker_update_require_callback) + { + await oidcConfiguration.service_worker_update_require_callback(registration, stopKeepAlive); + } else { + stopKeepAlive(); + await registration.update(); + const isSuccess = await registration.unregister(); + console.log(`Service worker unregistering ${isSuccess}`) + await sleepAsync(2000); + window.location.reload(); + } + } + // @ts-ignore return { tokens: parseOriginalTokens(result.tokens, null, oidcConfiguration.token_renew_mode), status: result.status }; }; @@ -244,7 +253,7 @@ export const initWorkerAsync = async(serviceWorkerRelativeUrl, configurationName sessionStorage['oidc.nonce'] = nonce.nonce; return sendMessageAsync(registration)({ type: 'setNonce', data: { nonce }, configurationName }); }; - const getNonceAsync = async () => { + const getNonceAsync = async () => { // @ts-ignore const result = await sendMessageAsync(registration)({ type: 'getNonce', data: null, configurationName }); // @ts-ignore @@ -310,7 +319,6 @@ export const initWorkerAsync = async(serviceWorkerRelativeUrl, configurationName getSessionStateAsync, setNonceAsync, getNonceAsync, - unregisterAsync, setLoginParams, getLoginParams, getStateAsync, diff --git a/packages/oidc-client/src/login.ts b/packages/oidc-client/src/login.ts index f738b1791..4e166b29c 100644 --- a/packages/oidc-client/src/login.ts +++ b/packages/oidc-client/src/login.ts @@ -43,9 +43,9 @@ export const defaultLoginAsync = (window, configurationName, configuration:OidcC let storage; if (serviceWorker) { serviceWorker.setLoginParams(configurationName, { callbackPath: url, extras: originExtras }); - serviceWorker.startKeepAliveServiceWorker(); await serviceWorker.initAsync(oidcServerConfiguration, 'loginAsync', configuration); await serviceWorker.setNonceAsync(nonce); + serviceWorker.startKeepAliveServiceWorker(); storage = serviceWorker; } else { const session = initSession(configurationName, configuration.storage ?? sessionStorage); @@ -88,12 +88,12 @@ export const loginCallbackAsync = (oidc) => async (isSilentSignin = false) => { let getLoginParams; let state; if (serviceWorker) { - serviceWorker.startKeepAliveServiceWorker(); await serviceWorker.initAsync(oidcServerConfiguration, 'loginCallbackAsync', configuration); await serviceWorker.setSessionStateAsync(sessionState); nonceData = await serviceWorker.getNonceAsync(); getLoginParams = serviceWorker.getLoginParams(oidc.configurationName); state = await serviceWorker.getStateAsync(); + serviceWorker.startKeepAliveServiceWorker(); storage = serviceWorker; } else { const session = initSession(oidc.configurationName, configuration.storage ?? sessionStorage); diff --git a/packages/oidc-client/src/types.ts b/packages/oidc-client/src/types.ts index 7ac7c58ea..47e061106 100644 --- a/packages/oidc-client/src/types.ts +++ b/packages/oidc-client/src/types.ts @@ -2,6 +2,8 @@ export type Fetch = typeof window.fetch; export type LogoutToken = 'access_token' | 'refresh_token'; +export type ServiceWorkerUpdateRequireCallback = (registration:any, stopKeepAlive:Function) => Promise; + export type OidcConfiguration = { client_id: string; redirect_uri: string; @@ -18,6 +20,7 @@ export type OidcConfiguration = { service_worker_relative_url?:string; service_worker_only?:boolean; service_worker_convert_all_requests_to_cors?:boolean; + service_worker_update_require_callback?:ServiceWorkerUpdateRequireCallback; extras?:StringMap; token_request_extras?:StringMap; storage?: Storage; diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts new file mode 100644 index 000000000..44ffa6af5 --- /dev/null +++ b/packages/oidc-client/src/version.ts @@ -0,0 +1 @@ +export default "7.0.1"; \ No newline at end of file diff --git a/packages/react-oidc/README.md b/packages/react-oidc/README.md index 3ee51d99b..f4ebc7081 100644 --- a/packages/react-oidc/README.md +++ b/packages/react-oidc/README.md @@ -174,6 +174,7 @@ const configuration = { refresh_time_before_tokens_expiration_in_second: Number, // default is 120 seconds service_worker_relative_url: String, service_worker_only: Boolean, // default false + service_worker_update_require_callback: (registration:any, stopKeepAlive:Function) => Promise, // callback called when service worker need to be updated, you can take the control of the update process service_worker_convert_all_requests_to_cors: Boolean, // force all requests that service worker upgrades to have 'cors' mode. This allows setting an authentication token on requests initiated by HTML parsing (e.g., img tags, download links, etc.). extras: StringMap | undefined, // ex: {'prompt': 'consent', 'access_type': 'offline'} list of key/value that is sent to the OIDC server (more info: https://github.com/openid/AppAuth-JS) token_request_extras: StringMap | undefined, // ex: {'prompt': 'consent', 'access_type': 'offline'} list of key/value that is sent to the OIDC server during token request (more info: https://github.com/openid/AppAuth-JS) From c74edeb0380c726fb861f499ba3811fa7317d343 Mon Sep 17 00:00:00 2001 From: GitHub Date: Fri, 4 Aug 2023 12:16:01 +0000 Subject: [PATCH 021/440] [skip ci] Update version package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/public/OidcServiceWorker.js | 7 +++++-- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 6 files changed, 10 insertions(+), 7 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 8dfcd4382..ba4b2422b 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.0.1", + "version": "7.1.0", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index b70e25dfa..e5d44bc30 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default "7.0.1"; \ No newline at end of file +export default '7.1.0'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index b500a0106..f9c809450 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.0.1", + "version": "7.1.0", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/public/OidcServiceWorker.js b/packages/oidc-client/public/OidcServiceWorker.js index 82a329c80..2d2a54661 100644 --- a/packages/oidc-client/public/OidcServiceWorker.js +++ b/packages/oidc-client/public/OidcServiceWorker.js @@ -12,6 +12,7 @@ const TokenRenewMode = { id_token_invalid: "id_token_invalid" }; const openidWellknownUrlEndWith = "/.well-known/openid-configuration"; +const version = "7.1.0"; function checkDomain(domains, endpoint) { if (!endpoint) { return; @@ -486,7 +487,8 @@ const handleMessage = (event) => { port.postMessage({ tokens: null, status: currentDatabase.status, - configurationName + configurationName, + version }); } else { const tokens = { @@ -504,7 +506,8 @@ const handleMessage = (event) => { port.postMessage({ tokens, status: currentDatabase.status, - configurationName + configurationName, + version }); } return; diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 44ffa6af5..e5d44bc30 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default "7.0.1"; \ No newline at end of file +export default '7.1.0'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 6522bdc8b..4efbfd581 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.0.1", + "version": "7.1.0", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 60ea58b266c4173e3a92b8637d9abd09cca0ea1a Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Fri, 4 Aug 2023 16:09:10 +0200 Subject: [PATCH 022/440] feat(oidc-service-worker): copy become manual (#1120) (release) --- examples/nextjs-demo/package.json | 3 +- examples/oidc-client-demo/package.json | 3 +- examples/react-oidc-demo/package.json | 3 +- .../public/OidcServiceWorker.js.map | 1 - packages/oidc-client/README.md | 11 +++++++ ...tall.mjs => copy-service-worker-files.mjs} | 13 +++++--- packages/oidc-client/package.json | 2 +- packages/react-oidc/README.md | 10 +++++++ ...tall.mjs => copy-service-worker-files.mjs} | 12 ++++---- packages/react-oidc/package.json | 2 +- readme.md | 22 ++++++++++++++ scripts/publish-changelog.js | 16 ---------- scripts/twitter.js | 30 ------------------- 13 files changed, 67 insertions(+), 61 deletions(-) delete mode 100644 examples/react-oidc-demo/public/OidcServiceWorker.js.map rename packages/oidc-client/bin/{post-install.mjs => copy-service-worker-files.mjs} (73%) rename packages/react-oidc/bin/{post-install.mjs => copy-service-worker-files.mjs} (71%) delete mode 100644 scripts/publish-changelog.js delete mode 100644 scripts/twitter.js diff --git a/examples/nextjs-demo/package.json b/examples/nextjs-demo/package.json index 4ba56d7f6..48f54b625 100644 --- a/examples/nextjs-demo/package.json +++ b/examples/nextjs-demo/package.json @@ -3,7 +3,8 @@ "scripts": { "dev": "next dev -p 3001", "build": "next build", - "start": "next start" + "start": "next start", + "postinstall": "node ./node_modules/@axa-fr/react-oidc/bin/copy-service-worker-files.mjs public" }, "dependencies": { "@axa-fr/react-oidc": "workspace:*", diff --git a/examples/oidc-client-demo/package.json b/examples/oidc-client-demo/package.json index b64e62557..582b02dfd 100644 --- a/examples/oidc-client-demo/package.json +++ b/examples/oidc-client-demo/package.json @@ -14,7 +14,8 @@ "start": "vite", "build": "vite build", "serve": "vite preview", - "clean": "rimraf dist" + "clean": "rimraf dist", + "postinstall": "node ./node_modules/@axa-fr/oidc-client/bin/copy-service-worker-files.mjs public" }, "browserslist": { "production": [ diff --git a/examples/react-oidc-demo/package.json b/examples/react-oidc-demo/package.json index 7f30f2314..65d4fab0a 100644 --- a/examples/react-oidc-demo/package.json +++ b/examples/react-oidc-demo/package.json @@ -14,7 +14,8 @@ "start": "vite", "build": "vite build", "serve": "vite preview", - "clean": "rimraf dist" + "clean": "rimraf dist", + "postinstall": "node ./node_modules/@axa-fr/react-oidc/bin/copy-service-worker-files.mjs public" }, "dependencies": { "@axa-fr/react-oidc":"workspace:*", diff --git a/examples/react-oidc-demo/public/OidcServiceWorker.js.map b/examples/react-oidc-demo/public/OidcServiceWorker.js.map deleted file mode 100644 index 07cfaecde..000000000 --- a/examples/react-oidc-demo/public/OidcServiceWorker.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"OidcServiceWorker.js","sources":["../src/constants.ts","../src/utils/domains.ts","../src/utils/strings.ts","../src/utils/tokens.ts","../src/utils/serializeHeaders.ts","../src/utils/sleep.ts","../src/utils/codeVerifier.ts","../src/OidcServiceWorker.ts"],"sourcesContent":["const scriptFilename = 'OidcTrustedDomains.js'; /* global trustedDomains */\r\nconst acceptAnyDomainToken = '*';\r\n\r\ntype TokenType = {\r\n readonly REFRESH_TOKEN: string;\r\n readonly ACCESS_TOKEN: string;\r\n readonly NONCE_TOKEN: string;\r\n readonly CODE_VERIFIER: string;\r\n};\r\n\r\nconst TOKEN: TokenType = {\r\n REFRESH_TOKEN: 'REFRESH_TOKEN_SECURED_BY_OIDC_SERVICE_WORKER',\r\n ACCESS_TOKEN: 'ACCESS_TOKEN_SECURED_BY_OIDC_SERVICE_WORKER',\r\n NONCE_TOKEN: 'NONCE_SECURED_BY_OIDC_SERVICE_WORKER',\r\n CODE_VERIFIER: 'CODE_VERIFIER_SECURED_BY_OIDC_SERVICE_WORKER',\r\n};\r\n\r\ntype TokenRenewModeType = {\r\n readonly access_token_or_id_token_invalid: string;\r\n readonly access_token_invalid: string;\r\n readonly id_token_invalid: string;\r\n};\r\n\r\nconst TokenRenewMode: TokenRenewModeType = {\r\n access_token_or_id_token_invalid: 'access_token_or_id_token_invalid',\r\n access_token_invalid: 'access_token_invalid',\r\n id_token_invalid: 'id_token_invalid',\r\n};\r\n\r\nconst openidWellknownUrlEndWith = '/.well-known/openid-configuration';\r\n\r\nexport { scriptFilename, acceptAnyDomainToken, TOKEN, TokenRenewMode, openidWellknownUrlEndWith };\r\n","import { DomainDetails, TrustedDomains } from './../types';\r\nimport {\r\n acceptAnyDomainToken,\r\n openidWellknownUrlEndWith,\r\n scriptFilename,\r\n} from '../constants';\r\nimport { Database, Domain, OidcConfig } from '../types';\r\n\r\nfunction checkDomain(domains: Domain[], endpoint: string) {\r\n if (!endpoint) {\r\n return;\r\n }\r\n\r\n const domain = domains.find((domain) => {\r\n let testable: RegExp;\r\n\r\n if (typeof domain === 'string') {\r\n testable = new RegExp(`^${domain}`);\r\n } else {\r\n testable = domain;\r\n }\r\n\r\n return testable.test?.(endpoint);\r\n });\r\n if (!domain) {\r\n throw new Error(\r\n 'Domain ' +\r\n endpoint +\r\n ' is not trusted, please add domain in ' +\r\n scriptFilename\r\n );\r\n }\r\n}\r\n\r\nexport const getDomains = (trustedDomain: Domain[] | DomainDetails, type: 'oidc' | 'accessToken') => {\r\n if(Array.isArray(trustedDomain)) {\r\n return trustedDomain;\r\n }\r\n\r\n return trustedDomain[`${type}Domains`] ?? trustedDomain.domains ?? [];\r\n}\r\n\r\nconst getCurrentDatabaseDomain = (\r\n database: Database,\r\n url: string,\r\n trustedDomains: TrustedDomains\r\n) => {\r\n if (url.endsWith(openidWellknownUrlEndWith)) {\r\n return null;\r\n }\r\n for (const [key, currentDatabase] of Object.entries(database)) {\r\n const oidcServerConfiguration = currentDatabase.oidcServerConfiguration;\r\n\r\n if (!oidcServerConfiguration) {\r\n continue;\r\n }\r\n\r\n if (\r\n oidcServerConfiguration.tokenEndpoint &&\r\n url === oidcServerConfiguration.tokenEndpoint\r\n ) {\r\n continue;\r\n }\r\n if (\r\n oidcServerConfiguration.revocationEndpoint &&\r\n url === oidcServerConfiguration.revocationEndpoint\r\n ) {\r\n continue;\r\n }\r\n const trustedDomain = trustedDomains == null ? [] : trustedDomains[key];\r\n\r\n const domains = getDomains(trustedDomain, 'accessToken');\r\n const domainsToSendTokens = oidcServerConfiguration.userInfoEndpoint\r\n ? [oidcServerConfiguration.userInfoEndpoint, ...domains]\r\n : [...domains];\r\n\r\n let hasToSendToken = false;\r\n if (domainsToSendTokens.find((f) => f === acceptAnyDomainToken)) {\r\n hasToSendToken = true;\r\n } else {\r\n for (let i = 0; i < domainsToSendTokens.length; i++) {\r\n let domain = domainsToSendTokens[i];\r\n\r\n if (typeof domain === 'string') {\r\n domain = new RegExp(`^${domain}`);\r\n }\r\n\r\n if (domain.test?.(url)) {\r\n hasToSendToken = true;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (hasToSendToken) {\r\n if (!currentDatabase.tokens) {\r\n return null;\r\n }\r\n return currentDatabase;\r\n }\r\n }\r\n return null;\r\n};\r\n\r\nexport { checkDomain, getCurrentDatabaseDomain };\r\n","/**\r\n * Count occurances of letter in string\r\n * @param str\r\n * @param find\r\n * @returns\r\n */\r\nexport function countLetter(str: string, find: string) {\r\n return str.split(find).length - 1;\r\n}\r\n","import { TOKEN, TokenRenewMode } from '../constants';\r\nimport { OidcConfig, OidcConfiguration, OidcServerConfiguration, Tokens } from '../types';\r\nimport { countLetter } from './strings';\r\n\r\nfunction parseJwt(token: string) {\r\n return JSON.parse(\r\n b64DecodeUnicode(token.split('.')[1].replace('-', '+').replace('_', '/'))\r\n );\r\n}\r\nfunction b64DecodeUnicode(str: string) {\r\n return decodeURIComponent(\r\n Array.prototype.map\r\n .call(\r\n atob(str),\r\n (c) => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)\r\n )\r\n .join('')\r\n );\r\n}\r\n\r\nfunction computeTimeLeft(\r\n refreshTimeBeforeTokensExpirationInSecond: number,\r\n expiresAt: number\r\n) {\r\n const currentTimeUnixSecond = new Date().getTime() / 1000;\r\n return Math.round(\r\n expiresAt -\r\n refreshTimeBeforeTokensExpirationInSecond -\r\n currentTimeUnixSecond\r\n );\r\n}\r\n\r\nfunction isTokensValid(tokens: Tokens | null) {\r\n if (!tokens) {\r\n return false;\r\n }\r\n return computeTimeLeft(0, tokens.expiresAt) > 0;\r\n}\r\n\r\nconst extractTokenPayload = (token?: string) => {\r\n try {\r\n if (!token) {\r\n return null;\r\n }\r\n if (countLetter(token, '.') === 2) {\r\n return parseJwt(token);\r\n } else {\r\n return null;\r\n }\r\n } catch (e) {\r\n console.warn(e);\r\n }\r\n return null;\r\n};\r\n\r\n// https://openid.net/specs/openid-connect-core-1_0.html#IDTokenValidation (excluding rules #1, #4, #5, #7, #8, #12, and #13 which did not apply).\r\n// https://github.com/openid/AppAuth-JS/issues/65\r\nconst isTokensOidcValid = (\r\n tokens: Tokens,\r\n nonce: string | null,\r\n oidcServerConfiguration: OidcServerConfiguration\r\n): { isValid: boolean; reason: string } => {\r\n if (tokens.idTokenPayload) {\r\n const idTokenPayload = tokens.idTokenPayload;\r\n // 2: The Issuer Identifier for the OpenID Provider (which is typically obtained during Discovery) MUST exactly match the value of the iss (issuer) Claim.\r\n if (oidcServerConfiguration.issuer !== idTokenPayload.iss) {\r\n return { isValid: false, reason: 'Issuer does not match' };\r\n }\r\n // 3: The Client MUST validate that the aud (audience) Claim contains its client_id value registered at the Issuer identified by the iss (issuer) Claim as an audience. The aud (audience) Claim MAY contain an array with more than one element. The ID Token MUST be rejected if the ID Token does not list the Client as a valid audience, or if it contains additional audiences not trusted by the Client.\r\n\r\n // 6: If the ID Token is received via direct communication between the Client and the Token Endpoint (which it is in this flow), the TLS server validation MAY be used to validate the issuer in place of checking the token signature. The Client MUST validate the signature of all other ID Tokens according to JWS [JWS] using the algorithm specified in the JWT alg Header Parameter. The Client MUST use the keys provided by the Issuer.\r\n\r\n // 9: The current time MUST be before the time represented by the exp Claim.\r\n const currentTimeUnixSecond = new Date().getTime() / 1000;\r\n if (idTokenPayload.exp && idTokenPayload.exp < currentTimeUnixSecond) {\r\n return { isValid: false, reason: 'Token expired' };\r\n }\r\n // 10: The iat Claim can be used to reject tokens that were issued too far away from the current time, limiting the amount of time that nonces need to be stored to prevent attacks. The acceptable range is Client specific.\r\n const timeInSevenDays = 60 * 60 * 24 * 7;\r\n if (\r\n idTokenPayload.iat &&\r\n idTokenPayload.iat + timeInSevenDays < currentTimeUnixSecond\r\n ) {\r\n return { isValid: false, reason: 'Token is used from too long time' };\r\n }\r\n // 11: If a nonce value was sent in the Authentication Request, a nonce Claim MUST be present and its value checked to verify that it is the same value as the one that was sent in the Authentication Request. The Client SHOULD check the nonce value for replay attacks. The precise method for detecting replay attacks is Client specific.\r\n if (nonce && idTokenPayload.nonce && idTokenPayload.nonce !== nonce) {\r\n return { isValid: false, reason: 'Nonce does not match' };\r\n }\r\n }\r\n return { isValid: true, reason: '' };\r\n};\r\n\r\nfunction _hideTokens(tokens: Tokens, currentDatabaseElement: OidcConfig, configurationName: string) {\r\n if (!tokens.issued_at) {\r\n const currentTimeUnixSecond = new Date().getTime() / 1000;\r\n tokens.issued_at = currentTimeUnixSecond;\r\n }\r\n\r\n const accessTokenPayload = extractTokenPayload(tokens.access_token);\r\n const secureTokens = {\r\n ...tokens,\r\n accessTokenPayload,\r\n };\r\n if (currentDatabaseElement.hideAccessToken) {\r\n secureTokens.access_token = TOKEN.ACCESS_TOKEN + '_' + configurationName;\r\n }\r\n tokens.accessTokenPayload = accessTokenPayload;\r\n\r\n let _idTokenPayload = null;\r\n if (tokens.id_token) {\r\n _idTokenPayload = extractTokenPayload(tokens.id_token);\r\n tokens.idTokenPayload = {..._idTokenPayload};\r\n if (_idTokenPayload.nonce && currentDatabaseElement.nonce != null) {\r\n const keyNonce =\r\n TOKEN.NONCE_TOKEN + '_' + currentDatabaseElement.configurationName;\r\n _idTokenPayload.nonce = keyNonce;\r\n }\r\n secureTokens.idTokenPayload = _idTokenPayload;\r\n }\r\n if (tokens.refresh_token) {\r\n secureTokens.refresh_token =\r\n TOKEN.REFRESH_TOKEN + '_' + configurationName;\r\n }\r\n\r\n const idTokenExpiresAt =\r\n _idTokenPayload && _idTokenPayload.exp\r\n ? _idTokenPayload.exp\r\n : Number.MAX_VALUE;\r\n const accessTokenExpiresAt =\r\n accessTokenPayload && accessTokenPayload.exp\r\n ? accessTokenPayload.exp\r\n : tokens.issued_at + tokens.expires_in;\r\n\r\n let expiresAt: number;\r\n const tokenRenewMode = (\r\n currentDatabaseElement.oidcConfiguration as OidcConfiguration\r\n ).token_renew_mode;\r\n if (tokenRenewMode === TokenRenewMode.access_token_invalid) {\r\n expiresAt = accessTokenExpiresAt;\r\n } else if (tokenRenewMode === TokenRenewMode.id_token_invalid) {\r\n expiresAt = idTokenExpiresAt;\r\n } else {\r\n expiresAt =\r\n idTokenExpiresAt < accessTokenExpiresAt\r\n ? idTokenExpiresAt\r\n : accessTokenExpiresAt;\r\n }\r\n secureTokens.expiresAt = expiresAt;\r\n\r\n tokens.expiresAt = expiresAt;\r\n const nonce = currentDatabaseElement.nonce\r\n ? currentDatabaseElement.nonce.nonce\r\n : null;\r\n const {isValid, reason} = isTokensOidcValid(\r\n tokens,\r\n nonce,\r\n currentDatabaseElement.oidcServerConfiguration as OidcServerConfiguration\r\n ); //TODO: Type assertion, could be null.\r\n if (!isValid) {\r\n throw Error(`Tokens are not OpenID valid, reason: ${reason}`);\r\n }\r\n\r\n // When refresh_token is not rotated we reuse ald refresh_token\r\n if (\r\n currentDatabaseElement.tokens != null &&\r\n 'refresh_token' in currentDatabaseElement.tokens &&\r\n !('refresh_token' in tokens)\r\n ) {\r\n const refreshToken = currentDatabaseElement.tokens.refresh_token;\r\n\r\n currentDatabaseElement.tokens = {\r\n ...tokens,\r\n refresh_token: refreshToken,\r\n };\r\n } else {\r\n currentDatabaseElement.tokens = tokens;\r\n }\r\n\r\n currentDatabaseElement.status = 'LOGGED_IN';\r\n return secureTokens;\r\n}\r\n\r\nfunction hideTokens(currentDatabaseElement: OidcConfig) {\r\n const configurationName = currentDatabaseElement.configurationName;\r\n return (response: Response) => {\r\n if (response.status !== 200) {\r\n return response;\r\n }\r\n return response.json().then((tokens: Tokens) => {\r\n const secureTokens = _hideTokens(tokens, currentDatabaseElement, configurationName);\r\n const body = JSON.stringify(secureTokens);\r\n return new Response(body, response);\r\n });\r\n };\r\n}\r\n\r\nexport {\r\n b64DecodeUnicode,\r\n computeTimeLeft,\r\n isTokensValid,\r\n extractTokenPayload,\r\n isTokensOidcValid,\r\n hideTokens,\r\n _hideTokens\r\n};\r\n","import { FetchHeaders } from '../types';\r\n\r\nfunction serializeHeaders(headers: Headers) {\r\n const headersObj: Record = {};\r\n for (const key of (headers as FetchHeaders).keys()) {\r\n if (headers.has(key)) {\r\n headersObj[key] = headers.get(key) as string;\r\n }\r\n }\r\n return headersObj;\r\n}\r\nexport {serializeHeaders};","const sleep = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms));\r\nexport { sleep };\r\n","\r\n\r\nexport function replaceCodeVerifier(codeVerifier:string, newCodeVerifier:string):string {\r\n const regex = /code_verifier=[A-Za-z0-9_-]+/i;\r\n return codeVerifier.replace(regex, `code_verifier=${newCodeVerifier}`);\r\n}","import { acceptAnyDomainToken, TOKEN, scriptFilename } from './constants';\r\nimport {\r\n TrustedDomains,\r\n Database,\r\n OidcConfig,\r\n OidcConfiguration,\r\n MessageEventData,\r\n // TrustedDomainsShowAccessToken,\r\n} from './types';\r\nimport {\r\n checkDomain,\r\n getCurrentDatabaseDomain,\r\n hideTokens,\r\n isTokensValid,\r\n serializeHeaders,\r\n sleep,\r\n getDomains,\r\n} from './utils';\r\nimport {replaceCodeVerifier} from \"./utils/codeVerifier\";\r\n\r\nconst _self = self as ServiceWorkerGlobalScope & typeof globalThis;\r\n\r\ndeclare let trustedDomains: TrustedDomains;\r\n\r\n_self.importScripts(scriptFilename);\r\n\r\nconst id = Math.round(new Date().getTime() / 1000).toString();\r\n\r\nconst keepAliveJsonFilename = 'OidcKeepAliveServiceWorker.json';\r\nconst handleInstall = (event: ExtendableEvent) => {\r\n console.log('[OidcServiceWorker] service worker installed ' + id);\r\n event.waitUntil(_self.skipWaiting());\r\n};\r\n\r\nconst handleActivate = (event: ExtendableEvent) => {\r\n console.log('[OidcServiceWorker] service worker activated ' + id);\r\n event.waitUntil(_self.clients.claim());\r\n};\r\n\r\nlet currentLoginCallbackConfigurationName: string | null = null;\r\nconst database: Database = {\r\n default: {\r\n configurationName: 'default',\r\n tokens: null,\r\n status: null,\r\n state: null,\r\n codeVerifier: null,\r\n nonce: null,\r\n oidcServerConfiguration: null,\r\n hideAccessToken: true,\r\n },\r\n};\r\n\r\nconst getCurrentDatabasesTokenEndpoint = (database: Database, url: string) => {\r\n const databases: OidcConfig[] = [];\r\n for (const [, value] of Object.entries(database)) {\r\n if (\r\n value.oidcServerConfiguration != null &&\r\n url.startsWith(value.oidcServerConfiguration.tokenEndpoint)\r\n ) {\r\n databases.push(value);\r\n } else if (\r\n value.oidcServerConfiguration != null &&\r\n value.oidcServerConfiguration.revocationEndpoint &&\r\n url.startsWith(value.oidcServerConfiguration.revocationEndpoint)\r\n ) {\r\n databases.push(value);\r\n }\r\n }\r\n return databases;\r\n};\r\n\r\nconst keepAliveAsync = async (event: FetchEvent) => {\r\n const originalRequest = event.request;\r\n const isFromVanilla = originalRequest.headers.has('oidc-vanilla');\r\n const init = { status: 200, statusText: 'oidc-service-worker' };\r\n const response = new Response('{}', init);\r\n if (!isFromVanilla) {\r\n const originalRequestUrl = new URL(originalRequest.url);\r\n const minSleepSeconds = Number(originalRequestUrl.searchParams.get('minSleepSeconds')) || 240;\r\n for (let i = 0; i < minSleepSeconds; i++) {\r\n await sleep(1000 + Math.floor(Math.random() * 1000));\r\n const cache = await caches.open('oidc_dummy_cache');\r\n await cache.put(event.request, response.clone());\r\n }\r\n }\r\n return response;\r\n};\r\n\r\nconst handleFetch = async (event: FetchEvent) => {\r\n const originalRequest = event.request;\r\n const url = originalRequest.url;\r\n if (originalRequest.url.includes(keepAliveJsonFilename)) {\r\n event.respondWith(keepAliveAsync(event));\r\n return;\r\n }\r\n\r\n const currentDatabaseForRequestAccessToken = getCurrentDatabaseDomain(\r\n database,\r\n originalRequest.url,\r\n trustedDomains\r\n );\r\n if (\r\n currentDatabaseForRequestAccessToken &&\r\n currentDatabaseForRequestAccessToken.tokens &&\r\n currentDatabaseForRequestAccessToken.tokens.access_token\r\n ) {\r\n while (\r\n currentDatabaseForRequestAccessToken.tokens &&\r\n !isTokensValid(currentDatabaseForRequestAccessToken.tokens)\r\n ) {\r\n await sleep(200);\r\n }\r\n const newRequest =\r\n originalRequest.mode == 'navigate'\r\n ? new Request(originalRequest, {\r\n headers: {\r\n ...serializeHeaders(originalRequest.headers),\r\n authorization:\r\n 'Bearer ' +\r\n currentDatabaseForRequestAccessToken.tokens.access_token,\r\n },\r\n })\r\n : new Request(originalRequest, {\r\n headers: {\r\n ...serializeHeaders(originalRequest.headers),\r\n authorization:\r\n 'Bearer ' +\r\n currentDatabaseForRequestAccessToken.tokens.access_token,\r\n },\r\n mode: (\r\n currentDatabaseForRequestAccessToken.oidcConfiguration as OidcConfiguration\r\n ).service_worker_convert_all_requests_to_cors\r\n ? 'cors'\r\n : originalRequest.mode,\r\n });\r\n\r\n //@ts-ignore -- TODO: review, waitUntil takes a promise, this returns a void\r\n event.waitUntil(event.respondWith(fetch(newRequest)));\r\n\r\n return;\r\n }\r\n\r\n if (event.request.method !== 'POST') {\r\n return;\r\n }\r\n\r\n let currentDatabase: OidcConfig | null = null;\r\n const currentDatabases = getCurrentDatabasesTokenEndpoint(\r\n database,\r\n originalRequest.url\r\n );\r\n const numberDatabase = currentDatabases.length;\r\n if (numberDatabase > 0) {\r\n const maPromesse = new Promise((resolve, reject) => {\r\n const clonedRequest = originalRequest.clone();\r\n const response = clonedRequest.text().then((actualBody) => {\r\n if (\r\n actualBody.includes(TOKEN.REFRESH_TOKEN) ||\r\n actualBody.includes(TOKEN.ACCESS_TOKEN)\r\n ) {\r\n let newBody = actualBody;\r\n for (let i = 0; i < numberDatabase; i++) {\r\n const currentDb = currentDatabases[i];\r\n\r\n if (currentDb && currentDb.tokens != null) {\r\n const keyRefreshToken =\r\n TOKEN.REFRESH_TOKEN + '_' + currentDb.configurationName;\r\n if (actualBody.includes(keyRefreshToken)) {\r\n newBody = newBody.replace(\r\n keyRefreshToken,\r\n encodeURIComponent(currentDb.tokens.refresh_token as string)\r\n );\r\n currentDatabase = currentDb;\r\n break;\r\n }\r\n const keyAccessToken =\r\n TOKEN.ACCESS_TOKEN + '_' + currentDb.configurationName;\r\n if (actualBody.includes(keyAccessToken)) {\r\n newBody = newBody.replace(\r\n keyAccessToken,\r\n encodeURIComponent(currentDb.tokens.access_token)\r\n );\r\n currentDatabase = currentDb;\r\n break;\r\n }\r\n }\r\n }\r\n const fetchPromise = fetch(originalRequest, {\r\n body: newBody,\r\n method: clonedRequest.method,\r\n headers: {\r\n ...serializeHeaders(originalRequest.headers),\r\n },\r\n mode: clonedRequest.mode,\r\n cache: clonedRequest.cache,\r\n redirect: clonedRequest.redirect,\r\n referrer: clonedRequest.referrer,\r\n credentials: clonedRequest.credentials,\r\n integrity: clonedRequest.integrity,\r\n });\r\n\r\n if (\r\n currentDatabase &&\r\n currentDatabase.oidcServerConfiguration != null &&\r\n currentDatabase.oidcServerConfiguration.revocationEndpoint &&\r\n url.startsWith(\r\n currentDatabase.oidcServerConfiguration.revocationEndpoint\r\n )\r\n ) {\r\n return fetchPromise.then(async (response) => {\r\n const text = await response.text();\r\n return new Response(text, response);\r\n });\r\n }\r\n return fetchPromise.then(hideTokens(currentDatabase as OidcConfig)); //todo type assertion to OidcConfig but could be null, NEEDS REVIEW\r\n } else if (\r\n actualBody.includes('code_verifier=') &&\r\n currentLoginCallbackConfigurationName\r\n ) {\r\n currentDatabase = database[currentLoginCallbackConfigurationName];\r\n currentLoginCallbackConfigurationName = null;\r\n let newBody = actualBody;\r\n if (currentDatabase && currentDatabase.codeVerifier != null) {\r\n newBody = replaceCodeVerifier(newBody, currentDatabase.codeVerifier);\r\n }\r\n\r\n return fetch(originalRequest, {\r\n body: newBody,\r\n method: clonedRequest.method,\r\n headers: {\r\n ...serializeHeaders(originalRequest.headers),\r\n },\r\n mode: clonedRequest.mode,\r\n cache: clonedRequest.cache,\r\n redirect: clonedRequest.redirect,\r\n referrer: clonedRequest.referrer,\r\n credentials: clonedRequest.credentials,\r\n integrity: clonedRequest.integrity,\r\n }).then(hideTokens(currentDatabase));\r\n }\r\n return undefined;\r\n });\r\n response\r\n .then((r) => {\r\n if (r !== undefined) {\r\n resolve(r);\r\n } else {\r\n console.log('success undefined');\r\n reject(new Error('Response is undefined inside a success'));\r\n }\r\n })\r\n .catch((err) => {\r\n if (err !== undefined) {\r\n reject(err);\r\n } else {\r\n console.log('error undefined');\r\n reject(new Error('Response is undefined inside a error'));\r\n }\r\n });\r\n });\r\n\r\n //@ts-ignore -- TODO: review, waitUntil takes a promise, this returns a void\r\n event.waitUntil(event.respondWith(maPromesse));\r\n }\r\n};\r\n\r\ntype TrustedDomainsShowAccessToken = {\r\n [key: string]: boolean\r\n}\r\n\r\nconst trustedDomainsShowAccessToken: TrustedDomainsShowAccessToken = {};\r\n\r\nconst handleMessage = (event: ExtendableMessageEvent) => {\r\n const port = event.ports[0];\r\n const data = event.data as MessageEventData;\r\n const configurationName = data.configurationName;\r\n let currentDatabase = database[configurationName];\r\n if(trustedDomains== null){\r\n trustedDomains = {};\r\n }\r\n if (!currentDatabase) {\r\n \r\n if (trustedDomainsShowAccessToken[configurationName] === undefined) {\r\n let trustedDomain = trustedDomains[configurationName];\r\n trustedDomainsShowAccessToken[configurationName] = Array.isArray(trustedDomain) ? false : trustedDomain.showAccessToken;\r\n }\r\n database[configurationName] = {\r\n tokens: null,\r\n state: null,\r\n codeVerifier: null,\r\n oidcServerConfiguration: null,\r\n oidcConfiguration: undefined,\r\n nonce: null,\r\n status: null,\r\n configurationName,\r\n hideAccessToken: !trustedDomainsShowAccessToken[configurationName],\r\n };\r\n currentDatabase = database[configurationName];\r\n \r\n if (!trustedDomains[configurationName]) {\r\n trustedDomains[configurationName] = [];\r\n }\r\n }\r\n\r\n switch (data.type) {\r\n case 'clear':\r\n currentDatabase.tokens = null;\r\n currentDatabase.state = null;\r\n currentDatabase.codeVerifier = null;\r\n currentDatabase.status = data.data.status;\r\n port.postMessage({ configurationName });\r\n return;\r\n case 'init': {\r\n const oidcServerConfiguration = data.data.oidcServerConfiguration;\r\n let trustedDomain = trustedDomains[configurationName];\r\n const domains = getDomains(trustedDomain, 'oidc');\r\n if (!domains.find((f) => f === acceptAnyDomainToken)) {\r\n [\r\n oidcServerConfiguration.tokenEndpoint,\r\n oidcServerConfiguration.revocationEndpoint,\r\n oidcServerConfiguration.userInfoEndpoint,\r\n oidcServerConfiguration.issuer,\r\n ].forEach((url) => {\r\n checkDomain(domains, url);\r\n });\r\n }\r\n currentDatabase.oidcServerConfiguration = oidcServerConfiguration;\r\n currentDatabase.oidcConfiguration = data.data.oidcConfiguration;\r\n const where = data.data.where;\r\n if (\r\n where === 'loginCallbackAsync' ||\r\n where === 'tryKeepExistingSessionAsync'\r\n ) {\r\n currentLoginCallbackConfigurationName = configurationName;\r\n } else {\r\n currentLoginCallbackConfigurationName = null;\r\n }\r\n\r\n if (!currentDatabase.tokens) {\r\n port.postMessage({\r\n tokens: null,\r\n status: currentDatabase.status,\r\n configurationName,\r\n });\r\n } else {\r\n const tokens = {\r\n ...currentDatabase.tokens,\r\n };\r\n if(currentDatabase.hideAccessToken) {\r\n tokens.access_token = TOKEN.ACCESS_TOKEN + '_' + configurationName;\r\n }\r\n if (tokens.refresh_token) {\r\n tokens.refresh_token = TOKEN.REFRESH_TOKEN + '_' + configurationName;\r\n }\r\n if (\r\n tokens.idTokenPayload &&\r\n tokens.idTokenPayload.nonce &&\r\n currentDatabase.nonce != null\r\n ) {\r\n tokens.idTokenPayload.nonce =\r\n TOKEN.NONCE_TOKEN + '_' + configurationName;\r\n }\r\n port.postMessage({\r\n tokens,\r\n status: currentDatabase.status,\r\n configurationName,\r\n });\r\n }\r\n return;\r\n }\r\n case 'setState':\r\n currentDatabase.state = data.data.state;\r\n port.postMessage({ configurationName });\r\n return;\r\n case 'getState': {\r\n const state = currentDatabase.state;\r\n port.postMessage({ configurationName, state });\r\n return;\r\n }\r\n case 'setCodeVerifier':\r\n currentDatabase.codeVerifier = data.data.codeVerifier;\r\n port.postMessage({ configurationName });\r\n return;\r\n case 'getCodeVerifier': {\r\n port.postMessage({\r\n configurationName,\r\n codeVerifier: currentDatabase.codeVerifier != null ? TOKEN.CODE_VERIFIER + '_' + configurationName : null,\r\n });\r\n return;\r\n }\r\n case 'setSessionState':\r\n currentDatabase.sessionState = data.data.sessionState;\r\n port.postMessage({ configurationName });\r\n return;\r\n case 'getSessionState': {\r\n const sessionState = currentDatabase.sessionState;\r\n port.postMessage({ configurationName, sessionState });\r\n return;\r\n }\r\n case 'setNonce': {\r\n let nonce = data.data.nonce;\r\n if (nonce) {\r\n currentDatabase.nonce = nonce;\r\n }\r\n port.postMessage({configurationName});\r\n return;\r\n }\r\n case 'getNonce': {\r\n const keyNonce = TOKEN.NONCE_TOKEN + '_' + configurationName;\r\n const nonce = currentDatabase.nonce ? keyNonce : null;\r\n port.postMessage({configurationName, nonce});\r\n return;\r\n }\r\n default:\r\n currentDatabase.items = { ...data.data };\r\n port.postMessage({ configurationName });\r\n }\r\n};\r\n\r\n_self.addEventListener('install', handleInstall);\r\n_self.addEventListener('activate', handleActivate);\r\n_self.addEventListener('fetch', handleFetch);\r\n_self.addEventListener('message', handleMessage);\r\n"],"names":["domain","database","trustedDomains","response"],"mappings":"AAAA,MAAM,iBAAiB;AACvB,MAAM,uBAAuB;AAS7B,MAAM,QAAmB;AAAA,EACvB,eAAe;AAAA,EACf,cAAc;AAAA,EACd,aAAa;AAAA,EACb,eAAe;AACjB;AAQA,MAAM,iBAAqC;AAAA,EACzC,kCAAkC;AAAA,EAClC,sBAAsB;AAAA,EACtB,kBAAkB;AACpB;AAEA,MAAM,4BAA4B;ACrBlC,SAAS,YAAY,SAAmB,UAAkB;AACxD,MAAI,CAAC,UAAU;AACb;AAAA,EACF;AAEA,QAAM,SAAS,QAAQ,KAAK,CAACA,YAAW;ADb1C;ACcQ,QAAA;AAEA,QAAA,OAAOA,YAAW,UAAU;AAC9B,iBAAW,IAAI,OAAO,IAAIA,OAAM,EAAE;AAAA,IAAA,OAC7B;AACMA,iBAAAA;AAAAA,IACb;AAEO,YAAA,cAAS,SAAT,kCAAgB;AAAA,EAAQ,CAChC;AACD,MAAI,CAAC,QAAQ;AACX,UAAM,IAAI;AAAA,MACR,YACE,WACA,2CACA;AAAA,IAAA;AAAA,EAEN;AACF;AAEa,MAAA,aAAa,CAAC,eAAyC,SAAiC;AAChG,MAAA,MAAM,QAAQ,aAAa,GAAG;AACxB,WAAA;AAAA,EACT;AAEA,SAAO,cAAc,GAAG,IAAI,SAAS,KAAK,cAAc,WAAW;AACrE;AAEA,MAAM,2BAA2B,CAC/BC,WACA,KACAC,oBACG;AD9CL;AC+CM,MAAA,IAAI,SAAS,yBAAyB,GAAG;AACpC,WAAA;AAAA,EACT;AACA,aAAW,CAAC,KAAK,eAAe,KAAK,OAAO,QAAoBD,SAAQ,GAAG;AACzE,UAAM,0BAA0B,gBAAgB;AAEhD,QAAI,CAAC,yBAAyB;AAC5B;AAAA,IACF;AAEA,QACE,wBAAwB,iBACxB,QAAQ,wBAAwB,eAChC;AACA;AAAA,IACF;AACA,QACE,wBAAwB,sBACxB,QAAQ,wBAAwB,oBAChC;AACA;AAAA,IACF;AACA,UAAM,gBAAgBC,mBAAkB,OAAO,CAAA,IAAKA,gBAAe,GAAG;AAEhE,UAAA,UAAU,WAAW,eAAe,aAAa;AACjD,UAAA,sBAAsB,wBAAwB,mBAChD,CAAC,wBAAwB,kBAAkB,GAAG,OAAO,IACrD,CAAC,GAAG,OAAO;AAEf,QAAI,iBAAiB;AACrB,QAAI,oBAAoB,KAAK,CAAC,MAAM,MAAM,oBAAoB,GAAG;AAC9C,uBAAA;AAAA,IAAA,OACZ;AACL,eAAS,IAAI,GAAG,IAAI,oBAAoB,QAAQ,KAAK;AAC/C,YAAA,SAAS,oBAAoB,CAAC;AAE9B,YAAA,OAAO,WAAW,UAAU;AAC9B,mBAAS,IAAI,OAAO,IAAI,MAAM,EAAE;AAAA,QAClC;AAEI,aAAA,YAAO,SAAP,gCAAc,MAAM;AACL,2BAAA;AACjB;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,QAAI,gBAAgB;AACd,UAAA,CAAC,gBAAgB,QAAQ;AACpB,eAAA;AAAA,MACT;AACO,aAAA;AAAA,IACT;AAAA,EACF;AACO,SAAA;AACT;AChGgB,SAAA,YAAY,KAAa,MAAc;AACrD,SAAO,IAAI,MAAM,IAAI,EAAE,SAAS;AAClC;ACJA,SAAS,SAAS,OAAe;AAC/B,SAAO,KAAK;AAAA,IACV,iBAAiB,MAAM,MAAM,GAAG,EAAE,CAAC,EAAE,QAAQ,KAAK,GAAG,EAAE,QAAQ,KAAK,GAAG,CAAC;AAAA,EAAA;AAE5E;AACA,SAAS,iBAAiB,KAAa;AAC9B,SAAA;AAAA,IACL,MAAM,UAAU,IACb;AAAA,MACC,KAAK,GAAG;AAAA,MACR,CAAC,MAAM,OAAO,OAAO,EAAE,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE;AAAA,IAAA,EAE5D,KAAK,EAAE;AAAA,EAAA;AAEd;AAEA,SAAS,gBACP,2CACA,WACA;AACA,QAAM,yBAAwB,oBAAI,KAAK,GAAE,YAAY;AACrD,SAAO,KAAK;AAAA,IACV,YACE,4CACA;AAAA,EAAA;AAEN;AAEA,SAAS,cAAc,QAAuB;AAC5C,MAAI,CAAC,QAAQ;AACJ,WAAA;AAAA,EACT;AACA,SAAO,gBAAgB,GAAG,OAAO,SAAS,IAAI;AAChD;AAEA,MAAM,sBAAsB,CAAC,UAAmB;AAC1C,MAAA;AACF,QAAI,CAAC,OAAO;AACH,aAAA;AAAA,IACT;AACA,QAAI,YAAY,OAAO,GAAG,MAAM,GAAG;AACjC,aAAO,SAAS,KAAK;AAAA,IAAA,OAChB;AACE,aAAA;AAAA,IACT;AAAA,WACO,GAAG;AACV,YAAQ,KAAK,CAAC;AAAA,EAChB;AACO,SAAA;AACT;AAIA,MAAM,oBAAoB,CACxB,QACA,OACA,4BACyC;AACzC,MAAI,OAAO,gBAAgB;AACzB,UAAM,iBAAiB,OAAO;AAE1B,QAAA,wBAAwB,WAAW,eAAe,KAAK;AACzD,aAAO,EAAE,SAAS,OAAO,QAAQ,wBAAwB;AAAA,IAC3D;AAMA,UAAM,yBAAwB,oBAAI,KAAK,GAAE,YAAY;AACrD,QAAI,eAAe,OAAO,eAAe,MAAM,uBAAuB;AACpE,aAAO,EAAE,SAAS,OAAO,QAAQ,gBAAgB;AAAA,IACnD;AAEM,UAAA,kBAAkB,KAAK,KAAK,KAAK;AACvC,QACE,eAAe,OACf,eAAe,MAAM,kBAAkB,uBACvC;AACA,aAAO,EAAE,SAAS,OAAO,QAAQ,mCAAmC;AAAA,IACtE;AAEA,QAAI,SAAS,eAAe,SAAS,eAAe,UAAU,OAAO;AACnE,aAAO,EAAE,SAAS,OAAO,QAAQ,uBAAuB;AAAA,IAC1D;AAAA,EACF;AACA,SAAO,EAAE,SAAS,MAAM,QAAQ,GAAG;AACrC;AAEA,SAAS,YAAY,QAAgB,wBAAoC,mBAA2B;AAC9F,MAAA,CAAC,OAAO,WAAW;AACrB,UAAM,yBAAwB,oBAAI,KAAK,GAAE,YAAY;AACrD,WAAO,YAAY;AAAA,EACrB;AAEM,QAAA,qBAAqB,oBAAoB,OAAO,YAAY;AAClE,QAAM,eAAe;AAAA,IACnB,GAAG;AAAA,IACH;AAAA,EAAA;AAEF,MAAI,uBAAuB,iBAAiB;AAC7B,iBAAA,eAAe,MAAM,eAAe,MAAM;AAAA,EACzD;AACA,SAAO,qBAAqB;AAE5B,MAAI,kBAAkB;AACtB,MAAI,OAAO,UAAU;AACD,sBAAA,oBAAoB,OAAO,QAAQ;AAC9C,WAAA,iBAAiB,EAAC,GAAG;AAC5B,QAAI,gBAAgB,SAAS,uBAAuB,SAAS,MAAM;AACjE,YAAM,WACF,MAAM,cAAc,MAAM,uBAAuB;AACrD,sBAAgB,QAAQ;AAAA,IAC1B;AACA,iBAAa,iBAAiB;AAAA,EAChC;AACA,MAAI,OAAO,eAAe;AACX,iBAAA,gBACT,MAAM,gBAAgB,MAAM;AAAA,EAClC;AAEA,QAAM,mBACF,mBAAmB,gBAAgB,MAC7B,gBAAgB,MAChB,OAAO;AACX,QAAA,uBACF,sBAAsB,mBAAmB,MACnC,mBAAmB,MACnB,OAAO,YAAY,OAAO;AAEhC,MAAA;AACE,QAAA,iBACF,uBAAuB,kBACzB;AACE,MAAA,mBAAmB,eAAe,sBAAsB;AAC9C,gBAAA;AAAA,EAAA,WACH,mBAAmB,eAAe,kBAAkB;AACjD,gBAAA;AAAA,EAAA,OACP;AAED,gBAAA,mBAAmB,uBACb,mBACA;AAAA,EACZ;AACA,eAAa,YAAY;AAEzB,SAAO,YAAY;AACnB,QAAM,QAAQ,uBAAuB,QAC/B,uBAAuB,MAAM,QAC7B;AACA,QAAA,EAAC,SAAS,OAAA,IAAU;AAAA,IACtB;AAAA,IACA;AAAA,IACA,uBAAuB;AAAA,EAAA;AAE3B,MAAI,CAAC,SAAS;AACN,UAAA,MAAM,wCAAwC,MAAM,EAAE;AAAA,EAC9D;AAII,MAAA,uBAAuB,UAAU,QACjC,mBAAmB,uBAAuB,UAC1C,EAAE,mBAAmB,SACvB;AACM,UAAA,eAAe,uBAAuB,OAAO;AAEnD,2BAAuB,SAAS;AAAA,MAC9B,GAAG;AAAA,MACH,eAAe;AAAA,IAAA;AAAA,EACjB,OACK;AACL,2BAAuB,SAAS;AAAA,EAClC;AAEA,yBAAuB,SAAS;AACzB,SAAA;AACT;AAEA,SAAS,WAAW,wBAAoC;AACtD,QAAM,oBAAoB,uBAAuB;AACjD,SAAO,CAAC,aAAuB;AACzB,QAAA,SAAS,WAAW,KAAK;AACpB,aAAA;AAAA,IACT;AACA,WAAO,SAAS,KAAA,EAAO,KAAe,CAAC,WAAmB;AACxD,YAAM,eAAe,YAAY,QAAQ,wBAAwB,iBAAiB;AAC5E,YAAA,OAAO,KAAK,UAAU,YAAY;AACjC,aAAA,IAAI,SAAS,MAAM,QAAQ;AAAA,IAAA,CACnC;AAAA,EAAA;AAEL;ACjMA,SAAS,iBAAiB,SAAkB;AAC1C,QAAM,aAAqC,CAAA;AAChC,aAAA,OAAQ,QAAyB,QAAQ;AAC9C,QAAA,QAAQ,IAAI,GAAG,GAAG;AACpB,iBAAW,GAAG,IAAI,QAAQ,IAAI,GAAG;AAAA,IACnC;AAAA,EACF;AACO,SAAA;AACT;ACVA,MAAM,QAAQ,CAAC,OAAe,IAAI,QAAQ,CAAC,YAAY,WAAW,SAAS,EAAE,CAAC;ACE9D,SAAA,oBAAoB,cAAqB,iBAA+B;AACpF,QAAM,QAAQ;AACd,SAAO,aAAa,QAAQ,OAAO,iBAAiB,eAAe,EAAE;AACzE;ACeA,MAAM,QAAQ;AAId,MAAM,cAAc,cAAc;AAElC,MAAM,KAAK,KAAK,OAAU,oBAAA,QAAO,YAAY,GAAI,EAAE;AAEnD,MAAM,wBAAwB;AAC9B,MAAM,gBAAgB,CAAC,UAA2B;AACxC,UAAA,IAAI,kDAAkD,EAAE;AAC1D,QAAA,UAAU,MAAM,YAAa,CAAA;AACrC;AAEA,MAAM,iBAAiB,CAAC,UAA2B;AACzC,UAAA,IAAI,kDAAkD,EAAE;AAChE,QAAM,UAAU,MAAM,QAAQ,MAAO,CAAA;AACvC;AAEA,IAAI,wCAAuD;AAC3D,MAAM,WAAqB;AAAA,EACzB,SAAS;AAAA,IACP,mBAAmB;AAAA,IACnB,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,cAAc;AAAA,IACd,OAAO;AAAA,IACP,yBAAyB;AAAA,IACzB,iBAAiB;AAAA,EACnB;AACF;AAEA,MAAM,mCAAmC,CAACD,WAAoB,QAAgB;AAC5E,QAAM,YAA0B,CAAA;AAChC,aAAW,CAAG,EAAA,KAAK,KAAK,OAAO,QAAoBA,SAAQ,GAAG;AAE1D,QAAA,MAAM,2BAA2B,QACjC,IAAI,WAAW,MAAM,wBAAwB,aAAa,GAC1D;AACA,gBAAU,KAAK,KAAK;AAAA,IAEpB,WAAA,MAAM,2BAA2B,QACjC,MAAM,wBAAwB,sBAC9B,IAAI,WAAW,MAAM,wBAAwB,kBAAkB,GAC/D;AACA,gBAAU,KAAK,KAAK;AAAA,IACtB;AAAA,EACF;AACO,SAAA;AACT;AAEA,MAAM,iBAAiB,OAAO,UAAsB;AAClD,QAAM,kBAAkB,MAAM;AAC9B,QAAM,gBAAgB,gBAAgB,QAAQ,IAAI,cAAc;AAChE,QAAM,OAAO,EAAE,QAAQ,KAAK,YAAY,sBAAsB;AAC9D,QAAM,WAAW,IAAI,SAAS,MAAM,IAAI;AACxC,MAAI,CAAC,eAAe;AAClB,UAAM,qBAAqB,IAAI,IAAI,gBAAgB,GAAG;AACtD,UAAM,kBAAkB,OAAO,mBAAmB,aAAa,IAAI,iBAAiB,CAAC,KAAK;AAC1F,aAAS,IAAI,GAAG,IAAI,iBAAiB,KAAK;AAClC,YAAA,MAAM,MAAO,KAAK,MAAM,KAAK,OAAO,IAAI,GAAI,CAAC;AACnD,YAAM,QAAQ,MAAM,OAAO,KAAK,kBAAkB;AAClD,YAAM,MAAM,IAAI,MAAM,SAAS,SAAS,OAAO;AAAA,IACjD;AAAA,EACF;AACO,SAAA;AACT;AAEA,MAAM,cAAc,OAAO,UAAsB;AAC/C,QAAM,kBAAkB,MAAM;AAC9B,QAAM,MAAM,gBAAgB;AAC5B,MAAI,gBAAgB,IAAI,SAAS,qBAAqB,GAAG;AACjD,UAAA,YAAY,eAAe,KAAK,CAAC;AACvC;AAAA,EACF;AAEA,QAAM,uCAAuC;AAAA,IAC3C;AAAA,IACA,gBAAgB;AAAA,IAChB;AAAA,EAAA;AAEF,MACE,wCACA,qCAAqC,UACrC,qCAAqC,OAAO,cAC5C;AACA,WACE,qCAAqC,UACrC,CAAC,cAAc,qCAAqC,MAAM,GAC1D;AACA,YAAM,MAAM,GAAG;AAAA,IACjB;AACA,UAAM,aACJ,gBAAgB,QAAQ,aACpB,IAAI,QAAQ,iBAAiB;AAAA,MAC3B,SAAS;AAAA,QACP,GAAG,iBAAiB,gBAAgB,OAAO;AAAA,QAC3C,eACE,YACA,qCAAqC,OAAO;AAAA,MAChD;AAAA,IAAA,CACD,IACD,IAAI,QAAQ,iBAAiB;AAAA,MAC3B,SAAS;AAAA,QACP,GAAG,iBAAiB,gBAAgB,OAAO;AAAA,QAC3C,eACE,YACA,qCAAqC,OAAO;AAAA,MAChD;AAAA,MACA,MACE,qCAAqC,kBACrC,8CACE,SACA,gBAAgB;AAAA,IAAA,CACrB;AAGP,UAAM,UAAU,MAAM,YAAY,MAAM,UAAU,CAAC,CAAC;AAEpD;AAAA,EACF;AAEI,MAAA,MAAM,QAAQ,WAAW,QAAQ;AACnC;AAAA,EACF;AAEA,MAAI,kBAAqC;AACzC,QAAM,mBAAmB;AAAA,IACvB;AAAA,IACA,gBAAgB;AAAA,EAAA;AAElB,QAAM,iBAAiB,iBAAiB;AACxC,MAAI,iBAAiB,GAAG;AACtB,UAAM,aAAa,IAAI,QAAkB,CAAC,SAAS,WAAW;AACtD,YAAA,gBAAgB,gBAAgB;AACtC,YAAM,WAAW,cAAc,KAAO,EAAA,KAAK,CAAC,eAAe;AAEvD,YAAA,WAAW,SAAS,MAAM,aAAa,KACvC,WAAW,SAAS,MAAM,YAAY,GACtC;AACA,cAAI,UAAU;AACd,mBAAS,IAAI,GAAG,IAAI,gBAAgB,KAAK;AACjC,kBAAA,YAAY,iBAAiB,CAAC;AAEhC,gBAAA,aAAa,UAAU,UAAU,MAAM;AACzC,oBAAM,kBACJ,MAAM,gBAAgB,MAAM,UAAU;AACpC,kBAAA,WAAW,SAAS,eAAe,GAAG;AACxC,0BAAU,QAAQ;AAAA,kBAChB;AAAA,kBACA,mBAAmB,UAAU,OAAO,aAAuB;AAAA,gBAAA;AAE3C,kCAAA;AAClB;AAAA,cACF;AACA,oBAAM,iBACJ,MAAM,eAAe,MAAM,UAAU;AACnC,kBAAA,WAAW,SAAS,cAAc,GAAG;AACvC,0BAAU,QAAQ;AAAA,kBAChB;AAAA,kBACA,mBAAmB,UAAU,OAAO,YAAY;AAAA,gBAAA;AAEhC,kCAAA;AAClB;AAAA,cACF;AAAA,YACF;AAAA,UACF;AACM,gBAAA,eAAe,MAAM,iBAAiB;AAAA,YAC1C,MAAM;AAAA,YACN,QAAQ,cAAc;AAAA,YACtB,SAAS;AAAA,cACP,GAAG,iBAAiB,gBAAgB,OAAO;AAAA,YAC7C;AAAA,YACA,MAAM,cAAc;AAAA,YACpB,OAAO,cAAc;AAAA,YACrB,UAAU,cAAc;AAAA,YACxB,UAAU,cAAc;AAAA,YACxB,aAAa,cAAc;AAAA,YAC3B,WAAW,cAAc;AAAA,UAAA,CAC1B;AAED,cACE,mBACA,gBAAgB,2BAA2B,QAC3C,gBAAgB,wBAAwB,sBACxC,IAAI;AAAA,YACF,gBAAgB,wBAAwB;AAAA,UAAA,GAE1C;AACO,mBAAA,aAAa,KAAK,OAAOE,cAAa;AACrC,oBAAA,OAAO,MAAMA,UAAS;AACrB,qBAAA,IAAI,SAAS,MAAMA,SAAQ;AAAA,YAAA,CACnC;AAAA,UACH;AACA,iBAAO,aAAa,KAAK,WAAW,eAA6B,CAAC;AAAA,QAElE,WAAA,WAAW,SAAS,gBAAgB,KACpC,uCACA;AACA,4BAAkB,SAAS,qCAAqC;AACxB,kDAAA;AACxC,cAAI,UAAU;AACV,cAAA,mBAAmB,gBAAgB,gBAAgB,MAAM;AACjD,sBAAA,oBAAoB,SAAS,gBAAgB,YAAY;AAAA,UACrE;AAEA,iBAAO,MAAM,iBAAiB;AAAA,YAC5B,MAAM;AAAA,YACN,QAAQ,cAAc;AAAA,YACtB,SAAS;AAAA,cACP,GAAG,iBAAiB,gBAAgB,OAAO;AAAA,YAC7C;AAAA,YACA,MAAM,cAAc;AAAA,YACpB,OAAO,cAAc;AAAA,YACrB,UAAU,cAAc;AAAA,YACxB,UAAU,cAAc;AAAA,YACxB,aAAa,cAAc;AAAA,YAC3B,WAAW,cAAc;AAAA,UAC1B,CAAA,EAAE,KAAK,WAAW,eAAe,CAAC;AAAA,QACrC;AACO,eAAA;AAAA,MAAA,CACR;AAEE,eAAA,KAAK,CAAC,MAAM;AACX,YAAI,MAAM,QAAW;AACnB,kBAAQ,CAAC;AAAA,QAAA,OACJ;AACL,kBAAQ,IAAI,mBAAmB;AACxB,iBAAA,IAAI,MAAM,wCAAwC,CAAC;AAAA,QAC5D;AAAA,MAAA,CACD,EACA,MAAM,CAAC,QAAQ;AACd,YAAI,QAAQ,QAAW;AACrB,iBAAO,GAAG;AAAA,QAAA,OACL;AACL,kBAAQ,IAAI,iBAAiB;AACtB,iBAAA,IAAI,MAAM,sCAAsC,CAAC;AAAA,QAC1D;AAAA,MAAA,CACD;AAAA,IAAA,CACJ;AAGD,UAAM,UAAU,MAAM,YAAY,UAAU,CAAC;AAAA,EAC/C;AACF;AAMA,MAAM,gCAA+D,CAAA;AAErE,MAAM,gBAAgB,CAAC,UAAkC;AACjD,QAAA,OAAO,MAAM,MAAM,CAAC;AAC1B,QAAM,OAAO,MAAM;AACnB,QAAM,oBAAoB,KAAK;AAC3B,MAAA,kBAAkB,SAAS,iBAAiB;AAChD,MAAG,kBAAiB,MAAK;AACvB,qBAAiB,CAAA;AAAA,EACnB;AACA,MAAI,CAAC,iBAAiB;AAEhB,QAAA,8BAA8B,iBAAiB,MAAM,QAAW;AAC9D,UAAA,gBAAgB,eAAe,iBAAiB;AACpD,oCAA8B,iBAAiB,IAAI,MAAM,QAAQ,aAAa,IAAI,QAAQ,cAAc;AAAA,IAC1G;AACA,aAAS,iBAAiB,IAAI;AAAA,MAC5B,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,cAAc;AAAA,MACd,yBAAyB;AAAA,MACzB,mBAAmB;AAAA,MACnB,OAAO;AAAA,MACP,QAAQ;AAAA,MACR;AAAA,MACA,iBAAiB,CAAC,8BAA8B,iBAAiB;AAAA,IAAA;AAEnE,sBAAkB,SAAS,iBAAiB;AAExC,QAAA,CAAC,eAAe,iBAAiB,GAAG;AACvB,qBAAA,iBAAiB,IAAI;IACtC;AAAA,EACF;AAEA,UAAQ,KAAK,MAAM;AAAA,IACjB,KAAK;AACH,sBAAgB,SAAS;AACzB,sBAAgB,QAAQ;AACxB,sBAAgB,eAAe;AACf,sBAAA,SAAS,KAAK,KAAK;AAC9B,WAAA,YAAY,EAAE,kBAAA,CAAmB;AACtC;AAAA,IACF,KAAK,QAAQ;AACL,YAAA,0BAA0B,KAAK,KAAK;AACtC,UAAA,gBAAgB,eAAe,iBAAiB;AAC9C,YAAA,UAAU,WAAW,eAAe,MAAM;AAChD,UAAI,CAAC,QAAQ,KAAK,CAAC,MAAM,MAAM,oBAAoB,GAAG;AACpD;AAAA,UACE,wBAAwB;AAAA,UACxB,wBAAwB;AAAA,UACxB,wBAAwB;AAAA,UACxB,wBAAwB;AAAA,QAAA,EACxB,QAAQ,CAAC,QAAQ;AACjB,sBAAY,SAAS,GAAG;AAAA,QAAA,CACzB;AAAA,MACH;AACF,sBAAgB,0BAA0B;AACxB,sBAAA,oBAAoB,KAAK,KAAK;AACxC,YAAA,QAAQ,KAAK,KAAK;AAEtB,UAAA,UAAU,wBACV,UAAU,+BACV;AACwC,gDAAA;AAAA,MAAA,OACnC;AACmC,gDAAA;AAAA,MAC1C;AAEI,UAAA,CAAC,gBAAgB,QAAQ;AAC3B,aAAK,YAAY;AAAA,UACf,QAAQ;AAAA,UACR,QAAQ,gBAAgB;AAAA,UACxB;AAAA,QAAA,CACD;AAAA,MAAA,OACI;AACL,cAAM,SAAS;AAAA,UACb,GAAG,gBAAgB;AAAA,QAAA;AAErB,YAAG,gBAAgB,iBAAiB;AAC3B,iBAAA,eAAe,MAAM,eAAe,MAAM;AAAA,QACnD;AACA,YAAI,OAAO,eAAe;AACjB,iBAAA,gBAAgB,MAAM,gBAAgB,MAAM;AAAA,QACrD;AACA,YACE,OAAO,kBACP,OAAO,eAAe,SACtB,gBAAgB,SAAS,MACzB;AACA,iBAAO,eAAe,QACpB,MAAM,cAAc,MAAM;AAAA,QAC9B;AACA,aAAK,YAAY;AAAA,UACf;AAAA,UACA,QAAQ,gBAAgB;AAAA,UACxB;AAAA,QAAA,CACD;AAAA,MACH;AACA;AAAA,IACF;AAAA,IACA,KAAK;AACa,sBAAA,QAAQ,KAAK,KAAK;AAC7B,WAAA,YAAY,EAAE,kBAAA,CAAmB;AACtC;AAAA,IACF,KAAK,YAAY;AACf,YAAM,QAAQ,gBAAgB;AAC9B,WAAK,YAAY,EAAE,mBAAmB,MAAO,CAAA;AAC7C;AAAA,IACF;AAAA,IACA,KAAK;AACa,sBAAA,eAAe,KAAK,KAAK;AACpC,WAAA,YAAY,EAAE,kBAAA,CAAmB;AACtC;AAAA,IACF,KAAK,mBAAmB;AACtB,WAAK,YAAY;AAAA,QACf;AAAA,QACA,cAAc,gBAAgB,gBAAgB,OAAO,MAAM,gBAAgB,MAAM,oBAAoB;AAAA,MAAA,CACtG;AACD;AAAA,IACF;AAAA,IACA,KAAK;AACa,sBAAA,eAAe,KAAK,KAAK;AACpC,WAAA,YAAY,EAAE,kBAAA,CAAmB;AACtC;AAAA,IACF,KAAK,mBAAmB;AACtB,YAAM,eAAe,gBAAgB;AACrC,WAAK,YAAY,EAAE,mBAAmB,aAAc,CAAA;AACpD;AAAA,IACF;AAAA,IACA,KAAK,YAAY;AACX,UAAA,QAAQ,KAAK,KAAK;AACtB,UAAI,OAAO;AACT,wBAAgB,QAAQ;AAAA,MAC1B;AACK,WAAA,YAAY,EAAC,kBAAA,CAAkB;AACpC;AAAA,IACF;AAAA,IACA,KAAK,YAAY;AACT,YAAA,WAAW,MAAM,cAAc,MAAM;AACrC,YAAA,QAAQ,gBAAgB,QAAQ,WAAW;AACjD,WAAK,YAAY,EAAC,mBAAmB,MAAM,CAAA;AAC3C;AAAA,IACF;AAAA,IACA;AACE,sBAAgB,QAAQ,EAAE,GAAG,KAAK,KAAK;AAClC,WAAA,YAAY,EAAE,kBAAA,CAAmB;AAAA,EAC1C;AACF;AAEA,MAAM,iBAAiB,WAAW,aAAa;AAC/C,MAAM,iBAAiB,YAAY,cAAc;AACjD,MAAM,iBAAiB,SAAS,WAAW;AAC3C,MAAM,iBAAiB,WAAW,aAAa;"} \ No newline at end of file diff --git a/packages/oidc-client/README.md b/packages/oidc-client/README.md index 34ad60a0f..266ada49e 100644 --- a/packages/oidc-client/README.md +++ b/packages/oidc-client/README.md @@ -42,11 +42,22 @@ The service worker catch **access_token** and **refresh_token** that will never ```sh npm install @axa-fr/oidc-client --save +# To install or update OidcServiceWorker.js file, you can run +node .\node_modules\@axa-fr\react-oidc\bin\copy-service-worker-files.mjs + # If you have a "public" folder, the 2 files will be created : # ./public/OidcServiceWorker.js <-- will be updated at each "npm install" # ./public/OidcTrustedDomains.js <-- won't be updated if already exist ``` +WARNING : If you use Service Worker mode, the OidcServiceWorker.js file should always be up to date with the version of the library. You may setup a postinstall script in your package.json file to update it at each npm install. For example : +```sh + "scripts": { + ... + "postinstall": "node .\\node_modules\\@axa-fr\\oidc-client\\bin\\copy-service-worker-files.mjs public" + }, +``` + If you need a very secure mode where refresh_token and access_token will be hide behind a service worker that will proxify requests. The only file you should edit is "OidcTrustedDomains.js". diff --git a/packages/oidc-client/bin/post-install.mjs b/packages/oidc-client/bin/copy-service-worker-files.mjs similarity index 73% rename from packages/oidc-client/bin/post-install.mjs rename to packages/oidc-client/bin/copy-service-worker-files.mjs index ce0c6bc88..512482ba8 100644 --- a/packages/oidc-client/bin/post-install.mjs +++ b/packages/oidc-client/bin/copy-service-worker-files.mjs @@ -1,5 +1,6 @@ import path from 'path'; import fs from 'fs'; +import { fileURLToPath } from 'url'; try { @@ -28,11 +29,15 @@ try { const fileExists = (path) => { return !!fs.existsSync(path); }; + + const initPath = process.cwd(); - const initPath = process.env.INIT_CWD; - - const srcDir = '../oidc-client-service-worker/dist/'; - const destinationDir = path.join(initPath, 'public'); + + const __dirname = path.dirname(fileURLToPath(import.meta.url)); + const srcDir = path.join(__dirname, "..", 'node_modules', '@axa-fr' ,'oidc-client-service-worker', 'dist') ; + + const destinationFolder = process.argv.length >= 3 ? process.argv[2] : 'public'; + const destinationDir = path.join(initPath, destinationFolder); const files = [ { diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index f9c809450..f50cb974a 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -50,7 +50,7 @@ "build": "tsc && vite build", "test": "vitest --root . --coverage", "prepare": "pnpm run clean && pnpm run copy-service-worker && pnpm run build", - "postinstall": "node ./bin/post-install.mjs" + "postinstall": "echo 'WARNING keep sink OidcServiceWorker.js version file'" }, "license": "MIT", "publishConfig": { diff --git a/packages/react-oidc/README.md b/packages/react-oidc/README.md index f4ebc7081..d5042779f 100644 --- a/packages/react-oidc/README.md +++ b/packages/react-oidc/README.md @@ -53,11 +53,21 @@ The service worker catch **access_token** and **refresh_token** that will never ```sh npm install @axa-fr/react-oidc --save +# To install or update OidcServiceWorker.js file, you can run +node .\node_modules\@axa-fr\react-oidc\bin\copy-service-worker-files.mjs + # If you have a "public" folder, the 2 files will be created : # ./public/OidcServiceWorker.js <-- will be updated at each "npm install" # ./public/OidcTrustedDomains.js <-- won't be updated if already exist ``` +WARNING : If you use Service Worker mode, the OidcServiceWorker.js file should always be up to date with the version of the library. You may setup a postinstall script in your package.json file to update it at each npm install. For example : +```sh + "scripts": { + ... + "postinstall": "node .\\node_modules\\@axa-fr\\oidc-client\\bin\\copy-service-worker-files.mjs public" + }, +``` If you need a very secure mode where refresh_token and access_token will be hide behind a service worker that will proxify requests. The only file you should edit is "OidcTrustedDomains.js". diff --git a/packages/react-oidc/bin/post-install.mjs b/packages/react-oidc/bin/copy-service-worker-files.mjs similarity index 71% rename from packages/react-oidc/bin/post-install.mjs rename to packages/react-oidc/bin/copy-service-worker-files.mjs index 67c64c9db..9a77e40b5 100644 --- a/packages/react-oidc/bin/post-install.mjs +++ b/packages/react-oidc/bin/copy-service-worker-files.mjs @@ -1,5 +1,6 @@ -import path from 'path'; +import path from 'path'; import fs from 'fs'; +import { fileURLToPath } from 'url'; try { @@ -29,10 +30,11 @@ try { return !!fs.existsSync(path); }; - const initPath = process.env.INIT_CWD; - - const srcDir = '../oidc-client-service-worker/dist/'; - const destinationDir = path.join(initPath, 'public'); + const initPath = process.cwd(); + const __dirname = path.dirname(fileURLToPath(import.meta.url)); + const srcDir = path.join(__dirname, "..", 'node_modules', '@axa-fr' ,'oidc-client-service-worker', 'dist') ; + const destinationFolder = process.argv.length >= 3 ? process.argv[2] : 'public'; + const destinationDir = path.join(initPath, destinationFolder); const files = [ { diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 4efbfd581..3983b35e4 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -35,7 +35,7 @@ "serve": "vite preview", "test": "vitest --root . --coverage", "clean": "rimraf dist", - "postinstall": "node ./bin/post-install.mjs", + "postinstall": "echo 'WARNING keep sink OidcServiceWorker.js version file'", "prepare": "pnpm run clean && pnpm run copy-service-worker && pnpm run build", "lint": "eslint src" }, diff --git a/readme.md b/readme.md index 5c84f6103..18a01a3bf 100644 --- a/readme.md +++ b/readme.md @@ -71,11 +71,22 @@ Works perfectly well with: ```sh npm install @axa-fr/oidc-client --save +# To install or update OidcServiceWorker.js file, you can run +node .\node_modules\@axa-fr\oidc-client\bin\copy-service-worker-files.mjs public + # If you have a "public" folder, the 2 files will be created : # ./public/OidcServiceWorker.js <-- will be updated at each "npm install" # ./public/OidcTrustedDomains.js <-- won't be updated if already exist ``` +WARNING : If you use Service Worker mode, the OidcServiceWorker.js file should always be up to date with the version of the library. You may setup a postinstall script in your package.json file to update it at each npm install. For example : +```sh + "scripts": { + ... + "postinstall": "node .\\node_modules\\@axa-fr\\oidc-client\\bin\\copy-service-worker-files.mjs public" + }, +``` + More documentation : - [`@axa-fr/oidc-client`](./packages/oidc-client#readme) @@ -85,11 +96,22 @@ More documentation : ```sh npm install @axa-fr/react-oidc --save +# To install or update OidcServiceWorker.js file, you can run +node .\node_modules\@axa-fr\react-oidc\bin\copy-service-worker-files.mjs public + # If you have a "public" folder, the 2 files will be created : # ./public/OidcServiceWorker.js <-- will be updated at each "npm install" # ./public/OidcTrustedDomains.js <-- won't be updated if already exist ``` +WARNING : If you use Service Worker mode, the OidcServiceWorker.js file should always be up to date with the version of the library. You may setup a postinstall script in your package.json file to update it at each npm install. For example : +```sh + "scripts": { + ... + "postinstall": "node .\\node_modules\\@axa-fr\\oidc-client\\bin\\copy-service-worker-files.mjs public" + }, +``` + More documentation : - [`@axa-fr/react-oidc`](./packages/react#readme) diff --git a/scripts/publish-changelog.js b/scripts/publish-changelog.js deleted file mode 100644 index bee28d60e..000000000 --- a/scripts/publish-changelog.js +++ /dev/null @@ -1,16 +0,0 @@ -const fs = require('fs-extra'); -const VERSION = require('../packages/react/package.json').version; - -try { - const execSync = require('child_process').execSync; - child = execSync( - `npm run changelog && git add . && git commit -m "docs(changelog) update to new ${VERSION}" && git push` - ); - console.log('error', child.error); - console.log('stdout ', child.stdout); - console.log('stderr ', child.stderr); - - console.log('success!'); -} catch (err) { - console.error(err); -} diff --git a/scripts/twitter.js b/scripts/twitter.js deleted file mode 100644 index d53a261c6..000000000 --- a/scripts/twitter.js +++ /dev/null @@ -1,30 +0,0 @@ -const Twit = require("twit"); // eslint-disable-line - -/* should be ran with "node twitter consumer_key consumer_secret access_token access_token_secret" - in this order -*/ -const argv = process.argv; - -const T = new Twit({ - consumer_key: argv[2], - consumer_secret: argv[3], - access_token: argv[4], - access_token_secret: argv[5], - timeout_ms: 60 * 1000, - strictSSL: true -}); - -const json = require("../packages/context/package.json"); - -const message = `Hey a new version (${ - json.version -}) of the @axa-fr/react-oidc is available on @github and @npm! -check out the new changelog https://github.com/AxaGuilDEv/react-oidc/blob/master/CHANGELOG.md`; - -T.post("statuses/update", { status: message }, err => { - if (!err) { - console.log("Greate job"); // eslint-disable-line - } else { - console.error(err); - } -}); From 3713dd65a6be6ff4a42b1507cd94e904445efb00 Mon Sep 17 00:00:00 2001 From: GitHub Date: Fri, 4 Aug 2023 14:12:48 +0000 Subject: [PATCH 023/440] [skip ci] Update version package.json --- .../nextjs-demo/public/OidcTrustedDomains.js | 26 +++++++++++++++++++ .../oidc-client-service-worker/package.json | 2 +- .../oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 6 files changed, 31 insertions(+), 5 deletions(-) create mode 100644 examples/nextjs-demo/public/OidcTrustedDomains.js diff --git a/examples/nextjs-demo/public/OidcTrustedDomains.js b/examples/nextjs-demo/public/OidcTrustedDomains.js new file mode 100644 index 000000000..1aea5cd1a --- /dev/null +++ b/examples/nextjs-demo/public/OidcTrustedDomains.js @@ -0,0 +1,26 @@ +// Add bellow trusted domains, access tokens will automatically injected to be send to +// trusted domain can also be a path like https://www.myapi.com/users, +// then all subroute like https://www.myapi.com/useers/1 will be authorized to send access_token to. + +// Domains used by OIDC server must be also declared here +// eslint-disable-next-line @typescript-eslint/no-unused-vars +const trustedDomains = { + default: ['https://demo.duendesoftware.com', 'https://kdhttps.auth0.com'], + config_classic: ['https://demo.duendesoftware.com'], + config_without_silent_login: ['https://demo.duendesoftware.com'], + config_without_refresh_token: ['https://demo.duendesoftware.com'], + config_without_refresh_token_silent_login: ['https://demo.duendesoftware.com'], + config_google: ['https://oauth2.googleapis.com', 'https://openidconnect.googleapis.com'], + config_with_hash: ['https://demo.duendesoftware.com'], +}; + +// Service worker will continue to give access token to the JavaScript client +// Ideal to hide refresh token from client JavaScript, but to retrieve access_token for some +// scenarios which require it. For example, to send it via websocket connection. +trustedDomains.config_show_access_token = { domains: ['https://demo.duendesoftware.com'], showAccessToken: true }; + +// This example defines domains used by OIDC server separately from domains to which access tokens will be injected. +trustedDomains.config_separate_oidc_access_token_domains = { + oidcDomains: ['https://demo.duendesoftware.com'], + accessTokenDomains: ['https://myapi'], +}; diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index ba4b2422b..79faf39d6 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.1.0", + "version": "7.2.0", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index e5d44bc30..94b704628 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.1.0'; +export default '7.2.0'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index f50cb974a..f18191a4c 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.1.0", + "version": "7.2.0", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index e5d44bc30..94b704628 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.1.0'; +export default '7.2.0'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 3983b35e4..fbfc943ba 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.1.0", + "version": "7.2.0", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From faa0da2235239a0b12e82a070b3f6e2c30572bfa Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Fri, 4 Aug 2023 16:13:56 +0200 Subject: [PATCH 024/440] fix(readme): some path was broken --- packages/oidc-client/bin/copy-service-worker-files.mjs | 1 - packages/react-oidc/README.md | 2 +- readme.md | 4 ++-- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/packages/oidc-client/bin/copy-service-worker-files.mjs b/packages/oidc-client/bin/copy-service-worker-files.mjs index 512482ba8..205e27715 100644 --- a/packages/oidc-client/bin/copy-service-worker-files.mjs +++ b/packages/oidc-client/bin/copy-service-worker-files.mjs @@ -32,7 +32,6 @@ try { const initPath = process.cwd(); - const __dirname = path.dirname(fileURLToPath(import.meta.url)); const srcDir = path.join(__dirname, "..", 'node_modules', '@axa-fr' ,'oidc-client-service-worker', 'dist') ; diff --git a/packages/react-oidc/README.md b/packages/react-oidc/README.md index d5042779f..505014cd4 100644 --- a/packages/react-oidc/README.md +++ b/packages/react-oidc/README.md @@ -65,7 +65,7 @@ WARNING : If you use Service Worker mode, the OidcServiceWorker.js file should a ```sh "scripts": { ... - "postinstall": "node .\\node_modules\\@axa-fr\\oidc-client\\bin\\copy-service-worker-files.mjs public" + "postinstall": "node .\\node_modules\\@axa-fr\\react-oidc\\bin\\copy-service-worker-files.mjs public" }, ``` If you need a very secure mode where refresh_token and access_token will be hide behind a service worker that will proxify requests. diff --git a/readme.md b/readme.md index 18a01a3bf..0dc1e75b7 100644 --- a/readme.md +++ b/readme.md @@ -108,13 +108,13 @@ WARNING : If you use Service Worker mode, the OidcServiceWorker.js file should a ```sh "scripts": { ... - "postinstall": "node .\\node_modules\\@axa-fr\\oidc-client\\bin\\copy-service-worker-files.mjs public" + "postinstall": "node .\\node_modules\\@axa-fr\\react-oidc\\bin\\copy-service-worker-files.mjs public" }, ``` More documentation : -- [`@axa-fr/react-oidc`](./packages/react#readme) +- [`@axa-fr/react-oidc`](./packages/react-oidc#readme) ## Run The Demos From 3d0aaff74fd1b14afe2aa3ec2b8b3c028dd3fe75 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Fri, 4 Aug 2023 16:32:21 +0200 Subject: [PATCH 025/440] fix(oidc): add more detail on state error --- packages/oidc-client/src/login.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/oidc-client/src/login.ts b/packages/oidc-client/src/login.ts index 4e166b29c..375287f2f 100644 --- a/packages/oidc-client/src/login.ts +++ b/packages/oidc-client/src/login.ts @@ -107,10 +107,11 @@ export const loginCallbackAsync = (oidc) => async (isSilentSignin = false) => { const params = getParseQueryStringFromLocation(window.location.toString()); if (params.iss && params.iss !== oidcServerConfiguration.issuer) { - throw new Error('issuer not valid'); + console.error(); + throw new Error(`issuer not valid (expected: ${oidcServerConfiguration.issuer}, received: ${params.iss})`); } if (params.state && params.state !== state) { - throw new Error('state not valid'); + throw new Error(`state not valid (expected: ${state}, received: ${params.state})`); } const data = { From 0e52c56e1d747aa17ee2bf3005893a8d67a03ab3 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Mon, 7 Aug 2023 11:12:56 +0200 Subject: [PATCH 026/440] fix(package.json): update new repository link (release) --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client/package.json | 2 +- packages/react-oidc/package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 79faf39d6..34f13f025 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -21,7 +21,7 @@ ], "repository": { "type": "git", - "url": "https://github.com/AxaGuilDEv/react-oidc.git" + "url": "https://github.com/AxaFrance/oidc-client.git" }, "scripts": { "copy": "cpy --flat ./src/OidcTrustedDomains.js ./dist/", diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index f18191a4c..d97c8cb9c 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -17,7 +17,7 @@ ], "repository": { "type": "git", - "url": "https://github.com/AxaGuilDEv/react-oidc.git" + "url": "https://github.com/AxaFrance/oidc-client.git" }, "dependencies": { "@axa-fr/oidc-client-service-worker": "workspace:*" diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index fbfc943ba..0683bbb83 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -9,7 +9,7 @@ "description": "OpenID Connect & OAuth authentication using react", "repository": { "type": "git", - "url": "https://github.com/AxaGuilDEv/react-oidc.git" + "url": "https://github.com/AxaFrance/oidc-client.git" }, "files": [ "dist", From ad3a73b9a65c942e2f3aee61516581613844a5ec Mon Sep 17 00:00:00 2001 From: GitHub Date: Mon, 7 Aug 2023 09:17:00 +0000 Subject: [PATCH 027/440] [skip ci] Update version package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 34f13f025..5f49d4a21 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.2.0", + "version": "7.2.1", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 94b704628..da9502dac 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.2.0'; +export default '7.2.1'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index d97c8cb9c..1b8750bd8 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.2.0", + "version": "7.2.1", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 94b704628..da9502dac 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.2.0'; +export default '7.2.1'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 0683bbb83..9ccb9508b 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.2.0", + "version": "7.2.1", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From a5d2e5892cf456225618f55602c87c654cdad62c Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Mon, 7 Aug 2023 18:01:12 +0200 Subject: [PATCH 028/440] fix(oidc+serviceworker): add more log detail on token validation --- packages/oidc-client-service-worker/src/utils/tokens.ts | 8 ++++---- packages/oidc-client/src/parseTokens.ts | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/oidc-client-service-worker/src/utils/tokens.ts b/packages/oidc-client-service-worker/src/utils/tokens.ts index 8155d6b26..8504b9a42 100644 --- a/packages/oidc-client-service-worker/src/utils/tokens.ts +++ b/packages/oidc-client-service-worker/src/utils/tokens.ts @@ -65,7 +65,7 @@ const isTokensOidcValid = ( const idTokenPayload = tokens.idTokenPayload; // 2: The Issuer Identifier for the OpenID Provider (which is typically obtained during Discovery) MUST exactly match the value of the iss (issuer) Claim. if (oidcServerConfiguration.issuer !== idTokenPayload.iss) { - return { isValid: false, reason: 'Issuer does not match' }; + return { isValid: false, reason: `Issuer does not match (oidcServerConfiguration issuer) ${oidcServerConfiguration.issuer} !== (idTokenPayload issuer) ${idTokenPayload.iss}` }; } // 3: The Client MUST validate that the aud (audience) Claim contains its client_id value registered at the Issuer identified by the iss (issuer) Claim as an audience. The aud (audience) Claim MAY contain an array with more than one element. The ID Token MUST be rejected if the ID Token does not list the Client as a valid audience, or if it contains additional audiences not trusted by the Client. @@ -74,7 +74,7 @@ const isTokensOidcValid = ( // 9: The current time MUST be before the time represented by the exp Claim. const currentTimeUnixSecond = new Date().getTime() / 1000; if (idTokenPayload.exp && idTokenPayload.exp < currentTimeUnixSecond) { - return { isValid: false, reason: 'Token expired' }; + return { isValid: false, reason: `Token expired at (idTokenPayload exp) ${idTokenPayload.exp} < (currentTimeUnixSecond) ${currentTimeUnixSecond}` }; } // 10: The iat Claim can be used to reject tokens that were issued too far away from the current time, limiting the amount of time that nonces need to be stored to prevent attacks. The acceptable range is Client specific. const timeInSevenDays = 60 * 60 * 24 * 7; @@ -82,11 +82,11 @@ const isTokensOidcValid = ( idTokenPayload.iat && idTokenPayload.iat + timeInSevenDays < currentTimeUnixSecond ) { - return { isValid: false, reason: 'Token is used from too long time' }; + return { isValid: false, reason: `Token is used from too long time (idTokenPayload iat + timeInSevenDays) ${idTokenPayload.iat + timeInSevenDays} < (currentTimeUnixSecond) ${currentTimeUnixSecond}` }; } // 11: If a nonce value was sent in the Authentication Request, a nonce Claim MUST be present and its value checked to verify that it is the same value as the one that was sent in the Authentication Request. The Client SHOULD check the nonce value for replay attacks. The precise method for detecting replay attacks is Client specific. if (nonce && idTokenPayload.nonce && idTokenPayload.nonce !== nonce) { - return { isValid: false, reason: 'Nonce does not match' }; + return { isValid: false, reason: `Nonce does not match (nonce) ${nonce} !== (idTokenPayload nonce) ${idTokenPayload.nonce}` }; } } return { isValid: true, reason: '' }; diff --git a/packages/oidc-client/src/parseTokens.ts b/packages/oidc-client/src/parseTokens.ts index 2acba0385..cd10b11cb 100644 --- a/packages/oidc-client/src/parseTokens.ts +++ b/packages/oidc-client/src/parseTokens.ts @@ -177,7 +177,7 @@ export const isTokensOidcValid = (tokens, nonce, oidcServerConfiguration) => { const idTokenPayload = tokens.idTokenPayload; // 2: The Issuer Identifier for the OpenID Provider (which is typically obtained during Discovery) MUST exactly match the value of the iss (issuer) Claim. if (oidcServerConfiguration.issuer !== idTokenPayload.iss) { - return { isValid: false, reason: 'Issuer does not match' }; + return { isValid: false, reason: `Issuer does not match (oidcServerConfiguration issuer) ${oidcServerConfiguration.issuer} !== (idTokenPayload issuer) ${idTokenPayload.iss}` }; } // 3: The Client MUST validate that the aud (audience) Claim contains its client_id value registered at the Issuer identified by the iss (issuer) Claim as an audience. The aud (audience) Claim MAY contain an array with more than one element. The ID Token MUST be rejected if the ID Token does not list the Client as a valid audience, or if it contains additional audiences not trusted by the Client. @@ -186,16 +186,16 @@ export const isTokensOidcValid = (tokens, nonce, oidcServerConfiguration) => { // 9: The current time MUST be before the time represented by the exp Claim. const currentTimeUnixSecond = new Date().getTime() / 1000; if (idTokenPayload.exp && idTokenPayload.exp < currentTimeUnixSecond) { - return { isValid: false, reason: 'Token expired' }; + return { isValid: false, reason: `Token expired (idTokenPayload exp) ${idTokenPayload.exp} < (currentTimeUnixSecond) ${currentTimeUnixSecond}` }; } // 10: The iat Claim can be used to reject tokens that were issued too far away from the current time, limiting the amount of time that nonces need to be stored to prevent attacks. The acceptable range is Client specific. const timeInSevenDays = 60 * 60 * 24 * 7; if (idTokenPayload.iat && (idTokenPayload.iat + timeInSevenDays) < currentTimeUnixSecond) { - return { isValid: false, reason: 'Token is used from too long time' }; + return { isValid: false, reason: `Token is used from too long time (idTokenPayload iat + timeInSevenDays) ${idTokenPayload.iat + timeInSevenDays} < (currentTimeUnixSecond) ${currentTimeUnixSecond}` }; } // 11: If a nonce value was sent in the Authentication Request, a nonce Claim MUST be present and its value checked to verify that it is the same value as the one that was sent in the Authentication Request. The Client SHOULD check the nonce value for replay attacks. The precise method for detecting replay attacks is Client specific. if (idTokenPayload.nonce && idTokenPayload.nonce !== nonce) { - return { isValid: false, reason: 'Nonce does not match' }; + return { isValid: false, reason: `Nonce does not match (idTokenPayload nonce) ${idTokenPayload.nonce} !== (nonce) ${nonce}` }; } } return { isValid: true, reason: '' }; From e0cad22179fb1d9e641fbbf14b879ea2d2d78c3a Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Mon, 7 Aug 2023 18:07:09 +0200 Subject: [PATCH 029/440] fix(faq): update faq (release) --- FAQ.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/FAQ.md b/FAQ.md index f94c86798..3ff9da526 100644 --- a/FAQ.md +++ b/FAQ.md @@ -4,9 +4,11 @@ Third party cookies are blocked by default on Safari. They will be on all browsers very soon. -Today, silent sigin work on safari only if OIDC provider is on the same domain than client application. +Today, silent signing work on safari only if OIDC provider is on the same domain than client application. Third party cookies are blocked. They will be on all browsers very soon. +The only way to be sure to have silent signing working on all browsers, you need to have your OIDC provider on the same domain than your client application. + Example of domain that work: - https://oidc-provider.axa.fr - https://my-app.axa.fr @@ -14,12 +16,12 @@ Example of domain that work: Silent Signing use cookies with your OIDC provider to restore the session and retrieve tokens. It open in background an IFrame to a specific page to your OIDC provider. -## Condition to single logout work +## Condition to make Single Logout to work -Same contraint for Single Logout that for "silent signing". +Same constraint for Single Logout that for "silent signing". *Single logout allow your to disconnect from multiple OIDC Client session in one action event if your are connected on different application. -## Condition to Monitor Session work +## Condition to make Monitor Session to work Same constraint for "monitorSession" that for "silent signing". From 32b286181436129e6d15e0e166108d1f0d4d5641 Mon Sep 17 00:00:00 2001 From: GitHub Date: Mon, 7 Aug 2023 16:11:24 +0000 Subject: [PATCH 030/440] [skip ci] Update version package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 5f49d4a21..0a1c6c4db 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.2.1", + "version": "7.2.2", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index da9502dac..57f4cb3c5 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.2.1'; +export default '7.2.2'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 1b8750bd8..721d7b81f 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.2.1", + "version": "7.2.2", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index da9502dac..57f4cb3c5 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.2.1'; +export default '7.2.2'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 9ccb9508b..3bf21b104 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.2.1", + "version": "7.2.2", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 7ffcde465f5f4cbba4b39e0da43dee34d4ec37d9 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Tue, 8 Aug 2023 09:41:51 +0200 Subject: [PATCH 031/440] doc(readme): update images urls --- FAQ.md | 3 ++- packages/oidc-client/README.md | 13 ++++++++++++- packages/react-oidc/README.md | 2 +- readme.md | 6 ++---- 4 files changed, 17 insertions(+), 7 deletions(-) diff --git a/FAQ.md b/FAQ.md index 3ff9da526..873ef2041 100644 --- a/FAQ.md +++ b/FAQ.md @@ -19,7 +19,8 @@ It open in background an IFrame to a specific page to your OIDC provider. ## Condition to make Single Logout to work Same constraint for Single Logout that for "silent signing". -*Single logout allow your to disconnect from multiple OIDC Client session in one action event if your are connected on different application. + +Single logout allow your to disconnect from multiple OIDC Client session in one action event if your are connected on different application. ## Condition to make Monitor Session to work diff --git a/packages/oidc-client/README.md b/packages/oidc-client/README.md index 266ada49e..15970b8c7 100644 --- a/packages/oidc-client/README.md +++ b/packages/oidc-client/README.md @@ -3,8 +3,19 @@ [![Continuous Integration](https://github.com/AxaGuilDEv/react-oidc/actions/workflows/npm-publish.yml/badge.svg)](https://github.com/AxaGuilDEv/react-oidc/actions/workflows/npm-publish.yml) [![Quality Gate](https://sonarcloud.io/api/project_badges/measure?project=AxaGuilDEv_react-oidc&metric=alert_status)](https://sonarcloud.io/dashboard?id=AxaGuilDEv_react-oidc) [![Reliability](https://sonarcloud.io/api/project_badges/measure?project=AxaGuilDEv_react-oidc&metric=reliability_rating)](https://sonarcloud.io/component_measures?id=AxaGuilDEv_react-oidc&metric=reliability_rating) [![Security](https://sonarcloud.io/api/project_badges/measure?project=AxaGuilDEv_react-oidc&metric=security_rating)](https://sonarcloud.io/component_measures?id=AxaGuilDEv_react-oidc&metric=security_rating) [![Code Corevage](https://sonarcloud.io/api/project_badges/measure?project=AxaGuilDEv_react-oidc&metric=coverage)](https://sonarcloud.io/component_measures?id=AxaGuilDEv_react-oidc&metric=Coverage) [![Twitter](https://img.shields.io/twitter/follow/GuildDEvOpen?style=social)](https://twitter.com/intent/follow?screen_name=GuildDEvOpen) -Try the demo at https://icy-glacier-004ab4303.2.azurestaticapps.net/ +**@axa-fr/oidc-client** the lightest and securest library to manage authentication with OpenID Connect (OIDC) and OAuth2 protocol. It is compatible with all OIDC providers. +**@axa-fr/oidc-client** is a pure javascript library. It works with any JavaScript framework or library. +We provide a wrapper **@axa-fr/react-oidc** for **React** (compatible next.js) and we expect soon to provide one for **Vue**, **Angular** and **Svelte**. + +- Try the react demo at https://black-rock-0dc6b0d03.1.azurestaticapps.net/ (most advanced) +- Try the pure javascript demo at https://icy-glacier-004ab4303.2.azurestaticapps.net/ + +

+ Sample React Oicd +

- [About](#about) - [Getting Started](#getting-started) diff --git a/packages/react-oidc/README.md b/packages/react-oidc/README.md index 505014cd4..e780279cf 100644 --- a/packages/react-oidc/README.md +++ b/packages/react-oidc/README.md @@ -12,7 +12,7 @@ We provide a wrapper **@axa-fr/react-oidc** for **React** (compatible next.js) a - Try the pure javascript demo at https://icy-glacier-004ab4303.2.azurestaticapps.net/

- Sample React Oicd

diff --git a/readme.md b/readme.md index 0dc1e75b7..aa15fa527 100644 --- a/readme.md +++ b/readme.md @@ -5,7 +5,7 @@

- Sample React Oicd

@@ -62,8 +62,6 @@ Works perfectly well with: - etc., all OIDC providers - - ## Getting Started ### Getting Started with @axa-fr/oidc-client @@ -146,7 +144,7 @@ pnpm run dev ## How It Works

- Schema Authorization Code Grant with pcke flow on the using service worker
From c94163d02f5947761d00bd5e18df6749106d6f3d Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Tue, 8 Aug 2023 10:33:13 +0200 Subject: [PATCH 032/440] doc(FAQ): add "Does Service Worker is mandatory ?" --- FAQ.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/FAQ.md b/FAQ.md index 873ef2041..da70b23bd 100644 --- a/FAQ.md +++ b/FAQ.md @@ -28,6 +28,27 @@ Same constraint for "monitorSession" that for "silent signing". Monitor session allow you to be notified when your session is expired or when you are disconnected from your OIDC provider. +## Does Service Worker is mandatory ? + +Service Worker can be disable. +You can use classic mode without Service Worker. + +Just comment "service_worker_relative_url" like bellow: + +````javascript +export const configuration = { + client_id: 'interactive.public.short', + redirect_uri: window.location.origin + '/#/authentication/callback', + silent_redirect_uri: window.location.origin + '/#/authentication/silent-callback', + scope: 'openid profile email api offline_access', + authority: 'https://demo.duendesoftware.com', + // service_worker_relative_url: '/OidcServiceWorker.js', + service_worker_only: false, +}; +```` + +If your Service Worker file is already registered on your browser, your need to unregister it. For example from chrome dev tool. + ## Tokens are always refreshed in background every seconds @axa-fr/oidc-client refresh automatically tokens in background. From 282c0f72ab7741f24468b2278466eb307d1fa0ce Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Tue, 8 Aug 2023 13:49:47 +0200 Subject: [PATCH 033/440] feat(oidc+serviceworker): add property setAccessTokenToNavigateRequests + service_worker_convert_all_requests_to_cors moved to TrustedDomains.js (#1123) (release) * feat(oidc+serviceworker): add property setAccessTokenToNavigateRequests to TrustedDomains.js * configuration.service_worker_convert_all_requests_to_cors moved to TrustedDomains.js --- MIGRATION_GUIDE_V6_TO_V7.md | 17 +++- .../src/OidcServiceWorker.ts | 86 +++++++++---------- .../src/OidcTrustedDomains.js | 7 +- .../oidc-client-service-worker/src/types.ts | 5 +- .../src/utils/__tests__/domains.spec.ts | 2 + .../src/utils/__tests__/testHelper.ts | 13 +-- packages/oidc-client/README.md | 5 +- packages/react-oidc/README.md | 5 +- 8 files changed, 76 insertions(+), 64 deletions(-) diff --git a/MIGRATION_GUIDE_V6_TO_V7.md b/MIGRATION_GUIDE_V6_TO_V7.md index 7d6c39a85..51cb01b41 100644 --- a/MIGRATION_GUIDE_V6_TO_V7.md +++ b/MIGRATION_GUIDE_V6_TO_V7.md @@ -1,4 +1,19 @@ # Migrating from v6 to v7 - Package `@axa-fr/vanilla-oidc` as been renamed to `@axa-fr/oidc-client` -- VanillaOidc class as been renamed to OidcClient \ No newline at end of file +- VanillaOidc class as been renamed to OidcClient +- On version 7.3.0 configuration.service_worker_convert_all_requests_to_cors as been moved to TrustedDomains.js + +```javascript + +// Service worker will continue to give access token to the JavaScript client +// Ideal to hide refresh token from client JavaScript, but to retrieve access_token for some +// scenarios which require it. For example, to send it via websocket connection. +trustedDomains.config_show_access_token = { + domains: ['https://demo.duendesoftware.com'], + showAccessToken: true, + // convertAllRequestsToCorsExceptNavigate: false, // default value is false + // setAccessTokenToNavigateRequests: true, // default value is true +}; + +``` \ No newline at end of file diff --git a/packages/oidc-client-service-worker/src/OidcServiceWorker.ts b/packages/oidc-client-service-worker/src/OidcServiceWorker.ts index 8eeda4ef5..7b675e59f 100644 --- a/packages/oidc-client-service-worker/src/OidcServiceWorker.ts +++ b/packages/oidc-client-service-worker/src/OidcServiceWorker.ts @@ -4,9 +4,7 @@ import { Database, MessageEventData, OidcConfig, - OidcConfiguration, TrustedDomains, - // TrustedDomainsShowAccessToken, } from './types'; import { checkDomain, @@ -39,18 +37,7 @@ const handleActivate = (event: ExtendableEvent) => { }; let currentLoginCallbackConfigurationName: string | null = null; -const database: Database = { - default: { - configurationName: 'default', - tokens: null, - status: null, - state: null, - codeVerifier: null, - nonce: null, - oidcServerConfiguration: null, - hideAccessToken: true, - }, -}; +const database: Database = {}; const getCurrentDatabasesTokenEndpoint = (database: Database, url: string) => { const databases: OidcConfig[] = []; @@ -112,29 +99,37 @@ const handleFetch = async (event: FetchEvent) => { ) { await sleep(200); } - const newRequest = - originalRequest.mode === 'navigate' - ? new Request(originalRequest, { - headers: { - ...serializeHeaders(originalRequest.headers), - authorization: - 'Bearer ' + - currentDatabaseForRequestAccessToken.tokens.access_token, - }, - }) - : new Request(originalRequest, { - headers: { - ...serializeHeaders(originalRequest.headers), - authorization: - 'Bearer ' + - currentDatabaseForRequestAccessToken.tokens.access_token, - }, - mode: ( - currentDatabaseForRequestAccessToken.oidcConfiguration as OidcConfiguration - ).service_worker_convert_all_requests_to_cors - ? 'cors' - : originalRequest.mode, - }); + + let requestMode = originalRequest.mode; + + if(originalRequest.mode !== "navigate" && currentDatabaseForRequestAccessToken.convertAllRequestsToCorsExceptNavigate) { + requestMode = "cors"; + } + + let headers: { [p: string]: string }; + if(originalRequest.mode == "navigate" && !currentDatabaseForRequestAccessToken.setAccessTokenToNavigateRequests ) { + headers = { + ...serializeHeaders(originalRequest.headers), + } + } else{ + headers = { + ...serializeHeaders(originalRequest.headers), + authorization: 'Bearer ' + currentDatabaseForRequestAccessToken.tokens.access_token, + } + } + let init: RequestInit; + if(originalRequest.mode === "navigate"){ + init = { + headers: headers, + } + } else{ + init = { + headers: headers, + mode: requestMode, + } + } + + const newRequest = new Request(originalRequest, init); // @ts-ignore -- TODO: review, waitUntil takes a promise, this returns a void event.waitUntil(event.respondWith(fetch(newRequest))); @@ -272,11 +267,6 @@ const handleFetch = async (event: FetchEvent) => { } }; -type TrustedDomainsShowAccessToken = { - [key: string]: boolean; -} - -const trustedDomainsShowAccessToken: TrustedDomainsShowAccessToken = {}; const handleMessage = (event: ExtendableMessageEvent) => { const port = event.ports[0]; @@ -287,10 +277,10 @@ const handleMessage = (event: ExtendableMessageEvent) => { trustedDomains = {}; } if (!currentDatabase) { - if (trustedDomainsShowAccessToken[configurationName] === undefined) { - const trustedDomain = trustedDomains[configurationName]; - trustedDomainsShowAccessToken[configurationName] = Array.isArray(trustedDomain) ? false : trustedDomain.showAccessToken; - } + const trustedDomain = trustedDomains[configurationName]; + const showAccessToken = Array.isArray(trustedDomain) ? false : trustedDomain.showAccessToken; + const doNotSetAccessTokenToNavigateRequests = Array.isArray(trustedDomain) ? true : trustedDomain.setAccessTokenToNavigateRequests; + const convertAllRequestsToCorsExceptNavigate = Array.isArray(trustedDomain) ? false : trustedDomain.convertAllRequestsToCorsExceptNavigate; database[configurationName] = { tokens: null, state: null, @@ -300,7 +290,9 @@ const handleMessage = (event: ExtendableMessageEvent) => { nonce: null, status: null, configurationName, - hideAccessToken: !trustedDomainsShowAccessToken[configurationName], + hideAccessToken: !showAccessToken, + setAccessTokenToNavigateRequests: doNotSetAccessTokenToNavigateRequests || true, + convertAllRequestsToCorsExceptNavigate: convertAllRequestsToCorsExceptNavigate || false, }; currentDatabase = database[configurationName]; diff --git a/packages/oidc-client-service-worker/src/OidcTrustedDomains.js b/packages/oidc-client-service-worker/src/OidcTrustedDomains.js index 1aea5cd1a..9a31a5bbd 100644 --- a/packages/oidc-client-service-worker/src/OidcTrustedDomains.js +++ b/packages/oidc-client-service-worker/src/OidcTrustedDomains.js @@ -17,7 +17,12 @@ const trustedDomains = { // Service worker will continue to give access token to the JavaScript client // Ideal to hide refresh token from client JavaScript, but to retrieve access_token for some // scenarios which require it. For example, to send it via websocket connection. -trustedDomains.config_show_access_token = { domains: ['https://demo.duendesoftware.com'], showAccessToken: true }; +trustedDomains.config_show_access_token = { + domains: ['https://demo.duendesoftware.com'], + showAccessToken: true, + // convertAllRequestsToCorsExceptNavigate: false, + // setAccessTokenToNavigateRequests: true, +}; // This example defines domains used by OIDC server separately from domains to which access tokens will be injected. trustedDomains.config_separate_oidc_access_token_domains = { diff --git a/packages/oidc-client-service-worker/src/types.ts b/packages/oidc-client-service-worker/src/types.ts index 0775e3a8a..911eb4f6b 100644 --- a/packages/oidc-client-service-worker/src/types.ts +++ b/packages/oidc-client-service-worker/src/types.ts @@ -3,6 +3,8 @@ export type DomainDetails = { oidcDomains?: Domain[]; accessTokenDomains?: Domain[]; showAccessToken: boolean; + convertAllRequestsToCorsExceptNavigate?: boolean, + setAccessTokenToNavigateRequests?: boolean, } export type Domain = string | RegExp; @@ -21,7 +23,6 @@ export type OidcServerConfiguration = { export type OidcConfiguration = { token_renew_mode: string; - service_worker_convert_all_requests_to_cors: boolean; } // Uncertain why the Headers interface in lib.webworker.d.ts does not have a keys() function, so extending @@ -65,6 +66,8 @@ export type OidcConfig = { sessionState?: string | null; items?: MessageData; hideAccessToken: boolean; + convertAllRequestsToCorsExceptNavigate: boolean, + setAccessTokenToNavigateRequests: boolean, } export type IdTokenPayload = { diff --git a/packages/oidc-client-service-worker/src/utils/__tests__/domains.spec.ts b/packages/oidc-client-service-worker/src/utils/__tests__/domains.spec.ts index 9ba81d569..6794c76b8 100644 --- a/packages/oidc-client-service-worker/src/utils/__tests__/domains.spec.ts +++ b/packages/oidc-client-service-worker/src/utils/__tests__/domains.spec.ts @@ -49,6 +49,8 @@ describe('domains', () => { nonce: null, oidcServerConfiguration: {} as OidcServerConfiguration, hideAccessToken: true, + convertAllRequestsToCorsExceptNavigate: false, + setAccessTokenToNavigateRequests: true, }, }; diff --git a/packages/oidc-client-service-worker/src/utils/__tests__/testHelper.ts b/packages/oidc-client-service-worker/src/utils/__tests__/testHelper.ts index 97de3ae11..d620bab03 100644 --- a/packages/oidc-client-service-worker/src/utils/__tests__/testHelper.ts +++ b/packages/oidc-client-service-worker/src/utils/__tests__/testHelper.ts @@ -96,7 +96,6 @@ class TokenBuilder { class OidcConfigurationBuilder { private oidcConfiguration: OidcConfiguration = { token_renew_mode: 'offline', - service_worker_convert_all_requests_to_cors: true, }; public withTokenRenewMode( @@ -105,15 +104,7 @@ class OidcConfigurationBuilder { this.oidcConfiguration.token_renew_mode = token_renew_mode; return this; } - - public withServiceWorkerConvertAllRequestsToCors( - service_worker_convert_all_requests_to_cors: boolean, - ): OidcConfigurationBuilder { - this.oidcConfiguration.service_worker_convert_all_requests_to_cors = - service_worker_convert_all_requests_to_cors; - return this; - } - + public build(): OidcConfiguration { return this.oidcConfiguration; } @@ -132,6 +123,8 @@ class OidcConfigBuilder { sessionState: null, items: undefined, hideAccessToken: true, + convertAllRequestsToCorsExceptNavigate: false, + setAccessTokenToNavigateRequests: true, }; public withTestingDefault(): OidcConfigBuilder { diff --git a/packages/oidc-client/README.md b/packages/oidc-client/README.md index 15970b8c7..e9d4e81d5 100644 --- a/packages/oidc-client/README.md +++ b/packages/oidc-client/README.md @@ -93,7 +93,9 @@ const trustedDomains = { trustedDomains.config_show_access_token = { oidcDomains :["https://demo.duendesoftware.com"], accessTokenDomains : ["https://www.myapi.com/users"], - showAccessToken: true + showAccessToken: true, + // convertAllRequestsToCorsExceptNavigate: false, // default value is false + // setAccessTokenToNavigateRequests: true, // default value is true }; ``` @@ -182,7 +184,6 @@ const configuration = { service_worker_relative_url: String, service_worker_only: Boolean, // default false service_worker_update_require_callback: (registration:any, stopKeepAlive:Function) => Promise, // callback called when service worker need to be updated, you can take the control of the update process - service_worker_convert_all_requests_to_cors: Boolean, // force all requests that service worker upgrades to have 'cors' mode. This allows setting an authentication token on requests initiated by HTML parsing (e.g., img tags, download links, etc.). extras: StringMap | undefined, // ex: {'prompt': 'consent', 'access_type': 'offline'} list of key/value that is sent to the OIDC server (more info: https://github.com/openid/AppAuth-JS) token_request_extras: StringMap | undefined, // ex: {'prompt': 'consent', 'access_type': 'offline'} list of key/value that is sent to the OIDC server during token request (more info: https://github.com/openid/AppAuth-JS) authority_time_cache_wellknowurl_in_second: 60 * 60, // Time to cache in seconds of the openid well-known URL, default is 1 hour diff --git a/packages/react-oidc/README.md b/packages/react-oidc/README.md index e780279cf..081363613 100644 --- a/packages/react-oidc/README.md +++ b/packages/react-oidc/README.md @@ -92,7 +92,9 @@ const trustedDomains = { trustedDomains.config_show_access_token = { oidcDomains :["https://demo.duendesoftware.com"], accessTokenDomains : ["https://www.myapi.com/users"], - showAccessToken: true + showAccessToken: true, + // convertAllRequestsToCorsExceptNavigate: false, // default value is false + // setAccessTokenToNavigateRequests: true, // default value is true }; ``` @@ -185,7 +187,6 @@ const configuration = { service_worker_relative_url: String, service_worker_only: Boolean, // default false service_worker_update_require_callback: (registration:any, stopKeepAlive:Function) => Promise, // callback called when service worker need to be updated, you can take the control of the update process - service_worker_convert_all_requests_to_cors: Boolean, // force all requests that service worker upgrades to have 'cors' mode. This allows setting an authentication token on requests initiated by HTML parsing (e.g., img tags, download links, etc.). extras: StringMap | undefined, // ex: {'prompt': 'consent', 'access_type': 'offline'} list of key/value that is sent to the OIDC server (more info: https://github.com/openid/AppAuth-JS) token_request_extras: StringMap | undefined, // ex: {'prompt': 'consent', 'access_type': 'offline'} list of key/value that is sent to the OIDC server during token request (more info: https://github.com/openid/AppAuth-JS) withCustomHistory: Function, // Override history modification, return an instance with replaceState(url, stateHistory) implemented (like History.replaceState()) From 0bc3398f09fd3bf6dff5a6443d5d42f0a26454bf Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 8 Aug 2023 11:53:04 +0000 Subject: [PATCH 034/440] [skip ci] Update version package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 0a1c6c4db..a496beeb4 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.2.2", + "version": "7.3.0", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 57f4cb3c5..9b641657f 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.2.2'; +export default '7.3.0'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 721d7b81f..7f7f5e61a 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.2.2", + "version": "7.3.0", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 57f4cb3c5..9b641657f 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.2.2'; +export default '7.3.0'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 3bf21b104..6b9f41af2 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.2.2", + "version": "7.3.0", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From c2564f9ef6de2122962cfb4a8e0f9195aa688d84 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Tue, 8 Aug 2023 18:10:00 +0200 Subject: [PATCH 035/440] fix(all): copy of service worker files (release) --- packages/oidc-client/README.md | 4 +- .../bin/copy-service-worker-files.mjs | 37 +++++++++++-------- packages/react-oidc/README.md | 4 +- .../bin/copy-service-worker-files.mjs | 19 +++++++--- readme.md | 8 ++-- 5 files changed, 44 insertions(+), 28 deletions(-) diff --git a/packages/oidc-client/README.md b/packages/oidc-client/README.md index e9d4e81d5..c3e1f0cd1 100644 --- a/packages/oidc-client/README.md +++ b/packages/oidc-client/README.md @@ -54,7 +54,7 @@ The service worker catch **access_token** and **refresh_token** that will never npm install @axa-fr/oidc-client --save # To install or update OidcServiceWorker.js file, you can run -node .\node_modules\@axa-fr\react-oidc\bin\copy-service-worker-files.mjs +node ./node_modules/@axa-fr/react-oidc/bin/copy-service-worker-files.mjs public # If you have a "public" folder, the 2 files will be created : # ./public/OidcServiceWorker.js <-- will be updated at each "npm install" @@ -65,7 +65,7 @@ WARNING : If you use Service Worker mode, the OidcServiceWorker.js file should a ```sh "scripts": { ... - "postinstall": "node .\\node_modules\\@axa-fr\\oidc-client\\bin\\copy-service-worker-files.mjs public" + "postinstall": "node ./node_modules/@axa-fr/react-oidc/bin/copy-service-worker-files.mjs public" }, ``` diff --git a/packages/oidc-client/bin/copy-service-worker-files.mjs b/packages/oidc-client/bin/copy-service-worker-files.mjs index 205e27715..599985339 100644 --- a/packages/oidc-client/bin/copy-service-worker-files.mjs +++ b/packages/oidc-client/bin/copy-service-worker-files.mjs @@ -3,41 +3,41 @@ import fs from 'fs'; import { fileURLToPath } from 'url'; try { - + /** * Script to run after npm install * * Copy selected files to user's directory */ const script_prefix= 'oidc-client'; - + const copyFile = async (src, dest, overwrite) => { if(!fileExists(src)) { - console.log(`[${script_prefix}:skip] file does not exist ${src}`); - return; + console.log(`[${script_prefix}:skip] file does not exist ${src}`); + return false; } if (!overwrite) { if (fileExists(dest)) { console.log(`[${script_prefix}:skip] file exists not overwriting ${dest}`); - return; + return true; } } await fs.promises.copyFile(src, dest); console.log(`[${script_prefix}:copy] ${dest}`); + return true }; - + const fileExists = (path) => { return !!fs.existsSync(path); }; const initPath = process.cwd(); - const __dirname = path.dirname(fileURLToPath(import.meta.url)); - const srcDir = path.join(__dirname, "..", 'node_modules', '@axa-fr' ,'oidc-client-service-worker', 'dist') ; - + const srcDir = path.join(__dirname, ".." , ".." ,'oidc-client-service-worker', 'dist'); + const srcDirFallback = path.join(__dirname, "..", 'node_modules', '@axa-fr' ,'oidc-client-service-worker', 'dist'); const destinationFolder = process.argv.length >= 3 ? process.argv[2] : 'public'; const destinationDir = path.join(initPath, destinationFolder); - + const files = [ { fileName: 'OidcServiceWorker.js', @@ -48,13 +48,20 @@ try { overwrite: false, }, ]; - + for await (const file of files) { - await copyFile( - path.join(srcDir, file.fileName), - path.join(destinationDir, file.fileName), - file.overwrite + const success = await copyFile( + path.join(srcDir, file.fileName), + path.join(destinationDir, file.fileName), + file.overwrite ); + if(!success){ + await copyFile( + path.join(srcDirFallback, file.fileName), + path.join(destinationDir, file.fileName), + file.overwrite + ); + } } } catch (err) { diff --git a/packages/react-oidc/README.md b/packages/react-oidc/README.md index 081363613..bd2551426 100644 --- a/packages/react-oidc/README.md +++ b/packages/react-oidc/README.md @@ -54,7 +54,7 @@ The service worker catch **access_token** and **refresh_token** that will never npm install @axa-fr/react-oidc --save # To install or update OidcServiceWorker.js file, you can run -node .\node_modules\@axa-fr\react-oidc\bin\copy-service-worker-files.mjs +node ./node_modules/@axa-fr/react-oidc/bin/copy-service-worker-files.mjs public # If you have a "public" folder, the 2 files will be created : # ./public/OidcServiceWorker.js <-- will be updated at each "npm install" @@ -65,7 +65,7 @@ WARNING : If you use Service Worker mode, the OidcServiceWorker.js file should a ```sh "scripts": { ... - "postinstall": "node .\\node_modules\\@axa-fr\\react-oidc\\bin\\copy-service-worker-files.mjs public" + "postinstall": "node ./node_modules/@axa-fr/react-oidc/bin/copy-service-worker-files.mjs public" }, ``` If you need a very secure mode where refresh_token and access_token will be hide behind a service worker that will proxify requests. diff --git a/packages/react-oidc/bin/copy-service-worker-files.mjs b/packages/react-oidc/bin/copy-service-worker-files.mjs index 9a77e40b5..3fe82d871 100644 --- a/packages/react-oidc/bin/copy-service-worker-files.mjs +++ b/packages/react-oidc/bin/copy-service-worker-files.mjs @@ -9,21 +9,22 @@ try { * * Copy selected files to user's directory */ - const script_prefix= 'oidc-client'; + const script_prefix= 'react-oidc'; const copyFile = async (src, dest, overwrite) => { if(!fileExists(src)) { console.log(`[${script_prefix}:skip] file does not exist ${src}`); - return; + return false; } if (!overwrite) { if (fileExists(dest)) { console.log(`[${script_prefix}:skip] file exists not overwriting ${dest}`); - return; + return true; } } await fs.promises.copyFile(src, dest); console.log(`[${script_prefix}:copy] ${dest}`); + return true }; const fileExists = (path) => { @@ -32,7 +33,8 @@ try { const initPath = process.cwd(); const __dirname = path.dirname(fileURLToPath(import.meta.url)); - const srcDir = path.join(__dirname, "..", 'node_modules', '@axa-fr' ,'oidc-client-service-worker', 'dist') ; + const srcDir = path.join(__dirname, ".." , ".." ,'oidc-client-service-worker', 'dist'); + const srcDirFallback = path.join(__dirname, "..", 'node_modules', '@axa-fr' ,'oidc-client-service-worker', 'dist'); const destinationFolder = process.argv.length >= 3 ? process.argv[2] : 'public'; const destinationDir = path.join(initPath, destinationFolder); @@ -48,11 +50,18 @@ try { ]; for await (const file of files) { - await copyFile( + const success = await copyFile( path.join(srcDir, file.fileName), path.join(destinationDir, file.fileName), file.overwrite ); + if(!success){ + await copyFile( + path.join(srcDirFallback, file.fileName), + path.join(destinationDir, file.fileName), + file.overwrite + ); + } } } catch (err) { diff --git a/readme.md b/readme.md index aa15fa527..27fd11420 100644 --- a/readme.md +++ b/readme.md @@ -70,7 +70,7 @@ Works perfectly well with: npm install @axa-fr/oidc-client --save # To install or update OidcServiceWorker.js file, you can run -node .\node_modules\@axa-fr\oidc-client\bin\copy-service-worker-files.mjs public +node ./node_modules/@axa-fr/react-oidc/bin/copy-service-worker-files.mjs public # If you have a "public" folder, the 2 files will be created : # ./public/OidcServiceWorker.js <-- will be updated at each "npm install" @@ -81,7 +81,7 @@ WARNING : If you use Service Worker mode, the OidcServiceWorker.js file should a ```sh "scripts": { ... - "postinstall": "node .\\node_modules\\@axa-fr\\oidc-client\\bin\\copy-service-worker-files.mjs public" + "postinstall": "node ./node_modules/@axa-fr/react-oidc/bin/copy-service-worker-files.mjs public" }, ``` @@ -95,7 +95,7 @@ More documentation : npm install @axa-fr/react-oidc --save # To install or update OidcServiceWorker.js file, you can run -node .\node_modules\@axa-fr\react-oidc\bin\copy-service-worker-files.mjs public +node ./node_modules/@axa-fr/react-oidc/bin/copy-service-worker-files.mjs public # If you have a "public" folder, the 2 files will be created : # ./public/OidcServiceWorker.js <-- will be updated at each "npm install" @@ -106,7 +106,7 @@ WARNING : If you use Service Worker mode, the OidcServiceWorker.js file should a ```sh "scripts": { ... - "postinstall": "node .\\node_modules\\@axa-fr\\react-oidc\\bin\\copy-service-worker-files.mjs public" + "postinstall": "node ./node_modules/@axa-fr/react-oidc/bin/copy-service-worker-files.mjs public" }, ``` From bb7de0060ea81fa4206a5696a5479100f0c64898 Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 8 Aug 2023 16:15:10 +0000 Subject: [PATCH 036/440] [skip ci] Update version package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index a496beeb4..a3b9bda8d 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.3.0", + "version": "7.3.1", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 9b641657f..fcca45f46 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.3.0'; +export default '7.3.1'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 7f7f5e61a..ef230d814 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.3.0", + "version": "7.3.1", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 9b641657f..fcca45f46 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.3.0'; +export default '7.3.1'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 6b9f41af2..ab2c0a42f 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.3.0", + "version": "7.3.1", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 790ec468355967462b9bfce40196e9336efed0d7 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Tue, 15 Aug 2023 21:04:05 +0200 Subject: [PATCH 037/440] fix(oidc): allow service worker to chrome 70 (release) --- packages/oidc-client/src/initWorker.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/oidc-client/src/initWorker.ts b/packages/oidc-client/src/initWorker.ts index 537e3fd5c..9567c9825 100644 --- a/packages/oidc-client/src/initWorker.ts +++ b/packages/oidc-client/src/initWorker.ts @@ -165,7 +165,7 @@ export const initWorkerAsync = async(serviceWorkerRelativeUrl, configurationName return null; } const { name, version } = getBrowser(); - if (name === 'chrome' && parseInt(version) < 90) { + if (name === 'chrome' && parseInt(version) <= 70) { return null; } if (name === 'opera') { From 28e21acd8fbda1a7190917a80239b595fa5f2f36 Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 15 Aug 2023 19:09:00 +0000 Subject: [PATCH 038/440] [skip ci] Update version package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index a3b9bda8d..3c04235ce 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.3.1", + "version": "7.3.2", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index fcca45f46..c90cbc7e7 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.3.1'; +export default '7.3.2'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index ef230d814..c92e5f303 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.3.1", + "version": "7.3.2", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index fcca45f46..c90cbc7e7 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.3.1'; +export default '7.3.2'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index ab2c0a42f..19705035a 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.3.1", + "version": "7.3.2", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From e4e74091a8a6fadb64429dcccbd43331af62f920 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Tue, 15 Aug 2023 22:17:04 +0200 Subject: [PATCH 039/440] fix(oidc): parent instead of top for iframe allow app inside iframe (#1130) (release) --- packages/oidc-client/src/oidc.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/oidc-client/src/oidc.ts b/packages/oidc-client/src/oidc.ts index 318cd51cf..017987cc7 100644 --- a/packages/oidc-client/src/oidc.ts +++ b/packages/oidc-client/src/oidc.ts @@ -161,14 +161,14 @@ Please checkout that you are using OIDC hook inside a Date: Tue, 15 Aug 2023 20:20:54 +0000 Subject: [PATCH 040/440] [skip ci] Update version package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 3c04235ce..89c9b6d53 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.3.2", + "version": "7.3.3", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index c90cbc7e7..610bd06db 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.3.2'; +export default '7.3.3'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index c92e5f303..f0594efee 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.3.2", + "version": "7.3.3", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index c90cbc7e7..610bd06db 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.3.2'; +export default '7.3.3'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 19705035a..bc1020eb6 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.3.2", + "version": "7.3.3", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 6d371ff1ce909ae40ef2f44a145bdcd322ca9d90 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Fri, 25 Aug 2023 15:47:23 +0200 Subject: [PATCH 041/440] fix(oidc-service-worker): gracefull timeout on firefox (release) (#1132) * fix(oidc-service-worker): gracefull timeout on firefox * Update OidcServiceWorker.ts (alpha) --- .../oidc-client-service-worker/src/OidcServiceWorker.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/packages/oidc-client-service-worker/src/OidcServiceWorker.ts b/packages/oidc-client-service-worker/src/OidcServiceWorker.ts index 7b675e59f..9702d2649 100644 --- a/packages/oidc-client-service-worker/src/OidcServiceWorker.ts +++ b/packages/oidc-client-service-worker/src/OidcServiceWorker.ts @@ -131,8 +131,7 @@ const handleFetch = async (event: FetchEvent) => { const newRequest = new Request(originalRequest, init); - // @ts-ignore -- TODO: review, waitUntil takes a promise, this returns a void - event.waitUntil(event.respondWith(fetch(newRequest))); + event.respondWith(fetch(newRequest)); return; } @@ -262,8 +261,7 @@ const handleFetch = async (event: FetchEvent) => { }); }); - // @ts-ignore -- TODO: review, waitUntil takes a promise, this returns a void - event.waitUntil(event.respondWith(maPromesse)); + event.respondWith(maPromesse); } }; From 9a05b9f13a7d429f044bf84d57af64d356999955 Mon Sep 17 00:00:00 2001 From: GitHub Date: Fri, 25 Aug 2023 13:50:35 +0000 Subject: [PATCH 042/440] [skip ci] Update version package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 89c9b6d53..6020c6114 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.3.3", + "version": "7.3.4", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 610bd06db..ea66b643f 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.3.3'; +export default '7.3.4'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index f0594efee..7eb133d68 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.3.3", + "version": "7.3.4", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 610bd06db..ea66b643f 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.3.3'; +export default '7.3.4'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index bc1020eb6..f80026ff4 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.3.3", + "version": "7.3.4", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 823a3c37351e39b0bb1290228f72c58f11a28960 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Tue, 5 Sep 2023 15:16:28 +0200 Subject: [PATCH 043/440] fix(oidc+serviceworker): better issueAt --- .../oidc-client-service-worker/src/types.ts | 1 + .../src/utils/tokens.ts | 27 ++++++++++++++- packages/oidc-client/src/parseTokens.ts | 34 +++++++++++++------ 3 files changed, 51 insertions(+), 11 deletions(-) diff --git a/packages/oidc-client-service-worker/src/types.ts b/packages/oidc-client-service-worker/src/types.ts index 911eb4f6b..61f3a0bc9 100644 --- a/packages/oidc-client-service-worker/src/types.ts +++ b/packages/oidc-client-service-worker/src/types.ts @@ -86,6 +86,7 @@ export type IdTokenPayload = { export type AccessTokenPayload = { exp: number; sub: string; + iat: number; } export type Tokens = { diff --git a/packages/oidc-client-service-worker/src/utils/tokens.ts b/packages/oidc-client-service-worker/src/utils/tokens.ts index 8504b9a42..80a9157db 100644 --- a/packages/oidc-client-service-worker/src/utils/tokens.ts +++ b/packages/oidc-client-service-worker/src/utils/tokens.ts @@ -1,6 +1,13 @@ /* eslint-disable simple-import-sort/exports */ import { TOKEN, TokenRenewMode } from '../constants'; -import { OidcConfig, OidcConfiguration, OidcServerConfiguration, Tokens } from '../types'; +import { + AccessTokenPayload, + IdTokenPayload, + OidcConfig, + OidcConfiguration, + OidcServerConfiguration, + Tokens +} from '../types'; import { countLetter } from './strings'; function parseJwt(token: string) { @@ -92,6 +99,22 @@ const isTokensOidcValid = ( return { isValid: true, reason: '' }; }; +function extractedIssueAt(tokens: Tokens, accessTokenPayload: AccessTokenPayload | null, _idTokenPayload : IdTokenPayload) { + if (!tokens.issued_at) { + if (accessTokenPayload && accessTokenPayload.iat) { + return accessTokenPayload.iat; + } else if (_idTokenPayload && _idTokenPayload.iat) { + return _idTokenPayload.iat; + } else { + const currentTimeUnixSecond = new Date().getTime() / 1000; + return currentTimeUnixSecond; + } + } else if (typeof tokens.issued_at == "string") { + return parseInt(tokens.issued_at, 10); + } + return tokens.issued_at; +} + function _hideTokens(tokens: Tokens, currentDatabaseElement: OidcConfig, configurationName: string) { if (!tokens.issued_at) { const currentTimeUnixSecond = new Date().getTime() / 1000; @@ -126,6 +149,8 @@ function _hideTokens(tokens: Tokens, currentDatabaseElement: OidcConfig, configu TOKEN.REFRESH_TOKEN + '_' + configurationName; } + tokens.issued_at = extractedIssueAt(tokens, accessTokenPayload, _idTokenPayload); + const expireIn = typeof tokens.expires_in == "string" ? parseInt(tokens.expires_in, 10) : tokens.expires_in; const idTokenExpiresAt = diff --git a/packages/oidc-client/src/parseTokens.ts b/packages/oidc-client/src/parseTokens.ts index cd10b11cb..c57816ca9 100644 --- a/packages/oidc-client/src/parseTokens.ts +++ b/packages/oidc-client/src/parseTokens.ts @@ -1,4 +1,4 @@ -import { sleepAsync } from './initWorker.js'; +import {sleepAsync} from './initWorker.js'; const b64DecodeUnicode = (str) => decodeURIComponent(Array.prototype.map.call(atob(str), (c) => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)).join('')); @@ -46,20 +46,29 @@ export const TokenRenewMode = { id_token_invalid: 'id_token_invalid', }; +function extractedIssueAt(tokens, accessTokenPayload, _idTokenPayload) { + if (!tokens.issuedAt) { + if (accessTokenPayload && accessTokenPayload.iat) { + return accessTokenPayload.iat; + } else if (_idTokenPayload && _idTokenPayload.iat) { + return _idTokenPayload.iat; + } else { + const currentTimeUnixSecond = new Date().getTime() / 1000; + return currentTimeUnixSecond; + } + } else if (typeof tokens.issuedAt == "string") { + return parseInt(tokens.issuedAt, 10); + } + return tokens.issuedAt; +} + export const setTokens = (tokens, oldTokens = null, tokenRenewMode: string):Tokens => { if (!tokens) { return null; } let accessTokenPayload; const expireIn = typeof tokens.expiresIn == "string" ? parseInt(tokens.expiresIn, 10) : tokens.expiresIn; - - if (!tokens.issuedAt) { - const currentTimeUnixSecond = new Date().getTime() / 1000; - tokens.issuedAt = currentTimeUnixSecond; - } else if (typeof tokens.issuedAt == "string") { - tokens.issuedAt = parseInt(tokens.issuedAt, 10); - } - + if (tokens.accessTokenPayload !== undefined) { accessTokenPayload = tokens.accessTokenPayload; } else { @@ -70,6 +79,8 @@ export const setTokens = (tokens, oldTokens = null, tokenRenewMode: string):Toke const idTokenExpireAt = (_idTokenPayload && _idTokenPayload.exp) ? _idTokenPayload.exp : Number.MAX_VALUE; const accessTokenExpiresAt = (accessTokenPayload && accessTokenPayload.exp) ? accessTokenPayload.exp : tokens.issuedAt + expireIn; + tokens.issuedAt = extractedIssueAt(tokens, accessTokenPayload, _idTokenPayload); + let expiresAt; if(tokens.expiresAt) { @@ -133,7 +144,10 @@ export const parseOriginalTokens = (tokens, oldTokens, tokenRenewMode: string) = export const computeTimeLeft = (refreshTimeBeforeTokensExpirationInSecond, expiresAt) => { const currentTimeUnixSecond = new Date().getTime() / 1000; - return Math.round(((expiresAt - refreshTimeBeforeTokensExpirationInSecond) - currentTimeUnixSecond)); + + const timeLeftSecond = expiresAt - currentTimeUnixSecond; + + return Math.round(timeLeftSecond - refreshTimeBeforeTokensExpirationInSecond); }; export const isTokensValid = (tokens) => { From 6941766614d18ff3c92bbd00bdf0583350b16b7f Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Thu, 7 Sep 2023 21:52:06 +0200 Subject: [PATCH 044/440] fix(service-worker): setAccessTokenToNavigateRequests always true (#1136) (release) --- packages/oidc-client-service-worker/src/OidcServiceWorker.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/oidc-client-service-worker/src/OidcServiceWorker.ts b/packages/oidc-client-service-worker/src/OidcServiceWorker.ts index 9702d2649..a3f892351 100644 --- a/packages/oidc-client-service-worker/src/OidcServiceWorker.ts +++ b/packages/oidc-client-service-worker/src/OidcServiceWorker.ts @@ -289,8 +289,8 @@ const handleMessage = (event: ExtendableMessageEvent) => { status: null, configurationName, hideAccessToken: !showAccessToken, - setAccessTokenToNavigateRequests: doNotSetAccessTokenToNavigateRequests || true, - convertAllRequestsToCorsExceptNavigate: convertAllRequestsToCorsExceptNavigate || false, + setAccessTokenToNavigateRequests: doNotSetAccessTokenToNavigateRequests ?? true, + convertAllRequestsToCorsExceptNavigate: convertAllRequestsToCorsExceptNavigate ?? false, }; currentDatabase = database[configurationName]; From 8165fab52b89ce20946378c5173783ef06f014ef Mon Sep 17 00:00:00 2001 From: GitHub Date: Thu, 7 Sep 2023 19:55:52 +0000 Subject: [PATCH 045/440] [skip ci] Update version package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 6020c6114..953e1e47f 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.3.4", + "version": "7.4.1", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index ea66b643f..7fd0c5df9 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.3.4'; +export default '7.4.1'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 7eb133d68..9fd4d1713 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.3.4", + "version": "7.4.1", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index ea66b643f..7fd0c5df9 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.3.4'; +export default '7.4.1'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index f80026ff4..ded42d171 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.3.4", + "version": "7.4.1", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 1980813234a63e13353b8e5623982e714b42ac12 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Thu, 14 Sep 2023 11:15:36 +0200 Subject: [PATCH 046/440] feat(demo): hack iframe unregister serviceworker (#1137) --- FAQ.md | 22 +++++++++++++++++++ .../public/staticwebapp.config.json | 9 ++++++++ examples/oidc-client-demo/vite.config.js | 7 +++++- .../public/staticwebapp.config.json | 3 +++ examples/react-oidc-demo/src/Home.tsx | 15 ++++++++++++- examples/react-oidc-demo/vite.config.js | 7 +++++- 6 files changed, 60 insertions(+), 3 deletions(-) create mode 100644 examples/oidc-client-demo/public/staticwebapp.config.json diff --git a/FAQ.md b/FAQ.md index da70b23bd..d6625ab96 100644 --- a/FAQ.md +++ b/FAQ.md @@ -105,3 +105,25 @@ We think that @axa-fr/oidc-client is a good choice for the following reasons :
@axa-fr/oidc-client is the simplest and cheapest.

+ + +## Good Security Practices : does a Hacker can unregister the Service Worker and retrieve tokens via an Iframe ? + +If you follow these 2 practices, it is impossible to retrieve tokens via an Iframe call and Service Worker unregistration. + +1 - Configure the CSP (Content Security Policy) correctly (server side). +example: + +````bash +server: { + headers: { + "Content-Security-Policy": "script-src 'self';", + }, + } +```` + +This will make impossible to inject dynamic script into an iframe. + +2 - Set up for **react** or your redirect callback for **oidc-client** at your beginning of your script of your application. +It should be configured before any fetch call to any services. +This will prevent from any XSS attacks. diff --git a/examples/oidc-client-demo/public/staticwebapp.config.json b/examples/oidc-client-demo/public/staticwebapp.config.json new file mode 100644 index 000000000..ccdf4d9d6 --- /dev/null +++ b/examples/oidc-client-demo/public/staticwebapp.config.json @@ -0,0 +1,9 @@ +{ + "navigationFallback": { + "rewrite": "index.html", + "exclude": ["*.{svg,png,jpg,gif}","*.{css,scss}","*.js"] + }, + "globalHeaders": { + "content-security-policy": "script-src 'self';" + } +} \ No newline at end of file diff --git a/examples/oidc-client-demo/vite.config.js b/examples/oidc-client-demo/vite.config.js index 755ce8f3c..e95902064 100644 --- a/examples/oidc-client-demo/vite.config.js +++ b/examples/oidc-client-demo/vite.config.js @@ -4,5 +4,10 @@ export default defineConfig({ build: { sourcemap: true, minify: false, - } + }, + server: { + headers: { + //"Content-Security-Policy": "script-src 'self';", + }, + }, }); diff --git a/examples/react-oidc-demo/public/staticwebapp.config.json b/examples/react-oidc-demo/public/staticwebapp.config.json index ba338eae6..ccdf4d9d6 100644 --- a/examples/react-oidc-demo/public/staticwebapp.config.json +++ b/examples/react-oidc-demo/public/staticwebapp.config.json @@ -2,5 +2,8 @@ "navigationFallback": { "rewrite": "index.html", "exclude": ["*.{svg,png,jpg,gif}","*.{css,scss}","*.js"] + }, + "globalHeaders": { + "content-security-policy": "script-src 'self';" } } \ No newline at end of file diff --git a/examples/react-oidc-demo/src/Home.tsx b/examples/react-oidc-demo/src/Home.tsx index 20353fce5..8cb99b060 100644 --- a/examples/react-oidc-demo/src/Home.tsx +++ b/examples/react-oidc-demo/src/Home.tsx @@ -1,7 +1,15 @@ import { useOidc } from '@axa-fr/react-oidc'; -import React from 'react'; +import React, {useEffect} from 'react'; import {useNavigate} from "react-router-dom"; + +/*const createIframeHack =() => { + const iframe = document.createElement('iframe'); + const html = 'Foo'; + iframe.srcdoc = html; + document.body.appendChild(iframe); +}*/ + export const Home = () => { const { login, logout, renewTokens, isAuthenticated } = useOidc(); const navigate = useNavigate(); @@ -9,6 +17,11 @@ export const Home = () => { const navigateProfile = () => { navigate("/profile"); }; + + /*useEffect(() => { + createIframeHack(); + }, []);*/ + return (
diff --git a/examples/react-oidc-demo/vite.config.js b/examples/react-oidc-demo/vite.config.js index e7b88685e..9fd73d00c 100644 --- a/examples/react-oidc-demo/vite.config.js +++ b/examples/react-oidc-demo/vite.config.js @@ -9,5 +9,10 @@ export default defineConfig({ build: { sourcemap: true, minify: false, - } + }, + server: { + headers: { + // "Content-Security-Policy": "script-src 'self' 'unsafe-inline';", + }, + }, }); From ff7ac6ae7defbd84067b4084222430ef07f15713 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Tue, 19 Sep 2023 12:41:41 +0200 Subject: [PATCH 047/440] feat(oidc): add dpop (#1139) (release) --- examples/oidc-client-demo/src/index.tsx | 1 + .../react-oidc-demo/src/configurations.ts | 1 + packages/oidc-client/README.md | 16 +- packages/oidc-client/src/crypto.ts | 17 +- packages/oidc-client/src/initSession.ts | 38 ++- packages/oidc-client/src/initWorker.ts | 40 ++- packages/oidc-client/src/jwt.ts | 248 ++++++++++++++++++ packages/oidc-client/src/login.ts | 82 ++++-- packages/oidc-client/src/oidc.ts | 97 +++++-- packages/oidc-client/src/oidcClient.ts | 4 + packages/oidc-client/src/requests.ts | 53 +++- packages/oidc-client/src/types.ts | 1 + packages/react-oidc/README.md | 5 +- packages/react-oidc/src/FetchToken.tsx | 8 +- readme.md | 3 +- 15 files changed, 525 insertions(+), 89 deletions(-) create mode 100644 packages/oidc-client/src/jwt.ts diff --git a/examples/oidc-client-demo/src/index.tsx b/examples/oidc-client-demo/src/index.tsx index fe65de5f7..211e0ac68 100644 --- a/examples/oidc-client-demo/src/index.tsx +++ b/examples/oidc-client-demo/src/index.tsx @@ -1,4 +1,5 @@ import { OidcClient } from '@axa-fr/oidc-client'; + class Router { getCustomHistory(){ const generateKey = () => diff --git a/examples/react-oidc-demo/src/configurations.ts b/examples/react-oidc-demo/src/configurations.ts index 99526d406..195191a54 100644 --- a/examples/react-oidc-demo/src/configurations.ts +++ b/examples/react-oidc-demo/src/configurations.ts @@ -16,6 +16,7 @@ export const configurationIdentityServer = { // monitor_session: true, extras: { youhou_demo: 'youhou' }, token_renew_mode: TokenRenewMode.access_token_invalid, + demonstrating_proof_of_possession: false, }; export const configurationIdentityServer1 = { diff --git a/packages/oidc-client/README.md b/packages/oidc-client/README.md index c3e1f0cd1..ac620cd18 100644 --- a/packages/oidc-client/README.md +++ b/packages/oidc-client/README.md @@ -30,8 +30,9 @@ We provide a wrapper **@axa-fr/react-oidc** for **React** (compatible next.js) a @axa-fr/oidc-client is: - **Secure** : - - With the use of Service Worker, your tokens (refresh_token and access_token) are not accessible to the JavaScript client code (big protection against XSS attacks) - - OIDC using client side Code Credential Grant with pkce only + - With Demonstrating Proof of Possession (DPoP), your access_token and refresh_token are not usable outside your browser context (big protection) + - With the use of Service Worker, your tokens (refresh_token and/or access_token) are not accessible to the JavaScript client code (if you follow good practices from [`FAQ`](https://github.com/AxaFrance/oidc-client/blob/main/FAQ.md) section) + - OIDC using client side Code Credential Grant with pkce only - **Lightweight** : Unpacked Size on npm is **274 kB** - **Simple** - refresh_token and access_token are auto refreshed in background @@ -112,6 +113,7 @@ export const configuration = { authority: 'https://demo.duendesoftware.com', service_worker_relative_url: '/OidcServiceWorker.js', service_worker_only: false, + demonstrating_proof_of_possession: true, // demonstrating proof of possession will work only if access_token is accessible from the client (This is because WebCrypto API is not available inside a Service Worker) }; const href = window.location.href; @@ -191,6 +193,7 @@ const configuration = { monitor_session: Boolean, // Add OpenID monitor session, default is false (more information https://openid.net/specs/openid-connect-session-1_0.html), if you need to set it to true consider https://infi.nl/nieuws/spa-necromancy/ token_renew_mode: String, // Optional, update tokens based on the selected token(s) lifetime: "access_token_or_id_token_invalid" (default), "access_token_invalid", "id_token_invalid" logout_tokens_to_invalidate: Array, // Optional tokens to invalidate during logout, default: ['access_token', 'refresh_token'] + demonstrating_proof_of_possession: Boolean, // Optional, default is false, if true, the the Demonstrating Proof of Possession will be activated //https://www.rfc-editor.org/rfc/rfc9449.html#name-protected-resource-access }; ``` @@ -316,6 +319,15 @@ export class OidcClient { * @returns A promise resolved with the user information, or rejected with an error. */ async userInfoAsync(noCache = false): Promise; + + /** + * Generate Demonstration of proof of possession. + * @param accessToken The access token to use. + * @param url The url to use. + * @param method The method to use. + * @returns A promise resolved with the proof of possession. + */ + async generateDemonstrationOfProofOfPossessionAsync(accessToken:string, url:string, method:string): Promise; } ``` diff --git a/packages/oidc-client/src/crypto.ts b/packages/oidc-client/src/crypto.ts index e99391035..d44370d13 100644 --- a/packages/oidc-client/src/crypto.ts +++ b/packages/oidc-client/src/crypto.ts @@ -44,7 +44,16 @@ export function textEncodeLite(str: string) { } return bufView; } - export const deriveChallengeAsync = (code: string): Promise => { + +export function base64urlOfHashOfASCIIEncodingAsync(code: string):Promise { + return new Promise((resolve, reject) => { + crypto.subtle.digest('SHA-256', textEncodeLite(code)).then(buffer => { + return resolve(urlSafe(new Uint8Array(buffer))); + }, error => reject(error)); + }); +} + +export const deriveChallengeAsync = (code: string): Promise => { if (code.length < 43 || code.length > 128) { return Promise.reject(new Error('Invalid code length.')); } @@ -53,9 +62,5 @@ export function textEncodeLite(str: string) { return Promise.reject(new Error('window.crypto.subtle is unavailable.')); } - return new Promise((resolve, reject) => { - crypto.subtle.digest('SHA-256', textEncodeLite(code)).then(buffer => { - return resolve(urlSafe(new Uint8Array(buffer))); - }, error => reject(error)); - }); + return base64urlOfHashOfASCIIEncodingAsync(code); }; diff --git a/packages/oidc-client/src/initSession.ts b/packages/oidc-client/src/initSession.ts index e3b96efb0..6fcf12d17 100644 --- a/packages/oidc-client/src/initSession.ts +++ b/packages/oidc-client/src/initSession.ts @@ -26,12 +26,28 @@ export const initSession = (configurationName, storage = sessionStorage) => { }; const setNonceAsync = (nonce) => { - localStorage[`oidc.nonce.${configurationName}`] = nonce.nonce; + storage[`oidc.nonce.${configurationName}`] = nonce.nonce; + }; + + const setDemonstratingProofOfPossessionJwkAsync = (jwk) => { + storage[`oidc.jwk.${configurationName}`] = JSON.stringify(jwk); + }; + + const getDemonstratingProofOfPossessionJwkAsync = () => { + return JSON.parse(storage[`oidc.jwk.${configurationName}`]); }; const getNonceAsync = async () => { // @ts-ignore - return { nonce: localStorage[`oidc.nonce.${configurationName}`] }; + return { nonce: storage[`oidc.nonce.${configurationName}`] }; + }; + + const setDemonstratingProofOfPossessionNonce = (dpopNonce:string) => { + storage[`oidc.dpop_nonce.${configurationName}`] = dpopNonce; + }; + + const getDemonstratingProofOfPossessionNonce = () => { + return storage[`oidc.dpop_nonce.${configurationName}`]; }; const getTokens = () => { @@ -41,17 +57,17 @@ export const initSession = (configurationName, storage = sessionStorage) => { return JSON.stringify({ tokens: JSON.parse(storage[`oidc.${configurationName}`]).tokens }); }; - let getLoginParamsCache = null; - const setLoginParams = (configurationName:string, data) => { - getLoginParamsCache = data; + let getLoginParamsCache = {}; + const setLoginParams = (data) => { + getLoginParamsCache[configurationName] = data; storage[`oidc.login.${configurationName}`] = JSON.stringify(data); }; - const getLoginParams = (configurationName) => { + const getLoginParams = () => { const dataString = storage[`oidc.login.${configurationName}`]; - if (!getLoginParamsCache) { - getLoginParamsCache = JSON.parse(dataString); + if (!getLoginParamsCache[configurationName]) { + getLoginParamsCache[configurationName] = JSON.parse(dataString); } - return getLoginParamsCache; + return getLoginParamsCache[configurationName]; }; const getStateAsync = async () => { @@ -85,5 +101,9 @@ export const initSession = (configurationName, storage = sessionStorage) => { setStateAsync, getCodeVerifierAsync, setCodeVerifierAsync, + setDemonstratingProofOfPossessionNonce, + getDemonstratingProofOfPossessionNonce, + setDemonstratingProofOfPossessionJwkAsync, + getDemonstratingProofOfPossessionJwkAsync, }; }; diff --git a/packages/oidc-client/src/initWorker.ts b/packages/oidc-client/src/initWorker.ts index 9567c9825..334409cfe 100644 --- a/packages/oidc-client/src/initWorker.ts +++ b/packages/oidc-client/src/initWorker.ts @@ -250,7 +250,7 @@ export const initWorkerAsync = async(serviceWorkerRelativeUrl, configurationName }; const setNonceAsync = (nonce) => { - sessionStorage['oidc.nonce'] = nonce.nonce; + sessionStorage[`oidc.nonce.${configurationName}`] = nonce.nonce; return sendMessageAsync(registration)({ type: 'setNonce', data: { nonce }, configurationName }); }; const getNonceAsync = async () => { @@ -259,25 +259,43 @@ export const initWorkerAsync = async(serviceWorkerRelativeUrl, configurationName // @ts-ignore let nonce = result.nonce; if (!nonce) { - nonce = sessionStorage['oidc.nonce']; + nonce = sessionStorage[`oidc.nonce.${configurationName}`]; console.warn('nonce not found in service worker, using sessionStorage'); } return { nonce }; }; - let getLoginParamsCache = null; - const setLoginParams = (configurationName:string, data) => { - getLoginParamsCache = data; + let getLoginParamsCache = {}; + const setLoginParams = (data) => { + getLoginParamsCache[configurationName] = data; localStorage[`oidc.login.${configurationName}`] = JSON.stringify(data); }; - const getLoginParams = (configurationName) => { + + const getLoginParams = () => { const dataString = localStorage[`oidc.login.${configurationName}`]; - if (!getLoginParamsCache) { - getLoginParamsCache = JSON.parse(dataString); + if (!getLoginParamsCache[configurationName]) { + getLoginParamsCache[configurationName] = JSON.parse(dataString); } - return getLoginParamsCache; + return getLoginParamsCache[configurationName]; + }; + + + const setDemonstratingProofOfPossessionNonce = (dpopNonce: string) => { + localStorage[`oidc.dpop_nonce.${configurationName}`] = dpopNonce; + }; + + const getDemonstratingProofOfPossessionNonce = () => { + return localStorage[`oidc.dpop_nonce.${configurationName}`]; + }; + + const setDemonstratingProofOfPossessionJwkAsync = (jwk) => { + localStorage[`oidc.jwk.${configurationName}`] = JSON.stringify(jwk); }; + const getDemonstratingProofOfPossessionJwkAsync = () => { + return JSON.parse(localStorage[`oidc.jwk.${configurationName}`]); + }; + const getStateAsync = async () => { const result = await sendMessageAsync(registration)({ type: 'getState', data: null, configurationName }); // @ts-ignore @@ -325,5 +343,9 @@ export const initWorkerAsync = async(serviceWorkerRelativeUrl, configurationName setStateAsync, getCodeVerifierAsync, setCodeVerifierAsync, + setDemonstratingProofOfPossessionNonce, + getDemonstratingProofOfPossessionNonce, + setDemonstratingProofOfPossessionJwkAsync, + getDemonstratingProofOfPossessionJwkAsync, }; }; diff --git a/packages/oidc-client/src/jwt.ts b/packages/oidc-client/src/jwt.ts new file mode 100644 index 000000000..01376ea66 --- /dev/null +++ b/packages/oidc-client/src/jwt.ts @@ -0,0 +1,248 @@ +// code base on https://coolaj86.com/articles/sign-jwt-webcrypto-vanilla-js/ + +// String (UCS-2) to Uint8Array +// +// because... JavaScript, Strings, and Buffers +// @ts-ignore +function strToUint8(str) { + return new TextEncoder().encode(str); +} + +// Binary String to URL-Safe Base64 +// +// btoa (Binary-to-Ascii) means "binary string" to base64 +// @ts-ignore +function binToUrlBase64(bin) { + return btoa(bin) + .replace(/\+/g, '-') + .replace(/\//g, '_') + .replace(/=+/g, ''); +} + +// UTF-8 to Binary String +// +// Because JavaScript has a strange relationship with strings +// https://coolaj86.com/articles/base64-unicode-utf-8-javascript-and-you/ +// @ts-ignore +function utf8ToBinaryString(str) { + const escstr = encodeURIComponent(str); + // replaces any uri escape sequence, such as %0A, + // with binary escape, such as 0x0A + const binstr = escstr.replace(/%([0-9A-F]{2})/g, function (match, p1) { + return String.fromCharCode(parseInt(p1, 16)); + }); + + return binstr; +} + +// Uint8Array to URL Safe Base64 +// +// the shortest distant between two encodings... binary string +// @ts-ignore +function uint8ToUrlBase64(uint8) { + let bin = ''; + // @ts-ignore + uint8.forEach(function(code) { + bin += String.fromCharCode(code); + }); + return binToUrlBase64(bin); +} + +// UCS-2 String to URL-Safe Base64 +// +// btoa doesn't work on UTF-8 strings +// @ts-ignore +function strToUrlBase64(str) { + return binToUrlBase64(utf8ToBinaryString(str)); +} + +export var JWT = {}; +// @ts-ignore +JWT.sign = (jwk, headers, claims, jwtHeaderType= 'dpop+jwt') => { + // Make a shallow copy of the key + // (to set ext if it wasn't already set) + jwk = Object.assign({}, jwk); + + // The headers should probably be empty + headers.typ = jwtHeaderType; + headers.alg = 'ES256'; + if (!headers.kid) { + // alternate: see thumbprint function below + headers.jwk = { kty: jwk.kty, crv: jwk.crv, x: jwk.x, y: jwk.y }; + } + + const jws = { + // @ts-ignore + // JWT "headers" really means JWS "protected headers" + protected: strToUrlBase64(JSON.stringify(headers)), + // @ts-ignore + // JWT "claims" are really a JSON-defined JWS "payload" + payload: strToUrlBase64(JSON.stringify(claims)) + }; + + // To import as EC (ECDSA, P-256, SHA-256, ES256) + const keyType = { + name: 'ECDSA', + namedCurve: 'P-256', + hash: {name: 'ES256'} + }; + + // To make re-exportable as JSON (or DER/PEM) + const exportable = true; + + // Import as a private key that isn't black-listed from signing + const privileges = ['sign']; + + // Actually do the import, which comes out as an abstract key type + // @ts-ignore + return window.crypto.subtle + // @ts-ignore + .importKey('jwk', jwk, keyType, exportable, privileges) + .then(function(privateKey) { + // Convert UTF-8 to Uint8Array ArrayBuffer + // @ts-ignore + const data = strToUint8(jws.protected + '.' + jws.payload); + + // The signature and hash should match the bit-entropy of the key + // https://tools.ietf.org/html/rfc7518#section-3 + const signatureType = {name: 'ECDSA', hash: {name: 'SHA-256'}}; + + return window.crypto.subtle.sign(signatureType, privateKey, data).then(function(signature) { + // returns an ArrayBuffer containing a JOSE (not X509) signature, + // which must be converted to Uint8 to be useful + // @ts-ignore + jws.signature = uint8ToUrlBase64(new Uint8Array(signature)); + + // JWT is just a "compressed", "protected" JWS + // @ts-ignore + return jws.protected + '.' + jws.payload + '.' + jws.signature; + }); + }); +}; + + +const EC = {}; +// @ts-ignore +EC.generate = function() { + const keyType = { + name: 'ECDSA', + namedCurve: 'P-256' + }; + const exportable = true; + const privileges = ['sign', 'verify']; + // @ts-ignore + return window.crypto.subtle.generateKey(keyType, exportable, privileges).then(function(key) { + // returns an abstract and opaque WebCrypto object, + // which in most cases you'll want to export as JSON to be able to save + return window.crypto.subtle.exportKey('jwk', key.privateKey); + }); +}; + +// Create a Public Key from a Private Key +// +// chops off the private parts +// @ts-ignore +EC.neuter = function(jwk) { + const copy = Object.assign({}, jwk); + delete copy.d; + copy.key_ops = ['verify']; + return copy; +}; + +export var JWK = {}; +// @ts-ignore +JWK.thumbprint = function(jwk) { + // lexigraphically sorted, no spaces + const sortedPub = '{"crv":"CRV","kty":"EC","x":"X","y":"Y"}' + .replace('CRV', jwk.crv) + .replace('X', jwk.x) + .replace('Y', jwk.y); + + // The hash should match the size of the key, + // but we're only dealing with P-256 + return window.crypto.subtle + .digest({ name: 'SHA-256' }, strToUint8(sortedPub)) + .then(function(hash) { + return uint8ToUrlBase64(new Uint8Array(hash)); + }); +}; + + +const guid = function () { + // RFC4122: The version 4 UUID is meant for generating UUIDs from truly-random or + // pseudo-random numbers. + // The algorithm is as follows: + // Set the two most significant bits (bits 6 and 7) of the + // clock_seq_hi_and_reserved to zero and one, respectively. + // Set the four most significant bits (bits 12 through 15) of the + // time_hi_and_version field to the 4-bit version number from + // Section 4.1.3. Version4 + // Set all the other bits to randomly (or pseudo-randomly) chosen + // values. + // UUID = time-low "-" time-mid "-"time-high-and-version "-"clock-seq-reserved and low(2hexOctet)"-" node + // time-low = 4hexOctet + // time-mid = 2hexOctet + // time-high-and-version = 2hexOctet + // clock-seq-and-reserved = hexOctet: + // clock-seq-low = hexOctet + // node = 6hexOctet + // Format: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx + // y could be 1000, 1001, 1010, 1011 since most significant two bits needs to be 10 + // y values are 8, 9, A, B + const guidHolder = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'; + const hex = '0123456789abcdef'; + let r = 0; + let guidResponse = ""; + for (let i = 0; i < 36; i++) { + if (guidHolder[i] !== '-' && guidHolder[i] !== '4') { + // each x and y needs to be random + r = Math.random() * 16 | 0; + } + + if (guidHolder[i] === 'x') { + guidResponse += hex[r]; + } else if (guidHolder[i] === 'y') { + // clock-seq-and-reserved first hex is filtered and remaining hex values are random + r &= 0x3; // bit and with 0011 to set pos 2 to zero ?0?? + r |= 0x8; // set pos 3 to 1 as 1??? + guidResponse += hex[r]; + } else { + guidResponse += guidHolder[i]; + } + } + + return guidResponse; +}; + + +export const generateJwkAsync = () => { + // @ts-ignore + return EC.generate().then(function(jwk) { + // console.info('Private Key:', JSON.stringify(jwk)); + // @ts-ignore + // console.info('Public Key:', JSON.stringify(EC.neuter(jwk))); + return jwk; + }); +} + +export const generateJwtDemonstratingProofOfPossessionAsync = (jwk, method = 'POST', url: string, extrasClaims={}) => { + + const claims = { + // https://www.rfc-editor.org/rfc/rfc9449.html#name-concept + jit: btoa(guid()), + htm: method, + htu: url, + iat: Math.round(Date.now() / 1000), + ...extrasClaims, + }; + // @ts-ignore + return JWK.thumbprint(jwk).then(function(kid) { + // @ts-ignore + return JWT.sign(jwk, { /*kid: kid*/ }, claims).then(function(jwt) { + // console.info('JWT:', jwt); + return jwt; + }); + }); +} + +export default EC; \ No newline at end of file diff --git a/packages/oidc-client/src/login.ts b/packages/oidc-client/src/login.ts index 375287f2f..f693bd30b 100644 --- a/packages/oidc-client/src/login.ts +++ b/packages/oidc-client/src/login.ts @@ -1,14 +1,18 @@ -import { generateRandom } from './crypto.js'; -import { eventNames } from './events.js'; -import { initSession } from './initSession.js'; -import { initWorkerAsync } from './initWorker.js'; -import { isTokensOidcValid } from './parseTokens.js'; -import { performAuthorizationRequestAsync, performFirstTokenRequestAsync } from './requests.js'; -import { getParseQueryStringFromLocation } from './route-utils.js'; -import { OidcConfiguration, StringMap } from './types.js'; +import {generateRandom} from './crypto.js'; +import {eventNames} from './events.js'; +import {initSession} from './initSession.js'; +import {initWorkerAsync} from './initWorker.js'; +import {isTokensOidcValid} from './parseTokens.js'; +import { + performAuthorizationRequestAsync, + performFirstTokenRequestAsync +} from './requests.js'; +import {getParseQueryStringFromLocation} from './route-utils.js'; +import {OidcConfiguration, StringMap} from './types.js'; +import {generateJwkAsync, generateJwtDemonstratingProofOfPossessionAsync} from "./jwt"; // eslint-disable-next-line @typescript-eslint/ban-types -export const defaultLoginAsync = (window, configurationName, configuration:OidcConfiguration, publishEvent :(string, any)=>void, initAsync:Function) => (callbackPath:string = undefined, extras:StringMap = null, isSilentSignin = false, scope:string = undefined) => { +export const defaultLoginAsync = (window, configurationName:string, configuration:OidcConfiguration, publishEvent :(string, any)=>void, initAsync:Function) => (callbackPath:string = undefined, extras:StringMap = null, isSilentSignin = false, scope:string = undefined) => { const originExtras = extras; extras = { ...extras }; const loginLocalAsync = async () => { @@ -42,14 +46,14 @@ export const defaultLoginAsync = (window, configurationName, configuration:OidcC const oidcServerConfiguration = await initAsync(configuration.authority, configuration.authority_configuration); let storage; if (serviceWorker) { - serviceWorker.setLoginParams(configurationName, { callbackPath: url, extras: originExtras }); + serviceWorker.setLoginParams({ callbackPath: url, extras: originExtras }); await serviceWorker.initAsync(oidcServerConfiguration, 'loginAsync', configuration); await serviceWorker.setNonceAsync(nonce); serviceWorker.startKeepAliveServiceWorker(); storage = serviceWorker; } else { const session = initSession(configurationName, configuration.storage ?? sessionStorage); - session.setLoginParams(configurationName, { callbackPath: url, extras: originExtras }); + session.setLoginParams({ callbackPath: url, extras: originExtras }); await session.setNonceAsync(nonce); storage = session; } @@ -91,7 +95,7 @@ export const loginCallbackAsync = (oidc) => async (isSilentSignin = false) => { await serviceWorker.initAsync(oidcServerConfiguration, 'loginCallbackAsync', configuration); await serviceWorker.setSessionStateAsync(sessionState); nonceData = await serviceWorker.getNonceAsync(); - getLoginParams = serviceWorker.getLoginParams(oidc.configurationName); + getLoginParams = serviceWorker.getLoginParams(); state = await serviceWorker.getStateAsync(); serviceWorker.startKeepAliveServiceWorker(); storage = serviceWorker; @@ -99,7 +103,7 @@ export const loginCallbackAsync = (oidc) => async (isSilentSignin = false) => { const session = initSession(oidc.configurationName, configuration.storage ?? sessionStorage); await session.setSessionStateAsync(sessionState); nonceData = await session.getNonceAsync(); - getLoginParams = session.getLoginParams(oidc.configurationName); + getLoginParams = session.getLoginParams(); state = await session.getStateAsync(); storage = session; } @@ -135,8 +139,25 @@ export const loginCallbackAsync = (oidc) => async (isSilentSignin = false) => { } } } + + const url = oidcServerConfiguration.tokenEndpoint; + const headersExtras = {}; + if(configuration.demonstrating_proof_of_possession) { + const jwk = await generateJwkAsync(); + if (serviceWorker) { + await serviceWorker.setDemonstratingProofOfPossessionJwkAsync(jwk); + } else { + const session = initSession(oidc.configurationName, configuration.storage); + await session.setDemonstratingProofOfPossessionJwkAsync(jwk); + } + headersExtras['DPoP'] = await generateJwtDemonstratingProofOfPossessionAsync(jwk, 'POST', url); + } - const tokenResponse = await performFirstTokenRequestAsync(storage)(oidcServerConfiguration.tokenEndpoint, { ...data, ...extras }, oidc.configuration.token_renew_mode, tokenRequestTimeout); + const tokenResponse = await performFirstTokenRequestAsync(storage)(url, + { ...data, ...extras }, + headersExtras, + oidc.configuration.token_renew_mode, + tokenRequestTimeout); if (!tokenResponse.success) { throw new Error('Token request failed'); @@ -144,13 +165,8 @@ export const loginCallbackAsync = (oidc) => async (isSilentSignin = false) => { let loginParams; const formattedTokens = tokenResponse.data.tokens; - if (serviceWorker) { - await serviceWorker.initAsync(redirectUri, 'syncTokensAsync', configuration); - loginParams = serviceWorker.getLoginParams(oidc.configurationName); - } else { - const session = initSession(oidc.configurationName, configuration.storage); - loginParams = session.getLoginParams(oidc.configurationName); - } + const demonstratingProofOfPossessionNonce = tokenResponse.data.demonstratingProofOfPossessionNonce; + // @ts-ignore if (tokenResponse.data.state !== extras.state) { throw new Error('state is not valid'); @@ -159,6 +175,30 @@ export const loginCallbackAsync = (oidc) => async (isSilentSignin = false) => { if (!isValid) { throw new Error(`Tokens are not OpenID valid, reason: ${reason}`); } + + if(serviceWorker){ + if(formattedTokens.refreshToken && !formattedTokens.refreshToken.includes("SECURED_BY_OIDC_SERVICE_WORKER")) { + throw new Error("Refresh token should be hidden by service worker"); + } + + if(demonstratingProofOfPossessionNonce && formattedTokens.accessToken && formattedTokens.accessToken.includes("SECURED_BY_OIDC_SERVICE_WORKER")) { + throw new Error("Demonstration of proof of possession require Access token not hidden by service worker"); + } + } + + if (serviceWorker) { + await serviceWorker.initAsync(redirectUri, 'syncTokensAsync', configuration); + loginParams = serviceWorker.getLoginParams(); + if(demonstratingProofOfPossessionNonce) { + await serviceWorker.setDemonstratingProofOfPossessionNonce(demonstratingProofOfPossessionNonce); + } + } else { + const session = initSession(oidc.configurationName, configuration.storage); + loginParams = session.getLoginParams(); + if(demonstratingProofOfPossessionNonce) { + await session.setDemonstratingProofOfPossessionNonce(demonstratingProofOfPossessionNonce); + } + } await oidc.startCheckSessionAsync(oidcServerConfiguration.checkSessionIframe, clientId, sessionState, isSilentSignin); oidc.publishEvent(eventNames.loginCallbackAsync_end, {}); diff --git a/packages/oidc-client/src/oidc.ts b/packages/oidc-client/src/oidc.ts index 017987cc7..18fafb5df 100644 --- a/packages/oidc-client/src/oidc.ts +++ b/packages/oidc-client/src/oidc.ts @@ -1,23 +1,20 @@ -import { startCheckSessionAsync as defaultStartCheckSessionAsync } from './checkSession.js'; -import { CheckSessionIFrame } from './checkSessionIFrame.js'; -import { eventNames } from './events.js'; -import { initSession } from './initSession.js'; -import { initWorkerAsync, sleepAsync } from './initWorker.js'; -import { defaultLoginAsync, loginCallbackAsync } from './login.js'; -import { destroyAsync, logoutAsync } from './logout.js'; -import { - computeTimeLeft, - isTokensOidcValid, - setTokens, TokenRenewMode, - Tokens, -} from './parseTokens.js'; -import { autoRenewTokens, renewTokensAndStartTimerAsync } from './renewTokens.js'; -import { fetchFromIssuer, performTokenRequestAsync } from './requests.js'; -import { getParseQueryStringFromLocation } from './route-utils.js'; -import defaultSilentLoginAsync, { _silentLoginAsync } from './silentLogin.js'; +import {startCheckSessionAsync as defaultStartCheckSessionAsync} from './checkSession.js'; +import {CheckSessionIFrame} from './checkSessionIFrame.js'; +import {eventNames} from './events.js'; +import {initSession} from './initSession.js'; +import {initWorkerAsync, sleepAsync} from './initWorker.js'; +import {defaultLoginAsync, loginCallbackAsync} from './login.js'; +import {destroyAsync, logoutAsync} from './logout.js'; +import {computeTimeLeft, isTokensOidcValid, setTokens, TokenRenewMode, Tokens,} from './parseTokens.js'; +import {autoRenewTokens, renewTokensAndStartTimerAsync} from './renewTokens.js'; +import {fetchFromIssuer, performTokenRequestAsync} from './requests.js'; +import {getParseQueryStringFromLocation} from './route-utils.js'; +import defaultSilentLoginAsync, {_silentLoginAsync} from './silentLogin.js'; import timer from './timer.js'; -import { AuthorityConfiguration, Fetch, OidcConfiguration, StringMap } from './types.js'; -import { userInfoAsync } from './user.js'; +import {AuthorityConfiguration, Fetch, OidcConfiguration, StringMap} from './types.js'; +import {userInfoAsync} from './user.js'; +import {base64urlOfHashOfASCIIEncodingAsync} from "./crypto"; +import {generateJwtDemonstratingProofOfPossessionAsync} from "./jwt"; export const getFetchDefault = () => { return fetch; @@ -93,12 +90,6 @@ export class Oidc { if (refresh_time_before_tokens_expiration_in_second > 60) { refresh_time_before_tokens_expiration_in_second = refresh_time_before_tokens_expiration_in_second - Math.floor(Math.random() * 40); } - if (!configuration.logout_tokens_to_invalidate) { - configuration.logout_tokens_to_invalidate = ['access_token', 'refresh_token']; - } - if (!configuration.authority_timeout_wellknowurl_in_millisecond) { - configuration.authority_timeout_wellknowurl_in_millisecond = 10000; - } this.configuration = { ...configuration, silent_login_uri, @@ -106,6 +97,9 @@ export class Oidc { refresh_time_before_tokens_expiration_in_second, silent_login_timeout: configuration.silent_login_timeout ?? 12000, token_renew_mode: configuration.token_renew_mode ?? TokenRenewMode.access_token_or_id_token_invalid, + demonstrating_proof_of_possession: configuration.demonstrating_proof_of_possession ?? false, + authority_timeout_wellknowurl_in_millisecond: configuration.authority_timeout_wellknowurl_in_millisecond ?? 10000, + logout_tokens_to_invalidate: configuration.logout_tokens_to_invalidate ?? ['access_token', 'refresh_token'], }; this.getFetch = getFetch ?? getFetchDefault; this.configurationName = configurationName; @@ -259,7 +253,7 @@ Please checkout that you are using OIDC hook inside a { + + const configuration = this.configuration; + const claimsExtras = {ath: await base64urlOfHashOfASCIIEncodingAsync(accessToken),}; + + const serviceWorker = await initWorkerAsync(configuration.service_worker_relative_url, this.configurationName); + let demonstratingProofOfPossessionNonce:string = null; + let jwk; + if (serviceWorker) { + demonstratingProofOfPossessionNonce = await serviceWorker.getDemonstratingProofOfPossessionNonce(); + jwk = await serviceWorker.getDemonstratingProofOfPossessionJwkAsync(); + } else { + const session = initSession(this.configurationName, configuration.storage); + jwk = await session.getDemonstratingProofOfPossessionJwkAsync(); + demonstratingProofOfPossessionNonce = await session.getDemonstratingProofOfPossessionNonce(); + } + + if (demonstratingProofOfPossessionNonce) { + claimsExtras['nonce'] = demonstratingProofOfPossessionNonce; + } + + return await generateJwtDemonstratingProofOfPossessionAsync(jwk, method, url, claimsExtras); + } + async syncTokensInfoAsync(configuration, configurationName, currentTokens, forceRefresh = false) { // Service Worker can be killed by the browser (when it wants,for example after 10 seconds of inactivity, so we retreieve the session if it happen) // const configuration = this.configuration; diff --git a/packages/oidc-client/src/oidcClient.ts b/packages/oidc-client/src/oidcClient.ts index c542e16d7..df2b06df4 100644 --- a/packages/oidc-client/src/oidcClient.ts +++ b/packages/oidc-client/src/oidcClient.ts @@ -65,6 +65,10 @@ export class OidcClient { return this._oidc.configuration; } + async generateDemonstrationOfProofOfPossessionAsync(accessToken:string, url:string, method:string) : Promise { + return this._oidc.generateDemonstrationOfProofOfPossessionAsync(accessToken, url, method); + } + async getValidTokenAsync(waitMs = 200, numberWait = 50): Promise { return getValidTokenAsync(this._oidc, waitMs, numberWait); } diff --git a/packages/oidc-client/src/requests.ts b/packages/oidc-client/src/requests.ts index 7bf644f00..655cf4cc0 100644 --- a/packages/oidc-client/src/requests.ts +++ b/packages/oidc-client/src/requests.ts @@ -3,6 +3,7 @@ import { deriveChallengeAsync, generateRandom } from './crypto.js'; import { OidcAuthorizationServiceConfiguration } from './oidc.js'; import { parseOriginalTokens } from './parseTokens.js'; import { Fetch, StringMap } from './types.js'; +import EC, {JWK, JWT} from './jwt'; const oneHourSecond = 60 * 60; export const fetchFromIssuer = (fetch) => async (openIdIssuerUrl: string, timeCacheSecond = oneHourSecond, storage = window.sessionStorage, timeoutMs = 10000): @@ -83,7 +84,21 @@ export const performRevocationRequestAsync = (fetch) => async (url, token, token }; }; -export const performTokenRequestAsync = (fetch:Fetch) => async (url, details, extras, oldTokens, tokenRenewMode: string, timeoutMs = 10000) => { + +type PerformTokenRequestResponse = { + success: boolean; + status?: number; + data?: any; + demonstratingProofOfPossessionNonce?: string; +} + +export const performTokenRequestAsync = (fetch:Fetch) => async (url:string, + details, + extras, + oldTokens, + headersExtras = {}, + tokenRenewMode: string, + timeoutMs = 10000):Promise => { for (const [key, value] of Object.entries(extras)) { if (details[key] === undefined) { details[key] = value; @@ -97,21 +112,28 @@ export const performTokenRequestAsync = (fetch:Fetch) => async (url, details, ex formBody.push(`${encodedKey}=${encodedValue}`); } const formBodyString = formBody.join('&'); - + const response = await internalFetch(fetch)(url, { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8', + ...headersExtras }, body: formBodyString, }, timeoutMs); if (response.status !== 200) { - return { success: false, status: response.status }; + return { success: false, status: response.status, demonstratingProofOfPossessionNonce:null }; } const tokens = await response.json(); + + let demonstratingProofOfPossessionNonce = null; + if( response.headers.has(demonstratingProofOfPossessionNonceResponseHeader)){ + demonstratingProofOfPossessionNonce = response.headers.get(demonstratingProofOfPossessionNonceResponseHeader); + } return { success: true, data: parseOriginalTokens(tokens, oldTokens, tokenRenewMode), + demonstratingProofOfPossessionNonce: demonstratingProofOfPossessionNonce, }; }; @@ -137,13 +159,18 @@ export const performAuthorizationRequestAsync = (storage: any) => async (url, ex window.location.href = `${url}${queryString}`; }; -export const performFirstTokenRequestAsync = (storage:any) => async (url, extras, tokenRenewMode: string, timeoutMs = 10000) => { - extras = extras ? { ...extras } : {}; - extras.code_verifier = await storage.getCodeVerifierAsync(); +const demonstratingProofOfPossessionNonceResponseHeader = "DPoP-Nonce"; +export const performFirstTokenRequestAsync = (storage:any) => async (url, + formBodyExtras, + headersExtras, + tokenRenewMode: string, + timeoutMs = 10000) => { + formBodyExtras = formBodyExtras ? { ...formBodyExtras } : {}; + formBodyExtras.code_verifier = await storage.getCodeVerifierAsync(); const formBody = []; - for (const property in extras) { + for (const property in formBodyExtras) { const encodedKey = encodeURIComponent(property); - const encodedValue = encodeURIComponent(extras[property]); + const encodedValue = encodeURIComponent(formBodyExtras[property]); formBody.push(`${encodedKey}=${encodedValue}`); } const formBodyString = formBody.join('&'); @@ -151,6 +178,7 @@ export const performFirstTokenRequestAsync = (storage:any) => async (url, extras method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8', + ...headersExtras, }, body: formBodyString, }, timeoutMs); @@ -158,12 +186,17 @@ export const performFirstTokenRequestAsync = (storage:any) => async (url, extras if (response.status !== 200) { return { success: false, status: response.status }; } + let demonstratingProofOfPossessionNonce:string= null; + if( response.headers.has(demonstratingProofOfPossessionNonceResponseHeader)){ + demonstratingProofOfPossessionNonce = response.headers.get(demonstratingProofOfPossessionNonceResponseHeader); + } const tokens = await response.json(); return { success: true, data: { - state: extras.state, + state: formBodyExtras.state, tokens: parseOriginalTokens(tokens, null, tokenRenewMode), - }, + demonstratingProofOfPossessionNonce, + }, }; }; diff --git a/packages/oidc-client/src/types.ts b/packages/oidc-client/src/types.ts index 47e061106..16f3b0db0 100644 --- a/packages/oidc-client/src/types.ts +++ b/packages/oidc-client/src/types.ts @@ -27,6 +27,7 @@ export type OidcConfiguration = { monitor_session?: boolean; token_renew_mode?: string; logout_tokens_to_invalidate?:Array; + demonstrating_proof_of_possession?:boolean; }; export interface StringMap { diff --git a/packages/react-oidc/README.md b/packages/react-oidc/README.md index bd2551426..6d3986f16 100644 --- a/packages/react-oidc/README.md +++ b/packages/react-oidc/README.md @@ -31,7 +31,8 @@ We provide a wrapper **@axa-fr/react-oidc** for **React** (compatible next.js) a @axa-fr/react is: - **Secure** : - - With the use of Service Worker, your tokens (refresh_token and access_token) are not accessible to the JavaScript client code (big protection against XSS attacks) + - With Demonstrating Proof of Possession (DPoP), your access_token and refresh_token are not usable outside your browser context (big protection) + - With the use of Service Worker, your tokens (refresh_token and/or access_token) are not accessible to the JavaScript client code (if you follow good practices from [`FAQ`](https://github.com/AxaFrance/oidc-client/blob/main/FAQ.md) section) - OIDC using client side Code Credential Grant with pkce only - **Lightweight** : Unpacked Size on npm is **274 kB** - **Simple** @@ -141,6 +142,7 @@ const configuration = { authority: "https://demo.duendesoftware.com", service_worker_relative_url: "/OidcServiceWorker.js", // just comment that line to disable service worker mode service_worker_only: false, + demonstrating_proof_of_possession: true, // demonstrating proof of possession will work only if access_token is accessible from the client (This is because WebCrypto API is not available inside a Service Worker) }; const App = () => ( @@ -197,6 +199,7 @@ const configuration = { onLogoutFromSameTab: Function, // Optional, can be set to override the default behavior, this function is triggered when a user is logged out from the same tab when session_monitor is active token_renew_mode: String, // Optional, update tokens based on the selected token(s) lifetime: "access_token_or_id_token_invalid" (default), "access_token_invalid", "id_token_invalid" logout_tokens_to_invalidate: Array, // Optional tokens to invalidate during logout, default: ['access_token', 'refresh_token'] + demonstrating_proof_of_possession: Boolean, // Optional, default is false, if true, the the Demonstrating Proof of Possession will be activated //https://www.rfc-editor.org/rfc/rfc9449.html#name-protected-resource-access }.isRequired, }; diff --git a/packages/react-oidc/src/FetchToken.tsx b/packages/react-oidc/src/FetchToken.tsx index e8d1c9e59..13f4c0a10 100644 --- a/packages/react-oidc/src/FetchToken.tsx +++ b/packages/react-oidc/src/FetchToken.tsx @@ -27,7 +27,13 @@ const fetchWithToken = (fetch: Fetch, getOidcWithConfigurationName: () => OidcCl headers.set('Accept', 'application/json'); } if (accessToken) { - headers.set('Authorization', `Bearer ${accessToken}`); + if(oidc.configuration.demonstrating_proof_of_possession){ + const demonstrationOdProofOfPossession = await oidc.generateDemonstrationOfProofOfPossessionAsync(accessToken, url.toString(), optionTmp.method); + headers.set('Authorization', `PoP ${accessToken}`); + headers.set('DPoP', demonstrationOdProofOfPossession); + } else{ + headers.set('Authorization', `Bearer ${accessToken}`); + } if (!optionTmp.credentials) { optionTmp.credentials = 'same-origin'; } diff --git a/readme.md b/readme.md index 27fd11420..e4316d072 100644 --- a/readme.md +++ b/readme.md @@ -38,7 +38,8 @@ Demos: **@axa-fr/oidc-client** is: - **Secure** : - - With the use of Service Worker, your tokens (refresh_token and access_token) are not accessible to the JavaScript client code (big protection against XSS attacks) + - With Demonstrating Proof of Possession (DPoP), your access_token and refresh_token are not usable outside your browser context (big protection) + - With the use of Service Worker, your tokens (refresh_token and/or access_token) are not accessible to the JavaScript client code (if you follow good practices from [`FAQ`](https://github.com/AxaFrance/oidc-client/blob/main/FAQ.md) section) - OIDC using client side Code Credential Grant with pkce only - **Lightweight** : Unpacked Size on npm is **274 kB** - **Simple** From 2e5b85670e7929a0b216fe695999a8cddcd2d3a8 Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 19 Sep 2023 14:09:33 +0000 Subject: [PATCH 048/440] [skip ci] Update version package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 953e1e47f..779bd0798 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.4.1", + "version": "7.5.0", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 7fd0c5df9..f4201f28b 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.4.1'; +export default '7.5.0'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 9fd4d1713..57f597dbb 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.4.1", + "version": "7.5.0", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 7fd0c5df9..f4201f28b 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.4.1'; +export default '7.5.0'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index ded42d171..0488ded9c 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.4.1", + "version": "7.5.0", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 60d9c4e68622f81ecceaf480de21d4646ae909f1 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Wed, 20 Sep 2023 17:55:45 +0200 Subject: [PATCH 049/440] fix(oidc): clean link with service worker (#1141) (release) --- ...e-static-web-apps-black-rock-0dc6b0d03.yml | 2 +- ...-static-web-apps-icy-glacier-004ab4303.yml | 2 +- .../src/OidcServiceWorker.ts | 18 +++++++++++++ .../oidc-client-service-worker/src/types.ts | 6 ++++- .../src/utils/__tests__/domains.spec.ts | 2 ++ .../src/utils/__tests__/testHelper.ts | 2 ++ packages/oidc-client/README.md | 2 +- packages/oidc-client/src/initWorker.ts | 25 +++++++++++-------- packages/react-oidc/README.md | 2 +- 9 files changed, 46 insertions(+), 15 deletions(-) diff --git a/.github/workflows/azure-static-web-apps-black-rock-0dc6b0d03.yml b/.github/workflows/azure-static-web-apps-black-rock-0dc6b0d03.yml index 68c99a0ce..84e09145e 100644 --- a/.github/workflows/azure-static-web-apps-black-rock-0dc6b0d03.yml +++ b/.github/workflows/azure-static-web-apps-black-rock-0dc6b0d03.yml @@ -56,7 +56,7 @@ jobs: # For more information regarding Static Web App workflow configurations, please visit: https://aka.ms/swaworkflowconfig app_location: "/examples/react-oidc-demo/dist" # App source code path api_location: "" # Api source code path - optional - output_location: "dist" # Built app content directory - optional + #output_location: "dist" # Built app content directory - optional ###### End of Repository/Build Configurations ###### close_pull_request_job: diff --git a/.github/workflows/azure-static-web-apps-icy-glacier-004ab4303.yml b/.github/workflows/azure-static-web-apps-icy-glacier-004ab4303.yml index 938ba00dd..b4f7a1d4e 100644 --- a/.github/workflows/azure-static-web-apps-icy-glacier-004ab4303.yml +++ b/.github/workflows/azure-static-web-apps-icy-glacier-004ab4303.yml @@ -56,7 +56,7 @@ jobs: # For more information regarding Static Web App workflow configurations, please visit: https://aka.ms/swaworkflowconfig app_location: "/examples/oidc-client-demo/dist" # App source code path api_location: "" # Api source code path - optional - output_location: "dist" # Built app content directory - optional + #output_location: "dist" # Built app content directory - optional ###### End of Repository/Build Configurations ###### close_pull_request_job: diff --git a/packages/oidc-client-service-worker/src/OidcServiceWorker.ts b/packages/oidc-client-service-worker/src/OidcServiceWorker.ts index a3f892351..f0bd05557 100644 --- a/packages/oidc-client-service-worker/src/OidcServiceWorker.ts +++ b/packages/oidc-client-service-worker/src/OidcServiceWorker.ts @@ -291,6 +291,8 @@ const handleMessage = (event: ExtendableMessageEvent) => { hideAccessToken: !showAccessToken, setAccessTokenToNavigateRequests: doNotSetAccessTokenToNavigateRequests ?? true, convertAllRequestsToCorsExceptNavigate: convertAllRequestsToCorsExceptNavigate ?? false, + demonstratingProofOfPossessionNonce: null, + demonstratingProofOfPossessionJwkJson: null, }; currentDatabase = database[configurationName]; @@ -367,6 +369,22 @@ const handleMessage = (event: ExtendableMessageEvent) => { } return; } + case 'setDemonstratingProofOfPossessionNonce': + currentDatabase.demonstratingProofOfPossessionNonce = data.data.demonstratingProofOfPossessionNonce; + port.postMessage({ configurationName }); + return; + case 'getDemonstratingProofOfPossessionNonce': + const demonstratingProofOfPossessionNonce = currentDatabase.demonstratingProofOfPossessionNonce; + port.postMessage({ configurationName, demonstratingProofOfPossessionNonce }); + return; + case 'setDemonstratingProofOfPossessionJwk': + currentDatabase.demonstratingProofOfPossessionJwkJson = data.data.demonstratingProofOfPossessionJwkJson; + port.postMessage({ configurationName }); + return; + case 'getDemonstratingProofOfPossessionJwk': + const demonstratingProofOfPossessionJwkJson = currentDatabase.demonstratingProofOfPossessionJwkJson; + port.postMessage({ configurationName, demonstratingProofOfPossessionJwkJson }); + return; case 'setState': currentDatabase.state = data.data.state; port.postMessage({ configurationName }); diff --git a/packages/oidc-client-service-worker/src/types.ts b/packages/oidc-client-service-worker/src/types.ts index 61f3a0bc9..d669b0b96 100644 --- a/packages/oidc-client-service-worker/src/types.ts +++ b/packages/oidc-client-service-worker/src/types.ts @@ -31,7 +31,7 @@ export interface FetchHeaders extends Headers { } export type Status = 'LOGGED' | 'LOGGED_IN' | 'LOGGED_OUT' | 'NOT_CONNECTED' | 'LOGOUT_FROM_ANOTHER_TAB' | 'SESSION_LOST' | 'REQUIRE_SYNC_TOKENS' | 'FORCE_REFRESH' | null; -export type MessageEventType = 'clear' | 'init' | 'setState' | 'getState' | 'setCodeVerifier' | 'getCodeVerifier' | 'setSessionState' | 'getSessionState' | 'setNonce' | 'getNonce'; +export type MessageEventType = 'clear' | 'init' | 'setState' | 'getState' | 'setCodeVerifier' | 'getCodeVerifier' | 'setSessionState' | 'getSessionState' | 'setNonce' | 'getNonce' | 'setDemonstratingProofOfPossessionNonce' | 'getDemonstratingProofOfPossessionNonce' | 'setDemonstratingProofOfPossessionJwk' | 'getDemonstratingProofOfPossessionJwk'; export type MessageData = { status: Status; @@ -41,6 +41,8 @@ export type MessageData = { state: string; codeVerifier: string; sessionState: string; + demonstratingProofOfPossessionNonce: string; + demonstratingProofOfPossessionJwkJson: string; nonce: Nonce; } @@ -68,6 +70,8 @@ export type OidcConfig = { hideAccessToken: boolean; convertAllRequestsToCorsExceptNavigate: boolean, setAccessTokenToNavigateRequests: boolean, + demonstratingProofOfPossessionNonce: string | null; + demonstratingProofOfPossessionJwkJson: string | null; } export type IdTokenPayload = { diff --git a/packages/oidc-client-service-worker/src/utils/__tests__/domains.spec.ts b/packages/oidc-client-service-worker/src/utils/__tests__/domains.spec.ts index 6794c76b8..36a01768d 100644 --- a/packages/oidc-client-service-worker/src/utils/__tests__/domains.spec.ts +++ b/packages/oidc-client-service-worker/src/utils/__tests__/domains.spec.ts @@ -51,6 +51,8 @@ describe('domains', () => { hideAccessToken: true, convertAllRequestsToCorsExceptNavigate: false, setAccessTokenToNavigateRequests: true, + demonstratingProofOfPossessionNonce: null, + demonstratingProofOfPossessionJwkJson: null, }, }; diff --git a/packages/oidc-client-service-worker/src/utils/__tests__/testHelper.ts b/packages/oidc-client-service-worker/src/utils/__tests__/testHelper.ts index d620bab03..0e29f7476 100644 --- a/packages/oidc-client-service-worker/src/utils/__tests__/testHelper.ts +++ b/packages/oidc-client-service-worker/src/utils/__tests__/testHelper.ts @@ -125,6 +125,8 @@ class OidcConfigBuilder { hideAccessToken: true, convertAllRequestsToCorsExceptNavigate: false, setAccessTokenToNavigateRequests: true, + demonstratingProofOfPossessionNonce: null, + demonstratingProofOfPossessionJwkJson: null, }; public withTestingDefault(): OidcConfigBuilder { diff --git a/packages/oidc-client/README.md b/packages/oidc-client/README.md index ac620cd18..b617635aa 100644 --- a/packages/oidc-client/README.md +++ b/packages/oidc-client/README.md @@ -113,7 +113,7 @@ export const configuration = { authority: 'https://demo.duendesoftware.com', service_worker_relative_url: '/OidcServiceWorker.js', service_worker_only: false, - demonstrating_proof_of_possession: true, // demonstrating proof of possession will work only if access_token is accessible from the client (This is because WebCrypto API is not available inside a Service Worker) + demonstrating_proof_of_possession: false, // demonstrating proof of possession will work only if access_token is accessible from the client (This is because WebCrypto API is not available inside a Service Worker) }; const href = window.location.href; diff --git a/packages/oidc-client/src/initWorker.ts b/packages/oidc-client/src/initWorker.ts index 334409cfe..d073c5f09 100644 --- a/packages/oidc-client/src/initWorker.ts +++ b/packages/oidc-client/src/initWorker.ts @@ -146,7 +146,7 @@ export const excludeOs = (operatingSystem) => { return false; }; -const sendMessageAsync = (registration) => (data) => { +const sendMessageAsync = (registration) => (data) : Promise => { return new Promise(function(resolve, reject) { const messageChannel = new MessageChannel(); messageChannel.port1.onmessage = function (event) { @@ -279,21 +279,26 @@ export const initWorkerAsync = async(serviceWorkerRelativeUrl, configurationName return getLoginParamsCache[configurationName]; }; - - const setDemonstratingProofOfPossessionNonce = (dpopNonce: string) => { - localStorage[`oidc.dpop_nonce.${configurationName}`] = dpopNonce; + const setDemonstratingProofOfPossessionNonce = (demonstratingProofOfPossessionNonce: string) => { + sendMessageAsync(registration)({ type: 'setDemonstratingProofOfPossessionNonce', data: { demonstratingProofOfPossessionNonce }, configurationName }); }; - const getDemonstratingProofOfPossessionNonce = () => { - return localStorage[`oidc.dpop_nonce.${configurationName}`]; + const getDemonstratingProofOfPossessionNonce = async () => { + const result = await sendMessageAsync(registration)({type: 'getDemonstratingProofOfPossessionNonce', data: null, configurationName}); + return result.demonstratingProofOfPossessionNonce; }; - const setDemonstratingProofOfPossessionJwkAsync = (jwk) => { - localStorage[`oidc.jwk.${configurationName}`] = JSON.stringify(jwk); + const setDemonstratingProofOfPossessionJwkAsync = (demonstratingProofOfPossessionJwk:string) => { + const demonstratingProofOfPossessionJwkJson = JSON.stringify(demonstratingProofOfPossessionJwk); + sendMessageAsync(registration)({ type: 'setDemonstratingProofOfPossessionJwk', data: { demonstratingProofOfPossessionJwkJson }, configurationName }); }; - const getDemonstratingProofOfPossessionJwkAsync = () => { - return JSON.parse(localStorage[`oidc.jwk.${configurationName}`]); + const getDemonstratingProofOfPossessionJwkAsync = async () => { + const result = await sendMessageAsync(registration)({type: 'getDemonstratingProofOfPossessionJwk', data: null, configurationName}); + if(!result.demonstratingProofOfPossessionJwkJson) { + return null; + } + return JSON.parse(result.demonstratingProofOfPossessionJwkJson); }; const getStateAsync = async () => { diff --git a/packages/react-oidc/README.md b/packages/react-oidc/README.md index 6d3986f16..6b8f226b0 100644 --- a/packages/react-oidc/README.md +++ b/packages/react-oidc/README.md @@ -142,7 +142,7 @@ const configuration = { authority: "https://demo.duendesoftware.com", service_worker_relative_url: "/OidcServiceWorker.js", // just comment that line to disable service worker mode service_worker_only: false, - demonstrating_proof_of_possession: true, // demonstrating proof of possession will work only if access_token is accessible from the client (This is because WebCrypto API is not available inside a Service Worker) + demonstrating_proof_of_possession: false, // demonstrating proof of possession will work only if access_token is accessible from the client (This is because WebCrypto API is not available inside a Service Worker) }; const App = () => ( From 79b3889a3441b5bf95f980db7c2ae6aed60da8da Mon Sep 17 00:00:00 2001 From: GitHub Date: Wed, 20 Sep 2023 15:59:20 +0000 Subject: [PATCH 050/440] [skip ci] Update version package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 779bd0798..76d7a7fc5 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.5.0", + "version": "7.5.1", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index f4201f28b..65bc622bf 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.5.0'; +export default '7.5.1'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 57f597dbb..e4e65c0f5 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.5.0", + "version": "7.5.1", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index f4201f28b..65bc622bf 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.5.0'; +export default '7.5.1'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 0488ded9c..7e2c4d5f8 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.5.0", + "version": "7.5.1", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 3e0e5546ec756b4a9ddad695e4e2368c5721175f Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Thu, 21 Sep 2023 11:12:26 +0200 Subject: [PATCH 051/440] feat(service-worker): add to trusted type (#1142) (release) --- .../src/OidcServiceWorker.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/packages/oidc-client-service-worker/src/OidcServiceWorker.ts b/packages/oidc-client-service-worker/src/OidcServiceWorker.ts index f0bd05557..b687771c0 100644 --- a/packages/oidc-client-service-worker/src/OidcServiceWorker.ts +++ b/packages/oidc-client-service-worker/src/OidcServiceWorker.ts @@ -17,6 +17,20 @@ import { } from './utils'; import { replaceCodeVerifier } from './utils/codeVerifier'; +// @ts-ignore +if ((typeof trustedTypes !== 'undefined') && (typeof trustedTypes.createPolicy == 'function')) { + // @ts-ignore + trustedTypes.createPolicy('default', { + createScriptURL: function(url: string) { + if (url == scriptFilename) { + return url; + } else { + throw new Error('Untrusted script URL blocked: ' + url); + } + }, + }); +} + const _self = self as ServiceWorkerGlobalScope & typeof globalThis; declare let trustedDomains: TrustedDomains; From 4f9b3c0b767d4b955223febcc833e6ff47e997ef Mon Sep 17 00:00:00 2001 From: GitHub Date: Thu, 21 Sep 2023 09:15:43 +0000 Subject: [PATCH 052/440] [skip ci] Update version package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 76d7a7fc5..b0aa74b18 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.5.1", + "version": "7.6.0", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 65bc622bf..8bd7de299 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.5.1'; +export default '7.6.0'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index e4e65c0f5..e92d98763 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.5.1", + "version": "7.6.0", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 65bc622bf..8bd7de299 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.5.1'; +export default '7.6.0'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 7e2c4d5f8..a36e36f7f 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.5.1", + "version": "7.6.0", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 8f24b119613fef5d7214826528bdb04c931a1986 Mon Sep 17 00:00:00 2001 From: Mateusz Popielarz Date: Fri, 13 Oct 2023 19:19:21 +0200 Subject: [PATCH 053/440] doc(faq): Update FAQ.md (#1151) Grammar/style were fixed. --- FAQ.md | 70 +++++++++++++++++++++++++++++----------------------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/FAQ.md b/FAQ.md index d6625ab96..ab2c68f67 100644 --- a/FAQ.md +++ b/FAQ.md @@ -2,31 +2,30 @@ ## Condition to make silent signing work -Third party cookies are blocked by default on Safari. -They will be on all browsers very soon. -Today, silent signing work on safari only if OIDC provider is on the same domain than client application. -Third party cookies are blocked. They will be on all browsers very soon. +Third-party cookies are blocked by default on Safari and will be blocked on all browsers soon. +Today, silent signing works on Safari only if the OIDC provider and the client application are on the same domain. -The only way to be sure to have silent signing working on all browsers, you need to have your OIDC provider on the same domain than your client application. +To guarantee that silent signing functions on all browsers, place your OIDC provider on the same domain as your client application. -Example of domain that work: -- https://oidc-provider.axa.fr -- https://my-app.axa.fr +Example domains that work: -Silent Signing use cookies with your OIDC provider to restore the session and retrieve tokens. -It open in background an IFrame to a specific page to your OIDC provider. +https://oidc-provider.axa.fr +https://my-app.axa.fr + +Silent signing uses cookies from your OIDC provider to restore the session and retrieve tokens. +It opens an IFrame in the background, directed to a specific page on your OIDC provider. ## Condition to make Single Logout to work -Same constraint for Single Logout that for "silent signing". +The same domain constraint for "silent signing" applies to Single Logout. -Single logout allow your to disconnect from multiple OIDC Client session in one action event if your are connected on different application. +Single Logout allows you to disconnect from multiple OIDC Client sessions in one action, even if you are connected to different applications. ## Condition to make Monitor Session to work -Same constraint for "monitorSession" that for "silent signing". +Same domain constraint for "silent signing" applies to "monitorSession". -Monitor session allow you to be notified when your session is expired or when you are disconnected from your OIDC provider. +Monitor session notifies you when your session expires or when you are disconnected from your OIDC provider. ## Does Service Worker is mandatory ? @@ -51,16 +50,16 @@ If your Service Worker file is already registered on your browser, your need to ## Tokens are always refreshed in background every seconds -@axa-fr/oidc-client refresh automatically tokens in background. -It refresh token before its expiration to have always a valid token. +The @axa-fr/oidc-client automatically refreshes tokens in the background. +It refreshes tokens before expiration to maintain valid tokens at all times. -If your tokens sessions Lifetime is too short, it will refresh it very often. -It start refreshing 120 seconds before expiration. +If your token session lifetime is too short, frequent refreshes will occur. +Token refreshing starts 120 seconds before expiration. -So set a session validity upper from 3 minutes is a good idea. +Setting a session validity longer than 3 minutes is advisable. -By default @axa-fr/oidc-client take the shortest lifetime between access_token and id_token. -You can use the option "token_renew_mode" to change this behavior. +By default, @axa-fr/oidc-client chooses the shorter lifetime between access_token and id_token. +Use the "token_renew_mode" option to change this behavior. - **token_renew_mode**: String, // Optional, update tokens based on the selected token(s) lifetime: "access_token_or_id_token_invalid" (default), "access_token_invalid", "id_token_invalid" @@ -69,18 +68,19 @@ https://github.com/AxaFrance/react-oidc/issues/1098 ## window.crypto.subtle is unavailable over HTTP -The library does not work over HTTP. You need to use HTTPS. -We think it is quite easy to setup nowadays event on local development. +The library doesn't work over HTTP. Use HTTPS. +Setting up HTTPS is relatively easy, even for local development. https://github.com/AxaFrance/react-oidc/issues/1028 ## Why OIDC at Client side instead of BFF (Backend for Frontend) ? -We think that @axa-fr/oidc-client is a good choice for the following reasons : -- Secure by default with the use of the Service Worker. OIDC at Server Side from a BFF can be secure but with a bad configuration it can be very insecure. With OIDC Client you reuse the OIDC Server configuration which generally is well configured by OIDC security experts, so secure. -- With OIDC at Server side, It is more difficult to fine grain the scope of the token. With OIDC at Client side you can acquire a new token with a new scope for specific scenario (multiple authentication). You can fine tune token lifetime and scope for each scenario. -- Sometime your Web Application does not need a server, OIDC at client side is a good choice because you do not need to spend money for a server juste for Authentication. For example for a payment, you can retrieve only an access_token valid 2 minutes without any refresh_token. -- OIDC at Client side can be also a good choice for a fast time to market. You can start with OIDC at Client side and then migrate to OIDC at Server side if you need it. The two solutions are compatible. +We recommend @axa-fr/oidc-client for these reasons: + +Secure by default: Uses Service Worker. Server-side OIDC can be insecure if poorly configured. Client-side reuses server-side configurations, usually set by experts. +Fine-grained scope control: Easier to tailor token scope and lifetime for specific scenarios when using client-side OIDC. +No server needed: Client-side OIDC eliminates the need for a separate authentication server, saving money. +Quick time-to-market: Start with client-side OIDC, migrate to server-side if needed. Both are compatible.

for **react** or your redirect callback for **oidc-client** at your beginning of your script of your application. -It should be configured before any fetch call to any services. -This will prevent from any XSS attacks. +2 - Initialize `` for **React** or the redirect callback for **oidc-client** at the start of your application script. +Configure it before making any fetch calls to services. +This guards against XSS attacks. From ec5ba27f463c513e4d476621f684d0dcccd34470 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Thu, 19 Oct 2023 21:45:41 +0200 Subject: [PATCH 054/440] feat(oidc): make location injectable (release) (#1155) * feat(oidc): make location injectable (alpha) * feat(oidc): fix test (beta) * fix webapp * abstract Location (beta) * update (beta) * updat README.md --- .../public/staticwebapp.config.json | 3 -- .../public/staticwebapp.config.json | 3 -- packages/oidc-client/README.md | 8 +++- packages/oidc-client/src/index.ts | 1 + packages/oidc-client/src/initWorker.ts | 24 ++++++------ packages/oidc-client/src/location.ts | 32 ++++++++++++++++ packages/oidc-client/src/login.ts | 13 ++++--- packages/oidc-client/src/logout.spec.ts | 35 +++++++++++++----- packages/oidc-client/src/logout.ts | 11 +++--- packages/oidc-client/src/oidc.ts | 37 +++++++++++++------ packages/oidc-client/src/oidcClient.ts | 5 ++- packages/oidc-client/src/requests.ts | 5 ++- packages/react-oidc/README.md | 1 + packages/react-oidc/src/OidcProvider.tsx | 9 +++-- .../react-oidc/src/core/routes/OidcRoutes.tsx | 6 ++- 15 files changed, 133 insertions(+), 60 deletions(-) create mode 100644 packages/oidc-client/src/location.ts diff --git a/examples/oidc-client-demo/public/staticwebapp.config.json b/examples/oidc-client-demo/public/staticwebapp.config.json index ccdf4d9d6..ba338eae6 100644 --- a/examples/oidc-client-demo/public/staticwebapp.config.json +++ b/examples/oidc-client-demo/public/staticwebapp.config.json @@ -2,8 +2,5 @@ "navigationFallback": { "rewrite": "index.html", "exclude": ["*.{svg,png,jpg,gif}","*.{css,scss}","*.js"] - }, - "globalHeaders": { - "content-security-policy": "script-src 'self';" } } \ No newline at end of file diff --git a/examples/react-oidc-demo/public/staticwebapp.config.json b/examples/react-oidc-demo/public/staticwebapp.config.json index ccdf4d9d6..ba338eae6 100644 --- a/examples/react-oidc-demo/public/staticwebapp.config.json +++ b/examples/react-oidc-demo/public/staticwebapp.config.json @@ -2,8 +2,5 @@ "navigationFallback": { "rewrite": "index.html", "exclude": ["*.{svg,png,jpg,gif}","*.{css,scss}","*.js"] - }, - "globalHeaders": { - "content-security-policy": "script-src 'self';" } } \ No newline at end of file diff --git a/packages/oidc-client/README.md b/packages/oidc-client/README.md index b617635aa..d9b08e816 100644 --- a/packages/oidc-client/README.md +++ b/packages/oidc-client/README.md @@ -117,7 +117,13 @@ export const configuration = { }; const href = window.location.href; -const oidcClient = OidcClient.getOrCreate(() => fetch)(configuration); +const oidcClient = OidcClient.getOrCreate()(configuration); + +// You can inject you own fetch (default Fetch Interface) function and location object (respecting IOidcLocation interface) +// import {OidcLocation} from '@axa-fr/oidc-client' +// const oidcClient = OidcClient.getOrCreate(() => fetch, new OidcLocation())(configuration); + + console.log(href); diff --git a/packages/oidc-client/src/index.ts b/packages/oidc-client/src/index.ts index ef6a82997..2dc2a8c9c 100644 --- a/packages/oidc-client/src/index.ts +++ b/packages/oidc-client/src/index.ts @@ -7,4 +7,5 @@ export type { OidcConfiguration, StringMap, } from './types.js'; +export { type ILOidcLocation, OidcLocation } from './location.js'; export { type OidcUserInfo, OidcClient } from './oidcClient.js'; diff --git a/packages/oidc-client/src/initWorker.ts b/packages/oidc-client/src/initWorker.ts index d073c5f09..72a8a794b 100644 --- a/packages/oidc-client/src/initWorker.ts +++ b/packages/oidc-client/src/initWorker.ts @@ -2,6 +2,7 @@ import { parseOriginalTokens } from './parseTokens.js'; import timer from './timer.js'; import { OidcConfiguration } from './types.js'; import codeVersion from './version.js'; +import {ILOidcLocation} from "./location"; export const getOperatingSystem = (navigator) => { const nVer = navigator.appVersion; @@ -136,6 +137,16 @@ const isServiceWorkerProxyActiveAsync = () => { }).catch(error => { console.log(error); }); }; +export const defaultServiceWorkerUpdateRequireCallback = (location:ILOidcLocation) => async (registration: any, stopKeepAlive: Function) => { + stopKeepAlive(); + await registration.update(); + const isSuccess = await registration.unregister(); + console.log(`Service worker unregistering ${isSuccess}`) + await sleepAsync(2000); + location.reload(); +} + + export const excludeOs = (operatingSystem) => { if (operatingSystem.os === 'iOS' && operatingSystem.osVersion.startsWith('12')) { return true; @@ -214,18 +225,7 @@ export const initWorkerAsync = async(serviceWorkerRelativeUrl, configurationName const serviceWorkerVersion = result.version; if(serviceWorkerVersion !== codeVersion) { console.warn(`Service worker ${serviceWorkerVersion} version mismatch with js client version ${codeVersion}, unregistering and reloading`); - - if(oidcConfiguration.service_worker_update_require_callback) - { - await oidcConfiguration.service_worker_update_require_callback(registration, stopKeepAlive); - } else { - stopKeepAlive(); - await registration.update(); - const isSuccess = await registration.unregister(); - console.log(`Service worker unregistering ${isSuccess}`) - await sleepAsync(2000); - window.location.reload(); - } + await oidcConfiguration.service_worker_update_require_callback(registration, stopKeepAlive); } // @ts-ignore diff --git a/packages/oidc-client/src/location.ts b/packages/oidc-client/src/location.ts new file mode 100644 index 000000000..351d262ea --- /dev/null +++ b/packages/oidc-client/src/location.ts @@ -0,0 +1,32 @@ + +export interface ILOidcLocation { + open(url:string):void; + reload():void; + getCurrentHref():string; + getPath():string; + getOrigin():string; +} + +export class OidcLocation implements ILOidcLocation { + open(url:string) { + window.open(url, '_self'); + } + + reload() { + window.location.reload(); + } + + getCurrentHref() { + return window.location.href; + } + + getPath() { + const location = window.location; + return location.pathname + (location.search || '') + (location.hash || ''); + } + + getOrigin(): string { + return window.origin; + } + +} diff --git a/packages/oidc-client/src/login.ts b/packages/oidc-client/src/login.ts index f693bd30b..a56ce4e36 100644 --- a/packages/oidc-client/src/login.ts +++ b/packages/oidc-client/src/login.ts @@ -10,14 +10,14 @@ import { import {getParseQueryStringFromLocation} from './route-utils.js'; import {OidcConfiguration, StringMap} from './types.js'; import {generateJwkAsync, generateJwtDemonstratingProofOfPossessionAsync} from "./jwt"; +import {ILOidcLocation} from "./location"; // eslint-disable-next-line @typescript-eslint/ban-types -export const defaultLoginAsync = (window, configurationName:string, configuration:OidcConfiguration, publishEvent :(string, any)=>void, initAsync:Function) => (callbackPath:string = undefined, extras:StringMap = null, isSilentSignin = false, scope:string = undefined) => { +export const defaultLoginAsync = (configurationName:string, configuration:OidcConfiguration, publishEvent :(string, any)=>void, initAsync:Function, oidcLocation: ILOidcLocation) => (callbackPath:string = undefined, extras:StringMap = null, isSilentSignin = false, scope:string = undefined) => { const originExtras = extras; extras = { ...extras }; const loginLocalAsync = async () => { - const location = window.location; - const url = callbackPath || location.pathname + (location.search || '') + (location.hash || ''); + const url = callbackPath || oidcLocation.getPath(); if (!('state' in extras)) { extras.state = generateRandom(16); @@ -66,7 +66,7 @@ export const defaultLoginAsync = (window, configurationName:string, configuratio response_type: 'code', ...extraFinal, }; - await performAuthorizationRequestAsync(storage)(oidcServerConfiguration.authorizationEndpoint, extraInternal); + await performAuthorizationRequestAsync(storage, oidcLocation)(oidcServerConfiguration.authorizationEndpoint, extraInternal); } catch (exception) { publishEvent(eventNames.loginAsync_error, exception); throw exception; @@ -84,7 +84,8 @@ export const loginCallbackAsync = (oidc) => async (isSilentSignin = false) => { const authority = configuration.authority; const tokenRequestTimeout = configuration.token_request_timeout; const oidcServerConfiguration = await oidc.initAsync(authority, configuration.authority_configuration); - const queryParams = getParseQueryStringFromLocation(window.location.href); + const href = oidc.location.getCurrentHref(); + const queryParams = getParseQueryStringFromLocation(href); const sessionState = queryParams.session_state; const serviceWorker = await initWorkerAsync(configuration.service_worker_relative_url, oidc.configurationName); let storage; @@ -108,7 +109,7 @@ export const loginCallbackAsync = (oidc) => async (isSilentSignin = false) => { storage = session; } - const params = getParseQueryStringFromLocation(window.location.toString()); + const params = getParseQueryStringFromLocation(href); if (params.iss && params.iss !== oidcServerConfiguration.issuer) { console.error(); diff --git a/packages/oidc-client/src/logout.spec.ts b/packages/oidc-client/src/logout.spec.ts index a87443334..ad77d181b 100644 --- a/packages/oidc-client/src/logout.spec.ts +++ b/packages/oidc-client/src/logout.spec.ts @@ -3,6 +3,7 @@ import { describe, expect, it, vi } from 'vitest'; import { logoutAsync } from "./logout"; +import {ILOidcLocation, OidcLocation} from "./location"; describe('Logout test suite', () => { @@ -45,21 +46,37 @@ describe('Logout test suite', () => { }; const oidcDatabase = {default: () => oidc}; - - const window = { - location: { - href: "", - origin: "http://localhost:4200", - }, - }; + + let finalUrl = ""; + class OidcLocationMock implements ILOidcLocation{ + open(url: string): void { + finalUrl = url; + } + + getCurrentHref(): string { + return ""; + } + + getPath(): string { + return ""; + } + + reload(): void { + } + + getOrigin(): string { + return "http://localhost:4200"; + } + + } - await logoutAsync(oidc, oidcDatabase, mockFetchFn, window, console)("/logged_out"); + await logoutAsync(oidc, oidcDatabase, mockFetchFn, console, new OidcLocationMock())("/logged_out"); // @ts-ignore const results = mockFetchFn.mock.calls.map((call, index) => call[1].body); expect(results).toEqual(expectedResults); - expect(window.location.href).toBe("http://api/connect/endsession?id_token_hint=abcd&post_logout_redirect_uri=http%3A%2F%2Flocalhost%3A4200%2Flogged_out"); + expect(finalUrl).toBe("http://api/connect/endsession?id_token_hint=abcd&post_logout_redirect_uri=http%3A%2F%2Flocalhost%3A4200%2Flogged_out"); }); }); diff --git a/packages/oidc-client/src/logout.ts b/packages/oidc-client/src/logout.ts index 76296ecfb..b2e7d4734 100644 --- a/packages/oidc-client/src/logout.ts +++ b/packages/oidc-client/src/logout.ts @@ -3,6 +3,7 @@ import { initWorkerAsync } from './initWorker.js'; import { performRevocationRequestAsync, TOKEN_TYPE } from './requests.js'; import timer from './timer.js'; import { StringMap } from './types.js'; +import {ILOidcLocation} from "./location"; export const oidcLogoutTokens = { access_token: 'access_token', @@ -26,19 +27,19 @@ export const destroyAsync = (oidc) => async (status) => { oidc.userInfo = null; }; -export const logoutAsync = (oidc, oidcDatabase, fetch, window, console) => async (callbackPathOrUrl: string | null | undefined = undefined, extras: StringMap = null) => { +export const logoutAsync = (oidc, oidcDatabase, fetch, console, oicLocation:ILOidcLocation) => async (callbackPathOrUrl: string | null | undefined = undefined, extras: StringMap = null) => { const configuration = oidc.configuration; const oidcServerConfiguration = await oidc.initAsync(configuration.authority, configuration.authority_configuration); if (callbackPathOrUrl && (typeof callbackPathOrUrl !== 'string')) { callbackPathOrUrl = undefined; console.warn('callbackPathOrUrl path is not a string'); } - const path = (callbackPathOrUrl === null || callbackPathOrUrl === undefined) ? location.pathname + (location.search || '') + (location.hash || '') : callbackPathOrUrl; + const path = (callbackPathOrUrl === null || callbackPathOrUrl === undefined) ? oicLocation.getPath() : callbackPathOrUrl; let isUri = false; if (callbackPathOrUrl) { isUri = callbackPathOrUrl.includes('https://') || callbackPathOrUrl.includes('http://'); } - const url = isUri ? callbackPathOrUrl : window.location.origin + path; + const url = isUri ? callbackPathOrUrl : oicLocation.getOrigin() + path // @ts-ignore const idToken = oidc.tokens ? oidc.tokens.idToken : ''; try { @@ -94,8 +95,8 @@ export const logoutAsync = (oidc, oidcDatabase, fetch, window, console) => async queryString += `${key}=${encodeURIComponent(value)}`; } } - window.location.href = `${oidcServerConfiguration.endSessionEndpoint}${queryString}`; + oicLocation.open(`${oidcServerConfiguration.endSessionEndpoint}${queryString}`); } else { - window.location.reload(); + oicLocation.reload(); } }; diff --git a/packages/oidc-client/src/oidc.ts b/packages/oidc-client/src/oidc.ts index 18fafb5df..306f75d75 100644 --- a/packages/oidc-client/src/oidc.ts +++ b/packages/oidc-client/src/oidc.ts @@ -2,7 +2,7 @@ import {startCheckSessionAsync as defaultStartCheckSessionAsync} from './checkSe import {CheckSessionIFrame} from './checkSessionIFrame.js'; import {eventNames} from './events.js'; import {initSession} from './initSession.js'; -import {initWorkerAsync, sleepAsync} from './initWorker.js'; +import {defaultServiceWorkerUpdateRequireCallback, initWorkerAsync, sleepAsync} from './initWorker.js'; import {defaultLoginAsync, loginCallbackAsync} from './login.js'; import {destroyAsync, logoutAsync} from './logout.js'; import {computeTimeLeft, isTokensOidcValid, setTokens, TokenRenewMode, Tokens,} from './parseTokens.js'; @@ -15,6 +15,9 @@ import {AuthorityConfiguration, Fetch, OidcConfiguration, StringMap} from './typ import {userInfoAsync} from './user.js'; import {base64urlOfHashOfASCIIEncodingAsync} from "./crypto"; import {generateJwtDemonstratingProofOfPossessionAsync} from "./jwt"; +import {ILOidcLocation, OidcLocation} from "./location"; + + export const getFetchDefault = () => { return fetch; @@ -25,6 +28,8 @@ export interface OidcAuthorizationServiceConfigurationJson { issuer:string; } + + export class OidcAuthorizationServiceConfiguration { private checkSessionIframe: string; private issuer: string; @@ -46,11 +51,11 @@ export class OidcAuthorizationServiceConfiguration { } const oidcDatabase = {}; -const oidcFactory = (getFetch : () => Fetch) => (configuration: OidcConfiguration, name = 'default') => { +const oidcFactory = (getFetch : () => Fetch, location: ILOidcLocation = new OidcLocation()) => (configuration: OidcConfiguration, name = 'default') => { if (oidcDatabase[name]) { return oidcDatabase[name]; } - oidcDatabase[name] = new Oidc(configuration, name, getFetch); + oidcDatabase[name] = new Oidc(configuration, name, getFetch, location); return oidcDatabase[name]; }; export type LoginCallback = { @@ -81,7 +86,8 @@ export class Oidc { public configurationName: string; private checkSessionIFrame: CheckSessionIFrame; private getFetch: () => Fetch; - constructor(configuration:OidcConfiguration, configurationName = 'default', getFetch : () => Fetch) { + private location: ILOidcLocation; + constructor(configuration:OidcConfiguration, configurationName = 'default', getFetch : () => Fetch, location: ILOidcLocation = new OidcLocation()) { let silent_login_uri = configuration.silent_login_uri; if (configuration.silent_redirect_uri && !configuration.silent_login_uri) { silent_login_uri = `${configuration.silent_redirect_uri.replace('-callback', '').replace('callback', '')}-login`; @@ -90,6 +96,9 @@ export class Oidc { if (refresh_time_before_tokens_expiration_in_second > 60) { refresh_time_before_tokens_expiration_in_second = refresh_time_before_tokens_expiration_in_second - Math.floor(Math.random() * 40); } + this.location = location ?? new OidcLocation(); + const service_worker_update_require_callback = configuration.service_worker_update_require_callback ?? defaultServiceWorkerUpdateRequireCallback(this.location); + this.configuration = { ...configuration, silent_login_uri, @@ -100,7 +109,9 @@ export class Oidc { demonstrating_proof_of_possession: configuration.demonstrating_proof_of_possession ?? false, authority_timeout_wellknowurl_in_millisecond: configuration.authority_timeout_wellknowurl_in_millisecond ?? 10000, logout_tokens_to_invalidate: configuration.logout_tokens_to_invalidate ?? ['access_token', 'refresh_token'], + service_worker_update_require_callback, }; + this.getFetch = getFetch ?? getFetchDefault; this.configurationName = configurationName; this.tokens = null; @@ -137,8 +148,8 @@ export class Oidc { }); } - static getOrCreate = (getFetch : () => Fetch) => (configuration, name = 'default') => { - return oidcFactory(getFetch)(configuration, name); + static getOrCreate = (getFetch : () => Fetch, location:ILOidcLocation) => (configuration, name = 'default') => { + return oidcFactory(getFetch, location)(configuration, name); }; static get(name = 'default') { @@ -154,15 +165,17 @@ Please checkout that you are using OIDC hook inside a { this.loginPromise = null; return result; @@ -641,7 +654,7 @@ Please checkout that you are using OIDC hook inside a { this.logoutPromise = null; return result; diff --git a/packages/oidc-client/src/oidcClient.ts b/packages/oidc-client/src/oidcClient.ts index df2b06df4..4cf592933 100644 --- a/packages/oidc-client/src/oidcClient.ts +++ b/packages/oidc-client/src/oidcClient.ts @@ -1,6 +1,7 @@ import { LoginCallback, Oidc } from './oidc.js'; import { getValidTokenAsync, Tokens, ValidToken } from './parseTokens.js'; import { Fetch, OidcConfiguration, StringMap } from './types.js'; +import {ILOidcLocation, OidcLocation} from "./location"; export interface EventSubscriber { (name: string, data:any); @@ -24,8 +25,8 @@ export class OidcClient { this._oidc.publishEvent(eventName, data); } - static getOrCreate = (getFetch : () => Fetch) => (configuration:OidcConfiguration, name = 'default'): OidcClient => { - return new OidcClient(Oidc.getOrCreate(getFetch)(configuration, name)); + static getOrCreate = (getFetch : () => Fetch, location:ILOidcLocation= new OidcLocation()) => (configuration:OidcConfiguration, name = 'default'): OidcClient => { + return new OidcClient(Oidc.getOrCreate(getFetch, location)(configuration, name)); }; static get(name = 'default'):OidcClient { diff --git a/packages/oidc-client/src/requests.ts b/packages/oidc-client/src/requests.ts index 655cf4cc0..345660ace 100644 --- a/packages/oidc-client/src/requests.ts +++ b/packages/oidc-client/src/requests.ts @@ -4,6 +4,7 @@ import { OidcAuthorizationServiceConfiguration } from './oidc.js'; import { parseOriginalTokens } from './parseTokens.js'; import { Fetch, StringMap } from './types.js'; import EC, {JWK, JWT} from './jwt'; +import {ILOidcLocation} from "./location"; const oneHourSecond = 60 * 60; export const fetchFromIssuer = (fetch) => async (openIdIssuerUrl: string, timeCacheSecond = oneHourSecond, storage = window.sessionStorage, timeoutMs = 10000): @@ -137,7 +138,7 @@ export const performTokenRequestAsync = (fetch:Fetch) => async (url:string, }; }; -export const performAuthorizationRequestAsync = (storage: any) => async (url, extras: StringMap) => { +export const performAuthorizationRequestAsync = (storage: any, oidcLocation: ILOidcLocation) => async (url, extras: StringMap) => { extras = extras ? { ...extras } : {}; const codeVerifier = generateRandom(128); const codeChallenge = await deriveChallengeAsync(codeVerifier); @@ -156,7 +157,7 @@ export const performAuthorizationRequestAsync = (storage: any) => async (url, ex queryString += `${key}=${encodeURIComponent(value)}`; } } - window.location.href = `${url}${queryString}`; + oidcLocation.open(`${url}${queryString}`); }; const demonstratingProofOfPossessionNonceResponseHeader = "DPoP-Nonce"; diff --git a/packages/react-oidc/README.md b/packages/react-oidc/README.md index 6b8f226b0..7b48a6f6e 100644 --- a/packages/react-oidc/README.md +++ b/packages/react-oidc/README.md @@ -200,6 +200,7 @@ const configuration = { token_renew_mode: String, // Optional, update tokens based on the selected token(s) lifetime: "access_token_or_id_token_invalid" (default), "access_token_invalid", "id_token_invalid" logout_tokens_to_invalidate: Array, // Optional tokens to invalidate during logout, default: ['access_token', 'refresh_token'] demonstrating_proof_of_possession: Boolean, // Optional, default is false, if true, the the Demonstrating Proof of Possession will be activated //https://www.rfc-editor.org/rfc/rfc9449.html#name-protected-resource-access + location: ILOidcLocation, // Optional, default is window.location, you can inject your own location object respecting the ILOidcLocation interface }.isRequired, }; diff --git a/packages/react-oidc/src/OidcProvider.tsx b/packages/react-oidc/src/OidcProvider.tsx index 347fc412b..41cd2625c 100644 --- a/packages/react-oidc/src/OidcProvider.tsx +++ b/packages/react-oidc/src/OidcProvider.tsx @@ -1,4 +1,4 @@ -import { Fetch, getFetchDefault, OidcConfiguration, OidcClient } from '@axa-fr/oidc-client'; +import {Fetch, getFetchDefault, OidcConfiguration, OidcClient, ILOidcLocation, OidcLocation} from '@axa-fr/oidc-client'; import { ComponentType, FC, PropsWithChildren, useEffect, useState } from 'react'; import AuthenticatingError from './core/default-component/AuthenticateError.component.js'; @@ -29,6 +29,7 @@ export type OidcProviderProps = { withCustomHistory?: () => CustomHistory; onEvent?: (configuration: string, name: string, data: any) => void; getFetch?: () => Fetch; + location?: ILOidcLocation }; export type OidcSessionProps = { @@ -92,9 +93,10 @@ export const OidcProvider: FC> = ({ withCustomHistory = null, onEvent = null, getFetch = null, + location= null, }) => { const getOidc = (configurationName = 'default') => { - return OidcClient.getOrCreate(getFetch ?? getFetchDefault)(configuration, configurationName); + return OidcClient.getOrCreate(getFetch ?? getFetchDefault, location ?? new OidcLocation())(configuration, configurationName); }; // eslint-disable-next-line @typescript-eslint/naming-convention const [loading, setLoading] = useState(true); @@ -194,7 +196,8 @@ export const OidcProvider: FC> = ({ callbackErrorComponent={authenticatingErrorComponent} authenticatingComponent={authenticatingComponent} configurationName={configurationName} - withCustomHistory={withCustomHistory}> + withCustomHistory={withCustomHistory} + location={location ?? new OidcLocation()}> {children} diff --git a/packages/react-oidc/src/core/routes/OidcRoutes.tsx b/packages/react-oidc/src/core/routes/OidcRoutes.tsx index bddfd8132..836211f7c 100644 --- a/packages/react-oidc/src/core/routes/OidcRoutes.tsx +++ b/packages/react-oidc/src/core/routes/OidcRoutes.tsx @@ -1,4 +1,4 @@ -import { getPath } from '@axa-fr/oidc-client'; +import {getPath, ILOidcLocation} from '@axa-fr/oidc-client'; import React, { ComponentType, FC, PropsWithChildren, useEffect, useState } from 'react'; import CallbackComponent from '../default-component/Callback.component.js'; @@ -15,6 +15,7 @@ type OidcRoutesProps = { silent_redirect_uri?: string; silent_login_uri?: string; withCustomHistory?: () => CustomHistory; + location: ILOidcLocation; }; const OidcRoutes: FC> = ({ @@ -24,7 +25,8 @@ const OidcRoutes: FC> = ({ silent_redirect_uri, silent_login_uri, children, configurationName, - withCustomHistory = null, + withCustomHistory = null, + location, }) => { // This exist because in next.js window outside useEffect is null const pathname = window ? getPath(window.location.href) : ''; From 03a6570bb09a98686e67f17b57ee7f7b1849db2c Mon Sep 17 00:00:00 2001 From: GitHub Date: Thu, 19 Oct 2023 19:49:20 +0000 Subject: [PATCH 055/440] [skip ci] Update version package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index b0aa74b18..271b8b213 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.6.0", + "version": "7.7.0", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 8bd7de299..ef78750e8 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.6.0'; +export default '7.7.0'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index e92d98763..7ba322774 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.6.0", + "version": "7.7.0", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 8bd7de299..ef78750e8 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.6.0'; +export default '7.7.0'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index a36e36f7f..aaa3428e6 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.6.0", + "version": "7.7.0", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 07d266b32b275038176a407036a338624d2bed47 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 25 Oct 2023 20:06:43 +0200 Subject: [PATCH 056/440] build(npm): bump next from 13.4.12 to 13.5.6 (#1158) Bumps [next](https://github.com/vercel/next.js) from 13.4.12 to 13.5.6. - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/compare/v13.4.12...v13.5.6) --- updated-dependencies: - dependency-name: next dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pnpm-lock.yaml | 109 +++++++++++++++++++++++-------------------------- 1 file changed, 50 insertions(+), 59 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e10f7b049..2dea4dd6d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -76,7 +76,7 @@ importers: version: link:../../packages/react-oidc next: specifier: latest - version: 13.4.12(react-dom@18.2.0)(react@18.2.0) + version: 13.5.6(react-dom@18.2.0)(react@18.2.0) react: specifier: latest version: 18.2.0 @@ -168,7 +168,7 @@ importers: version: 5.1.6 vite: specifier: ^4.4.4 - version: 4.4.7(@types/node@18.17.1) + version: 4.4.7(@types/node@20.4.5) vite-plugin-dts: specifier: ^3.3.0 version: 3.4.0(typescript@5.1.6)(vite@4.4.7) @@ -211,7 +211,7 @@ importers: version: 5.1.6 vite: specifier: ^4.4.4 - version: 4.4.7(@types/node@18.17.1) + version: 4.4.7(@types/node@20.4.5) vite-plugin-dts: specifier: ^3.3.0 version: 3.4.0(typescript@5.1.6)(vite@4.4.7) @@ -241,7 +241,7 @@ importers: version: 5.1.6 vite: specifier: ^4.4.4 - version: 4.4.7(@types/node@18.17.1) + version: 4.4.7(@types/node@20.4.5) vite-plugin-dts: specifier: ^3.3.0 version: 3.4.0(typescript@5.1.6)(vite@4.4.7) @@ -308,7 +308,7 @@ importers: version: 5.1.6 vite: specifier: ^4.4.4 - version: 4.4.7(@types/node@18.17.1) + version: 4.4.7(@types/node@20.4.5) vite-plugin-dts: specifier: ^3.3.0 version: 3.4.0(typescript@5.1.6)(vite@4.4.7) @@ -1158,12 +1158,12 @@ packages: - supports-color dev: true - /@next/env@13.4.12: - resolution: {integrity: sha512-RmHanbV21saP/6OEPBJ7yJMuys68cIf8OBBWd7+uj40LdpmswVAwe1uzeuFyUsd6SfeITWT3XnQfn6wULeKwDQ==} + /@next/env@13.5.6: + resolution: {integrity: sha512-Yac/bV5sBGkkEXmAX5FWPS9Mmo2rthrOPRQQNfycJPkjUAUclomCPH7QFVCDQ4Mp2k2K1SSM6m0zrxYrOwtFQw==} dev: false - /@next/swc-darwin-arm64@13.4.12: - resolution: {integrity: sha512-deUrbCXTMZ6ZhbOoloqecnUeNpUOupi8SE2tx4jPfNS9uyUR9zK4iXBvH65opVcA/9F5I/p8vDXSYbUlbmBjZg==} + /@next/swc-darwin-arm64@13.5.6: + resolution: {integrity: sha512-5nvXMzKtZfvcu4BhtV0KH1oGv4XEW+B+jOfmBdpFI3C7FrB/MfujRpWYSBBO64+qbW8pkZiSyQv9eiwnn5VIQA==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] @@ -1171,8 +1171,8 @@ packages: dev: false optional: true - /@next/swc-darwin-x64@13.4.12: - resolution: {integrity: sha512-WRvH7RxgRHlC1yb5oG0ZLx8F7uci9AivM5/HGGv9ZyG2Als8Ij64GC3d+mQ5sJhWjusyU6T6V1WKTUoTmOB0zQ==} + /@next/swc-darwin-x64@13.5.6: + resolution: {integrity: sha512-6cgBfxg98oOCSr4BckWjLLgiVwlL3vlLj8hXg2b+nDgm4bC/qVXXLfpLB9FHdoDu4057hzywbxKvmYGmi7yUzA==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] @@ -1180,8 +1180,8 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-gnu@13.4.12: - resolution: {integrity: sha512-YEKracAWuxp54tKiAvvq73PUs9lok57cc8meYRibTWe/VdPB2vLgkTVWFcw31YDuRXdEhdX0fWS6Q+ESBhnEig==} + /@next/swc-linux-arm64-gnu@13.5.6: + resolution: {integrity: sha512-txagBbj1e1w47YQjcKgSU4rRVQ7uF29YpnlHV5xuVUsgCUf2FmyfJ3CPjZUvpIeXCJAoMCFAoGnbtX86BK7+sg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -1189,8 +1189,8 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-musl@13.4.12: - resolution: {integrity: sha512-LhJR7/RAjdHJ2Isl2pgc/JaoxNk0KtBgkVpiDJPVExVWA1c6gzY57+3zWuxuyWzTG+fhLZo2Y80pLXgIJv7g3g==} + /@next/swc-linux-arm64-musl@13.5.6: + resolution: {integrity: sha512-cGd+H8amifT86ZldVJtAKDxUqeFyLWW+v2NlBULnLAdWsiuuN8TuhVBt8ZNpCqcAuoruoSWynvMWixTFcroq+Q==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -1198,8 +1198,8 @@ packages: dev: false optional: true - /@next/swc-linux-x64-gnu@13.4.12: - resolution: {integrity: sha512-1DWLL/B9nBNiQRng+1aqs3OaZcxC16Nf+mOnpcrZZSdyKHek3WQh6j/fkbukObgNGwmCoVevLUa/p3UFTTqgqg==} + /@next/swc-linux-x64-gnu@13.5.6: + resolution: {integrity: sha512-Mc2b4xiIWKXIhBy2NBTwOxGD3nHLmq4keFk+d4/WL5fMsB8XdJRdtUlL87SqVCTSaf1BRuQQf1HvXZcy+rq3Nw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -1207,8 +1207,8 @@ packages: dev: false optional: true - /@next/swc-linux-x64-musl@13.4.12: - resolution: {integrity: sha512-kEAJmgYFhp0VL+eRWmUkVxLVunn7oL9Mdue/FS8yzRBVj7Z0AnIrHpTIeIUl1bbdQq1VaoOztnKicAjfkLTRCQ==} + /@next/swc-linux-x64-musl@13.5.6: + resolution: {integrity: sha512-CFHvP9Qz98NruJiUnCe61O6GveKKHpJLloXbDSWRhqhkJdZD2zU5hG+gtVJR//tyW897izuHpM6Gtf6+sNgJPQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -1216,8 +1216,8 @@ packages: dev: false optional: true - /@next/swc-win32-arm64-msvc@13.4.12: - resolution: {integrity: sha512-GMLuL/loR6yIIRTnPRY6UGbLL9MBdw2anxkOnANxvLvsml4F0HNIgvnU3Ej4BjbqMTNjD4hcPFdlEow4XHPdZA==} + /@next/swc-win32-arm64-msvc@13.5.6: + resolution: {integrity: sha512-aFv1ejfkbS7PUa1qVPwzDHjQWQtknzAZWGTKYIAaS4NMtBlk3VyA6AYn593pqNanlicewqyl2jUhQAaFV/qXsg==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] @@ -1225,8 +1225,8 @@ packages: dev: false optional: true - /@next/swc-win32-ia32-msvc@13.4.12: - resolution: {integrity: sha512-PhgNqN2Vnkm7XaMdRmmX0ZSwZXQAtamBVSa9A/V1dfKQCV1rjIZeiy/dbBnVYGdj63ANfsOR/30XpxP71W0eww==} + /@next/swc-win32-ia32-msvc@13.5.6: + resolution: {integrity: sha512-XqqpHgEIlBHvzwG8sp/JXMFkLAfGLqkbVsyN+/Ih1mR8INb6YCc2x/Mbwi6hsAgUnqQztz8cvEbHJUbSl7RHDg==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] @@ -1234,8 +1234,8 @@ packages: dev: false optional: true - /@next/swc-win32-x64-msvc@13.4.12: - resolution: {integrity: sha512-Z+56e/Ljt0bUs+T+jPjhFyxYBcdY2RIq9ELFU+qAMQMteHo7ymbV7CKmlcX59RI9C4YzN8PgMgLyAoi916b5HA==} + /@next/swc-win32-x64-msvc@13.5.6: + resolution: {integrity: sha512-Cqfe1YmOS7k+5mGu92nl5ULkzpKuxJrP3+4AEuPmrpFZ3BHxTY3TnHmU1On3bFmFFs6FbTcdF58CCUProGpIGQ==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -1343,8 +1343,8 @@ packages: resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} dev: true - /@swc/helpers@0.5.1: - resolution: {integrity: sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg==} + /@swc/helpers@0.5.2: + resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==} dependencies: tslib: 2.6.1 dev: false @@ -1757,7 +1757,7 @@ packages: '@babel/plugin-transform-react-jsx-self': 7.22.5(@babel/core@7.22.9) '@babel/plugin-transform-react-jsx-source': 7.22.5(@babel/core@7.22.9) react-refresh: 0.14.0 - vite: 4.4.7(@types/node@18.17.1) + vite: 4.4.7(@types/node@20.4.5) transitivePeerDependencies: - supports-color dev: true @@ -4515,44 +4515,40 @@ packages: resolution: {integrity: sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==} dev: true - /next@13.4.12(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-eHfnru9x6NRmTMcjQp6Nz0J4XH9OubmzOa7CkWL+AUrUxpibub3vWwttjduu9No16dug1kq04hiUUpo7J3m3Xw==} - engines: {node: '>=16.8.0'} + /next@13.5.6(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-Y2wTcTbO4WwEsVb4A8VSnOsG1I9ok+h74q0ZdxkwM3EODqrs4pasq7O0iUxbcS9VtWMicG7f3+HAj0r1+NtKSw==} + engines: {node: '>=16.14.0'} hasBin: true peerDependencies: '@opentelemetry/api': ^1.1.0 - fibers: '>= 3.1.0' react: ^18.2.0 react-dom: ^18.2.0 sass: ^1.3.0 peerDependenciesMeta: '@opentelemetry/api': optional: true - fibers: - optional: true sass: optional: true dependencies: - '@next/env': 13.4.12 - '@swc/helpers': 0.5.1 + '@next/env': 13.5.6 + '@swc/helpers': 0.5.2 busboy: 1.6.0 caniuse-lite: 1.0.30001517 - postcss: 8.4.14 + postcss: 8.4.31 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) styled-jsx: 5.1.1(react@18.2.0) watchpack: 2.4.0 - zod: 3.21.4 optionalDependencies: - '@next/swc-darwin-arm64': 13.4.12 - '@next/swc-darwin-x64': 13.4.12 - '@next/swc-linux-arm64-gnu': 13.4.12 - '@next/swc-linux-arm64-musl': 13.4.12 - '@next/swc-linux-x64-gnu': 13.4.12 - '@next/swc-linux-x64-musl': 13.4.12 - '@next/swc-win32-arm64-msvc': 13.4.12 - '@next/swc-win32-ia32-msvc': 13.4.12 - '@next/swc-win32-x64-msvc': 13.4.12 + '@next/swc-darwin-arm64': 13.5.6 + '@next/swc-darwin-x64': 13.5.6 + '@next/swc-linux-arm64-gnu': 13.5.6 + '@next/swc-linux-arm64-musl': 13.5.6 + '@next/swc-linux-x64-gnu': 13.5.6 + '@next/swc-linux-x64-musl': 13.5.6 + '@next/swc-win32-arm64-msvc': 13.5.6 + '@next/swc-win32-ia32-msvc': 13.5.6 + '@next/swc-win32-x64-msvc': 13.5.6 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros @@ -4918,23 +4914,22 @@ packages: deprecated: You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1 dev: true - /postcss@8.4.14: - resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==} + /postcss@8.4.27: + resolution: {integrity: sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.6 picocolors: 1.0.0 source-map-js: 1.0.2 - dev: false + dev: true - /postcss@8.4.27: - resolution: {integrity: sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==} + /postcss@8.4.31: + resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.6 picocolors: 1.0.0 source-map-js: 1.0.2 - dev: true /prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} @@ -5968,7 +5963,7 @@ packages: debug: 4.3.4 kolorist: 1.8.0 typescript: 5.1.6 - vite: 4.4.7(@types/node@18.17.1) + vite: 4.4.7(@types/node@20.4.5) vue-tsc: 1.8.8(typescript@5.1.6) transitivePeerDependencies: - '@types/node' @@ -6042,7 +6037,7 @@ packages: dependencies: '@types/node': 20.4.5 esbuild: 0.18.17 - postcss: 8.4.27 + postcss: 8.4.31 rollup: 3.27.0 optionalDependencies: fsevents: 2.3.2 @@ -6365,7 +6360,3 @@ packages: optionalDependencies: commander: 9.5.0 dev: true - - /zod@3.21.4: - resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==} - dev: false From 41ecf9e1752f291f0d8f96a979ab393f5aaeb885 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 25 Oct 2023 20:07:02 +0200 Subject: [PATCH 057/440] build(npm): bump @testing-library/dom from 9.3.1 to 9.3.3 (#1161) Bumps [@testing-library/dom](https://github.com/testing-library/dom-testing-library) from 9.3.1 to 9.3.3. - [Release notes](https://github.com/testing-library/dom-testing-library/releases) - [Changelog](https://github.com/testing-library/dom-testing-library/blob/main/CHANGELOG.md) - [Commits](https://github.com/testing-library/dom-testing-library/compare/v9.3.1...v9.3.3) --- updated-dependencies: - dependency-name: "@testing-library/dom" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- packages/oidc-client/package.json | 2 +- pnpm-lock.yaml | 28 ++++++++++++++-------------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 7ba322774..c32b081ef 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -23,7 +23,7 @@ "@axa-fr/oidc-client-service-worker": "workspace:*" }, "devDependencies": { - "@testing-library/dom": "^9.3.1", + "@testing-library/dom": "^9.3.3", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "13.3.0", "@vitest/coverage-v8": "^0.33.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2dea4dd6d..26a1579b7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -94,7 +94,7 @@ importers: version: 5.17.0 '@testing-library/user-event': specifier: ^13.5.0 - version: 13.5.0(@testing-library/dom@9.3.1) + version: 13.5.0(@testing-library/dom@9.3.3) '@types/jest': specifier: ^27.5.2 version: 27.5.2 @@ -138,7 +138,7 @@ importers: version: 13.3.0(react-dom@18.2.0)(react@18.2.0) '@testing-library/user-event': specifier: 14.4.3 - version: 14.4.3(@testing-library/dom@9.3.1) + version: 14.4.3(@testing-library/dom@9.3.3) '@types/react': specifier: ^18.2.15 version: 18.2.17 @@ -183,8 +183,8 @@ importers: version: link:../oidc-client-service-worker devDependencies: '@testing-library/dom': - specifier: ^9.3.1 - version: 9.3.1 + specifier: ^9.3.3 + version: 9.3.3 '@testing-library/jest-dom': specifier: ^5.16.5 version: 5.17.0 @@ -269,7 +269,7 @@ importers: version: 13.3.0(react-dom@18.2.0)(react@18.2.0) '@testing-library/user-event': specifier: 14.4.3 - version: 14.4.3(@testing-library/dom@9.3.1) + version: 14.4.3(@testing-library/dom@9.3.3) '@types/react': specifier: ^18.2.15 version: 18.2.17 @@ -1363,8 +1363,8 @@ packages: pretty-format: 27.5.1 dev: true - /@testing-library/dom@9.3.1: - resolution: {integrity: sha512-0DGPd9AR3+iDTjGoMpxIkAsUihHZ3Ai6CneU6bRRrffXMgzCdlNk43jTrD2/5LT6CBb3MWTP8v510JzYtahD2w==} + /@testing-library/dom@9.3.3: + resolution: {integrity: sha512-fB0R+fa3AUqbLHWyxXa2kGVtf1Fe1ZZFr0Zp6AIbIAzXb2mKbEXl+PCQNUOaq5lbTab5tfctfXRNsWXxa2f7Aw==} engines: {node: '>=14'} dependencies: '@babel/code-frame': 7.22.5 @@ -1419,23 +1419,23 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: true - /@testing-library/user-event@13.5.0(@testing-library/dom@9.3.1): + /@testing-library/user-event@13.5.0(@testing-library/dom@9.3.3): resolution: {integrity: sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg==} engines: {node: '>=10', npm: '>=6'} peerDependencies: '@testing-library/dom': '>=7.21.4' dependencies: '@babel/runtime': 7.22.6 - '@testing-library/dom': 9.3.1 + '@testing-library/dom': 9.3.3 dev: false - /@testing-library/user-event@14.4.3(@testing-library/dom@9.3.1): + /@testing-library/user-event@14.4.3(@testing-library/dom@9.3.3): resolution: {integrity: sha512-kCUc5MEwaEMakkO5x7aoD+DLi02ehmEM2QCGWvNqAS1dV/fAvORWEjnjsEIvml59M7Y5kCkWN6fCCyPOe8OL6Q==} engines: {node: '>=12', npm: '>=6'} peerDependencies: '@testing-library/dom': '>=7.21.4' dependencies: - '@testing-library/dom': 9.3.1 + '@testing-library/dom': 9.3.3 dev: true /@tootallnate/once@2.0.0: @@ -3773,7 +3773,7 @@ packages: engines: {node: '>=12.0.0'} dependencies: ansi-escapes: 4.3.2 - chalk: 4.1.1 + chalk: 4.1.2 cli-cursor: 3.1.0 cli-width: 3.0.0 external-editor: 3.1.0 @@ -4277,7 +4277,7 @@ packages: resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} engines: {node: '>=10'} dependencies: - chalk: 4.1.1 + chalk: 4.1.2 is-unicode-supported: 0.1.0 dev: true @@ -4738,7 +4738,7 @@ packages: engines: {node: '>=10'} dependencies: bl: 4.1.0 - chalk: 4.1.1 + chalk: 4.1.2 cli-cursor: 3.1.0 cli-spinners: 2.9.0 is-interactive: 1.0.0 From 1b4bc0782c39a8f797de224f74073d4860672cb6 Mon Sep 17 00:00:00 2001 From: GitHub Date: Wed, 25 Oct 2023 18:11:14 +0000 Subject: [PATCH 058/440] [skip ci] Update version package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 271b8b213..1e16963f5 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.7.0", + "version": "7.7.2", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index ef78750e8..7f773bea2 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.7.0'; +export default '7.7.2'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index c32b081ef..d2777327d 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.7.0", + "version": "7.7.2", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index ef78750e8..7f773bea2 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.7.0'; +export default '7.7.2'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index aaa3428e6..e345a5ef6 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.7.0", + "version": "7.7.2", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From ac7f37be28883edbe539eff02d0a6a054b2aab14 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 29 Oct 2023 16:03:31 +0100 Subject: [PATCH 059/440] build(npm): bump msw from 1.2.2 to 2.0.0 (#1165) Bumps [msw](https://github.com/mswjs/msw) from 1.2.2 to 2.0.0. - [Release notes](https://github.com/mswjs/msw/releases) - [Changelog](https://github.com/mswjs/msw/blob/main/CHANGELOG.md) - [Commits](https://github.com/mswjs/msw/compare/v1.2.2...v2.0.0) --- updated-dependencies: - dependency-name: msw dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- examples/react-oidc-demo/package.json | 2 +- .../oidc-client-service-worker/package.json | 2 +- packages/react-oidc/package.json | 2 +- pnpm-lock.yaml | 279 ++++++++---------- 4 files changed, 131 insertions(+), 154 deletions(-) diff --git a/examples/react-oidc-demo/package.json b/examples/react-oidc-demo/package.json index 65d4fab0a..2afb93a35 100644 --- a/examples/react-oidc-demo/package.json +++ b/examples/react-oidc-demo/package.json @@ -34,7 +34,7 @@ "copyfiles": "2.4.1", "cross-env": "^7.0.3", "jsdom": "22.1.0", - "msw": "1.2.2", + "msw": "2.0.0", "typescript": "5.1.6", "vite": "^4.4.4", "vite-plugin-dts": "^3.3.0", diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 1e16963f5..79d2b2ed8 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -38,7 +38,7 @@ "cpy": "^10.1.0", "cpy-cli": "^5.0.0", "rimraf": "5.0.1", - "msw": "1.2.2", + "msw": "2.0.0", "typescript": "5.1.6", "vite": "^4.4.4", "vite-plugin-dts": "^3.3.0", diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index e345a5ef6..0ead0c202 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -58,7 +58,7 @@ "cpy-cli": "^5.0.0", "cross-env": "^7.0.3", "jsdom": "22.1.0", - "msw": "1.2.2", + "msw": "2.0.0", "react": "^18.2.0", "react-dom": "^18.2.0", "rimraf": "5.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 26a1579b7..aa2a30e0b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -76,7 +76,7 @@ importers: version: link:../../packages/react-oidc next: specifier: latest - version: 13.5.6(react-dom@18.2.0)(react@18.2.0) + version: 14.0.0(react-dom@18.2.0)(react@18.2.0) react: specifier: latest version: 18.2.0 @@ -161,8 +161,8 @@ importers: specifier: 22.1.0 version: 22.1.0 msw: - specifier: 1.2.2 - version: 1.2.2(typescript@5.1.6) + specifier: 2.0.0 + version: 2.0.0(typescript@5.1.6) typescript: specifier: 5.1.6 version: 5.1.6 @@ -231,8 +231,8 @@ importers: specifier: ^5.0.0 version: 5.0.0 msw: - specifier: 1.2.2 - version: 1.2.2(typescript@5.1.6) + specifier: 2.0.0 + version: 2.0.0(typescript@5.1.6) rimraf: specifier: 5.0.1 version: 5.0.1 @@ -292,8 +292,8 @@ importers: specifier: 22.1.0 version: 22.1.0 msw: - specifier: 1.2.2 - version: 1.2.2(typescript@5.1.6) + specifier: 2.0.0 + version: 2.0.0(typescript@5.1.6) react: specifier: ^18.2.0 version: 18.2.0 @@ -559,6 +559,24 @@ packages: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} dev: true + /@bundled-es-modules/cookie@2.0.0: + resolution: {integrity: sha512-Or6YHg/kamKHpxULAdSqhGqnWFneIXu1NKvvfBBzKGwpVsYuFIQ5aBPHDnnoR3ghW1nvSkALd+EF9iMtY7Vjxw==} + dependencies: + cookie: 0.5.0 + dev: true + + /@bundled-es-modules/js-levenshtein@2.0.1: + resolution: {integrity: sha512-DERMS3yfbAljKsQc0U2wcqGKUWpdFjwqWuoMugEJlqBnKO180/n+4SR/J8MRDt1AN48X1ovgoD9KrdVXcaa3Rg==} + dependencies: + js-levenshtein: 1.1.6 + dev: true + + /@bundled-es-modules/statuses@1.0.1: + resolution: {integrity: sha512-yn7BklA5acgcBr+7w064fGV+SGIFySjCKpqjcWgBAIfrAkY+4GQTJJHQMeT3V/sgz23VTEVV8TtOmkvJAhFVfg==} + dependencies: + statuses: 2.0.1 + dev: true + /@esbuild-kit/cjs-loader@2.4.2: resolution: {integrity: sha512-BDXFbYOJzT/NBEtp71cvsrGPwGAMGRB/349rwKuoxNSiKjPraNNnlK6MIIabViCjqZugu6j+xeMDlEkWdHHJSg==} dependencies: @@ -1134,36 +1152,29 @@ packages: resolution: {integrity: sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==} dev: true - /@mswjs/cookies@0.2.2: - resolution: {integrity: sha512-mlN83YSrcFgk7Dm1Mys40DLssI1KdJji2CMKN8eOlBqsTADYzj2+jWzsANsUTFbxDMWPD5e9bfA1RGqBpS3O1g==} + /@mswjs/cookies@1.0.0: + resolution: {integrity: sha512-TdXoBdI+h/EDTsVLCX/34s4+9U0sWi92qFnIGUEikpMCSKLhBeujovyYVSoORNbYgsBH5ga7/tfxyWcEZAxiYA==} engines: {node: '>=14'} - dependencies: - '@types/set-cookie-parser': 2.4.3 - set-cookie-parser: 2.6.0 dev: true - /@mswjs/interceptors@0.17.9: - resolution: {integrity: sha512-4LVGt03RobMH/7ZrbHqRxQrS9cc2uh+iNKSj8UWr8M26A2i793ju+csaB5zaqYltqJmA2jUq4VeYfKmVqvsXQg==} - engines: {node: '>=14'} + /@mswjs/interceptors@0.25.7: + resolution: {integrity: sha512-U7iFYs/qU/5jfz1VDpoYz3xqX9nzhsBXw7q923dv6GiGTy+m2ZLhD33L80R/shHOW/YWjeH6k16GbIHGw+bAng==} + engines: {node: '>=18'} dependencies: - '@open-draft/until': 1.0.3 - '@types/debug': 4.1.8 - '@xmldom/xmldom': 0.8.10 - debug: 4.3.4 - headers-polyfill: 3.1.2 + '@open-draft/deferred-promise': 2.2.0 + '@open-draft/logger': 0.3.0 + '@open-draft/until': 2.1.0 + is-node-process: 1.2.0 outvariant: 1.4.0 - strict-event-emitter: 0.2.8 - web-encoding: 1.1.5 - transitivePeerDependencies: - - supports-color + strict-event-emitter: 0.5.1 dev: true - /@next/env@13.5.6: - resolution: {integrity: sha512-Yac/bV5sBGkkEXmAX5FWPS9Mmo2rthrOPRQQNfycJPkjUAUclomCPH7QFVCDQ4Mp2k2K1SSM6m0zrxYrOwtFQw==} + /@next/env@14.0.0: + resolution: {integrity: sha512-cIKhxkfVELB6hFjYsbtEeTus2mwrTC+JissfZYM0n+8Fv+g8ucUfOlm3VEDtwtwydZ0Nuauv3bl0qF82nnCAqA==} dev: false - /@next/swc-darwin-arm64@13.5.6: - resolution: {integrity: sha512-5nvXMzKtZfvcu4BhtV0KH1oGv4XEW+B+jOfmBdpFI3C7FrB/MfujRpWYSBBO64+qbW8pkZiSyQv9eiwnn5VIQA==} + /@next/swc-darwin-arm64@14.0.0: + resolution: {integrity: sha512-HQKi159jCz4SRsPesVCiNN6tPSAFUkOuSkpJsqYTIlbHLKr1mD6be/J0TvWV6fwJekj81bZV9V/Tgx3C2HO9lA==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] @@ -1171,8 +1182,8 @@ packages: dev: false optional: true - /@next/swc-darwin-x64@13.5.6: - resolution: {integrity: sha512-6cgBfxg98oOCSr4BckWjLLgiVwlL3vlLj8hXg2b+nDgm4bC/qVXXLfpLB9FHdoDu4057hzywbxKvmYGmi7yUzA==} + /@next/swc-darwin-x64@14.0.0: + resolution: {integrity: sha512-4YyQLMSaCgX/kgC1jjF3s3xSoBnwHuDhnF6WA1DWNEYRsbOOPWjcYhv8TKhRe2ApdOam+VfQSffC4ZD+X4u1Cg==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] @@ -1180,8 +1191,8 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-gnu@13.5.6: - resolution: {integrity: sha512-txagBbj1e1w47YQjcKgSU4rRVQ7uF29YpnlHV5xuVUsgCUf2FmyfJ3CPjZUvpIeXCJAoMCFAoGnbtX86BK7+sg==} + /@next/swc-linux-arm64-gnu@14.0.0: + resolution: {integrity: sha512-io7fMkJ28Glj7SH8yvnlD6naIhRDnDxeE55CmpQkj3+uaA2Hko6WGY2pT5SzpQLTnGGnviK85cy8EJ2qsETj/g==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -1189,8 +1200,8 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-musl@13.5.6: - resolution: {integrity: sha512-cGd+H8amifT86ZldVJtAKDxUqeFyLWW+v2NlBULnLAdWsiuuN8TuhVBt8ZNpCqcAuoruoSWynvMWixTFcroq+Q==} + /@next/swc-linux-arm64-musl@14.0.0: + resolution: {integrity: sha512-nC2h0l1Jt8LEzyQeSs/BKpXAMe0mnHIMykYALWaeddTqCv5UEN8nGO3BG8JAqW/Y8iutqJsaMe2A9itS0d/r8w==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -1198,8 +1209,8 @@ packages: dev: false optional: true - /@next/swc-linux-x64-gnu@13.5.6: - resolution: {integrity: sha512-Mc2b4xiIWKXIhBy2NBTwOxGD3nHLmq4keFk+d4/WL5fMsB8XdJRdtUlL87SqVCTSaf1BRuQQf1HvXZcy+rq3Nw==} + /@next/swc-linux-x64-gnu@14.0.0: + resolution: {integrity: sha512-Wf+WjXibJQ7hHXOdNOmSMW5bxeJHVf46Pwb3eLSD2L76NrytQlif9NH7JpHuFlYKCQGfKfgSYYre5rIfmnSwQw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -1207,8 +1218,8 @@ packages: dev: false optional: true - /@next/swc-linux-x64-musl@13.5.6: - resolution: {integrity: sha512-CFHvP9Qz98NruJiUnCe61O6GveKKHpJLloXbDSWRhqhkJdZD2zU5hG+gtVJR//tyW897izuHpM6Gtf6+sNgJPQ==} + /@next/swc-linux-x64-musl@14.0.0: + resolution: {integrity: sha512-WTZb2G7B+CTsdigcJVkRxfcAIQj7Lf0ipPNRJ3vlSadU8f0CFGv/ST+sJwF5eSwIe6dxKoX0DG6OljDBaad+rg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -1216,8 +1227,8 @@ packages: dev: false optional: true - /@next/swc-win32-arm64-msvc@13.5.6: - resolution: {integrity: sha512-aFv1ejfkbS7PUa1qVPwzDHjQWQtknzAZWGTKYIAaS4NMtBlk3VyA6AYn593pqNanlicewqyl2jUhQAaFV/qXsg==} + /@next/swc-win32-arm64-msvc@14.0.0: + resolution: {integrity: sha512-7R8/x6oQODmNpnWVW00rlWX90sIlwluJwcvMT6GXNIBOvEf01t3fBg0AGURNKdTJg2xNuP7TyLchCL7Lh2DTiw==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] @@ -1225,8 +1236,8 @@ packages: dev: false optional: true - /@next/swc-win32-ia32-msvc@13.5.6: - resolution: {integrity: sha512-XqqpHgEIlBHvzwG8sp/JXMFkLAfGLqkbVsyN+/Ih1mR8INb6YCc2x/Mbwi6hsAgUnqQztz8cvEbHJUbSl7RHDg==} + /@next/swc-win32-ia32-msvc@14.0.0: + resolution: {integrity: sha512-RLK1nELvhCnxaWPF07jGU4x3tjbyx2319q43loZELqF0+iJtKutZ+Lk8SVmf/KiJkYBc7Cragadz7hb3uQvz4g==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] @@ -1234,8 +1245,8 @@ packages: dev: false optional: true - /@next/swc-win32-x64-msvc@13.5.6: - resolution: {integrity: sha512-Cqfe1YmOS7k+5mGu92nl5ULkzpKuxJrP3+4AEuPmrpFZ3BHxTY3TnHmU1On3bFmFFs6FbTcdF58CCUProGpIGQ==} + /@next/swc-win32-x64-msvc@14.0.0: + resolution: {integrity: sha512-g6hLf1SUko+hnnaywQQZzzb3BRecQsoKkF3o/C+F+dOA4w/noVAJngUVkfwF0+2/8FzNznM7ofM6TGZO9svn7w==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -1264,8 +1275,19 @@ packages: fastq: 1.15.0 dev: true - /@open-draft/until@1.0.3: - resolution: {integrity: sha512-Aq58f5HiWdyDlFffbbSjAlv596h/cOnt2DO1w3DOC7OJ5EHs0hd/nycJfiu9RJbT6Yk6F1knnRRXNSpxoIVZ9Q==} + /@open-draft/deferred-promise@2.2.0: + resolution: {integrity: sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==} + dev: true + + /@open-draft/logger@0.3.0: + resolution: {integrity: sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==} + dependencies: + is-node-process: 1.2.0 + outvariant: 1.4.0 + dev: true + + /@open-draft/until@2.1.0: + resolution: {integrity: sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==} dev: true /@pkgjs/parseargs@0.11.0: @@ -1464,12 +1486,6 @@ packages: resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==} dev: true - /@types/debug@4.1.8: - resolution: {integrity: sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ==} - dependencies: - '@types/ms': 0.7.31 - dev: true - /@types/estree@1.0.1: resolution: {integrity: sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==} dev: true @@ -1500,10 +1516,6 @@ packages: resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} dev: true - /@types/ms@0.7.31: - resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} - dev: true - /@types/node@18.17.1: resolution: {integrity: sha512-xlR1jahfizdplZYRU59JlUx9uzF1ARa8jbhM11ccpCJya8kvos5jwdm2ZAgxSCwOl0fq21svP18EVwPBXMQudw==} dev: true @@ -1542,10 +1554,8 @@ packages: resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} dev: true - /@types/set-cookie-parser@2.4.3: - resolution: {integrity: sha512-7QhnH7bi+6KAhBB+Auejz1uV9DHiopZqu7LfR/5gZZTkejJV5nYeZZpgfFoE0N8aDsXuiYpfKyfyMatCwQhyTQ==} - dependencies: - '@types/node': 20.4.5 + /@types/statuses@2.0.3: + resolution: {integrity: sha512-NwCYScf83RIwCyi5/9cXocrJB//xrqMh5PMw3mYTSFGaI3DuVjBLfO/PCk7QVAC3Da8b9NjxNmTO9Aj9T3rl/Q==} dev: true /@types/testing-library__jest-dom@5.14.9: @@ -1906,17 +1916,6 @@ packages: - typescript dev: true - /@xmldom/xmldom@0.8.10: - resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==} - engines: {node: '>=10.0.0'} - dev: true - - /@zxing/text-encoding@0.9.0: - resolution: {integrity: sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==} - requiresBuild: true - dev: true - optional: true - /abab@2.0.6: resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} dev: true @@ -2328,14 +2327,6 @@ packages: ansi-styles: 4.3.0 supports-color: 7.2.0 - /chalk@4.1.1: - resolution: {integrity: sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - dev: true - /chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} @@ -2465,8 +2456,8 @@ packages: resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} dev: true - /cookie@0.4.2: - resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==} + /cookie@0.5.0: + resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} engines: {node: '>= 0.6'} dev: true @@ -3263,11 +3254,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /events@3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} - engines: {node: '>=0.8.x'} - dev: true - /execa@5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} @@ -3419,6 +3405,14 @@ packages: mime-types: 2.1.35 dev: true + /formdata-node@4.4.1: + resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==} + engines: {node: '>= 12.20'} + dependencies: + node-domexception: 1.0.0 + web-streams-polyfill: 4.0.0-beta.3 + dev: true + /fs-extra@7.0.1: resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} engines: {node: '>=6 <7 || >=8'} @@ -3596,8 +3590,8 @@ packages: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} dev: true - /graphql@16.7.1: - resolution: {integrity: sha512-DRYR9tf+UGU0KOsMcKAlXeFfX89UiiIZ0dRU3mR0yJfu6OjZqUcp68NnFLnqQU5RexygFoDy1EW+ccOYcPfmHg==} + /graphql@16.8.1: + resolution: {integrity: sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==} engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} dev: true @@ -3647,8 +3641,8 @@ packages: hasBin: true dev: true - /headers-polyfill@3.1.2: - resolution: {integrity: sha512-tWCK4biJ6hcLqTviLXVR9DTRfYGQMXEIUj3gwJ2rZ5wO/at3XtkI4g8mCvFdUF9l1KMBNCfmNAdnahm1cgavQA==} + /headers-polyfill@4.0.2: + resolution: {integrity: sha512-EWGTfnTqAO2L/j5HZgoM/3z82L7necsJ0pO9Tp0X1wil3PDLrkypTBRgVO2ExehEEvUycejZD3FuRaXpZZc3kw==} dev: true /hosted-git-info@4.1.0: @@ -3872,13 +3866,6 @@ packages: engines: {node: '>=8'} dev: true - /is-generator-function@1.0.10: - resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} - engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: 1.0.0 - dev: true - /is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -4454,40 +4441,43 @@ packages: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} dev: true - /msw@1.2.2(typescript@5.1.6): - resolution: {integrity: sha512-GsW3PE/Es/a1tYThXcM8YHOZ1S1MtivcS3He/LQbbTCx3rbWJYCtWD5XXyJ53KlNPT7O1VI9sCW3xMtgFe8XpQ==} - engines: {node: '>=14'} + /msw@2.0.0(typescript@5.1.6): + resolution: {integrity: sha512-lw9UHuzNCWoODHaThGeLLIIuzEBUQkj3fJXQnChHifMKbB2UmF2msHd4d/lnyqjAyD0XWoibdviW9wlstFPpkA==} + engines: {node: '>=18'} hasBin: true requiresBuild: true peerDependencies: - typescript: '>= 4.4.x <= 5.1.x' + typescript: '>= 4.7.x <= 5.2.x' peerDependenciesMeta: typescript: optional: true dependencies: - '@mswjs/cookies': 0.2.2 - '@mswjs/interceptors': 0.17.9 - '@open-draft/until': 1.0.3 + '@bundled-es-modules/cookie': 2.0.0 + '@bundled-es-modules/js-levenshtein': 2.0.1 + '@bundled-es-modules/statuses': 1.0.1 + '@mswjs/cookies': 1.0.0 + '@mswjs/interceptors': 0.25.7 + '@open-draft/until': 2.1.0 '@types/cookie': 0.4.1 '@types/js-levenshtein': 1.1.1 - chalk: 4.1.1 + '@types/statuses': 2.0.3 + chalk: 4.1.2 chokidar: 3.5.3 - cookie: 0.4.2 - graphql: 16.7.1 - headers-polyfill: 3.1.2 + formdata-node: 4.4.1 + graphql: 16.8.1 + headers-polyfill: 4.0.2 inquirer: 8.2.5 is-node-process: 1.2.0 js-levenshtein: 1.1.6 node-fetch: 2.6.12 outvariant: 1.4.0 path-to-regexp: 6.2.1 - strict-event-emitter: 0.4.6 + strict-event-emitter: 0.5.1 type-fest: 2.19.0 typescript: 5.1.6 yargs: 17.7.2 transitivePeerDependencies: - encoding - - supports-color dev: true /muggle-string@0.3.1: @@ -4515,9 +4505,9 @@ packages: resolution: {integrity: sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==} dev: true - /next@13.5.6(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-Y2wTcTbO4WwEsVb4A8VSnOsG1I9ok+h74q0ZdxkwM3EODqrs4pasq7O0iUxbcS9VtWMicG7f3+HAj0r1+NtKSw==} - engines: {node: '>=16.14.0'} + /next@14.0.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-J0jHKBJpB9zd4+c153sair0sz44mbaCHxggs8ryVXSFBuBqJ8XdE9/ozoV85xGh2VnSjahwntBZZgsihL9QznA==} + engines: {node: '>=18.17.0'} hasBin: true peerDependencies: '@opentelemetry/api': ^1.1.0 @@ -4530,7 +4520,7 @@ packages: sass: optional: true dependencies: - '@next/env': 13.5.6 + '@next/env': 14.0.0 '@swc/helpers': 0.5.2 busboy: 1.6.0 caniuse-lite: 1.0.30001517 @@ -4540,20 +4530,25 @@ packages: styled-jsx: 5.1.1(react@18.2.0) watchpack: 2.4.0 optionalDependencies: - '@next/swc-darwin-arm64': 13.5.6 - '@next/swc-darwin-x64': 13.5.6 - '@next/swc-linux-arm64-gnu': 13.5.6 - '@next/swc-linux-arm64-musl': 13.5.6 - '@next/swc-linux-x64-gnu': 13.5.6 - '@next/swc-linux-x64-musl': 13.5.6 - '@next/swc-win32-arm64-msvc': 13.5.6 - '@next/swc-win32-ia32-msvc': 13.5.6 - '@next/swc-win32-x64-msvc': 13.5.6 + '@next/swc-darwin-arm64': 14.0.0 + '@next/swc-darwin-x64': 14.0.0 + '@next/swc-linux-arm64-gnu': 14.0.0 + '@next/swc-linux-arm64-musl': 14.0.0 + '@next/swc-linux-x64-gnu': 14.0.0 + '@next/swc-linux-x64-musl': 14.0.0 + '@next/swc-win32-arm64-msvc': 14.0.0 + '@next/swc-win32-ia32-msvc': 14.0.0 + '@next/swc-win32-x64-msvc': 14.0.0 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros dev: false + /node-domexception@1.0.0: + resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} + engines: {node: '>=10.5.0'} + dev: true + /node-fetch@2.6.12: resolution: {integrity: sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==} engines: {node: 4.x || >=6.0.0} @@ -5330,10 +5325,6 @@ packages: lru-cache: 6.0.0 dev: true - /set-cookie-parser@2.6.0: - resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==} - dev: true - /shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -5422,6 +5413,11 @@ packages: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} dev: true + /statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + dev: true + /std-env@3.3.3: resolution: {integrity: sha512-Rz6yejtVyWnVjC1RFvNmYL10kgjC49EOghxWn0RFqlCHGFpQx+Xe7yW3I4ceK1SGrWIGMjD5Kbue8W/udkbMJg==} dev: true @@ -5437,14 +5433,8 @@ packages: engines: {node: '>=10.0.0'} dev: false - /strict-event-emitter@0.2.8: - resolution: {integrity: sha512-KDf/ujU8Zud3YaLtMCcTI4xkZlZVIYxTLr+XIULexP+77EEVWixeXroLUXQXiVtH4XH2W7jr/3PT1v3zBuvc3A==} - dependencies: - events: 3.3.0 - dev: true - - /strict-event-emitter@0.4.6: - resolution: {integrity: sha512-12KWeb+wixJohmnwNFerbyiBrAlq5qJLwIt38etRtKtmmHyDSoGlIqFE9wx+4IwG0aDjI7GV8tc8ZccjWZZtTg==} + /strict-event-emitter@0.5.1: + resolution: {integrity: sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==} dev: true /string-argv@0.3.2: @@ -5894,16 +5884,6 @@ packages: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} dev: true - /util@0.12.5: - resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} - dependencies: - inherits: 2.0.4 - is-arguments: 1.1.1 - is-generator-function: 1.0.10 - is-typed-array: 1.1.12 - which-typed-array: 1.1.11 - dev: true - /v8-to-istanbul@9.1.0: resolution: {integrity: sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==} engines: {node: '>=10.12.0'} @@ -6149,12 +6129,9 @@ packages: defaults: 1.0.4 dev: true - /web-encoding@1.1.5: - resolution: {integrity: sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==} - dependencies: - util: 0.12.5 - optionalDependencies: - '@zxing/text-encoding': 0.9.0 + /web-streams-polyfill@4.0.0-beta.3: + resolution: {integrity: sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==} + engines: {node: '>= 14'} dev: true /web-vitals@3.4.0: From b4cee5aec8365ba2b000742001c717f1d543011b Mon Sep 17 00:00:00 2001 From: GitHub Date: Sun, 29 Oct 2023 15:07:24 +0000 Subject: [PATCH 060/440] [skip ci] Update version package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 79d2b2ed8..8b60f86a5 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.7.2", + "version": "7.7.3", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 7f773bea2..4b367674f 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.7.2'; +export default '7.7.3'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index d2777327d..6d6a3a49f 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.7.2", + "version": "7.7.3", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 7f773bea2..4b367674f 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.7.2'; +export default '7.7.3'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 0ead0c202..99fa77561 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.7.2", + "version": "7.7.3", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 1684abba7d982ecbd2f30610eb140e2ce4549814 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Mon, 6 Nov 2023 16:58:36 +0100 Subject: [PATCH 061/440] feat(oidc-client): move fetch to oidc-client (#1175) (release) --- packages/oidc-client/README.md | 10 +++++++ packages/oidc-client/src/fetch.ts | 36 ++++++++++++++++++++++++++ packages/oidc-client/src/oidcClient.ts | 5 ++++ packages/oidc-client/src/user.ts | 3 ++- packages/react-oidc/src/FetchToken.tsx | 34 +++--------------------- 5 files changed, 56 insertions(+), 32 deletions(-) create mode 100644 packages/oidc-client/src/fetch.ts diff --git a/packages/oidc-client/README.md b/packages/oidc-client/README.md index d9b08e816..ab8c64460 100644 --- a/packages/oidc-client/README.md +++ b/packages/oidc-client/README.md @@ -119,6 +119,9 @@ export const configuration = { const href = window.location.href; const oidcClient = OidcClient.getOrCreate()(configuration); +// Use the fetch bellow to inject access_token and DPOP tokens automatically +const oidcFetch = oidcClient.fetchWithTokens(fetch); + // You can inject you own fetch (default Fetch Interface) function and location object (respecting IOidcLocation interface) // import {OidcLocation} from '@axa-fr/oidc-client' // const oidcClient = OidcClient.getOrCreate(() => fetch, new OidcLocation())(configuration); @@ -319,6 +322,13 @@ export class OidcClient { */ async getValidTokenAsync(waitMs = 200, numberWait = 50): Promise; + /** + * Retrieves a new fetch function that inject bearer tokens (also DPOP tokens). + * @param fetch The current fetch function to use + * @returns Fetch A new fectch function that inject bearer tokens (also DPOP tokens). + */ + getFetchWithTokens(fetch: Fetch): Fetch; + /** * Retrieves OIDC user information. * @param noCache Indicates whether user information should be retrieved bypassing the cache. diff --git a/packages/oidc-client/src/fetch.ts b/packages/oidc-client/src/fetch.ts new file mode 100644 index 000000000..9e78f7948 --- /dev/null +++ b/packages/oidc-client/src/fetch.ts @@ -0,0 +1,36 @@ +import {Fetch} from "./types"; +import {OidcClient} from "./oidcClient"; + +export const fetchWithTokens = (fetch: Fetch, oidcClient: OidcClient | null) => async (...params: Parameters) => { + const [url, options, ...rest] = params; + const optionTmp = options ? { ...options } : { method: 'GET' }; + let headers = new Headers(); + if (optionTmp.headers) { + headers = !(optionTmp.headers instanceof Headers) + ? new Headers(optionTmp.headers) + : optionTmp.headers; + } + const oidc = oidcClient; + + // @ts-ignore + const getValidToken = await oidc.getValidTokenAsync(); + const accessToken = getValidToken?.tokens?.accessToken; + + if (!headers.has('Accept')) { + headers.set('Accept', 'application/json'); + } + if (accessToken) { + if(oidc.configuration.demonstrating_proof_of_possession) { + const demonstrationOdProofOfPossession = await oidc.generateDemonstrationOfProofOfPossessionAsync(accessToken, url.toString(), optionTmp.method); + headers.set('Authorization', `PoP ${accessToken}`); + headers.set('DPoP', demonstrationOdProofOfPossession); + } else { + headers.set('Authorization', `Bearer ${accessToken}`); + } + if (!optionTmp.credentials) { + optionTmp.credentials = 'same-origin'; + } + } + const newOptions = { ...optionTmp, headers }; + return await fetch(url, newOptions, ...rest); +}; diff --git a/packages/oidc-client/src/oidcClient.ts b/packages/oidc-client/src/oidcClient.ts index 4cf592933..32a3c123c 100644 --- a/packages/oidc-client/src/oidcClient.ts +++ b/packages/oidc-client/src/oidcClient.ts @@ -2,6 +2,7 @@ import { LoginCallback, Oidc } from './oidc.js'; import { getValidTokenAsync, Tokens, ValidToken } from './parseTokens.js'; import { Fetch, OidcConfiguration, StringMap } from './types.js'; import {ILOidcLocation, OidcLocation} from "./location"; +import {fetchWithTokens} from "./fetch"; export interface EventSubscriber { (name: string, data:any); @@ -73,6 +74,10 @@ export class OidcClient { async getValidTokenAsync(waitMs = 200, numberWait = 50): Promise { return getValidTokenAsync(this._oidc, waitMs, numberWait); } + + fetchWithTokens(fetch: Fetch): Fetch { + return fetchWithTokens(fetch, this); + } async userInfoAsync(noCache = false):Promise { return this._oidc.userInfoAsync(noCache); diff --git a/packages/oidc-client/src/user.ts b/packages/oidc-client/src/user.ts index e23f7407c..ebc1d0600 100644 --- a/packages/oidc-client/src/user.ts +++ b/packages/oidc-client/src/user.ts @@ -19,7 +19,8 @@ export const userInfoAsync = (oidc) => async (noCache = false) => { return null; } - const oidcServerConfiguration = await oidc.initAsync(oidc.configuration.authority, oidc.configuration.authority_configuration); + const configuration = oidc.configuration; + const oidcServerConfiguration = await oidc.initAsync(configuration.authority, configuration.authority_configuration); const url = oidcServerConfiguration.userInfoEndpoint; const fetchUserInfo = async (accessToken) => { const res = await fetch(url, { diff --git a/packages/react-oidc/src/FetchToken.tsx b/packages/react-oidc/src/FetchToken.tsx index 13f4c0a10..ca59e3240 100644 --- a/packages/react-oidc/src/FetchToken.tsx +++ b/packages/react-oidc/src/FetchToken.tsx @@ -8,38 +8,9 @@ export interface ComponentWithOidcFetchProps { const defaultConfigurationName = 'default'; const fetchWithToken = (fetch: Fetch, getOidcWithConfigurationName: () => OidcClient | null) => async (...params: Parameters) => { - const [url, options, ...rest] = params; - const optionTmp = options ? { ...options } : { method: 'GET' }; - - let headers = new Headers(); - if (optionTmp.headers) { - headers = !(optionTmp.headers instanceof Headers) - ? new Headers(optionTmp.headers) - : optionTmp.headers; - } const oidc = getOidcWithConfigurationName(); - - // @ts-ignore - const getValidToken = await oidc.getValidTokenAsync(); - const accessToken = getValidToken?.tokens?.accessToken; - - if (!headers.has('Accept')) { - headers.set('Accept', 'application/json'); - } - if (accessToken) { - if(oidc.configuration.demonstrating_proof_of_possession){ - const demonstrationOdProofOfPossession = await oidc.generateDemonstrationOfProofOfPossessionAsync(accessToken, url.toString(), optionTmp.method); - headers.set('Authorization', `PoP ${accessToken}`); - headers.set('DPoP', demonstrationOdProofOfPossession); - } else{ - headers.set('Authorization', `Bearer ${accessToken}`); - } - if (!optionTmp.credentials) { - optionTmp.credentials = 'same-origin'; - } - } - const newOptions = { ...optionTmp, headers }; - return await fetch(url, newOptions, ...rest); + const newFetch = oidc.fetchWithTokens(fetch); + return await newFetch(...params); }; export const withOidcFetch = (fetch: Fetch = null, configurationName = defaultConfigurationName) => ( @@ -57,6 +28,7 @@ export const useOidcFetch = (fetch: Fetch = null, configurationName = defaultCon (input: RequestInfo | URL, init?: RequestInit) => { const getOidcWithConfigurationName = () => getOidc(configurationName); const newFetch = fetchWithToken(previousFetch, getOidcWithConfigurationName); + console.log('newFetch', input) return newFetch(input, init); }, [previousFetch, configurationName], From 1a12a19a54924f0941a960b47fca8b4c169256a0 Mon Sep 17 00:00:00 2001 From: GitHub Date: Mon, 6 Nov 2023 16:02:11 +0000 Subject: [PATCH 062/440] [skip ci] Update version package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 8b60f86a5..5b36cdaaf 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.7.3", + "version": "7.8.0", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 4b367674f..ee72dc3f8 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.7.3'; +export default '7.8.0'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 6d6a3a49f..89af271e1 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.7.3", + "version": "7.8.0", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 4b367674f..ee72dc3f8 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.7.3'; +export default '7.8.0'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 99fa77561..00cd7a205 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.7.3", + "version": "7.8.0", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 9549b9ae613d3cf357cb4b760fc8cc9e0af80c44 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Tue, 7 Nov 2023 10:39:23 +0100 Subject: [PATCH 063/440] doc(oidc-client): typo in method name --- packages/oidc-client/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/oidc-client/README.md b/packages/oidc-client/README.md index ab8c64460..a8c2916a2 100644 --- a/packages/oidc-client/README.md +++ b/packages/oidc-client/README.md @@ -327,7 +327,7 @@ export class OidcClient { * @param fetch The current fetch function to use * @returns Fetch A new fectch function that inject bearer tokens (also DPOP tokens). */ - getFetchWithTokens(fetch: Fetch): Fetch; + fetchWithTokens(fetch: Fetch): Fetch; /** * Retrieves OIDC user information. From dbcfec46798b2137154dd33f31bf842f6b7730b8 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Sun, 12 Nov 2023 14:33:10 +0100 Subject: [PATCH 064/440] feat(oidc-client): enhance service worker flexibility (alpha) (#1180) --- packages/oidc-client/README.md | 2 + packages/oidc-client/src/iniWorker.spec.ts | 2 +- packages/oidc-client/src/initWorker.ts | 156 ++----------------- packages/oidc-client/src/initWorkerOption.ts | 133 ++++++++++++++++ packages/oidc-client/src/login.ts | 4 +- packages/oidc-client/src/logout.ts | 2 +- packages/oidc-client/src/oidc.ts | 16 +- packages/oidc-client/src/renewTokens.ts | 2 +- packages/oidc-client/src/types.ts | 3 + packages/react-oidc/README.md | 4 +- 10 files changed, 171 insertions(+), 153 deletions(-) create mode 100644 packages/oidc-client/src/initWorkerOption.ts diff --git a/packages/oidc-client/README.md b/packages/oidc-client/README.md index a8c2916a2..9eaf8c3f7 100644 --- a/packages/oidc-client/README.md +++ b/packages/oidc-client/README.md @@ -193,7 +193,9 @@ const configuration = { }, refresh_time_before_tokens_expiration_in_second: Number, // default is 120 seconds service_worker_relative_url: String, + service_worker_keep_alive_path: String, // default is "/" service_worker_only: Boolean, // default false + service_worker_activate: () => boolean, // you can take the control of the service worker default activation which use user agent string service_worker_update_require_callback: (registration:any, stopKeepAlive:Function) => Promise, // callback called when service worker need to be updated, you can take the control of the update process extras: StringMap | undefined, // ex: {'prompt': 'consent', 'access_type': 'offline'} list of key/value that is sent to the OIDC server (more info: https://github.com/openid/AppAuth-JS) token_request_extras: StringMap | undefined, // ex: {'prompt': 'consent', 'access_type': 'offline'} list of key/value that is sent to the OIDC server during token request (more info: https://github.com/openid/AppAuth-JS) diff --git a/packages/oidc-client/src/iniWorker.spec.ts b/packages/oidc-client/src/iniWorker.spec.ts index a0228aa2b..8f356f8cc 100644 --- a/packages/oidc-client/src/iniWorker.spec.ts +++ b/packages/oidc-client/src/iniWorker.spec.ts @@ -1,6 +1,6 @@ import { describe, expect,it } from 'vitest'; -import { excludeOs, getOperatingSystem } from './initWorker'; +import { excludeOs, getOperatingSystem } from './initWorkerOption'; describe('initWorker test Suite', () => { diff --git a/packages/oidc-client/src/initWorker.ts b/packages/oidc-client/src/initWorker.ts index 72a8a794b..1421e8dff 100644 --- a/packages/oidc-client/src/initWorker.ts +++ b/packages/oidc-client/src/initWorker.ts @@ -4,118 +4,17 @@ import { OidcConfiguration } from './types.js'; import codeVersion from './version.js'; import {ILOidcLocation} from "./location"; -export const getOperatingSystem = (navigator) => { - const nVer = navigator.appVersion; - const nAgt = navigator.userAgent; - const unknown = '-'; - // system - let os = unknown; - const clientStrings = [ - { s: 'Windows 10', r: /(Windows 10.0|Windows NT 10.0)/ }, - { s: 'Windows 8.1', r: /(Windows 8.1|Windows NT 6.3)/ }, - { s: 'Windows 8', r: /(Windows 8|Windows NT 6.2)/ }, - { s: 'Windows 7', r: /(Windows 7|Windows NT 6.1)/ }, - { s: 'Windows Vista', r: /Windows NT 6.0/ }, - { s: 'Windows Server 2003', r: /Windows NT 5.2/ }, - { s: 'Windows XP', r: /(Windows NT 5.1|Windows XP)/ }, - { s: 'Windows 2000', r: /(Windows NT 5.0|Windows 2000)/ }, - { s: 'Windows ME', r: /(Win 9x 4.90|Windows ME)/ }, - { s: 'Windows 98', r: /(Windows 98|Win98)/ }, - { s: 'Windows 95', r: /(Windows 95|Win95|Windows_95)/ }, - { s: 'Windows NT 4.0', r: /(Windows NT 4.0|WinNT4.0|WinNT|Windows NT)/ }, - { s: 'Windows CE', r: /Windows CE/ }, - { s: 'Windows 3.11', r: /Win16/ }, - { s: 'Android', r: /Android/ }, - { s: 'Open BSD', r: /OpenBSD/ }, - { s: 'Sun OS', r: /SunOS/ }, - { s: 'Chrome OS', r: /CrOS/ }, - { s: 'Linux', r: /(Linux|X11(?!.*CrOS))/ }, - { s: 'iOS', r: /(iPhone|iPad|iPod)/ }, - { s: 'Mac OS X', r: /Mac OS X/ }, - { s: 'Mac OS', r: /(Mac OS|MacPPC|MacIntel|Mac_PowerPC|Macintosh)/ }, - { s: 'QNX', r: /QNX/ }, - { s: 'UNIX', r: /UNIX/ }, - { s: 'BeOS', r: /BeOS/ }, - { s: 'OS/2', r: /OS\/2/ }, - { s: 'Search Bot', r: /(nuhk|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask Jeeves\/Teoma|ia_archiver)/ }, - ]; - for (const id in clientStrings) { - const cs = clientStrings[id]; - if (cs.r.test(nAgt)) { - os = cs.s; - break; - } - } - - let osVersion = unknown; - - if (/Windows/.test(os)) { - osVersion = /Windows (.*)/.exec(os)[1]; - os = 'Windows'; - } - - switch (os) { - case 'Mac OS': - case 'Mac OS X': - case 'Android': - osVersion = /(?:Android|Mac OS|Mac OS X|MacPPC|MacIntel|Mac_PowerPC|Macintosh) ([._\d]+)/.exec(nAgt)[1]; - break; - - case 'iOS': { - const osVersionArray = /OS (\d+)_(\d+)_?(\d+)?/.exec(nVer); - osVersion = osVersionArray[1] + '.' + osVersionArray[2] + '.' + (parseInt(osVersionArray[3]) | 0); - break; - } - } - return { - os, - osVersion, - }; -}; - -function getBrowser() { - const ua = navigator.userAgent; let tem; - let M = ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || []; - if (/trident/i.test(M[1])) { - tem = /\brv[ :]+(\d+)/g.exec(ua) || []; - return { name: 'ie', version: (tem[1] || '') }; - } - if (M[1] === 'Chrome') { - tem = ua.match(/\bOPR|Edge\/(\d+)/); - - if (tem != null) { - let version = tem[1]; - if (!version) { - const splits = ua.split(tem[0] + '/'); - if (splits.length > 1) { - version = splits[1]; - } - } - - return { name: 'opera', version }; - } - } - M = M[2] ? [M[1], M[2]] : [navigator.appName, navigator.appVersion, '-?']; - if ((tem = ua.match(/version\/(\d+)/i)) != null) { M.splice(1, 1, tem[1]); } - return { - name: M[0].toLowerCase(), - version: M[1], - }; -} - let keepAliveServiceWorkerTimeoutId = null; - +let keepAliveController; export const sleepAsync = (milliseconds) => { return new Promise(resolve => timer.setTimeout(resolve, milliseconds)); }; -let keepAliveController ; -const keepAlive = () => { +const keepAlive = (service_worker_keep_alive_path='/') => { try { - const operatingSystem = getOperatingSystem(navigator); - const minSleepSeconds = operatingSystem.os === 'Android' ? 240 : 150; + const minSleepSeconds = 150; keepAliveController = new AbortController(); - const promise = fetch(`/OidcKeepAliveServiceWorker.json?minSleepSeconds=${minSleepSeconds}`, { signal: keepAliveController.signal }); + const promise = fetch(`${service_worker_keep_alive_path}OidcKeepAliveServiceWorker.json?minSleepSeconds=${minSleepSeconds}`, { signal: keepAliveController.signal }); promise.catch(error => { console.log(error); }); sleepAsync(minSleepSeconds * 1000).then(keepAlive); } catch (error) { console.log(error); } @@ -127,8 +26,8 @@ const stopKeepAlive = () => { } }; -const isServiceWorkerProxyActiveAsync = () => { - return fetch('/OidcKeepAliveServiceWorker.json', { +const isServiceWorkerProxyActiveAsync = (service_worker_keep_alive_path='/') => { + return fetch(`${service_worker_keep_alive_path}OidcKeepAliveServiceWorker.json`, { headers: { 'oidc-vanilla': 'true', }, @@ -145,17 +44,8 @@ export const defaultServiceWorkerUpdateRequireCallback = (location:ILOidcLocatio await sleepAsync(2000); location.reload(); } - -export const excludeOs = (operatingSystem) => { - if (operatingSystem.os === 'iOS' && operatingSystem.osVersion.startsWith('12')) { - return true; - } - if (operatingSystem.os === 'Mac OS X' && operatingSystem.osVersion.startsWith('10_15_6')) { - return true; - } - return false; -}; + const sendMessageAsync = (registration) => (data) : Promise => { return new Promise(function(resolve, reject) { @@ -171,28 +61,14 @@ const sendMessageAsync = (registration) => (data) : Promise => { }); }; -export const initWorkerAsync = async(serviceWorkerRelativeUrl, configurationName) => { +export const initWorkerAsync = async(configuration, configurationName) => { + + const serviceWorkerRelativeUrl = configuration.service_worker_relative_url; if (typeof window === 'undefined' || typeof navigator === 'undefined' || !navigator.serviceWorker || !serviceWorkerRelativeUrl) { return null; } - const { name, version } = getBrowser(); - if (name === 'chrome' && parseInt(version) <= 70) { - return null; - } - if (name === 'opera') { - if (!version) { - return null; - } - if (parseInt(version.split('.')[0]) < 80) { - return null; - } - } - if (name === 'ie') { - return null; - } - - const operatingSystem = getOperatingSystem(navigator); - if (excludeOs(operatingSystem)) { + + if(configuration.service_worker_activate() === false) { return null; } @@ -232,10 +108,10 @@ export const initWorkerAsync = async(serviceWorkerRelativeUrl, configurationName return { tokens: parseOriginalTokens(result.tokens, null, oidcConfiguration.token_renew_mode), status: result.status }; }; - const startKeepAliveServiceWorker = () => { + const startKeepAliveServiceWorker = (service_worker_keep_alive_path='/') => { if (keepAliveServiceWorkerTimeoutId == null) { keepAliveServiceWorkerTimeoutId = 'not_null'; - keepAlive(); + keepAlive(service_worker_keep_alive_path); } }; @@ -336,8 +212,8 @@ export const initWorkerAsync = async(serviceWorkerRelativeUrl, configurationName return { clearAsync, initAsync, - startKeepAliveServiceWorker, - isServiceWorkerProxyActiveAsync, + startKeepAliveServiceWorker : () => startKeepAliveServiceWorker(configuration.service_worker_keep_alive_path), + isServiceWorkerProxyActiveAsync : () => isServiceWorkerProxyActiveAsync(configuration.service_worker_keep_alive_path), setSessionStateAsync, getSessionStateAsync, setNonceAsync, diff --git a/packages/oidc-client/src/initWorkerOption.ts b/packages/oidc-client/src/initWorkerOption.ts new file mode 100644 index 000000000..87df15b17 --- /dev/null +++ b/packages/oidc-client/src/initWorkerOption.ts @@ -0,0 +1,133 @@ +import {ServiceWorkerActivate} from "./types"; + +export const excludeOs = (operatingSystem) => { + if (operatingSystem.os === 'iOS' && operatingSystem.osVersion.startsWith('12')) { + return true; + } + if (operatingSystem.os === 'Mac OS X' && operatingSystem.osVersion.startsWith('10_15_6')) { + return true; + } + return false; +}; +export const getOperatingSystem = (navigator) => { + const nVer = navigator.appVersion; + const nAgt = navigator.userAgent; + const unknown = '-'; + // system + let os = unknown; + const clientStrings = [ + { s: 'Windows 10', r: /(Windows 10.0|Windows NT 10.0)/ }, + { s: 'Windows 8.1', r: /(Windows 8.1|Windows NT 6.3)/ }, + { s: 'Windows 8', r: /(Windows 8|Windows NT 6.2)/ }, + { s: 'Windows 7', r: /(Windows 7|Windows NT 6.1)/ }, + { s: 'Windows Vista', r: /Windows NT 6.0/ }, + { s: 'Windows Server 2003', r: /Windows NT 5.2/ }, + { s: 'Windows XP', r: /(Windows NT 5.1|Windows XP)/ }, + { s: 'Windows 2000', r: /(Windows NT 5.0|Windows 2000)/ }, + { s: 'Windows ME', r: /(Win 9x 4.90|Windows ME)/ }, + { s: 'Windows 98', r: /(Windows 98|Win98)/ }, + { s: 'Windows 95', r: /(Windows 95|Win95|Windows_95)/ }, + { s: 'Windows NT 4.0', r: /(Windows NT 4.0|WinNT4.0|WinNT|Windows NT)/ }, + { s: 'Windows CE', r: /Windows CE/ }, + { s: 'Windows 3.11', r: /Win16/ }, + { s: 'Android', r: /Android/ }, + { s: 'Open BSD', r: /OpenBSD/ }, + { s: 'Sun OS', r: /SunOS/ }, + { s: 'Chrome OS', r: /CrOS/ }, + { s: 'Linux', r: /(Linux|X11(?!.*CrOS))/ }, + { s: 'iOS', r: /(iPhone|iPad|iPod)/ }, + { s: 'Mac OS X', r: /Mac OS X/ }, + { s: 'Mac OS', r: /(Mac OS|MacPPC|MacIntel|Mac_PowerPC|Macintosh)/ }, + { s: 'QNX', r: /QNX/ }, + { s: 'UNIX', r: /UNIX/ }, + { s: 'BeOS', r: /BeOS/ }, + { s: 'OS/2', r: /OS\/2/ }, + { s: 'Search Bot', r: /(nuhk|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask Jeeves\/Teoma|ia_archiver)/ }, + ]; + for (const id in clientStrings) { + const cs = clientStrings[id]; + if (cs.r.test(nAgt)) { + os = cs.s; + break; + } + } + + let osVersion = unknown; + + if (/Windows/.test(os)) { + osVersion = /Windows (.*)/.exec(os)[1]; + os = 'Windows'; + } + + switch (os) { + case 'Mac OS': + case 'Mac OS X': + case 'Android': + osVersion = /(?:Android|Mac OS|Mac OS X|MacPPC|MacIntel|Mac_PowerPC|Macintosh) ([._\d]+)/.exec(nAgt)[1]; + break; + + case 'iOS': { + const osVersionArray = /OS (\d+)_(\d+)_?(\d+)?/.exec(nVer); + osVersion = osVersionArray[1] + '.' + osVersionArray[2] + '.' + (parseInt(osVersionArray[3]) | 0); + break; + } + } + return { + os, + osVersion, + }; +}; + +function getBrowser() { + const ua = navigator.userAgent; let tem; + let M = ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || []; + if (/trident/i.test(M[1])) { + tem = /\brv[ :]+(\d+)/g.exec(ua) || []; + return { name: 'ie', version: (tem[1] || '') }; + } + if (M[1] === 'Chrome') { + tem = ua.match(/\bOPR|Edge\/(\d+)/); + + if (tem != null) { + let version = tem[1]; + if (!version) { + const splits = ua.split(tem[0] + '/'); + if (splits.length > 1) { + version = splits[1]; + } + } + + return { name: 'opera', version }; + } + } + M = M[2] ? [M[1], M[2]] : [navigator.appName, navigator.appVersion, '-?']; + if ((tem = ua.match(/version\/(\d+)/i)) != null) { M.splice(1, 1, tem[1]); } + return { + name: M[0].toLowerCase(), + version: M[1], + }; +} + +export const activateServiceWorker : ServiceWorkerActivate = () : boolean =>{ + const { name, version } = getBrowser(); + if (name === 'chrome' && parseInt(version) <= 70) { + return false; + } + if (name === 'opera') { + if (!version) { + return false; + } + if (parseInt(version.split('.')[0]) < 80) { + return false; + } + } + if (name === 'ie') { + return false; + } + + const operatingSystem = getOperatingSystem(navigator); + if (excludeOs(operatingSystem)) { + return false; + } + return true; +} \ No newline at end of file diff --git a/packages/oidc-client/src/login.ts b/packages/oidc-client/src/login.ts index a56ce4e36..ba3a37f15 100644 --- a/packages/oidc-client/src/login.ts +++ b/packages/oidc-client/src/login.ts @@ -42,7 +42,7 @@ export const defaultLoginAsync = (configurationName:string, configuration:OidcCo extraFinal.nonce = generateRandom(12); } const nonce = { nonce: extraFinal.nonce }; - const serviceWorker = await initWorkerAsync(configuration.service_worker_relative_url, configurationName); + const serviceWorker = await initWorkerAsync(configuration, configurationName); const oidcServerConfiguration = await initAsync(configuration.authority, configuration.authority_configuration); let storage; if (serviceWorker) { @@ -87,7 +87,7 @@ export const loginCallbackAsync = (oidc) => async (isSilentSignin = false) => { const href = oidc.location.getCurrentHref(); const queryParams = getParseQueryStringFromLocation(href); const sessionState = queryParams.session_state; - const serviceWorker = await initWorkerAsync(configuration.service_worker_relative_url, oidc.configurationName); + const serviceWorker = await initWorkerAsync(configuration, oidc.configurationName); let storage; let nonceData; let getLoginParams; diff --git a/packages/oidc-client/src/logout.ts b/packages/oidc-client/src/logout.ts index b2e7d4734..858120f83 100644 --- a/packages/oidc-client/src/logout.ts +++ b/packages/oidc-client/src/logout.ts @@ -16,7 +16,7 @@ export const destroyAsync = (oidc) => async (status) => { if (oidc.checkSessionIFrame) { oidc.checkSessionIFrame.stop(); } - const serviceWorker = await initWorkerAsync(oidc.configuration.service_worker_relative_url, oidc.configurationName); + const serviceWorker = await initWorkerAsync(oidc.configuration, oidc.configurationName); if (!serviceWorker) { const session = initSession(oidc.configurationName, oidc.configuration.storage); await session.clearAsync(status); diff --git a/packages/oidc-client/src/oidc.ts b/packages/oidc-client/src/oidc.ts index 306f75d75..0d53d90cf 100644 --- a/packages/oidc-client/src/oidc.ts +++ b/packages/oidc-client/src/oidc.ts @@ -16,6 +16,7 @@ import {userInfoAsync} from './user.js'; import {base64urlOfHashOfASCIIEncodingAsync} from "./crypto"; import {generateJwtDemonstratingProofOfPossessionAsync} from "./jwt"; import {ILOidcLocation, OidcLocation} from "./location"; +import {activateServiceWorker} from "./initWorkerOption"; @@ -110,6 +111,7 @@ export class Oidc { authority_timeout_wellknowurl_in_millisecond: configuration.authority_timeout_wellknowurl_in_millisecond ?? 10000, logout_tokens_to_invalidate: configuration.logout_tokens_to_invalidate ?? ['access_token', 'refresh_token'], service_worker_update_require_callback, + service_worker_activate: configuration.service_worker_activate ?? activateServiceWorker, }; this.getFetch = getFetch ?? getFetchDefault; @@ -207,7 +209,7 @@ Please checkout that you are using OIDC hook inside a { try { let loginParams; - const serviceWorker = await initWorkerAsync(configuration.service_worker_relative_url, this.configurationName); + const serviceWorker = await initWorkerAsync(configuration, this.configurationName); if (serviceWorker) { loginParams = serviceWorker.getLoginParams(); } else { @@ -485,7 +487,7 @@ Please checkout that you are using OIDC hook inside a { oidc.tokens = tokens; }; const { tokens, status } = await oidc.synchroniseTokensAsync(refreshToken, 0, forceRefresh, extras, updateTokens); - const serviceWorker = await initWorkerAsync(oidc.configuration.service_worker_relative_url, oidc.configurationName); + const serviceWorker = await initWorkerAsync(oidc.configuration, oidc.configurationName); if (!serviceWorker) { const session = initSession(oidc.configurationName, oidc.configuration.storage); await session.setTokens(oidc.tokens); diff --git a/packages/oidc-client/src/types.ts b/packages/oidc-client/src/types.ts index 16f3b0db0..89e4e7a44 100644 --- a/packages/oidc-client/src/types.ts +++ b/packages/oidc-client/src/types.ts @@ -3,6 +3,7 @@ export type Fetch = typeof window.fetch; export type LogoutToken = 'access_token' | 'refresh_token'; export type ServiceWorkerUpdateRequireCallback = (registration:any, stopKeepAlive:Function) => Promise; +export type ServiceWorkerActivate = () => boolean; export type OidcConfiguration = { client_id: string; @@ -18,6 +19,8 @@ export type OidcConfiguration = { refresh_time_before_tokens_expiration_in_second?: number; token_request_timeout?: number; service_worker_relative_url?:string; + service_worker_keep_alive_path?:string; + service_worker_activate?:ServiceWorkerActivate; service_worker_only?:boolean; service_worker_convert_all_requests_to_cors?:boolean; service_worker_update_require_callback?:ServiceWorkerUpdateRequireCallback; diff --git a/packages/react-oidc/README.md b/packages/react-oidc/README.md index 7b48a6f6e..638da1918 100644 --- a/packages/react-oidc/README.md +++ b/packages/react-oidc/README.md @@ -187,7 +187,9 @@ const configuration = { }, refresh_time_before_tokens_expiration_in_second: Number, // default is 120 seconds service_worker_relative_url: String, - service_worker_only: Boolean, // default false + service_worker_keep_alive_path: String, // default is "/" + service_worker_only: Boolean, // default false + service_worker_activate: () => boolean, // you can take the control of the service worker default activation which use user agent string service_worker_update_require_callback: (registration:any, stopKeepAlive:Function) => Promise, // callback called when service worker need to be updated, you can take the control of the update process extras: StringMap | undefined, // ex: {'prompt': 'consent', 'access_type': 'offline'} list of key/value that is sent to the OIDC server (more info: https://github.com/openid/AppAuth-JS) token_request_extras: StringMap | undefined, // ex: {'prompt': 'consent', 'access_type': 'offline'} list of key/value that is sent to the OIDC server during token request (more info: https://github.com/openid/AppAuth-JS) From c54c7b9f3447c0474b460649eb315c13f5f8b1da Mon Sep 17 00:00:00 2001 From: VladimirPlatonenko <113877849+VladimirPlatonenko@users.noreply.github.com> Date: Sun, 12 Nov 2023 23:56:54 +1000 Subject: [PATCH 065/440] fix(service-worker): Reclaming all clients from SW after hard reload (#1149) * Claiming control of requests from SW after Hard refresh * Movint service worker changes to ts --------- Co-authored-by: Vladmir Platonenko --- packages/oidc-client-service-worker/src/OidcServiceWorker.ts | 4 ++++ packages/oidc-client/src/initWorker.ts | 2 ++ 2 files changed, 6 insertions(+) diff --git a/packages/oidc-client-service-worker/src/OidcServiceWorker.ts b/packages/oidc-client-service-worker/src/OidcServiceWorker.ts index b687771c0..fa24322e7 100644 --- a/packages/oidc-client-service-worker/src/OidcServiceWorker.ts +++ b/packages/oidc-client-service-worker/src/OidcServiceWorker.ts @@ -283,6 +283,10 @@ const handleFetch = async (event: FetchEvent) => { const handleMessage = (event: ExtendableMessageEvent) => { const port = event.ports[0]; const data = event.data as MessageEventData; + if (event.data.type === "claim") { + _self.clients.claim().then(() => port.postMessage({})); + return; + } const configurationName = data.configurationName; let currentDatabase = database[configurationName]; if (trustedDomains == null) { diff --git a/packages/oidc-client/src/initWorker.ts b/packages/oidc-client/src/initWorker.ts index 1421e8dff..5f1270e5a 100644 --- a/packages/oidc-client/src/initWorker.ts +++ b/packages/oidc-client/src/initWorker.ts @@ -76,6 +76,8 @@ export const initWorkerAsync = async(configuration, configurationName) => { try { await navigator.serviceWorker.ready; + if (!navigator.serviceWorker.controller) + await sendMessageAsync(registration)({ type: 'claim' }); } catch (err) { return null; } From b08cd594d2427170cde835dcff97d5be396952e6 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Sun, 12 Nov 2023 18:18:11 +0100 Subject: [PATCH 066/440] doc(FAQ): Update FAQ.md (release) --- FAQ.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/FAQ.md b/FAQ.md index ab2c68f67..a39a5af41 100644 --- a/FAQ.md +++ b/FAQ.md @@ -63,9 +63,6 @@ Use the "token_renew_mode" option to change this behavior. - **token_renew_mode**: String, // Optional, update tokens based on the selected token(s) lifetime: "access_token_or_id_token_invalid" (default), "access_token_invalid", "id_token_invalid" -## Hard-reload in browser unregister ServiceWorker -https://github.com/AxaFrance/react-oidc/issues/1098 - ## window.crypto.subtle is unavailable over HTTP The library doesn't work over HTTP. Use HTTPS. From 24135038510ada4b9eecffae1494693ef9347a07 Mon Sep 17 00:00:00 2001 From: GitHub Date: Sun, 12 Nov 2023 17:22:29 +0000 Subject: [PATCH 067/440] [skip ci] Update version package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 5b36cdaaf..fb7b946b1 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.8.0", + "version": "7.9.0", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index ee72dc3f8..ccae09dc5 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.8.0'; +export default '7.9.0'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 89af271e1..a6a042505 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.8.0", + "version": "7.9.0", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index ee72dc3f8..ccae09dc5 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.8.0'; +export default '7.9.0'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 00cd7a205..d9c307de5 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.8.0", + "version": "7.9.0", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 7e0cb297587e314451321c3ddd1b0e5f7e7e6c0e Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Mon, 13 Nov 2023 21:29:28 +0100 Subject: [PATCH 068/440] fix(logout): okta tokens null (release) (#1188) --- packages/oidc-client/src/logout.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/oidc-client/src/logout.ts b/packages/oidc-client/src/logout.ts index 858120f83..782984f06 100644 --- a/packages/oidc-client/src/logout.ts +++ b/packages/oidc-client/src/logout.ts @@ -46,12 +46,12 @@ export const logoutAsync = (oidc, oidcDatabase, fetch, console, oicLocation:ILOi const revocationEndpoint = oidcServerConfiguration.revocationEndpoint; if (revocationEndpoint) { const promises = []; - const accessToken = oidc.tokens.accessToken; + const accessToken = oidc.tokens ? oidc.tokens.accessToken : null; if (accessToken && configuration.logout_tokens_to_invalidate.includes(oidcLogoutTokens.access_token)) { const revokeAccessTokenPromise = performRevocationRequestAsync(fetch)(revocationEndpoint, accessToken, TOKEN_TYPE.access_token, configuration.client_id); promises.push(revokeAccessTokenPromise); } - const refreshToken = oidc.tokens.refreshToken; + const refreshToken = oidc.tokens ? oidc.tokens.refreshToken : null; if (refreshToken && configuration.logout_tokens_to_invalidate.includes(oidcLogoutTokens.refresh_token)) { const revokeRefreshTokenPromise = performRevocationRequestAsync(fetch)(revocationEndpoint, refreshToken, TOKEN_TYPE.refresh_token, configuration.client_id); promises.push(revokeRefreshTokenPromise); From 77361cfb1c8f2f0eed9c38ba15e32f3bbe0f4095 Mon Sep 17 00:00:00 2001 From: GitHub Date: Mon, 13 Nov 2023 20:32:49 +0000 Subject: [PATCH 069/440] [skip ci] Update version package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index fb7b946b1..20e99cb20 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.9.0", + "version": "7.9.1", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index ccae09dc5..f6915101b 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.9.0'; +export default '7.9.1'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index a6a042505..aeab7a632 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.9.0", + "version": "7.9.1", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index ccae09dc5..f6915101b 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.9.0'; +export default '7.9.1'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index d9c307de5..8cb6b3ea1 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.9.0", + "version": "7.9.1", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 5085e05beb4c7a88fad1df61e11213b68672e7d9 Mon Sep 17 00:00:00 2001 From: meesvandongen <35409045+meesvandongen@users.noreply.github.com> Date: Fri, 17 Nov 2023 12:19:31 +0100 Subject: [PATCH 070/440] fix(sevice-worker): add URL normalization for getCurrentDatabaseDomain endpoints comparison (release) (#1196) Co-authored-by: Mees van Dongen --- .../src/utils/__tests__/domains.spec.ts | 221 +++++++++------ .../src/utils/domains.ts | 266 +++++++++++------- 2 files changed, 313 insertions(+), 174 deletions(-) diff --git a/packages/oidc-client-service-worker/src/utils/__tests__/domains.spec.ts b/packages/oidc-client-service-worker/src/utils/__tests__/domains.spec.ts index 36a01768d..302b81295 100644 --- a/packages/oidc-client-service-worker/src/utils/__tests__/domains.spec.ts +++ b/packages/oidc-client-service-worker/src/utils/__tests__/domains.spec.ts @@ -1,94 +1,155 @@ import { describe, expect, it } from 'vitest'; import { openidWellknownUrlEndWith } from '../../constants'; -import { checkDomain, getCurrentDatabaseDomain } from '..'; -import { Database, OidcServerConfiguration, Tokens, TrustedDomains } from './../../types'; +import { checkDomain, getCurrentDatabaseDomain, normalizeUrl } from '..'; +import { Database, Tokens, TrustedDomains } from './../../types'; describe('domains', () => { - describe('can check domain matches', () => { - it('can check string domains and return void', () => { - const result = () => - checkDomain( - ['https://securesite.com:3000'], - 'https://securesite.com:3000', - ); - expect(result()).toBeUndefined(); - }); + describe('can check domain matches', () => { + it('can check string domains and return void', () => { + const result = () => + checkDomain(['https://securesite.com:3000'], 'https://securesite.com:3000'); + expect(result()).toBeUndefined(); + }); - it('can check regExp domains and return void when valid', () => { - const result = () => - checkDomain( - [/^https:\/\/securesite\.com/], - 'https://securesite.com:3000', - ); - expect(result()).toBeUndefined(); - }); + it('can check regExp domains and return void when valid', () => { + const result = () => + checkDomain([/^https:\/\/securesite\.com/], 'https://securesite.com:3000'); + expect(result()).toBeUndefined(); + }); - it('will throw error when domain is not trusted', () => { - const result = () => - checkDomain( - ['https://notsecuresite.com'], - 'https://securesite.com:3000', - ); - expect(result).toThrowError(); - }); + it('will throw error when domain is not trusted', () => { + const result = () => + checkDomain(['https://notsecuresite.com'], 'https://securesite.com:3000'); + expect(result).toThrowError(); + }); - it('will return void when endpoint is falsy', () => { - const result = () => checkDomain(['https://securesite.com:3000'], ''); - expect(result()).toBeUndefined(); - }); - }); - describe('getCurrentDatabaseDomain', () => { - const db: Database = { - default: { - configurationName: 'config', - tokens: {} as Tokens, - status: 'NOT_CONNECTED', - state: null, - codeVerifier: null, - nonce: null, - oidcServerConfiguration: {} as OidcServerConfiguration, - hideAccessToken: true, - convertAllRequestsToCorsExceptNavigate: false, - setAccessTokenToNavigateRequests: true, - demonstratingProofOfPossessionNonce: null, - demonstratingProofOfPossessionJwkJson: null, - }, - }; + it('will return void when endpoint is falsy', () => { + const result = () => checkDomain(['https://securesite.com:3000'], ''); + expect(result()).toBeUndefined(); + }); + }); + describe('getCurrentDatabaseDomain', () => { + const db: Database = { + default: { + configurationName: 'config', + tokens: {} as Tokens, + status: 'NOT_CONNECTED', + state: null, + codeVerifier: null, + nonce: null, + oidcServerConfiguration: { + authorizationEndpoint: 'https://demo.duendesoftware.com/connect/authorize', + issuer: 'https://demo.duendesoftware.com', + revocationEndpoint: 'https://demo.duendesoftware.com/connect/revocation', + tokenEndpoint: 'https://demo.duendesoftware.com/connect/token', + userInfoEndpoint: 'https://demo.duendesoftware.com/connect/userinfo', + }, + hideAccessToken: true, + convertAllRequestsToCorsExceptNavigate: false, + setAccessTokenToNavigateRequests: true, + demonstratingProofOfPossessionNonce: null, + demonstratingProofOfPossessionJwkJson: null, + }, + }; - it('will return null when url ends with openidWellknownUrlEndWith', () => { - const trustedDomains: TrustedDomains = { - default: [ - 'https://demo.duendesoftware.com', - 'https://kdhttps.auth0.com', - ], - }; - const url = 'http://url' + openidWellknownUrlEndWith; - expect(getCurrentDatabaseDomain(db, url, trustedDomains)).toBeNull(); - }); + it('will return null when url ends with openidWellknownUrlEndWith', () => { + const trustedDomains: TrustedDomains = { + default: ['https://demo.duendesoftware.com', 'https://kdhttps.auth0.com'], + }; + const url = 'http://url' + openidWellknownUrlEndWith; + expect(getCurrentDatabaseDomain(db, url, trustedDomains)).toBeNull(); + }); - it('will test urls against domains list if accessTokenDomains list is not present', () => { - const trustedDomains: TrustedDomains = { - default: { - domains: ['https://domain'], - showAccessToken: false, - }, - }; + it('will return null when url is the token endpoint', () => { + const trustedDomains: TrustedDomains = { + default: ['https://demo.duendesoftware.com', 'https://kdhttps.auth0.com'], + }; + const url = 'https://demo.duendesoftware.com/connect/token'; + expect(getCurrentDatabaseDomain(db, url, trustedDomains)).toBeNull(); + }); - expect(getCurrentDatabaseDomain(db, 'https://domain/test', trustedDomains)).toBe(db.default); - }); + it('will return null when url is the token endpoint only differs by default port', () => { + const trustedDomains: TrustedDomains = { + default: ['https://demo.duendesoftware.com', 'https://kdhttps.auth0.com'], + }; + const url = 'https://demo.duendesoftware.com:443/connect/token'; + expect(getCurrentDatabaseDomain(db, url, trustedDomains)).toBeNull(); + }); - it('will test urls against accessTokenDomains list if it is present and ignore domains list', () => { - const trustedDomains: TrustedDomains = { - default: { - domains: ['https://domain'], - accessTokenDomains: ['https://myapi'], - showAccessToken: false, - }, - }; + it('will return null when url is the token endpoint', () => { + const trustedDomains: TrustedDomains = { + default: ['https://demo.duendesoftware.com', 'https://kdhttps.auth0.com'], + }; + const url = 'https://demo.duendesoftware.com/connect/revocation'; + expect(getCurrentDatabaseDomain(db, url, trustedDomains)).toBeNull(); + }); - expect(getCurrentDatabaseDomain(db, 'https://myapi/test', trustedDomains)).toBe(db.default); - expect(getCurrentDatabaseDomain(db, 'https://domain/test', trustedDomains)).toBeNull(); - }); - }); + it('will not return null when url is the userinfo endpoint', () => { + const trustedDomains: TrustedDomains = { + default: ['https://demo.duendesoftware.com', 'https://kdhttps.auth0.com'], + }; + const url = 'https://demo.duendesoftware.com/connect/userinfo'; + expect(getCurrentDatabaseDomain(db, url, trustedDomains)).not.toBeNull(); + }); + + it('will test urls against domains list if accessTokenDomains list is not present', () => { + const trustedDomains: TrustedDomains = { + default: { + domains: ['https://domain'], + showAccessToken: false, + }, + }; + + expect(getCurrentDatabaseDomain(db, 'https://domain/test', trustedDomains)).toBe(db.default); + }); + + it('will test urls against accessTokenDomains list if it is present and ignore domains list', () => { + const trustedDomains: TrustedDomains = { + default: { + domains: ['https://domain'], + accessTokenDomains: ['https://myapi'], + showAccessToken: false, + }, + }; + + expect(getCurrentDatabaseDomain(db, 'https://myapi/test', trustedDomains)).toBe(db.default); + expect(getCurrentDatabaseDomain(db, 'https://domain/test', trustedDomains)).toBeNull(); + }); + }); + it('normalizes urls', () => { + expect(normalizeUrl('foo.com')).toBe('https://foo.com'); + expect(normalizeUrl('foo.com ')).toBe('https://foo.com'); + expect(normalizeUrl('foo.com.')).toBe('https://foo.com'); + expect(normalizeUrl('foo.com')).toBe('https://foo.com'); + expect(normalizeUrl('HTTP://foo.com')).toBe('http://foo.com'); + expect(normalizeUrl('//foo.com')).toBe('https://foo.com'); + expect(normalizeUrl('http://foo.com')).toBe('http://foo.com'); + expect(normalizeUrl('http://foo.com:80')).toBe('http://foo.com'); + expect(normalizeUrl('https://foo.com:443')).toBe('https://foo.com'); + expect(normalizeUrl('http://foo.com/foo/')).toBe('http://foo.com/foo'); + expect(normalizeUrl('foo.com/?foo=bar baz')).toBe('https://foo.com/?foo=bar+baz'); + expect(normalizeUrl('https://foo.com/https://bar.com')).toBe('https://foo.com/https://bar.com'); + expect(normalizeUrl('https://foo.com/https://bar.com/foo//bar')).toBe( + 'https://foo.com/https://bar.com/foo/bar', + ); + expect(normalizeUrl('https://foo.com/http://bar.com')).toBe('https://foo.com/http://bar.com'); + expect(normalizeUrl('https://foo.com/http://bar.com/foo//bar')).toBe( + 'https://foo.com/http://bar.com/foo/bar', + ); + expect(normalizeUrl('http://foo.com/%7Efoo/')).toBe('http://foo.com/~foo'); + expect(normalizeUrl('https://foo.com/%FAIL%/07/94/ca/55.jpg')).toBe( + 'https://foo.com/%FAIL%/07/94/ca/55.jpg', + ); + expect(normalizeUrl('http://foo.com/?')).toBe('http://foo.com'); + expect(normalizeUrl('êxample.com')).toBe('https://xn--xample-hva.com'); + expect(normalizeUrl('http://foo.com/?b=bar&a=foo')).toBe('http://foo.com/?a=foo&b=bar'); + expect(normalizeUrl('http://foo.com/?foo=bar*|<>:"')).toBe( + 'http://foo.com/?foo=bar*|%3C%3E:%22', + ); + expect(normalizeUrl('http://foo.com:5000')).toBe('http://foo.com:5000'); + expect(normalizeUrl('http://foo.com/foo#bar')).toBe('http://foo.com/foo#bar'); + expect(normalizeUrl('http://foo.com/foo/bar/../baz')).toBe('http://foo.com/foo/baz'); + expect(normalizeUrl('http://foo.com/foo/bar/./baz')).toBe('http://foo.com/foo/bar/baz'); + }); }); diff --git a/packages/oidc-client-service-worker/src/utils/domains.ts b/packages/oidc-client-service-worker/src/utils/domains.ts index 72c8bfa51..6f20c766a 100644 --- a/packages/oidc-client-service-worker/src/utils/domains.ts +++ b/packages/oidc-client-service-worker/src/utils/domains.ts @@ -1,104 +1,182 @@ -import { - acceptAnyDomainToken, - openidWellknownUrlEndWith, - scriptFilename, -} from '../constants'; +import { acceptAnyDomainToken, openidWellknownUrlEndWith, scriptFilename } from '../constants'; import { Database, Domain, DomainDetails, OidcConfig, TrustedDomains } from '../types'; -function checkDomain(domains: Domain[], endpoint: string) { - if (!endpoint) { - return; - } - - const domain = domains.find((domain) => { - let testable: RegExp; - - if (typeof domain === 'string') { - testable = new RegExp(`^${domain}`); - } else { - testable = domain; - } - - return testable.test?.(endpoint); - }); - if (!domain) { - throw new Error( - 'Domain ' + - endpoint + - ' is not trusted, please add domain in ' + - scriptFilename, - ); - } +export function checkDomain(domains: Domain[], endpoint: string) { + if (!endpoint) { + return; + } + + const domain = domains.find((domain) => { + let testable: RegExp; + + if (typeof domain === 'string') { + testable = new RegExp(`^${domain}`); + } else { + testable = domain; + } + + return testable.test?.(endpoint); + }); + if (!domain) { + throw new Error( + 'Domain ' + endpoint + ' is not trusted, please add domain in ' + scriptFilename, + ); + } } -export const getDomains = (trustedDomain: Domain[] | DomainDetails, type: 'oidc' | 'accessToken') => { - if (Array.isArray(trustedDomain)) { - return trustedDomain; - } +export const getDomains = ( + trustedDomain: Domain[] | DomainDetails, + type: 'oidc' | 'accessToken', +) => { + if (Array.isArray(trustedDomain)) { + return trustedDomain; + } - return trustedDomain[`${type}Domains`] ?? trustedDomain.domains ?? []; + return trustedDomain[`${type}Domains`] ?? trustedDomain.domains ?? []; }; -const getCurrentDatabaseDomain = ( - database: Database, - url: string, - trustedDomains: TrustedDomains, +export const getCurrentDatabaseDomain = ( + database: Database, + url: string, + trustedDomains: TrustedDomains, ) => { - if (url.endsWith(openidWellknownUrlEndWith)) { - return null; - } - for (const [key, currentDatabase] of Object.entries(database)) { - const oidcServerConfiguration = currentDatabase.oidcServerConfiguration; - - if (!oidcServerConfiguration) { - continue; - } - - if ( - oidcServerConfiguration.tokenEndpoint && - url === oidcServerConfiguration.tokenEndpoint - ) { - continue; - } - if ( - oidcServerConfiguration.revocationEndpoint && - url === oidcServerConfiguration.revocationEndpoint - ) { - continue; - } - const trustedDomain = trustedDomains == null ? [] : trustedDomains[key]; - - const domains = getDomains(trustedDomain, 'accessToken'); - const domainsToSendTokens = oidcServerConfiguration.userInfoEndpoint - ? [oidcServerConfiguration.userInfoEndpoint, ...domains] - : [...domains]; - - let hasToSendToken = false; - if (domainsToSendTokens.find((f) => f === acceptAnyDomainToken)) { - hasToSendToken = true; - } else { - for (let i = 0; i < domainsToSendTokens.length; i++) { - let domain = domainsToSendTokens[i]; - - if (typeof domain === 'string') { - domain = new RegExp(`^${domain}`); - } - - if (domain.test?.(url)) { - hasToSendToken = true; - break; - } - } - } - - if (hasToSendToken) { - if (!currentDatabase.tokens) { - return null; - } - return currentDatabase; - } - } - return null; + if (url.endsWith(openidWellknownUrlEndWith)) { + return null; + } + for (const [key, currentDatabase] of Object.entries(database)) { + const oidcServerConfiguration = currentDatabase.oidcServerConfiguration; + + if (!oidcServerConfiguration) { + continue; + } + + if ( + oidcServerConfiguration.tokenEndpoint && + normalizeUrl(url) === normalizeUrl(oidcServerConfiguration.tokenEndpoint) + ) { + continue; + } + if ( + oidcServerConfiguration.revocationEndpoint && + normalizeUrl(url) === normalizeUrl(oidcServerConfiguration.revocationEndpoint) + ) { + continue; + } + const trustedDomain = trustedDomains == null ? [] : trustedDomains[key]; + + const domains = getDomains(trustedDomain, 'accessToken'); + const domainsToSendTokens = oidcServerConfiguration.userInfoEndpoint + ? [oidcServerConfiguration.userInfoEndpoint, ...domains] + : [...domains]; + + let hasToSendToken = false; + if (domainsToSendTokens.find((f) => f === acceptAnyDomainToken)) { + hasToSendToken = true; + } else { + for (let i = 0; i < domainsToSendTokens.length; i++) { + let domain = domainsToSendTokens[i]; + + if (typeof domain === 'string') { + domain = new RegExp(`^${domain}`); + } + + if (domain.test?.(url)) { + hasToSendToken = true; + break; + } + } + } + + if (hasToSendToken) { + if (!currentDatabase.tokens) { + return null; + } + return currentDatabase; + } + } + return null; }; -export { checkDomain, getCurrentDatabaseDomain }; +export function normalizeUrl(url: string) { + url = url.trim(); + + const hasRelativeProtocol = url.startsWith('//'); + const isRelativeUrl = !hasRelativeProtocol && /^\.*\//.test(url); + + // Prepend protocol + if (!isRelativeUrl) { + url = url.replace(/^(?!(?:\w+:)?\/\/)|^\/\//, 'https:'); + } + + const urlObject = new URL(url); + + // Remove duplicate slashes if not preceded by a protocol + // NOTE: This could be implemented using a single negative lookbehind + // regex, but we avoid that to maintain compatibility with older js engines + // which do not have support for that feature. + if (urlObject.pathname) { + // Split the string by occurrences of this protocol regex, and perform + // duplicate-slash replacement on the strings between those occurrences + // (if any). + const protocolRegex = /\b[a-z][a-z\d+\-.]{1,50}:\/\//g; + + let lastIndex = 0; + let result = ''; + for (;;) { + const match = protocolRegex.exec(urlObject.pathname); + if (!match) { + break; + } + + const protocol = match[0]; + const protocolAtIndex = match.index; + const intermediate = urlObject.pathname.slice(lastIndex, protocolAtIndex); + + result += intermediate.replace(/\/{2,}/g, '/'); + result += protocol; + lastIndex = protocolAtIndex + protocol.length; + } + + const remnant = urlObject.pathname.slice(lastIndex, urlObject.pathname.length); + result += remnant.replace(/\/{2,}/g, '/'); + + urlObject.pathname = result; + } + + // Decode URI octets + if (urlObject.pathname) { + try { + urlObject.pathname = decodeURI(urlObject.pathname); + } catch { + /* empty */ + } + } + + if (urlObject.hostname) { + // Remove trailing dot + urlObject.hostname = urlObject.hostname.replace(/\.$/, ''); + } + + // Sort query parameters + urlObject.searchParams.sort(); + + // Calling `.sort()` encodes the search parameters, so we need to decode them again. + try { + urlObject.search = decodeURIComponent(urlObject.search); + } catch { + /* empty */ + } + + // Remove trailing slash + urlObject.pathname = urlObject.pathname.replace(/\/$/, ''); + + // Take advantage of many of the Node `url` normalizations + url = urlObject.toString(); + + // Remove ending `/` unless removeSingleSlash is false + if (urlObject.hash === '') { + url = url.replace(/\/$/, ''); + } + + return url; +} From 216adc79007264915747edf3ff07171cac456759 Mon Sep 17 00:00:00 2001 From: GitHub Date: Fri, 17 Nov 2023 11:38:41 +0000 Subject: [PATCH 071/440] [skip ci] Update version package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 20e99cb20..455644660 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.9.1", + "version": "7.9.2", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index f6915101b..12edd30f2 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.9.1'; +export default '7.9.2'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index aeab7a632..daaf7495f 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.9.1", + "version": "7.9.2", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index f6915101b..12edd30f2 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.9.1'; +export default '7.9.2'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 8cb6b3ea1..6da09223e 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.9.1", + "version": "7.9.2", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From bf19dd0cc975ea4524b0f68f9315625b3789801b Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Fri, 17 Nov 2023 17:11:12 +0100 Subject: [PATCH 072/440] fix(oidc-client): tokens refresh conflict multiple tabs (alpha) --- packages/oidc-client/src/initSession.ts | 2 +- packages/oidc-client/src/initWorker.ts | 6 ++--- packages/oidc-client/src/renewTokens.ts | 32 ++++++++++++++++--------- 3 files changed, 25 insertions(+), 15 deletions(-) diff --git a/packages/oidc-client/src/initSession.ts b/packages/oidc-client/src/initSession.ts index 6fcf12d17..f582108b0 100644 --- a/packages/oidc-client/src/initSession.ts +++ b/packages/oidc-client/src/initSession.ts @@ -42,7 +42,7 @@ export const initSession = (configurationName, storage = sessionStorage) => { return { nonce: storage[`oidc.nonce.${configurationName}`] }; }; - const setDemonstratingProofOfPossessionNonce = (dpopNonce:string) => { + const setDemonstratingProofOfPossessionNonce = async (dpopNonce:string) => { storage[`oidc.dpop_nonce.${configurationName}`] = dpopNonce; }; diff --git a/packages/oidc-client/src/initWorker.ts b/packages/oidc-client/src/initWorker.ts index 5f1270e5a..229a4471f 100644 --- a/packages/oidc-client/src/initWorker.ts +++ b/packages/oidc-client/src/initWorker.ts @@ -157,8 +157,8 @@ export const initWorkerAsync = async(configuration, configurationName) => { return getLoginParamsCache[configurationName]; }; - const setDemonstratingProofOfPossessionNonce = (demonstratingProofOfPossessionNonce: string) => { - sendMessageAsync(registration)({ type: 'setDemonstratingProofOfPossessionNonce', data: { demonstratingProofOfPossessionNonce }, configurationName }); + const setDemonstratingProofOfPossessionNonce = async (demonstratingProofOfPossessionNonce: string) => { + await sendMessageAsync(registration)({ type: 'setDemonstratingProofOfPossessionNonce', data: { demonstratingProofOfPossessionNonce }, configurationName }); }; const getDemonstratingProofOfPossessionNonce = async () => { @@ -166,7 +166,7 @@ export const initWorkerAsync = async(configuration, configurationName) => { return result.demonstratingProofOfPossessionNonce; }; - const setDemonstratingProofOfPossessionJwkAsync = (demonstratingProofOfPossessionJwk:string) => { + const setDemonstratingProofOfPossessionJwkAsync = async (demonstratingProofOfPossessionJwk:string) => { const demonstratingProofOfPossessionJwkJson = JSON.stringify(demonstratingProofOfPossessionJwk); sendMessageAsync(registration)({ type: 'setDemonstratingProofOfPossessionJwk', data: { demonstratingProofOfPossessionJwkJson }, configurationName }); }; diff --git a/packages/oidc-client/src/renewTokens.ts b/packages/oidc-client/src/renewTokens.ts index 7e4e819d4..5811a6c14 100644 --- a/packages/oidc-client/src/renewTokens.ts +++ b/packages/oidc-client/src/renewTokens.ts @@ -6,20 +6,30 @@ import timer from './timer.js'; import { StringMap } from './types.js'; export async function renewTokensAndStartTimerAsync(oidc, refreshToken, forceRefresh = false, extras:StringMap = null) { - const updateTokens = (tokens) => { oidc.tokens = tokens; }; - const { tokens, status } = await oidc.synchroniseTokensAsync(refreshToken, 0, forceRefresh, extras, updateTokens); - const serviceWorker = await initWorkerAsync(oidc.configuration, oidc.configurationName); - if (!serviceWorker) { - const session = initSession(oidc.configurationName, oidc.configuration.storage); - await session.setTokens(oidc.tokens); - } + const configuration = oidc.configuration; + const lockResourcesName = `${configuration.client_id}_${oidc.configurationName}_${configuration.authority}`; + const tokens = await navigator.locks.request(lockResourcesName, async (lock) => { + const updateTokens = (tokens) => { + oidc.tokens = tokens; + }; + const {tokens, status} = await oidc.synchroniseTokensAsync(refreshToken, 0, forceRefresh, extras, updateTokens); - if (!oidc.tokens) { - await oidc.destroyAsync(status); - return; - } + const serviceWorker = await initWorkerAsync(oidc.configuration, oidc.configurationName); + if (!serviceWorker) { + const session = initSession(oidc.configurationName, oidc.configuration.storage); + await session.setTokens(oidc.tokens); + } + if (!oidc.tokens) { + await oidc.destroyAsync(status); + return null; + } + return tokens + }); + if(!tokens){ + return null; + } if (oidc.timeoutId) { oidc.timeoutId = autoRenewTokens(oidc, tokens.refreshToken, oidc.tokens.expiresAt, extras); } From a80844c2668066b083009043f1dd94fa196e1f18 Mon Sep 17 00:00:00 2001 From: meesvandongen <35409045+meesvandongen@users.noreply.github.com> Date: Fri, 24 Nov 2023 09:25:25 +0100 Subject: [PATCH 073/440] fix(service-worker): make sure URL is normalized when comparing with token endpoint and revocation endpoint (#1198) (release) Co-authored-by: Mees van Dongen --- .../src/OidcServiceWorker.ts | 843 +++++++++--------- .../src/utils/__tests__/domains.spec.ts | 94 +- .../src/utils/__tests__/normalizeUrl.spec.ts | 28 + .../src/utils/domains.ts | 89 +- .../src/utils/index.ts | 1 + .../src/utils/normalizeUrl.ts | 9 + 6 files changed, 516 insertions(+), 548 deletions(-) create mode 100644 packages/oidc-client-service-worker/src/utils/__tests__/normalizeUrl.spec.ts create mode 100644 packages/oidc-client-service-worker/src/utils/normalizeUrl.ts diff --git a/packages/oidc-client-service-worker/src/OidcServiceWorker.ts b/packages/oidc-client-service-worker/src/OidcServiceWorker.ts index fa24322e7..88109e353 100644 --- a/packages/oidc-client-service-worker/src/OidcServiceWorker.ts +++ b/packages/oidc-client-service-worker/src/OidcServiceWorker.ts @@ -1,34 +1,35 @@ import { acceptAnyDomainToken, scriptFilename, TOKEN } from './constants'; -import version from './version'; import { - Database, - MessageEventData, - OidcConfig, - TrustedDomains, + Database, + MessageEventData, + OidcConfig, + TrustedDomains, } from './types'; import { - checkDomain, - getCurrentDatabaseDomain, - getDomains, - hideTokens, - isTokensValid, - serializeHeaders, - sleep, + checkDomain, + getCurrentDatabaseDomain, + getDomains, + hideTokens, + isTokensValid, + serializeHeaders, + sleep, } from './utils'; import { replaceCodeVerifier } from './utils/codeVerifier'; +import { normalizeUrl } from './utils/normalizeUrl'; +import version from './version'; // @ts-ignore -if ((typeof trustedTypes !== 'undefined') && (typeof trustedTypes.createPolicy == 'function')) { - // @ts-ignore - trustedTypes.createPolicy('default', { - createScriptURL: function(url: string) { - if (url == scriptFilename) { - return url; - } else { - throw new Error('Untrusted script URL blocked: ' + url); - } - }, - }); +if (typeof trustedTypes !== 'undefined' && typeof trustedTypes.createPolicy == 'function') { + // @ts-ignore + trustedTypes.createPolicy('default', { + createScriptURL: function (url: string) { + if (url == scriptFilename) { + return url; + } else { + throw new Error('Untrusted script URL blocked: ' + url); + } + }, + }); } const _self = self as ServiceWorkerGlobalScope & typeof globalThis; @@ -41,415 +42,455 @@ const id = Math.round(new Date().getTime() / 1000).toString(); const keepAliveJsonFilename = 'OidcKeepAliveServiceWorker.json'; const handleInstall = (event: ExtendableEvent) => { - console.log('[OidcServiceWorker] service worker installed ' + id); - event.waitUntil(_self.skipWaiting()); + console.log('[OidcServiceWorker] service worker installed ' + id); + event.waitUntil(_self.skipWaiting()); }; const handleActivate = (event: ExtendableEvent) => { - console.log('[OidcServiceWorker] service worker activated ' + id); - event.waitUntil(_self.clients.claim()); + console.log('[OidcServiceWorker] service worker activated ' + id); + event.waitUntil(_self.clients.claim()); }; let currentLoginCallbackConfigurationName: string | null = null; const database: Database = {}; const getCurrentDatabasesTokenEndpoint = (database: Database, url: string) => { - const databases: OidcConfig[] = []; - for (const [, value] of Object.entries(database)) { - if ( - value.oidcServerConfiguration != null && - url.startsWith(value.oidcServerConfiguration.tokenEndpoint) - ) { - databases.push(value); - } else if ( - value.oidcServerConfiguration != null && - value.oidcServerConfiguration.revocationEndpoint && - url.startsWith(value.oidcServerConfiguration.revocationEndpoint) - ) { - databases.push(value); - } - } - return databases; + const databases: OidcConfig[] = []; + for (const [, value] of Object.entries(database)) { + if ( + value.oidcServerConfiguration != null && + url.startsWith(normalizeUrl(value.oidcServerConfiguration.tokenEndpoint)) + ) { + databases.push(value); + } else if ( + value.oidcServerConfiguration != null && + value.oidcServerConfiguration.revocationEndpoint && + url.startsWith( + normalizeUrl(value.oidcServerConfiguration.revocationEndpoint), + ) + ) { + databases.push(value); + } + } + return databases; }; const keepAliveAsync = async (event: FetchEvent) => { - const originalRequest = event.request; - const isFromVanilla = originalRequest.headers.has('oidc-vanilla'); - const init = { status: 200, statusText: 'oidc-service-worker' }; - const response = new Response('{}', init); - if (!isFromVanilla) { - const originalRequestUrl = new URL(originalRequest.url); - const minSleepSeconds = Number(originalRequestUrl.searchParams.get('minSleepSeconds')) || 240; - for (let i = 0; i < minSleepSeconds; i++) { - await sleep(1000 + Math.floor(Math.random() * 1000)); - const cache = await caches.open('oidc_dummy_cache'); - await cache.put(event.request, response.clone()); - } - } - return response; + const originalRequest = event.request; + const isFromVanilla = originalRequest.headers.has('oidc-vanilla'); + const init = { status: 200, statusText: 'oidc-service-worker' }; + const response = new Response('{}', init); + if (!isFromVanilla) { + const originalRequestUrl = new URL(originalRequest.url); + const minSleepSeconds = + Number(originalRequestUrl.searchParams.get('minSleepSeconds')) || 240; + for (let i = 0; i < minSleepSeconds; i++) { + await sleep(1000 + Math.floor(Math.random() * 1000)); + const cache = await caches.open('oidc_dummy_cache'); + await cache.put(event.request, response.clone()); + } + } + return response; }; const handleFetch = async (event: FetchEvent) => { - const originalRequest = event.request; - const url = originalRequest.url; - if (originalRequest.url.includes(keepAliveJsonFilename)) { - event.respondWith(keepAliveAsync(event)); - return; - } + const originalRequest = event.request; + const url = normalizeUrl(originalRequest.url); + if (url.includes(keepAliveJsonFilename)) { + event.respondWith(keepAliveAsync(event)); + return; + } - const currentDatabaseForRequestAccessToken = getCurrentDatabaseDomain( - database, - originalRequest.url, - trustedDomains, - ); - if ( - currentDatabaseForRequestAccessToken && - currentDatabaseForRequestAccessToken.tokens && - currentDatabaseForRequestAccessToken.tokens.access_token - ) { - while ( - currentDatabaseForRequestAccessToken.tokens && - !isTokensValid(currentDatabaseForRequestAccessToken.tokens) - ) { - await sleep(200); - } - - let requestMode = originalRequest.mode; - - if(originalRequest.mode !== "navigate" && currentDatabaseForRequestAccessToken.convertAllRequestsToCorsExceptNavigate) { - requestMode = "cors"; - } - - let headers: { [p: string]: string }; - if(originalRequest.mode == "navigate" && !currentDatabaseForRequestAccessToken.setAccessTokenToNavigateRequests ) { - headers = { - ...serializeHeaders(originalRequest.headers), - } - } else{ - headers = { - ...serializeHeaders(originalRequest.headers), - authorization: 'Bearer ' + currentDatabaseForRequestAccessToken.tokens.access_token, - } - } - let init: RequestInit; - if(originalRequest.mode === "navigate"){ - init = { - headers: headers, - } - } else{ - init = { - headers: headers, - mode: requestMode, - } - } - - const newRequest = new Request(originalRequest, init); + const currentDatabaseForRequestAccessToken = getCurrentDatabaseDomain( + database, + url, + trustedDomains, + ); + if ( + currentDatabaseForRequestAccessToken && + currentDatabaseForRequestAccessToken.tokens && + currentDatabaseForRequestAccessToken.tokens.access_token + ) { + while ( + currentDatabaseForRequestAccessToken.tokens && + !isTokensValid(currentDatabaseForRequestAccessToken.tokens) + ) { + await sleep(200); + } - event.respondWith(fetch(newRequest)); + let requestMode = originalRequest.mode; - return; - } + if ( + originalRequest.mode !== 'navigate' && + currentDatabaseForRequestAccessToken.convertAllRequestsToCorsExceptNavigate + ) { + requestMode = 'cors'; + } - if (event.request.method !== 'POST') { - return; - } + let headers: { [p: string]: string }; + if ( + originalRequest.mode == 'navigate' && + !currentDatabaseForRequestAccessToken.setAccessTokenToNavigateRequests + ) { + headers = { + ...serializeHeaders(originalRequest.headers), + }; + } else { + headers = { + ...serializeHeaders(originalRequest.headers), + authorization: + 'Bearer ' + currentDatabaseForRequestAccessToken.tokens.access_token, + }; + } + let init: RequestInit; + if (originalRequest.mode === 'navigate') { + init = { + headers: headers, + }; + } else { + init = { + headers: headers, + mode: requestMode, + }; + } - let currentDatabase: OidcConfig | null = null; - const currentDatabases = getCurrentDatabasesTokenEndpoint( - database, - originalRequest.url, - ); - const numberDatabase = currentDatabases.length; - if (numberDatabase > 0) { - const maPromesse = new Promise((resolve, reject) => { - const clonedRequest = originalRequest.clone(); - const response = clonedRequest.text().then((actualBody) => { - if ( - actualBody.includes(TOKEN.REFRESH_TOKEN) || - actualBody.includes(TOKEN.ACCESS_TOKEN) - ) { - let newBody = actualBody; - for (let i = 0; i < numberDatabase; i++) { - const currentDb = currentDatabases[i]; + const newRequest = new Request(originalRequest, init); - if (currentDb && currentDb.tokens != null) { - const keyRefreshToken = - TOKEN.REFRESH_TOKEN + '_' + currentDb.configurationName; - if (actualBody.includes(keyRefreshToken)) { - newBody = newBody.replace( - keyRefreshToken, - encodeURIComponent(currentDb.tokens.refresh_token as string), - ); - currentDatabase = currentDb; - break; - } - const keyAccessToken = - TOKEN.ACCESS_TOKEN + '_' + currentDb.configurationName; - if (actualBody.includes(keyAccessToken)) { - newBody = newBody.replace( - keyAccessToken, - encodeURIComponent(currentDb.tokens.access_token), - ); - currentDatabase = currentDb; - break; - } - } - } - const fetchPromise = fetch(originalRequest, { - body: newBody, - method: clonedRequest.method, - headers: { - ...serializeHeaders(originalRequest.headers), - }, - mode: clonedRequest.mode, - cache: clonedRequest.cache, - redirect: clonedRequest.redirect, - referrer: clonedRequest.referrer, - credentials: clonedRequest.credentials, - integrity: clonedRequest.integrity, - }); + event.respondWith(fetch(newRequest)); - if ( - currentDatabase && - currentDatabase.oidcServerConfiguration != null && - currentDatabase.oidcServerConfiguration.revocationEndpoint && - url.startsWith( - currentDatabase.oidcServerConfiguration.revocationEndpoint, - ) - ) { - return fetchPromise.then(async (response) => { - const text = await response.text(); - return new Response(text, response); - }); - } - return fetchPromise.then(hideTokens(currentDatabase as OidcConfig)); // todo type assertion to OidcConfig but could be null, NEEDS REVIEW - } else if ( - actualBody.includes('code_verifier=') && - currentLoginCallbackConfigurationName - ) { - currentDatabase = database[currentLoginCallbackConfigurationName]; - currentLoginCallbackConfigurationName = null; - let newBody = actualBody; - if (currentDatabase && currentDatabase.codeVerifier != null) { - newBody = replaceCodeVerifier(newBody, currentDatabase.codeVerifier); - } + return; + } - return fetch(originalRequest, { - body: newBody, - method: clonedRequest.method, - headers: { - ...serializeHeaders(originalRequest.headers), - }, - mode: clonedRequest.mode, - cache: clonedRequest.cache, - redirect: clonedRequest.redirect, - referrer: clonedRequest.referrer, - credentials: clonedRequest.credentials, - integrity: clonedRequest.integrity, - }).then(hideTokens(currentDatabase)); - } + if (event.request.method !== 'POST') { + return; + } - // if showAccessToken=true, the token is already in the body - // of the request, and it does not need to be injected - // and we can simply clone the request - return fetch(originalRequest, { - body: actualBody, - method: clonedRequest.method, - headers: { - ...serializeHeaders(originalRequest.headers), - }, - mode: clonedRequest.mode, - cache: clonedRequest.cache, - redirect: clonedRequest.redirect, - referrer: clonedRequest.referrer, - credentials: clonedRequest.credentials, - integrity: clonedRequest.integrity, - }); - }); - response - .then((r) => { - resolve(r); - }) - .catch((err) => { - reject(err); - }); - }); + let currentDatabase: OidcConfig | null = null; + const currentDatabases = getCurrentDatabasesTokenEndpoint(database, url); + const numberDatabase = currentDatabases.length; + if (numberDatabase > 0) { + const maPromesse = new Promise((resolve, reject) => { + const clonedRequest = originalRequest.clone(); + const response = clonedRequest.text().then((actualBody) => { + if ( + actualBody.includes(TOKEN.REFRESH_TOKEN) || + actualBody.includes(TOKEN.ACCESS_TOKEN) + ) { + let newBody = actualBody; + for (let i = 0; i < numberDatabase; i++) { + const currentDb = currentDatabases[i]; - event.respondWith(maPromesse); - } -}; + if (currentDb && currentDb.tokens != null) { + const keyRefreshToken = + TOKEN.REFRESH_TOKEN + '_' + currentDb.configurationName; + if (actualBody.includes(keyRefreshToken)) { + newBody = newBody.replace( + keyRefreshToken, + encodeURIComponent(currentDb.tokens.refresh_token as string), + ); + currentDatabase = currentDb; + break; + } + const keyAccessToken = + TOKEN.ACCESS_TOKEN + '_' + currentDb.configurationName; + if (actualBody.includes(keyAccessToken)) { + newBody = newBody.replace( + keyAccessToken, + encodeURIComponent(currentDb.tokens.access_token), + ); + currentDatabase = currentDb; + break; + } + } + } + const fetchPromise = fetch(originalRequest, { + body: newBody, + method: clonedRequest.method, + headers: { + ...serializeHeaders(originalRequest.headers), + }, + mode: clonedRequest.mode, + cache: clonedRequest.cache, + redirect: clonedRequest.redirect, + referrer: clonedRequest.referrer, + credentials: clonedRequest.credentials, + integrity: clonedRequest.integrity, + }); + + if ( + currentDatabase && + currentDatabase.oidcServerConfiguration != null && + currentDatabase.oidcServerConfiguration.revocationEndpoint && + url.startsWith( + normalizeUrl( + currentDatabase.oidcServerConfiguration.revocationEndpoint, + ), + ) + ) { + return fetchPromise.then(async (response) => { + const text = await response.text(); + return new Response(text, response); + }); + } + return fetchPromise.then(hideTokens(currentDatabase as OidcConfig)); // todo type assertion to OidcConfig but could be null, NEEDS REVIEW + } else if ( + actualBody.includes('code_verifier=') && + currentLoginCallbackConfigurationName + ) { + currentDatabase = database[currentLoginCallbackConfigurationName]; + currentLoginCallbackConfigurationName = null; + let newBody = actualBody; + if (currentDatabase && currentDatabase.codeVerifier != null) { + newBody = replaceCodeVerifier( + newBody, + currentDatabase.codeVerifier, + ); + } + return fetch(originalRequest, { + body: newBody, + method: clonedRequest.method, + headers: { + ...serializeHeaders(originalRequest.headers), + }, + mode: clonedRequest.mode, + cache: clonedRequest.cache, + redirect: clonedRequest.redirect, + referrer: clonedRequest.referrer, + credentials: clonedRequest.credentials, + integrity: clonedRequest.integrity, + }).then(hideTokens(currentDatabase)); + } + + // if showAccessToken=true, the token is already in the body + // of the request, and it does not need to be injected + // and we can simply clone the request + return fetch(originalRequest, { + body: actualBody, + method: clonedRequest.method, + headers: { + ...serializeHeaders(originalRequest.headers), + }, + mode: clonedRequest.mode, + cache: clonedRequest.cache, + redirect: clonedRequest.redirect, + referrer: clonedRequest.referrer, + credentials: clonedRequest.credentials, + integrity: clonedRequest.integrity, + }); + }); + response + .then((r) => { + resolve(r); + }) + .catch((err) => { + reject(err); + }); + }); + + event.respondWith(maPromesse); + } +}; const handleMessage = (event: ExtendableMessageEvent) => { - const port = event.ports[0]; - const data = event.data as MessageEventData; - if (event.data.type === "claim") { - _self.clients.claim().then(() => port.postMessage({})); - return; - } - const configurationName = data.configurationName; - let currentDatabase = database[configurationName]; - if (trustedDomains == null) { - trustedDomains = {}; - } - if (!currentDatabase) { - const trustedDomain = trustedDomains[configurationName]; - const showAccessToken = Array.isArray(trustedDomain) ? false : trustedDomain.showAccessToken; - const doNotSetAccessTokenToNavigateRequests = Array.isArray(trustedDomain) ? true : trustedDomain.setAccessTokenToNavigateRequests; - const convertAllRequestsToCorsExceptNavigate = Array.isArray(trustedDomain) ? false : trustedDomain.convertAllRequestsToCorsExceptNavigate; - database[configurationName] = { - tokens: null, - state: null, - codeVerifier: null, - oidcServerConfiguration: null, - oidcConfiguration: undefined, - nonce: null, - status: null, - configurationName, - hideAccessToken: !showAccessToken, - setAccessTokenToNavigateRequests: doNotSetAccessTokenToNavigateRequests ?? true, - convertAllRequestsToCorsExceptNavigate: convertAllRequestsToCorsExceptNavigate ?? false, - demonstratingProofOfPossessionNonce: null, - demonstratingProofOfPossessionJwkJson: null, - }; - currentDatabase = database[configurationName]; + const port = event.ports[0]; + const data = event.data as MessageEventData; + if (event.data.type === 'claim') { + _self.clients.claim().then(() => port.postMessage({})); + return; + } + const configurationName = data.configurationName; + let currentDatabase = database[configurationName]; + if (trustedDomains == null) { + trustedDomains = {}; + } + if (!currentDatabase) { + const trustedDomain = trustedDomains[configurationName]; + const showAccessToken = Array.isArray(trustedDomain) + ? false + : trustedDomain.showAccessToken; + const doNotSetAccessTokenToNavigateRequests = Array.isArray(trustedDomain) + ? true + : trustedDomain.setAccessTokenToNavigateRequests; + const convertAllRequestsToCorsExceptNavigate = Array.isArray(trustedDomain) + ? false + : trustedDomain.convertAllRequestsToCorsExceptNavigate; + database[configurationName] = { + tokens: null, + state: null, + codeVerifier: null, + oidcServerConfiguration: null, + oidcConfiguration: undefined, + nonce: null, + status: null, + configurationName, + hideAccessToken: !showAccessToken, + setAccessTokenToNavigateRequests: + doNotSetAccessTokenToNavigateRequests ?? true, + convertAllRequestsToCorsExceptNavigate: + convertAllRequestsToCorsExceptNavigate ?? false, + demonstratingProofOfPossessionNonce: null, + demonstratingProofOfPossessionJwkJson: null, + }; + currentDatabase = database[configurationName]; - if (!trustedDomains[configurationName]) { - trustedDomains[configurationName] = []; - } - } + if (!trustedDomains[configurationName]) { + trustedDomains[configurationName] = []; + } + } - switch (data.type) { - case 'clear': - currentDatabase.tokens = null; - currentDatabase.state = null; - currentDatabase.codeVerifier = null; - currentDatabase.status = data.data.status; - port.postMessage({ configurationName }); - return; - case 'init': { - const oidcServerConfiguration = data.data.oidcServerConfiguration; - const trustedDomain = trustedDomains[configurationName]; - const domains = getDomains(trustedDomain, 'oidc'); - if (!domains.find((f) => f === acceptAnyDomainToken)) { - [ - oidcServerConfiguration.tokenEndpoint, - oidcServerConfiguration.revocationEndpoint, - oidcServerConfiguration.userInfoEndpoint, - oidcServerConfiguration.issuer, - ].forEach((url) => { - checkDomain(domains, url); - }); - } - currentDatabase.oidcServerConfiguration = oidcServerConfiguration; - currentDatabase.oidcConfiguration = data.data.oidcConfiguration; - const where = data.data.where; - if ( - where === 'loginCallbackAsync' || - where === 'tryKeepExistingSessionAsync' - ) { - currentLoginCallbackConfigurationName = configurationName; - } else { - currentLoginCallbackConfigurationName = null; - } + switch (data.type) { + case 'clear': + currentDatabase.tokens = null; + currentDatabase.state = null; + currentDatabase.codeVerifier = null; + currentDatabase.status = data.data.status; + port.postMessage({ configurationName }); + return; + case 'init': { + const oidcServerConfiguration = data.data.oidcServerConfiguration; + const trustedDomain = trustedDomains[configurationName]; + const domains = getDomains(trustedDomain, 'oidc'); + if (!domains.some((domain) => domain === acceptAnyDomainToken)) { + [ + oidcServerConfiguration.tokenEndpoint, + oidcServerConfiguration.revocationEndpoint, + oidcServerConfiguration.userInfoEndpoint, + oidcServerConfiguration.issuer, + ].forEach((url) => { + checkDomain(domains, url); + }); + } + currentDatabase.oidcServerConfiguration = oidcServerConfiguration; + currentDatabase.oidcConfiguration = data.data.oidcConfiguration; + const where = data.data.where; + if ( + where === 'loginCallbackAsync' || + where === 'tryKeepExistingSessionAsync' + ) { + currentLoginCallbackConfigurationName = configurationName; + } else { + currentLoginCallbackConfigurationName = null; + } - if (!currentDatabase.tokens) { - port.postMessage({ - tokens: null, - status: currentDatabase.status, - configurationName, - version - }); - } else { - const tokens = { - ...currentDatabase.tokens, - }; - if (currentDatabase.hideAccessToken) { - tokens.access_token = TOKEN.ACCESS_TOKEN + '_' + configurationName; - } - if (tokens.refresh_token) { - tokens.refresh_token = TOKEN.REFRESH_TOKEN + '_' + configurationName; - } - if ( - tokens.idTokenPayload && - tokens.idTokenPayload.nonce && - currentDatabase.nonce != null - ) { - tokens.idTokenPayload.nonce = - TOKEN.NONCE_TOKEN + '_' + configurationName; - } - port.postMessage({ - tokens, - status: currentDatabase.status, - configurationName, - version - }); - } - return; - } - case 'setDemonstratingProofOfPossessionNonce': - currentDatabase.demonstratingProofOfPossessionNonce = data.data.demonstratingProofOfPossessionNonce; - port.postMessage({ configurationName }); - return; - case 'getDemonstratingProofOfPossessionNonce': - const demonstratingProofOfPossessionNonce = currentDatabase.demonstratingProofOfPossessionNonce; - port.postMessage({ configurationName, demonstratingProofOfPossessionNonce }); - return; - case 'setDemonstratingProofOfPossessionJwk': - currentDatabase.demonstratingProofOfPossessionJwkJson = data.data.demonstratingProofOfPossessionJwkJson; - port.postMessage({ configurationName }); - return; - case 'getDemonstratingProofOfPossessionJwk': - const demonstratingProofOfPossessionJwkJson = currentDatabase.demonstratingProofOfPossessionJwkJson; - port.postMessage({ configurationName, demonstratingProofOfPossessionJwkJson }); - return; - case 'setState': - currentDatabase.state = data.data.state; - port.postMessage({ configurationName }); - return; - case 'getState': { - const state = currentDatabase.state; - port.postMessage({ configurationName, state }); - return; - } - case 'setCodeVerifier': - currentDatabase.codeVerifier = data.data.codeVerifier; - port.postMessage({ configurationName }); - return; - case 'getCodeVerifier': { - port.postMessage({ - configurationName, - codeVerifier: currentDatabase.codeVerifier != null ? TOKEN.CODE_VERIFIER + '_' + configurationName : null, - }); - return; - } - case 'setSessionState': - currentDatabase.sessionState = data.data.sessionState; - port.postMessage({ configurationName }); - return; - case 'getSessionState': { - const sessionState = currentDatabase.sessionState; - port.postMessage({ configurationName, sessionState }); - return; - } - case 'setNonce': { - const nonce = data.data.nonce; - if (nonce) { - currentDatabase.nonce = nonce; - } - port.postMessage({ configurationName }); - return; - } - case 'getNonce': { - const keyNonce = TOKEN.NONCE_TOKEN + '_' + configurationName; - const nonce = currentDatabase.nonce ? keyNonce : null; - port.postMessage({ configurationName, nonce }); - return; - } - default: - currentDatabase.items = { ...data.data }; - port.postMessage({ configurationName }); - } + if (!currentDatabase.tokens) { + port.postMessage({ + tokens: null, + status: currentDatabase.status, + configurationName, + version, + }); + } else { + const tokens = { + ...currentDatabase.tokens, + }; + if (currentDatabase.hideAccessToken) { + tokens.access_token = TOKEN.ACCESS_TOKEN + '_' + configurationName; + } + if (tokens.refresh_token) { + tokens.refresh_token = TOKEN.REFRESH_TOKEN + '_' + configurationName; + } + if ( + tokens.idTokenPayload && + tokens.idTokenPayload.nonce && + currentDatabase.nonce != null + ) { + tokens.idTokenPayload.nonce = + TOKEN.NONCE_TOKEN + '_' + configurationName; + } + port.postMessage({ + tokens, + status: currentDatabase.status, + configurationName, + version, + }); + } + return; + } + case 'setDemonstratingProofOfPossessionNonce': { + currentDatabase.demonstratingProofOfPossessionNonce = + data.data.demonstratingProofOfPossessionNonce; + port.postMessage({ configurationName }); + return; + } + case 'getDemonstratingProofOfPossessionNonce': { + const demonstratingProofOfPossessionNonce = + currentDatabase.demonstratingProofOfPossessionNonce; + port.postMessage({ + configurationName, + demonstratingProofOfPossessionNonce, + }); + return; + } + case 'setDemonstratingProofOfPossessionJwk': { + currentDatabase.demonstratingProofOfPossessionJwkJson = + data.data.demonstratingProofOfPossessionJwkJson; + port.postMessage({ configurationName }); + return; + } + case 'getDemonstratingProofOfPossessionJwk': { + const demonstratingProofOfPossessionJwkJson = + currentDatabase.demonstratingProofOfPossessionJwkJson; + port.postMessage({ + configurationName, + demonstratingProofOfPossessionJwkJson, + }); + return; + } + case 'setState': { + currentDatabase.state = data.data.state; + port.postMessage({ configurationName }); + return; + } + case 'getState': { + const state = currentDatabase.state; + port.postMessage({ configurationName, state }); + return; + } + case 'setCodeVerifier': { + currentDatabase.codeVerifier = data.data.codeVerifier; + port.postMessage({ configurationName }); + return; + } + case 'getCodeVerifier': { + port.postMessage({ + configurationName, + codeVerifier: + currentDatabase.codeVerifier != null + ? TOKEN.CODE_VERIFIER + '_' + configurationName + : null, + }); + return; + } + case 'setSessionState': { + currentDatabase.sessionState = data.data.sessionState; + port.postMessage({ configurationName }); + return; + } + case 'getSessionState': { + const sessionState = currentDatabase.sessionState; + port.postMessage({ configurationName, sessionState }); + return; + } + case 'setNonce': { + const nonce = data.data.nonce; + if (nonce) { + currentDatabase.nonce = nonce; + } + port.postMessage({ configurationName }); + return; + } + case 'getNonce': { + const keyNonce = TOKEN.NONCE_TOKEN + '_' + configurationName; + const nonce = currentDatabase.nonce ? keyNonce : null; + port.postMessage({ configurationName, nonce }); + return; + } + default: { + currentDatabase.items = { ...data.data }; + port.postMessage({ configurationName }); + } + } }; _self.addEventListener('install', handleInstall); diff --git a/packages/oidc-client-service-worker/src/utils/__tests__/domains.spec.ts b/packages/oidc-client-service-worker/src/utils/__tests__/domains.spec.ts index 302b81295..3ec9cc4bd 100644 --- a/packages/oidc-client-service-worker/src/utils/__tests__/domains.spec.ts +++ b/packages/oidc-client-service-worker/src/utils/__tests__/domains.spec.ts @@ -1,7 +1,7 @@ -import { describe, expect, it } from 'vitest'; +import { beforeEach, describe, expect, it } from 'vitest'; import { openidWellknownUrlEndWith } from '../../constants'; -import { checkDomain, getCurrentDatabaseDomain, normalizeUrl } from '..'; +import { checkDomain, getCurrentDatabaseDomain } from '..'; import { Database, Tokens, TrustedDomains } from './../../types'; describe('domains', () => { @@ -30,28 +30,32 @@ describe('domains', () => { }); }); describe('getCurrentDatabaseDomain', () => { - const db: Database = { - default: { - configurationName: 'config', - tokens: {} as Tokens, - status: 'NOT_CONNECTED', - state: null, - codeVerifier: null, - nonce: null, - oidcServerConfiguration: { - authorizationEndpoint: 'https://demo.duendesoftware.com/connect/authorize', - issuer: 'https://demo.duendesoftware.com', - revocationEndpoint: 'https://demo.duendesoftware.com/connect/revocation', - tokenEndpoint: 'https://demo.duendesoftware.com/connect/token', - userInfoEndpoint: 'https://demo.duendesoftware.com/connect/userinfo', + let db: Database; + + beforeEach(() => { + db = { + default: { + configurationName: 'config', + tokens: {} as Tokens, + status: 'NOT_CONNECTED', + state: null, + codeVerifier: null, + nonce: null, + oidcServerConfiguration: { + authorizationEndpoint: 'https://demo.duendesoftware.com/connect/authorize', + issuer: 'https://demo.duendesoftware.com', + revocationEndpoint: 'https://demo.duendesoftware.com/connect/revocation', + tokenEndpoint: 'https://demo.duendesoftware.com/connect/token', + userInfoEndpoint: 'https://demo.duendesoftware.com/connect/userinfo', + }, + hideAccessToken: true, + convertAllRequestsToCorsExceptNavigate: false, + setAccessTokenToNavigateRequests: true, + demonstratingProofOfPossessionNonce: null, + demonstratingProofOfPossessionJwkJson: null, }, - hideAccessToken: true, - convertAllRequestsToCorsExceptNavigate: false, - setAccessTokenToNavigateRequests: true, - demonstratingProofOfPossessionNonce: null, - demonstratingProofOfPossessionJwkJson: null, - }, - }; + }; + }); it('will return null when url ends with openidWellknownUrlEndWith', () => { const trustedDomains: TrustedDomains = { @@ -69,15 +73,18 @@ describe('domains', () => { expect(getCurrentDatabaseDomain(db, url, trustedDomains)).toBeNull(); }); - it('will return null when url is the token endpoint only differs by default port', () => { + it('will return null when url is the token endpoint oidc config token endpoint has a default port', () => { const trustedDomains: TrustedDomains = { default: ['https://demo.duendesoftware.com', 'https://kdhttps.auth0.com'], }; - const url = 'https://demo.duendesoftware.com:443/connect/token'; + db['default'].oidcServerConfiguration!.tokenEndpoint = + 'https://demo.duendesoftware.com:443/connect/token'; + + const url = 'https://demo.duendesoftware.com/connect/token'; expect(getCurrentDatabaseDomain(db, url, trustedDomains)).toBeNull(); }); - it('will return null when url is the token endpoint', () => { + it('will return null when url is the revocation endpoint', () => { const trustedDomains: TrustedDomains = { default: ['https://demo.duendesoftware.com', 'https://kdhttps.auth0.com'], }; @@ -117,39 +124,4 @@ describe('domains', () => { expect(getCurrentDatabaseDomain(db, 'https://domain/test', trustedDomains)).toBeNull(); }); }); - it('normalizes urls', () => { - expect(normalizeUrl('foo.com')).toBe('https://foo.com'); - expect(normalizeUrl('foo.com ')).toBe('https://foo.com'); - expect(normalizeUrl('foo.com.')).toBe('https://foo.com'); - expect(normalizeUrl('foo.com')).toBe('https://foo.com'); - expect(normalizeUrl('HTTP://foo.com')).toBe('http://foo.com'); - expect(normalizeUrl('//foo.com')).toBe('https://foo.com'); - expect(normalizeUrl('http://foo.com')).toBe('http://foo.com'); - expect(normalizeUrl('http://foo.com:80')).toBe('http://foo.com'); - expect(normalizeUrl('https://foo.com:443')).toBe('https://foo.com'); - expect(normalizeUrl('http://foo.com/foo/')).toBe('http://foo.com/foo'); - expect(normalizeUrl('foo.com/?foo=bar baz')).toBe('https://foo.com/?foo=bar+baz'); - expect(normalizeUrl('https://foo.com/https://bar.com')).toBe('https://foo.com/https://bar.com'); - expect(normalizeUrl('https://foo.com/https://bar.com/foo//bar')).toBe( - 'https://foo.com/https://bar.com/foo/bar', - ); - expect(normalizeUrl('https://foo.com/http://bar.com')).toBe('https://foo.com/http://bar.com'); - expect(normalizeUrl('https://foo.com/http://bar.com/foo//bar')).toBe( - 'https://foo.com/http://bar.com/foo/bar', - ); - expect(normalizeUrl('http://foo.com/%7Efoo/')).toBe('http://foo.com/~foo'); - expect(normalizeUrl('https://foo.com/%FAIL%/07/94/ca/55.jpg')).toBe( - 'https://foo.com/%FAIL%/07/94/ca/55.jpg', - ); - expect(normalizeUrl('http://foo.com/?')).toBe('http://foo.com'); - expect(normalizeUrl('êxample.com')).toBe('https://xn--xample-hva.com'); - expect(normalizeUrl('http://foo.com/?b=bar&a=foo')).toBe('http://foo.com/?a=foo&b=bar'); - expect(normalizeUrl('http://foo.com/?foo=bar*|<>:"')).toBe( - 'http://foo.com/?foo=bar*|%3C%3E:%22', - ); - expect(normalizeUrl('http://foo.com:5000')).toBe('http://foo.com:5000'); - expect(normalizeUrl('http://foo.com/foo#bar')).toBe('http://foo.com/foo#bar'); - expect(normalizeUrl('http://foo.com/foo/bar/../baz')).toBe('http://foo.com/foo/baz'); - expect(normalizeUrl('http://foo.com/foo/bar/./baz')).toBe('http://foo.com/foo/bar/baz'); - }); }); diff --git a/packages/oidc-client-service-worker/src/utils/__tests__/normalizeUrl.spec.ts b/packages/oidc-client-service-worker/src/utils/__tests__/normalizeUrl.spec.ts new file mode 100644 index 000000000..ca55aa3bb --- /dev/null +++ b/packages/oidc-client-service-worker/src/utils/__tests__/normalizeUrl.spec.ts @@ -0,0 +1,28 @@ +import { describe, expect, it } from 'vitest'; + +import { normalizeUrl } from '../normalizeUrl'; + +describe('normalizeUrl', () => { + it('keeps urls the same', () => { + expect(normalizeUrl('http://foo.com/')).toBe('http://foo.com/'); + expect(normalizeUrl('https://foo.com/')).toBe('https://foo.com/'); + }); + it('adds slashes', () => { + expect(normalizeUrl('http://foo.com')).toBe('http://foo.com/'); + }); + it('removes port numbers', () => { + expect(normalizeUrl('http://foo.com:80/')).toBe('http://foo.com/'); + expect(normalizeUrl('https://foo.com:443/')).toBe('https://foo.com/'); + }); + it('removed port numbers and adds slashes', () => { + expect(normalizeUrl('http://foo.com:80')).toBe('http://foo.com/'); + expect(normalizeUrl('https://foo.com:443')).toBe('https://foo.com/'); + }); + it('lowercases urls', () => { + expect(normalizeUrl('http://FOO.com/')).toBe('http://foo.com/'); + }); + + it('keeps invalid urls', () => { + expect(normalizeUrl('foo')).toBe('foo'); + }); +}); diff --git a/packages/oidc-client-service-worker/src/utils/domains.ts b/packages/oidc-client-service-worker/src/utils/domains.ts index 6f20c766a..d811b2ea3 100644 --- a/packages/oidc-client-service-worker/src/utils/domains.ts +++ b/packages/oidc-client-service-worker/src/utils/domains.ts @@ -1,5 +1,6 @@ import { acceptAnyDomainToken, openidWellknownUrlEndWith, scriptFilename } from '../constants'; import { Database, Domain, DomainDetails, OidcConfig, TrustedDomains } from '../types'; +import { normalizeUrl } from './normalizeUrl'; export function checkDomain(domains: Domain[], endpoint: string) { if (!endpoint) { @@ -52,13 +53,13 @@ export const getCurrentDatabaseDomain = ( if ( oidcServerConfiguration.tokenEndpoint && - normalizeUrl(url) === normalizeUrl(oidcServerConfiguration.tokenEndpoint) + url === normalizeUrl(oidcServerConfiguration.tokenEndpoint) ) { continue; } if ( oidcServerConfiguration.revocationEndpoint && - normalizeUrl(url) === normalizeUrl(oidcServerConfiguration.revocationEndpoint) + url === normalizeUrl(oidcServerConfiguration.revocationEndpoint) ) { continue; } @@ -96,87 +97,3 @@ export const getCurrentDatabaseDomain = ( } return null; }; - -export function normalizeUrl(url: string) { - url = url.trim(); - - const hasRelativeProtocol = url.startsWith('//'); - const isRelativeUrl = !hasRelativeProtocol && /^\.*\//.test(url); - - // Prepend protocol - if (!isRelativeUrl) { - url = url.replace(/^(?!(?:\w+:)?\/\/)|^\/\//, 'https:'); - } - - const urlObject = new URL(url); - - // Remove duplicate slashes if not preceded by a protocol - // NOTE: This could be implemented using a single negative lookbehind - // regex, but we avoid that to maintain compatibility with older js engines - // which do not have support for that feature. - if (urlObject.pathname) { - // Split the string by occurrences of this protocol regex, and perform - // duplicate-slash replacement on the strings between those occurrences - // (if any). - const protocolRegex = /\b[a-z][a-z\d+\-.]{1,50}:\/\//g; - - let lastIndex = 0; - let result = ''; - for (;;) { - const match = protocolRegex.exec(urlObject.pathname); - if (!match) { - break; - } - - const protocol = match[0]; - const protocolAtIndex = match.index; - const intermediate = urlObject.pathname.slice(lastIndex, protocolAtIndex); - - result += intermediate.replace(/\/{2,}/g, '/'); - result += protocol; - lastIndex = protocolAtIndex + protocol.length; - } - - const remnant = urlObject.pathname.slice(lastIndex, urlObject.pathname.length); - result += remnant.replace(/\/{2,}/g, '/'); - - urlObject.pathname = result; - } - - // Decode URI octets - if (urlObject.pathname) { - try { - urlObject.pathname = decodeURI(urlObject.pathname); - } catch { - /* empty */ - } - } - - if (urlObject.hostname) { - // Remove trailing dot - urlObject.hostname = urlObject.hostname.replace(/\.$/, ''); - } - - // Sort query parameters - urlObject.searchParams.sort(); - - // Calling `.sort()` encodes the search parameters, so we need to decode them again. - try { - urlObject.search = decodeURIComponent(urlObject.search); - } catch { - /* empty */ - } - - // Remove trailing slash - urlObject.pathname = urlObject.pathname.replace(/\/$/, ''); - - // Take advantage of many of the Node `url` normalizations - url = urlObject.toString(); - - // Remove ending `/` unless removeSingleSlash is false - if (urlObject.hash === '') { - url = url.replace(/\/$/, ''); - } - - return url; -} diff --git a/packages/oidc-client-service-worker/src/utils/index.ts b/packages/oidc-client-service-worker/src/utils/index.ts index 724a65bc7..a8992e9ec 100644 --- a/packages/oidc-client-service-worker/src/utils/index.ts +++ b/packages/oidc-client-service-worker/src/utils/index.ts @@ -1,4 +1,5 @@ export * from './domains'; +export * from './normalizeUrl'; export * from './serializeHeaders'; export * from './sleep'; export * from './strings'; diff --git a/packages/oidc-client-service-worker/src/utils/normalizeUrl.ts b/packages/oidc-client-service-worker/src/utils/normalizeUrl.ts new file mode 100644 index 000000000..6ff1c9953 --- /dev/null +++ b/packages/oidc-client-service-worker/src/utils/normalizeUrl.ts @@ -0,0 +1,9 @@ +export function normalizeUrl(url: string) { + try { + return new URL(url).toString(); + } catch (error) { + console.error(`Failed to normalize url: ${url}`); + return url; + } +} + From 790da5a60cc7fb07ca82feb994c8d12ff3e01b69 Mon Sep 17 00:00:00 2001 From: GitHub Date: Fri, 24 Nov 2023 08:28:10 +0000 Subject: [PATCH 074/440] [skip ci] Update version package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 455644660..2509fa730 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.9.2", + "version": "7.9.3", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 12edd30f2..8ba13ebae 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.9.2'; +export default '7.9.3'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index daaf7495f..f39ae9c37 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.9.2", + "version": "7.9.3", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 12edd30f2..8ba13ebae 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.9.2'; +export default '7.9.3'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 6da09223e..e0278884b 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.9.2", + "version": "7.9.3", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 56bde67566f8203e9d62ae6e8b722c86a7b63cae Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Mon, 27 Nov 2023 15:00:11 +0100 Subject: [PATCH 075/440] doc(readme): Update README.md --- packages/oidc-client/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/oidc-client/README.md b/packages/oidc-client/README.md index 9eaf8c3f7..c40527d68 100644 --- a/packages/oidc-client/README.md +++ b/packages/oidc-client/README.md @@ -111,7 +111,7 @@ export const configuration = { silent_redirect_uri: window.location.origin + '/#/authentication/silent-callback', scope: 'openid profile email api offline_access', authority: 'https://demo.duendesoftware.com', - service_worker_relative_url: '/OidcServiceWorker.js', + service_worker_relative_url: '/OidcServiceWorker.js', // just comment that line to disable service worker mode service_worker_only: false, demonstrating_proof_of_possession: false, // demonstrating proof of possession will work only if access_token is accessible from the client (This is because WebCrypto API is not available inside a Service Worker) }; From 6751b5c3f0e1265e35ac9b4b20cb673657eea6b4 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Wed, 29 Nov 2023 14:28:11 +0100 Subject: [PATCH 076/440] feat(ci): add auto changelog (release) --- .github/workflows/npm-publish.yml | 10 +- CHANGELOG.md | 867 ++++++++---------- README.md | 1 + bin/generate-changelog.sh | 45 + changelog-template.hbs | 27 - package.json | 4 +- .../oidc-client-service-worker/package.json | 2 +- .../oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- pnpm-lock.yaml | 100 +- 12 files changed, 499 insertions(+), 565 deletions(-) create mode 100644 README.md create mode 100755 bin/generate-changelog.sh delete mode 100644 changelog-template.hbs diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml index 46290a5e9..bdf3e4d88 100644 --- a/.github/workflows/npm-publish.yml +++ b/.github/workflows/npm-publish.yml @@ -60,9 +60,10 @@ jobs: runs-on: ubuntu-latest if: needs.skip_ci.outputs.canSkip != 'true' && !github.event.pull_request.head.repo.fork steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: token: ${{ secrets.GIT_TOKEN }} + fetch-depth: 0 - name: Determine Alpha, Beta or Release id: which_tag @@ -248,6 +249,13 @@ jobs: sed -i 's/"@axa-fr\/oidc-client": "[^"]*"/"@axa-fr\/oidc-client": "workspace:*"/g' package.json cat package.json working-directory: ./packages/react-oidc + + - name: Auto generate changelog + if: github.ref == 'refs/heads/main' && steps.which_tag.outputs.tag == 'release' + run: | + chmod +x ./bin/generate-changelog.sh + ./bin/generate-changelog.sh + - name: Commit updates package.json uses: stefanzweifel/git-auto-commit-action@v4 diff --git a/CHANGELOG.md b/CHANGELOG.md index 1374bc538..ab9790f86 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,489 +1,378 @@ -### Changelog -All notable changes to this project will be documented in this file. - -#### [v3.1.7](https://github.com/AxaGuilDEv/react-oidc/compare/v3.1.6...v3.1.7) -> 17 June 2021 -- feat: add signinSilent to useReactOidc and AuthenticationContext [`#578`](https://github.com/AxaGuilDEv/react-oidc/pull/578) by Olivier YOUF -- ci: add dependabot config file and change prefix to `build(npm)` [`#561`](https://github.com/AxaGuilDEv/react-oidc/pull/561) by Olivier YOUF -- feat:unload userManager when unnmount oidc provider [`#547`](https://github.com/AxaGuilDEv/react-oidc/pull/547) by Olivier YOUF -- feat(context-fetch/fetch-core): removing recompose [`#530`](https://github.com/AxaGuilDEv/react-oidc/pull/530) by Olivier YOUF -- chore(deps): bump example dependencies [`80ccc10`](https://github.com/AxaGuilDEv/react-oidc/commit/80ccc10c5cb33df891365c896b81b8eb1d5e46c5) by Julien Foratier -- fix: create usermanager before rendering + some refacto [`16cb26d`](https://github.com/AxaGuilDEv/react-oidc/commit/16cb26d057e50037b7ee04f32319f02a92ae72cd) by Amine JELTI -- chore(release): publish v3.1.7 ***NO_CI*** [`8b5cb40`](https://github.com/AxaGuilDEv/react-oidc/commit/8b5cb405d5735bacd24318c9fe0de1736b98712e) by Build-CI -- chore(deps): [security] bump handlebars from 4.4.2 to 4.7.6 [`c785f2d`](https://github.com/AxaGuilDEv/react-oidc/commit/c785f2d6cd92d9380c0c3ec99e01bb61f7ec2fcd) by dependabot-preview[bot] -- chore(deps): [security] bump ini from 1.3.5 to 1.3.8 [`c978517`](https://github.com/AxaGuilDEv/react-oidc/commit/c9785176ccd4c1cd3777f8e6e12e3535a37e7aa6) by dependabot-preview[bot] -- fix(examples): replace https://demo.identityserver.io deprecated configuration [`ebe9e79`](https://github.com/AxaGuilDEv/react-oidc/commit/ebe9e79465f52323626b2ac94b333e8d51987999) by Julien Foratier -- docs(changelog) update to new 3.1.6 [`8cfbc7c`](https://github.com/AxaGuilDEv/react-oidc/commit/8cfbc7c6111444a156c5bddcad253c0366e6f38c) by Build-CI -- chore(deps): [security] bump lodash from 4.17.15 to 4.17.20 [`124a9ca`](https://github.com/AxaGuilDEv/react-oidc/commit/124a9ca777135382695f2873253f076bf4f7434a) by dependabot-preview[bot] - -#### [v3.1.6](https://github.com/AxaGuilDEv/react-oidc/compare/v3.1.5...v3.1.6) -> 13 October 2020 -- feat(context): Allowing hooking into the oidc-client events in the AuthenticationProvider [`#415`](https://github.com/AxaGuilDEv/react-oidc/issues/415) by Michael Wolfenden -- chore(release): publish v3.1.6 ***NO_CI*** [`9c1a618`](https://github.com/AxaGuilDEv/react-oidc/commit/9c1a6186d4f804d6ddcf50819602653d50f05df3) by Build-CI -- docs(changelog) update to new 3.1.5 [`02ad255`](https://github.com/AxaGuilDEv/react-oidc/commit/02ad25574978464cb67123d4b695a62a15704960) by Build-CI -- feat(logger): remove debug overriddenConfiguration [`f23bebd`](https://github.com/AxaGuilDEv/react-oidc/commit/f23bebdd64de6082d183bead17553174919d515a) by Arnaud Foraison -- fix(example): add hook dependency [`b491c02`](https://github.com/AxaGuilDEv/react-oidc/commit/b491c02757775052d1605b2922fa13e25acf7128) by Arnaud Foraison - -#### [v3.1.5](https://github.com/AxaGuilDEv/react-oidc/compare/v3.1.4...v3.1.5) -> 8 September 2020 -- Add prop-types as dependency [`#507`](https://github.com/AxaGuilDEv/react-oidc/pull/507) by Olivier YOUF -- fix(core): keep location.hash in the url used to redirect after login [`#515`](https://github.com/AxaGuilDEv/react-oidc/pull/515) by jreimbold-t1 -- fix: move prop-types from peer to dependencies [`a53a189`](https://github.com/AxaGuilDEv/react-oidc/commit/a53a189b08b70ee705bb06fd0d8eee4184a2558b) by Arnaud Foraison -- chore(release): publish v3.1.5 ***NO_CI*** [`0a24a04`](https://github.com/AxaGuilDEv/react-oidc/commit/0a24a04741b5d6ac28d0cd4d6346beeda01e79a8) by Build-CI -- docs(changelog) update to new 3.1.4 [`b43b45d`](https://github.com/AxaGuilDEv/react-oidc/commit/b43b45dab5b2ae6f46cce62e3061e23ab388b61e) by Build-CI - -#### [v3.1.4](https://github.com/AxaGuilDEv/react-oidc/compare/v3.1.3...v3.1.4) -> 14 July 2020 -- fix(context): made type for AuthenticationProviderProps partial [`#473`](https://github.com/AxaGuilDEv/react-oidc/pull/473) by Olivier YOUF -- chore(release): publish v3.1.4 ***NO_CI*** [`aea9407`](https://github.com/AxaGuilDEv/react-oidc/commit/aea940793fbb9ecf4cc87a0d870e4b9e7d2e5156) by Build-CI -- docs(changelog) update to new 3.1.3 [`c3043c4`](https://github.com/AxaGuilDEv/react-oidc/commit/c3043c4078b24906e35b4a15062a1995e79683af) by Build-CI - -#### [v3.1.3](https://github.com/AxaGuilDEv/react-oidc/compare/v3.1.2...v3.1.3) -> 16 June 2020 -- style: remove overwritten property jsx-filename-extension [`#468`](https://github.com/AxaGuilDEv/react-oidc/pull/468) by Olivier YOUF -- fix(Vanilla): return type callback with signinSilent [`#469`](https://github.com/AxaGuilDEv/react-oidc/pull/469) by Olivier YOUF -- feat(react-oidc-redux): Adding Redux Authenticating component [`#463`](https://github.com/AxaGuilDEv/react-oidc/pull/463) by Olivier YOUF -- Fix types for AuthenticationProvider and withOidcUser [`#457`](https://github.com/AxaGuilDEv/react-oidc/pull/457) by Olivier YOUF -- chore(release): publish v3.1.3 ***NO_CI*** [`5b4db53`](https://github.com/AxaGuilDEv/react-oidc/commit/5b4db533b3edaa60b273dd05dd822b6687793165) by Build-CI -- Replace Pick with Omit [`7f160b7`](https://github.com/AxaGuilDEv/react-oidc/commit/7f160b708bb51dd43389571fd6f0d8e66b5cd2f8) by Vincent Ricard -- docs(changelog) update to new 3.1.2 [`faa73a7`](https://github.com/AxaGuilDEv/react-oidc/commit/faa73a7c9cc015ac4dd10289819d06d071ef7ca7) by Build-CI - -#### [v3.1.2](https://github.com/AxaGuilDEv/react-oidc/compare/v3.1.1...v3.1.2) -> 11 June 2020 -- fix(context): Renrender children aftersilent signin [`#464`](https://github.com/AxaGuilDEv/react-oidc/pull/464) by Olivier YOUF -- chore(release): publish v3.1.2 ***NO_CI*** [`6dbcbc8`](https://github.com/AxaGuilDEv/react-oidc/commit/6dbcbc860df7ee6697983d1024950312a2c8eea4) by Build-CI -- Add usage example to demo [`e3bb8b0`](https://github.com/AxaGuilDEv/react-oidc/commit/e3bb8b03e13048f99672050946bb2379dde417a4) by Viet VO -- Fix types for AuthenticationProvider and withOidcUser [`5004289`](https://github.com/AxaGuilDEv/react-oidc/commit/50042890bc070bd87a99c0c730acfc47678e0d8a) by Vincent Ricard -- Add readme [`be2bb57`](https://github.com/AxaGuilDEv/react-oidc/commit/be2bb5783ae702d65dbc90b38cf41bcf55002415) by Viet VO -- Add config option to OidcSecure [`7881742`](https://github.com/AxaGuilDEv/react-oidc/commit/7881742d81fda72571d88642da13a5fd6d188139) by Viet VO -- PR: change to authenticating [`bf06f9e`](https://github.com/AxaGuilDEv/react-oidc/commit/bf06f9e5f25e8d6343849f176ed5e1ecfb54b158) by Viet VO -- fix(Vanilla): return type callback with signinSilent [`3d4f8af`](https://github.com/AxaGuilDEv/react-oidc/commit/3d4f8af68901a39d6a9e4c958cf6c6e24c5c5ab5) by Hamza HAMIDI -- style: remove overwritten property jsx-filename-extension [`5dee604`](https://github.com/AxaGuilDEv/react-oidc/commit/5dee604e9bb16edad8a0c87c3c29d2fa98fc870f) by Hamza Hamidi -- docs(changelog) update to new 3.1.1 [`dd8b685`](https://github.com/AxaGuilDEv/react-oidc/commit/dd8b685650d08c2d2a480e7406b5d2f09c0ddc50) by Build-CI -- remove useMemo [`4cbf8f2`](https://github.com/AxaGuilDEv/react-oidc/commit/4cbf8f2df93271544f09f28008b199bfea07b391) by Viet VO - -#### [v3.1.1](https://github.com/AxaGuilDEv/react-oidc/compare/v3.1.1-alpha.0...v3.1.1) -> 25 May 2020 -- chore(release): publish v3.1.1 ***NO_CI*** [`1500b7e`](https://github.com/AxaGuilDEv/react-oidc/commit/1500b7e28914afb913ea4fc3e6b87ee707999fc3) by Build-CI -- docs(changelog) update to new 3.1.1-alpha.0 [`90ea0c9`](https://github.com/AxaGuilDEv/react-oidc/commit/90ea0c954531093f6f7a5cd221cf4d986468fd7c) by Build-CI - -#### [v3.1.1-alpha.0](https://github.com/AxaGuilDEv/react-oidc/compare/v3.1.0-alpha.0...v3.1.1-alpha.0) -> 20 May 2020 -- fix(context): Memoize the child component [`#451`](https://github.com/AxaGuilDEv/react-oidc/pull/451) by Olivier YOUF -- chore(release): publish v3.1.1-alpha.0 ***NO_CI*** [`dc8ee89`](https://github.com/AxaGuilDEv/react-oidc/commit/dc8ee8944258e33430be309cb09d5c55f71fc13b) by Build-CI -- docs(changelog) update to new 3.1.0-alpha.0 [`6a33c46`](https://github.com/AxaGuilDEv/react-oidc/commit/6a33c46beaa3f32c56c516811d6961362e761b20) by Build-CI - -#### [v3.1.0-alpha.0](https://github.com/AxaGuilDEv/react-oidc/compare/v3.0.8...v3.1.0-alpha.0) -> 12 May 2020 -- fix: add logout action [`#439`](https://github.com/AxaGuilDEv/react-oidc/pull/439) by Olivier YOUF -- refactor(context): Refactor/containers providers [`#432`](https://github.com/AxaGuilDEv/react-oidc/pull/432) by Olivier YOUF -- Typescript migration [`#410`](https://github.com/AxaGuilDEv/react-oidc/pull/410) by Olivier YOUF -- Remove all occurences of 'triggerAuthFlow' [`#425`](https://github.com/AxaGuilDEv/react-oidc/pull/425) by Olivier YOUF -- Overrides the react-redux dependency [`#424`](https://github.com/AxaGuilDEv/react-oidc/pull/424) by Olivier YOUF -- Fix minor typos in docs [`#414`](https://github.com/AxaGuilDEv/react-oidc/pull/414) by Tommi Laukkanen -- Remove all occurences of 'triggerAuthFlow' [`#392`](https://github.com/AxaGuilDEv/react-oidc/issues/392) by Vincent Ricard -- Upgrade Jest [`7281ee1`](https://github.com/AxaGuilDEv/react-oidc/commit/7281ee1e5a7d3f19f6381a427ce5bfa4332829ef) by Vincent Ricard -- Migration of packages/core [`9f518a5`](https://github.com/AxaGuilDEv/react-oidc/commit/9f518a50f7867a702d4174e764d169de9b21a5c6) by Vincent Ricard -- Format code with prettier and fix lint errors [`52ae362`](https://github.com/AxaGuilDEv/react-oidc/commit/52ae362769572e29155403695d8bb5de26ea4c26) by Vincent Ricard -- WIP [`b123a42`](https://github.com/AxaGuilDEv/react-oidc/commit/b123a4206ec4b7b134714d8f9e70434682a01c99) by Vincent Ricard -- WIP context package [`0fa40e9`](https://github.com/AxaGuilDEv/react-oidc/commit/0fa40e99a3d42ebdcf472bbd6d0ba7cca55c25c7) by Vincent Ricard -- WIP redux package [`b251bcc`](https://github.com/AxaGuilDEv/react-oidc/commit/b251bcc452a1362e54463d3f4c86b9f883c973f2) by Vincent Ricard -- Rename OidcHistory into ReactOidcHistory [`760c77f`](https://github.com/AxaGuilDEv/react-oidc/commit/760c77f511536eaf49f7e1e3b702a741c0723d36) by Vincent Ricard -- chore(release): publish v3.1.0-alpha.0 ***NO_CI*** [`892f3cb`](https://github.com/AxaGuilDEv/react-oidc/commit/892f3cb98ab452f11823af8ed44fb16897f14ecb) by Build-CI -- chore(release): publish v3.0.9-alpha.0 ***NO_CI*** [`61c8884`](https://github.com/AxaGuilDEv/react-oidc/commit/61c8884393c0df5ae37b0c8b113cb92a942602aa) by Build-CI -- WIP [`0282c3c`](https://github.com/AxaGuilDEv/react-oidc/commit/0282c3c81cfb1ecc4be57408f3dd6e7a2bc72fe7) by Vincent Ricard -- Fix some tests [`6a7b09c`](https://github.com/AxaGuilDEv/react-oidc/commit/6a7b09c90d47203eb5cfe5bafb71e3371def176f) by Vincent Ricard -- docs(changelog) update to new 3.0.9-alpha.0 [`08a6938`](https://github.com/AxaGuilDEv/react-oidc/commit/08a69388c8177bc87335cb741330811db6d2aca2) by Build-CI -- Add specific type ofr UserStore [`1b44db5`](https://github.com/AxaGuilDEv/react-oidc/commit/1b44db5d9a9c433b27571e73335bfc18fec4f97f) by Vincent Ricard -- WIP redux-fetch package [`a8bed40`](https://github.com/AxaGuilDEv/react-oidc/commit/a8bed40cead711a707ae1dfdb5ca36e77a43935d) by Vincent Ricard -- WIP context-fetch package [`fd6f8f2`](https://github.com/AxaGuilDEv/react-oidc/commit/fd6f8f2872c12f6d4abdec36f0915524b64cab17) by Vincent Ricard -- docs(changelog) update to new 3.0.8 [`f28c0ed`](https://github.com/AxaGuilDEv/react-oidc/commit/f28c0ede0d3bba884085b1269b94eee3a223e50e) by Build-CI -- Revert a useless modification in fetch-core/package.json [`fa101b8`](https://github.com/AxaGuilDEv/react-oidc/commit/fa101b865ba386cdef4ebf1479ab357ce8e0288c) by Vincent Ricard - -#### [v3.0.8](https://github.com/AxaGuilDEv/react-oidc/compare/v3.0.7...v3.0.8) -> 14 February 2020 -- fix(options): options can be overrided [`#399`](https://github.com/AxaGuilDEv/react-oidc/pull/399) by Guillaume Chervet -- fix(fetchToken): options override [`#398`](https://github.com/AxaGuilDEv/react-oidc/pull/398) by Guillaume Chervet -- chore(release): publish v3.0.8 ***NO_CI*** [`ecccc47`](https://github.com/AxaGuilDEv/react-oidc/commit/ecccc47cb9ee65cccbb23aac53e215ced26d4914) by Build-CI -- docs(changelog) update to new 3.0.7 [`1c2e599`](https://github.com/AxaGuilDEv/react-oidc/commit/1c2e599cc9eeffc287b05b6c2671b270c28ad91e) by Build-CI - -#### [v3.0.7](https://github.com/AxaGuilDEv/react-oidc/compare/v3.0.6...v3.0.7) -> 7 February 2020 -- chore(deps-dev): bump concurrently from 4.1.2 to 5.1.0 [`#393`](https://github.com/AxaGuilDEv/react-oidc/pull/393) by dependabot-preview[bot] -- refactor(log): Replace console.log by oidcLog [`#386`](https://github.com/AxaGuilDEv/react-oidc/pull/386) by Cockedey Sébastien -- chore(release): publish v3.0.7 ***NO_CI*** [`9bdbb89`](https://github.com/AxaGuilDEv/react-oidc/commit/9bdbb8976b173d1fbc8da12e1a623aca61c39d6c) by Build-CI -- docs(changelog) update to new 3.0.6 [`46055a6`](https://github.com/AxaGuilDEv/react-oidc/commit/46055a654246bb678e745abb5b57717049850d82) by Build-CI - -#### [v3.0.6](https://github.com/AxaGuilDEv/react-oidc/compare/v3.0.6-alpha.0...v3.0.6) -> 7 January 2020 -- feat(components): add bem to default components [`#384`](https://github.com/AxaGuilDEv/react-oidc/pull/384) by Guillaume Chervet -- chore(release): publish v3.0.6 ***NO_CI*** [`db79cce`](https://github.com/AxaGuilDEv/react-oidc/commit/db79ccec24ddca89f7eb55a84a9684e409c8e548) by Build-CI -- docs(changelog) update to new 3.0.6-alpha.0 [`c55f2ed`](https://github.com/AxaGuilDEv/react-oidc/commit/c55f2ed5538e1dd4bd9f9f0ae0d25fdeb1421984) by Build-CI - -#### [v3.0.6-alpha.0](https://github.com/AxaGuilDEv/react-oidc/compare/v3.0.5-alpha.0...v3.0.6-alpha.0) -> 5 January 2020 -- fix(SessionLost): complete re-auth automaticaly first time display [`#373`](https://github.com/AxaGuilDEv/react-oidc/pull/373) by Guillaume Chervet -- chore(deps-dev): bump eslint-plugin-react-hooks from 1.7.0 to 2.3.0 [`#363`](https://github.com/AxaGuilDEv/react-oidc/pull/363) by dependabot-preview[bot] -- chore(deps-dev): bump redux from 4.0.4 to 4.0.5 [`#372`](https://github.com/AxaGuilDEv/react-oidc/pull/372) by dependabot-preview[bot] -- chore(deps-dev): bump @babel/cli from 7.7.4 to 7.7.7 [`#369`](https://github.com/AxaGuilDEv/react-oidc/pull/369) by dependabot-preview[bot] -- chore(deps-dev): bump oidc-client from 1.9.1 to 1.10.1 [`#366`](https://github.com/AxaGuilDEv/react-oidc/pull/366) by dependabot-preview[bot] -- chore(deps-dev): bump auto-changelog from 1.16.1 to 1.16.2 [`#367`](https://github.com/AxaGuilDEv/react-oidc/pull/367) by dependabot-preview[bot] -- chore(deps-dev): bump eslint-plugin-import from 2.18.2 to 2.19.1 [`#364`](https://github.com/AxaGuilDEv/react-oidc/pull/364) by dependabot-preview[bot] -- chore(deps-dev): bump @testing-library/jest-dom from 4.1.0 to 4.2.4 [`#368`](https://github.com/AxaGuilDEv/react-oidc/pull/368) by dependabot-preview[bot] -- chore(deps): bump @typescript-eslint/parser from 2.3.2 to 2.14.0 [`#371`](https://github.com/AxaGuilDEv/react-oidc/pull/371) by dependabot-preview[bot] -- chore(deps-dev): bump inquirer from 6.5.2 to 7.0.1 [`#365`](https://github.com/AxaGuilDEv/react-oidc/pull/365) by dependabot-preview[bot] -- chore(release): publish v3.0.6-alpha.0 ***NO_CI*** [`c871a60`](https://github.com/AxaGuilDEv/react-oidc/commit/c871a60adc3a6a8bbe816e5298e6056563e5b531) by Build-CI -- docs(changelog) update to new 3.0.5-alpha.0 [`96a24a9`](https://github.com/AxaGuilDEv/react-oidc/commit/96a24a95d62b1b829958c5769ac0617ccab18cca) by Build-CI - -#### [v3.0.5-alpha.0](https://github.com/AxaGuilDEv/react-oidc/compare/v3.0.4-alpha.0...v3.0.5-alpha.0) -> 3 January 2020 -- chore(deps-dev): bump @testing-library/react from 8.0.9 to 9.4.0 [`#358`](https://github.com/AxaGuilDEv/react-oidc/pull/358) by dependabot-preview[bot] -- chore(deps): [security] bump lodash.template from 4.4.0 to 4.5.0 [`#230`](https://github.com/AxaGuilDEv/react-oidc/pull/230) by dependabot-preview[bot] -- Can set the JWT in memory [`#354`](https://github.com/AxaGuilDEv/react-oidc/pull/354) by Olivier YOUF -- fix(all): F5 always re-auth and manage session lost [`#319`](https://github.com/AxaGuilDEv/react-oidc/pull/319) by Olivier YOUF -- chore(deps): bump enzyme-adapter-react-16 from 1.14.0 to 1.15.2 [`#359`](https://github.com/AxaGuilDEv/react-oidc/pull/359) by dependabot-preview[bot] -- chore(deps-dev): bump eslint-plugin-prettier from 3.1.1 to 3.1.2 [`#357`](https://github.com/AxaGuilDEv/react-oidc/pull/357) by dependabot-preview[bot] -- chore(deps-dev): bump redux-oidc from 3.1.5 to 3.1.7 [`#336`](https://github.com/AxaGuilDEv/react-oidc/pull/336) by dependabot-preview[bot] -- chore(deps-dev): bump typescript from 3.6.3 to 3.7.4 [`#361`](https://github.com/AxaGuilDEv/react-oidc/pull/361) by dependabot-preview[bot] -- chore(deps-dev): bump @babel/preset-react from 7.0.0 to 7.7.4 [`#347`](https://github.com/AxaGuilDEv/react-oidc/pull/347) by dependabot-preview[bot] -- chore(deps): [security] bump https-proxy-agent from 2.2.2 to 2.2.4 [`#345`](https://github.com/AxaGuilDEv/react-oidc/pull/345) by dependabot-preview[bot] -- chore(deps-dev): bump lint-staged from 8.2.1 to 9.5.0 [`#348`](https://github.com/AxaGuilDEv/react-oidc/pull/348) by dependabot-preview[bot] -- chore(deps-dev): bump react-redux from 5.1.1 to 7.1.3 [`#334`](https://github.com/AxaGuilDEv/react-oidc/pull/334) by dependabot-preview[bot] -- chore(deps-dev): bump eslint-plugin-jest from 22.17.0 to 23.2.0 [`#362`](https://github.com/AxaGuilDEv/react-oidc/pull/362) by dependabot-preview[bot] -- feat(context): Add events in useReactOidc hook [`#343`](https://github.com/AxaGuilDEv/react-oidc/pull/343) by Olivier YOUF -- chore(release): publish v3.0.5-alpha.0 ***NO_CI*** [`6fa041a`](https://github.com/AxaGuilDEv/react-oidc/commit/6fa041af0e1f1fcb9216fd6ed7a287e7fdc73ed6) by Build-CI -- fix(sessionlost) typo [`dd69fe6`](https://github.com/AxaGuilDEv/react-oidc/commit/dd69fe67acda1d6f2b7b1933cafa67f3c6133839) by guillaume chervet -- fix(sessionlost) typo [`2d8427f`](https://github.com/AxaGuilDEv/react-oidc/commit/2d8427ffd81f39dc65f9ecf26bc65b4244013607) by guillaume chervet -- refactor(auth) refresh branch and clean things [`59dedc1`](https://github.com/AxaGuilDEv/react-oidc/commit/59dedc11c7fc10a246ff8c915fa0583be981ab52) by guillaume chervet -- docs(changelog) update to new 3.0.4-alpha.0 [`b201e35`](https://github.com/AxaGuilDEv/react-oidc/commit/b201e3563ff1caf9bf940dde2210ef2bfc39ace0) by Build-CI - -#### [v3.0.4-alpha.0](https://github.com/AxaGuilDEv/react-oidc/compare/v3.0.3-alpha.0...v3.0.4-alpha.0) -> 18 November 2019 -- fix(context): avoid errors on console with custom callback [`#341`](https://github.com/AxaGuilDEv/react-oidc/pull/341) by Olivier YOUF -- fix(context): Fix silent crash [`#340`](https://github.com/AxaGuilDEv/react-oidc/pull/340) by Olivier YOUF -- doc(oidc-metadata): add document about metadata [`#330`](https://github.com/AxaGuilDEv/react-oidc/pull/330) by Guillaume Chervet -- chore(release): publish v3.0.4-alpha.0 ***NO_CI*** [`f8d7557`](https://github.com/AxaGuilDEv/react-oidc/commit/f8d755783d2b4cfbee0cdaabe6f27178d3200080) by Build-CI -- docs(changelog) update to new 3.0.3-alpha.0 [`6b0fc09`](https://github.com/AxaGuilDEv/react-oidc/commit/6b0fc0961c90ec3200e3995482fe748d1fbe5e1d) by Build-CI - -#### [v3.0.3-alpha.0](https://github.com/AxaGuilDEv/react-oidc/compare/v3.0.2-alpha.0...v3.0.3-alpha.0) -> 5 November 2019 -- fix(redux) oidcSecure hoc was not working [`#331`](https://github.com/AxaGuilDEv/react-oidc/pull/331) by Guillaume Chervet -- wip [`e5d41f8`](https://github.com/AxaGuilDEv/react-oidc/commit/e5d41f82a1b7d7e1608e84aad4482a5f4ac5fefc) by guillaume chervet -- wip [`d03101d`](https://github.com/AxaGuilDEv/react-oidc/commit/d03101d730d6cbecc3a4ee191bfde97137060cdf) by guillaume chervet -- chore(release): publish v3.0.3-alpha.0 ***NO_CI*** [`9b8de3b`](https://github.com/AxaGuilDEv/react-oidc/commit/9b8de3bf60b0d5d58caf12513be1bd742d2936df) by Build-CI -- maj [`b2d63e8`](https://github.com/AxaGuilDEv/react-oidc/commit/b2d63e8c92e0526abe1ba242759c1716f56bdac6) by guillaume chervet -- wip [`5613367`](https://github.com/AxaGuilDEv/react-oidc/commit/5613367e95de9aa5399b9ccdacd268e5d0ef4516) by guillaume chervet -- docs(changelog) update to new 3.0.2-alpha.0 [`5f22a9f`](https://github.com/AxaGuilDEv/react-oidc/commit/5f22a9fe09da0b803abd0c7698638acdfe6620f9) by Build-CI - -#### [v3.0.2-alpha.0](https://github.com/AxaGuilDEv/react-oidc/compare/v3.0.1-alpha.0...v3.0.2-alpha.0) -> 15 October 2019 -- Fix component prop type validation to use elementType [`#321`](https://github.com/AxaGuilDEv/react-oidc/pull/321) by Henri Koskenranta -- fix(router) : Add some polyfills for IE [`#314`](https://github.com/AxaGuilDEv/react-oidc/pull/314) by Olivier YOUF -- chore(mergify) add sonar rules [`#313`](https://github.com/AxaGuilDEv/react-oidc/pull/313) by Guillaume Chervet -- refactor(context) : remove callback OR in core [`#310`](https://github.com/AxaGuilDEv/react-oidc/pull/310) by Olivier YOUF -- chore(deps-dev): bump cross-env from 5.2.0 to 6.0.0 [`#306`](https://github.com/AxaGuilDEv/react-oidc/pull/306) by dependabot-preview[bot] -- chore(deps-dev): bump redux from 4.0.1 to 4.0.4 [`#243`](https://github.com/AxaGuilDEv/react-oidc/pull/243) by dependabot-preview[bot] -- fix(all) F5 always re-auth and manage session lost [`ee0c13f`](https://github.com/AxaGuilDEv/react-oidc/commit/ee0c13f437244fad58fa352da9a1a35f8e3eb3f7) by guillaume chervet -- wip [`b2a7185`](https://github.com/AxaGuilDEv/react-oidc/commit/b2a71851d0cb91653e1d77e2fe037aa2114e9037) by guillaume chervet -- chore(release): publish v3.0.2-alpha.0 ***NO_CI*** [`1e74a2c`](https://github.com/AxaGuilDEv/react-oidc/commit/1e74a2cdf751debd3e5fe6bb84c55d0850b27ba8) by Build-CI -- docs(changelog) update to new 3.0.1-alpha.0 [`75b21af`](https://github.com/AxaGuilDEv/react-oidc/commit/75b21af75f890f3b08c46847dcb7ab7fd52df1ef) by Build-CI -- wip [`e20c897`](https://github.com/AxaGuilDEv/react-oidc/commit/e20c8975f80f71ac7a6b4eaebf44025744359d93) by guillaume chervet - -#### [v3.0.1-alpha.0](https://github.com/AxaGuilDEv/react-oidc/compare/v3.0.0-alpha.0...v3.0.1-alpha.0) -> 25 September 2019 -- feat(all) Add callback component [`#303`](https://github.com/AxaGuilDEv/react-oidc/pull/303) by Madebymaurice -- doc(package) add better keword and update licence [`#304`](https://github.com/AxaGuilDEv/react-oidc/pull/304) by Guillaume Chervet -- docs: fixed a typo on AuthenticationProvider [`#295`](https://github.com/AxaGuilDEv/react-oidc/pull/295) by Jean-Lou Piermé -- fix(sample:redux) typo to get the condition working [`#292`](https://github.com/AxaGuilDEv/react-oidc/pull/292) by Markus Lasermann -- chore(release): publish v3.0.1-alpha.0 ***NO_CI*** [`3a6de2e`](https://github.com/AxaGuilDEv/react-oidc/commit/3a6de2ef2af3a7a51ee191a0c003907ba7fbcd7e) by Build-CI -- docs(changelog) update to new 3.0.0-alpha.0 [`1953c47`](https://github.com/AxaGuilDEv/react-oidc/commit/1953c479773b6181a3e0acf308e63bdc4d12cf8b) by Build-CI - -#### [v3.0.0-alpha.0](https://github.com/AxaGuilDEv/react-oidc/compare/v2.0.8...v3.0.0-alpha.0) -> 2 September 2019 -- feat(router) Agnostic router [`#290`](https://github.com/AxaGuilDEv/react-oidc/pull/290) by Arnaud Foraison -- fix(licence)set correct entity name [`#285`](https://github.com/AxaGuilDEv/react-oidc/pull/285) by Guillaume Chervet -- chore(release): publish v3.0.0-alpha.0 ***NO_CI*** [`6192d98`](https://github.com/AxaGuilDEv/react-oidc/commit/6192d98c63cd30ee2b69561bd78c4c313353dff7) by Build-CI -- docs(changelog) update to new 2.0.8 [`db610e3`](https://github.com/AxaGuilDEv/react-oidc/commit/db610e36a5874fc05ee3130eb116223b8122aa29) by Build-CI - -#### [v2.0.8](https://github.com/AxaGuilDEv/react-oidc/compare/v2.0.7...v2.0.8) -> 20 August 2019 -- fix(redux) F5 always re-auth [`#278`](https://github.com/AxaGuilDEv/react-oidc/pull/278) by Guillaume Chervet -- fix(redux) sample react route problem [`#277`](https://github.com/AxaGuilDEv/react-oidc/pull/277) by Guillaume Chervet -- chore(release): publish v2.0.8 ***NO_CI*** [`ebe2d7d`](https://github.com/AxaGuilDEv/react-oidc/commit/ebe2d7de2a76557b0bd95110afdf7b63192ead46) by Build-CI -- docs(changelog) update to new 2.0.7 [`5264289`](https://github.com/AxaGuilDEv/react-oidc/commit/5264289a48a6c0fd863757cf57b3e4bec89a6fe1) by Build-CI - -#### [v2.0.7](https://github.com/AxaGuilDEv/react-oidc/compare/v2.0.6...v2.0.7) -> 13 August 2019 -- fix(redux) workflow [`#271`](https://github.com/AxaGuilDEv/react-oidc/pull/271) by Guillaume Chervet -- chore(release): publish v2.0.7 ***NO_CI*** [`a45f630`](https://github.com/AxaGuilDEv/react-oidc/commit/a45f6300cac5f37efc9fdbdf76f7c97107a49b2f) by Build-CI -- docs(changelog) update to new 2.0.6 [`356afab`](https://github.com/AxaGuilDEv/react-oidc/commit/356afab343cd06f9535feb3a64fdf9675a84b8f2) by Build-CI - -#### [v2.0.6](https://github.com/AxaGuilDEv/react-oidc/compare/v2.0.5...v2.0.6) -> 9 August 2019 -- fix(redux) workflow [`#266`](https://github.com/AxaGuilDEv/react-oidc/pull/266) by Guillaume Chervet -- chore(release): publish v2.0.6 ***NO_CI*** [`a55b16e`](https://github.com/AxaGuilDEv/react-oidc/commit/a55b16edadb67903e51db9e359d7f260107c4a39) by Build-CI -- docs(changelog) update to new 2.0.5 [`44cc13b`](https://github.com/AxaGuilDEv/react-oidc/commit/44cc13b9b33de9184fd87cb3beae48aea33837a7) by Build-CI - -#### [v2.0.5](https://github.com/AxaGuilDEv/react-oidc/compare/v2.0.4...v2.0.5) -> 5 August 2019 -- fix(redux) incorrect properties [`#262`](https://github.com/AxaGuilDEv/react-oidc/pull/262) by Guillaume Chervet -- chore(release): publish v2.0.5 ***NO_CI*** [`fff2d20`](https://github.com/AxaGuilDEv/react-oidc/commit/fff2d20ae08b5a0f5af84452db2376280df70f55) by Build-CI -- docs(changelog) update to new 2.0.4 [`a43242b`](https://github.com/AxaGuilDEv/react-oidc/commit/a43242b6cc33d096e9c85303f8d63c8d6be7ad07) by Build-CI - -#### [v2.0.4](https://github.com/AxaGuilDEv/react-oidc/compare/v2.0.3...v2.0.4) -> 5 August 2019 -- fix(redux) upgrade react router version [`#261`](https://github.com/AxaGuilDEv/react-oidc/pull/261) by Guillaume Chervet -- chore(release): publish v2.0.4 ***NO_CI*** [`2b63d3e`](https://github.com/AxaGuilDEv/react-oidc/commit/2b63d3ee4a925b045c1a711b2a92cace4448d3b0) by Build-CI -- docs(changelog) update to new 2.0.3 [`dba7b1d`](https://github.com/AxaGuilDEv/react-oidc/commit/dba7b1d899ab58c7351ffe065e0ad4b01fb3ef21) by Build-CI - -#### [v2.0.3](https://github.com/AxaGuilDEv/react-oidc/compare/v2.0.2...v2.0.3) -> 2 August 2019 -- fix(redux) token renew [`#260`](https://github.com/AxaGuilDEv/react-oidc/pull/260) by Guillaume Chervet -- fix(redux) token renew [`#260`](https://github.com/AxaGuilDEv/react-oidc/pull/260) by Guillaume Chervet -- chore(build) add and regenerate package.lock [`ef392f1`](https://github.com/AxaGuilDEv/react-oidc/commit/ef392f1c2294a150444dc370531ba17f46d30701) by guillaume chervet -- chore(package) fix package version [`0a2a2bf`](https://github.com/AxaGuilDEv/react-oidc/commit/0a2a2bf84740fac0586cdd137ae5cf47102957ac) by guillaume chervet -- chore(release): publish v2.0.3 ***NO_CI*** [`bcac2f4`](https://github.com/AxaGuilDEv/react-oidc/commit/bcac2f4e37e6bc280fed9e6690224d552f8ee229) by Build-CI -- docs(changelog) update to new 2.0.2 [`ff075a4`](https://github.com/AxaGuilDEv/react-oidc/commit/ff075a4b400a074d376a4c07f4a751e6914f6cb4) by Build-CI - -#### [v2.0.2](https://github.com/AxaGuilDEv/react-oidc/compare/v2.0.2-alpha.0...v2.0.2) -> 30 July 2019 -- fix(redux) token renew [`#258`](https://github.com/AxaGuilDEv/react-oidc/pull/258) by Guillaume Chervet -- chore(release): publish v2.0.2 ***NO_CI*** [`8e50a29`](https://github.com/AxaGuilDEv/react-oidc/commit/8e50a29d6302b3c0487dd5102fe115458760705a) by Build-CI -- docs(changelog) update to new 2.0.2-alpha.0 [`df80867`](https://github.com/AxaGuilDEv/react-oidc/commit/df808675ee9d524f15d2c1f493d8cfe5a36d926e) by Build-CI - -#### [v2.0.2-alpha.0](https://github.com/AxaGuilDEv/react-oidc/compare/v2.0.1-alpha.0...v2.0.2-alpha.0) -> 25 July 2019 -- doc : add optionnal parameter for post logout uri redirect [`#253`](https://github.com/AxaGuilDEv/react-oidc/pull/253) by Olivier YOUF -- chore(release): publish v2.0.2-alpha.0 ***NO_CI*** [`3c1230a`](https://github.com/AxaGuilDEv/react-oidc/commit/3c1230ab6b950a100ba58190f4f9781ed06af82f) by Build-CI -- docs(changelog) update to new 2.0.1-alpha.0 [`c7c32a2`](https://github.com/AxaGuilDEv/react-oidc/commit/c7c32a21992e8f907671788f4d49a3af7a76fcd6) by Build-CI - -#### [v2.0.1-alpha.0](https://github.com/AxaGuilDEv/react-oidc/compare/v2.0.0-alpha.0...v2.0.1-alpha.0) -> 15 July 2019 -- Fix/infiniteloop [`#238`](https://github.com/AxaGuilDEv/react-oidc/pull/238) by Olivier YOUF -- fix(infiniteLoop) : package upgrade [`e98e7d6`](https://github.com/AxaGuilDEv/react-oidc/commit/e98e7d6febdc820dc66122db43d443a8eb3d7d26) by Olivier YOUF -- fix(infiniteLoop) : change hooks to avoid infinite loop [`2168254`](https://github.com/AxaGuilDEv/react-oidc/commit/21682540fdf9a71e178942ee31b711a1f2c1575d) by Olivier YOUF -- chore(release): publish v2.0.1-alpha.0 ***NO_CI*** [`d906ddf`](https://github.com/AxaGuilDEv/react-oidc/commit/d906ddf3b2d269a362604e0a1418699bd4d10371) by Build-CI -- docs(changelog) update to new 2.0.0-alpha.0 [`2b07917`](https://github.com/AxaGuilDEv/react-oidc/commit/2b0791737eaf7c42b96ba77900d1bf10aa6a1e09) by Build-CI - -#### [v2.0.0-alpha.0](https://github.com/AxaGuilDEv/react-oidc/compare/v1.3.3...v2.0.0-alpha.0) -> 11 July 2019 -- fix(packages) : rebuild packages for package lock [`#229`](https://github.com/AxaGuilDEv/react-oidc/pull/229) by Olivier YOUF -- Feature/hooks [`#225`](https://github.com/AxaGuilDEv/react-oidc/pull/225) by Olivier YOUF -- fix(packages) : resolves missing scripts [`043a66e`](https://github.com/AxaGuilDEv/react-oidc/commit/043a66eee2f3862e1a0ab5b4155fd2475206fa35) by Olivier YOUF -- upgrading React Context + Hooks [`dafe353`](https://github.com/AxaGuilDEv/react-oidc/commit/dafe353e93456cbb2d4feba5f20cbc563029e50c) by Olivier YOUF -- babel 7 migration [`d4a8b09`](https://github.com/AxaGuilDEv/react-oidc/commit/d4a8b099fb5f1cf47a57f418b93f12f9afd04efb) by Olivier YOUF -- refacto : Package managament & dependency [`d8e8d39`](https://github.com/AxaGuilDEv/react-oidc/commit/d8e8d394cfcad14bc2bec0b58a13d440aa9a6702) by Olivier YOUF -- fix(lint) : fix lint return and deps [`c275ea3`](https://github.com/AxaGuilDEv/react-oidc/commit/c275ea3daaff745b691f083788c0155f6c89bb3c) by Olivier YOUF -- fix : fix isEnabled flag [`fe5779c`](https://github.com/AxaGuilDEv/react-oidc/commit/fe5779c5d47986223cafab81ca09bfb3f5b7a83b) by Olivier YOUF -- PR remarks [`8b6ed4d`](https://github.com/AxaGuilDEv/react-oidc/commit/8b6ed4d3e3a1a0600d9d7011a551c07c500f82cf) by Olivier YOUF -- feat : new hooks function to get oidc props [`e7c4530`](https://github.com/AxaGuilDEv/react-oidc/commit/e7c45303167c37b5322955f1274e6cf90bd698cf) by Olivier YOUF -- chore(release): publish v2.0.0-alpha.0 ***NO_CI*** [`06e5a77`](https://github.com/AxaGuilDEv/react-oidc/commit/06e5a7743225a652142defc6dd658fa9c45f8d26) by Build-CI -- refacto(packags) : bump babel [`fcf3169`](https://github.com/AxaGuilDEv/react-oidc/commit/fcf31694c9235da8c9d0b6d5d11f226efb65af43) by Olivier YOUF -- docs(changelog) update to new 1.3.3 [`eea8716`](https://github.com/AxaGuilDEv/react-oidc/commit/eea8716a1b2e8ac098c0f388682f1e1f166f22ca) by Build-CI -- override conf for example [`c6342f5`](https://github.com/AxaGuilDEv/react-oidc/commit/c6342f57d2952676d96b0990099c2741c63ac736) by Olivier YOUF - -#### [v1.3.3](https://github.com/AxaGuilDEv/react-oidc/compare/v1.3.3-alpha.0...v1.3.3) -> 4 April 2019 -- chore(release): publish v1.3.3 ***NO_CI*** [`3e011c2`](https://github.com/AxaGuilDEv/react-oidc/commit/3e011c2ca20c48a0b3e308c8e42ba96fd30b4ef8) by Build-CI -- docs(changelog) update to new 1.3.3-alpha.0 [`e8b9de0`](https://github.com/AxaGuilDEv/react-oidc/commit/e8b9de0754c9c1df227f70912fd5b5acf67a4134) by Build-CI - -#### [v1.3.3-alpha.0](https://github.com/AxaGuilDEv/react-oidc/compare/v1.3.2-alpha.0...v1.3.3-alpha.0) -> 1 April 2019 -- Fetch Core : Fix for header props [`#182`](https://github.com/AxaGuilDEv/react-oidc/pull/182) by Olivier YOUF -- chore(release): publish v1.3.3-alpha.0 ***NO_CI*** [`1d9d9e3`](https://github.com/AxaGuilDEv/react-oidc/commit/1d9d9e3ecf855f56e961743d04533c1408bbbeb5) by Build-CI -- docs(changelog) update to new 1.3.2-alpha.0 [`100e4be`](https://github.com/AxaGuilDEv/react-oidc/commit/100e4be4321359fdb628bf52c93adae612576564) by Build-CI -- fix headers [`01dd579`](https://github.com/AxaGuilDEv/react-oidc/commit/01dd579c63401c99b097726b73658bfa84db7767) by Olivier YOUF - -#### [v1.3.2-alpha.0](https://github.com/AxaGuilDEv/react-oidc/compare/v1.3.1-alpha.0...v1.3.2-alpha.0) -> 27 March 2019 -- Few changes for multiple Auth requests and callbacks issue [`#180`](https://github.com/AxaGuilDEv/react-oidc/pull/180) by Olivier YOUF -- fix callback double tap [`35f5609`](https://github.com/AxaGuilDEv/react-oidc/commit/35f56093d6e0aedca493aabde779bef58f49d59d) by Olivier YOUF -- fix : flag for waiting auth [`89b32c0`](https://github.com/AxaGuilDEv/react-oidc/commit/89b32c0a411957d1e514602d72b52ddb25b5de97) by Olivier YOUF -- Fix : package changes [`b8692f2`](https://github.com/AxaGuilDEv/react-oidc/commit/b8692f29f4fae45fb64e74d1d89fa7cf10f2fc05) by Olivier YOUF -- chore(release): publish v1.3.2-alpha.0 ***NO_CI*** [`d814ada`](https://github.com/AxaGuilDEv/react-oidc/commit/d814ada43b9e826d3a5aa9317e4b8f7dcff0671f) by Build-CI -- wip : callback [`01af436`](https://github.com/AxaGuilDEv/react-oidc/commit/01af43636e2fc5cb99a08aa154b415857493956b) by Olivier YOUF -- docs(changelog) update to new 1.3.1-alpha.0 [`17c8683`](https://github.com/AxaGuilDEv/react-oidc/commit/17c86839884e63cf8c05459839f869f0ef55e019) by Build-CI - -#### [v1.3.1-alpha.0](https://github.com/AxaGuilDEv/react-oidc/compare/v1.3.0...v1.3.1-alpha.0) -> 14 March 2019 -- Fix(context) component should wait user loading [`#170`](https://github.com/AxaGuilDEv/react-oidc/pull/170) by Guillaume Chervet -- fix(tweet) set up good changelog link [`#169`](https://github.com/AxaGuilDEv/react-oidc/pull/169) by Guillaume Chervet -- docs(changelog) update to new 1.3.0 [`02de519`](https://github.com/AxaGuilDEv/react-oidc/commit/02de5196b3e7907acfeb631ee27fdea7ed15968a) by Build-CI -- chore(release): publish v1.3.1-alpha.0 ***NO_CI*** [`32d880f`](https://github.com/AxaGuilDEv/react-oidc/commit/32d880fb06a6b916d87e90d8f4c6b1d338969d06) by Build-CI - -#### [v1.3.0](https://github.com/AxaGuilDEv/react-oidc/compare/v1.2.1...v1.3.0) -> 12 March 2019 -- fix(context) no state found in storage [`#168`](https://github.com/AxaGuilDEv/react-oidc/pull/168) by Guillaume Chervet -- docs(changelog) update to new 1.2.1 [`4eed1e9`](https://github.com/AxaGuilDEv/react-oidc/commit/4eed1e91ad3ed5dce05827444334a598f747844c) by Guillaume Chervet -- chore(release): publish v1.3.0 ***NO_CI*** [`517804b`](https://github.com/AxaGuilDEv/react-oidc/commit/517804b569c31e2e6a43f32f0aac2ff960291988) by Build-CI - -#### [v1.2.1](https://github.com/AxaGuilDEv/react-oidc/compare/v1.2.0...v1.2.1) -> 8 March 2019 -- feature(context/routes) allow to configure callbacks [`#164`](https://github.com/AxaGuilDEv/react-oidc/pull/164) by Guillaume Chervet -- feature(vanilla) vanilla lib usefull for demo or debug or migration of old js application [`#160`](https://github.com/AxaGuilDEv/react-oidc/pull/160) by Guillaume Chervet -- chore(changelog) set up auto changelog and auto tweet [`#153`](https://github.com/AxaGuilDEv/react-oidc/pull/153) by Guillaume Chervet -- chore(release): publish v1.2.1 ***NO_CI*** [`fbb0339`](https://github.com/AxaGuilDEv/react-oidc/commit/fbb0339dad91dda54d2828c7d5a4ffa5cd071a6e) by Build-CI - -#### [v1.2.0](https://github.com/AxaGuilDEv/react-oidc/compare/v1.1.6...v1.2.0) -> 24 February 2019 -- English - change all instances of "authentified" to be "authenticated" [`#151`](https://github.com/AxaGuilDEv/react-oidc/pull/151) by Paul Hammond -- chore(release): publish v1.2.0 ***NO_CI*** [`5f491b7`](https://github.com/AxaGuilDEv/react-oidc/commit/5f491b75962664904720b3404ce80a27ed9967a6) by Build-CI - -#### [v1.1.6](https://github.com/AxaGuilDEv/react-oidc/compare/v1.1.5...v1.1.6) -> 24 February 2019 -- Customise authenticating component [context] [`#150`](https://github.com/AxaGuilDEv/react-oidc/pull/150) by Paul Hammond -- lock down version of jest [`#149`](https://github.com/AxaGuilDEv/react-oidc/pull/149) by Paul Hammond -- chore(deps-dev): bump enzyme from 3.7.0 to 3.8.0 [`#112`](https://github.com/AxaGuilDEv/react-oidc/pull/112) by dependabot[bot] -- chore(deps-dev): bump eslint-plugin-jsx-a11y from 6.1.2 to 6.2.0 [`#113`](https://github.com/AxaGuilDEv/react-oidc/pull/113) by dependabot[bot] -- chore(deps-dev): bump codacy-coverage from 3.3.0 to 3.4.0 [`#116`](https://github.com/AxaGuilDEv/react-oidc/pull/116) by dependabot[bot] -- chore(deps-dev): bump eslint-plugin-import from 2.14.0 to 2.16.0 [`#117`](https://github.com/AxaGuilDEv/react-oidc/pull/117) by dependabot[bot] -- chore(deps-dev): bump prettier from 1.16.1 to 1.16.4 [`#122`](https://github.com/AxaGuilDEv/react-oidc/pull/122) by dependabot[bot] -- chore(deps-dev): bump eslint-plugin-jest from 22.1.2 to 22.2.2 [`#126`](https://github.com/AxaGuilDEv/react-oidc/pull/126) by dependabot[bot] -- feat : adding enable prop in Provider [`#125`](https://github.com/AxaGuilDEv/react-oidc/pull/125) by Olivier YOUF -- chore(release): publish v1.1.6 ***NO_CI*** [`6f573cd`](https://github.com/AxaGuilDEv/react-oidc/commit/6f573cd08e1e39143c661553645fdc62adebd3d8) by Build-CI - -#### [v1.1.5](https://github.com/AxaGuilDEv/react-oidc/compare/v1.1.5-alpha.0...v1.1.5) -> 1 February 2019 -- chore(deps-dev): bump eslint-config-prettier from 3.3.0 to 4.0.0 [`#111`](https://github.com/AxaGuilDEv/react-oidc/pull/111) by dependabot[bot] -- chore(deps-dev): bump prettier from 1.16.0 to 1.16.1 [`#110`](https://github.com/AxaGuilDEv/react-oidc/pull/110) by dependabot[bot] -- chore(deps-dev): bump jest from 23.6.0 to 24.0.0 [`#118`](https://github.com/AxaGuilDEv/react-oidc/pull/118) by dependabot[bot] -- Fix: Add react-router to dependencies [`#120`](https://github.com/AxaGuilDEv/react-oidc/pull/120) by Hamza Hamidi -- chore: remove react-redux dependency [`#119`](https://github.com/AxaGuilDEv/react-oidc/pull/119) by rpetigny -- chore(deps-dev): bump expect from 23.6.0 to 24.0.0 [`#106`](https://github.com/AxaGuilDEv/react-oidc/pull/106) by dependabot[bot] -- chore(deps-dev): bump lerna from 3.5.0 to 3.10.7 [`#107`](https://github.com/AxaGuilDEv/react-oidc/pull/107) by dependabot[bot] -- chore(deps-dev): bump eslint-plugin-jest from 22.1.2 to 22.1.3 [`#108`](https://github.com/AxaGuilDEv/react-oidc/pull/108) by dependabot[bot] -- chore(deps-dev): bump enzyme-adapter-react-16 from 1.7.1 to 1.8.0 [`#109`](https://github.com/AxaGuilDEv/react-oidc/pull/109) by dependabot[bot] -- chore(deps): bump react-dom from 16.6.3 to 16.7.0 [`#95`](https://github.com/AxaGuilDEv/react-oidc/pull/95) by dependabot[bot] -- chore(deps): bump oidc-client from 1.5.4 to 1.6.1 [`#96`](https://github.com/AxaGuilDEv/react-oidc/pull/96) by dependabot[bot] -- chore(deps): bump react from 16.6.3 to 16.7.0 [`#97`](https://github.com/AxaGuilDEv/react-oidc/pull/97) by dependabot[bot] -- chore(deps-dev): bump tslint from 5.11.0 to 5.12.1 [`#99`](https://github.com/AxaGuilDEv/react-oidc/pull/99) by dependabot[bot] -- chore(deps-dev): bump eslint from 5.11.1 to 5.12.1 [`#100`](https://github.com/AxaGuilDEv/react-oidc/pull/100) by dependabot[bot] -- chore(deps-dev): bump prettier from 1.15.3 to 1.16.0 [`#101`](https://github.com/AxaGuilDEv/react-oidc/pull/101) by dependabot[bot] -- chore(deps-dev): bump babel-plugin-macros from 2.4.4 to 2.4.5 [`#93`](https://github.com/AxaGuilDEv/react-oidc/pull/93) by dependabot[bot] -- chore(deps-dev): bump typescript from 3.2.2 to 3.2.4 [`#102`](https://github.com/AxaGuilDEv/react-oidc/pull/102) by dependabot[bot] -- chore(deps-dev): bump eslint-plugin-react from 7.12.3 to 7.12.4 [`#103`](https://github.com/AxaGuilDEv/react-oidc/pull/103) by dependabot[bot] -- chore(deps-dev): bump eslint-plugin-prettier from 3.0.0 to 3.0.1 [`#88`](https://github.com/AxaGuilDEv/react-oidc/pull/88) by dependabot[bot] -- chore(deps-dev): bump react-scripts from 2.1.1 to 2.1.3 [`#90`](https://github.com/AxaGuilDEv/react-oidc/pull/90) by dependabot[bot] -- chore(deps-dev): bump babel-plugin-macros from 2.4.2 to 2.4.4 [`#85`](https://github.com/AxaGuilDEv/react-oidc/pull/85) by mergify[bot] -- chore(deps-dev): bump chalk from 2.4.1 to 2.4.2 [`#86`](https://github.com/AxaGuilDEv/react-oidc/pull/86) by mergify[bot] -- chore(deps-dev): bump eslint-plugin-react from 7.11.1 to 7.12.3 [`#87`](https://github.com/AxaGuilDEv/react-oidc/pull/87) by mergify[bot] -- Fix example link [`#89`](https://github.com/AxaGuilDEv/react-oidc/pull/89) by Seth -- fix(redux) oidc default props [`#84`](https://github.com/AxaGuilDEv/react-oidc/pull/84) by julienbirgand -- chore(release): publish v1.1.5 ***NO_CI*** [`e21bbbc`](https://github.com/AxaGuilDEv/react-oidc/commit/e21bbbcadfec1fe70cc64d0b33c84910a9e8add1) by Build-CI - -#### [v1.1.5-alpha.0](https://github.com/AxaGuilDEv/react-oidc/compare/v1.1.0...v1.1.5-alpha.0) -> 4 January 2019 -- chore(pipeline-azure) branch variable was a bad one [`#83`](https://github.com/AxaGuilDEv/react-oidc/pull/83) by mergify[bot] -- fix : Context Fetch>oidcUser transmission [`#80`](https://github.com/AxaGuilDEv/react-oidc/pull/80) by Olivier YOUF -- fix token expired event [`#81`](https://github.com/AxaGuilDEv/react-oidc/pull/81) by mergify[bot] -- chore(deps-dev): bump eslint from 5.9.0 to 5.11.1 [`#82`](https://github.com/AxaGuilDEv/react-oidc/pull/82) by mergify[bot] -- chore(deps-dev): bump @angular/compiler from 7.1.0 to 7.1.4 [`#75`](https://github.com/AxaGuilDEv/react-oidc/pull/75) by mergify[bot] -- chore(deps-dev): bump typescript from 3.2.1 to 3.2.2 [`#63`](https://github.com/AxaGuilDEv/react-oidc/pull/63) by dependabot[bot] -- chore(deps-dev): bump @angular/core from 7.1.0 to 7.1.3 [`#65`](https://github.com/AxaGuilDEv/react-oidc/pull/65) by mergify[bot] -- chore(deps-dev): bump tslint-config-prettier from 1.16.0 to 1.17.0 [`#64`](https://github.com/AxaGuilDEv/react-oidc/pull/64) by mergify[bot] -- chore(deps-dev): bump regenerator-runtime from 0.12.1 to 0.13.1 [`#67`](https://github.com/AxaGuilDEv/react-oidc/pull/67) by mergify[bot] -- chore(deps-dev): bump babel-eslint from 8.2.6 to 10.0.1 [`#69`](https://github.com/AxaGuilDEv/react-oidc/pull/69) by mergify[bot] -- chore(deps-dev): bump inquirer from 6.2.0 to 6.2.1 [`#68`](https://github.com/AxaGuilDEv/react-oidc/pull/68) by mergify[bot] -- chore(deps-dev): bump react-test-renderer from 16.6.3 to 16.7.0 [`#70`](https://github.com/AxaGuilDEv/react-oidc/pull/70) by mergify[bot] -- chore(deps-dev): bump enzyme-adapter-react-16 from 1.7.0 to 1.7.1 [`#71`](https://github.com/AxaGuilDEv/react-oidc/pull/71) by mergify[bot] -- chore(deps-dev): bump eslint-plugin-jest from 22.0.1 to 22.1.2 [`#76`](https://github.com/AxaGuilDEv/react-oidc/pull/76) by mergify[bot] -- docs(readme) add keyword [`#79`](https://github.com/AxaGuilDEv/react-oidc/pull/79) by Guillaume Chervet -- chore(ci) remove travis and codeclimate [`#73`](https://github.com/AxaGuilDEv/react-oidc/pull/73) by Guillaume Chervet -- chore(deps-dev): bump lint-staged from 7.3.0 to 8.1.0 [`#74`](https://github.com/AxaGuilDEv/react-oidc/pull/74) by dependabot[bot] -- chore(ci) add azureDevops build + sonar [`#72`](https://github.com/AxaGuilDEv/react-oidc/pull/72) by Guillaume Chervet -- chore(deps-dev): bump react-scripts from 1.1.5 to 2.1.1 [`#57`](https://github.com/AxaGuilDEv/react-oidc/pull/57) by dependabot[bot] -- chore(deps-dev): bump typescript from 3.1.6 to 3.2.1 [`#59`](https://github.com/AxaGuilDEv/react-oidc/pull/59) by dependabot[bot] -- chore(deps-dev): bump react-test-renderer from 16.6.1 to 16.6.3 [`#60`](https://github.com/AxaGuilDEv/react-oidc/pull/60) by dependabot[bot] -- chore(deps-dev): bump prettier from 1.15.1 to 1.15.3 [`#61`](https://github.com/AxaGuilDEv/react-oidc/pull/61) by dependabot[bot] -- doc(readme) small fix for demo to internship [`#62`](https://github.com/AxaGuilDEv/react-oidc/pull/62) by Guillaume Chervet -- chore(azurepipeline) configure lerna to publish [`#58`](https://github.com/AxaGuilDEv/react-oidc/pull/58) by Guillaume Chervet -- chore(deps-dev): bump lerna from 3.4.3 to 3.5.0 [`#55`](https://github.com/AxaGuilDEv/react-oidc/pull/55) by dependabot[bot] -- chore(deps-dev): bump eslint-plugin-json from 1.2.1 to 1.3.2 [`#54`](https://github.com/AxaGuilDEv/react-oidc/pull/54) by dependabot[bot] -- chore(deps-dev): bump eslint-plugin-prettier from 2.7.0 to 3.0.0 [`#56`](https://github.com/AxaGuilDEv/react-oidc/pull/56) by dependabot[bot] -- chore(deps-dev): bump @angular/compiler from 7.0.4 to 7.1.0 [`#52`](https://github.com/AxaGuilDEv/react-oidc/pull/52) by dependabot[bot] -- chore(deps-dev): bump codacy-coverage from 3.2.0 to 3.3.0 [`#53`](https://github.com/AxaGuilDEv/react-oidc/pull/53) by dependabot[bot] -- chore(deps-dev): bump @angular/core from 7.0.3 to 7.1.0 [`#46`](https://github.com/AxaGuilDEv/react-oidc/pull/46) by dependabot[bot] -- chore(deps-dev): bump eslint from 5.8.0 to 5.9.0 [`#48`](https://github.com/AxaGuilDEv/react-oidc/pull/48) by dependabot[bot] -- chore(deps-dev): bump shelljs from 0.8.2 to 0.8.3 [`#49`](https://github.com/AxaGuilDEv/react-oidc/pull/49) by dependabot[bot] -- chore(deps-dev): bump eslint-plugin-jest from 22.0.0 to 22.0.1 [`#50`](https://github.com/AxaGuilDEv/react-oidc/pull/50) by dependabot[bot] -- chore(deps-dev): bump eslint-config-prettier from 3.1.0 to 3.3.0 [`#47`](https://github.com/AxaGuilDEv/react-oidc/pull/47) by dependabot[bot] -- chore(deps): bump react-dom from 16.6.1 to 16.6.3 [`#44`](https://github.com/AxaGuilDEv/react-oidc/pull/44) by dependabot[bot] -- chore(deps): bump rxjs from 6.3.2 to 6.3.3 [`#45`](https://github.com/AxaGuilDEv/react-oidc/pull/45) by dependabot[bot] -- chore(deps): bump react from 16.6.1 to 16.6.3 [`#43`](https://github.com/AxaGuilDEv/react-oidc/pull/43) by dependabot[bot] -- chore(deps): bump react-redux from 5.0.7 to 5.1.1 [`#38`](https://github.com/AxaGuilDEv/react-oidc/pull/38) by dependabot[bot] -- chore(deps-dev): bump @angular/compiler from 7.0.3 to 7.0.4 [`#42`](https://github.com/AxaGuilDEv/react-oidc/pull/42) by dependabot[bot] -- chore(deps-dev): bump tslint-config-prettier from 1.15.0 to 1.16.0 [`#40`](https://github.com/AxaGuilDEv/react-oidc/pull/40) by dependabot[bot] -- doc(redux): update code example and add more informations [`#41`](https://github.com/AxaGuilDEv/react-oidc/pull/41) by Benoit Fontaine -- doc(context) add more explanation [`#37`](https://github.com/AxaGuilDEv/react-oidc/pull/37) by Guillaume Chervet -- chore(deps): [security] bump merge from 1.2.0 to 1.2.1 [`#39`](https://github.com/AxaGuilDEv/react-oidc/pull/39) by dependabot[bot] -- Set up CI with Azure Pipelines [`#31`](https://github.com/AxaGuilDEv/react-oidc/pull/31) by Cyril Lakech -- chore(deps-dev): bump tslint-plugin-prettier from 1.3.0 to 2.0.1 [`#34`](https://github.com/AxaGuilDEv/react-oidc/pull/34) by dependabot[bot] -- chore(deps-dev): bump eslint-config-prettier from 2.10.0 to 3.1.0 [`#36`](https://github.com/AxaGuilDEv/react-oidc/pull/36) by dependabot[bot] -- chore(deps-dev): bump eslint-plugin-jest from 21.27.2 to 22.0.0 [`#35`](https://github.com/AxaGuilDEv/react-oidc/pull/35) by dependabot[bot] -- fix oidcUser transmission [`0ae83e1`](https://github.com/AxaGuilDEv/react-oidc/commit/0ae83e1e9e4d71683c190a32fb87a91b307539cc) by Olivier YOUF -- chore(release): publish v1.1.5-alpha.0 ***NO_CI*** [`41536de`](https://github.com/AxaGuilDEv/react-oidc/commit/41536de22955b5f7f6b5b0dc758554a7f1deff20) by Build-CI -- WIP [`b866401`](https://github.com/AxaGuilDEv/react-oidc/commit/b86640100253030ccc1386d198f9910f86c052a4) by Guillaume Chervet -- WIP [`cad214b`](https://github.com/AxaGuilDEv/react-oidc/commit/cad214b48575a759f9245bcf2651d78dba4435e6) by Guillaume Chervet -- WIP [`d36dd3d`](https://github.com/AxaGuilDEv/react-oidc/commit/d36dd3d1463b0a4f6c9b6f8f6be74707552b139f) by Guillaume Chervet -- it works! [`b58a355`](https://github.com/AxaGuilDEv/react-oidc/commit/b58a355821a53cb0229acc1a1a69d724655e9f77) by Guillaume Chervet -- WIP [`fd2c87a`](https://github.com/AxaGuilDEv/react-oidc/commit/fd2c87a4b8b67914526bdef213719c08d49cbd54) by Guillaume Chervet -- chore(pipeline-azure) bug during publish [`0f0935a`](https://github.com/AxaGuilDEv/react-oidc/commit/0f0935a84f5065c1b3beabbb0b4acdc04346bf1d) by Guillaume Chervet -- WIP [`7c238f5`](https://github.com/AxaGuilDEv/react-oidc/commit/7c238f59ed3221910ced2631bed5092a9a56d71d) by Guillaume Chervet -- WIP [`4d04233`](https://github.com/AxaGuilDEv/react-oidc/commit/4d04233963fe77e803626ed0752dfe66474f8e71) by Guillaume Chervet -- WIP [`1a2fdbd`](https://github.com/AxaGuilDEv/react-oidc/commit/1a2fdbd0b2fc8f9d611248c02987fc524c77ea94) by Guillaume Chervet -- it works! [`adb3ecf`](https://github.com/AxaGuilDEv/react-oidc/commit/adb3ecf6f64e626209dd18bc6b0949c321af3347) by Guillaume Chervet -- WIP [`0836ecd`](https://github.com/AxaGuilDEv/react-oidc/commit/0836ecdfe1a0ff9846621a78e44b3cacb9184436) by Guillaume Chervet - -#### [v1.1.0](https://github.com/AxaGuilDEv/react-oidc/compare/v1.0.2...v1.1.0) -> 9 November 2018 -- fix(publish) missing attribute to publish to npm [`36a05fa`](https://github.com/AxaGuilDEv/react-oidc/commit/36a05faf92e6f09a2fec01756ad9b15cb44253ac) by Guillaume Chervet -- chore(release): publish v1.1.0 [ci skip] [`cc39e30`](https://github.com/AxaGuilDEv/react-oidc/commit/cc39e30840195b6d00591f72bef879e671a6a0f6) by Travis CI User - -#### [v1.0.2](https://github.com/AxaGuilDEv/react-oidc/compare/v1.0.1...v1.0.2) -> 31 October 2018 -- feat: add fetch observable hoc [`7ef055c`](https://github.com/AxaGuilDEv/react-oidc/commit/7ef055cb555d2937c2fcac175ab6294ef0fe9662) by Thierno Barry -- chore(release): publish v1.0.2 [ci skip] [`689b36c`](https://github.com/AxaGuilDEv/react-oidc/commit/689b36c1820e07ab1bc4b8542c4914f3081fed54) by Travis CI User -- chore: remove codacy that return 404 errors [`52724bb`](https://github.com/AxaGuilDEv/react-oidc/commit/52724bb7171a1e117f893580a6df54bcacf6d584) by Cyril Lakech - -#### [v1.0.1](https://github.com/AxaGuilDEv/react-oidc/compare/v1.0.0...v1.0.1) -> 4 October 2018 -- replacing includes by indexof [`#25`](https://github.com/AxaGuilDEv/react-oidc/pull/25) by mergify[bot] -- chore(release): publish v1.0.1 [ci skip] [`7cfb06c`](https://github.com/AxaGuilDEv/react-oidc/commit/7cfb06ce706187d79fccf9fbcebf28e5f1c28e9b) by Travis CI User - -### [v1.0.0](https://github.com/AxaGuilDEv/react-oidc/compare/v0.0.1...v1.0.0) -> 3 October 2018 -- doc: add npm version badge [`#23`](https://github.com/AxaGuilDEv/react-oidc/pull/23) by mergify[bot] -- chore(release): publish v1.0.0 [ci skip] [`728051b`](https://github.com/AxaGuilDEv/react-oidc/commit/728051b8b5db2eba1c7d2f922d9c466c7eba62ea) by Travis CI User - -#### [v0.0.1](https://github.com/AxaGuilDEv/react-oidc/compare/v0.0.1-alpha.11...v0.0.1) -> 3 October 2018 -- Mergify initial configuration [`#22`](https://github.com/AxaGuilDEv/react-oidc/pull/22) by mergify[bot] -- chore(release): publish v0.0.1 [ci skip] [`94cbf05`](https://github.com/AxaGuilDEv/react-oidc/commit/94cbf05bf38ad190f0025d3ddee3bb584d42cc01) by Travis CI User - -#### [v0.0.1-alpha.11](https://github.com/AxaGuilDEv/react-oidc/compare/v0.0.1-alpha.10...v0.0.1-alpha.11) -> 3 October 2018 -- chore: exclude tests from codeclimate analysis [`#14`](https://github.com/AxaGuilDEv/react-oidc/pull/14) by Cyril Lakech -- chore(build) add user variable for releasing a specific version to npm [`#20`](https://github.com/AxaGuilDEv/react-oidc/pull/20) by Guillaume Chervet -- fix : recompose branch test in the consumer and add doc about dev [`#21`](https://github.com/AxaGuilDEv/react-oidc/pull/21) by youf-olivier -- chore(release): publish v0.0.1-alpha.11 [ci skip] [`82d326a`](https://github.com/AxaGuilDEv/react-oidc/commit/82d326a0abc8c89516c010e731f911cc27da29c6) by Travis CI User - -#### [v0.0.1-alpha.10](https://github.com/AxaGuilDEv/react-oidc/compare/v0.0.1-alpha.9...v0.0.1-alpha.10) -> 1 October 2018 -- chore: setup test coverage with codacy [`#17`](https://github.com/AxaGuilDEv/react-oidc/pull/17) by Cyril Lakech -- chore(release): publish v0.0.1-alpha.10 [ci skip] [`612031e`](https://github.com/AxaGuilDEv/react-oidc/commit/612031ea55e145672dd5c2d8fd078479cff5f706) by Travis CI User - -#### v0.0.1-alpha.9 -> 1 October 2018 -- wip chore: setup publishing to npm [`#19`](https://github.com/AxaGuilDEv/react-oidc/pull/19) by Cyril Lakech -- chore: do not share codeclimate token [`#16`](https://github.com/AxaGuilDEv/react-oidc/pull/16) by Guillaume Chervet -- Add a Codacy badge to readme.md [`#15`](https://github.com/AxaGuilDEv/react-oidc/pull/15) by Guillaume Chervet -- chore: setup coverage with codeclimate [`#13`](https://github.com/AxaGuilDEv/react-oidc/pull/13) by youf-olivier -- chore: add coverage badge [`#12`](https://github.com/AxaGuilDEv/react-oidc/pull/12) by Guillaume Chervet -- chore(packages) add require attributes to publish inside npm in publi… [`#11`](https://github.com/AxaGuilDEv/react-oidc/pull/11) by Cyril Lakech -- refactor: simplify oidc service authenticateUser [`#10`](https://github.com/AxaGuilDEv/react-oidc/pull/10) by Guillaume Chervet -- chore: add codeclimate badge [`#8`](https://github.com/AxaGuilDEv/react-oidc/pull/8) by Guillaume Chervet -- init [`8d1518e`](https://github.com/AxaGuilDEv/react-oidc/commit/8d1518edc28882b83f207e8dc19d3c805f5ce96d) by Olivier Youf -- chore(release): publish v0.0.1-alpha.9 [ci skip] [`df4adb5`](https://github.com/AxaGuilDEv/react-oidc/commit/df4adb51f25be9f6b49f46ad9c7620e6b91fc259) by Travis CI User -- chore(packages) add require attributes to publish inside npm in public with a scope [`bb6f22f`](https://github.com/AxaGuilDEv/react-oidc/commit/bb6f22fe4a2c93156ad5848e1e9e221f5d7f2e57) by Guillaume Chervet -- chore: add license [`3d2ba13`](https://github.com/AxaGuilDEv/react-oidc/commit/3d2ba1328685a2aec3b5d158db9047870ed236c4) by Cyril Lakech -- Add Codacy badge [`400b938`](https://github.com/AxaGuilDEv/react-oidc/commit/400b93878c0b55b831de63b5bd01de82ac6d389c) by The Codacy Badger +# Changelog + +## v7.10.11 + +- [4460d89](https://github.com/AxaFrance/oidc-client/commit/4460d893d74258dd2052674ee29694037c372247) - Update generate-changelog.sh (release), 2023-11-29 by *Guillaume Chervet* +- [69eadc6](https://github.com/AxaFrance/oidc-client/commit/69eadc60c92bc799d0a2d65bd6b841f98bd7d78c) - [skip ci] Update version package.json, 2023-11-29 by *GitHub* + + +## v7.10.10 + +- [83f0c10](https://github.com/AxaFrance/oidc-client/commit/83f0c1092c48987eb8ad149100f3b44b4e7bc50b) - Update npm-publish.yml (release), 2023-11-29 by *Guillaume Chervet* + + +## v7.10.9 + +- [da29bee](https://github.com/AxaFrance/oidc-client/commit/da29beef9bf3a6993ca862b258254cd894977a74) - Update generate-changelog.sh (release), 2023-11-29 by *Guillaume Chervet* +- [e1230bb](https://github.com/AxaFrance/oidc-client/commit/e1230bb4f1cfb57fea4998da768bd3b7676e78da) - [skip ci] Update version package.json, 2023-11-29 by *GitHub* + + +## v7.10.8 + +- [9bbfaa8](https://github.com/AxaFrance/oidc-client/commit/9bbfaa8dc34271692a278178539862e19fd76b6c) - Update generate-changelog.sh (release), 2023-11-29 by *Guillaume Chervet* +- [09ece5b](https://github.com/AxaFrance/oidc-client/commit/09ece5bea1128ad24847036521aac2f27f7df261) - [skip ci] Update version package.json, 2023-11-29 by *GitHub* + + +## v7.10.7 + +- [82ed281](https://github.com/AxaFrance/oidc-client/commit/82ed28183d4efea9c1835f4eed9a25c254ecd8a5) - Update generate-changelog.sh (release) (#1203), 2023-11-29 by *Guillaume Chervet* +- [f41eafd](https://github.com/AxaFrance/oidc-client/commit/f41eafd59c1cd6b04f889db18d1e9db72e96d7af) - [skip ci] Update version package.json, 2023-11-29 by *GitHub* + + +## v7.10.6 + +- [a51e099](https://github.com/AxaFrance/oidc-client/commit/a51e099cb0d1f9fc2734d0fc73eb3bfefc77caf1) - Update generate-changelog.sh (release), 2023-11-29 by *Guillaume Chervet* +- [34f9291](https://github.com/AxaFrance/oidc-client/commit/34f9291104c3911f6a9e33dc23d5373bdc867ba2) - [skip ci] Update version package.json, 2023-11-29 by *GitHub* + + +## v7.10.5 + +- [c1f7494](https://github.com/AxaFrance/oidc-client/commit/c1f7494aaa58f50d22fe51d763b32f3914a515ed) - fix (release), 2023-11-29 by *Guillaume Chervet* +- [7e3af1f](https://github.com/AxaFrance/oidc-client/commit/7e3af1f9b0ffcf9714333b445577c04595a9135f) - [skip ci] Update version package.json, 2023-11-29 by *GitHub* + + +## v7.10.4 + +- [edb89b3](https://github.com/AxaFrance/oidc-client/commit/edb89b390eefce93dbaa02c813d388bbaf1088e2) - fix (release), 2023-11-29 by *Guillaume Chervet* + + +## v7.10.3 + +- [15f1414](https://github.com/AxaFrance/oidc-client/commit/15f1414d8699b9f35cfa977a204ae7bfb73cbbea) - fix(ci): update (release), 2023-11-29 by *Guillaume Chervet* +- [742c643](https://github.com/AxaFrance/oidc-client/commit/742c6430518c9cc64e0735e2203d659ab2098dc8) - [skip ci] Update version package.json, 2023-11-29 by *GitHub* + + +## v7.10.2 + +- [99ca1c3](https://github.com/AxaFrance/oidc-client/commit/99ca1c3b022109a3c0712d0cafb436ee6eab20d0) - fix(ci): test (release), 2023-11-29 by *Guillaume Chervet* + + +## v7.10.1 + +- [ff1f841](https://github.com/AxaFrance/oidc-client/commit/ff1f841044101b99d8d896828015d732a383e437) - fix(ci): ammend (release), 2023-11-29 by *Guillaume Chervet* +- [a194c5b](https://github.com/AxaFrance/oidc-client/commit/a194c5bf7addede93cc56319bafaf07fd73243ad) - fix(ci): autochangelog, 2023-11-29 by *Guillaume Chervet* + + +## v7.10.0 + +- [3d1af45](https://github.com/AxaFrance/oidc-client/commit/3d1af45133e41c981c4a35c4b19298a3b0f1d555) - feat(ci): add auto changelog (release), 2023-11-29 by *Guillaume Chervet* +- [56bde67](https://github.com/AxaFrance/oidc-client/commit/56bde67566f8203e9d62ae6e8b722c86a7b63cae) - doc(readme): Update README.md, 2023-11-27 by *Guillaume Chervet* +- [790da5a](https://github.com/AxaFrance/oidc-client/commit/790da5a60cc7fb07ca82feb994c8d12ff3e01b69) - [skip ci] Update version package.json, 2023-11-24 by *GitHub* + + +## v7.9.3 + +- [a80844c](https://github.com/AxaFrance/oidc-client/commit/a80844c2668066b083009043f1dd94fa196e1f18) - fix(service-worker): make sure URL is normalized when comparing with token endpoint and revocation endpoint (#1198) (release), 2023-11-24 by *meesvandongen* +- [bf19dd0](https://github.com/AxaFrance/oidc-client/commit/bf19dd0cc975ea4524b0f68f9315625b3789801b) - fix(oidc-client): tokens refresh conflict multiple tabs (alpha), 2023-11-17 by *Guillaume Chervet* +- [216adc7](https://github.com/AxaFrance/oidc-client/commit/216adc79007264915747edf3ff07171cac456759) - [skip ci] Update version package.json, 2023-11-17 by *GitHub* + + +## v7.9.2 + +- [5085e05](https://github.com/AxaFrance/oidc-client/commit/5085e05beb4c7a88fad1df61e11213b68672e7d9) - fix(sevice-worker): add URL normalization for getCurrentDatabaseDomain endpoints comparison (release) (#1196), 2023-11-17 by *meesvandongen* +- [77361cf](https://github.com/AxaFrance/oidc-client/commit/77361cfb1c8f2f0eed9c38ba15e32f3bbe0f4095) - [skip ci] Update version package.json, 2023-11-13 by *GitHub* + + +## v7.9.1 + +- [7e0cb29](https://github.com/AxaFrance/oidc-client/commit/7e0cb297587e314451321c3ddd1b0e5f7e7e6c0e) - fix(logout): okta tokens null (release) (#1188), 2023-11-13 by *Guillaume Chervet* +- [2413503](https://github.com/AxaFrance/oidc-client/commit/24135038510ada4b9eecffae1494693ef9347a07) - [skip ci] Update version package.json, 2023-11-12 by *GitHub* + + +## v7.9.0 + +- [b08cd59](https://github.com/AxaFrance/oidc-client/commit/b08cd594d2427170cde835dcff97d5be396952e6) - doc(FAQ): Update FAQ.md (release), 2023-11-12 by *Guillaume Chervet* +- [c54c7b9](https://github.com/AxaFrance/oidc-client/commit/c54c7b9f3447c0474b460649eb315c13f5f8b1da) - fix(service-worker): Reclaming all clients from SW after hard reload (#1149), 2023-11-12 by *VladimirPlatonenko* +- [dbcfec4](https://github.com/AxaFrance/oidc-client/commit/dbcfec46798b2137154dd33f31bf842f6b7730b8) - feat(oidc-client): enhance service worker flexibility (alpha) (#1180), 2023-11-12 by *Guillaume Chervet* +- [9549b9a](https://github.com/AxaFrance/oidc-client/commit/9549b9ae613d3cf357cb4b760fc8cc9e0af80c44) - doc(oidc-client): typo in method name, 2023-11-07 by *Guillaume Chervet* +- [1a12a19](https://github.com/AxaFrance/oidc-client/commit/1a12a19a54924f0941a960b47fca8b4c169256a0) - [skip ci] Update version package.json, 2023-11-06 by *GitHub* + + +## v7.8.0 + +- [1684abb](https://github.com/AxaFrance/oidc-client/commit/1684abba7d982ecbd2f30610eb140e2ce4549814) - feat(oidc-client): move fetch to oidc-client (#1175) (release), 2023-11-06 by *Guillaume Chervet* +- [b4cee5a](https://github.com/AxaFrance/oidc-client/commit/b4cee5aec8365ba2b000742001c717f1d543011b) - [skip ci] Update version package.json, 2023-10-29 by *GitHub* + + +## v7.7.3 + +- [ac7f37b](https://github.com/AxaFrance/oidc-client/commit/ac7f37be28883edbe539eff02d0a6a054b2aab14) - build(npm): bump msw from 1.2.2 to 2.0.0 (#1165), 2023-10-29 by *dependabot[bot]* +- [1b4bc07](https://github.com/AxaFrance/oidc-client/commit/1b4bc0782c39a8f797de224f74073d4860672cb6) - [skip ci] Update version package.json, 2023-10-25 by *GitHub* + + +## v7.7.2 + +- [41ecf9e](https://github.com/AxaFrance/oidc-client/commit/41ecf9e1752f291f0d8f96a979ab393f5aaeb885) - build(npm): bump @testing-library/dom from 9.3.1 to 9.3.3 (#1161), 2023-10-25 by *dependabot[bot]* + + +## v7.7.1 + +- [07d266b](https://github.com/AxaFrance/oidc-client/commit/07d266b32b275038176a407036a338624d2bed47) - build(npm): bump next from 13.4.12 to 13.5.6 (#1158), 2023-10-25 by *dependabot[bot]* +- [03a6570](https://github.com/AxaFrance/oidc-client/commit/03a6570bb09a98686e67f17b57ee7f7b1849db2c) - [skip ci] Update version package.json, 2023-10-19 by *GitHub* + + +## v7.7.0 + +- [ec5ba27](https://github.com/AxaFrance/oidc-client/commit/ec5ba27f463c513e4d476621f684d0dcccd34470) - feat(oidc): make location injectable (release) (#1155), 2023-10-19 by *Guillaume Chervet* +- [8f24b11](https://github.com/AxaFrance/oidc-client/commit/8f24b119613fef5d7214826528bdb04c931a1986) - doc(faq): Update FAQ.md (#1151), 2023-10-13 by *Mateusz Popielarz* +- [4f9b3c0](https://github.com/AxaFrance/oidc-client/commit/4f9b3c0b767d4b955223febcc833e6ff47e997ef) - [skip ci] Update version package.json, 2023-09-21 by *GitHub* + + +## v7.6.0 + +- [3e0e554](https://github.com/AxaFrance/oidc-client/commit/3e0e5546ec756b4a9ddad695e4e2368c5721175f) - feat(service-worker): add to trusted type (#1142) (release), 2023-09-21 by *Guillaume Chervet* +- [79b3889](https://github.com/AxaFrance/oidc-client/commit/79b3889a3441b5bf95f980db7c2ae6aed60da8da) - [skip ci] Update version package.json, 2023-09-20 by *GitHub* + + +## v7.5.1 + +- [60d9c4e](https://github.com/AxaFrance/oidc-client/commit/60d9c4e68622f81ecceaf480de21d4646ae909f1) - fix(oidc): clean link with service worker (#1141) (release), 2023-09-20 by *Guillaume Chervet* +- [2e5b856](https://github.com/AxaFrance/oidc-client/commit/2e5b85670e7929a0b216fe695999a8cddcd2d3a8) - [skip ci] Update version package.json, 2023-09-19 by *GitHub* + + +## v7.5.0 + +- [ff7ac6a](https://github.com/AxaFrance/oidc-client/commit/ff7ac6ae7defbd84067b4084222430ef07f15713) - feat(oidc): add dpop (#1139) (release), 2023-09-19 by *Guillaume Chervet* +- [1980813](https://github.com/AxaFrance/oidc-client/commit/1980813234a63e13353b8e5623982e714b42ac12) - feat(demo): hack iframe unregister serviceworker (#1137), 2023-09-14 by *Guillaume Chervet* +- [8165fab](https://github.com/AxaFrance/oidc-client/commit/8165fab52b89ce20946378c5173783ef06f014ef) - [skip ci] Update version package.json, 2023-09-07 by *GitHub* + + +## v7.4.1 + +- [6941766](https://github.com/AxaFrance/oidc-client/commit/6941766614d18ff3c92bbd00bdf0583350b16b7f) - fix(service-worker): setAccessTokenToNavigateRequests always true (#1136) (release), 2023-09-07 by *Guillaume Chervet* +- [823a3c3](https://github.com/AxaFrance/oidc-client/commit/823a3c37351e39b0bb1290228f72c58f11a28960) - fix(oidc+serviceworker): better issueAt, 2023-09-05 by *Guillaume Chervet* + + +## v7.4.0 + +- [d0dfde4](https://github.com/AxaFrance/oidc-client/commit/d0dfde47e27125248e5af7e9d6c12bfbe1e3ec60) - feat(oidc+serviceworker): increase security preventing sw unresgistration during silent signin (#1134) (release), 2023-09-05 by *Guillaume Chervet* +- [9a05b9f](https://github.com/AxaFrance/oidc-client/commit/9a05b9f13a7d429f044bf84d57af64d356999955) - [skip ci] Update version package.json, 2023-08-25 by *GitHub* + + +## v7.3.4 + +- [6d371ff](https://github.com/AxaFrance/oidc-client/commit/6d371ff1ce909ae40ef2f44a145bdcd322ca9d90) - fix(oidc-service-worker): gracefull timeout on firefox (release) (#1132), 2023-08-25 by *Guillaume Chervet* +- [e004e32](https://github.com/AxaFrance/oidc-client/commit/e004e32dbafd06c766429903fe6cdd74d37b9bd2) - [skip ci] Update version package.json, 2023-08-15 by *GitHub* + + +## v7.3.3 + +- [e4e7409](https://github.com/AxaFrance/oidc-client/commit/e4e74091a8a6fadb64429dcccbd43331af62f920) - fix(oidc): parent instead of top for iframe allow app inside iframe (#1130) (release), 2023-08-15 by *Guillaume Chervet* +- [28e21ac](https://github.com/AxaFrance/oidc-client/commit/28e21acd8fbda1a7190917a80239b595fa5f2f36) - [skip ci] Update version package.json, 2023-08-15 by *GitHub* + + +## v7.3.2 + +- [790ec46](https://github.com/AxaFrance/oidc-client/commit/790ec468355967462b9bfce40196e9336efed0d7) - fix(oidc): allow service worker to chrome 70 (release), 2023-08-15 by *Guillaume Chervet* +- [bb7de00](https://github.com/AxaFrance/oidc-client/commit/bb7de0060ea81fa4206a5696a5479100f0c64898) - [skip ci] Update version package.json, 2023-08-08 by *GitHub* + + +## v7.3.1 + +- [c2564f9](https://github.com/AxaFrance/oidc-client/commit/c2564f9ef6de2122962cfb4a8e0f9195aa688d84) - fix(all): copy of service worker files (release), 2023-08-08 by *Guillaume Chervet* +- [0bc3398](https://github.com/AxaFrance/oidc-client/commit/0bc3398f09fd3bf6dff5a6443d5d42f0a26454bf) - [skip ci] Update version package.json, 2023-08-08 by *GitHub* + + +## v7.3.0 + +- [282c0f7](https://github.com/AxaFrance/oidc-client/commit/282c0f72ab7741f24468b2278466eb307d1fa0ce) - feat(oidc+serviceworker): add property setAccessTokenToNavigateRequests + service_worker_convert_all_requests_to_cors moved to TrustedDomains.js (#1123) (release), 2023-08-08 by *Guillaume Chervet* +- [c94163d](https://github.com/AxaFrance/oidc-client/commit/c94163d02f5947761d00bd5e18df6749106d6f3d) - doc(FAQ): add "Does Service Worker is mandatory ?", 2023-08-08 by *Guillaume Chervet* +- [7ffcde4](https://github.com/AxaFrance/oidc-client/commit/7ffcde465f5f4cbba4b39e0da43dee34d4ec37d9) - doc(readme): update images urls, 2023-08-08 by *Guillaume Chervet* +- [32b2861](https://github.com/AxaFrance/oidc-client/commit/32b286181436129e6d15e0e166108d1f0d4d5641) - [skip ci] Update version package.json, 2023-08-07 by *GitHub* + + +## v7.2.2 + +- [e0cad22](https://github.com/AxaFrance/oidc-client/commit/e0cad22179fb1d9e641fbbf14b879ea2d2d78c3a) - fix(faq): update faq (release), 2023-08-07 by *Guillaume Chervet* +- [a5d2e58](https://github.com/AxaFrance/oidc-client/commit/a5d2e5892cf456225618f55602c87c654cdad62c) - fix(oidc+serviceworker): add more log detail on token validation, 2023-08-07 by *Guillaume Chervet* +- [ad3a73b](https://github.com/AxaFrance/oidc-client/commit/ad3a73b9a65c942e2f3aee61516581613844a5ec) - [skip ci] Update version package.json, 2023-08-07 by *GitHub* + + +## v7.2.1 + +- [0e52c56](https://github.com/AxaFrance/oidc-client/commit/0e52c56e1d747aa17ee2bf3005893a8d67a03ab3) - fix(package.json): update new repository link (release), 2023-08-07 by *Guillaume Chervet* +- [3d0aaff](https://github.com/AxaFrance/oidc-client/commit/3d0aaff74fd1b14afe2aa3ec2b8b3c028dd3fe75) - fix(oidc): add more detail on state error, 2023-08-04 by *Guillaume Chervet* +- [faa0da2](https://github.com/AxaFrance/oidc-client/commit/faa0da2235239a0b12e82a070b3f6e2c30572bfa) - fix(readme): some path was broken, 2023-08-04 by *Guillaume Chervet* +- [3713dd6](https://github.com/AxaFrance/oidc-client/commit/3713dd65a6be6ff4a42b1507cd94e904445efb00) - [skip ci] Update version package.json, 2023-08-04 by *GitHub* + + +## v7.2.0 + +- [60ea58b](https://github.com/AxaFrance/oidc-client/commit/60ea58b266c4173e3a92b8637d9abd09cca0ea1a) - feat(oidc-service-worker): copy become manual (#1120) (release), 2023-08-04 by *Guillaume Chervet* +- [c74edeb](https://github.com/AxaFrance/oidc-client/commit/c74edeb0380c726fb861f499ba3811fa7317d343) - [skip ci] Update version package.json, 2023-08-04 by *GitHub* + + +## v7.1.0 + +- [ae8a601](https://github.com/AxaFrance/oidc-client/commit/ae8a60130b4dacfe7a73f6e2262ca1238a07a509) - feat(oidc): update service worker from version (#1121) (release), 2023-08-04 by *Guillaume Chervet* +- [9f986c6](https://github.com/AxaFrance/oidc-client/commit/9f986c6b576c50b9d87d94e2fc5af0c7521c7bdf) - [skip ci] Update version package.json, 2023-08-03 by *GitHub* + + +## v7.0.1 + +- [cd97895](https://github.com/AxaFrance/oidc-client/commit/cd9789520090b27ea905401be6d03fd87f817f76) - fix(oidc): expire_in in string instead of number (#1118) (release), 2023-08-03 by *Guillaume Chervet* +- [e74c0df](https://github.com/AxaFrance/oidc-client/commit/e74c0df57140ca2bd3c7fd631eef39661b1b2b8c) - [skip ci] Update version package.json, 2023-08-01 by *GitHub* + + +## v7.0.0 + +- [9567873](https://github.com/AxaFrance/oidc-client/commit/95678734c0495f80628f99ad3aa284a3014f8bbc) - feat(oidc): rename repository oidc-client (#1115) (release), 2023-08-01 by *Guillaume Chervet* +- [ff61e5d](https://github.com/AxaFrance/oidc-client/commit/ff61e5d5e3387888ce18ec8e99fde0044009f481) - fix(demo): google new link and add navigate button, 2023-07-31 by *Guillaume Chervet* +- [6e9e8bb](https://github.com/AxaFrance/oidc-client/commit/6e9e8bb94db0c52f684ea4c42a81c69f59dd3f2c) - [skip ci] Update version package.json, 2023-07-28 by *GitHub* +- [0d8bc06](https://github.com/AxaFrance/oidc-client/commit/0d8bc0626be0d5d14edca83dacb7367f57d4bb6d) - feat(oidc): rename vanilla-oidc to oidc-client (#1112) (release), 2023-07-28 by *Guillaume Chervet* + + +## v6.26.6 + +- [dab3662](https://github.com/AxaFrance/oidc-client/commit/dab36629bdebed5a3f085d606f313c7a12644e77) - fix build (release), 2023-07-28 by *Guillaume Chervet* + + +## v6.26.5 + +- [48d9db2](https://github.com/AxaFrance/oidc-client/commit/48d9db2f2cffbe74a6fd32b5771f5df0b8314b7f) - test release, 2023-07-28 by *Guillaume Chervet* + + +## v6.26.4 + +- [9c7a143](https://github.com/AxaFrance/oidc-client/commit/9c7a143797cffff1044c13787c6ceaf690fa4c87) - fix build (release), 2023-07-28 by *Guillaume Chervet* + + +## v6.26.3 + +- [04f4900](https://github.com/AxaFrance/oidc-client/commit/04f4900d672e954278e6835bc31c62e4bf8660de) - try fix (release), 2023-07-28 by *Guillaume Chervet* + + +## v6.26.2 + +- [d329ce0](https://github.com/AxaFrance/oidc-client/commit/d329ce0cb013f4877cb401c6ccef316077ce9d09) - fix(ci): add set to replace workspace* (release), 2023-07-28 by *Guillaume Chervet* + + +## v6.26.1 + + + +## v6.26.0 + +- [7eac9e5](https://github.com/AxaFrance/oidc-client/commit/7eac9e5c10175ae6850a72e21e11bac568a01720) - feat(oidc): rename vanilla-oidc to oidc-client (#1112) (release), 2023-07-28 by *Guillaume Chervet* +- [9f25be7](https://github.com/AxaFrance/oidc-client/commit/9f25be794ff6b08d8ca30cc5f27dff554136d163) - refactor(lint): Enable linting on examples, fix lint warnings. (#1111), 2023-07-27 by *Jason Finch* +- [762ca42](https://github.com/AxaFrance/oidc-client/commit/762ca423a2efe946d4213a3c482638a386a5b555) - ci(lint): Move eslint config to root. Add GH workflow to run lint. (#1109), 2023-07-27 by *Jason Finch* +- [6b5ba95](https://github.com/AxaFrance/oidc-client/commit/6b5ba95db3549c4cfd5ea0412c6f0de046256a57) - [skip ci] Update version package.json, 2023-07-24 by *GitHub* + + +## v6.25.6 + +- [288ce99](https://github.com/AxaFrance/oidc-client/commit/288ce9937e6e1cb8c1b7c7f6909ebef8a48f12e5) - fix(react): ajust peerDependencies (release), 2023-07-24 by *Guillaume Chervet* +- [7c86bd7](https://github.com/AxaFrance/oidc-client/commit/7c86bd73d0e880a8ebbdfcad70ed5f2492cc0bc3) - [skip ci] Update version package.json, 2023-07-24 by *GitHub* + + +## v6.25.5 + +- [8786e85](https://github.com/AxaFrance/oidc-client/commit/8786e85190dbc23de4311381b1c59f08673b0436) - fix(ci): github release (release), 2023-07-24 by *Guillaume Chervet* +- [34ac877](https://github.com/AxaFrance/oidc-client/commit/34ac877f2a82c9e048896bec8d077274216b8619) - [skip ci] Update version package.json, 2023-07-24 by *GitHub* + + +## v6.25.4 + +- [9139393](https://github.com/AxaFrance/oidc-client/commit/9139393069142b05708f73a64ee81afdfaf0104f) - fix(oidc): Service Worker improper token revocation when logging out and showAccessToken=true (#1104) (release), 2023-07-24 by *kosciolek* +- [ccc7c42](https://github.com/AxaFrance/oidc-client/commit/ccc7c429cde1da743993d16db17ef343f374f00b) - fix(ci): website and packages psotinstall error when pnpm from root (#1108), 2023-07-24 by *Guillaume Chervet* +- [d0ede07](https://github.com/AxaFrance/oidc-client/commit/d0ede07c1cd1aaf8526917df299d7a308eb7ea9d) - ci(version): Add a period between version alpha|beta and run_number (#1107) (alpha), 2023-07-24 by *Jason Finch* +- [254b9f9](https://github.com/AxaFrance/oidc-client/commit/254b9f945bff154e127782522244378a3a224f94) - refactor(post-install): Alter post-install to not have a dependency on 'cpy' (#1106), 2023-07-24 by *Jason Finch* +- [e04fb4b](https://github.com/AxaFrance/oidc-client/commit/e04fb4b465178e4fe1d1b8e80c41516979e9702f) - chore(ci): invert client and react (alpha), 2023-07-22 by *Guillaume Chervet* + + +## v6.25.3 + +- [e7aaa2f](https://github.com/AxaFrance/oidc-client/commit/e7aaa2f63614c1fc76f2e66e69877147aae37d8e) - [skip ci] Update version package.json, 2023-07-23 by *GitHub* +- [aea4aea](https://github.com/AxaFrance/oidc-client/commit/aea4aea5fda1ef7c7ee6e43f8fc8efb2a0797a58) - chore(ci): invert client and react (alpha), 2023-07-22 by *Guillaume Chervet* + + +## v6.25.2 + +- [26b27a5](https://github.com/AxaFrance/oidc-client/commit/26b27a5d5242ce9bb47530fd48812f21b218c5be) - [skip ci] Update version package.json, 2023-07-22 by *GitHub* +- [612cf26](https://github.com/AxaFrance/oidc-client/commit/612cf26c1fb087c20f7207ae4e6281c2fe9d6a46) - Update package.json (alpha), 2023-07-22 by *Guillaume Chervet* +- [c72ac31](https://github.com/AxaFrance/oidc-client/commit/c72ac31f723d26737f0223a4aefb84c0c9da7045) - [skip ci] Update version package.json, 2023-07-22 by *GitHub* +- [5472e0a](https://github.com/AxaFrance/oidc-client/commit/5472e0a9e510ba14c38bd205be39b732e877353a) - Update package.json (alpha), 2023-07-22 by *Guillaume Chervet* +- [c2c8fd3](https://github.com/AxaFrance/oidc-client/commit/c2c8fd37dee118658bd0186ea18f8554fe4217f9) - [skip ci] Update version package.json, 2023-07-22 by *GitHub* +- [945043c](https://github.com/AxaFrance/oidc-client/commit/945043c39376611ba1e417e24d55607a5a4e861b) - Update package.json (alpha), 2023-07-22 by *Guillaume Chervet* +- [776f0c2](https://github.com/AxaFrance/oidc-client/commit/776f0c22446763d89cd10412c53c964f3dd2bb57) - fix sw package test (alpha), 2023-07-22 by *Guillaume Chervet* +- [41dd0c3](https://github.com/AxaFrance/oidc-client/commit/41dd0c3d5c03e7af05e849fd35d4bc4a13078826) - [skip ci] Update version package.json, 2023-07-22 by *GitHub* +- [b2ed839](https://github.com/AxaFrance/oidc-client/commit/b2ed8393b061d4da8bbb67003f7940aaa7b845d3) - fix package sw remove private (alpha), 2023-07-22 by *Guillaume Chervet* +- [edd5b3d](https://github.com/AxaFrance/oidc-client/commit/edd5b3dd1207ca1683ee0f492914fa514cd2b239) - [skip ci] Update version package.json, 2023-07-22 by *GitHub* +- [d3531a6](https://github.com/AxaFrance/oidc-client/commit/d3531a68b78d48e6150f71d22deba738a15391f3) - fix conflict (alpha), 2023-07-22 by *Guillaume Chervet* +- [852900f](https://github.com/AxaFrance/oidc-client/commit/852900fd1473ac8c07ad298a275430fa91d5fb02) - [skip ci] Update version package.json, 2023-07-22 by *GitHub* +- [8c3e0c9](https://github.com/AxaFrance/oidc-client/commit/8c3e0c99c2507d7a6e198db517fd120cb06f6ac7) - chore(ci): fix duplicated id (alpha), 2023-07-22 by *Guillaume Chervet* +- [4ccbef0](https://github.com/AxaFrance/oidc-client/commit/4ccbef0417543bf2a7395788315298b873327e7a) - chore(ci): add serviceworker (alpha), 2023-07-22 by *Guillaume Chervet* + + +## v6.25.1 + +- [b08f00b](https://github.com/AxaFrance/oidc-client/commit/b08f00bf3d4fa8f798ca812abf1a00f19308df84) - [skip ci] Update version package.json, 2023-07-22 by *GitHub* +- [cf3e31a](https://github.com/AxaFrance/oidc-client/commit/cf3e31af027d60626f1bff9a7c0951db115d11c3) - fix(react): update lock file (alpha), 2023-07-22 by *Guillaume Chervet* +- [e02bc6e](https://github.com/AxaFrance/oidc-client/commit/e02bc6e77114f585e00f7d9d888db1d0a537be88) - chore(ci): fix numversion (alpha), 2023-07-22 by *Guillaume Chervet* + + +## v6.25.0 + +- [1adff41](https://github.com/AxaFrance/oidc-client/commit/1adff41b96d4e3e44a63670f2e6d1de13e202c7a) - [skip ci] Update version package.json, 2023-07-22 by *GitHub* +- [7ba2509](https://github.com/AxaFrance/oidc-client/commit/7ba2509271acefb6ff744fb07a464fd7f9c42064) - chore(ci): invert client and react (alpha), 2023-07-22 by *Guillaume Chervet* +- [4be9aed](https://github.com/AxaFrance/oidc-client/commit/4be9aedde3a81f11aac5f8dfdef4914ce2c0483b) - feat(workspace): Add workspaces to specify build order dependencies in packages. (#1004), 2023-07-22 by *Jason Finch* +- [d337b8b](https://github.com/AxaFrance/oidc-client/commit/d337b8b574936b81a4a6de9d533076a9da3a848b) - chore(ci): add way to publish alpha, beta, release (beta) (#1099), 2023-07-20 by *Guillaume Chervet* + + +## v6.24.27 + +- [2b50407](https://github.com/AxaFrance/oidc-client/commit/2b50407c39bd95fdbbfec2c5f59c7901c189d3ec) - [skip ci] Update version package.json, 2023-07-21 by *GitHub* +- [e68b26b](https://github.com/AxaFrance/oidc-client/commit/e68b26be8ab30eef9aa46e5e4dd029fa5b3818c3) - test (beta), 2023-07-21 by *Guillaume Chervet* +- [4e78bbb](https://github.com/AxaFrance/oidc-client/commit/4e78bbbc4fb6f6728e97ee7a0f517bf8eac72998) - Update npm-publish.yml (alpha), 2023-07-20 by *Guillaume Chervet* +- [8b7eb9b](https://github.com/AxaFrance/oidc-client/commit/8b7eb9bfc29f242132e1cff4952a2342dd610b34) - fix(ci): Update npm-publish.yml (alpha), 2023-07-20 by *Guillaume Chervet* + + +## v6.24.26 + +- [cee3198](https://github.com/AxaFrance/oidc-client/commit/cee3198d3ffde50a71e52a5654907b7f4ac013d9) - fix(ci): lastcomiit (alpha), 2023-07-20 by *Guillaume Chervet* + + +## v6.24.25 + +- [f449785](https://github.com/AxaFrance/oidc-client/commit/f44978588f1697fe38fea68accbca0408ad6f6c6) - fix(ci): version badly injected, 2023-07-20 by *Guillaume Chervet* + + +## v6.24.24 + +- [0a30ab1](https://github.com/AxaFrance/oidc-client/commit/0a30ab1c3ce16df2ee8bb8c7fab4050e6cb1e3f1) - fix(ci): version empty (alpha), 2023-07-20 by *Guillaume Chervet* + + +## v6.24.23 + +- [8ae8b23](https://github.com/AxaFrance/oidc-client/commit/8ae8b23d54c3352221bbca638a8f8ad5d2f70459) - fix(ci): bad variable (alpha), 2023-07-20 by *Guillaume Chervet* +- [8fd627d](https://github.com/AxaFrance/oidc-client/commit/8fd627df3359f24aa2f8a56381b50b2617dc2f53) - chore(ci): add way to publish alpha, beta, release (alpha) (#1099), 2023-07-20 by *Guillaume Chervet* + + +## v6.24.22 + +- [1f8b455](https://github.com/AxaFrance/oidc-client/commit/1f8b455107dda34d267e0a6c898c704de88dfa77) - Merge db00519628cbd0a6f865539245321bcc85570f15 into 3e535c94dc57d59956498bfa0ca9536106039bda, 2023-07-20 by *Guillaume Chervet* +- [db00519](https://github.com/AxaFrance/oidc-client/commit/db00519628cbd0a6f865539245321bcc85570f15) - fix test (alpha), 2023-07-20 by *Guillaume Chervet* + + +## v6.24.21 + +- [40ec599](https://github.com/AxaFrance/oidc-client/commit/40ec5994043d3a8c294e520e10d24bd5f1e8a02f) - Merge 822f9aba2b245872401fa15905e7e256e4adb879 into 3e535c94dc57d59956498bfa0ca9536106039bda, 2023-07-20 by *Guillaume Chervet* +- [822f9ab](https://github.com/AxaFrance/oidc-client/commit/822f9aba2b245872401fa15905e7e256e4adb879) - test (alpha), 2023-07-20 by *Guillaume Chervet* + + +## v6.24.20 + +- [9888924](https://github.com/AxaFrance/oidc-client/commit/9888924541c0754c9dd033972d76c3c854e6ed4d) - Merge 13656ac570b3896db17bcf38f2113ae4443dba17 into 3e535c94dc57d59956498bfa0ca9536106039bda, 2023-07-20 by *Guillaume Chervet* +- [13656ac](https://github.com/AxaFrance/oidc-client/commit/13656ac570b3896db17bcf38f2113ae4443dba17) - test (alpha), 2023-07-20 by *Guillaume Chervet* + + diff --git a/README.md b/README.md new file mode 100644 index 000000000..7e5960073 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# README diff --git a/bin/generate-changelog.sh b/bin/generate-changelog.sh new file mode 100755 index 000000000..81a5d046b --- /dev/null +++ b/bin/generate-changelog.sh @@ -0,0 +1,45 @@ +#!/bin/bash + +num_tags=60 +# Get all tag names in reverse order +tags=(`git tag -l --sort=-creatordate | head -$num_tags`) + +# File to save the log +outfile=CHANGELOG.md + +# Write the header +echo "# Changelog" > $outfile +echo "" >> $outfile + +# Iterate over tags array +for((i=0; i<${#tags[@]}-1; i++)) +do +# current tag +current=${tags[$i]} +# previous tag +previous=${tags[$i+1]} + +# Write header for current tag +echo "## $current" >> $outfile +echo "## $current" +echo "" >> $outfile + +# Get commit hashes: between current and previous tag +hashes=(`git log --pretty=format:"%H" $previous..$current`) + +# Output commit log for each hash +for hash in ${hashes[@]} +do +# Get commit log in desired format. +# You can modify the 'format' as per your need. Please refer 'PRETTY FORMATS' section of git-log man page +log=$(git log -1 --pretty=format:"[%h](https://github.com/AxaFrance/oidc-client/commit/%H) - %s, %ad by *%an*" --date=short $hash) + +# Write formatted log to CHANGELOG.md file +echo "- $log" >> $outfile +echo "- $log" +done + +# Space between two tags +echo "" >> $outfile +echo "" >> $outfile +done diff --git a/changelog-template.hbs b/changelog-template.hbs deleted file mode 100644 index ff4d159ef..000000000 --- a/changelog-template.hbs +++ /dev/null @@ -1,27 +0,0 @@ -### Changelog -All notable changes to this project will be documented in this file. - -{{#each releases}} - {{#if href}} - {{#if major}} - ### [{{title}}]({{href}}) - {{else}} - #### [{{title}}]({{href}}) - {{/if}} - {{else}} - #### {{title}} - {{/if}} - {{#if tag}} - > {{niceDate}} - {{/if}} - {{#each merges}} - - {{message}}{{#if href}} [`#{{id}}`]({{href}}){{/if}} by {{author}} - {{/each}} - {{#each fixes}} - - {{commit.subject}}{{#each fixes}}{{#if href}} [`#{{id}}`]({{href}}) by {{author}}{{/if}}{{/each}} - {{/each}} - {{#each commits}} - - {{subject}}{{#if href}} [`{{shorthash}}`]({{href}}) by {{author}} {{/if}} - {{/each}} - -{{/each}} \ No newline at end of file diff --git a/package.json b/package.json index 239b780dc..a90a7c30d 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@axafr/react-oidc-monorepo", "private": true, - "version": "0.0.0", + "version": "0.0.5", "description": "Root package for the project", "license": "MIT", "workspaces": [ @@ -52,4 +52,4 @@ "node": "16.* || >= 18.0.0" }, "packageManager": "pnpm@8.6.7" -} +} \ No newline at end of file diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 2509fa730..0cf2337cd 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.9.3", + "version": "7.10.12", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 8ba13ebae..6b2a52fa1 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.9.3'; +export default '7.10.12'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index f39ae9c37..82ea13e8d 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.9.3", + "version": "7.10.12", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 8ba13ebae..6b2a52fa1 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.9.3'; +export default '7.10.12'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index e0278884b..ef6d43337 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.9.3", + "version": "7.10.12", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index aa2a30e0b..0f790c5fd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -76,7 +76,7 @@ importers: version: link:../../packages/react-oidc next: specifier: latest - version: 14.0.0(react-dom@18.2.0)(react@18.2.0) + version: 13.4.12(react-dom@18.2.0)(react@18.2.0) react: specifier: latest version: 18.2.0 @@ -1131,7 +1131,7 @@ packages: '@rushstack/ts-command-line': 4.15.1 colors: 1.2.5 lodash: 4.17.21 - resolve: 1.22.2 + resolve: 1.22.3 semver: 7.5.4 source-map: 0.6.1 typescript: 5.0.4 @@ -1169,12 +1169,12 @@ packages: strict-event-emitter: 0.5.1 dev: true - /@next/env@14.0.0: - resolution: {integrity: sha512-cIKhxkfVELB6hFjYsbtEeTus2mwrTC+JissfZYM0n+8Fv+g8ucUfOlm3VEDtwtwydZ0Nuauv3bl0qF82nnCAqA==} + /@next/env@13.4.12: + resolution: {integrity: sha512-RmHanbV21saP/6OEPBJ7yJMuys68cIf8OBBWd7+uj40LdpmswVAwe1uzeuFyUsd6SfeITWT3XnQfn6wULeKwDQ==} dev: false - /@next/swc-darwin-arm64@14.0.0: - resolution: {integrity: sha512-HQKi159jCz4SRsPesVCiNN6tPSAFUkOuSkpJsqYTIlbHLKr1mD6be/J0TvWV6fwJekj81bZV9V/Tgx3C2HO9lA==} + /@next/swc-darwin-arm64@13.4.12: + resolution: {integrity: sha512-deUrbCXTMZ6ZhbOoloqecnUeNpUOupi8SE2tx4jPfNS9uyUR9zK4iXBvH65opVcA/9F5I/p8vDXSYbUlbmBjZg==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] @@ -1182,8 +1182,8 @@ packages: dev: false optional: true - /@next/swc-darwin-x64@14.0.0: - resolution: {integrity: sha512-4YyQLMSaCgX/kgC1jjF3s3xSoBnwHuDhnF6WA1DWNEYRsbOOPWjcYhv8TKhRe2ApdOam+VfQSffC4ZD+X4u1Cg==} + /@next/swc-darwin-x64@13.4.12: + resolution: {integrity: sha512-WRvH7RxgRHlC1yb5oG0ZLx8F7uci9AivM5/HGGv9ZyG2Als8Ij64GC3d+mQ5sJhWjusyU6T6V1WKTUoTmOB0zQ==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] @@ -1191,8 +1191,8 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-gnu@14.0.0: - resolution: {integrity: sha512-io7fMkJ28Glj7SH8yvnlD6naIhRDnDxeE55CmpQkj3+uaA2Hko6WGY2pT5SzpQLTnGGnviK85cy8EJ2qsETj/g==} + /@next/swc-linux-arm64-gnu@13.4.12: + resolution: {integrity: sha512-YEKracAWuxp54tKiAvvq73PUs9lok57cc8meYRibTWe/VdPB2vLgkTVWFcw31YDuRXdEhdX0fWS6Q+ESBhnEig==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -1200,8 +1200,8 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-musl@14.0.0: - resolution: {integrity: sha512-nC2h0l1Jt8LEzyQeSs/BKpXAMe0mnHIMykYALWaeddTqCv5UEN8nGO3BG8JAqW/Y8iutqJsaMe2A9itS0d/r8w==} + /@next/swc-linux-arm64-musl@13.4.12: + resolution: {integrity: sha512-LhJR7/RAjdHJ2Isl2pgc/JaoxNk0KtBgkVpiDJPVExVWA1c6gzY57+3zWuxuyWzTG+fhLZo2Y80pLXgIJv7g3g==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -1209,8 +1209,8 @@ packages: dev: false optional: true - /@next/swc-linux-x64-gnu@14.0.0: - resolution: {integrity: sha512-Wf+WjXibJQ7hHXOdNOmSMW5bxeJHVf46Pwb3eLSD2L76NrytQlif9NH7JpHuFlYKCQGfKfgSYYre5rIfmnSwQw==} + /@next/swc-linux-x64-gnu@13.4.12: + resolution: {integrity: sha512-1DWLL/B9nBNiQRng+1aqs3OaZcxC16Nf+mOnpcrZZSdyKHek3WQh6j/fkbukObgNGwmCoVevLUa/p3UFTTqgqg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -1218,8 +1218,8 @@ packages: dev: false optional: true - /@next/swc-linux-x64-musl@14.0.0: - resolution: {integrity: sha512-WTZb2G7B+CTsdigcJVkRxfcAIQj7Lf0ipPNRJ3vlSadU8f0CFGv/ST+sJwF5eSwIe6dxKoX0DG6OljDBaad+rg==} + /@next/swc-linux-x64-musl@13.4.12: + resolution: {integrity: sha512-kEAJmgYFhp0VL+eRWmUkVxLVunn7oL9Mdue/FS8yzRBVj7Z0AnIrHpTIeIUl1bbdQq1VaoOztnKicAjfkLTRCQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -1227,8 +1227,8 @@ packages: dev: false optional: true - /@next/swc-win32-arm64-msvc@14.0.0: - resolution: {integrity: sha512-7R8/x6oQODmNpnWVW00rlWX90sIlwluJwcvMT6GXNIBOvEf01t3fBg0AGURNKdTJg2xNuP7TyLchCL7Lh2DTiw==} + /@next/swc-win32-arm64-msvc@13.4.12: + resolution: {integrity: sha512-GMLuL/loR6yIIRTnPRY6UGbLL9MBdw2anxkOnANxvLvsml4F0HNIgvnU3Ej4BjbqMTNjD4hcPFdlEow4XHPdZA==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] @@ -1236,8 +1236,8 @@ packages: dev: false optional: true - /@next/swc-win32-ia32-msvc@14.0.0: - resolution: {integrity: sha512-RLK1nELvhCnxaWPF07jGU4x3tjbyx2319q43loZELqF0+iJtKutZ+Lk8SVmf/KiJkYBc7Cragadz7hb3uQvz4g==} + /@next/swc-win32-ia32-msvc@13.4.12: + resolution: {integrity: sha512-PhgNqN2Vnkm7XaMdRmmX0ZSwZXQAtamBVSa9A/V1dfKQCV1rjIZeiy/dbBnVYGdj63ANfsOR/30XpxP71W0eww==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] @@ -1245,8 +1245,8 @@ packages: dev: false optional: true - /@next/swc-win32-x64-msvc@14.0.0: - resolution: {integrity: sha512-g6hLf1SUko+hnnaywQQZzzb3BRecQsoKkF3o/C+F+dOA4w/noVAJngUVkfwF0+2/8FzNznM7ofM6TGZO9svn7w==} + /@next/swc-win32-x64-msvc@13.4.12: + resolution: {integrity: sha512-Z+56e/Ljt0bUs+T+jPjhFyxYBcdY2RIq9ELFU+qAMQMteHo7ymbV7CKmlcX59RI9C4YzN8PgMgLyAoi916b5HA==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -1340,7 +1340,7 @@ packages: fs-extra: 7.0.1 import-lazy: 4.0.0 jju: 1.4.0 - resolve: 1.22.2 + resolve: 1.22.3 semver: 7.5.4 z-schema: 5.0.5 dev: true @@ -1348,7 +1348,7 @@ packages: /@rushstack/rig-package@0.4.0: resolution: {integrity: sha512-FnM1TQLJYwSiurP6aYSnansprK5l8WUK8VG38CmAaZs29ZeL1msjK0AP1VS4ejD33G0kE/2cpsPsS9jDenBMxw==} dependencies: - resolve: 1.22.2 + resolve: 1.22.3 strip-json-comments: 3.1.1 dev: true @@ -1365,8 +1365,8 @@ packages: resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} dev: true - /@swc/helpers@0.5.2: - resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==} + /@swc/helpers@0.5.1: + resolution: {integrity: sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg==} dependencies: tslib: 2.6.1 dev: false @@ -4505,40 +4505,44 @@ packages: resolution: {integrity: sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==} dev: true - /next@14.0.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-J0jHKBJpB9zd4+c153sair0sz44mbaCHxggs8ryVXSFBuBqJ8XdE9/ozoV85xGh2VnSjahwntBZZgsihL9QznA==} - engines: {node: '>=18.17.0'} + /next@13.4.12(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-eHfnru9x6NRmTMcjQp6Nz0J4XH9OubmzOa7CkWL+AUrUxpibub3vWwttjduu9No16dug1kq04hiUUpo7J3m3Xw==} + engines: {node: '>=16.8.0'} hasBin: true peerDependencies: '@opentelemetry/api': ^1.1.0 + fibers: '>= 3.1.0' react: ^18.2.0 react-dom: ^18.2.0 sass: ^1.3.0 peerDependenciesMeta: '@opentelemetry/api': optional: true + fibers: + optional: true sass: optional: true dependencies: - '@next/env': 14.0.0 - '@swc/helpers': 0.5.2 + '@next/env': 13.4.12 + '@swc/helpers': 0.5.1 busboy: 1.6.0 caniuse-lite: 1.0.30001517 - postcss: 8.4.31 + postcss: 8.4.14 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) styled-jsx: 5.1.1(react@18.2.0) watchpack: 2.4.0 + zod: 3.21.4 optionalDependencies: - '@next/swc-darwin-arm64': 14.0.0 - '@next/swc-darwin-x64': 14.0.0 - '@next/swc-linux-arm64-gnu': 14.0.0 - '@next/swc-linux-arm64-musl': 14.0.0 - '@next/swc-linux-x64-gnu': 14.0.0 - '@next/swc-linux-x64-musl': 14.0.0 - '@next/swc-win32-arm64-msvc': 14.0.0 - '@next/swc-win32-ia32-msvc': 14.0.0 - '@next/swc-win32-x64-msvc': 14.0.0 + '@next/swc-darwin-arm64': 13.4.12 + '@next/swc-darwin-x64': 13.4.12 + '@next/swc-linux-arm64-gnu': 13.4.12 + '@next/swc-linux-arm64-musl': 13.4.12 + '@next/swc-linux-x64-gnu': 13.4.12 + '@next/swc-linux-x64-musl': 13.4.12 + '@next/swc-win32-arm64-msvc': 13.4.12 + '@next/swc-win32-ia32-msvc': 13.4.12 + '@next/swc-win32-x64-msvc': 13.4.12 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros @@ -4909,6 +4913,15 @@ packages: deprecated: You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1 dev: true + /postcss@8.4.14: + resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.6 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: false + /postcss@8.4.27: resolution: {integrity: sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==} engines: {node: ^10 || ^12 || >=14} @@ -4925,6 +4938,7 @@ packages: nanoid: 3.3.6 picocolors: 1.0.0 source-map-js: 1.0.2 + dev: true /prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} @@ -6337,3 +6351,7 @@ packages: optionalDependencies: commander: 9.5.0 dev: true + + /zod@3.21.4: + resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==} + dev: false From 8a31551add5997caf1c975b7ab0fbba37be871b8 Mon Sep 17 00:00:00 2001 From: GitHub Date: Wed, 29 Nov 2023 17:08:28 +0000 Subject: [PATCH 077/440] [skip ci] Update version package.json --- CHANGELOG.md | 12 ++++++------ packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ab9790f86..5e8c9f9bb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## v7.10.12 + +- [84e0ed0](https://github.com/AxaFrance/oidc-client/commit/84e0ed001fe2d028e4dfaa423a56a35c86713446) - Update npm-publish.yml (release), 2023-11-29 by *Guillaume Chervet* +- [5994dd5](https://github.com/AxaFrance/oidc-client/commit/5994dd5fb3cd7bd124d895d1db78b7d6e0949f3a) - [skip ci] Update version package.json, 2023-11-29 by *GitHub* + + ## v7.10.11 - [4460d89](https://github.com/AxaFrance/oidc-client/commit/4460d893d74258dd2052674ee29694037c372247) - Update generate-changelog.sh (release), 2023-11-29 by *Guillaume Chervet* @@ -370,9 +376,3 @@ - [822f9ab](https://github.com/AxaFrance/oidc-client/commit/822f9aba2b245872401fa15905e7e256e4adb879) - test (alpha), 2023-07-20 by *Guillaume Chervet* -## v6.24.20 - -- [9888924](https://github.com/AxaFrance/oidc-client/commit/9888924541c0754c9dd033972d76c3c854e6ed4d) - Merge 13656ac570b3896db17bcf38f2113ae4443dba17 into 3e535c94dc57d59956498bfa0ca9536106039bda, 2023-07-20 by *Guillaume Chervet* -- [13656ac](https://github.com/AxaFrance/oidc-client/commit/13656ac570b3896db17bcf38f2113ae4443dba17) - test (alpha), 2023-07-20 by *Guillaume Chervet* - - diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 0cf2337cd..ed0862c34 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.10.12", + "version": "7.11.0", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 6b2a52fa1..b176a586f 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.10.12'; +export default '7.11.0'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 82ea13e8d..953e3f674 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.10.12", + "version": "7.11.0", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 6b2a52fa1..b176a586f 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.10.12'; +export default '7.11.0'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index ef6d43337..f9c35087d 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.10.12", + "version": "7.11.0", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 2fdfcb5ec727f0c6f5f86c4648b95ba4f265fc57 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Wed, 29 Nov 2023 18:09:53 +0100 Subject: [PATCH 078/440] Update README.md (#1210) --- README.md | 180 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 179 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 7e5960073..e4316d072 100644 --- a/README.md +++ b/README.md @@ -1 +1,179 @@ -# README +# @axa-fr/oidc-client + +[![Continuous Integration](https://github.com/AxaFrance/react-oidc/actions/workflows/npm-publish.yml/badge.svg)](https://github.com/AxaFrance/react-oidc/actions/workflows/npm-publish.yml) +[![Quality Gate](https://sonarcloud.io/api/project_badges/measure?project=AxaGuilDEv_react-oidc&metric=alert_status)](https://sonarcloud.io/dashboard?id=AxaGuilDEv_react-oidc) [![Reliability](https://sonarcloud.io/api/project_badges/measure?project=AxaGuilDEv_react-oidc&metric=reliability_rating)](https://sonarcloud.io/component_measures?id=AxaGuilDEv_react-oidc&metric=reliability_rating) [![Security](https://sonarcloud.io/api/project_badges/measure?project=AxaGuilDEv_react-oidc&metric=security_rating)](https://sonarcloud.io/component_measures?id=AxaGuilDEv_react-oidc&metric=security_rating) [![Code Coverage](https://sonarcloud.io/api/project_badges/measure?project=AxaGuilDEv_react-oidc&metric=coverage)](https://sonarcloud.io/component_measures?id=AxaGuilDEv_react-oidc&metric=Coverage) [![Twitter](https://img.shields.io/twitter/follow/GuildDEvOpen?style=social)](https://twitter.com/intent/follow?screen_name=GuildDEvOpen) + + +

+ Sample React Oicd +

+ +- [About](#about) +- [Getting Started](#getting-started) +- [Run The Demos](#run-the-demos) +- [How It Works](#how-it-works) +- Packages + - [`@axa-fr/oidc-client`](./packages/oidc-client#readme.md) [![npm version](https://badge.fury.io/js/%40axa-fr%2Foidc-client.svg)](https://badge.fury.io/js/%40axa-fr%2Foidc-client) + - [`@axa-fr/react-oidc`](./packages/react-oidc#readme.md) [![npm version](https://badge.fury.io/js/%40axa-fr%2Freact-oidc.svg)](https://badge.fury.io/js/%40axa-fr%2Freact-oidc) + - `@axa-fr/svelte-oidc` : we are looking for contributor + - `@axa-fr/vue-oidc` : we are looking for contributor + - `@axa-fr/angular-oidc` : we are looking for contributor +- [FAQ](#FAQ) +- [Migrations](#migrations) +- [Contribute](#contribute) + +## About + +**@axa-fr/oidc-client** the lightest and securest library to manage authentication with OpenID Connect (OIDC) and OAuth2 protocol. It is compatible with all OIDC providers. +**@axa-fr/oidc-client** is a pure javascript library. It works with any JavaScript framework or library. +**@axa-fr/react-oidc** is for **React** (compatible next.js, etc.), we expect soon to provide one for **Vue**, **Angular** and **Svelte**. + +Demos: +- Try the react demo at https://black-rock-0dc6b0d03.1.azurestaticapps.net/ (most advanced) +- Try the pure javascript demo at https://icy-glacier-004ab4303.2.azurestaticapps.net/ + + +**@axa-fr/oidc-client** is: + +- **Secure** : + - With Demonstrating Proof of Possession (DPoP), your access_token and refresh_token are not usable outside your browser context (big protection) + - With the use of Service Worker, your tokens (refresh_token and/or access_token) are not accessible to the JavaScript client code (if you follow good practices from [`FAQ`](https://github.com/AxaFrance/oidc-client/blob/main/FAQ.md) section) + - OIDC using client side Code Credential Grant with pkce only +- **Lightweight** : Unpacked Size on npm is **274 kB** +- **Simple** + - refresh_token and access_token are auto refreshed in background + - with the use of the Service Worker, you do not need to inject the access_token in every fetch, you have only to configure OidcTrustedDomains.js file +- **Multiple Authentication** : + - You can authenticate many times to the same provider with different scope (for example you can acquire a new 'payment' scope for a payment) + - You can authenticate to multiple different providers inside the same SPA (single page application) website +- **Flexible** : + - Work with Service Worker (more secure) and without for older browser (less secure). + - You can disable Service Worker if you want (but less secure) and just use SessionStorage or LocalStorage mode. + +Works perfectly well with: + +- [Auth0](https://auth0.com/) +- [Duende Identity Server](https://duendesoftware.com/) +- Azure AD +- Google +- AWS +- [Keycloak](https://www.keycloak.org/) +- etc., all OIDC providers + + +## Getting Started + +### Getting Started with @axa-fr/oidc-client + +```sh +npm install @axa-fr/oidc-client --save + +# To install or update OidcServiceWorker.js file, you can run +node ./node_modules/@axa-fr/react-oidc/bin/copy-service-worker-files.mjs public + +# If you have a "public" folder, the 2 files will be created : +# ./public/OidcServiceWorker.js <-- will be updated at each "npm install" +# ./public/OidcTrustedDomains.js <-- won't be updated if already exist +``` + +WARNING : If you use Service Worker mode, the OidcServiceWorker.js file should always be up to date with the version of the library. You may setup a postinstall script in your package.json file to update it at each npm install. For example : +```sh + "scripts": { + ... + "postinstall": "node ./node_modules/@axa-fr/react-oidc/bin/copy-service-worker-files.mjs public" + }, +``` + +More documentation : + +- [`@axa-fr/oidc-client`](./packages/oidc-client#readme) + +### Getting Started with @axa-fr/react-oidc + +```sh +npm install @axa-fr/react-oidc --save + +# To install or update OidcServiceWorker.js file, you can run +node ./node_modules/@axa-fr/react-oidc/bin/copy-service-worker-files.mjs public + +# If you have a "public" folder, the 2 files will be created : +# ./public/OidcServiceWorker.js <-- will be updated at each "npm install" +# ./public/OidcTrustedDomains.js <-- won't be updated if already exist +``` + +WARNING : If you use Service Worker mode, the OidcServiceWorker.js file should always be up to date with the version of the library. You may setup a postinstall script in your package.json file to update it at each npm install. For example : +```sh + "scripts": { + ... + "postinstall": "node ./node_modules/@axa-fr/react-oidc/bin/copy-service-worker-files.mjs public" + }, +``` + +More documentation : + +- [`@axa-fr/react-oidc`](./packages/react-oidc#readme) + +## Run The Demos + +```sh +git clone https://github.com/AxaFrance/oidc-client.git + +cd oidc-client +pnpm install + +# oidc client demo +cd examples/oidc-client-demo +pnpm install +pnpm start +# then navigate to http://localhost:5174 + +# react vite demo +cd examples/react-oidc-demo +pnpm install +pnpm start +# then navigate to http://localhost:4200 + +# react NextJS demo +cd examples/nextjs-demo +pnpm install +pnpm run dev +# then navigate to http://localhost:3001 +``` + +## How It Works + +

+ Schema Authorization Code Grant with pcke flow on the using service worker +
+ The service worker catch access_token and refresh_token that will never be accessible to the client. +

+ + +These components encapsulate the use of "`@axa-fr/oidc-client`" in order to hide workflow complexity. +Internally for "`@axa-fr/react-oidc`", native History API is used to be router library agnostic. + +More information about OIDC : + +- [French : Augmentez la sécurité et la simplicité de votre Système d’Information OpenID Connect](https://medium.com/just-tech-it-now/augmentez-la-s%C3%A9curit%C3%A9-et-la-simplicit%C3%A9-de-votre-syst%C3%A8me-dinformation-avec-oauth-2-0-cf0732d71284) +- [English : Increase the security and simplicity of your information system with OpenID Connect](https://medium.com/just-tech-it-now/increase-the-security-and-simplicity-of-your-information-system-with-openid-connect-fa8c26b99d6d) + +## FAQ + +- Frequented Asked Question [`FAQ`](./FAQ.md) + +## Migrations + +- Migrating from v3 to v4 [`guide`](./MIGRATION_GUIDE_V3_TO_V4.md) +- Migrating from v3 to v5 [`guide`](./MIGRATION_GUIDE_V3_TO_V5.md) +- Migrating from v4 to v5 [`guide`](./MIGRATION_GUIDE_V4_TO_V5.md) +- Migrating from v5 to v6 [`guide`](./MIGRATION_GUIDE_V5_TO_V6.md) +- Migrating from v6 to v7 [`guide`](./MIGRATION_GUIDE_V6_TO_V7.md) + +## Contribute + +- [How to run the solution and to contribute](./CONTRIBUTING.md) +- [Please respect our code of conduct](./CODE_OF_CONDUCT.md) From 23217fe3439500412eca9facc368e1ef5dfcb939 Mon Sep 17 00:00:00 2001 From: Douglas Zaltron Date: Wed, 29 Nov 2023 14:21:40 -0300 Subject: [PATCH 079/440] feat(oidc-client): export OidcClient instance for client application (#1211) (release) This commit introduces the exportation of the OidcClient instance, making it available for use in the client-side application. The addition ensures seamless integration of authentication mechanisms and improves the overall flow of user authentication and authorization processes. Key Changes: - Exported the OidcClient instance from the relevant module. - Ensured compatibility and smooth integration with the client application. Example of use without needing to use hooks in some cases ``` import { OidcClient } from '@axa-fr/react-oidc' export const getTokens = () => { const { tokens } = OidcClient.get() return tokens } ``` --- packages/react-oidc/src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-oidc/src/index.ts b/packages/react-oidc/src/index.ts index 1970a986f..f967e4d8d 100644 --- a/packages/react-oidc/src/index.ts +++ b/packages/react-oidc/src/index.ts @@ -9,4 +9,4 @@ export type { OidcConfiguration, StringMap, } from '@axa-fr/oidc-client'; -export { type OidcUserInfo, TokenRenewMode } from '@axa-fr/oidc-client'; +export { type OidcUserInfo, TokenRenewMode, OidcClient } from '@axa-fr/oidc-client'; From 9f0c8513a65550a4baee3c143806f072c20cc1c4 Mon Sep 17 00:00:00 2001 From: GitHub Date: Wed, 29 Nov 2023 17:24:26 +0000 Subject: [PATCH 080/440] [skip ci] Update version package.json --- CHANGELOG.md | 11 +++++------ packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 6 files changed, 10 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5e8c9f9bb..517974513 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## v7.11.0 + +- [6751b5c](https://github.com/AxaFrance/oidc-client/commit/6751b5c3f0e1265e35ac9b4b20cb673657eea6b4) - feat(ci): add auto changelog (release), 2023-11-29 by *Guillaume Chervet* + + ## v7.10.12 - [84e0ed0](https://github.com/AxaFrance/oidc-client/commit/84e0ed001fe2d028e4dfaa423a56a35c86713446) - Update npm-publish.yml (release), 2023-11-29 by *Guillaume Chervet* @@ -370,9 +375,3 @@ - [db00519](https://github.com/AxaFrance/oidc-client/commit/db00519628cbd0a6f865539245321bcc85570f15) - fix test (alpha), 2023-07-20 by *Guillaume Chervet* -## v6.24.21 - -- [40ec599](https://github.com/AxaFrance/oidc-client/commit/40ec5994043d3a8c294e520e10d24bd5f1e8a02f) - Merge 822f9aba2b245872401fa15905e7e256e4adb879 into 3e535c94dc57d59956498bfa0ca9536106039bda, 2023-07-20 by *Guillaume Chervet* -- [822f9ab](https://github.com/AxaFrance/oidc-client/commit/822f9aba2b245872401fa15905e7e256e4adb879) - test (alpha), 2023-07-20 by *Guillaume Chervet* - - diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index ed0862c34..51a47bf49 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.11.0", + "version": "7.12.0", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index b176a586f..bd8c75936 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.11.0'; +export default '7.12.0'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 953e3f674..d67921d0c 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.11.0", + "version": "7.12.0", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index b176a586f..bd8c75936 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.11.0'; +export default '7.12.0'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index f9c35087d..50b8b070e 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.11.0", + "version": "7.12.0", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 2b5aa6aba61bb35c7ae95102a34a8517c37607e5 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Wed, 29 Nov 2023 21:06:07 +0100 Subject: [PATCH 081/440] fix(ci): changelog in another commit (release) --- .github/workflows/npm-publish.yml | 36 ++++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 10 deletions(-) diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml index bdf3e4d88..96a18d566 100644 --- a/.github/workflows/npm-publish.yml +++ b/.github/workflows/npm-publish.yml @@ -56,6 +56,8 @@ jobs: working-directory: ./packages/oidc-client build: + permissions: + contents: write environment: react-oidc runs-on: ubuntu-latest if: needs.skip_ci.outputs.canSkip != 'true' && !github.event.pull_request.head.repo.fork @@ -256,18 +258,32 @@ jobs: chmod +x ./bin/generate-changelog.sh ./bin/generate-changelog.sh - - - name: Commit updates package.json - uses: stefanzweifel/git-auto-commit-action@v4 + - name: Commit and push if: github.ref == 'refs/heads/main' && steps.which_tag.outputs.tag == 'release' - with: - commit_message: "[skip ci] Update version package.json" - commit_user_name: GitHub - commit_user_email: github-action@bot.com - commit_author: GitHub - push_options: '--force' - + run: | + git config --global user.name "GitHub" + git config --global user.email "github-action@bot.com" + git add . + git commit -m "[skip ci] Update to version ${{ steps.tag.outputs.new_version }} in package.json" + git tag ${{ steps.tag.outputs.new_version }} + git push --set-upstream origin "HEAD:main" --follow-tags -f + chmod +x ./bin/generate-changelog.sh + ./bin/generate-changelog.sh + git add . + git commit -m "[skip ci] Generate changelog to version ${{ steps.tag.outputs.new_version }}" + git push --set-upstream origin "HEAD:main" --follow-tags -f + + #- name: Commit updates package.json + # uses: stefanzweifel/git-auto-commit-action@v4 + # if: github.ref == 'refs/heads/main' && steps.which_tag.outputs.tag == 'release' + # with: + # commit_message: "[skip ci] Update version package.json" + # commit_user_name: GitHub + # commit_user_email: github-action@bot.com + # commit_author: GitHub + # push_options: '--force' + - name: SonarCloud Scan uses: sonarsource/sonarcloud-github-action@master if: github.event.pull_request.head.repo.full_name == github.repository && !github.event.pull_request.head.repo.fork From b621b379eadbe0beae1c1962b2c89b286cbc9a6f Mon Sep 17 00:00:00 2001 From: GitHub Date: Wed, 29 Nov 2023 20:10:17 +0000 Subject: [PATCH 082/440] [skip ci] Update to version 7.12.1 in package.json --- CHANGELOG.md | 153 +++++++++--------- .../oidc-client-service-worker/package.json | 2 +- .../oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 6 files changed, 85 insertions(+), 78 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 517974513..90b5153fc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,82 +1,15 @@ # Changelog -## v7.11.0 - -- [6751b5c](https://github.com/AxaFrance/oidc-client/commit/6751b5c3f0e1265e35ac9b4b20cb673657eea6b4) - feat(ci): add auto changelog (release), 2023-11-29 by *Guillaume Chervet* - - -## v7.10.12 - -- [84e0ed0](https://github.com/AxaFrance/oidc-client/commit/84e0ed001fe2d028e4dfaa423a56a35c86713446) - Update npm-publish.yml (release), 2023-11-29 by *Guillaume Chervet* -- [5994dd5](https://github.com/AxaFrance/oidc-client/commit/5994dd5fb3cd7bd124d895d1db78b7d6e0949f3a) - [skip ci] Update version package.json, 2023-11-29 by *GitHub* - - -## v7.10.11 - -- [4460d89](https://github.com/AxaFrance/oidc-client/commit/4460d893d74258dd2052674ee29694037c372247) - Update generate-changelog.sh (release), 2023-11-29 by *Guillaume Chervet* -- [69eadc6](https://github.com/AxaFrance/oidc-client/commit/69eadc60c92bc799d0a2d65bd6b841f98bd7d78c) - [skip ci] Update version package.json, 2023-11-29 by *GitHub* - - -## v7.10.10 - -- [83f0c10](https://github.com/AxaFrance/oidc-client/commit/83f0c1092c48987eb8ad149100f3b44b4e7bc50b) - Update npm-publish.yml (release), 2023-11-29 by *Guillaume Chervet* - - -## v7.10.9 - -- [da29bee](https://github.com/AxaFrance/oidc-client/commit/da29beef9bf3a6993ca862b258254cd894977a74) - Update generate-changelog.sh (release), 2023-11-29 by *Guillaume Chervet* -- [e1230bb](https://github.com/AxaFrance/oidc-client/commit/e1230bb4f1cfb57fea4998da768bd3b7676e78da) - [skip ci] Update version package.json, 2023-11-29 by *GitHub* - - -## v7.10.8 - -- [9bbfaa8](https://github.com/AxaFrance/oidc-client/commit/9bbfaa8dc34271692a278178539862e19fd76b6c) - Update generate-changelog.sh (release), 2023-11-29 by *Guillaume Chervet* -- [09ece5b](https://github.com/AxaFrance/oidc-client/commit/09ece5bea1128ad24847036521aac2f27f7df261) - [skip ci] Update version package.json, 2023-11-29 by *GitHub* - - -## v7.10.7 - -- [82ed281](https://github.com/AxaFrance/oidc-client/commit/82ed28183d4efea9c1835f4eed9a25c254ecd8a5) - Update generate-changelog.sh (release) (#1203), 2023-11-29 by *Guillaume Chervet* -- [f41eafd](https://github.com/AxaFrance/oidc-client/commit/f41eafd59c1cd6b04f889db18d1e9db72e96d7af) - [skip ci] Update version package.json, 2023-11-29 by *GitHub* - - -## v7.10.6 - -- [a51e099](https://github.com/AxaFrance/oidc-client/commit/a51e099cb0d1f9fc2734d0fc73eb3bfefc77caf1) - Update generate-changelog.sh (release), 2023-11-29 by *Guillaume Chervet* -- [34f9291](https://github.com/AxaFrance/oidc-client/commit/34f9291104c3911f6a9e33dc23d5373bdc867ba2) - [skip ci] Update version package.json, 2023-11-29 by *GitHub* - - -## v7.10.5 - -- [c1f7494](https://github.com/AxaFrance/oidc-client/commit/c1f7494aaa58f50d22fe51d763b32f3914a515ed) - fix (release), 2023-11-29 by *Guillaume Chervet* -- [7e3af1f](https://github.com/AxaFrance/oidc-client/commit/7e3af1f9b0ffcf9714333b445577c04595a9135f) - [skip ci] Update version package.json, 2023-11-29 by *GitHub* - - -## v7.10.4 - -- [edb89b3](https://github.com/AxaFrance/oidc-client/commit/edb89b390eefce93dbaa02c813d388bbaf1088e2) - fix (release), 2023-11-29 by *Guillaume Chervet* - - -## v7.10.3 - -- [15f1414](https://github.com/AxaFrance/oidc-client/commit/15f1414d8699b9f35cfa977a204ae7bfb73cbbea) - fix(ci): update (release), 2023-11-29 by *Guillaume Chervet* -- [742c643](https://github.com/AxaFrance/oidc-client/commit/742c6430518c9cc64e0735e2203d659ab2098dc8) - [skip ci] Update version package.json, 2023-11-29 by *GitHub* - - -## v7.10.2 - -- [99ca1c3](https://github.com/AxaFrance/oidc-client/commit/99ca1c3b022109a3c0712d0cafb436ee6eab20d0) - fix(ci): test (release), 2023-11-29 by *Guillaume Chervet* - - -## v7.10.1 +## v7.12.0 -- [ff1f841](https://github.com/AxaFrance/oidc-client/commit/ff1f841044101b99d8d896828015d732a383e437) - fix(ci): ammend (release), 2023-11-29 by *Guillaume Chervet* -- [a194c5b](https://github.com/AxaFrance/oidc-client/commit/a194c5bf7addede93cc56319bafaf07fd73243ad) - fix(ci): autochangelog, 2023-11-29 by *Guillaume Chervet* +- [23217fe](https://github.com/AxaFrance/oidc-client/commit/23217fe3439500412eca9facc368e1ef5dfcb939) - feat(oidc-client): export OidcClient instance for client application (#1211) (release), 2023-11-29 by *Douglas Zaltron* +- [2fdfcb5](https://github.com/AxaFrance/oidc-client/commit/2fdfcb5ec727f0c6f5f86c4648b95ba4f265fc57) - Update README.md (#1210), 2023-11-29 by *Guillaume Chervet* +- [8a31551](https://github.com/AxaFrance/oidc-client/commit/8a31551add5997caf1c975b7ab0fbba37be871b8) - [skip ci] Update version package.json, 2023-11-29 by *GitHub* -## v7.10.0 +## v7.11.0 -- [3d1af45](https://github.com/AxaFrance/oidc-client/commit/3d1af45133e41c981c4a35c4b19298a3b0f1d555) - feat(ci): add auto changelog (release), 2023-11-29 by *Guillaume Chervet* +- [6751b5c](https://github.com/AxaFrance/oidc-client/commit/6751b5c3f0e1265e35ac9b4b20cb673657eea6b4) - feat(ci): add auto changelog (release), 2023-11-29 by *Guillaume Chervet* - [56bde67](https://github.com/AxaFrance/oidc-client/commit/56bde67566f8203e9d62ae6e8b722c86a7b63cae) - doc(readme): Update README.md, 2023-11-27 by *Guillaume Chervet* - [790da5a](https://github.com/AxaFrance/oidc-client/commit/790da5a60cc7fb07ca82feb994c8d12ff3e01b69) - [skip ci] Update version package.json, 2023-11-24 by *GitHub* @@ -375,3 +308,77 @@ - [db00519](https://github.com/AxaFrance/oidc-client/commit/db00519628cbd0a6f865539245321bcc85570f15) - fix test (alpha), 2023-07-20 by *Guillaume Chervet* +## v6.24.21 + +- [40ec599](https://github.com/AxaFrance/oidc-client/commit/40ec5994043d3a8c294e520e10d24bd5f1e8a02f) - Merge 822f9aba2b245872401fa15905e7e256e4adb879 into 3e535c94dc57d59956498bfa0ca9536106039bda, 2023-07-20 by *Guillaume Chervet* +- [822f9ab](https://github.com/AxaFrance/oidc-client/commit/822f9aba2b245872401fa15905e7e256e4adb879) - test (alpha), 2023-07-20 by *Guillaume Chervet* + + +## v6.24.20 + +- [9888924](https://github.com/AxaFrance/oidc-client/commit/9888924541c0754c9dd033972d76c3c854e6ed4d) - Merge 13656ac570b3896db17bcf38f2113ae4443dba17 into 3e535c94dc57d59956498bfa0ca9536106039bda, 2023-07-20 by *Guillaume Chervet* +- [13656ac](https://github.com/AxaFrance/oidc-client/commit/13656ac570b3896db17bcf38f2113ae4443dba17) - test (alpha), 2023-07-20 by *Guillaume Chervet* + + +## v6.24.19 + +- [3c64173](https://github.com/AxaFrance/oidc-client/commit/3c641732e7787729a07735408098fc103ca9c66e) - Merge fa8c6c964011739e9297a31ec186c2c657f205fd into 3e535c94dc57d59956498bfa0ca9536106039bda, 2023-07-20 by *Guillaume Chervet* +- [fa8c6c9](https://github.com/AxaFrance/oidc-client/commit/fa8c6c964011739e9297a31ec186c2c657f205fd) - fix text (alpha), 2023-07-20 by *Guillaume Chervet* +- [391f15a](https://github.com/AxaFrance/oidc-client/commit/391f15ae075ad8e0960bfad39068928405f748cf) - test (alpha), 2023-07-20 by *Guillaume Chervet* + + +## v6.24.18 + +- [3334870](https://github.com/AxaFrance/oidc-client/commit/3334870d3a281bf049b09f655c6ce8e587af8d35) - Merge bc91071c5f9c3dae1f74fc0b314acc984e7aea71 into 3e535c94dc57d59956498bfa0ca9536106039bda, 2023-07-20 by *Guillaume Chervet* +- [bc91071](https://github.com/AxaFrance/oidc-client/commit/bc91071c5f9c3dae1f74fc0b314acc984e7aea71) - fix test (alpha), 2023-07-20 by *Guillaume Chervet* +- [dc1a8bf](https://github.com/AxaFrance/oidc-client/commit/dc1a8bfd997684b00b41c05196c470a60ab85555) - fix(ci): test (alpha), 2023-07-20 by *Guillaume Chervet* + + +## v6.24.17 + +- [e7bb2bf](https://github.com/AxaFrance/oidc-client/commit/e7bb2bf34af537756219d876a209297488996987) - Merge 290ee618c032f20b583ff624571ca53b9cd7a0b6 into 3e535c94dc57d59956498bfa0ca9536106039bda, 2023-07-20 by *Guillaume Chervet* +- [290ee61](https://github.com/AxaFrance/oidc-client/commit/290ee618c032f20b583ff624571ca53b9cd7a0b6) - fix(ci): test (alpha), 2023-07-20 by *Guillaume Chervet* + + +## v6.24.16 + +- [0c914ec](https://github.com/AxaFrance/oidc-client/commit/0c914ec8c7d815bb4f314eb61342d31edc68b100) - Merge 7fd9f9bf1f9c383b6b08d498f4743e0f8cbc0b65 into 3e535c94dc57d59956498bfa0ca9536106039bda, 2023-07-20 by *Guillaume Chervet* +- [7fd9f9b](https://github.com/AxaFrance/oidc-client/commit/7fd9f9bf1f9c383b6b08d498f4743e0f8cbc0b65) - fix(ci): test (alpha), 2023-07-20 by *Guillaume Chervet* + + +## v6.24.15 + +- [7c0e6c7](https://github.com/AxaFrance/oidc-client/commit/7c0e6c749b9c049accefbf29e36aa606db66ea87) - Merge eae183a91d6570b7ea23fe85ada9035dfcfbb83a into 3e535c94dc57d59956498bfa0ca9536106039bda, 2023-07-20 by *Guillaume Chervet* +- [eae183a](https://github.com/AxaFrance/oidc-client/commit/eae183a91d6570b7ea23fe85ada9035dfcfbb83a) - ssssssssss, 2023-07-20 by *Guillaume Chervet* + + +## v6.24.14 + +- [f5ff779](https://github.com/AxaFrance/oidc-client/commit/f5ff779691943e5d6030b1bd387ffc8a302d3ce6) - Merge 69818e2f7a63cb3168e82e1d0e0d1db434db972a into 3e535c94dc57d59956498bfa0ca9536106039bda, 2023-07-20 by *Guillaume Chervet* +- [69818e2](https://github.com/AxaFrance/oidc-client/commit/69818e2f7a63cb3168e82e1d0e0d1db434db972a) - fix(ct): test (alpha), 2023-07-20 by *Guillaume Chervet* + + +## v6.24.13 + +- [27ba555](https://github.com/AxaFrance/oidc-client/commit/27ba555288f614cf8da7b1be01f3936e1bc1a56e) - Merge bdebcb00841e592e87cab9a6bec9ae683fb30e32 into 3e535c94dc57d59956498bfa0ca9536106039bda, 2023-07-20 by *Guillaume Chervet* +- [bdebcb0](https://github.com/AxaFrance/oidc-client/commit/bdebcb00841e592e87cab9a6bec9ae683fb30e32) - fix(ci): test (alpha), 2023-07-20 by *Guillaume Chervet* + + +## v6.24.12 + +- [35b7f96](https://github.com/AxaFrance/oidc-client/commit/35b7f9605aebfd93d7ef18fe20306b9e7ae53e4b) - Merge ca81becd76688d17bf0959908ffb194614fe29c4 into 3e535c94dc57d59956498bfa0ca9536106039bda, 2023-07-20 by *Guillaume Chervet* +- [ca81bec](https://github.com/AxaFrance/oidc-client/commit/ca81becd76688d17bf0959908ffb194614fe29c4) - fix(ci): test (alpha), 2023-07-20 by *Guillaume Chervet* + + +## v6.24.11 + +- [d99b335](https://github.com/AxaFrance/oidc-client/commit/d99b335f24c80e9a752b88275c7831617a68401f) - Merge b1cc89793d89a3bf821d917a99f0b7519526b030 into 3e535c94dc57d59956498bfa0ca9536106039bda, 2023-07-20 by *Guillaume Chervet* +- [b1cc897](https://github.com/AxaFrance/oidc-client/commit/b1cc89793d89a3bf821d917a99f0b7519526b030) - fix(ci): test (alpha), 2023-07-20 by *Guillaume Chervet* + + +## v6.24.10 + +- [3fc3e9e](https://github.com/AxaFrance/oidc-client/commit/3fc3e9e2dd5a0c7758d53b1c87570d79906a410c) - Merge 2306e7a6b66ac207993f42b83d146566d2b55a83 into 3e535c94dc57d59956498bfa0ca9536106039bda, 2023-07-20 by *Guillaume Chervet* +- [2306e7a](https://github.com/AxaFrance/oidc-client/commit/2306e7a6b66ac207993f42b83d146566d2b55a83) - fix(ci): test (alpha), 2023-07-20 by *Guillaume Chervet* + + diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 51a47bf49..add139522 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.12.0", + "version": "7.12.1", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index bd8c75936..efdccb4c9 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.12.0'; +export default '7.12.1'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index d67921d0c..a37f09ec1 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.12.0", + "version": "7.12.1", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index bd8c75936..efdccb4c9 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.12.0'; +export default '7.12.1'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 50b8b070e..43b76771a 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.12.0", + "version": "7.12.1", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 537816054f75c853550654dcec295a8cff2abb5c Mon Sep 17 00:00:00 2001 From: GitHub Date: Wed, 29 Nov 2023 20:10:18 +0000 Subject: [PATCH 083/440] [skip ci] Generate changelog to version 7.12.1 --- CHANGELOG.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 90b5153fc..e5f066a63 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## 7.12.1 + +- [b621b37](https://github.com/AxaFrance/oidc-client/commit/b621b379eadbe0beae1c1962b2c89b286cbc9a6f) - [skip ci] Update to version 7.12.1 in package.json, 2023-11-29 by *GitHub* +- [2b5aa6a](https://github.com/AxaFrance/oidc-client/commit/2b5aa6aba61bb35c7ae95102a34a8517c37607e5) - fix(ci): changelog in another commit (release), 2023-11-29 by *Guillaume Chervet* +- [9f0c851](https://github.com/AxaFrance/oidc-client/commit/9f0c8513a65550a4baee3c143806f072c20cc1c4) - [skip ci] Update version package.json, 2023-11-29 by *GitHub* + + ## v7.12.0 - [23217fe](https://github.com/AxaFrance/oidc-client/commit/23217fe3439500412eca9facc368e1ef5dfcb939) - feat(oidc-client): export OidcClient instance for client application (#1211) (release), 2023-11-29 by *Douglas Zaltron* @@ -376,9 +383,3 @@ - [b1cc897](https://github.com/AxaFrance/oidc-client/commit/b1cc89793d89a3bf821d917a99f0b7519526b030) - fix(ci): test (alpha), 2023-07-20 by *Guillaume Chervet* -## v6.24.10 - -- [3fc3e9e](https://github.com/AxaFrance/oidc-client/commit/3fc3e9e2dd5a0c7758d53b1c87570d79906a410c) - Merge 2306e7a6b66ac207993f42b83d146566d2b55a83 into 3e535c94dc57d59956498bfa0ca9536106039bda, 2023-07-20 by *Guillaume Chervet* -- [2306e7a](https://github.com/AxaFrance/oidc-client/commit/2306e7a6b66ac207993f42b83d146566d2b55a83) - fix(ci): test (alpha), 2023-07-20 by *Guillaume Chervet* - - From cd575e716f4fbcb1ba09a76a1530a3ae23f08599 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Wed, 29 Nov 2023 21:18:01 +0100 Subject: [PATCH 084/440] fix(ci): last clean and test (release) --- .github/workflows/npm-publish.yml | 10 ---------- package.json | 2 +- 2 files changed, 1 insertion(+), 11 deletions(-) diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml index 96a18d566..a61d52661 100644 --- a/.github/workflows/npm-publish.yml +++ b/.github/workflows/npm-publish.yml @@ -273,16 +273,6 @@ jobs: git add . git commit -m "[skip ci] Generate changelog to version ${{ steps.tag.outputs.new_version }}" git push --set-upstream origin "HEAD:main" --follow-tags -f - - #- name: Commit updates package.json - # uses: stefanzweifel/git-auto-commit-action@v4 - # if: github.ref == 'refs/heads/main' && steps.which_tag.outputs.tag == 'release' - # with: - # commit_message: "[skip ci] Update version package.json" - # commit_user_name: GitHub - # commit_user_email: github-action@bot.com - # commit_author: GitHub - # push_options: '--force' - name: SonarCloud Scan uses: sonarsource/sonarcloud-github-action@master diff --git a/package.json b/package.json index a90a7c30d..bd198e384 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@axafr/react-oidc-monorepo", "private": true, - "version": "0.0.5", + "version": "0.0.0", "description": "Root package for the project", "license": "MIT", "workspaces": [ From 0c32c73fcff7a0bb625604a49b6acd131d4a5b24 Mon Sep 17 00:00:00 2001 From: GitHub Date: Wed, 29 Nov 2023 20:20:55 +0000 Subject: [PATCH 085/440] [skip ci] Update to version 7.12.2 in package.json --- CHANGELOG.md | 3 +-- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 6 files changed, 6 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e5f066a63..a38a78fc7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,7 @@ # Changelog -## 7.12.1 +## v7.12.1 -- [b621b37](https://github.com/AxaFrance/oidc-client/commit/b621b379eadbe0beae1c1962b2c89b286cbc9a6f) - [skip ci] Update to version 7.12.1 in package.json, 2023-11-29 by *GitHub* - [2b5aa6a](https://github.com/AxaFrance/oidc-client/commit/2b5aa6aba61bb35c7ae95102a34a8517c37607e5) - fix(ci): changelog in another commit (release), 2023-11-29 by *Guillaume Chervet* - [9f0c851](https://github.com/AxaFrance/oidc-client/commit/9f0c8513a65550a4baee3c143806f072c20cc1c4) - [skip ci] Update version package.json, 2023-11-29 by *GitHub* diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index add139522..465ce90c3 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.12.1", + "version": "7.12.2", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index efdccb4c9..11d3e1929 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.12.1'; +export default '7.12.2'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index a37f09ec1..b69db236d 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.12.1", + "version": "7.12.2", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index efdccb4c9..11d3e1929 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.12.1'; +export default '7.12.2'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 43b76771a..1bd8eadc3 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.12.1", + "version": "7.12.2", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 738fde94353a581efb9089da6cab2212e3d6930b Mon Sep 17 00:00:00 2001 From: GitHub Date: Wed, 29 Nov 2023 20:20:56 +0000 Subject: [PATCH 086/440] [skip ci] Generate changelog to version 7.12.2 --- CHANGELOG.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a38a78fc7..c872ce0fe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 7.12.2 + +- [0c32c73](https://github.com/AxaFrance/oidc-client/commit/0c32c73fcff7a0bb625604a49b6acd131d4a5b24) - [skip ci] Update to version 7.12.2 in package.json, 2023-11-29 by *GitHub* +- [cd575e7](https://github.com/AxaFrance/oidc-client/commit/cd575e716f4fbcb1ba09a76a1530a3ae23f08599) - fix(ci): last clean and test (release), 2023-11-29 by *Guillaume Chervet* +- [5378160](https://github.com/AxaFrance/oidc-client/commit/537816054f75c853550654dcec295a8cff2abb5c) - [skip ci] Generate changelog to version 7.12.1, 2023-11-29 by *GitHub* +- [b621b37](https://github.com/AxaFrance/oidc-client/commit/b621b379eadbe0beae1c1962b2c89b286cbc9a6f) - [skip ci] Update to version 7.12.1 in package.json, 2023-11-29 by *GitHub* + + ## v7.12.1 - [2b5aa6a](https://github.com/AxaFrance/oidc-client/commit/2b5aa6aba61bb35c7ae95102a34a8517c37607e5) - fix(ci): changelog in another commit (release), 2023-11-29 by *Guillaume Chervet* @@ -376,9 +384,3 @@ - [ca81bec](https://github.com/AxaFrance/oidc-client/commit/ca81becd76688d17bf0959908ffb194614fe29c4) - fix(ci): test (alpha), 2023-07-20 by *Guillaume Chervet* -## v6.24.11 - -- [d99b335](https://github.com/AxaFrance/oidc-client/commit/d99b335f24c80e9a752b88275c7831617a68401f) - Merge b1cc89793d89a3bf821d917a99f0b7519526b030 into 3e535c94dc57d59956498bfa0ca9536106039bda, 2023-07-20 by *Guillaume Chervet* -- [b1cc897](https://github.com/AxaFrance/oidc-client/commit/b1cc89793d89a3bf821d917a99f0b7519526b030) - fix(ci): test (alpha), 2023-07-20 by *Guillaume Chervet* - - From 59a9c468b4fa9eb9694b1f3921eb545daf1f58f8 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Wed, 29 Nov 2023 21:31:13 +0100 Subject: [PATCH 087/440] fix(ci): exclude author GitHub from changelog (release) --- bin/generate-changelog.sh | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/bin/generate-changelog.sh b/bin/generate-changelog.sh index 81a5d046b..0c6151267 100755 --- a/bin/generate-changelog.sh +++ b/bin/generate-changelog.sh @@ -1,6 +1,8 @@ #!/bin/bash num_tags=60 +excluded_author="GitHub" + # Get all tag names in reverse order tags=(`git tag -l --sort=-creatordate | head -$num_tags`) @@ -30,13 +32,19 @@ hashes=(`git log --pretty=format:"%H" $previous..$current`) # Output commit log for each hash for hash in ${hashes[@]} do -# Get commit log in desired format. -# You can modify the 'format' as per your need. Please refer 'PRETTY FORMATS' section of git-log man page -log=$(git log -1 --pretty=format:"[%h](https://github.com/AxaFrance/oidc-client/commit/%H) - %s, %ad by *%an*" --date=short $hash) - -# Write formatted log to CHANGELOG.md file -echo "- $log" >> $outfile -echo "- $log" + # Check the author of the commit + author=$(git log -1 --pretty=format:"%an" $hash) + + # Exclude commits from the specified author + if [ "$author" != "$excluded_author" ]; then + # Get commit log in the desired format. + # You can modify the 'format' as per your need. Please refer 'PRETTY FORMATS' section of git-log man page + log=$(git log -1 --pretty=format:"[%h](https://github.com/AxaFrance/oidc-client/commit/%H) - %s, %ad by *%an*" --date=short $hash) + + # Write formatted log to CHANGELOG.md file + echo "- $log" >> $outfile + echo "- $log" + fi done # Space between two tags From 4e5d1dc1340ae276bd92c31a6dd5c2dd522ad505 Mon Sep 17 00:00:00 2001 From: GitHub Date: Wed, 29 Nov 2023 20:34:48 +0000 Subject: [PATCH 088/440] [skip ci] Update to version 7.12.3 in package.json --- CHANGELOG.md | 44 +------------------ .../oidc-client-service-worker/package.json | 2 +- .../oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 6 files changed, 6 insertions(+), 48 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c872ce0fe..d33bd1b5c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,50 +1,41 @@ # Changelog -## 7.12.2 +## v7.12.2 -- [0c32c73](https://github.com/AxaFrance/oidc-client/commit/0c32c73fcff7a0bb625604a49b6acd131d4a5b24) - [skip ci] Update to version 7.12.2 in package.json, 2023-11-29 by *GitHub* - [cd575e7](https://github.com/AxaFrance/oidc-client/commit/cd575e716f4fbcb1ba09a76a1530a3ae23f08599) - fix(ci): last clean and test (release), 2023-11-29 by *Guillaume Chervet* -- [5378160](https://github.com/AxaFrance/oidc-client/commit/537816054f75c853550654dcec295a8cff2abb5c) - [skip ci] Generate changelog to version 7.12.1, 2023-11-29 by *GitHub* -- [b621b37](https://github.com/AxaFrance/oidc-client/commit/b621b379eadbe0beae1c1962b2c89b286cbc9a6f) - [skip ci] Update to version 7.12.1 in package.json, 2023-11-29 by *GitHub* ## v7.12.1 - [2b5aa6a](https://github.com/AxaFrance/oidc-client/commit/2b5aa6aba61bb35c7ae95102a34a8517c37607e5) - fix(ci): changelog in another commit (release), 2023-11-29 by *Guillaume Chervet* -- [9f0c851](https://github.com/AxaFrance/oidc-client/commit/9f0c8513a65550a4baee3c143806f072c20cc1c4) - [skip ci] Update version package.json, 2023-11-29 by *GitHub* ## v7.12.0 - [23217fe](https://github.com/AxaFrance/oidc-client/commit/23217fe3439500412eca9facc368e1ef5dfcb939) - feat(oidc-client): export OidcClient instance for client application (#1211) (release), 2023-11-29 by *Douglas Zaltron* - [2fdfcb5](https://github.com/AxaFrance/oidc-client/commit/2fdfcb5ec727f0c6f5f86c4648b95ba4f265fc57) - Update README.md (#1210), 2023-11-29 by *Guillaume Chervet* -- [8a31551](https://github.com/AxaFrance/oidc-client/commit/8a31551add5997caf1c975b7ab0fbba37be871b8) - [skip ci] Update version package.json, 2023-11-29 by *GitHub* ## v7.11.0 - [6751b5c](https://github.com/AxaFrance/oidc-client/commit/6751b5c3f0e1265e35ac9b4b20cb673657eea6b4) - feat(ci): add auto changelog (release), 2023-11-29 by *Guillaume Chervet* - [56bde67](https://github.com/AxaFrance/oidc-client/commit/56bde67566f8203e9d62ae6e8b722c86a7b63cae) - doc(readme): Update README.md, 2023-11-27 by *Guillaume Chervet* -- [790da5a](https://github.com/AxaFrance/oidc-client/commit/790da5a60cc7fb07ca82feb994c8d12ff3e01b69) - [skip ci] Update version package.json, 2023-11-24 by *GitHub* ## v7.9.3 - [a80844c](https://github.com/AxaFrance/oidc-client/commit/a80844c2668066b083009043f1dd94fa196e1f18) - fix(service-worker): make sure URL is normalized when comparing with token endpoint and revocation endpoint (#1198) (release), 2023-11-24 by *meesvandongen* - [bf19dd0](https://github.com/AxaFrance/oidc-client/commit/bf19dd0cc975ea4524b0f68f9315625b3789801b) - fix(oidc-client): tokens refresh conflict multiple tabs (alpha), 2023-11-17 by *Guillaume Chervet* -- [216adc7](https://github.com/AxaFrance/oidc-client/commit/216adc79007264915747edf3ff07171cac456759) - [skip ci] Update version package.json, 2023-11-17 by *GitHub* ## v7.9.2 - [5085e05](https://github.com/AxaFrance/oidc-client/commit/5085e05beb4c7a88fad1df61e11213b68672e7d9) - fix(sevice-worker): add URL normalization for getCurrentDatabaseDomain endpoints comparison (release) (#1196), 2023-11-17 by *meesvandongen* -- [77361cf](https://github.com/AxaFrance/oidc-client/commit/77361cfb1c8f2f0eed9c38ba15e32f3bbe0f4095) - [skip ci] Update version package.json, 2023-11-13 by *GitHub* ## v7.9.1 - [7e0cb29](https://github.com/AxaFrance/oidc-client/commit/7e0cb297587e314451321c3ddd1b0e5f7e7e6c0e) - fix(logout): okta tokens null (release) (#1188), 2023-11-13 by *Guillaume Chervet* -- [2413503](https://github.com/AxaFrance/oidc-client/commit/24135038510ada4b9eecffae1494693ef9347a07) - [skip ci] Update version package.json, 2023-11-12 by *GitHub* ## v7.9.0 @@ -53,19 +44,16 @@ - [c54c7b9](https://github.com/AxaFrance/oidc-client/commit/c54c7b9f3447c0474b460649eb315c13f5f8b1da) - fix(service-worker): Reclaming all clients from SW after hard reload (#1149), 2023-11-12 by *VladimirPlatonenko* - [dbcfec4](https://github.com/AxaFrance/oidc-client/commit/dbcfec46798b2137154dd33f31bf842f6b7730b8) - feat(oidc-client): enhance service worker flexibility (alpha) (#1180), 2023-11-12 by *Guillaume Chervet* - [9549b9a](https://github.com/AxaFrance/oidc-client/commit/9549b9ae613d3cf357cb4b760fc8cc9e0af80c44) - doc(oidc-client): typo in method name, 2023-11-07 by *Guillaume Chervet* -- [1a12a19](https://github.com/AxaFrance/oidc-client/commit/1a12a19a54924f0941a960b47fca8b4c169256a0) - [skip ci] Update version package.json, 2023-11-06 by *GitHub* ## v7.8.0 - [1684abb](https://github.com/AxaFrance/oidc-client/commit/1684abba7d982ecbd2f30610eb140e2ce4549814) - feat(oidc-client): move fetch to oidc-client (#1175) (release), 2023-11-06 by *Guillaume Chervet* -- [b4cee5a](https://github.com/AxaFrance/oidc-client/commit/b4cee5aec8365ba2b000742001c717f1d543011b) - [skip ci] Update version package.json, 2023-10-29 by *GitHub* ## v7.7.3 - [ac7f37b](https://github.com/AxaFrance/oidc-client/commit/ac7f37be28883edbe539eff02d0a6a054b2aab14) - build(npm): bump msw from 1.2.2 to 2.0.0 (#1165), 2023-10-29 by *dependabot[bot]* -- [1b4bc07](https://github.com/AxaFrance/oidc-client/commit/1b4bc0782c39a8f797de224f74073d4860672cb6) - [skip ci] Update version package.json, 2023-10-25 by *GitHub* ## v7.7.2 @@ -76,33 +64,28 @@ ## v7.7.1 - [07d266b](https://github.com/AxaFrance/oidc-client/commit/07d266b32b275038176a407036a338624d2bed47) - build(npm): bump next from 13.4.12 to 13.5.6 (#1158), 2023-10-25 by *dependabot[bot]* -- [03a6570](https://github.com/AxaFrance/oidc-client/commit/03a6570bb09a98686e67f17b57ee7f7b1849db2c) - [skip ci] Update version package.json, 2023-10-19 by *GitHub* ## v7.7.0 - [ec5ba27](https://github.com/AxaFrance/oidc-client/commit/ec5ba27f463c513e4d476621f684d0dcccd34470) - feat(oidc): make location injectable (release) (#1155), 2023-10-19 by *Guillaume Chervet* - [8f24b11](https://github.com/AxaFrance/oidc-client/commit/8f24b119613fef5d7214826528bdb04c931a1986) - doc(faq): Update FAQ.md (#1151), 2023-10-13 by *Mateusz Popielarz* -- [4f9b3c0](https://github.com/AxaFrance/oidc-client/commit/4f9b3c0b767d4b955223febcc833e6ff47e997ef) - [skip ci] Update version package.json, 2023-09-21 by *GitHub* ## v7.6.0 - [3e0e554](https://github.com/AxaFrance/oidc-client/commit/3e0e5546ec756b4a9ddad695e4e2368c5721175f) - feat(service-worker): add to trusted type (#1142) (release), 2023-09-21 by *Guillaume Chervet* -- [79b3889](https://github.com/AxaFrance/oidc-client/commit/79b3889a3441b5bf95f980db7c2ae6aed60da8da) - [skip ci] Update version package.json, 2023-09-20 by *GitHub* ## v7.5.1 - [60d9c4e](https://github.com/AxaFrance/oidc-client/commit/60d9c4e68622f81ecceaf480de21d4646ae909f1) - fix(oidc): clean link with service worker (#1141) (release), 2023-09-20 by *Guillaume Chervet* -- [2e5b856](https://github.com/AxaFrance/oidc-client/commit/2e5b85670e7929a0b216fe695999a8cddcd2d3a8) - [skip ci] Update version package.json, 2023-09-19 by *GitHub* ## v7.5.0 - [ff7ac6a](https://github.com/AxaFrance/oidc-client/commit/ff7ac6ae7defbd84067b4084222430ef07f15713) - feat(oidc): add dpop (#1139) (release), 2023-09-19 by *Guillaume Chervet* - [1980813](https://github.com/AxaFrance/oidc-client/commit/1980813234a63e13353b8e5623982e714b42ac12) - feat(demo): hack iframe unregister serviceworker (#1137), 2023-09-14 by *Guillaume Chervet* -- [8165fab](https://github.com/AxaFrance/oidc-client/commit/8165fab52b89ce20946378c5173783ef06f014ef) - [skip ci] Update version package.json, 2023-09-07 by *GitHub* ## v7.4.1 @@ -114,31 +97,26 @@ ## v7.4.0 - [d0dfde4](https://github.com/AxaFrance/oidc-client/commit/d0dfde47e27125248e5af7e9d6c12bfbe1e3ec60) - feat(oidc+serviceworker): increase security preventing sw unresgistration during silent signin (#1134) (release), 2023-09-05 by *Guillaume Chervet* -- [9a05b9f](https://github.com/AxaFrance/oidc-client/commit/9a05b9f13a7d429f044bf84d57af64d356999955) - [skip ci] Update version package.json, 2023-08-25 by *GitHub* ## v7.3.4 - [6d371ff](https://github.com/AxaFrance/oidc-client/commit/6d371ff1ce909ae40ef2f44a145bdcd322ca9d90) - fix(oidc-service-worker): gracefull timeout on firefox (release) (#1132), 2023-08-25 by *Guillaume Chervet* -- [e004e32](https://github.com/AxaFrance/oidc-client/commit/e004e32dbafd06c766429903fe6cdd74d37b9bd2) - [skip ci] Update version package.json, 2023-08-15 by *GitHub* ## v7.3.3 - [e4e7409](https://github.com/AxaFrance/oidc-client/commit/e4e74091a8a6fadb64429dcccbd43331af62f920) - fix(oidc): parent instead of top for iframe allow app inside iframe (#1130) (release), 2023-08-15 by *Guillaume Chervet* -- [28e21ac](https://github.com/AxaFrance/oidc-client/commit/28e21acd8fbda1a7190917a80239b595fa5f2f36) - [skip ci] Update version package.json, 2023-08-15 by *GitHub* ## v7.3.2 - [790ec46](https://github.com/AxaFrance/oidc-client/commit/790ec468355967462b9bfce40196e9336efed0d7) - fix(oidc): allow service worker to chrome 70 (release), 2023-08-15 by *Guillaume Chervet* -- [bb7de00](https://github.com/AxaFrance/oidc-client/commit/bb7de0060ea81fa4206a5696a5479100f0c64898) - [skip ci] Update version package.json, 2023-08-08 by *GitHub* ## v7.3.1 - [c2564f9](https://github.com/AxaFrance/oidc-client/commit/c2564f9ef6de2122962cfb4a8e0f9195aa688d84) - fix(all): copy of service worker files (release), 2023-08-08 by *Guillaume Chervet* -- [0bc3398](https://github.com/AxaFrance/oidc-client/commit/0bc3398f09fd3bf6dff5a6443d5d42f0a26454bf) - [skip ci] Update version package.json, 2023-08-08 by *GitHub* ## v7.3.0 @@ -146,14 +124,12 @@ - [282c0f7](https://github.com/AxaFrance/oidc-client/commit/282c0f72ab7741f24468b2278466eb307d1fa0ce) - feat(oidc+serviceworker): add property setAccessTokenToNavigateRequests + service_worker_convert_all_requests_to_cors moved to TrustedDomains.js (#1123) (release), 2023-08-08 by *Guillaume Chervet* - [c94163d](https://github.com/AxaFrance/oidc-client/commit/c94163d02f5947761d00bd5e18df6749106d6f3d) - doc(FAQ): add "Does Service Worker is mandatory ?", 2023-08-08 by *Guillaume Chervet* - [7ffcde4](https://github.com/AxaFrance/oidc-client/commit/7ffcde465f5f4cbba4b39e0da43dee34d4ec37d9) - doc(readme): update images urls, 2023-08-08 by *Guillaume Chervet* -- [32b2861](https://github.com/AxaFrance/oidc-client/commit/32b286181436129e6d15e0e166108d1f0d4d5641) - [skip ci] Update version package.json, 2023-08-07 by *GitHub* ## v7.2.2 - [e0cad22](https://github.com/AxaFrance/oidc-client/commit/e0cad22179fb1d9e641fbbf14b879ea2d2d78c3a) - fix(faq): update faq (release), 2023-08-07 by *Guillaume Chervet* - [a5d2e58](https://github.com/AxaFrance/oidc-client/commit/a5d2e5892cf456225618f55602c87c654cdad62c) - fix(oidc+serviceworker): add more log detail on token validation, 2023-08-07 by *Guillaume Chervet* -- [ad3a73b](https://github.com/AxaFrance/oidc-client/commit/ad3a73b9a65c942e2f3aee61516581613844a5ec) - [skip ci] Update version package.json, 2023-08-07 by *GitHub* ## v7.2.1 @@ -161,32 +137,27 @@ - [0e52c56](https://github.com/AxaFrance/oidc-client/commit/0e52c56e1d747aa17ee2bf3005893a8d67a03ab3) - fix(package.json): update new repository link (release), 2023-08-07 by *Guillaume Chervet* - [3d0aaff](https://github.com/AxaFrance/oidc-client/commit/3d0aaff74fd1b14afe2aa3ec2b8b3c028dd3fe75) - fix(oidc): add more detail on state error, 2023-08-04 by *Guillaume Chervet* - [faa0da2](https://github.com/AxaFrance/oidc-client/commit/faa0da2235239a0b12e82a070b3f6e2c30572bfa) - fix(readme): some path was broken, 2023-08-04 by *Guillaume Chervet* -- [3713dd6](https://github.com/AxaFrance/oidc-client/commit/3713dd65a6be6ff4a42b1507cd94e904445efb00) - [skip ci] Update version package.json, 2023-08-04 by *GitHub* ## v7.2.0 - [60ea58b](https://github.com/AxaFrance/oidc-client/commit/60ea58b266c4173e3a92b8637d9abd09cca0ea1a) - feat(oidc-service-worker): copy become manual (#1120) (release), 2023-08-04 by *Guillaume Chervet* -- [c74edeb](https://github.com/AxaFrance/oidc-client/commit/c74edeb0380c726fb861f499ba3811fa7317d343) - [skip ci] Update version package.json, 2023-08-04 by *GitHub* ## v7.1.0 - [ae8a601](https://github.com/AxaFrance/oidc-client/commit/ae8a60130b4dacfe7a73f6e2262ca1238a07a509) - feat(oidc): update service worker from version (#1121) (release), 2023-08-04 by *Guillaume Chervet* -- [9f986c6](https://github.com/AxaFrance/oidc-client/commit/9f986c6b576c50b9d87d94e2fc5af0c7521c7bdf) - [skip ci] Update version package.json, 2023-08-03 by *GitHub* ## v7.0.1 - [cd97895](https://github.com/AxaFrance/oidc-client/commit/cd9789520090b27ea905401be6d03fd87f817f76) - fix(oidc): expire_in in string instead of number (#1118) (release), 2023-08-03 by *Guillaume Chervet* -- [e74c0df](https://github.com/AxaFrance/oidc-client/commit/e74c0df57140ca2bd3c7fd631eef39661b1b2b8c) - [skip ci] Update version package.json, 2023-08-01 by *GitHub* ## v7.0.0 - [9567873](https://github.com/AxaFrance/oidc-client/commit/95678734c0495f80628f99ad3aa284a3014f8bbc) - feat(oidc): rename repository oidc-client (#1115) (release), 2023-08-01 by *Guillaume Chervet* - [ff61e5d](https://github.com/AxaFrance/oidc-client/commit/ff61e5d5e3387888ce18ec8e99fde0044009f481) - fix(demo): google new link and add navigate button, 2023-07-31 by *Guillaume Chervet* -- [6e9e8bb](https://github.com/AxaFrance/oidc-client/commit/6e9e8bb94db0c52f684ea4c42a81c69f59dd3f2c) - [skip ci] Update version package.json, 2023-07-28 by *GitHub* - [0d8bc06](https://github.com/AxaFrance/oidc-client/commit/0d8bc0626be0d5d14edca83dacb7367f57d4bb6d) - feat(oidc): rename vanilla-oidc to oidc-client (#1112) (release), 2023-07-28 by *Guillaume Chervet* @@ -224,19 +195,16 @@ - [7eac9e5](https://github.com/AxaFrance/oidc-client/commit/7eac9e5c10175ae6850a72e21e11bac568a01720) - feat(oidc): rename vanilla-oidc to oidc-client (#1112) (release), 2023-07-28 by *Guillaume Chervet* - [9f25be7](https://github.com/AxaFrance/oidc-client/commit/9f25be794ff6b08d8ca30cc5f27dff554136d163) - refactor(lint): Enable linting on examples, fix lint warnings. (#1111), 2023-07-27 by *Jason Finch* - [762ca42](https://github.com/AxaFrance/oidc-client/commit/762ca423a2efe946d4213a3c482638a386a5b555) - ci(lint): Move eslint config to root. Add GH workflow to run lint. (#1109), 2023-07-27 by *Jason Finch* -- [6b5ba95](https://github.com/AxaFrance/oidc-client/commit/6b5ba95db3549c4cfd5ea0412c6f0de046256a57) - [skip ci] Update version package.json, 2023-07-24 by *GitHub* ## v6.25.6 - [288ce99](https://github.com/AxaFrance/oidc-client/commit/288ce9937e6e1cb8c1b7c7f6909ebef8a48f12e5) - fix(react): ajust peerDependencies (release), 2023-07-24 by *Guillaume Chervet* -- [7c86bd7](https://github.com/AxaFrance/oidc-client/commit/7c86bd73d0e880a8ebbdfcad70ed5f2492cc0bc3) - [skip ci] Update version package.json, 2023-07-24 by *GitHub* ## v6.25.5 - [8786e85](https://github.com/AxaFrance/oidc-client/commit/8786e85190dbc23de4311381b1c59f08673b0436) - fix(ci): github release (release), 2023-07-24 by *Guillaume Chervet* -- [34ac877](https://github.com/AxaFrance/oidc-client/commit/34ac877f2a82c9e048896bec8d077274216b8619) - [skip ci] Update version package.json, 2023-07-24 by *GitHub* ## v6.25.4 @@ -250,38 +218,29 @@ ## v6.25.3 -- [e7aaa2f](https://github.com/AxaFrance/oidc-client/commit/e7aaa2f63614c1fc76f2e66e69877147aae37d8e) - [skip ci] Update version package.json, 2023-07-23 by *GitHub* - [aea4aea](https://github.com/AxaFrance/oidc-client/commit/aea4aea5fda1ef7c7ee6e43f8fc8efb2a0797a58) - chore(ci): invert client and react (alpha), 2023-07-22 by *Guillaume Chervet* ## v6.25.2 -- [26b27a5](https://github.com/AxaFrance/oidc-client/commit/26b27a5d5242ce9bb47530fd48812f21b218c5be) - [skip ci] Update version package.json, 2023-07-22 by *GitHub* - [612cf26](https://github.com/AxaFrance/oidc-client/commit/612cf26c1fb087c20f7207ae4e6281c2fe9d6a46) - Update package.json (alpha), 2023-07-22 by *Guillaume Chervet* -- [c72ac31](https://github.com/AxaFrance/oidc-client/commit/c72ac31f723d26737f0223a4aefb84c0c9da7045) - [skip ci] Update version package.json, 2023-07-22 by *GitHub* - [5472e0a](https://github.com/AxaFrance/oidc-client/commit/5472e0a9e510ba14c38bd205be39b732e877353a) - Update package.json (alpha), 2023-07-22 by *Guillaume Chervet* -- [c2c8fd3](https://github.com/AxaFrance/oidc-client/commit/c2c8fd37dee118658bd0186ea18f8554fe4217f9) - [skip ci] Update version package.json, 2023-07-22 by *GitHub* - [945043c](https://github.com/AxaFrance/oidc-client/commit/945043c39376611ba1e417e24d55607a5a4e861b) - Update package.json (alpha), 2023-07-22 by *Guillaume Chervet* - [776f0c2](https://github.com/AxaFrance/oidc-client/commit/776f0c22446763d89cd10412c53c964f3dd2bb57) - fix sw package test (alpha), 2023-07-22 by *Guillaume Chervet* -- [41dd0c3](https://github.com/AxaFrance/oidc-client/commit/41dd0c3d5c03e7af05e849fd35d4bc4a13078826) - [skip ci] Update version package.json, 2023-07-22 by *GitHub* - [b2ed839](https://github.com/AxaFrance/oidc-client/commit/b2ed8393b061d4da8bbb67003f7940aaa7b845d3) - fix package sw remove private (alpha), 2023-07-22 by *Guillaume Chervet* -- [edd5b3d](https://github.com/AxaFrance/oidc-client/commit/edd5b3dd1207ca1683ee0f492914fa514cd2b239) - [skip ci] Update version package.json, 2023-07-22 by *GitHub* - [d3531a6](https://github.com/AxaFrance/oidc-client/commit/d3531a68b78d48e6150f71d22deba738a15391f3) - fix conflict (alpha), 2023-07-22 by *Guillaume Chervet* -- [852900f](https://github.com/AxaFrance/oidc-client/commit/852900fd1473ac8c07ad298a275430fa91d5fb02) - [skip ci] Update version package.json, 2023-07-22 by *GitHub* - [8c3e0c9](https://github.com/AxaFrance/oidc-client/commit/8c3e0c99c2507d7a6e198db517fd120cb06f6ac7) - chore(ci): fix duplicated id (alpha), 2023-07-22 by *Guillaume Chervet* - [4ccbef0](https://github.com/AxaFrance/oidc-client/commit/4ccbef0417543bf2a7395788315298b873327e7a) - chore(ci): add serviceworker (alpha), 2023-07-22 by *Guillaume Chervet* ## v6.25.1 -- [b08f00b](https://github.com/AxaFrance/oidc-client/commit/b08f00bf3d4fa8f798ca812abf1a00f19308df84) - [skip ci] Update version package.json, 2023-07-22 by *GitHub* - [cf3e31a](https://github.com/AxaFrance/oidc-client/commit/cf3e31af027d60626f1bff9a7c0951db115d11c3) - fix(react): update lock file (alpha), 2023-07-22 by *Guillaume Chervet* - [e02bc6e](https://github.com/AxaFrance/oidc-client/commit/e02bc6e77114f585e00f7d9d888db1d0a537be88) - chore(ci): fix numversion (alpha), 2023-07-22 by *Guillaume Chervet* ## v6.25.0 -- [1adff41](https://github.com/AxaFrance/oidc-client/commit/1adff41b96d4e3e44a63670f2e6d1de13e202c7a) - [skip ci] Update version package.json, 2023-07-22 by *GitHub* - [7ba2509](https://github.com/AxaFrance/oidc-client/commit/7ba2509271acefb6ff744fb07a464fd7f9c42064) - chore(ci): invert client and react (alpha), 2023-07-22 by *Guillaume Chervet* - [4be9aed](https://github.com/AxaFrance/oidc-client/commit/4be9aedde3a81f11aac5f8dfdef4914ce2c0483b) - feat(workspace): Add workspaces to specify build order dependencies in packages. (#1004), 2023-07-22 by *Jason Finch* - [d337b8b](https://github.com/AxaFrance/oidc-client/commit/d337b8b574936b81a4a6de9d533076a9da3a848b) - chore(ci): add way to publish alpha, beta, release (beta) (#1099), 2023-07-20 by *Guillaume Chervet* @@ -289,7 +248,6 @@ ## v6.24.27 -- [2b50407](https://github.com/AxaFrance/oidc-client/commit/2b50407c39bd95fdbbfec2c5f59c7901c189d3ec) - [skip ci] Update version package.json, 2023-07-21 by *GitHub* - [e68b26b](https://github.com/AxaFrance/oidc-client/commit/e68b26be8ab30eef9aa46e5e4dd029fa5b3818c3) - test (beta), 2023-07-21 by *Guillaume Chervet* - [4e78bbb](https://github.com/AxaFrance/oidc-client/commit/4e78bbbc4fb6f6728e97ee7a0f517bf8eac72998) - Update npm-publish.yml (alpha), 2023-07-20 by *Guillaume Chervet* - [8b7eb9b](https://github.com/AxaFrance/oidc-client/commit/8b7eb9bfc29f242132e1cff4952a2342dd610b34) - fix(ci): Update npm-publish.yml (alpha), 2023-07-20 by *Guillaume Chervet* diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 465ce90c3..7383c7c27 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.12.2", + "version": "7.12.3", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 11d3e1929..931f5321e 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.12.2'; +export default '7.12.3'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index b69db236d..e077eb11c 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.12.2", + "version": "7.12.3", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 11d3e1929..931f5321e 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.12.2'; +export default '7.12.3'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 1bd8eadc3..9ab255db7 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.12.2", + "version": "7.12.3", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 78119d2cf61306279804b480722ce1331168a827 Mon Sep 17 00:00:00 2001 From: GitHub Date: Wed, 29 Nov 2023 20:34:49 +0000 Subject: [PATCH 089/440] [skip ci] Generate changelog to version 7.12.3 --- CHANGELOG.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d33bd1b5c..43d9c200a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 7.12.3 + +- [59a9c46](https://github.com/AxaFrance/oidc-client/commit/59a9c468b4fa9eb9694b1f3921eb545daf1f58f8) - fix(ci): exclude author GitHub from changelog (release), 2023-11-29 by *Guillaume Chervet* + + ## v7.12.2 - [cd575e7](https://github.com/AxaFrance/oidc-client/commit/cd575e716f4fbcb1ba09a76a1530a3ae23f08599) - fix(ci): last clean and test (release), 2023-11-29 by *Guillaume Chervet* @@ -336,9 +341,3 @@ - [bdebcb0](https://github.com/AxaFrance/oidc-client/commit/bdebcb00841e592e87cab9a6bec9ae683fb30e32) - fix(ci): test (alpha), 2023-07-20 by *Guillaume Chervet* -## v6.24.12 - -- [35b7f96](https://github.com/AxaFrance/oidc-client/commit/35b7f9605aebfd93d7ef18fe20306b9e7ae53e4b) - Merge ca81becd76688d17bf0959908ffb194614fe29c4 into 3e535c94dc57d59956498bfa0ca9536106039bda, 2023-07-20 by *Guillaume Chervet* -- [ca81bec](https://github.com/AxaFrance/oidc-client/commit/ca81becd76688d17bf0959908ffb194614fe29c4) - fix(ci): test (alpha), 2023-07-20 by *Guillaume Chervet* - - From 9373765eafb4ef8dcba904772d558ab5bb40f17c Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Wed, 29 Nov 2023 21:36:04 +0100 Subject: [PATCH 090/440] fix(ci): remove duplicate --- .github/workflows/npm-publish.yml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml index a61d52661..8f7fd0c4e 100644 --- a/.github/workflows/npm-publish.yml +++ b/.github/workflows/npm-publish.yml @@ -252,12 +252,6 @@ jobs: cat package.json working-directory: ./packages/react-oidc - - name: Auto generate changelog - if: github.ref == 'refs/heads/main' && steps.which_tag.outputs.tag == 'release' - run: | - chmod +x ./bin/generate-changelog.sh - ./bin/generate-changelog.sh - - name: Commit and push if: github.ref == 'refs/heads/main' && steps.which_tag.outputs.tag == 'release' run: | From 59efae45029593579d2dc377093777f8ef940537 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 29 Nov 2023 21:36:41 +0100 Subject: [PATCH 091/440] build(npm): bump eslint from 8.46.0 to 8.54.0 (#1219) Bumps [eslint](https://github.com/eslint/eslint) from 8.46.0 to 8.54.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v8.46.0...v8.54.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 270 ++++++++++++++++++++++++------------------------- 2 files changed, 132 insertions(+), 140 deletions(-) diff --git a/package.json b/package.json index bd198e384..5e8d12e6f 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "devDependencies": { "@typescript-eslint/eslint-plugin": "^6.0.0", "@typescript-eslint/parser": "^6.0.0", - "eslint": "^8.45.0", + "eslint": "^8.54.0", "eslint-config-prettier": "^8.8.0", "eslint-define-config": "^1.21.0", "eslint-plugin-import": "^2.27.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0f790c5fd..ed1f21c37 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,49 +10,49 @@ importers: devDependencies: '@typescript-eslint/eslint-plugin': specifier: ^6.0.0 - version: 6.2.0(@typescript-eslint/parser@6.2.0)(eslint@8.46.0)(typescript@5.1.6) + version: 6.2.0(@typescript-eslint/parser@6.2.0)(eslint@8.54.0)(typescript@5.1.6) '@typescript-eslint/parser': specifier: ^6.0.0 - version: 6.2.0(eslint@8.46.0)(typescript@5.1.6) + version: 6.2.0(eslint@8.54.0)(typescript@5.1.6) eslint: - specifier: ^8.45.0 - version: 8.46.0 + specifier: ^8.54.0 + version: 8.54.0 eslint-config-prettier: specifier: ^8.8.0 - version: 8.9.0(eslint@8.46.0) + version: 8.9.0(eslint@8.54.0) eslint-define-config: specifier: ^1.21.0 version: 1.22.0 eslint-plugin-import: specifier: ^2.27.5 - version: 2.28.0(@typescript-eslint/parser@6.2.0)(eslint@8.46.0) + version: 2.28.0(@typescript-eslint/parser@6.2.0)(eslint@8.54.0) eslint-plugin-jsx-a11y: specifier: ^6.7.1 - version: 6.7.1(eslint@8.46.0) + version: 6.7.1(eslint@8.54.0) eslint-plugin-n: specifier: ^16.0.1 - version: 16.0.1(eslint@8.46.0) + version: 16.0.1(eslint@8.54.0) eslint-plugin-no-only-tests: specifier: ^3.1.0 version: 3.1.0 eslint-plugin-prettier: specifier: ^5.0.0 - version: 5.0.0(eslint-config-prettier@8.9.0)(eslint@8.46.0)(prettier@3.0.0) + version: 5.0.0(eslint-config-prettier@8.9.0)(eslint@8.54.0)(prettier@3.0.0) eslint-plugin-react: specifier: ^7.32.2 - version: 7.33.1(eslint@8.46.0) + version: 7.33.1(eslint@8.54.0) eslint-plugin-react-hooks: specifier: ^4.6.0 - version: 4.6.0(eslint@8.46.0) + version: 4.6.0(eslint@8.54.0) eslint-plugin-regexp: specifier: ^1.15.0 - version: 1.15.0(eslint@8.46.0) + version: 1.15.0(eslint@8.54.0) eslint-plugin-simple-import-sort: specifier: ^10.0.0 - version: 10.0.0(eslint@8.46.0) + version: 10.0.0(eslint@8.54.0) eslint-plugin-testing-library: specifier: ^5.11.0 - version: 5.11.0(eslint@8.46.0)(typescript@5.1.6) + version: 5.11.0(eslint@8.54.0)(typescript@5.1.6) prettier: specifier: ^3.0.0 version: 3.0.0 @@ -76,7 +76,7 @@ importers: version: link:../../packages/react-oidc next: specifier: latest - version: 13.4.12(react-dom@18.2.0)(react@18.2.0) + version: 14.0.3(react-dom@18.2.0)(react@18.2.0) react: specifier: latest version: 18.2.0 @@ -994,14 +994,14 @@ packages: dev: true optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.46.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.54.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.46.0 - eslint-visitor-keys: 3.4.2 + eslint: 8.54.0 + eslint-visitor-keys: 3.4.3 dev: true /@eslint-community/regexpp@4.6.2: @@ -1009,8 +1009,8 @@ packages: engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true - /@eslint/eslintrc@2.1.1: - resolution: {integrity: sha512-9t7ZA7NGGK8ckelF0PQCfcxIUzs1Md5rrO6U/c+FIQNanea5UZC0wqKXH4vHBccmu4ZJgZ2idtPeW7+Q2npOEA==} + /@eslint/eslintrc@2.1.3: + resolution: {integrity: sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 @@ -1026,16 +1026,16 @@ packages: - supports-color dev: true - /@eslint/js@8.46.0: - resolution: {integrity: sha512-a8TLtmPi8xzPkCbp/OGFUo5yhRkHM2Ko9kOWP4znJr0WAhWyThaw3PnwX4vOTWOAMsV2uRt32PPDcEz63esSaA==} + /@eslint/js@8.54.0: + resolution: {integrity: sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@humanwhocodes/config-array@0.11.10: - resolution: {integrity: sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==} + /@humanwhocodes/config-array@0.11.13: + resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==} engines: {node: '>=10.10.0'} dependencies: - '@humanwhocodes/object-schema': 1.2.1 + '@humanwhocodes/object-schema': 2.0.1 debug: 4.3.4 minimatch: 3.1.2 transitivePeerDependencies: @@ -1047,8 +1047,8 @@ packages: engines: {node: '>=12.22'} dev: true - /@humanwhocodes/object-schema@1.2.1: - resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + /@humanwhocodes/object-schema@2.0.1: + resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} dev: true /@isaacs/cliui@8.0.2: @@ -1169,12 +1169,12 @@ packages: strict-event-emitter: 0.5.1 dev: true - /@next/env@13.4.12: - resolution: {integrity: sha512-RmHanbV21saP/6OEPBJ7yJMuys68cIf8OBBWd7+uj40LdpmswVAwe1uzeuFyUsd6SfeITWT3XnQfn6wULeKwDQ==} + /@next/env@14.0.3: + resolution: {integrity: sha512-7xRqh9nMvP5xrW4/+L0jgRRX+HoNRGnfJpD+5Wq6/13j3dsdzxO3BCXn7D3hMqsDb+vjZnJq+vI7+EtgrYZTeA==} dev: false - /@next/swc-darwin-arm64@13.4.12: - resolution: {integrity: sha512-deUrbCXTMZ6ZhbOoloqecnUeNpUOupi8SE2tx4jPfNS9uyUR9zK4iXBvH65opVcA/9F5I/p8vDXSYbUlbmBjZg==} + /@next/swc-darwin-arm64@14.0.3: + resolution: {integrity: sha512-64JbSvi3nbbcEtyitNn2LEDS/hcleAFpHdykpcnrstITFlzFgB/bW0ER5/SJJwUPj+ZPY+z3e+1jAfcczRLVGw==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] @@ -1182,8 +1182,8 @@ packages: dev: false optional: true - /@next/swc-darwin-x64@13.4.12: - resolution: {integrity: sha512-WRvH7RxgRHlC1yb5oG0ZLx8F7uci9AivM5/HGGv9ZyG2Als8Ij64GC3d+mQ5sJhWjusyU6T6V1WKTUoTmOB0zQ==} + /@next/swc-darwin-x64@14.0.3: + resolution: {integrity: sha512-RkTf+KbAD0SgYdVn1XzqE/+sIxYGB7NLMZRn9I4Z24afrhUpVJx6L8hsRnIwxz3ERE2NFURNliPjJ2QNfnWicQ==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] @@ -1191,8 +1191,8 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-gnu@13.4.12: - resolution: {integrity: sha512-YEKracAWuxp54tKiAvvq73PUs9lok57cc8meYRibTWe/VdPB2vLgkTVWFcw31YDuRXdEhdX0fWS6Q+ESBhnEig==} + /@next/swc-linux-arm64-gnu@14.0.3: + resolution: {integrity: sha512-3tBWGgz7M9RKLO6sPWC6c4pAw4geujSwQ7q7Si4d6bo0l6cLs4tmO+lnSwFp1Tm3lxwfMk0SgkJT7EdwYSJvcg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -1200,8 +1200,8 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-musl@13.4.12: - resolution: {integrity: sha512-LhJR7/RAjdHJ2Isl2pgc/JaoxNk0KtBgkVpiDJPVExVWA1c6gzY57+3zWuxuyWzTG+fhLZo2Y80pLXgIJv7g3g==} + /@next/swc-linux-arm64-musl@14.0.3: + resolution: {integrity: sha512-v0v8Kb8j8T23jvVUWZeA2D8+izWspeyeDGNaT2/mTHWp7+37fiNfL8bmBWiOmeumXkacM/AB0XOUQvEbncSnHA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -1209,8 +1209,8 @@ packages: dev: false optional: true - /@next/swc-linux-x64-gnu@13.4.12: - resolution: {integrity: sha512-1DWLL/B9nBNiQRng+1aqs3OaZcxC16Nf+mOnpcrZZSdyKHek3WQh6j/fkbukObgNGwmCoVevLUa/p3UFTTqgqg==} + /@next/swc-linux-x64-gnu@14.0.3: + resolution: {integrity: sha512-VM1aE1tJKLBwMGtyBR21yy+STfl0MapMQnNrXkxeyLs0GFv/kZqXS5Jw/TQ3TSUnbv0QPDf/X8sDXuMtSgG6eg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -1218,8 +1218,8 @@ packages: dev: false optional: true - /@next/swc-linux-x64-musl@13.4.12: - resolution: {integrity: sha512-kEAJmgYFhp0VL+eRWmUkVxLVunn7oL9Mdue/FS8yzRBVj7Z0AnIrHpTIeIUl1bbdQq1VaoOztnKicAjfkLTRCQ==} + /@next/swc-linux-x64-musl@14.0.3: + resolution: {integrity: sha512-64EnmKy18MYFL5CzLaSuUn561hbO1Gk16jM/KHznYP3iCIfF9e3yULtHaMy0D8zbHfxset9LTOv6cuYKJgcOxg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -1227,8 +1227,8 @@ packages: dev: false optional: true - /@next/swc-win32-arm64-msvc@13.4.12: - resolution: {integrity: sha512-GMLuL/loR6yIIRTnPRY6UGbLL9MBdw2anxkOnANxvLvsml4F0HNIgvnU3Ej4BjbqMTNjD4hcPFdlEow4XHPdZA==} + /@next/swc-win32-arm64-msvc@14.0.3: + resolution: {integrity: sha512-WRDp8QrmsL1bbGtsh5GqQ/KWulmrnMBgbnb+59qNTW1kVi1nG/2ndZLkcbs2GX7NpFLlToLRMWSQXmPzQm4tog==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] @@ -1236,8 +1236,8 @@ packages: dev: false optional: true - /@next/swc-win32-ia32-msvc@13.4.12: - resolution: {integrity: sha512-PhgNqN2Vnkm7XaMdRmmX0ZSwZXQAtamBVSa9A/V1dfKQCV1rjIZeiy/dbBnVYGdj63ANfsOR/30XpxP71W0eww==} + /@next/swc-win32-ia32-msvc@14.0.3: + resolution: {integrity: sha512-EKffQeqCrj+t6qFFhIFTRoqb2QwX1mU7iTOvMyLbYw3QtqTw9sMwjykyiMlZlrfm2a4fA84+/aeW+PMg1MjuTg==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] @@ -1245,8 +1245,8 @@ packages: dev: false optional: true - /@next/swc-win32-x64-msvc@13.4.12: - resolution: {integrity: sha512-Z+56e/Ljt0bUs+T+jPjhFyxYBcdY2RIq9ELFU+qAMQMteHo7ymbV7CKmlcX59RI9C4YzN8PgMgLyAoi916b5HA==} + /@next/swc-win32-x64-msvc@14.0.3: + resolution: {integrity: sha512-ERhKPSJ1vQrPiwrs15Pjz/rvDHZmkmvbf/BjPN/UCOI++ODftT0GtasDPi0j+y6PPJi5HsXw+dpRaXUaw4vjuQ==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -1365,8 +1365,8 @@ packages: resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} dev: true - /@swc/helpers@0.5.1: - resolution: {integrity: sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg==} + /@swc/helpers@0.5.2: + resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==} dependencies: tslib: 2.6.1 dev: false @@ -1563,7 +1563,7 @@ packages: dependencies: '@types/jest': 27.5.2 - /@typescript-eslint/eslint-plugin@6.2.0(@typescript-eslint/parser@6.2.0)(eslint@8.46.0)(typescript@5.1.6): + /@typescript-eslint/eslint-plugin@6.2.0(@typescript-eslint/parser@6.2.0)(eslint@8.54.0)(typescript@5.1.6): resolution: {integrity: sha512-rClGrMuyS/3j0ETa1Ui7s6GkLhfZGKZL3ZrChLeAiACBE/tRc1wq8SNZESUuluxhLj9FkUefRs2l6bCIArWBiQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -1575,13 +1575,13 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.6.2 - '@typescript-eslint/parser': 6.2.0(eslint@8.46.0)(typescript@5.1.6) + '@typescript-eslint/parser': 6.2.0(eslint@8.54.0)(typescript@5.1.6) '@typescript-eslint/scope-manager': 6.2.0 - '@typescript-eslint/type-utils': 6.2.0(eslint@8.46.0)(typescript@5.1.6) - '@typescript-eslint/utils': 6.2.0(eslint@8.46.0)(typescript@5.1.6) + '@typescript-eslint/type-utils': 6.2.0(eslint@8.54.0)(typescript@5.1.6) + '@typescript-eslint/utils': 6.2.0(eslint@8.54.0)(typescript@5.1.6) '@typescript-eslint/visitor-keys': 6.2.0 debug: 4.3.4 - eslint: 8.46.0 + eslint: 8.54.0 graphemer: 1.4.0 ignore: 5.2.4 natural-compare: 1.4.0 @@ -1593,7 +1593,7 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@6.2.0(eslint@8.46.0)(typescript@5.1.6): + /@typescript-eslint/parser@6.2.0(eslint@8.54.0)(typescript@5.1.6): resolution: {integrity: sha512-igVYOqtiK/UsvKAmmloQAruAdUHihsOCvplJpplPZ+3h4aDkC/UKZZNKgB6h93ayuYLuEymU3h8nF1xMRbh37g==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -1608,7 +1608,7 @@ packages: '@typescript-eslint/typescript-estree': 6.2.0(typescript@5.1.6) '@typescript-eslint/visitor-keys': 6.2.0 debug: 4.3.4 - eslint: 8.46.0 + eslint: 8.54.0 typescript: 5.1.6 transitivePeerDependencies: - supports-color @@ -1630,7 +1630,7 @@ packages: '@typescript-eslint/visitor-keys': 6.2.0 dev: true - /@typescript-eslint/type-utils@6.2.0(eslint@8.46.0)(typescript@5.1.6): + /@typescript-eslint/type-utils@6.2.0(eslint@8.54.0)(typescript@5.1.6): resolution: {integrity: sha512-DnGZuNU2JN3AYwddYIqrVkYW0uUQdv0AY+kz2M25euVNlujcN2u+rJgfJsBFlUEzBB6OQkUqSZPyuTLf2bP5mw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -1641,9 +1641,9 @@ packages: optional: true dependencies: '@typescript-eslint/typescript-estree': 6.2.0(typescript@5.1.6) - '@typescript-eslint/utils': 6.2.0(eslint@8.46.0)(typescript@5.1.6) + '@typescript-eslint/utils': 6.2.0(eslint@8.54.0)(typescript@5.1.6) debug: 4.3.4 - eslint: 8.46.0 + eslint: 8.54.0 ts-api-utils: 1.0.1(typescript@5.1.6) typescript: 5.1.6 transitivePeerDependencies: @@ -1702,19 +1702,19 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@5.62.0(eslint@8.46.0)(typescript@5.1.6): + /@typescript-eslint/utils@5.62.0(eslint@8.54.0)(typescript@5.1.6): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) '@types/json-schema': 7.0.12 '@types/semver': 7.5.0 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6) - eslint: 8.46.0 + eslint: 8.54.0 eslint-scope: 5.1.1 semver: 7.5.4 transitivePeerDependencies: @@ -1722,19 +1722,19 @@ packages: - typescript dev: true - /@typescript-eslint/utils@6.2.0(eslint@8.46.0)(typescript@5.1.6): + /@typescript-eslint/utils@6.2.0(eslint@8.54.0)(typescript@5.1.6): resolution: {integrity: sha512-RCFrC1lXiX1qEZN8LmLrxYRhOkElEsPKTVSNout8DMzf8PeWoQG7Rxz2SadpJa3VSh5oYKGwt7j7X/VRg+Y3OQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) '@types/json-schema': 7.0.12 '@types/semver': 7.5.0 '@typescript-eslint/scope-manager': 6.2.0 '@typescript-eslint/types': 6.2.0 '@typescript-eslint/typescript-estree': 6.2.0(typescript@5.1.6) - eslint: 8.46.0 + eslint: 8.54.0 semver: 7.5.4 transitivePeerDependencies: - supports-color @@ -1757,6 +1757,10 @@ packages: eslint-visitor-keys: 3.4.2 dev: true + /@ungap/structured-clone@1.2.0: + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + dev: true + /@vitejs/plugin-react@4.0.3(vite@4.4.7): resolution: {integrity: sha512-pwXDog5nwwvSIzwrvYYmA2Ljcd/ZNlcsSG2Q9CNDBwnsd55UGAyr2doXtB5j+2uymRCnCfExlznzzSFbBRcoCg==} engines: {node: ^14.18.0 || >=16.0.0} @@ -2906,13 +2910,13 @@ packages: engines: {node: '>=12'} dev: true - /eslint-config-prettier@8.9.0(eslint@8.46.0): + /eslint-config-prettier@8.9.0(eslint@8.54.0): resolution: {integrity: sha512-+sbni7NfVXnOpnRadUA8S28AUlsZt9GjgFvABIRL9Hkn8KqNzOp+7Lw4QWtrwn20KzU3wqu1QoOj2m+7rKRqkA==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.46.0 + eslint: 8.54.0 dev: true /eslint-define-config@1.22.0: @@ -2930,7 +2934,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.2.0)(eslint-import-resolver-node@0.3.7)(eslint@8.46.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.2.0)(eslint-import-resolver-node@0.3.7)(eslint@8.54.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -2951,26 +2955,26 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.2.0(eslint@8.46.0)(typescript@5.1.6) + '@typescript-eslint/parser': 6.2.0(eslint@8.54.0)(typescript@5.1.6) debug: 3.2.7 - eslint: 8.46.0 + eslint: 8.54.0 eslint-import-resolver-node: 0.3.7 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-es-x@7.2.0(eslint@8.46.0): + /eslint-plugin-es-x@7.2.0(eslint@8.54.0): resolution: {integrity: sha512-9dvv5CcvNjSJPqnS5uZkqb3xmbeqRLnvXKK7iI5+oK/yTusyc46zbBZKENGsOfojm/mKfszyZb+wNqNPAPeGXA==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '>=8' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) '@eslint-community/regexpp': 4.6.2 - eslint: 8.46.0 + eslint: 8.54.0 dev: true - /eslint-plugin-import@2.28.0(@typescript-eslint/parser@6.2.0)(eslint@8.46.0): + /eslint-plugin-import@2.28.0(@typescript-eslint/parser@6.2.0)(eslint@8.54.0): resolution: {integrity: sha512-B8s/n+ZluN7sxj9eUf7/pRFERX0r5bnFA2dCaLHy2ZeaQEAz0k+ZZkFWRFHJAqxfxQDx6KLv9LeIki7cFdwW+Q==} engines: {node: '>=4'} peerDependencies: @@ -2980,16 +2984,16 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.2.0(eslint@8.46.0)(typescript@5.1.6) + '@typescript-eslint/parser': 6.2.0(eslint@8.54.0)(typescript@5.1.6) array-includes: 3.1.6 array.prototype.findlastindex: 1.2.2 array.prototype.flat: 1.3.1 array.prototype.flatmap: 1.3.1 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.46.0 + eslint: 8.54.0 eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.2.0)(eslint-import-resolver-node@0.3.7)(eslint@8.46.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.2.0)(eslint-import-resolver-node@0.3.7)(eslint@8.54.0) has: 1.0.3 is-core-module: 2.12.1 is-glob: 4.0.3 @@ -3006,7 +3010,7 @@ packages: - supports-color dev: true - /eslint-plugin-jsx-a11y@6.7.1(eslint@8.46.0): + /eslint-plugin-jsx-a11y@6.7.1(eslint@8.54.0): resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==} engines: {node: '>=4.0'} peerDependencies: @@ -3021,7 +3025,7 @@ packages: axobject-query: 3.2.1 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 8.46.0 + eslint: 8.54.0 has: 1.0.3 jsx-ast-utils: 3.3.5 language-tags: 1.0.5 @@ -3031,16 +3035,16 @@ packages: semver: 6.3.1 dev: true - /eslint-plugin-n@16.0.1(eslint@8.46.0): + /eslint-plugin-n@16.0.1(eslint@8.54.0): resolution: {integrity: sha512-CDmHegJN0OF3L5cz5tATH84RPQm9kG+Yx39wIqIwPR2C0uhBGMWfbbOtetR83PQjjidA5aXMu+LEFw1jaSwvTA==} engines: {node: '>=16.0.0'} peerDependencies: eslint: '>=7.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) builtins: 5.0.1 - eslint: 8.46.0 - eslint-plugin-es-x: 7.2.0(eslint@8.46.0) + eslint: 8.54.0 + eslint-plugin-es-x: 7.2.0(eslint@8.54.0) ignore: 5.2.4 is-core-module: 2.12.1 minimatch: 3.1.2 @@ -3053,7 +3057,7 @@ packages: engines: {node: '>=5.0.0'} dev: true - /eslint-plugin-prettier@5.0.0(eslint-config-prettier@8.9.0)(eslint@8.46.0)(prettier@3.0.0): + /eslint-plugin-prettier@5.0.0(eslint-config-prettier@8.9.0)(eslint@8.54.0)(prettier@3.0.0): resolution: {integrity: sha512-AgaZCVuYDXHUGxj/ZGu1u8H8CYgDY3iG6w5kUFw4AzMVXzB7VvbKgYR4nATIN+OvUrghMbiDLeimVjVY5ilq3w==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -3067,23 +3071,23 @@ packages: eslint-config-prettier: optional: true dependencies: - eslint: 8.46.0 - eslint-config-prettier: 8.9.0(eslint@8.46.0) + eslint: 8.54.0 + eslint-config-prettier: 8.9.0(eslint@8.54.0) prettier: 3.0.0 prettier-linter-helpers: 1.0.0 synckit: 0.8.5 dev: true - /eslint-plugin-react-hooks@4.6.0(eslint@8.46.0): + /eslint-plugin-react-hooks@4.6.0(eslint@8.54.0): resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: - eslint: 8.46.0 + eslint: 8.54.0 dev: true - /eslint-plugin-react@7.33.1(eslint@8.46.0): + /eslint-plugin-react@7.33.1(eslint@8.54.0): resolution: {integrity: sha512-L093k0WAMvr6VhNwReB8VgOq5s2LesZmrpPdKz/kZElQDzqS7G7+DnKoqT+w4JwuiGeAhAvHO0fvy0Eyk4ejDA==} engines: {node: '>=4'} peerDependencies: @@ -3093,7 +3097,7 @@ packages: array.prototype.flatmap: 1.3.1 array.prototype.tosorted: 1.1.1 doctrine: 2.1.0 - eslint: 8.46.0 + eslint: 8.54.0 estraverse: 5.3.0 jsx-ast-utils: 3.3.5 minimatch: 3.1.2 @@ -3107,16 +3111,16 @@ packages: string.prototype.matchall: 4.0.8 dev: true - /eslint-plugin-regexp@1.15.0(eslint@8.46.0): + /eslint-plugin-regexp@1.15.0(eslint@8.54.0): resolution: {integrity: sha512-YEtQPfdudafU7RBIFci81R/Q1yErm0mVh3BkGnXD2Dk8DLwTFdc2ITYH1wCnHKim2gnHfPFgrkh+b2ozyyU7ag==} engines: {node: ^12 || >=14} peerDependencies: eslint: '>=6.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) '@eslint-community/regexpp': 4.6.2 comment-parser: 1.3.1 - eslint: 8.46.0 + eslint: 8.54.0 grapheme-splitter: 1.0.4 jsdoctypeparser: 9.0.0 refa: 0.11.0 @@ -3124,22 +3128,22 @@ packages: scslre: 0.2.0 dev: true - /eslint-plugin-simple-import-sort@10.0.0(eslint@8.46.0): + /eslint-plugin-simple-import-sort@10.0.0(eslint@8.54.0): resolution: {integrity: sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw==} peerDependencies: eslint: '>=5.0.0' dependencies: - eslint: 8.46.0 + eslint: 8.54.0 dev: true - /eslint-plugin-testing-library@5.11.0(eslint@8.46.0)(typescript@5.1.6): + /eslint-plugin-testing-library@5.11.0(eslint@8.54.0)(typescript@5.1.6): resolution: {integrity: sha512-ELY7Gefo+61OfXKlQeXNIDVVLPcvKTeiQOoMZG9TeuWa7Ln4dUNRv8JdRWBQI9Mbb427XGlVB1aa1QPZxBJM8Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0, npm: '>=6'} peerDependencies: eslint: ^7.5.0 || ^8.0.0 dependencies: - '@typescript-eslint/utils': 5.62.0(eslint@8.46.0)(typescript@5.1.6) - eslint: 8.46.0 + '@typescript-eslint/utils': 5.62.0(eslint@8.54.0)(typescript@5.1.6) + eslint: 8.54.0 transitivePeerDependencies: - supports-color - typescript @@ -3166,18 +3170,24 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.46.0: - resolution: {integrity: sha512-cIO74PvbW0qU8e0mIvk5IV3ToWdCq5FYG6gWPHHkx6gNdjlbAYvtfHmlCMXxjcoVaIdwy/IAt3+mDkZkfvb2Dg==} + /eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /eslint@8.54.0: + resolution: {integrity: sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) '@eslint-community/regexpp': 4.6.2 - '@eslint/eslintrc': 2.1.1 - '@eslint/js': 8.46.0 - '@humanwhocodes/config-array': 0.11.10 + '@eslint/eslintrc': 2.1.3 + '@eslint/js': 8.54.0 + '@humanwhocodes/config-array': 0.11.13 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.2.0 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 @@ -3185,7 +3195,7 @@ packages: doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.2 + eslint-visitor-keys: 3.4.3 espree: 9.6.1 esquery: 1.5.0 esutils: 2.0.3 @@ -3218,7 +3228,7 @@ packages: dependencies: acorn: 8.10.0 acorn-jsx: 5.3.2(acorn@8.10.0) - eslint-visitor-keys: 3.4.2 + eslint-visitor-keys: 3.4.3 dev: true /esquery@1.5.0: @@ -4505,44 +4515,40 @@ packages: resolution: {integrity: sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==} dev: true - /next@13.4.12(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-eHfnru9x6NRmTMcjQp6Nz0J4XH9OubmzOa7CkWL+AUrUxpibub3vWwttjduu9No16dug1kq04hiUUpo7J3m3Xw==} - engines: {node: '>=16.8.0'} + /next@14.0.3(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-AbYdRNfImBr3XGtvnwOxq8ekVCwbFTv/UJoLwmaX89nk9i051AEY4/HAWzU0YpaTDw8IofUpmuIlvzWF13jxIw==} + engines: {node: '>=18.17.0'} hasBin: true peerDependencies: '@opentelemetry/api': ^1.1.0 - fibers: '>= 3.1.0' react: ^18.2.0 react-dom: ^18.2.0 sass: ^1.3.0 peerDependenciesMeta: '@opentelemetry/api': optional: true - fibers: - optional: true sass: optional: true dependencies: - '@next/env': 13.4.12 - '@swc/helpers': 0.5.1 + '@next/env': 14.0.3 + '@swc/helpers': 0.5.2 busboy: 1.6.0 caniuse-lite: 1.0.30001517 - postcss: 8.4.14 + postcss: 8.4.31 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) styled-jsx: 5.1.1(react@18.2.0) watchpack: 2.4.0 - zod: 3.21.4 optionalDependencies: - '@next/swc-darwin-arm64': 13.4.12 - '@next/swc-darwin-x64': 13.4.12 - '@next/swc-linux-arm64-gnu': 13.4.12 - '@next/swc-linux-arm64-musl': 13.4.12 - '@next/swc-linux-x64-gnu': 13.4.12 - '@next/swc-linux-x64-musl': 13.4.12 - '@next/swc-win32-arm64-msvc': 13.4.12 - '@next/swc-win32-ia32-msvc': 13.4.12 - '@next/swc-win32-x64-msvc': 13.4.12 + '@next/swc-darwin-arm64': 14.0.3 + '@next/swc-darwin-x64': 14.0.3 + '@next/swc-linux-arm64-gnu': 14.0.3 + '@next/swc-linux-arm64-musl': 14.0.3 + '@next/swc-linux-x64-gnu': 14.0.3 + '@next/swc-linux-x64-musl': 14.0.3 + '@next/swc-win32-arm64-msvc': 14.0.3 + '@next/swc-win32-ia32-msvc': 14.0.3 + '@next/swc-win32-x64-msvc': 14.0.3 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros @@ -4913,15 +4919,6 @@ packages: deprecated: You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1 dev: true - /postcss@8.4.14: - resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==} - engines: {node: ^10 || ^12 || >=14} - dependencies: - nanoid: 3.3.6 - picocolors: 1.0.0 - source-map-js: 1.0.2 - dev: false - /postcss@8.4.27: resolution: {integrity: sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==} engines: {node: ^10 || ^12 || >=14} @@ -4938,7 +4935,6 @@ packages: nanoid: 3.3.6 picocolors: 1.0.0 source-map-js: 1.0.2 - dev: true /prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} @@ -6351,7 +6347,3 @@ packages: optionalDependencies: commander: 9.5.0 dev: true - - /zod@3.21.4: - resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==} - dev: false From bf53fa803a6414b99e1520154c11d66c4958e62b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 29 Nov 2023 21:36:54 +0100 Subject: [PATCH 092/440] build(npm): bump tslib from 2.6.1 to 2.6.2 (#1218) Bumps [tslib](https://github.com/Microsoft/tslib) from 2.6.1 to 2.6.2. - [Release notes](https://github.com/Microsoft/tslib/releases) - [Commits](https://github.com/Microsoft/tslib/compare/v2.6.1...v2.6.2) --- updated-dependencies: - dependency-name: tslib dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 5e8d12e6f..b810176c6 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,7 @@ "eslint-plugin-simple-import-sort": "^10.0.0", "eslint-plugin-testing-library": "^5.11.0", "prettier": "^3.0.0", - "tslib": "^2.6.0", + "tslib": "^2.6.2", "tsx": "^3.12.7", "typescript": "^5.1.6", "vitest": "^0.33.0" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ed1f21c37..618e530e0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -57,8 +57,8 @@ importers: specifier: ^3.0.0 version: 3.0.0 tslib: - specifier: ^2.6.0 - version: 2.6.1 + specifier: ^2.6.2 + version: 2.6.2 tsx: specifier: ^3.12.7 version: 3.12.7 @@ -1306,7 +1306,7 @@ packages: is-glob: 4.0.3 open: 9.1.0 picocolors: 1.0.0 - tslib: 2.6.1 + tslib: 2.6.2 dev: true /@remix-run/router@1.7.2: @@ -5620,7 +5620,7 @@ packages: engines: {node: ^14.18.0 || >=16.0.0} dependencies: '@pkgr/utils': 2.4.2 - tslib: 2.6.1 + tslib: 2.6.2 dev: true /test-exclude@6.0.0: @@ -5736,6 +5736,10 @@ packages: /tslib@2.6.1: resolution: {integrity: sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==} + /tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + dev: true + /tsutils@3.21.0(typescript@5.1.6): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} From 0cc3821e5a97216192006230fbdb7ca395aedb1c Mon Sep 17 00:00:00 2001 From: GitHub Date: Wed, 29 Nov 2023 20:39:41 +0000 Subject: [PATCH 093/440] [skip ci] Update to version 7.12.5 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 7383c7c27..2269bb493 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.12.3", + "version": "7.12.5", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 931f5321e..9c3d95ea1 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.12.3'; +export default '7.12.5'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index e077eb11c..4f0c795a9 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.12.3", + "version": "7.12.5", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 931f5321e..9c3d95ea1 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.12.3'; +export default '7.12.5'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 9ab255db7..b50761225 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.12.3", + "version": "7.12.5", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 399d09a9500f153ea926dcbd978576ff2360a3f7 Mon Sep 17 00:00:00 2001 From: GitHub Date: Wed, 29 Nov 2023 20:39:43 +0000 Subject: [PATCH 094/440] [skip ci] Generate changelog to version 7.12.5 --- CHANGELOG.md | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 43d9c200a..448f85006 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,18 @@ # Changelog -## 7.12.3 +## 7.12.5 + +- [bf53fa8](https://github.com/AxaFrance/oidc-client/commit/bf53fa803a6414b99e1520154c11d66c4958e62b) - build(npm): bump tslib from 2.6.1 to 2.6.2 (#1218), 2023-11-29 by *dependabot[bot]* + + +## v7.12.4 + +- [59efae4](https://github.com/AxaFrance/oidc-client/commit/59efae45029593579d2dc377093777f8ef940537) - build(npm): bump eslint from 8.46.0 to 8.54.0 (#1219), 2023-11-29 by *dependabot[bot]* +- [283e7d9](https://github.com/AxaFrance/oidc-client/commit/283e7d9e02dcd0795489c9c4d24b9abcbb0e4b39) - Merge branch 'main' of https://github.com/AxaFrance/oidc-client, 2023-11-29 by *Guillaume Chervet* +- [9373765](https://github.com/AxaFrance/oidc-client/commit/9373765eafb4ef8dcba904772d558ab5bb40f17c) - fix(ci): remove duplicate, 2023-11-29 by *Guillaume Chervet* + + +## v7.12.3 - [59a9c46](https://github.com/AxaFrance/oidc-client/commit/59a9c468b4fa9eb9694b1f3921eb545daf1f58f8) - fix(ci): exclude author GitHub from changelog (release), 2023-11-29 by *Guillaume Chervet* @@ -329,15 +341,3 @@ - [eae183a](https://github.com/AxaFrance/oidc-client/commit/eae183a91d6570b7ea23fe85ada9035dfcfbb83a) - ssssssssss, 2023-07-20 by *Guillaume Chervet* -## v6.24.14 - -- [f5ff779](https://github.com/AxaFrance/oidc-client/commit/f5ff779691943e5d6030b1bd387ffc8a302d3ce6) - Merge 69818e2f7a63cb3168e82e1d0e0d1db434db972a into 3e535c94dc57d59956498bfa0ca9536106039bda, 2023-07-20 by *Guillaume Chervet* -- [69818e2](https://github.com/AxaFrance/oidc-client/commit/69818e2f7a63cb3168e82e1d0e0d1db434db972a) - fix(ct): test (alpha), 2023-07-20 by *Guillaume Chervet* - - -## v6.24.13 - -- [27ba555](https://github.com/AxaFrance/oidc-client/commit/27ba555288f614cf8da7b1be01f3936e1bc1a56e) - Merge bdebcb00841e592e87cab9a6bec9ae683fb30e32 into 3e535c94dc57d59956498bfa0ca9536106039bda, 2023-07-20 by *Guillaume Chervet* -- [bdebcb0](https://github.com/AxaFrance/oidc-client/commit/bdebcb00841e592e87cab9a6bec9ae683fb30e32) - fix(ci): test (alpha), 2023-07-20 by *Guillaume Chervet* - - From a9cd4d25ef8d66bd12e5c0e921b9fd1bc4a137ba Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 29 Nov 2023 21:39:56 +0100 Subject: [PATCH 095/440] build(npm): bump @testing-library/react from 13.3.0 to 14.1.2 (#1222) * build(npm): bump @types/node from 18.17.1 to 20.10.1 (#1217) * fix(ci): Update dependabot.yml to run monthly (#1212) * build(npm): bump @types/node from 18.17.1 to 20.10.1 Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 18.17.1 to 20.10.1. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --------- Signed-off-by: dependabot[bot] Co-authored-by: Guillaume Chervet Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(npm): bump @types/react from 18.2.17 to 18.2.39 (#1215) * fix(ci): Update dependabot.yml to run monthly (#1212) * build(npm): bump @types/react from 18.2.17 to 18.2.39 Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 18.2.17 to 18.2.39. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react) --- updated-dependencies: - dependency-name: "@types/react" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --------- Signed-off-by: dependabot[bot] Co-authored-by: Guillaume Chervet Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(npm): bump @testing-library/react from 13.3.0 to 14.1.2 Bumps [@testing-library/react](https://github.com/testing-library/react-testing-library) from 13.3.0 to 14.1.2. - [Release notes](https://github.com/testing-library/react-testing-library/releases) - [Changelog](https://github.com/testing-library/react-testing-library/blob/main/CHANGELOG.md) - [Commits](https://github.com/testing-library/react-testing-library/compare/v13.3.0...v14.1.2) --- updated-dependencies: - dependency-name: "@testing-library/react" dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Guillaume Chervet --- .github/dependabot.yml | 2 +- examples/oidc-client-demo/package.json | 2 +- examples/react-oidc-demo/package.json | 4 +- packages/oidc-client/package.json | 2 +- packages/react-oidc/package.json | 4 +- pnpm-lock.yaml | 109 +++++++++++-------------- 6 files changed, 53 insertions(+), 70 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 3c6510cc1..334e5b309 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -6,6 +6,6 @@ updates: directory: '/' # Check the npm registry for updates every day (weekdays) schedule: - interval: 'daily' + interval: 'monthly' commit-message: prefix: 'build(npm): ' diff --git a/examples/oidc-client-demo/package.json b/examples/oidc-client-demo/package.json index 582b02dfd..1cf30c3ee 100644 --- a/examples/oidc-client-demo/package.json +++ b/examples/oidc-client-demo/package.json @@ -30,7 +30,7 @@ ] }, "devDependencies": { - "@types/node": "^18.11.9", + "@types/node": "^20.10.1", "cross-env": "^7.0.3", "vite": "^4.4.4" } diff --git a/examples/react-oidc-demo/package.json b/examples/react-oidc-demo/package.json index 2afb93a35..2931272ae 100644 --- a/examples/react-oidc-demo/package.json +++ b/examples/react-oidc-demo/package.json @@ -25,9 +25,9 @@ }, "devDependencies": { "@testing-library/jest-dom": "5.16.5", - "@testing-library/react": "13.3.0", + "@testing-library/react": "14.1.2", "@testing-library/user-event": "14.4.3", - "@types/react": "^18.2.15", + "@types/react": "^18.2.39", "@vitejs/plugin-react": "4.0.3", "@vitest/coverage-c8": "^0.33.0", "bootstrap": "^4.6.2", diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 4f0c795a9..e9ff762a7 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -25,7 +25,7 @@ "devDependencies": { "@testing-library/dom": "^9.3.3", "@testing-library/jest-dom": "^5.16.5", - "@testing-library/react": "13.3.0", + "@testing-library/react": "14.1.2", "@vitest/coverage-v8": "^0.33.0", "base64-js": "^1.5.1", "cpy": "^10.1.0", diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index b50761225..c122e84bd 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -49,9 +49,9 @@ }, "devDependencies": { "@testing-library/jest-dom": "5.16.5", - "@testing-library/react": "13.3.0", + "@testing-library/react": "14.1.2", "@testing-library/user-event": "14.4.3", - "@types/react": "^18.2.15", + "@types/react": "^18.2.39", "@vitejs/plugin-react": "4.0.3", "@vitest/coverage-v8": "^0.33.0", "cpy": "^10.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 618e530e0..845ccc160 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -106,14 +106,14 @@ importers: version: 3.4.0 devDependencies: '@types/node': - specifier: ^18.11.9 - version: 18.17.1 + specifier: ^20.10.1 + version: 20.10.1 cross-env: specifier: ^7.0.3 version: 7.0.3 vite: specifier: ^4.4.4 - version: 4.4.7(@types/node@18.17.1) + version: 4.4.7(@types/node@20.10.1) examples/react-oidc-demo: dependencies: @@ -134,14 +134,14 @@ importers: specifier: 5.16.5 version: 5.16.5 '@testing-library/react': - specifier: 13.3.0 - version: 13.3.0(react-dom@18.2.0)(react@18.2.0) + specifier: 14.1.2 + version: 14.1.2(react-dom@18.2.0)(react@18.2.0) '@testing-library/user-event': specifier: 14.4.3 version: 14.4.3(@testing-library/dom@9.3.3) '@types/react': - specifier: ^18.2.15 - version: 18.2.17 + specifier: ^18.2.39 + version: 18.2.39 '@vitejs/plugin-react': specifier: 4.0.3 version: 4.0.3(vite@4.4.7) @@ -168,7 +168,7 @@ importers: version: 5.1.6 vite: specifier: ^4.4.4 - version: 4.4.7(@types/node@20.4.5) + version: 4.4.7 vite-plugin-dts: specifier: ^3.3.0 version: 3.4.0(typescript@5.1.6)(vite@4.4.7) @@ -189,8 +189,8 @@ importers: specifier: ^5.16.5 version: 5.17.0 '@testing-library/react': - specifier: 13.3.0 - version: 13.3.0(react-dom@18.2.0)(react@18.2.0) + specifier: 14.1.2 + version: 14.1.2(react-dom@18.2.0)(react@18.2.0) '@vitest/coverage-v8': specifier: ^0.33.0 version: 0.33.0(vitest@0.33.0) @@ -211,7 +211,7 @@ importers: version: 5.1.6 vite: specifier: ^4.4.4 - version: 4.4.7(@types/node@20.4.5) + version: 4.4.7 vite-plugin-dts: specifier: ^3.3.0 version: 3.4.0(typescript@5.1.6)(vite@4.4.7) @@ -241,7 +241,7 @@ importers: version: 5.1.6 vite: specifier: ^4.4.4 - version: 4.4.7(@types/node@20.4.5) + version: 4.4.7 vite-plugin-dts: specifier: ^3.3.0 version: 3.4.0(typescript@5.1.6)(vite@4.4.7) @@ -265,14 +265,14 @@ importers: specifier: 5.16.5 version: 5.16.5 '@testing-library/react': - specifier: 13.3.0 - version: 13.3.0(react-dom@18.2.0)(react@18.2.0) + specifier: 14.1.2 + version: 14.1.2(react-dom@18.2.0)(react@18.2.0) '@testing-library/user-event': specifier: 14.4.3 version: 14.4.3(@testing-library/dom@9.3.3) '@types/react': - specifier: ^18.2.15 - version: 18.2.17 + specifier: ^18.2.39 + version: 18.2.39 '@vitejs/plugin-react': specifier: 4.0.3 version: 4.0.3(vite@4.4.7) @@ -308,7 +308,7 @@ importers: version: 5.1.6 vite: specifier: ^4.4.4 - version: 4.4.7(@types/node@20.4.5) + version: 4.4.7 vite-plugin-dts: specifier: ^3.3.0 version: 3.4.0(typescript@5.1.6)(vite@4.4.7) @@ -1368,23 +1368,9 @@ packages: /@swc/helpers@0.5.2: resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==} dependencies: - tslib: 2.6.1 + tslib: 2.6.2 dev: false - /@testing-library/dom@8.20.1: - resolution: {integrity: sha512-/DiOQ5xBxgdYRC8LNk7U+RWat0S3qRLeIw3ZIkMQ9kkVlRmwD/Eg8k8CqIpD6GW7u20JIUOfMKbxtiLutpjQ4g==} - engines: {node: '>=12'} - dependencies: - '@babel/code-frame': 7.22.5 - '@babel/runtime': 7.22.6 - '@types/aria-query': 5.0.1 - aria-query: 5.1.3 - chalk: 4.1.2 - dom-accessibility-api: 0.5.16 - lz-string: 1.5.0 - pretty-format: 27.5.1 - dev: true - /@testing-library/dom@9.3.3: resolution: {integrity: sha512-fB0R+fa3AUqbLHWyxXa2kGVtf1Fe1ZZFr0Zp6AIbIAzXb2mKbEXl+PCQNUOaq5lbTab5tfctfXRNsWXxa2f7Aw==} engines: {node: '>=14'} @@ -1427,15 +1413,15 @@ packages: lodash: 4.17.21 redent: 3.0.0 - /@testing-library/react@13.3.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-DB79aA426+deFgGSjnf5grczDPiL4taK3hFaa+M5q7q20Kcve9eQottOG5kZ74KEr55v0tU2CQormSSDK87zYQ==} - engines: {node: '>=12'} + /@testing-library/react@14.1.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-z4p7DVBTPjKM5qDZ0t5ZjzkpSNb+fZy1u6bzO7kk8oeGagpPCAtgh4cx1syrfp7a+QWkM021jGqjJaxJJnXAZg==} + engines: {node: '>=14'} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 dependencies: '@babel/runtime': 7.22.6 - '@testing-library/dom': 8.20.1 + '@testing-library/dom': 9.3.3 '@types/react-dom': 18.2.7 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -1516,12 +1502,10 @@ packages: resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} dev: true - /@types/node@18.17.1: - resolution: {integrity: sha512-xlR1jahfizdplZYRU59JlUx9uzF1ARa8jbhM11ccpCJya8kvos5jwdm2ZAgxSCwOl0fq21svP18EVwPBXMQudw==} - dev: true - - /@types/node@20.4.5: - resolution: {integrity: sha512-rt40Nk13II9JwQBdeYqmbn2Q6IVTA5uPhvSO+JVqdXw/6/4glI6oR9ezty/A9Hg5u7JH4OmYmuQ+XvjKm0Datg==} + /@types/node@20.10.1: + resolution: {integrity: sha512-T2qwhjWwGH81vUEx4EXmBKsTJRXFXNZTL4v0gi01+zyBmCwzE6TyHszqX01m+QHTEq+EZNo13NeJIdEqf+Myrg==} + dependencies: + undici-types: 5.26.5 dev: true /@types/normalize-package-data@2.4.1: @@ -1535,11 +1519,11 @@ packages: /@types/react-dom@18.2.7: resolution: {integrity: sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA==} dependencies: - '@types/react': 18.2.17 + '@types/react': 18.2.39 dev: true - /@types/react@18.2.17: - resolution: {integrity: sha512-u+e7OlgPPh+aryjOm5UJMX32OvB2E3QASOAqVMY6Ahs90djagxwv2ya0IctglNbNTexC12qCSMZG47KPfy1hAA==} + /@types/react@18.2.39: + resolution: {integrity: sha512-Oiw+ppED6IremMInLV4HXGbfbG6GyziY3kqAwJYOR0PNbkYDmLWQA3a95EhdSmamsvbkJN96ZNN+YD+fGjzSBA==} dependencies: '@types/prop-types': 15.7.5 '@types/scheduler': 0.16.3 @@ -1771,7 +1755,7 @@ packages: '@babel/plugin-transform-react-jsx-self': 7.22.5(@babel/core@7.22.9) '@babel/plugin-transform-react-jsx-source': 7.22.5(@babel/core@7.22.9) react-refresh: 0.14.0 - vite: 4.4.7(@types/node@20.4.5) + vite: 4.4.7 transitivePeerDependencies: - supports-color dev: true @@ -5269,7 +5253,7 @@ packages: /rxjs@7.8.1: resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} dependencies: - tslib: 2.6.1 + tslib: 2.6.2 dev: true /safe-array-concat@1.0.0: @@ -5733,12 +5717,8 @@ packages: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true - /tslib@2.6.1: - resolution: {integrity: sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==} - /tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - dev: true /tsutils@3.21.0(typescript@5.1.6): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} @@ -5855,6 +5835,10 @@ packages: which-boxed-primitive: 1.0.2 dev: true + /undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + dev: true + /universalify@0.1.2: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} engines: {node: '>= 4.0.0'} @@ -5919,7 +5903,7 @@ packages: engines: {node: '>= 0.10'} dev: true - /vite-node@0.33.0(@types/node@20.4.5): + /vite-node@0.33.0(@types/node@20.10.1): resolution: {integrity: sha512-19FpHYbwWWxDr73ruNahC+vtEdza52kA90Qb3La98yZ0xULqV8A5JLNPUff0f5zID4984tW7l3DH2przTJUZSw==} engines: {node: '>=v14.18.0'} hasBin: true @@ -5929,7 +5913,7 @@ packages: mlly: 1.4.0 pathe: 1.1.1 picocolors: 1.0.0 - vite: 4.4.7(@types/node@20.4.5) + vite: 4.4.7(@types/node@20.10.1) transitivePeerDependencies: - '@types/node' - less @@ -5957,7 +5941,7 @@ packages: debug: 4.3.4 kolorist: 1.8.0 typescript: 5.1.6 - vite: 4.4.7(@types/node@20.4.5) + vite: 4.4.7 vue-tsc: 1.8.8(typescript@5.1.6) transitivePeerDependencies: - '@types/node' @@ -5965,7 +5949,7 @@ packages: - supports-color dev: true - /vite@4.4.7(@types/node@18.17.1): + /vite@4.4.7: resolution: {integrity: sha512-6pYf9QJ1mHylfVh39HpuSfMPojPSKVxZvnclX1K1FyZ1PXDOcLBibdq5t1qxJSnL63ca8Wf4zts6mD8u8oc9Fw==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -5993,15 +5977,14 @@ packages: terser: optional: true dependencies: - '@types/node': 18.17.1 esbuild: 0.18.17 - postcss: 8.4.27 + postcss: 8.4.31 rollup: 3.27.0 optionalDependencies: fsevents: 2.3.2 dev: true - /vite@4.4.7(@types/node@20.4.5): + /vite@4.4.7(@types/node@20.10.1): resolution: {integrity: sha512-6pYf9QJ1mHylfVh39HpuSfMPojPSKVxZvnclX1K1FyZ1PXDOcLBibdq5t1qxJSnL63ca8Wf4zts6mD8u8oc9Fw==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -6029,9 +6012,9 @@ packages: terser: optional: true dependencies: - '@types/node': 20.4.5 + '@types/node': 20.10.1 esbuild: 0.18.17 - postcss: 8.4.31 + postcss: 8.4.27 rollup: 3.27.0 optionalDependencies: fsevents: 2.3.2 @@ -6070,7 +6053,7 @@ packages: dependencies: '@types/chai': 4.3.5 '@types/chai-subset': 1.3.3 - '@types/node': 20.4.5 + '@types/node': 20.10.1 '@vitest/expect': 0.33.0 '@vitest/runner': 0.33.0 '@vitest/snapshot': 0.33.0 @@ -6090,8 +6073,8 @@ packages: strip-literal: 1.0.1 tinybench: 2.5.0 tinypool: 0.6.0 - vite: 4.4.7(@types/node@20.4.5) - vite-node: 0.33.0(@types/node@20.4.5) + vite: 4.4.7(@types/node@20.10.1) + vite-node: 0.33.0(@types/node@20.10.1) why-is-node-running: 2.2.2 transitivePeerDependencies: - less From 6027511a0c8d2112d370d45cf42f144874112f77 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Wed, 29 Nov 2023 21:54:46 +0100 Subject: [PATCH 096/440] doc(readme) Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e4316d072..7efd04620 100644 --- a/README.md +++ b/README.md @@ -71,7 +71,7 @@ Works perfectly well with: npm install @axa-fr/oidc-client --save # To install or update OidcServiceWorker.js file, you can run -node ./node_modules/@axa-fr/react-oidc/bin/copy-service-worker-files.mjs public +node ./node_modules/@axa-fr/oidc-client/bin/copy-service-worker-files.mjs public # If you have a "public" folder, the 2 files will be created : # ./public/OidcServiceWorker.js <-- will be updated at each "npm install" @@ -82,7 +82,7 @@ WARNING : If you use Service Worker mode, the OidcServiceWorker.js file should a ```sh "scripts": { ... - "postinstall": "node ./node_modules/@axa-fr/react-oidc/bin/copy-service-worker-files.mjs public" + "postinstall": "node ./node_modules/@axa-fr/oidc-client/bin/copy-service-worker-files.mjs public" }, ``` From d1480fbe2c0e275f17775768f83b70d9adf00ee1 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Thu, 30 Nov 2023 09:23:54 +0100 Subject: [PATCH 097/440] fix(all): dependencies update break the build (release) --- package.json | 22 +- packages/oidc-client/src/fetch.ts | 3 +- pnpm-lock.yaml | 1708 ++++++++++++++++++----------- readme.md | 4 +- 4 files changed, 1053 insertions(+), 684 deletions(-) diff --git a/package.json b/package.json index b810176c6..6d99483bb 100644 --- a/package.json +++ b/package.json @@ -27,26 +27,26 @@ "build": "pnpm -r --filter=./packages/* run build" }, "devDependencies": { - "@typescript-eslint/eslint-plugin": "^6.0.0", - "@typescript-eslint/parser": "^6.0.0", + "@typescript-eslint/eslint-plugin": "6.13.1", + "@typescript-eslint/parser": "6.13.1", "eslint": "^8.54.0", "eslint-config-prettier": "^8.8.0", "eslint-define-config": "^1.21.0", - "eslint-plugin-import": "^2.27.5", - "eslint-plugin-jsx-a11y": "^6.7.1", - "eslint-plugin-n": "^16.0.1", + "eslint-plugin-import": "2.29.0", + "eslint-plugin-jsx-a11y": "6.8.0", + "eslint-plugin-n": "16.3.1", "eslint-plugin-no-only-tests": "^3.1.0", - "eslint-plugin-prettier": "^5.0.0", - "eslint-plugin-react": "^7.32.2", + "eslint-plugin-prettier": "5.0.1", + "eslint-plugin-react": "7.33.2", "eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-regexp": "^1.15.0", "eslint-plugin-simple-import-sort": "^10.0.0", "eslint-plugin-testing-library": "^5.11.0", - "prettier": "^3.0.0", + "prettier": "3.1.0", "tslib": "^2.6.2", - "tsx": "^3.12.7", - "typescript": "^5.1.6", - "vitest": "^0.33.0" + "tsx": "4.6.1", + "typescript": "5.3.2", + "vitest": "0.34.6" }, "engines": { "node": "16.* || >= 18.0.0" diff --git a/packages/oidc-client/src/fetch.ts b/packages/oidc-client/src/fetch.ts index 9e78f7948..1cdfcd6fe 100644 --- a/packages/oidc-client/src/fetch.ts +++ b/packages/oidc-client/src/fetch.ts @@ -1,7 +1,8 @@ import {Fetch} from "./types"; import {OidcClient} from "./oidcClient"; -export const fetchWithTokens = (fetch: Fetch, oidcClient: OidcClient | null) => async (...params: Parameters) => { +// @ts-ignore +export const fetchWithTokens = (fetch: Fetch, oidcClient: OidcClient | null) : Fetch => async (...params: Parameters) :Promise => { const [url, options, ...rest] = params; const optionTmp = options ? { ...options } : { method: 'GET' }; let headers = new Headers(); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 845ccc160..0d6848641 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,38 +9,38 @@ importers: .: devDependencies: '@typescript-eslint/eslint-plugin': - specifier: ^6.0.0 - version: 6.2.0(@typescript-eslint/parser@6.2.0)(eslint@8.54.0)(typescript@5.1.6) + specifier: 6.13.1 + version: 6.13.1(@typescript-eslint/parser@6.13.1)(eslint@8.54.0)(typescript@5.3.2) '@typescript-eslint/parser': - specifier: ^6.0.0 - version: 6.2.0(eslint@8.54.0)(typescript@5.1.6) + specifier: 6.13.1 + version: 6.13.1(eslint@8.54.0)(typescript@5.3.2) eslint: specifier: ^8.54.0 version: 8.54.0 eslint-config-prettier: specifier: ^8.8.0 - version: 8.9.0(eslint@8.54.0) + version: 8.10.0(eslint@8.54.0) eslint-define-config: specifier: ^1.21.0 - version: 1.22.0 + version: 1.24.1 eslint-plugin-import: - specifier: ^2.27.5 - version: 2.28.0(@typescript-eslint/parser@6.2.0)(eslint@8.54.0) + specifier: 2.29.0 + version: 2.29.0(@typescript-eslint/parser@6.13.1)(eslint@8.54.0) eslint-plugin-jsx-a11y: - specifier: ^6.7.1 - version: 6.7.1(eslint@8.54.0) + specifier: 6.8.0 + version: 6.8.0(eslint@8.54.0) eslint-plugin-n: - specifier: ^16.0.1 - version: 16.0.1(eslint@8.54.0) + specifier: 16.3.1 + version: 16.3.1(eslint@8.54.0) eslint-plugin-no-only-tests: specifier: ^3.1.0 version: 3.1.0 eslint-plugin-prettier: - specifier: ^5.0.0 - version: 5.0.0(eslint-config-prettier@8.9.0)(eslint@8.54.0)(prettier@3.0.0) + specifier: 5.0.1 + version: 5.0.1(eslint-config-prettier@8.10.0)(eslint@8.54.0)(prettier@3.1.0) eslint-plugin-react: - specifier: ^7.32.2 - version: 7.33.1(eslint@8.54.0) + specifier: 7.33.2 + version: 7.33.2(eslint@8.54.0) eslint-plugin-react-hooks: specifier: ^4.6.0 version: 4.6.0(eslint@8.54.0) @@ -52,22 +52,22 @@ importers: version: 10.0.0(eslint@8.54.0) eslint-plugin-testing-library: specifier: ^5.11.0 - version: 5.11.0(eslint@8.54.0)(typescript@5.1.6) + version: 5.11.1(eslint@8.54.0)(typescript@5.3.2) prettier: - specifier: ^3.0.0 - version: 3.0.0 + specifier: 3.1.0 + version: 3.1.0 tslib: specifier: ^2.6.2 version: 2.6.2 tsx: - specifier: ^3.12.7 - version: 3.12.7 + specifier: 4.6.1 + version: 4.6.1 typescript: - specifier: ^5.1.6 - version: 5.1.6 + specifier: 5.3.2 + version: 5.3.2 vitest: - specifier: ^0.33.0 - version: 0.33.0(jsdom@22.1.0) + specifier: 0.34.6 + version: 0.34.6 examples/nextjs-demo: dependencies: @@ -76,7 +76,7 @@ importers: version: link:../../packages/react-oidc next: specifier: latest - version: 14.0.3(react-dom@18.2.0)(react@18.2.0) + version: 13.4.12(react-dom@18.2.0)(react@18.2.0) react: specifier: latest version: 18.2.0 @@ -150,7 +150,7 @@ importers: version: 0.33.0(vitest@0.33.0) bootstrap: specifier: ^4.6.2 - version: 4.6.2(jquery@3.7.0)(popper.js@1.16.1) + version: 4.6.2(jquery@3.7.1)(popper.js@1.16.1) copyfiles: specifier: 2.4.1 version: 2.4.1 @@ -519,6 +519,12 @@ packages: dependencies: regenerator-runtime: 0.13.11 + /@babel/runtime@7.23.5: + resolution: {integrity: sha512-NdUTHcPe4C99WxPub+K9l9tK5/lV4UXIoaHSYgzco9BCyjKAAwzdBI+wWtYqHt7LJdbo74ZjRPJgzVweq1sz0w==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.14.0 + /@babel/template@7.22.5: resolution: {integrity: sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==} engines: {node: '>=6.9.0'} @@ -577,36 +583,6 @@ packages: statuses: 2.0.1 dev: true - /@esbuild-kit/cjs-loader@2.4.2: - resolution: {integrity: sha512-BDXFbYOJzT/NBEtp71cvsrGPwGAMGRB/349rwKuoxNSiKjPraNNnlK6MIIabViCjqZugu6j+xeMDlEkWdHHJSg==} - dependencies: - '@esbuild-kit/core-utils': 3.1.0 - get-tsconfig: 4.6.2 - dev: true - - /@esbuild-kit/core-utils@3.1.0: - resolution: {integrity: sha512-Uuk8RpCg/7fdHSceR1M6XbSZFSuMrxcePFuGgyvsBn+u339dk5OeL4jv2EojwTN2st/unJGsVm4qHWjWNmJ/tw==} - dependencies: - esbuild: 0.17.19 - source-map-support: 0.5.21 - dev: true - - /@esbuild-kit/esm-loader@2.5.5: - resolution: {integrity: sha512-Qwfvj/qoPbClxCRNuac1Du01r9gvNOT+pMYtJDapfB1eoGN1YlJ1BixLyL9WVENRx5RXgNLdfYdx/CuswlGhMw==} - dependencies: - '@esbuild-kit/core-utils': 3.1.0 - get-tsconfig: 4.6.2 - dev: true - - /@esbuild/android-arm64@0.17.19: - resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - /@esbuild/android-arm64@0.18.17: resolution: {integrity: sha512-9np+YYdNDed5+Jgr1TdWBsozZ85U1Oa3xW0c7TWqH0y2aGghXtZsuT8nYRbzOMcl0bXZXjOGbksoTtVOlWrRZg==} engines: {node: '>=12'} @@ -616,10 +592,10 @@ packages: dev: true optional: true - /@esbuild/android-arm@0.17.19: - resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} + /@esbuild/android-arm64@0.18.20: + resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} engines: {node: '>=12'} - cpu: [arm] + cpu: [arm64] os: [android] requiresBuild: true dev: true @@ -634,10 +610,10 @@ packages: dev: true optional: true - /@esbuild/android-x64@0.17.19: - resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} + /@esbuild/android-arm@0.18.20: + resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} engines: {node: '>=12'} - cpu: [x64] + cpu: [arm] os: [android] requiresBuild: true dev: true @@ -652,11 +628,11 @@ packages: dev: true optional: true - /@esbuild/darwin-arm64@0.17.19: - resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} + /@esbuild/android-x64@0.18.20: + resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] + cpu: [x64] + os: [android] requiresBuild: true dev: true optional: true @@ -670,10 +646,10 @@ packages: dev: true optional: true - /@esbuild/darwin-x64@0.17.19: - resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} + /@esbuild/darwin-arm64@0.18.20: + resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} engines: {node: '>=12'} - cpu: [x64] + cpu: [arm64] os: [darwin] requiresBuild: true dev: true @@ -688,11 +664,11 @@ packages: dev: true optional: true - /@esbuild/freebsd-arm64@0.17.19: - resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} + /@esbuild/darwin-x64@0.18.20: + resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] + cpu: [x64] + os: [darwin] requiresBuild: true dev: true optional: true @@ -706,10 +682,10 @@ packages: dev: true optional: true - /@esbuild/freebsd-x64@0.17.19: - resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} + /@esbuild/freebsd-arm64@0.18.20: + resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} engines: {node: '>=12'} - cpu: [x64] + cpu: [arm64] os: [freebsd] requiresBuild: true dev: true @@ -724,11 +700,11 @@ packages: dev: true optional: true - /@esbuild/linux-arm64@0.17.19: - resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} + /@esbuild/freebsd-x64@0.18.20: + resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} engines: {node: '>=12'} - cpu: [arm64] - os: [linux] + cpu: [x64] + os: [freebsd] requiresBuild: true dev: true optional: true @@ -742,10 +718,10 @@ packages: dev: true optional: true - /@esbuild/linux-arm@0.17.19: - resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} + /@esbuild/linux-arm64@0.18.20: + resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} engines: {node: '>=12'} - cpu: [arm] + cpu: [arm64] os: [linux] requiresBuild: true dev: true @@ -760,10 +736,10 @@ packages: dev: true optional: true - /@esbuild/linux-ia32@0.17.19: - resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} + /@esbuild/linux-arm@0.18.20: + resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} engines: {node: '>=12'} - cpu: [ia32] + cpu: [arm] os: [linux] requiresBuild: true dev: true @@ -778,10 +754,10 @@ packages: dev: true optional: true - /@esbuild/linux-loong64@0.17.19: - resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} + /@esbuild/linux-ia32@0.18.20: + resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} engines: {node: '>=12'} - cpu: [loong64] + cpu: [ia32] os: [linux] requiresBuild: true dev: true @@ -796,10 +772,10 @@ packages: dev: true optional: true - /@esbuild/linux-mips64el@0.17.19: - resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} + /@esbuild/linux-loong64@0.18.20: + resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} engines: {node: '>=12'} - cpu: [mips64el] + cpu: [loong64] os: [linux] requiresBuild: true dev: true @@ -814,10 +790,10 @@ packages: dev: true optional: true - /@esbuild/linux-ppc64@0.17.19: - resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} + /@esbuild/linux-mips64el@0.18.20: + resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} engines: {node: '>=12'} - cpu: [ppc64] + cpu: [mips64el] os: [linux] requiresBuild: true dev: true @@ -832,10 +808,10 @@ packages: dev: true optional: true - /@esbuild/linux-riscv64@0.17.19: - resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} + /@esbuild/linux-ppc64@0.18.20: + resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} engines: {node: '>=12'} - cpu: [riscv64] + cpu: [ppc64] os: [linux] requiresBuild: true dev: true @@ -850,10 +826,10 @@ packages: dev: true optional: true - /@esbuild/linux-s390x@0.17.19: - resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} + /@esbuild/linux-riscv64@0.18.20: + resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} engines: {node: '>=12'} - cpu: [s390x] + cpu: [riscv64] os: [linux] requiresBuild: true dev: true @@ -868,10 +844,10 @@ packages: dev: true optional: true - /@esbuild/linux-x64@0.17.19: - resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} + /@esbuild/linux-s390x@0.18.20: + resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} engines: {node: '>=12'} - cpu: [x64] + cpu: [s390x] os: [linux] requiresBuild: true dev: true @@ -886,11 +862,11 @@ packages: dev: true optional: true - /@esbuild/netbsd-x64@0.17.19: - resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} + /@esbuild/linux-x64@0.18.20: + resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} engines: {node: '>=12'} cpu: [x64] - os: [netbsd] + os: [linux] requiresBuild: true dev: true optional: true @@ -904,11 +880,11 @@ packages: dev: true optional: true - /@esbuild/openbsd-x64@0.17.19: - resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} + /@esbuild/netbsd-x64@0.18.20: + resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} engines: {node: '>=12'} cpu: [x64] - os: [openbsd] + os: [netbsd] requiresBuild: true dev: true optional: true @@ -922,11 +898,11 @@ packages: dev: true optional: true - /@esbuild/sunos-x64@0.17.19: - resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} + /@esbuild/openbsd-x64@0.18.20: + resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} engines: {node: '>=12'} cpu: [x64] - os: [sunos] + os: [openbsd] requiresBuild: true dev: true optional: true @@ -940,11 +916,11 @@ packages: dev: true optional: true - /@esbuild/win32-arm64@0.17.19: - resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} + /@esbuild/sunos-x64@0.18.20: + resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} engines: {node: '>=12'} - cpu: [arm64] - os: [win32] + cpu: [x64] + os: [sunos] requiresBuild: true dev: true optional: true @@ -958,10 +934,10 @@ packages: dev: true optional: true - /@esbuild/win32-ia32@0.17.19: - resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} + /@esbuild/win32-arm64@0.18.20: + resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} engines: {node: '>=12'} - cpu: [ia32] + cpu: [arm64] os: [win32] requiresBuild: true dev: true @@ -976,10 +952,10 @@ packages: dev: true optional: true - /@esbuild/win32-x64@0.17.19: - resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} + /@esbuild/win32-ia32@0.18.20: + resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} engines: {node: '>=12'} - cpu: [x64] + cpu: [ia32] os: [win32] requiresBuild: true dev: true @@ -994,6 +970,15 @@ packages: dev: true optional: true + /@esbuild/win32-x64@0.18.20: + resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@eslint-community/eslint-utils@4.4.0(eslint@8.54.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1004,8 +989,8 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@eslint-community/regexpp@4.6.2: - resolution: {integrity: sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==} + /@eslint-community/regexpp@4.10.0: + resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true @@ -1016,8 +1001,8 @@ packages: ajv: 6.12.6 debug: 4.3.4 espree: 9.6.1 - globals: 13.20.0 - ignore: 5.2.4 + globals: 13.23.0 + ignore: 5.3.0 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -1068,8 +1053,8 @@ packages: engines: {node: '>=8'} dev: true - /@jest/schemas@29.6.0: - resolution: {integrity: sha512-rxLjXyJBTL4LQeJW3aKo0M/+GkCOXsO+8i9Iu7eDb6KwtP65ayoDsitrdPBtujxQ88k4wI2FNYfa6TOGwSn6cQ==} + /@jest/schemas@29.6.3: + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@sinclair/typebox': 0.27.8 @@ -1131,7 +1116,7 @@ packages: '@rushstack/ts-command-line': 4.15.1 colors: 1.2.5 lodash: 4.17.21 - resolve: 1.22.3 + resolve: 1.22.8 semver: 7.5.4 source-map: 0.6.1 typescript: 5.0.4 @@ -1169,12 +1154,12 @@ packages: strict-event-emitter: 0.5.1 dev: true - /@next/env@14.0.3: - resolution: {integrity: sha512-7xRqh9nMvP5xrW4/+L0jgRRX+HoNRGnfJpD+5Wq6/13j3dsdzxO3BCXn7D3hMqsDb+vjZnJq+vI7+EtgrYZTeA==} + /@next/env@13.4.12: + resolution: {integrity: sha512-RmHanbV21saP/6OEPBJ7yJMuys68cIf8OBBWd7+uj40LdpmswVAwe1uzeuFyUsd6SfeITWT3XnQfn6wULeKwDQ==} dev: false - /@next/swc-darwin-arm64@14.0.3: - resolution: {integrity: sha512-64JbSvi3nbbcEtyitNn2LEDS/hcleAFpHdykpcnrstITFlzFgB/bW0ER5/SJJwUPj+ZPY+z3e+1jAfcczRLVGw==} + /@next/swc-darwin-arm64@13.4.12: + resolution: {integrity: sha512-deUrbCXTMZ6ZhbOoloqecnUeNpUOupi8SE2tx4jPfNS9uyUR9zK4iXBvH65opVcA/9F5I/p8vDXSYbUlbmBjZg==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] @@ -1182,8 +1167,8 @@ packages: dev: false optional: true - /@next/swc-darwin-x64@14.0.3: - resolution: {integrity: sha512-RkTf+KbAD0SgYdVn1XzqE/+sIxYGB7NLMZRn9I4Z24afrhUpVJx6L8hsRnIwxz3ERE2NFURNliPjJ2QNfnWicQ==} + /@next/swc-darwin-x64@13.4.12: + resolution: {integrity: sha512-WRvH7RxgRHlC1yb5oG0ZLx8F7uci9AivM5/HGGv9ZyG2Als8Ij64GC3d+mQ5sJhWjusyU6T6V1WKTUoTmOB0zQ==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] @@ -1191,8 +1176,8 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-gnu@14.0.3: - resolution: {integrity: sha512-3tBWGgz7M9RKLO6sPWC6c4pAw4geujSwQ7q7Si4d6bo0l6cLs4tmO+lnSwFp1Tm3lxwfMk0SgkJT7EdwYSJvcg==} + /@next/swc-linux-arm64-gnu@13.4.12: + resolution: {integrity: sha512-YEKracAWuxp54tKiAvvq73PUs9lok57cc8meYRibTWe/VdPB2vLgkTVWFcw31YDuRXdEhdX0fWS6Q+ESBhnEig==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -1200,8 +1185,8 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-musl@14.0.3: - resolution: {integrity: sha512-v0v8Kb8j8T23jvVUWZeA2D8+izWspeyeDGNaT2/mTHWp7+37fiNfL8bmBWiOmeumXkacM/AB0XOUQvEbncSnHA==} + /@next/swc-linux-arm64-musl@13.4.12: + resolution: {integrity: sha512-LhJR7/RAjdHJ2Isl2pgc/JaoxNk0KtBgkVpiDJPVExVWA1c6gzY57+3zWuxuyWzTG+fhLZo2Y80pLXgIJv7g3g==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -1209,8 +1194,8 @@ packages: dev: false optional: true - /@next/swc-linux-x64-gnu@14.0.3: - resolution: {integrity: sha512-VM1aE1tJKLBwMGtyBR21yy+STfl0MapMQnNrXkxeyLs0GFv/kZqXS5Jw/TQ3TSUnbv0QPDf/X8sDXuMtSgG6eg==} + /@next/swc-linux-x64-gnu@13.4.12: + resolution: {integrity: sha512-1DWLL/B9nBNiQRng+1aqs3OaZcxC16Nf+mOnpcrZZSdyKHek3WQh6j/fkbukObgNGwmCoVevLUa/p3UFTTqgqg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -1218,8 +1203,8 @@ packages: dev: false optional: true - /@next/swc-linux-x64-musl@14.0.3: - resolution: {integrity: sha512-64EnmKy18MYFL5CzLaSuUn561hbO1Gk16jM/KHznYP3iCIfF9e3yULtHaMy0D8zbHfxset9LTOv6cuYKJgcOxg==} + /@next/swc-linux-x64-musl@13.4.12: + resolution: {integrity: sha512-kEAJmgYFhp0VL+eRWmUkVxLVunn7oL9Mdue/FS8yzRBVj7Z0AnIrHpTIeIUl1bbdQq1VaoOztnKicAjfkLTRCQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -1227,8 +1212,8 @@ packages: dev: false optional: true - /@next/swc-win32-arm64-msvc@14.0.3: - resolution: {integrity: sha512-WRDp8QrmsL1bbGtsh5GqQ/KWulmrnMBgbnb+59qNTW1kVi1nG/2ndZLkcbs2GX7NpFLlToLRMWSQXmPzQm4tog==} + /@next/swc-win32-arm64-msvc@13.4.12: + resolution: {integrity: sha512-GMLuL/loR6yIIRTnPRY6UGbLL9MBdw2anxkOnANxvLvsml4F0HNIgvnU3Ej4BjbqMTNjD4hcPFdlEow4XHPdZA==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] @@ -1236,8 +1221,8 @@ packages: dev: false optional: true - /@next/swc-win32-ia32-msvc@14.0.3: - resolution: {integrity: sha512-EKffQeqCrj+t6qFFhIFTRoqb2QwX1mU7iTOvMyLbYw3QtqTw9sMwjykyiMlZlrfm2a4fA84+/aeW+PMg1MjuTg==} + /@next/swc-win32-ia32-msvc@13.4.12: + resolution: {integrity: sha512-PhgNqN2Vnkm7XaMdRmmX0ZSwZXQAtamBVSa9A/V1dfKQCV1rjIZeiy/dbBnVYGdj63ANfsOR/30XpxP71W0eww==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] @@ -1245,8 +1230,8 @@ packages: dev: false optional: true - /@next/swc-win32-x64-msvc@14.0.3: - resolution: {integrity: sha512-ERhKPSJ1vQrPiwrs15Pjz/rvDHZmkmvbf/BjPN/UCOI++ODftT0GtasDPi0j+y6PPJi5HsXw+dpRaXUaw4vjuQ==} + /@next/swc-win32-x64-msvc@13.4.12: + resolution: {integrity: sha512-Z+56e/Ljt0bUs+T+jPjhFyxYBcdY2RIq9ELFU+qAMQMteHo7ymbV7CKmlcX59RI9C4YzN8PgMgLyAoi916b5HA==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -1302,7 +1287,7 @@ packages: engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} dependencies: cross-spawn: 7.0.3 - fast-glob: 3.3.1 + fast-glob: 3.3.2 is-glob: 4.0.3 open: 9.1.0 picocolors: 1.0.0 @@ -1340,7 +1325,7 @@ packages: fs-extra: 7.0.1 import-lazy: 4.0.0 jju: 1.4.0 - resolve: 1.22.3 + resolve: 1.22.8 semver: 7.5.4 z-schema: 5.0.5 dev: true @@ -1348,7 +1333,7 @@ packages: /@rushstack/rig-package@0.4.0: resolution: {integrity: sha512-FnM1TQLJYwSiurP6aYSnansprK5l8WUK8VG38CmAaZs29ZeL1msjK0AP1VS4ejD33G0kE/2cpsPsS9jDenBMxw==} dependencies: - resolve: 1.22.3 + resolve: 1.22.8 strip-json-comments: 3.1.1 dev: true @@ -1365,8 +1350,8 @@ packages: resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} dev: true - /@swc/helpers@0.5.2: - resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==} + /@swc/helpers@0.5.1: + resolution: {integrity: sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg==} dependencies: tslib: 2.6.2 dev: false @@ -1376,7 +1361,7 @@ packages: engines: {node: '>=14'} dependencies: '@babel/code-frame': 7.22.5 - '@babel/runtime': 7.22.6 + '@babel/runtime': 7.23.5 '@types/aria-query': 5.0.1 aria-query: 5.1.3 chalk: 4.1.2 @@ -1461,7 +1446,17 @@ packages: /@types/chai-subset@1.3.3: resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} dependencies: - '@types/chai': 4.3.5 + '@types/chai': 4.3.11 + dev: true + + /@types/chai-subset@1.3.5: + resolution: {integrity: sha512-c2mPnw+xHtXDoHmdtcCXGwyLMiauiAyxWMzhGpqHC4nqI/Y5G2XhTampslK2rb59kpcuHon03UH8W6iYUzw88A==} + dependencies: + '@types/chai': 4.3.11 + dev: true + + /@types/chai@4.3.11: + resolution: {integrity: sha512-qQR1dr2rGIHYlJulmr8Ioq3De0Le9E4MJ5AiaeAETJJpndT1uUNHsGFK3L/UIu+rbkQSdj8J/w2bCsBZc/Y5fQ==} dev: true /@types/chai@4.3.5: @@ -1490,8 +1485,8 @@ packages: resolution: {integrity: sha512-qC4bCqYGy1y/NP7dDVr7KJarn+PbX1nSpwA7JXdu0HxT3QYjO8MJ+cntENtHFVy2dRAyBV23OZ6MxsW1AM1L8g==} dev: true - /@types/json-schema@7.0.12: - resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==} + /@types/json-schema@7.0.15: + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} dev: true /@types/json5@0.0.29: @@ -1534,8 +1529,8 @@ packages: resolution: {integrity: sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==} dev: true - /@types/semver@7.5.0: - resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} + /@types/semver@7.5.6: + resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} dev: true /@types/statuses@2.0.3: @@ -1547,8 +1542,8 @@ packages: dependencies: '@types/jest': 27.5.2 - /@typescript-eslint/eslint-plugin@6.2.0(@typescript-eslint/parser@6.2.0)(eslint@8.54.0)(typescript@5.1.6): - resolution: {integrity: sha512-rClGrMuyS/3j0ETa1Ui7s6GkLhfZGKZL3ZrChLeAiACBE/tRc1wq8SNZESUuluxhLj9FkUefRs2l6bCIArWBiQ==} + /@typescript-eslint/eslint-plugin@6.13.1(@typescript-eslint/parser@6.13.1)(eslint@8.54.0)(typescript@5.3.2): + resolution: {integrity: sha512-5bQDGkXaxD46bPvQt08BUz9YSaO4S0fB1LB5JHQuXTfkGPI3+UUeS387C/e9jRie5GqT8u5kFTrMvAjtX4O5kA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha @@ -1558,27 +1553,26 @@ packages: typescript: optional: true dependencies: - '@eslint-community/regexpp': 4.6.2 - '@typescript-eslint/parser': 6.2.0(eslint@8.54.0)(typescript@5.1.6) - '@typescript-eslint/scope-manager': 6.2.0 - '@typescript-eslint/type-utils': 6.2.0(eslint@8.54.0)(typescript@5.1.6) - '@typescript-eslint/utils': 6.2.0(eslint@8.54.0)(typescript@5.1.6) - '@typescript-eslint/visitor-keys': 6.2.0 + '@eslint-community/regexpp': 4.10.0 + '@typescript-eslint/parser': 6.13.1(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/scope-manager': 6.13.1 + '@typescript-eslint/type-utils': 6.13.1(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/utils': 6.13.1(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/visitor-keys': 6.13.1 debug: 4.3.4 eslint: 8.54.0 graphemer: 1.4.0 - ignore: 5.2.4 + ignore: 5.3.0 natural-compare: 1.4.0 - natural-compare-lite: 1.4.0 semver: 7.5.4 - ts-api-utils: 1.0.1(typescript@5.1.6) - typescript: 5.1.6 + ts-api-utils: 1.0.3(typescript@5.3.2) + typescript: 5.3.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@6.2.0(eslint@8.54.0)(typescript@5.1.6): - resolution: {integrity: sha512-igVYOqtiK/UsvKAmmloQAruAdUHihsOCvplJpplPZ+3h4aDkC/UKZZNKgB6h93ayuYLuEymU3h8nF1xMRbh37g==} + /@typescript-eslint/parser@6.13.1(eslint@8.54.0)(typescript@5.3.2): + resolution: {integrity: sha512-fs2XOhWCzRhqMmQf0eicLa/CWSaYss2feXsy7xBD/pLyWke/jCIVc2s1ikEAtSW7ina1HNhv7kONoEfVNEcdDQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -1587,13 +1581,13 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.2.0 - '@typescript-eslint/types': 6.2.0 - '@typescript-eslint/typescript-estree': 6.2.0(typescript@5.1.6) - '@typescript-eslint/visitor-keys': 6.2.0 + '@typescript-eslint/scope-manager': 6.13.1 + '@typescript-eslint/types': 6.13.1 + '@typescript-eslint/typescript-estree': 6.13.1(typescript@5.3.2) + '@typescript-eslint/visitor-keys': 6.13.1 debug: 4.3.4 eslint: 8.54.0 - typescript: 5.1.6 + typescript: 5.3.2 transitivePeerDependencies: - supports-color dev: true @@ -1606,16 +1600,16 @@ packages: '@typescript-eslint/visitor-keys': 5.62.0 dev: true - /@typescript-eslint/scope-manager@6.2.0: - resolution: {integrity: sha512-1ZMNVgm5nnHURU8ZSJ3snsHzpFeNK84rdZjluEVBGNu7jDymfqceB3kdIZ6A4xCfEFFhRIB6rF8q/JIqJd2R0Q==} + /@typescript-eslint/scope-manager@6.13.1: + resolution: {integrity: sha512-BW0kJ7ceiKi56GbT2KKzZzN+nDxzQK2DS6x0PiSMPjciPgd/JRQGMibyaN2cPt2cAvuoH0oNvn2fwonHI+4QUQ==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.2.0 - '@typescript-eslint/visitor-keys': 6.2.0 + '@typescript-eslint/types': 6.13.1 + '@typescript-eslint/visitor-keys': 6.13.1 dev: true - /@typescript-eslint/type-utils@6.2.0(eslint@8.54.0)(typescript@5.1.6): - resolution: {integrity: sha512-DnGZuNU2JN3AYwddYIqrVkYW0uUQdv0AY+kz2M25euVNlujcN2u+rJgfJsBFlUEzBB6OQkUqSZPyuTLf2bP5mw==} + /@typescript-eslint/type-utils@6.13.1(eslint@8.54.0)(typescript@5.3.2): + resolution: {integrity: sha512-A2qPlgpxx2v//3meMqQyB1qqTg1h1dJvzca7TugM3Yc2USDY+fsRBiojAEo92HO7f5hW5mjAUF6qobOPzlBCBQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -1624,12 +1618,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.2.0(typescript@5.1.6) - '@typescript-eslint/utils': 6.2.0(eslint@8.54.0)(typescript@5.1.6) + '@typescript-eslint/typescript-estree': 6.13.1(typescript@5.3.2) + '@typescript-eslint/utils': 6.13.1(eslint@8.54.0)(typescript@5.3.2) debug: 4.3.4 eslint: 8.54.0 - ts-api-utils: 1.0.1(typescript@5.1.6) - typescript: 5.1.6 + ts-api-utils: 1.0.3(typescript@5.3.2) + typescript: 5.3.2 transitivePeerDependencies: - supports-color dev: true @@ -1639,12 +1633,12 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/types@6.2.0: - resolution: {integrity: sha512-1nRRaDlp/XYJQLvkQJG5F3uBTno5SHPT7XVcJ5n1/k2WfNI28nJsvLakxwZRNY5spuatEKO7d5nZWsQpkqXwBA==} + /@typescript-eslint/types@6.13.1: + resolution: {integrity: sha512-gjeEskSmiEKKFIbnhDXUyiqVma1gRCQNbVZ1C8q7Zjcxh3WZMbzWVfGE9rHfWd1msQtPS0BVD9Jz9jded44eKg==} engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@5.62.0(typescript@5.1.6): + /@typescript-eslint/typescript-estree@5.62.0(typescript@5.3.2): resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -1659,14 +1653,14 @@ packages: globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 - tsutils: 3.21.0(typescript@5.1.6) - typescript: 5.1.6 + tsutils: 3.21.0(typescript@5.3.2) + typescript: 5.3.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/typescript-estree@6.2.0(typescript@5.1.6): - resolution: {integrity: sha512-Mts6+3HQMSM+LZCglsc2yMIny37IhUgp1Qe8yJUYVyO6rHP7/vN0vajKu3JvHCBIy8TSiKddJ/Zwu80jhnGj1w==} + /@typescript-eslint/typescript-estree@6.13.1(typescript@5.3.2): + resolution: {integrity: sha512-sBLQsvOC0Q7LGcUHO5qpG1HxRgePbT6wwqOiGLpR8uOJvPJbfs0mW3jPA3ujsDvfiVwVlWUDESNXv44KtINkUQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -1674,30 +1668,30 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.2.0 - '@typescript-eslint/visitor-keys': 6.2.0 + '@typescript-eslint/types': 6.13.1 + '@typescript-eslint/visitor-keys': 6.13.1 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 - ts-api-utils: 1.0.1(typescript@5.1.6) - typescript: 5.1.6 + ts-api-utils: 1.0.3(typescript@5.3.2) + typescript: 5.3.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@5.62.0(eslint@8.54.0)(typescript@5.1.6): + /@typescript-eslint/utils@5.62.0(eslint@8.54.0)(typescript@5.3.2): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) - '@types/json-schema': 7.0.12 - '@types/semver': 7.5.0 + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.6 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6) + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.3.2) eslint: 8.54.0 eslint-scope: 5.1.1 semver: 7.5.4 @@ -1706,18 +1700,18 @@ packages: - typescript dev: true - /@typescript-eslint/utils@6.2.0(eslint@8.54.0)(typescript@5.1.6): - resolution: {integrity: sha512-RCFrC1lXiX1qEZN8LmLrxYRhOkElEsPKTVSNout8DMzf8PeWoQG7Rxz2SadpJa3VSh5oYKGwt7j7X/VRg+Y3OQ==} + /@typescript-eslint/utils@6.13.1(eslint@8.54.0)(typescript@5.3.2): + resolution: {integrity: sha512-ouPn/zVoan92JgAegesTXDB/oUp6BP1v8WpfYcqh649ejNc9Qv+B4FF2Ff626kO1xg0wWwwG48lAJ4JuesgdOw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) - '@types/json-schema': 7.0.12 - '@types/semver': 7.5.0 - '@typescript-eslint/scope-manager': 6.2.0 - '@typescript-eslint/types': 6.2.0 - '@typescript-eslint/typescript-estree': 6.2.0(typescript@5.1.6) + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.6 + '@typescript-eslint/scope-manager': 6.13.1 + '@typescript-eslint/types': 6.13.1 + '@typescript-eslint/typescript-estree': 6.13.1(typescript@5.3.2) eslint: 8.54.0 semver: 7.5.4 transitivePeerDependencies: @@ -1730,15 +1724,15 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: '@typescript-eslint/types': 5.62.0 - eslint-visitor-keys: 3.4.2 + eslint-visitor-keys: 3.4.3 dev: true - /@typescript-eslint/visitor-keys@6.2.0: - resolution: {integrity: sha512-QbaYUQVKKo9bgCzpjz45llCfwakyoxHetIy8CAvYCtd16Zu1KrpzNHofwF8kGkpPOxZB2o6kz+0nqH8ZkIzuoQ==} + /@typescript-eslint/visitor-keys@6.13.1: + resolution: {integrity: sha512-NDhQUy2tg6XGNBGDRm1XybOHSia8mcXmlbKWoQP+nm1BIIMxa55shyJfZkHpEBN62KNPLrocSM2PdPcaLgDKMQ==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.2.0 - eslint-visitor-keys: 3.4.2 + '@typescript-eslint/types': 6.13.1 + eslint-visitor-keys: 3.4.3 dev: true /@ungap/structured-clone@1.2.0: @@ -1799,7 +1793,15 @@ packages: dependencies: '@vitest/spy': 0.33.0 '@vitest/utils': 0.33.0 - chai: 4.3.7 + chai: 4.3.10 + dev: true + + /@vitest/expect@0.34.6: + resolution: {integrity: sha512-QUzKpUQRc1qC7qdGo7rMK3AkETI7w18gTCUrsNnyjjJKYiuUB9+TQK3QnR1unhCnWRC0AbKv2omLGQDF/mIjOw==} + dependencies: + '@vitest/spy': 0.34.6 + '@vitest/utils': 0.34.6 + chai: 4.3.10 dev: true /@vitest/runner@0.33.0: @@ -1810,26 +1812,56 @@ packages: pathe: 1.1.1 dev: true + /@vitest/runner@0.34.6: + resolution: {integrity: sha512-1CUQgtJSLF47NnhN+F9X2ycxUP0kLHQ/JWvNHbeBfwW8CzEGgeskzNnHDyv1ieKTltuR6sdIHV+nmR6kPxQqzQ==} + dependencies: + '@vitest/utils': 0.34.6 + p-limit: 4.0.0 + pathe: 1.1.1 + dev: true + /@vitest/snapshot@0.33.0: resolution: {integrity: sha512-tJjrl//qAHbyHajpFvr8Wsk8DIOODEebTu7pgBrP07iOepR5jYkLFiqLq2Ltxv+r0uptUb4izv1J8XBOwKkVYA==} dependencies: - magic-string: 0.30.2 + magic-string: 0.30.5 + pathe: 1.1.1 + pretty-format: 29.7.0 + dev: true + + /@vitest/snapshot@0.34.6: + resolution: {integrity: sha512-B3OZqYn6k4VaN011D+ve+AA4whM4QkcwcrwaKwAbyyvS/NB1hCWjFIBQxAQQSQir9/RtyAAGuq+4RJmbn2dH4w==} + dependencies: + magic-string: 0.30.5 pathe: 1.1.1 - pretty-format: 29.6.2 + pretty-format: 29.7.0 dev: true /@vitest/spy@0.33.0: resolution: {integrity: sha512-Kv+yZ4hnH1WdiAkPUQTpRxW8kGtH8VRTnus7ZTGovFYM1ZezJpvGtb9nPIjPnptHbsyIAxYZsEpVPYgtpjGnrg==} dependencies: - tinyspy: 2.1.1 + tinyspy: 2.2.0 + dev: true + + /@vitest/spy@0.34.6: + resolution: {integrity: sha512-xaCvneSaeBw/cz8ySmF7ZwGvL0lBjfvqc1LpQ/vcdHEvpLn3Ff1vAvjw+CoGn0802l++5L/pxb7whwcWAw+DUQ==} + dependencies: + tinyspy: 2.2.0 dev: true /@vitest/utils@0.33.0: resolution: {integrity: sha512-pF1w22ic965sv+EN6uoePkAOTkAPWM03Ri/jXNyMIKBb/XHLDPfhLvf/Fa9g0YECevAIz56oVYXhodLvLQ/awA==} dependencies: - diff-sequences: 29.4.3 - loupe: 2.3.6 - pretty-format: 29.6.2 + diff-sequences: 29.6.3 + loupe: 2.3.7 + pretty-format: 29.7.0 + dev: true + + /@vitest/utils@0.34.6: + resolution: {integrity: sha512-IG5aDD8S6zlvloDsnzHw0Ut5xczlF+kv2BOTo+iXfPr54Yhi5qbVOgGB1hZaVq4iJ4C/MZ2J0y15IlsV/ZcI0A==} + dependencies: + diff-sequences: 29.6.3 + loupe: 2.3.7 + pretty-format: 29.7.0 dev: true /@volar/language-core@1.10.0: @@ -1908,12 +1940,12 @@ packages: resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} dev: true - /acorn-jsx@5.3.2(acorn@8.10.0): + /acorn-jsx@5.3.2(acorn@8.11.2): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 8.10.0 + acorn: 8.11.2 dev: true /acorn-walk@8.2.0: @@ -1921,12 +1953,23 @@ packages: engines: {node: '>=0.4.0'} dev: true + /acorn-walk@8.3.0: + resolution: {integrity: sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==} + engines: {node: '>=0.4.0'} + dev: true + /acorn@8.10.0: resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} engines: {node: '>=0.4.0'} hasBin: true dev: true + /acorn@8.11.2: + resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + /agent-base@6.0.2: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} @@ -2021,17 +2064,17 @@ packages: /array-buffer-byte-length@1.0.0: resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 is-array-buffer: 3.0.2 - /array-includes@3.1.6: - resolution: {integrity: sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==} + /array-includes@3.1.7: + resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.1 - get-intrinsic: 1.2.1 + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 is-string: 1.0.7 dev: true @@ -2040,55 +2083,56 @@ packages: engines: {node: '>=8'} dev: true - /array.prototype.findlastindex@1.2.2: - resolution: {integrity: sha512-tb5thFFlUcp7NdNF6/MpDk/1r/4awWG1FIz3YqDf+/zJSTezBb+/5WViH41obXULHVpDzoiCLpJ/ZO9YbJMsdw==} + /array.prototype.findlastindex@1.2.3: + resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.1 - es-shim-unscopables: 1.0.0 - get-intrinsic: 1.2.1 + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-shim-unscopables: 1.0.2 + get-intrinsic: 1.2.2 dev: true - /array.prototype.flat@1.3.1: - resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==} + /array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.1 - es-shim-unscopables: 1.0.0 + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-shim-unscopables: 1.0.2 dev: true - /array.prototype.flatmap@1.3.1: - resolution: {integrity: sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==} + /array.prototype.flatmap@1.3.2: + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.1 - es-shim-unscopables: 1.0.0 + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-shim-unscopables: 1.0.2 dev: true - /array.prototype.tosorted@1.1.1: - resolution: {integrity: sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==} + /array.prototype.tosorted@1.1.2: + resolution: {integrity: sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==} dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.1 - es-shim-unscopables: 1.0.0 - get-intrinsic: 1.2.1 + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-shim-unscopables: 1.0.2 + get-intrinsic: 1.2.2 dev: true - /arraybuffer.prototype.slice@1.0.1: - resolution: {integrity: sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==} + /arraybuffer.prototype.slice@1.0.2: + resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} engines: {node: '>= 0.4'} dependencies: array-buffer-byte-length: 1.0.0 - call-bind: 1.0.2 - define-properties: 1.2.0 - get-intrinsic: 1.2.1 + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 is-array-buffer: 3.0.2 is-shared-array-buffer: 1.0.2 dev: true @@ -2107,8 +2151,14 @@ packages: resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} dev: true - /ast-types-flow@0.0.7: - resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==} + /ast-types-flow@0.0.8: + resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} + dev: true + + /asynciterator.prototype@1.0.0: + resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==} + dependencies: + has-symbols: 1.0.3 dev: true /asynckit@0.4.0: @@ -2119,8 +2169,8 @@ packages: resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} engines: {node: '>= 0.4'} - /axe-core@4.7.2: - resolution: {integrity: sha512-zIURGIS1E1Q4pcrMjp+nnEh+16G56eG/MUllJH8yEvw7asDo7Ac9uhC9KIH5jzpITueEZolfYglnCGIuSBz39g==} + /axe-core@4.7.0: + resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==} engines: {node: '>=4'} dev: true @@ -2137,8 +2187,8 @@ packages: /base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - /big-integer@1.6.51: - resolution: {integrity: sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==} + /big-integer@1.6.52: + resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} engines: {node: '>=0.6'} dev: true @@ -2155,13 +2205,13 @@ packages: readable-stream: 3.6.2 dev: true - /bootstrap@4.6.2(jquery@3.7.0)(popper.js@1.16.1): + /bootstrap@4.6.2(jquery@3.7.1)(popper.js@1.16.1): resolution: {integrity: sha512-51Bbp/Uxr9aTuy6ca/8FbFloBUJZLHwnhTcnjIeRn2suQWsWzcuJhGjKDB5eppVte/8oCdOL3VuwxvZDUggwGQ==} peerDependencies: jquery: 1.9.1 - 3 popper.js: ^1.16.1 dependencies: - jquery: 3.7.0 + jquery: 3.7.1 popper.js: 1.16.1 dev: true @@ -2169,7 +2219,7 @@ packages: resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==} engines: {node: '>= 5.10.0'} dependencies: - big-integer: 1.6.51 + big-integer: 1.6.52 dev: true /brace-expansion@1.1.11: @@ -2197,16 +2247,12 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001517 + caniuse-lite: 1.0.30001565 electron-to-chromium: 1.4.477 node-releases: 2.0.13 update-browserslist-db: 1.0.11(browserslist@4.21.10) dev: true - /buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - dev: true - /buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} dependencies: @@ -2214,6 +2260,11 @@ packages: ieee754: 1.2.1 dev: true + /builtin-modules@3.3.0: + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} + engines: {node: '>=6'} + dev: true + /builtins@5.0.1: resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} dependencies: @@ -2258,11 +2309,12 @@ packages: engines: {node: '>=8'} dev: true - /call-bind@1.0.2: - resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + /call-bind@1.0.5: + resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} dependencies: - function-bind: 1.1.1 - get-intrinsic: 1.2.1 + function-bind: 1.1.2 + get-intrinsic: 1.2.2 + set-function-length: 1.1.1 /callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} @@ -2284,18 +2336,31 @@ packages: engines: {node: '>=14.16'} dev: true - /caniuse-lite@1.0.30001517: - resolution: {integrity: sha512-Vdhm5S11DaFVLlyiKu4hiUTkpZu+y1KA/rZZqVQfOD5YdDT/eQKlkt7NaE0WGOFgX32diqt9MiP9CAiFeRklaA==} + /caniuse-lite@1.0.30001565: + resolution: {integrity: sha512-xrE//a3O7TP0vaJ8ikzkD2c2NgcVUvsEe2IvFTntV4Yd1Z9FVzh+gW+enX96L0psrbaFMcVcH2l90xNuGDWc8w==} + + /chai@4.3.10: + resolution: {integrity: sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==} + engines: {node: '>=4'} + dependencies: + assertion-error: 1.1.0 + check-error: 1.0.3 + deep-eql: 4.1.3 + get-func-name: 2.0.2 + loupe: 2.3.7 + pathval: 1.1.1 + type-detect: 4.0.8 + dev: true /chai@4.3.7: resolution: {integrity: sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==} engines: {node: '>=4'} dependencies: assertion-error: 1.1.0 - check-error: 1.0.2 + check-error: 1.0.3 deep-eql: 4.1.3 - get-func-name: 2.0.0 - loupe: 2.3.6 + get-func-name: 2.0.2 + loupe: 2.3.7 pathval: 1.1.1 type-detect: 4.0.8 dev: true @@ -2326,8 +2391,10 @@ packages: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} dev: true - /check-error@1.0.2: - resolution: {integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==} + /check-error@1.0.3: + resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + dependencies: + get-func-name: 2.0.2 dev: true /chokidar@3.5.3: @@ -2342,7 +2409,7 @@ packages: normalize-path: 3.0.0 readdirp: 3.6.0 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 dev: true /clean-stack@4.2.0: @@ -2431,8 +2498,8 @@ packages: dev: true optional: true - /comment-parser@1.3.1: - resolution: {integrity: sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA==} + /comment-parser@1.4.1: + resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==} engines: {node: '>= 12.0.0'} dev: true @@ -2599,9 +2666,9 @@ packages: resolution: {integrity: sha512-xjVyBf0w5vH0I42jdAZzOKVldmPgSulmiyPRywoyq7HXC9qdgo17kxJE+rdnif5Tz6+pIrpJI8dCpMNLIGkUiA==} dependencies: array-buffer-byte-length: 1.0.0 - call-bind: 1.0.2 + call-bind: 1.0.5 es-get-iterator: 1.1.3 - get-intrinsic: 1.2.1 + get-intrinsic: 1.2.2 is-arguments: 1.1.1 is-array-buffer: 3.0.2 is-date-object: 1.0.5 @@ -2611,11 +2678,11 @@ packages: object-is: 1.1.5 object-keys: 1.1.1 object.assign: 4.1.4 - regexp.prototype.flags: 1.5.0 + regexp.prototype.flags: 1.5.1 side-channel: 1.0.4 which-boxed-primitive: 1.0.2 which-collection: 1.0.1 - which-typed-array: 1.1.11 + which-typed-array: 1.1.13 /deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} @@ -2645,16 +2712,25 @@ packages: clone: 1.0.4 dev: true + /define-data-property@1.1.1: + resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.2 + gopd: 1.0.1 + has-property-descriptors: 1.0.1 + /define-lazy-prop@3.0.0: resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} engines: {node: '>=12'} dev: true - /define-properties@1.2.0: - resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} + /define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} dependencies: - has-property-descriptors: 1.0.0 + define-data-property: 1.1.1 + has-property-descriptors: 1.0.1 object-keys: 1.1.1 /delayed-stream@1.0.0: @@ -2670,8 +2746,8 @@ packages: resolution: {integrity: sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - /diff-sequences@29.4.3: - resolution: {integrity: sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==} + /diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true @@ -2733,26 +2809,26 @@ packages: is-arrayish: 0.2.1 dev: true - /es-abstract@1.22.1: - resolution: {integrity: sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==} + /es-abstract@1.22.3: + resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==} engines: {node: '>= 0.4'} dependencies: array-buffer-byte-length: 1.0.0 - arraybuffer.prototype.slice: 1.0.1 + arraybuffer.prototype.slice: 1.0.2 available-typed-arrays: 1.0.5 - call-bind: 1.0.2 - es-set-tostringtag: 2.0.1 + call-bind: 1.0.5 + es-set-tostringtag: 2.0.2 es-to-primitive: 1.2.1 - function.prototype.name: 1.1.5 - get-intrinsic: 1.2.1 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.2 get-symbol-description: 1.0.0 globalthis: 1.0.3 gopd: 1.0.1 - has: 1.0.3 - has-property-descriptors: 1.0.0 + has-property-descriptors: 1.0.1 has-proto: 1.0.1 has-symbols: 1.0.3 - internal-slot: 1.0.5 + hasown: 2.0.0 + internal-slot: 1.0.6 is-array-buffer: 3.0.2 is-callable: 1.2.7 is-negative-zero: 2.0.2 @@ -2761,28 +2837,28 @@ packages: is-string: 1.0.7 is-typed-array: 1.1.12 is-weakref: 1.0.2 - object-inspect: 1.12.3 + object-inspect: 1.13.1 object-keys: 1.1.1 object.assign: 4.1.4 - regexp.prototype.flags: 1.5.0 - safe-array-concat: 1.0.0 + regexp.prototype.flags: 1.5.1 + safe-array-concat: 1.0.1 safe-regex-test: 1.0.0 - string.prototype.trim: 1.2.7 - string.prototype.trimend: 1.0.6 - string.prototype.trimstart: 1.0.6 + string.prototype.trim: 1.2.8 + string.prototype.trimend: 1.0.7 + string.prototype.trimstart: 1.0.7 typed-array-buffer: 1.0.0 typed-array-byte-length: 1.0.0 typed-array-byte-offset: 1.0.0 typed-array-length: 1.0.4 unbox-primitive: 1.0.2 - which-typed-array: 1.1.11 + which-typed-array: 1.1.13 dev: true /es-get-iterator@1.1.3: resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 + call-bind: 1.0.5 + get-intrinsic: 1.2.2 has-symbols: 1.0.3 is-arguments: 1.1.1 is-map: 2.0.2 @@ -2791,19 +2867,38 @@ packages: isarray: 2.0.5 stop-iteration-iterator: 1.0.0 - /es-set-tostringtag@2.0.1: - resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} + /es-iterator-helpers@1.0.15: + resolution: {integrity: sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==} + dependencies: + asynciterator.prototype: 1.0.0 + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-set-tostringtag: 2.0.2 + function-bind: 1.1.2 + get-intrinsic: 1.2.2 + globalthis: 1.0.3 + has-property-descriptors: 1.0.1 + has-proto: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.6 + iterator.prototype: 1.1.2 + safe-array-concat: 1.0.1 + dev: true + + /es-set-tostringtag@2.0.2: + resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==} engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.2.1 - has: 1.0.3 + get-intrinsic: 1.2.2 has-tostringtag: 1.0.0 + hasown: 2.0.0 dev: true - /es-shim-unscopables@1.0.0: - resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} + /es-shim-unscopables@1.0.2: + resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} dependencies: - has: 1.0.3 + hasown: 2.0.0 dev: true /es-to-primitive@1.2.1: @@ -2815,36 +2910,6 @@ packages: is-symbol: 1.0.4 dev: true - /esbuild@0.17.19: - resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/android-arm': 0.17.19 - '@esbuild/android-arm64': 0.17.19 - '@esbuild/android-x64': 0.17.19 - '@esbuild/darwin-arm64': 0.17.19 - '@esbuild/darwin-x64': 0.17.19 - '@esbuild/freebsd-arm64': 0.17.19 - '@esbuild/freebsd-x64': 0.17.19 - '@esbuild/linux-arm': 0.17.19 - '@esbuild/linux-arm64': 0.17.19 - '@esbuild/linux-ia32': 0.17.19 - '@esbuild/linux-loong64': 0.17.19 - '@esbuild/linux-mips64el': 0.17.19 - '@esbuild/linux-ppc64': 0.17.19 - '@esbuild/linux-riscv64': 0.17.19 - '@esbuild/linux-s390x': 0.17.19 - '@esbuild/linux-x64': 0.17.19 - '@esbuild/netbsd-x64': 0.17.19 - '@esbuild/openbsd-x64': 0.17.19 - '@esbuild/sunos-x64': 0.17.19 - '@esbuild/win32-arm64': 0.17.19 - '@esbuild/win32-ia32': 0.17.19 - '@esbuild/win32-x64': 0.17.19 - dev: true - /esbuild@0.18.17: resolution: {integrity: sha512-1GJtYnUxsJreHYA0Y+iQz2UEykonY66HNWOb0yXYZi9/kNrORUEHVg87eQsCtqh59PEJ5YVZJO98JHznMJSWjg==} engines: {node: '>=12'} @@ -2875,6 +2940,36 @@ packages: '@esbuild/win32-x64': 0.18.17 dev: true + /esbuild@0.18.20: + resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.18.20 + '@esbuild/android-arm64': 0.18.20 + '@esbuild/android-x64': 0.18.20 + '@esbuild/darwin-arm64': 0.18.20 + '@esbuild/darwin-x64': 0.18.20 + '@esbuild/freebsd-arm64': 0.18.20 + '@esbuild/freebsd-x64': 0.18.20 + '@esbuild/linux-arm': 0.18.20 + '@esbuild/linux-arm64': 0.18.20 + '@esbuild/linux-ia32': 0.18.20 + '@esbuild/linux-loong64': 0.18.20 + '@esbuild/linux-mips64el': 0.18.20 + '@esbuild/linux-ppc64': 0.18.20 + '@esbuild/linux-riscv64': 0.18.20 + '@esbuild/linux-s390x': 0.18.20 + '@esbuild/linux-x64': 0.18.20 + '@esbuild/netbsd-x64': 0.18.20 + '@esbuild/openbsd-x64': 0.18.20 + '@esbuild/sunos-x64': 0.18.20 + '@esbuild/win32-arm64': 0.18.20 + '@esbuild/win32-ia32': 0.18.20 + '@esbuild/win32-x64': 0.18.20 + dev: true + /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} @@ -2894,8 +2989,17 @@ packages: engines: {node: '>=12'} dev: true - /eslint-config-prettier@8.9.0(eslint@8.54.0): - resolution: {integrity: sha512-+sbni7NfVXnOpnRadUA8S28AUlsZt9GjgFvABIRL9Hkn8KqNzOp+7Lw4QWtrwn20KzU3wqu1QoOj2m+7rKRqkA==} + /eslint-compat-utils@0.1.2(eslint@8.54.0): + resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==} + engines: {node: '>=12'} + peerDependencies: + eslint: '>=6.0.0' + dependencies: + eslint: 8.54.0 + dev: true + + /eslint-config-prettier@8.10.0(eslint@8.54.0): + resolution: {integrity: sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==} hasBin: true peerDependencies: eslint: '>=7.0.0' @@ -2903,22 +3007,22 @@ packages: eslint: 8.54.0 dev: true - /eslint-define-config@1.22.0: - resolution: {integrity: sha512-pckNJppFwC4AX+AGK63aa4sX5BluPwWwHES3fq/ER0jDR2U2czwlngg38B4EQ2ibvofufc+R5QfmdPKI6+74vQ==} - engines: {node: ^16.13.0 || >=18.0.0, npm: '>=7.0.0', pnpm: '>= 8.6.0'} + /eslint-define-config@1.24.1: + resolution: {integrity: sha512-o36vBhPSWyIQlHoMqGhhcGmOOm2A2ccBVIdLTG/AWdm9YmjpsLpf+5ntf9LlHR6dduLREgxtGwvwPwSt7vnXJg==} + engines: {node: '>=18.0.0', npm: '>=9.0.0', pnpm: '>= 8.6.0'} dev: true - /eslint-import-resolver-node@0.3.7: - resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==} + /eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} dependencies: debug: 3.2.7 - is-core-module: 2.12.1 - resolve: 1.22.3 + is-core-module: 2.13.1 + resolve: 1.22.8 transitivePeerDependencies: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.2.0)(eslint-import-resolver-node@0.3.7)(eslint@8.54.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.13.1)(eslint-import-resolver-node@0.3.9)(eslint@8.54.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -2939,27 +3043,28 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.2.0(eslint@8.54.0)(typescript@5.1.6) + '@typescript-eslint/parser': 6.13.1(eslint@8.54.0)(typescript@5.3.2) debug: 3.2.7 eslint: 8.54.0 - eslint-import-resolver-node: 0.3.7 + eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-es-x@7.2.0(eslint@8.54.0): - resolution: {integrity: sha512-9dvv5CcvNjSJPqnS5uZkqb3xmbeqRLnvXKK7iI5+oK/yTusyc46zbBZKENGsOfojm/mKfszyZb+wNqNPAPeGXA==} + /eslint-plugin-es-x@7.4.0(eslint@8.54.0): + resolution: {integrity: sha512-WJa3RhYzBtl8I37ebY9p76s61UhZyi4KaFOnX2A5r32RPazkXj5yoT6PGnD02dhwzEUj0KwsUdqfKDd/OuvGsw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '>=8' dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) - '@eslint-community/regexpp': 4.6.2 + '@eslint-community/regexpp': 4.10.0 eslint: 8.54.0 + eslint-compat-utils: 0.1.2(eslint@8.54.0) dev: true - /eslint-plugin-import@2.28.0(@typescript-eslint/parser@6.2.0)(eslint@8.54.0): - resolution: {integrity: sha512-B8s/n+ZluN7sxj9eUf7/pRFERX0r5bnFA2dCaLHy2ZeaQEAz0k+ZZkFWRFHJAqxfxQDx6KLv9LeIki7cFdwW+Q==} + /eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.13.1)(eslint@8.54.0): + resolution: {integrity: sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -2968,24 +3073,23 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.2.0(eslint@8.54.0)(typescript@5.1.6) - array-includes: 3.1.6 - array.prototype.findlastindex: 1.2.2 - array.prototype.flat: 1.3.1 - array.prototype.flatmap: 1.3.1 + '@typescript-eslint/parser': 6.13.1(eslint@8.54.0)(typescript@5.3.2) + array-includes: 3.1.7 + array.prototype.findlastindex: 1.2.3 + array.prototype.flat: 1.3.2 + array.prototype.flatmap: 1.3.2 debug: 3.2.7 doctrine: 2.1.0 eslint: 8.54.0 - eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.2.0)(eslint-import-resolver-node@0.3.7)(eslint@8.54.0) - has: 1.0.3 - is-core-module: 2.12.1 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.13.1)(eslint-import-resolver-node@0.3.9)(eslint@8.54.0) + hasown: 2.0.0 + is-core-module: 2.13.1 is-glob: 4.0.3 minimatch: 3.1.2 - object.fromentries: 2.0.6 - object.groupby: 1.0.0 - object.values: 1.1.6 - resolve: 1.22.3 + object.fromentries: 2.0.7 + object.groupby: 1.0.1 + object.values: 1.1.7 semver: 6.3.1 tsconfig-paths: 3.14.2 transitivePeerDependencies: @@ -2994,33 +3098,33 @@ packages: - supports-color dev: true - /eslint-plugin-jsx-a11y@6.7.1(eslint@8.54.0): - resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==} + /eslint-plugin-jsx-a11y@6.8.0(eslint@8.54.0): + resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==} engines: {node: '>=4.0'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: - '@babel/runtime': 7.22.6 + '@babel/runtime': 7.23.5 aria-query: 5.3.0 - array-includes: 3.1.6 - array.prototype.flatmap: 1.3.1 - ast-types-flow: 0.0.7 - axe-core: 4.7.2 + array-includes: 3.1.7 + array.prototype.flatmap: 1.3.2 + ast-types-flow: 0.0.8 + axe-core: 4.7.0 axobject-query: 3.2.1 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 + es-iterator-helpers: 1.0.15 eslint: 8.54.0 - has: 1.0.3 + hasown: 2.0.0 jsx-ast-utils: 3.3.5 - language-tags: 1.0.5 + language-tags: 1.0.9 minimatch: 3.1.2 - object.entries: 1.1.6 - object.fromentries: 2.0.6 - semver: 6.3.1 + object.entries: 1.1.7 + object.fromentries: 2.0.7 dev: true - /eslint-plugin-n@16.0.1(eslint@8.54.0): - resolution: {integrity: sha512-CDmHegJN0OF3L5cz5tATH84RPQm9kG+Yx39wIqIwPR2C0uhBGMWfbbOtetR83PQjjidA5aXMu+LEFw1jaSwvTA==} + /eslint-plugin-n@16.3.1(eslint@8.54.0): + resolution: {integrity: sha512-w46eDIkxQ2FaTHcey7G40eD+FhTXOdKudDXPUO2n9WNcslze/i/HT2qJ3GXjHngYSGDISIgPNhwGtgoix4zeOw==} engines: {node: '>=16.0.0'} peerDependencies: eslint: '>=7.0.0' @@ -3028,11 +3132,13 @@ packages: '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) builtins: 5.0.1 eslint: 8.54.0 - eslint-plugin-es-x: 7.2.0(eslint@8.54.0) - ignore: 5.2.4 - is-core-module: 2.12.1 + eslint-plugin-es-x: 7.4.0(eslint@8.54.0) + get-tsconfig: 4.7.2 + ignore: 5.3.0 + is-builtin-module: 3.2.1 + is-core-module: 2.13.1 minimatch: 3.1.2 - resolve: 1.22.2 + resolve: 1.22.8 semver: 7.5.4 dev: true @@ -3041,8 +3147,8 @@ packages: engines: {node: '>=5.0.0'} dev: true - /eslint-plugin-prettier@5.0.0(eslint-config-prettier@8.9.0)(eslint@8.54.0)(prettier@3.0.0): - resolution: {integrity: sha512-AgaZCVuYDXHUGxj/ZGu1u8H8CYgDY3iG6w5kUFw4AzMVXzB7VvbKgYR4nATIN+OvUrghMbiDLeimVjVY5ilq3w==} + /eslint-plugin-prettier@5.0.1(eslint-config-prettier@8.10.0)(eslint@8.54.0)(prettier@3.1.0): + resolution: {integrity: sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: '@types/eslint': '>=8.0.0' @@ -3056,8 +3162,8 @@ packages: optional: true dependencies: eslint: 8.54.0 - eslint-config-prettier: 8.9.0(eslint@8.54.0) - prettier: 3.0.0 + eslint-config-prettier: 8.10.0(eslint@8.54.0) + prettier: 3.1.0 prettier-linter-helpers: 1.0.0 synckit: 0.8.5 dev: true @@ -3071,28 +3177,29 @@ packages: eslint: 8.54.0 dev: true - /eslint-plugin-react@7.33.1(eslint@8.54.0): - resolution: {integrity: sha512-L093k0WAMvr6VhNwReB8VgOq5s2LesZmrpPdKz/kZElQDzqS7G7+DnKoqT+w4JwuiGeAhAvHO0fvy0Eyk4ejDA==} + /eslint-plugin-react@7.33.2(eslint@8.54.0): + resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} engines: {node: '>=4'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: - array-includes: 3.1.6 - array.prototype.flatmap: 1.3.1 - array.prototype.tosorted: 1.1.1 + array-includes: 3.1.7 + array.prototype.flatmap: 1.3.2 + array.prototype.tosorted: 1.1.2 doctrine: 2.1.0 + es-iterator-helpers: 1.0.15 eslint: 8.54.0 estraverse: 5.3.0 jsx-ast-utils: 3.3.5 minimatch: 3.1.2 - object.entries: 1.1.6 - object.fromentries: 2.0.6 - object.hasown: 1.1.2 - object.values: 1.1.6 + object.entries: 1.1.7 + object.fromentries: 2.0.7 + object.hasown: 1.1.3 + object.values: 1.1.7 prop-types: 15.8.1 - resolve: 2.0.0-next.4 + resolve: 2.0.0-next.5 semver: 6.3.1 - string.prototype.matchall: 4.0.8 + string.prototype.matchall: 4.0.10 dev: true /eslint-plugin-regexp@1.15.0(eslint@8.54.0): @@ -3102,8 +3209,8 @@ packages: eslint: '>=6.0.0' dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) - '@eslint-community/regexpp': 4.6.2 - comment-parser: 1.3.1 + '@eslint-community/regexpp': 4.10.0 + comment-parser: 1.4.1 eslint: 8.54.0 grapheme-splitter: 1.0.4 jsdoctypeparser: 9.0.0 @@ -3120,13 +3227,13 @@ packages: eslint: 8.54.0 dev: true - /eslint-plugin-testing-library@5.11.0(eslint@8.54.0)(typescript@5.1.6): - resolution: {integrity: sha512-ELY7Gefo+61OfXKlQeXNIDVVLPcvKTeiQOoMZG9TeuWa7Ln4dUNRv8JdRWBQI9Mbb427XGlVB1aa1QPZxBJM8Q==} + /eslint-plugin-testing-library@5.11.1(eslint@8.54.0)(typescript@5.3.2): + resolution: {integrity: sha512-5eX9e1Kc2PqVRed3taaLnAAqPZGEX75C+M/rXzUAI3wIg/ZxzUm1OVAwfe/O+vE+6YXOLetSe9g5GKD2ecXipw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0, npm: '>=6'} peerDependencies: eslint: ^7.5.0 || ^8.0.0 dependencies: - '@typescript-eslint/utils': 5.62.0(eslint@8.54.0)(typescript@5.1.6) + '@typescript-eslint/utils': 5.62.0(eslint@8.54.0)(typescript@5.3.2) eslint: 8.54.0 transitivePeerDependencies: - supports-color @@ -3149,11 +3256,6 @@ packages: estraverse: 5.3.0 dev: true - /eslint-visitor-keys@3.4.2: - resolution: {integrity: sha512-8drBzUEyZ2llkpCA67iYrgEssKDUu68V8ChqqOfFupIaG/LCVPUT+CoGJpT77zJprs4T/W7p07LP7zAIMuweVw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true - /eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -3165,7 +3267,7 @@ packages: hasBin: true dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) - '@eslint-community/regexpp': 4.6.2 + '@eslint-community/regexpp': 4.10.0 '@eslint/eslintrc': 2.1.3 '@eslint/js': 8.54.0 '@humanwhocodes/config-array': 0.11.13 @@ -3187,9 +3289,9 @@ packages: file-entry-cache: 6.0.1 find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.20.0 + globals: 13.23.0 graphemer: 1.4.0 - ignore: 5.2.4 + ignore: 5.3.0 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 @@ -3210,8 +3312,8 @@ packages: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.10.0 - acorn-jsx: 5.3.2(acorn@8.10.0) + acorn: 8.11.2 + acorn-jsx: 5.3.2(acorn@8.11.2) eslint-visitor-keys: 3.4.3 dev: true @@ -3295,8 +3397,8 @@ packages: resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} dev: true - /fast-glob@3.3.1: - resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} dependencies: '@nodelib/fs.stat': 2.0.5 @@ -3331,7 +3433,7 @@ packages: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: - flat-cache: 3.0.4 + flat-cache: 3.2.0 dev: true /fill-range@7.0.1: @@ -3357,16 +3459,17 @@ packages: path-exists: 5.0.0 dev: true - /flat-cache@3.0.4: - resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} + /flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: - flatted: 3.2.7 + flatted: 3.2.9 + keyv: 4.5.4 rimraf: 3.0.2 dev: true - /flatted@3.2.7: - resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} + /flatted@3.2.9: + resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} dev: true /for-each@0.3.3: @@ -3420,24 +3523,24 @@ packages: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} dev: true - /fsevents@2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true dev: true optional: true - /function-bind@1.1.1: - resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - /function.prototype.name@1.1.5: - resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} + /function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.1 + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 functions-have-names: 1.2.3 dev: true @@ -3454,17 +3557,17 @@ packages: engines: {node: 6.* || 8.* || >= 10.*} dev: true - /get-func-name@2.0.0: - resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==} + /get-func-name@2.0.2: + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} dev: true - /get-intrinsic@1.2.1: - resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} + /get-intrinsic@1.2.2: + resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} dependencies: - function-bind: 1.1.1 - has: 1.0.3 + function-bind: 1.1.2 has-proto: 1.0.1 has-symbols: 1.0.3 + hasown: 2.0.0 /get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} @@ -3475,12 +3578,12 @@ packages: resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 + call-bind: 1.0.5 + get-intrinsic: 1.2.2 dev: true - /get-tsconfig@4.6.2: - resolution: {integrity: sha512-E5XrT4CbbXcXWy+1jChlZmrmCwd5KGx502kDCXJJ7y898TtWW9FwoG5HfOLVRKmlmDGkWN2HM9Ho+/Y8F0sJDg==} + /get-tsconfig@4.7.2: + resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==} dependencies: resolve-pkg-maps: 1.0.0 dev: true @@ -3531,8 +3634,8 @@ packages: engines: {node: '>=4'} dev: true - /globals@13.20.0: - resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} + /globals@13.23.0: + resolution: {integrity: sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==} engines: {node: '>=8'} dependencies: type-fest: 0.20.2 @@ -3542,7 +3645,7 @@ packages: resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} engines: {node: '>= 0.4'} dependencies: - define-properties: 1.2.0 + define-properties: 1.2.1 dev: true /globby@11.1.0: @@ -3551,8 +3654,8 @@ packages: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.3.1 - ignore: 5.2.4 + fast-glob: 3.3.2 + ignore: 5.3.0 merge2: 1.4.1 slash: 3.0.0 dev: true @@ -3562,8 +3665,8 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: dir-glob: 3.0.1 - fast-glob: 3.3.1 - ignore: 5.2.4 + fast-glob: 3.3.2 + ignore: 5.3.0 merge2: 1.4.1 slash: 4.0.0 dev: true @@ -3571,7 +3674,7 @@ packages: /gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} dependencies: - get-intrinsic: 1.2.1 + get-intrinsic: 1.2.2 /graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} @@ -3605,10 +3708,10 @@ packages: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - /has-property-descriptors@1.0.0: - resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} + /has-property-descriptors@1.0.1: + resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} dependencies: - get-intrinsic: 1.2.1 + get-intrinsic: 1.2.2 /has-proto@1.0.1: resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} @@ -3624,11 +3727,11 @@ packages: dependencies: has-symbols: 1.0.3 - /has@1.0.3: - resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} - engines: {node: '>= 0.4.0'} + /hasown@2.0.0: + resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} + engines: {node: '>= 0.4'} dependencies: - function-bind: 1.1.1 + function-bind: 1.1.2 /he@1.2.0: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} @@ -3713,8 +3816,8 @@ packages: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} dev: true - /ignore@5.2.4: - resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} + /ignore@5.3.0: + resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==} engines: {node: '>= 4'} dev: true @@ -3777,32 +3880,39 @@ packages: wrap-ansi: 7.0.0 dev: true - /internal-slot@1.0.5: - resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} + /internal-slot@1.0.6: + resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==} engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.2.1 - has: 1.0.3 + get-intrinsic: 1.2.2 + hasown: 2.0.0 side-channel: 1.0.4 /is-arguments@1.1.1: resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 has-tostringtag: 1.0.0 /is-array-buffer@3.0.2: resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 + call-bind: 1.0.5 + get-intrinsic: 1.2.2 is-typed-array: 1.1.12 /is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} dev: true + /is-async-function@2.0.0: + resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + /is-bigint@1.0.4: resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} dependencies: @@ -3819,17 +3929,24 @@ packages: resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 has-tostringtag: 1.0.0 + /is-builtin-module@3.2.1: + resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} + engines: {node: '>=6'} + dependencies: + builtin-modules: 3.3.0 + dev: true + /is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} - /is-core-module@2.12.1: - resolution: {integrity: sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==} + /is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} dependencies: - has: 1.0.3 + hasown: 2.0.0 dev: true /is-date-object@1.0.5: @@ -3855,11 +3972,24 @@ packages: engines: {node: '>=0.10.0'} dev: true + /is-finalizationregistry@1.0.2: + resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} + dependencies: + call-bind: 1.0.5 + dev: true + /is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} dev: true + /is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + /is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -3921,7 +4051,7 @@ packages: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 has-tostringtag: 1.0.0 /is-set@2.0.2: @@ -3930,7 +4060,7 @@ packages: /is-shared-array-buffer@1.0.2: resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 /is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} @@ -3958,7 +4088,7 @@ packages: resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} engines: {node: '>= 0.4'} dependencies: - which-typed-array: 1.1.11 + which-typed-array: 1.1.13 /is-unicode-supported@0.1.0: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} @@ -3971,14 +4101,14 @@ packages: /is-weakref@1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 dev: true /is-weakset@2.0.2: resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 + call-bind: 1.0.5 + get-intrinsic: 1.2.2 /is-wsl@2.2.0: resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} @@ -4035,6 +4165,16 @@ packages: istanbul-lib-report: 3.0.1 dev: true + /iterator.prototype@1.1.2: + resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} + dependencies: + define-properties: 1.2.1 + get-intrinsic: 1.2.2 + has-symbols: 1.0.3 + reflect.getprototypeof: 1.0.4 + set-function-name: 2.0.1 + dev: true + /jackspeak@2.2.2: resolution: {integrity: sha512-mgNtVv4vUuaKA97yxUHoA3+FkuhtxkjdXEWOyB/N76fjy0FjezEt34oy3epBtvCvS+7DyKwqCFWx/oJLV5+kCg==} engines: {node: '>=14'} @@ -4070,8 +4210,8 @@ packages: resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} dev: true - /jquery@3.7.0: - resolution: {integrity: sha512-umpJ0/k8X0MvD1ds0P9SfowREz2LenHsQaxSohMZ5OMNEU2r0tf8pdeEFTHMFxWVxKNyU9rTtK3CWzUCTKJUeQ==} + /jquery@3.7.1: + resolution: {integrity: sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==} dev: true /js-levenshtein@1.1.6: @@ -4139,6 +4279,10 @@ packages: hasBin: true dev: true + /json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + dev: true + /json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} dev: true @@ -4178,10 +4322,10 @@ packages: resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} engines: {node: '>=4.0'} dependencies: - array-includes: 3.1.6 - array.prototype.flat: 1.3.1 + array-includes: 3.1.7 + array.prototype.flat: 1.3.2 object.assign: 4.1.4 - object.values: 1.1.6 + object.values: 1.1.7 dev: true /junk@4.0.1: @@ -4189,6 +4333,12 @@ packages: engines: {node: '>=12.20'} dev: true + /keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + dependencies: + json-buffer: 3.0.1 + dev: true + /kind-of@6.0.3: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} @@ -4202,8 +4352,9 @@ packages: resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} dev: true - /language-tags@1.0.5: - resolution: {integrity: sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==} + /language-tags@1.0.9: + resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} + engines: {node: '>=0.10'} dependencies: language-subtag-registry: 0.3.22 dev: true @@ -4268,10 +4419,10 @@ packages: dependencies: js-tokens: 4.0.0 - /loupe@2.3.6: - resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==} + /loupe@2.3.7: + resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} dependencies: - get-func-name: 2.0.0 + get-func-name: 2.0.2 dev: true /lru-cache@10.0.0: @@ -4308,6 +4459,13 @@ packages: '@jridgewell/sourcemap-codec': 1.4.15 dev: true + /magic-string@0.30.5: + resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + /make-dir@4.0.0: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} @@ -4418,13 +4576,13 @@ packages: hasBin: true dev: true - /mlly@1.4.0: - resolution: {integrity: sha512-ua8PAThnTwpprIaU47EPeZ/bPUVp2QYBbWMphUQpVdBI3Lgqzm5KZQ45Agm3YJedHXaIHl6pBGabaLSUPPSptg==} + /mlly@1.4.2: + resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==} dependencies: - acorn: 8.10.0 + acorn: 8.11.2 pathe: 1.1.1 pkg-types: 1.0.3 - ufo: 1.2.0 + ufo: 1.3.2 dev: true /ms@2.1.2: @@ -4482,15 +4640,11 @@ packages: resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} dev: true - /nanoid@3.3.6: - resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} + /nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - /natural-compare-lite@1.4.0: - resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} - dev: true - /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true @@ -4499,40 +4653,44 @@ packages: resolution: {integrity: sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==} dev: true - /next@14.0.3(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-AbYdRNfImBr3XGtvnwOxq8ekVCwbFTv/UJoLwmaX89nk9i051AEY4/HAWzU0YpaTDw8IofUpmuIlvzWF13jxIw==} - engines: {node: '>=18.17.0'} + /next@13.4.12(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-eHfnru9x6NRmTMcjQp6Nz0J4XH9OubmzOa7CkWL+AUrUxpibub3vWwttjduu9No16dug1kq04hiUUpo7J3m3Xw==} + engines: {node: '>=16.8.0'} hasBin: true peerDependencies: '@opentelemetry/api': ^1.1.0 + fibers: '>= 3.1.0' react: ^18.2.0 react-dom: ^18.2.0 sass: ^1.3.0 peerDependenciesMeta: '@opentelemetry/api': optional: true + fibers: + optional: true sass: optional: true dependencies: - '@next/env': 14.0.3 - '@swc/helpers': 0.5.2 + '@next/env': 13.4.12 + '@swc/helpers': 0.5.1 busboy: 1.6.0 - caniuse-lite: 1.0.30001517 - postcss: 8.4.31 + caniuse-lite: 1.0.30001565 + postcss: 8.4.14 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) styled-jsx: 5.1.1(react@18.2.0) watchpack: 2.4.0 + zod: 3.21.4 optionalDependencies: - '@next/swc-darwin-arm64': 14.0.3 - '@next/swc-darwin-x64': 14.0.3 - '@next/swc-linux-arm64-gnu': 14.0.3 - '@next/swc-linux-arm64-musl': 14.0.3 - '@next/swc-linux-x64-gnu': 14.0.3 - '@next/swc-linux-x64-musl': 14.0.3 - '@next/swc-win32-arm64-msvc': 14.0.3 - '@next/swc-win32-ia32-msvc': 14.0.3 - '@next/swc-win32-x64-msvc': 14.0.3 + '@next/swc-darwin-arm64': 13.4.12 + '@next/swc-darwin-x64': 13.4.12 + '@next/swc-linux-arm64-gnu': 13.4.12 + '@next/swc-linux-arm64-musl': 13.4.12 + '@next/swc-linux-x64-gnu': 13.4.12 + '@next/swc-linux-x64-musl': 13.4.12 + '@next/swc-win32-arm64-msvc': 13.4.12 + '@next/swc-win32-ia32-msvc': 13.4.12 + '@next/swc-win32-x64-msvc': 13.4.12 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros @@ -4571,7 +4729,7 @@ packages: engines: {node: '>=10'} dependencies: hosted-git-info: 4.1.0 - is-core-module: 2.12.1 + is-core-module: 2.13.1 semver: 7.5.4 validate-npm-package-license: 3.0.4 dev: true @@ -4581,7 +4739,7 @@ packages: engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: hosted-git-info: 6.1.1 - is-core-module: 2.12.1 + is-core-module: 2.13.1 semver: 7.5.4 validate-npm-package-license: 3.0.4 dev: true @@ -4614,15 +4772,15 @@ packages: engines: {node: '>=0.10.0'} dev: true - /object-inspect@1.12.3: - resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} + /object-inspect@1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} /object-is@1.1.5: resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 + call-bind: 1.0.5 + define-properties: 1.2.1 /object-keys@1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} @@ -4632,52 +4790,52 @@ packages: resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 + call-bind: 1.0.5 + define-properties: 1.2.1 has-symbols: 1.0.3 object-keys: 1.1.1 - /object.entries@1.1.6: - resolution: {integrity: sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==} + /object.entries@1.1.7: + resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.1 + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 dev: true - /object.fromentries@2.0.6: - resolution: {integrity: sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==} + /object.fromentries@2.0.7: + resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.1 + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 dev: true - /object.groupby@1.0.0: - resolution: {integrity: sha512-70MWG6NfRH9GnbZOikuhPPYzpUpof9iW2J9E4dW7FXTqPNb6rllE6u39SKwwiNh8lCwX3DDb5OgcKGiEBrTTyw==} + /object.groupby@1.0.1: + resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==} dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.1 - get-intrinsic: 1.2.1 + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 dev: true - /object.hasown@1.1.2: - resolution: {integrity: sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==} + /object.hasown@1.1.3: + resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==} dependencies: - define-properties: 1.2.0 - es-abstract: 1.22.1 + define-properties: 1.2.1 + es-abstract: 1.22.3 dev: true - /object.values@1.1.6: - resolution: {integrity: sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==} + /object.values@1.1.7: + resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.1 + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 dev: true /once@1.4.0: @@ -4894,7 +5052,7 @@ packages: resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} dependencies: jsonc-parser: 3.2.0 - mlly: 1.4.0 + mlly: 1.4.2 pathe: 1.1.1 dev: true @@ -4903,11 +5061,20 @@ packages: deprecated: You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1 dev: true + /postcss@8.4.14: + resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: false + /postcss@8.4.27: resolution: {integrity: sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==} engines: {node: ^10 || ^12 || >=14} dependencies: - nanoid: 3.3.6 + nanoid: 3.3.7 picocolors: 1.0.0 source-map-js: 1.0.2 dev: true @@ -4916,9 +5083,10 @@ packages: resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} dependencies: - nanoid: 3.3.6 + nanoid: 3.3.7 picocolors: 1.0.0 source-map-js: 1.0.2 + dev: true /prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} @@ -4932,8 +5100,8 @@ packages: fast-diff: 1.3.0 dev: true - /prettier@3.0.0: - resolution: {integrity: sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g==} + /prettier@3.1.0: + resolution: {integrity: sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==} engines: {node: '>=14'} hasBin: true dev: true @@ -4946,11 +5114,11 @@ packages: ansi-styles: 5.2.0 react-is: 17.0.2 - /pretty-format@29.6.2: - resolution: {integrity: sha512-1q0oC8eRveTg5nnBEWMXAU2qpv65Gnuf2eCQzSjxpWFkPaPARwqZZDGuNE0zPAZfTCHzIk3A8dIjwlQKKLphyg==} + /pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/schemas': 29.6.0 + '@jest/schemas': 29.6.3 ansi-styles: 5.2.0 react-is: 18.2.0 dev: true @@ -4976,6 +5144,11 @@ packages: engines: {node: '>=6'} dev: true + /punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + dev: true + /querystringify@2.2.0: resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} dev: true @@ -5118,27 +5291,42 @@ packages: resolution: {integrity: sha512-486O8/pQXwj9jV0mVvUnTsxq0uknpBnNJ0eCUhkZqJRQ8KutrT1PhzmumdCeM1hSBF2eMlFPmwECRER4IbKXlQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dependencies: - '@eslint-community/regexpp': 4.6.2 + '@eslint-community/regexpp': 4.10.0 + dev: true + + /reflect.getprototypeof@1.0.4: + resolution: {integrity: sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 + globalthis: 1.0.3 + which-builtin-type: 1.1.3 dev: true /regenerator-runtime@0.13.11: resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} + /regenerator-runtime@0.14.0: + resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} + /regexp-ast-analysis@0.6.0: resolution: {integrity: sha512-OLxjyjPkVH+rQlBLb1I/P/VTmamSjGkvN5PTV5BXP432k3uVz727J7H29GA5IFiY0m7e1xBN7049Wn59FY3DEQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dependencies: - '@eslint-community/regexpp': 4.6.2 + '@eslint-community/regexpp': 4.10.0 refa: 0.11.0 dev: true - /regexp.prototype.flags@1.5.0: - resolution: {integrity: sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==} + /regexp.prototype.flags@1.5.1: + resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - functions-have-names: 1.2.3 + call-bind: 1.0.5 + define-properties: 1.2.1 + set-function-name: 2.0.1 /require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} @@ -5161,33 +5349,24 @@ packages: /resolve@1.19.0: resolution: {integrity: sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==} dependencies: - is-core-module: 2.12.1 - path-parse: 1.0.7 - dev: true - - /resolve@1.22.2: - resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} - hasBin: true - dependencies: - is-core-module: 2.12.1 + is-core-module: 2.13.1 path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 dev: true - /resolve@1.22.3: - resolution: {integrity: sha512-P8ur/gp/AmbEzjr729bZnLjXK5Z+4P0zhIJgBgzqRih7hL7BOukHGtSTA3ACMY467GRFz3duQsi0bDZdR7DKdw==} + /resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true dependencies: - is-core-module: 2.12.1 + is-core-module: 2.13.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 dev: true - /resolve@2.0.0-next.4: - resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==} + /resolve@2.0.0-next.5: + resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} hasBin: true dependencies: - is-core-module: 2.12.1 + is-core-module: 2.13.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 dev: true @@ -5225,7 +5404,15 @@ packages: engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 + dev: true + + /rollup@3.29.4: + resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.3 dev: true /rrweb-cssom@0.6.0: @@ -5256,12 +5443,12 @@ packages: tslib: 2.6.2 dev: true - /safe-array-concat@1.0.0: - resolution: {integrity: sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==} + /safe-array-concat@1.0.1: + resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} engines: {node: '>=0.4'} dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 + call-bind: 1.0.5 + get-intrinsic: 1.2.2 has-symbols: 1.0.3 isarray: 2.0.5 dev: true @@ -5277,8 +5464,8 @@ packages: /safe-regex-test@1.0.0: resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 + call-bind: 1.0.5 + get-intrinsic: 1.2.2 is-regex: 1.1.4 dev: true @@ -5301,7 +5488,7 @@ packages: /scslre@0.2.0: resolution: {integrity: sha512-4hc49fUMmX3jM0XdFUAPBrs1xwEcdHa0KyjEsjFs+Zfc66mpFpq5YmRgDtl+Ffo6AtJIilfei+yKw8fUn3N88w==} dependencies: - '@eslint-community/regexpp': 4.6.2 + '@eslint-community/regexpp': 4.10.0 refa: 0.11.0 regexp-ast-analysis: 0.6.0 dev: true @@ -5319,6 +5506,23 @@ packages: lru-cache: 6.0.0 dev: true + /set-function-length@1.1.1: + resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.1 + get-intrinsic: 1.2.2 + gopd: 1.0.1 + has-property-descriptors: 1.0.1 + + /set-function-name@2.0.1: + resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.1 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.1 + /shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -5334,9 +5538,9 @@ packages: /side-channel@1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 - object-inspect: 1.12.3 + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + object-inspect: 1.13.1 /siginfo@2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} @@ -5365,13 +5569,6 @@ packages: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} - /source-map-support@0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} - dependencies: - buffer-from: 1.1.2 - source-map: 0.6.1 - dev: true - /source-map@0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} @@ -5416,11 +5613,15 @@ packages: resolution: {integrity: sha512-Rz6yejtVyWnVjC1RFvNmYL10kgjC49EOghxWn0RFqlCHGFpQx+Xe7yW3I4ceK1SGrWIGMjD5Kbue8W/udkbMJg==} dev: true + /std-env@3.5.0: + resolution: {integrity: sha512-JGUEaALvL0Mf6JCfYnJOTcobY+Nc7sG/TemDRBqCA0wEr4DER7zDchaaixTlmOxAjG1uRJmX82EQcxwTQTkqVA==} + dev: true + /stop-iteration-iterator@1.0.0: resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} engines: {node: '>= 0.4'} dependencies: - internal-slot: 1.0.5 + internal-slot: 1.0.6 /streamsearch@1.1.0: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} @@ -5454,42 +5655,43 @@ packages: strip-ansi: 7.1.0 dev: true - /string.prototype.matchall@4.0.8: - resolution: {integrity: sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==} + /string.prototype.matchall@4.0.10: + resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==} dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.1 - get-intrinsic: 1.2.1 + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 has-symbols: 1.0.3 - internal-slot: 1.0.5 - regexp.prototype.flags: 1.5.0 + internal-slot: 1.0.6 + regexp.prototype.flags: 1.5.1 + set-function-name: 2.0.1 side-channel: 1.0.4 dev: true - /string.prototype.trim@1.2.7: - resolution: {integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==} + /string.prototype.trim@1.2.8: + resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.1 + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 dev: true - /string.prototype.trimend@1.0.6: - resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} + /string.prototype.trimend@1.0.7: + resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.1 + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 dev: true - /string.prototype.trimstart@1.0.6: - resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} + /string.prototype.trimstart@1.0.7: + resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.1 + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 dev: true /string_decoder@0.10.31: @@ -5558,7 +5760,13 @@ packages: /strip-literal@1.0.1: resolution: {integrity: sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==} dependencies: - acorn: 8.10.0 + acorn: 8.11.2 + dev: true + + /strip-literal@1.3.0: + resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} + dependencies: + acorn: 8.11.2 dev: true /styled-jsx@5.1.1(react@18.2.0): @@ -5635,13 +5843,22 @@ packages: resolution: {integrity: sha512-kRwSG8Zx4tjF9ZiyH4bhaebu+EDz1BOx9hOigYHlUW4xxI/wKIUQUqo018UlU4ar6ATPBsaMrdbKZ+tmPdohFA==} dev: true + /tinybench@2.5.1: + resolution: {integrity: sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==} + dev: true + /tinypool@0.6.0: resolution: {integrity: sha512-FdswUUo5SxRizcBc6b1GSuLpLjisa8N8qMyYoP3rl+bym+QauhtJP5bvZY1ytt8krKGmMLYIRl36HBZfeAoqhQ==} engines: {node: '>=14.0.0'} dev: true - /tinyspy@2.1.1: - resolution: {integrity: sha512-XPJL2uSzcOyBMky6OFrusqWlzfFrXtE0hPuMgW8A2HmaqrPo4ZQHRN/V0QXN3FSjKxpsbRrFc5LI7KOwBsT1/w==} + /tinypool@0.7.0: + resolution: {integrity: sha512-zSYNUlYSMhJ6Zdou4cJwo/p7w5nmAH17GRfU/ui3ctvjXFErXXkruT4MWW6poDeXgCaIBlGLrfU6TbTXxyGMww==} + engines: {node: '>=14.0.0'} + dev: true + + /tinyspy@2.2.0: + resolution: {integrity: sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==} engines: {node: '>=14.0.0'} dev: true @@ -5687,7 +5904,7 @@ packages: resolution: {integrity: sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==} engines: {node: '>=14'} dependencies: - punycode: 2.3.0 + punycode: 2.3.1 dev: true /trim-newlines@5.0.0: @@ -5695,13 +5912,13 @@ packages: engines: {node: '>=14.16'} dev: true - /ts-api-utils@1.0.1(typescript@5.1.6): - resolution: {integrity: sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==} + /ts-api-utils@1.0.3(typescript@5.3.2): + resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} engines: {node: '>=16.13.0'} peerDependencies: typescript: '>=4.2.0' dependencies: - typescript: 5.1.6 + typescript: 5.3.2 dev: true /tsconfig-paths@3.14.2: @@ -5720,25 +5937,25 @@ packages: /tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - /tsutils@3.21.0(typescript@5.1.6): + /tsutils@3.21.0(typescript@5.3.2): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} 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' dependencies: tslib: 1.14.1 - typescript: 5.1.6 + typescript: 5.3.2 dev: true - /tsx@3.12.7: - resolution: {integrity: sha512-C2Ip+jPmqKd1GWVQDvz/Eyc6QJbGfE7NrR3fx5BpEHMZsEHoIxHL1j+lKdGobr8ovEyqeNkPLSKp6SCSOt7gmw==} + /tsx@4.6.1: + resolution: {integrity: sha512-OQ4TAPHXAPUo/NZAmmIybl0o8LFOTlycQxFepLBAp6EV87U88fOKYGCQI2viGAEOVU9UW/cgQcxcOMnfEKVY3Q==} + engines: {node: '>=18.0.0'} hasBin: true dependencies: - '@esbuild-kit/cjs-loader': 2.4.2 - '@esbuild-kit/core-utils': 3.1.0 - '@esbuild-kit/esm-loader': 2.5.5 + esbuild: 0.18.20 + get-tsconfig: 4.7.2 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 dev: true /type-check@0.4.0: @@ -5777,8 +5994,8 @@ packages: resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 + call-bind: 1.0.5 + get-intrinsic: 1.2.2 is-typed-array: 1.1.12 dev: true @@ -5786,7 +6003,7 @@ packages: resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 for-each: 0.3.3 has-proto: 1.0.1 is-typed-array: 1.1.12 @@ -5797,7 +6014,7 @@ packages: engines: {node: '>= 0.4'} dependencies: available-typed-arrays: 1.0.5 - call-bind: 1.0.2 + call-bind: 1.0.5 for-each: 0.3.3 has-proto: 1.0.1 is-typed-array: 1.1.12 @@ -5806,7 +6023,7 @@ packages: /typed-array-length@1.0.4: resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 for-each: 0.3.3 is-typed-array: 1.1.12 dev: true @@ -5822,14 +6039,20 @@ packages: engines: {node: '>=14.17'} hasBin: true - /ufo@1.2.0: - resolution: {integrity: sha512-RsPyTbqORDNDxqAdQPQBpgqhWle1VcTSou/FraClYlHf6TZnQcGslpLcAphNR+sQW4q5lLWLbOsRlh9j24baQg==} + /typescript@5.3.2: + resolution: {integrity: sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==} + engines: {node: '>=14.17'} + hasBin: true + dev: true + + /ufo@1.3.2: + resolution: {integrity: sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==} dev: true /unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 has-bigints: 1.0.2 has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 @@ -5868,7 +6091,7 @@ packages: /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: - punycode: 2.3.0 + punycode: 2.3.1 dev: true /url-parse@1.5.10: @@ -5910,10 +6133,32 @@ packages: dependencies: cac: 6.7.14 debug: 4.3.4 - mlly: 1.4.0 + mlly: 1.4.2 pathe: 1.1.1 picocolors: 1.0.0 - vite: 4.4.7(@types/node@20.10.1) + vite: 4.5.0(@types/node@20.10.1) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + + /vite-node@0.34.6(@types/node@20.10.1): + resolution: {integrity: sha512-nlBMJ9x6n7/Amaz6F3zJ97EBwR2FkzhBRxF5e+jE6LA3yi6Wtc2lyTij1OnDMIr34v5g/tVQtsVAzhT0jc5ygA==} + engines: {node: '>=v14.18.0'} + hasBin: true + dependencies: + cac: 6.7.14 + debug: 4.3.4 + mlly: 1.4.2 + pathe: 1.1.1 + picocolors: 1.0.0 + vite: 4.5.0(@types/node@20.10.1) transitivePeerDependencies: - '@types/node' - less @@ -5981,7 +6226,7 @@ packages: postcss: 8.4.31 rollup: 3.27.0 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 dev: true /vite@4.4.7(@types/node@20.10.1): @@ -6017,7 +6262,43 @@ packages: postcss: 8.4.27 rollup: 3.27.0 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 + dev: true + + /vite@4.5.0(@types/node@20.10.1): + resolution: {integrity: sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 20.10.1 + esbuild: 0.18.20 + postcss: 8.4.31 + rollup: 3.29.4 + optionalDependencies: + fsevents: 2.3.3 dev: true /vitest@0.33.0(jsdom@22.1.0): @@ -6086,6 +6367,71 @@ packages: - terser dev: true + /vitest@0.34.6: + resolution: {integrity: sha512-+5CALsOvbNKnS+ZHMXtuUC7nL8/7F1F2DnHGjSsszX8zCjWSSviphCb/NuS9Nzf4Q03KyyDRBAXhF/8lffME4Q==} + engines: {node: '>=v14.18.0'} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@vitest/browser': '*' + '@vitest/ui': '*' + happy-dom: '*' + jsdom: '*' + playwright: '*' + safaridriver: '*' + webdriverio: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + playwright: + optional: true + safaridriver: + optional: true + webdriverio: + optional: true + dependencies: + '@types/chai': 4.3.11 + '@types/chai-subset': 1.3.5 + '@types/node': 20.10.1 + '@vitest/expect': 0.34.6 + '@vitest/runner': 0.34.6 + '@vitest/snapshot': 0.34.6 + '@vitest/spy': 0.34.6 + '@vitest/utils': 0.34.6 + acorn: 8.11.2 + acorn-walk: 8.3.0 + cac: 6.7.14 + chai: 4.3.10 + debug: 4.3.4 + local-pkg: 0.4.3 + magic-string: 0.30.5 + pathe: 1.1.1 + picocolors: 1.0.0 + std-env: 3.5.0 + strip-literal: 1.3.0 + tinybench: 2.5.1 + tinypool: 0.7.0 + vite: 4.5.0(@types/node@20.10.1) + vite-node: 0.34.6(@types/node@20.10.1) + why-is-node-running: 2.2.2 + transitivePeerDependencies: + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + /vue-template-compiler@2.7.14: resolution: {integrity: sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==} dependencies: @@ -6180,6 +6526,24 @@ packages: is-string: 1.0.7 is-symbol: 1.0.4 + /which-builtin-type@1.1.3: + resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} + engines: {node: '>= 0.4'} + dependencies: + function.prototype.name: 1.1.6 + has-tostringtag: 1.0.0 + is-async-function: 2.0.0 + is-date-object: 1.0.5 + is-finalizationregistry: 1.0.2 + is-generator-function: 1.0.10 + is-regex: 1.1.4 + is-weakref: 1.0.2 + isarray: 2.0.5 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.1 + which-typed-array: 1.1.13 + dev: true + /which-collection@1.0.1: resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} dependencies: @@ -6188,12 +6552,12 @@ packages: is-weakmap: 2.0.1 is-weakset: 2.0.2 - /which-typed-array@1.1.11: - resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==} + /which-typed-array@1.1.13: + resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==} engines: {node: '>= 0.4'} dependencies: available-typed-arrays: 1.0.5 - call-bind: 1.0.2 + call-bind: 1.0.5 for-each: 0.3.3 gopd: 1.0.1 has-tostringtag: 1.0.0 @@ -6334,3 +6698,7 @@ packages: optionalDependencies: commander: 9.5.0 dev: true + + /zod@3.21.4: + resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==} + dev: false diff --git a/readme.md b/readme.md index e4316d072..7efd04620 100644 --- a/readme.md +++ b/readme.md @@ -71,7 +71,7 @@ Works perfectly well with: npm install @axa-fr/oidc-client --save # To install or update OidcServiceWorker.js file, you can run -node ./node_modules/@axa-fr/react-oidc/bin/copy-service-worker-files.mjs public +node ./node_modules/@axa-fr/oidc-client/bin/copy-service-worker-files.mjs public # If you have a "public" folder, the 2 files will be created : # ./public/OidcServiceWorker.js <-- will be updated at each "npm install" @@ -82,7 +82,7 @@ WARNING : If you use Service Worker mode, the OidcServiceWorker.js file should a ```sh "scripts": { ... - "postinstall": "node ./node_modules/@axa-fr/react-oidc/bin/copy-service-worker-files.mjs public" + "postinstall": "node ./node_modules/@axa-fr/oidc-client/bin/copy-service-worker-files.mjs public" }, ``` From 3e7a6066d8a25b09edb9dca02374d2385732ac34 Mon Sep 17 00:00:00 2001 From: GitHub Date: Thu, 30 Nov 2023 08:27:52 +0000 Subject: [PATCH 098/440] [skip ci] Update to version 7.12.11 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 2269bb493..97561cedf 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.12.5", + "version": "7.12.11", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 9c3d95ea1..f75f36be0 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.12.5'; +export default '7.12.11'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index e9ff762a7..faf9d640a 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.12.5", + "version": "7.12.11", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 9c3d95ea1..f75f36be0 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.12.5'; +export default '7.12.11'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index c122e84bd..acaa15593 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.12.5", + "version": "7.12.11", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 7f1c369ff4aa928340a34b480e79474e4303d6b6 Mon Sep 17 00:00:00 2001 From: GitHub Date: Thu, 30 Nov 2023 08:27:54 +0000 Subject: [PATCH 099/440] [skip ci] Generate changelog to version 7.12.11 --- CHANGELOG.md | 72 ++++++++++++++++++++++++---------------------------- 1 file changed, 33 insertions(+), 39 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 448f85006..c7ae3730d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,38 @@ # Changelog -## 7.12.5 +## 7.12.11 + +- [d1480fb](https://github.com/AxaFrance/oidc-client/commit/d1480fbe2c0e275f17775768f83b70d9adf00ee1) - fix(all): dependencies update break the build (release), 2023-11-30 by *Guillaume Chervet* +- [6027511](https://github.com/AxaFrance/oidc-client/commit/6027511a0c8d2112d370d45cf42f144874112f77) - doc(readme) Update README.md, 2023-11-29 by *Guillaume Chervet* + + +## v7.12.10 + +- [a9cd4d2](https://github.com/AxaFrance/oidc-client/commit/a9cd4d25ef8d66bd12e5c0e921b9fd1bc4a137ba) - build(npm): bump @testing-library/react from 13.3.0 to 14.1.2 (#1222), 2023-11-29 by *dependabot[bot]* + + +## v7.12.9 + +- [2975d4e](https://github.com/AxaFrance/oidc-client/commit/2975d4e826c94eb7202ab7bba39687d1a7b6820b) - build(npm): bump eslint-plugin-import from 2.28.0 to 2.29.0 (#1221), 2023-11-29 by *dependabot[bot]* +- [f8be6ab](https://github.com/AxaFrance/oidc-client/commit/f8be6ab1096143c1a2eb35408669aef6df72d2d9) - doc(redame): fix service worker command to work with oidc-client standalone (#1200), 2023-11-29 by *Felix Roos* + + +## v7.12.8 + +- [53fd1f1](https://github.com/AxaFrance/oidc-client/commit/53fd1f1c093430f7e60eb43bc4a9a4fccebefe73) - build(npm): bump jsdom from 22.1.0 to 23.0.0 (#1220), 2023-11-29 by *dependabot[bot]* + + +## v7.12.7 + +- [7a53f73](https://github.com/AxaFrance/oidc-client/commit/7a53f73bf03b85be9248379f21def37ee34bd415) - build(npm): bump @types/react from 18.2.17 to 18.2.39 (#1215), 2023-11-29 by *dependabot[bot]* + + +## v7.12.6 + +- [55b318e](https://github.com/AxaFrance/oidc-client/commit/55b318e1c31fe6a7d1be106e99b14db35e4f4229) - build(npm): bump @types/node from 18.17.1 to 20.10.1 (#1217), 2023-11-29 by *dependabot[bot]* + + +## v7.12.5 - [bf53fa8](https://github.com/AxaFrance/oidc-client/commit/bf53fa803a6414b99e1520154c11d66c4958e62b) - build(npm): bump tslib from 2.6.1 to 2.6.2 (#1218), 2023-11-29 by *dependabot[bot]* @@ -303,41 +335,3 @@ - [822f9ab](https://github.com/AxaFrance/oidc-client/commit/822f9aba2b245872401fa15905e7e256e4adb879) - test (alpha), 2023-07-20 by *Guillaume Chervet* -## v6.24.20 - -- [9888924](https://github.com/AxaFrance/oidc-client/commit/9888924541c0754c9dd033972d76c3c854e6ed4d) - Merge 13656ac570b3896db17bcf38f2113ae4443dba17 into 3e535c94dc57d59956498bfa0ca9536106039bda, 2023-07-20 by *Guillaume Chervet* -- [13656ac](https://github.com/AxaFrance/oidc-client/commit/13656ac570b3896db17bcf38f2113ae4443dba17) - test (alpha), 2023-07-20 by *Guillaume Chervet* - - -## v6.24.19 - -- [3c64173](https://github.com/AxaFrance/oidc-client/commit/3c641732e7787729a07735408098fc103ca9c66e) - Merge fa8c6c964011739e9297a31ec186c2c657f205fd into 3e535c94dc57d59956498bfa0ca9536106039bda, 2023-07-20 by *Guillaume Chervet* -- [fa8c6c9](https://github.com/AxaFrance/oidc-client/commit/fa8c6c964011739e9297a31ec186c2c657f205fd) - fix text (alpha), 2023-07-20 by *Guillaume Chervet* -- [391f15a](https://github.com/AxaFrance/oidc-client/commit/391f15ae075ad8e0960bfad39068928405f748cf) - test (alpha), 2023-07-20 by *Guillaume Chervet* - - -## v6.24.18 - -- [3334870](https://github.com/AxaFrance/oidc-client/commit/3334870d3a281bf049b09f655c6ce8e587af8d35) - Merge bc91071c5f9c3dae1f74fc0b314acc984e7aea71 into 3e535c94dc57d59956498bfa0ca9536106039bda, 2023-07-20 by *Guillaume Chervet* -- [bc91071](https://github.com/AxaFrance/oidc-client/commit/bc91071c5f9c3dae1f74fc0b314acc984e7aea71) - fix test (alpha), 2023-07-20 by *Guillaume Chervet* -- [dc1a8bf](https://github.com/AxaFrance/oidc-client/commit/dc1a8bfd997684b00b41c05196c470a60ab85555) - fix(ci): test (alpha), 2023-07-20 by *Guillaume Chervet* - - -## v6.24.17 - -- [e7bb2bf](https://github.com/AxaFrance/oidc-client/commit/e7bb2bf34af537756219d876a209297488996987) - Merge 290ee618c032f20b583ff624571ca53b9cd7a0b6 into 3e535c94dc57d59956498bfa0ca9536106039bda, 2023-07-20 by *Guillaume Chervet* -- [290ee61](https://github.com/AxaFrance/oidc-client/commit/290ee618c032f20b583ff624571ca53b9cd7a0b6) - fix(ci): test (alpha), 2023-07-20 by *Guillaume Chervet* - - -## v6.24.16 - -- [0c914ec](https://github.com/AxaFrance/oidc-client/commit/0c914ec8c7d815bb4f314eb61342d31edc68b100) - Merge 7fd9f9bf1f9c383b6b08d498f4743e0f8cbc0b65 into 3e535c94dc57d59956498bfa0ca9536106039bda, 2023-07-20 by *Guillaume Chervet* -- [7fd9f9b](https://github.com/AxaFrance/oidc-client/commit/7fd9f9bf1f9c383b6b08d498f4743e0f8cbc0b65) - fix(ci): test (alpha), 2023-07-20 by *Guillaume Chervet* - - -## v6.24.15 - -- [7c0e6c7](https://github.com/AxaFrance/oidc-client/commit/7c0e6c749b9c049accefbf29e36aa606db66ea87) - Merge eae183a91d6570b7ea23fe85ada9035dfcfbb83a into 3e535c94dc57d59956498bfa0ca9536106039bda, 2023-07-20 by *Guillaume Chervet* -- [eae183a](https://github.com/AxaFrance/oidc-client/commit/eae183a91d6570b7ea23fe85ada9035dfcfbb83a) - ssssssssss, 2023-07-20 by *Guillaume Chervet* - - From b070c8848582ac6f52ab7cb00f16b0fe9f702b5f Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Thu, 30 Nov 2023 12:23:20 +0100 Subject: [PATCH 100/440] fix(oidc-client): Update README.md (release) --- packages/oidc-client/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/oidc-client/README.md b/packages/oidc-client/README.md index c40527d68..a17f2b93f 100644 --- a/packages/oidc-client/README.md +++ b/packages/oidc-client/README.md @@ -55,7 +55,7 @@ The service worker catch **access_token** and **refresh_token** that will never npm install @axa-fr/oidc-client --save # To install or update OidcServiceWorker.js file, you can run -node ./node_modules/@axa-fr/react-oidc/bin/copy-service-worker-files.mjs public +node ./node_modules/@axa-fr/oidc-client/bin/copy-service-worker-files.mjs public # If you have a "public" folder, the 2 files will be created : # ./public/OidcServiceWorker.js <-- will be updated at each "npm install" @@ -66,7 +66,7 @@ WARNING : If you use Service Worker mode, the OidcServiceWorker.js file should a ```sh "scripts": { ... - "postinstall": "node ./node_modules/@axa-fr/react-oidc/bin/copy-service-worker-files.mjs public" + "postinstall": "node ./node_modules/@axa-fr/oidc-client/bin/copy-service-worker-files.mjs public" }, ``` From 8b51642bbbe92a00781545a821c442300cf43bc6 Mon Sep 17 00:00:00 2001 From: GitHub Date: Thu, 30 Nov 2023 11:26:00 +0000 Subject: [PATCH 101/440] [skip ci] Update to version 7.12.12 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 97561cedf..5ec2fffb9 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.12.11", + "version": "7.12.12", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index f75f36be0..e1117b1d6 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.12.11'; +export default '7.12.12'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index faf9d640a..0a900c072 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.12.11", + "version": "7.12.12", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index f75f36be0..e1117b1d6 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.12.11'; +export default '7.12.12'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index acaa15593..082bddf35 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.12.11", + "version": "7.12.12", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From e51d30dc626fadb283747c180048f7620ba969d1 Mon Sep 17 00:00:00 2001 From: GitHub Date: Thu, 30 Nov 2023 11:26:02 +0000 Subject: [PATCH 102/440] [skip ci] Generate changelog to version 7.12.12 --- CHANGELOG.md | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c7ae3730d..cb566180e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog -## 7.12.11 +## 7.12.12 + +- [b070c88](https://github.com/AxaFrance/oidc-client/commit/b070c8848582ac6f52ab7cb00f16b0fe9f702b5f) - fix(oidc-client): Update README.md (release), 2023-11-30 by *Guillaume Chervet* + + +## v7.12.11 - [d1480fb](https://github.com/AxaFrance/oidc-client/commit/d1480fbe2c0e275f17775768f83b70d9adf00ee1) - fix(all): dependencies update break the build (release), 2023-11-30 by *Guillaume Chervet* - [6027511](https://github.com/AxaFrance/oidc-client/commit/6027511a0c8d2112d370d45cf42f144874112f77) - doc(readme) Update README.md, 2023-11-29 by *Guillaume Chervet* @@ -329,9 +334,3 @@ - [db00519](https://github.com/AxaFrance/oidc-client/commit/db00519628cbd0a6f865539245321bcc85570f15) - fix test (alpha), 2023-07-20 by *Guillaume Chervet* -## v6.24.21 - -- [40ec599](https://github.com/AxaFrance/oidc-client/commit/40ec5994043d3a8c294e520e10d24bd5f1e8a02f) - Merge 822f9aba2b245872401fa15905e7e256e4adb879 into 3e535c94dc57d59956498bfa0ca9536106039bda, 2023-07-20 by *Guillaume Chervet* -- [822f9ab](https://github.com/AxaFrance/oidc-client/commit/822f9aba2b245872401fa15905e7e256e4adb879) - test (alpha), 2023-07-20 by *Guillaume Chervet* - - From 49c3d5e5487d714ccd97272e37fc34f2a7bd0ff6 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Mon, 4 Dec 2023 21:00:01 +0100 Subject: [PATCH 103/440] feat(oidc-client): allow to take control on service-worker registration (release) (#1229) --- packages/oidc-client/README.md | 5 +++-- packages/oidc-client/src/initWorker.ts | 13 +++++++++---- packages/oidc-client/src/oidc.ts | 6 +++--- packages/oidc-client/src/parseTokens.ts | 2 +- packages/oidc-client/src/types.ts | 2 ++ packages/oidc-client/src/user.ts | 2 +- packages/react-oidc/README.md | 1 + 7 files changed, 20 insertions(+), 11 deletions(-) diff --git a/packages/oidc-client/README.md b/packages/oidc-client/README.md index a17f2b93f..b958d2bc0 100644 --- a/packages/oidc-client/README.md +++ b/packages/oidc-client/README.md @@ -194,9 +194,10 @@ const configuration = { refresh_time_before_tokens_expiration_in_second: Number, // default is 120 seconds service_worker_relative_url: String, service_worker_keep_alive_path: String, // default is "/" - service_worker_only: Boolean, // default false - service_worker_activate: () => boolean, // you can take the control of the service worker default activation which use user agent string + service_worker_only: Boolean, // default false, if true, the user will not be able to login if the service worker is not available on its browser + service_worker_activate: () => boolean, // you can take the control of the service worker default activation which use user agent string, if return false, the service worker mode will not be used service_worker_update_require_callback: (registration:any, stopKeepAlive:Function) => Promise, // callback called when service worker need to be updated, you can take the control of the update process + service_worker_register: (url: string) => Promise, // Optional, you can take the control of the service worker registration extras: StringMap | undefined, // ex: {'prompt': 'consent', 'access_type': 'offline'} list of key/value that is sent to the OIDC server (more info: https://github.com/openid/AppAuth-JS) token_request_extras: StringMap | undefined, // ex: {'prompt': 'consent', 'access_type': 'offline'} list of key/value that is sent to the OIDC server during token request (more info: https://github.com/openid/AppAuth-JS) authority_time_cache_wellknowurl_in_second: 60 * 60, // Time to cache in seconds of the openid well-known URL, default is 1 hour diff --git a/packages/oidc-client/src/initWorker.ts b/packages/oidc-client/src/initWorker.ts index 229a4471f..959bc0a75 100644 --- a/packages/oidc-client/src/initWorker.ts +++ b/packages/oidc-client/src/initWorker.ts @@ -6,7 +6,7 @@ import {ILOidcLocation} from "./location"; let keepAliveServiceWorkerTimeoutId = null; let keepAliveController; -export const sleepAsync = (milliseconds) => { +export const sleepAsync = ({milliseconds}: { milliseconds: any }) => { return new Promise(resolve => timer.setTimeout(resolve, milliseconds)); }; @@ -16,7 +16,7 @@ const keepAlive = (service_worker_keep_alive_path='/') => { keepAliveController = new AbortController(); const promise = fetch(`${service_worker_keep_alive_path}OidcKeepAliveServiceWorker.json?minSleepSeconds=${minSleepSeconds}`, { signal: keepAliveController.signal }); promise.catch(error => { console.log(error); }); - sleepAsync(minSleepSeconds * 1000).then(keepAlive); + sleepAsync({milliseconds: minSleepSeconds * 1000}).then(keepAlive); } catch (error) { console.log(error); } }; @@ -41,7 +41,7 @@ export const defaultServiceWorkerUpdateRequireCallback = (location:ILOidcLocatio await registration.update(); const isSuccess = await registration.unregister(); console.log(`Service worker unregistering ${isSuccess}`) - await sleepAsync(2000); + await sleepAsync({milliseconds: 2000}); location.reload(); } @@ -72,7 +72,12 @@ export const initWorkerAsync = async(configuration, configurationName) => { return null; } - const registration = await navigator.serviceWorker.register(serviceWorkerRelativeUrl); + let registration = null; + if(configuration.register) { + registration = await configuration.service_worker_register(serviceWorkerRelativeUrl); + } else { + registration = await navigator.serviceWorker.register(serviceWorkerRelativeUrl); + } try { await navigator.serviceWorker.ready; diff --git a/packages/oidc-client/src/oidc.ts b/packages/oidc-client/src/oidc.ts index 0d53d90cf..b0e023a6a 100644 --- a/packages/oidc-client/src/oidc.ts +++ b/packages/oidc-client/src/oidc.ts @@ -352,18 +352,18 @@ Please checkout that you are using OIDC hook inside a 0) { - await sleepAsync(1000); + await sleepAsync({milliseconds: 1000}); numberTryOnline--; this.publishEvent(eventNames.refreshTokensAsync, { message: `wait because navigator is offline try ${numberTryOnline}` }); } let numberTryHidden = Math.floor(Math.random() * 15) + 10; while (document.hidden && numberTryHidden > 0) { - await sleepAsync(1000); + await sleepAsync({milliseconds: 1000}); numberTryHidden--; this.publishEvent(eventNames.refreshTokensAsync, { message: `wait because navigator is hidden try ${numberTryHidden}` }); } diff --git a/packages/oidc-client/src/parseTokens.ts b/packages/oidc-client/src/parseTokens.ts index c57816ca9..b1e6f83df 100644 --- a/packages/oidc-client/src/parseTokens.ts +++ b/packages/oidc-client/src/parseTokens.ts @@ -173,7 +173,7 @@ export const getValidTokenAsync = async (oidc: OidcToken, waitMs = 200, numberWa return null; } while (!isTokensValid(oidc.tokens) && numberWaitTemp > 0) { - await sleepAsync(waitMs); + await sleepAsync({milliseconds: waitMs}); numberWaitTemp = numberWaitTemp - 1; } const isValid = isTokensValid(oidc.tokens); diff --git a/packages/oidc-client/src/types.ts b/packages/oidc-client/src/types.ts index 89e4e7a44..54180c818 100644 --- a/packages/oidc-client/src/types.ts +++ b/packages/oidc-client/src/types.ts @@ -3,6 +3,7 @@ export type Fetch = typeof window.fetch; export type LogoutToken = 'access_token' | 'refresh_token'; export type ServiceWorkerUpdateRequireCallback = (registration:any, stopKeepAlive:Function) => Promise; +export type ServiceWorkerRegister = (serviceWorkerRelativeUrl:string) => Promise; export type ServiceWorkerActivate = () => boolean; export type OidcConfiguration = { @@ -19,6 +20,7 @@ export type OidcConfiguration = { refresh_time_before_tokens_expiration_in_second?: number; token_request_timeout?: number; service_worker_relative_url?:string; + service_worker_register?:ServiceWorkerRegister; service_worker_keep_alive_path?:string; service_worker_activate?:ServiceWorkerActivate; service_worker_only?:boolean; diff --git a/packages/oidc-client/src/user.ts b/packages/oidc-client/src/user.ts index ebc1d0600..5068c6435 100644 --- a/packages/oidc-client/src/user.ts +++ b/packages/oidc-client/src/user.ts @@ -8,7 +8,7 @@ export const userInfoAsync = (oidc) => async (noCache = false) => { // We wait the synchronisation before making a request while (oidc.tokens && !isTokensValid(oidc.tokens)) { - await sleepAsync(200); + await sleepAsync({milliseconds: 200}); } if (!oidc.tokens) { diff --git a/packages/react-oidc/README.md b/packages/react-oidc/README.md index 638da1918..8abaddeb2 100644 --- a/packages/react-oidc/README.md +++ b/packages/react-oidc/README.md @@ -191,6 +191,7 @@ const configuration = { service_worker_only: Boolean, // default false service_worker_activate: () => boolean, // you can take the control of the service worker default activation which use user agent string service_worker_update_require_callback: (registration:any, stopKeepAlive:Function) => Promise, // callback called when service worker need to be updated, you can take the control of the update process + service_worker_register: (url: string) => Promise, // Optional, you can take the control of the service worker registration extras: StringMap | undefined, // ex: {'prompt': 'consent', 'access_type': 'offline'} list of key/value that is sent to the OIDC server (more info: https://github.com/openid/AppAuth-JS) token_request_extras: StringMap | undefined, // ex: {'prompt': 'consent', 'access_type': 'offline'} list of key/value that is sent to the OIDC server during token request (more info: https://github.com/openid/AppAuth-JS) withCustomHistory: Function, // Override history modification, return an instance with replaceState(url, stateHistory) implemented (like History.replaceState()) From d1188d6c54e8df192fa6aa4b17c1acb4c381ee86 Mon Sep 17 00:00:00 2001 From: GitHub Date: Mon, 4 Dec 2023 20:02:43 +0000 Subject: [PATCH 104/440] [skip ci] Update to version 7.13.0 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 5ec2fffb9..7bce40ae1 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.12.12", + "version": "7.13.0", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index e1117b1d6..20c952c8e 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.12.12'; +export default '7.13.0'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 0a900c072..468acc98b 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.12.12", + "version": "7.13.0", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index e1117b1d6..20c952c8e 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.12.12'; +export default '7.13.0'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 082bddf35..b0f495874 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.12.12", + "version": "7.13.0", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 826084a87ce079980e86ce8f172b8ed8ae1d0451 Mon Sep 17 00:00:00 2001 From: GitHub Date: Mon, 4 Dec 2023 20:02:44 +0000 Subject: [PATCH 105/440] [skip ci] Generate changelog to version 7.13.0 --- CHANGELOG.md | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cb566180e..9f7238013 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog -## 7.12.12 +## 7.13.0 + +- [49c3d5e](https://github.com/AxaFrance/oidc-client/commit/49c3d5e5487d714ccd97272e37fc34f2a7bd0ff6) - feat(oidc-client): allow to take control on service-worker registration (release) (#1229), 2023-12-04 by *Guillaume Chervet* + + +## v7.12.12 - [b070c88](https://github.com/AxaFrance/oidc-client/commit/b070c8848582ac6f52ab7cb00f16b0fe9f702b5f) - fix(oidc-client): Update README.md (release), 2023-11-30 by *Guillaume Chervet* @@ -328,9 +333,3 @@ - [8fd627d](https://github.com/AxaFrance/oidc-client/commit/8fd627df3359f24aa2f8a56381b50b2617dc2f53) - chore(ci): add way to publish alpha, beta, release (alpha) (#1099), 2023-07-20 by *Guillaume Chervet* -## v6.24.22 - -- [1f8b455](https://github.com/AxaFrance/oidc-client/commit/1f8b455107dda34d267e0a6c898c704de88dfa77) - Merge db00519628cbd0a6f865539245321bcc85570f15 into 3e535c94dc57d59956498bfa0ca9536106039bda, 2023-07-20 by *Guillaume Chervet* -- [db00519](https://github.com/AxaFrance/oidc-client/commit/db00519628cbd0a6f865539245321bcc85570f15) - fix test (alpha), 2023-07-20 by *Guillaume Chervet* - - From 96637a73252e9ea34d8687409131f58f09633da6 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Tue, 5 Dec 2023 21:30:28 +0100 Subject: [PATCH 106/440] fix(oidc): sessions storage renew tokens (release) (#1230) * fix(oidc): sessions storage renew tokens (alpha) --- packages/oidc-client/src/oidc.ts | 7 +--- packages/oidc-client/src/renewTokens.ts | 47 +++++++++++++++---------- 2 files changed, 30 insertions(+), 24 deletions(-) diff --git a/packages/oidc-client/src/oidc.ts b/packages/oidc-client/src/oidc.ts index b0e023a6a..9922dd8d2 100644 --- a/packages/oidc-client/src/oidc.ts +++ b/packages/oidc-client/src/oidc.ts @@ -112,6 +112,7 @@ export class Oidc { logout_tokens_to_invalidate: configuration.logout_tokens_to_invalidate ?? ['access_token', 'refresh_token'], service_worker_update_require_callback, service_worker_activate: configuration.service_worker_activate ?? activateServiceWorker, + storage: configuration.storage ?? sessionStorage, }; this.getFetch = getFetch ?? getFetchDefault; @@ -361,12 +362,6 @@ Please checkout that you are using OIDC hook inside a 0) { - await sleepAsync({milliseconds: 1000}); - numberTryHidden--; - this.publishEvent(eventNames.refreshTokensAsync, { message: `wait because navigator is hidden try ${numberTryHidden}` }); - } const isDocumentHidden = document.hidden; const nextIndex = isDocumentHidden ? index : index + 1; if (!extras) { diff --git a/packages/oidc-client/src/renewTokens.ts b/packages/oidc-client/src/renewTokens.ts index 5811a6c14..993d6cdb9 100644 --- a/packages/oidc-client/src/renewTokens.ts +++ b/packages/oidc-client/src/renewTokens.ts @@ -5,28 +5,39 @@ import { computeTimeLeft } from './parseTokens.js'; import timer from './timer.js'; import { StringMap } from './types.js'; +async function syncTokens(oidc, refreshToken, forceRefresh: boolean, extras: StringMap) { + const updateTokens = (tokens) => { + oidc.tokens = tokens; + }; + const {tokens, status} = await oidc.synchroniseTokensAsync(refreshToken, 0, forceRefresh, extras, updateTokens); + + const serviceWorker = await initWorkerAsync(oidc.configuration, oidc.configurationName); + if (!serviceWorker) { + const session = initSession(oidc.configurationName, oidc.configuration.storage); + await session.setTokens(oidc.tokens); + } + + if (!oidc.tokens) { + await oidc.destroyAsync(status); + return null; + } + return tokens; +} + export async function renewTokensAndStartTimerAsync(oidc, refreshToken, forceRefresh = false, extras:StringMap = null) { const configuration = oidc.configuration; const lockResourcesName = `${configuration.client_id}_${oidc.configurationName}_${configuration.authority}`; - const tokens = await navigator.locks.request(lockResourcesName, async (lock) => { - const updateTokens = (tokens) => { - oidc.tokens = tokens; - }; - const {tokens, status} = await oidc.synchroniseTokensAsync(refreshToken, 0, forceRefresh, extras, updateTokens); - - const serviceWorker = await initWorkerAsync(oidc.configuration, oidc.configurationName); - if (!serviceWorker) { - const session = initSession(oidc.configurationName, oidc.configuration.storage); - await session.setTokens(oidc.tokens); - } - - if (!oidc.tokens) { - await oidc.destroyAsync(status); - return null; - } - return tokens - }); + + let tokens = null; + const serviceWorker = await initWorkerAsync(oidc.configuration, oidc.configurationName); + if(configuration.storage === window.sessionStorage && !serviceWorker) { + tokens = await syncTokens(oidc, refreshToken, forceRefresh, extras); + } else { + tokens = await navigator.locks.request(lockResourcesName, async (lock) => { + return await syncTokens(oidc, refreshToken, forceRefresh, extras); + }); + } if(!tokens){ return null; } From 8c800a1334f1fd57ca6972961c5c62d13390e116 Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 5 Dec 2023 20:33:04 +0000 Subject: [PATCH 107/440] [skip ci] Update to version 7.13.1 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 7bce40ae1..0017bc3c7 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.13.0", + "version": "7.13.1", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 20c952c8e..996a5af91 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.13.0'; +export default '7.13.1'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 468acc98b..fb9923db6 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.13.0", + "version": "7.13.1", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 20c952c8e..996a5af91 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.13.0'; +export default '7.13.1'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index b0f495874..64fe11ac7 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.13.0", + "version": "7.13.1", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From e142e7dd201ba5dcd6266a166cd6390fd8c24f31 Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 5 Dec 2023 20:33:06 +0000 Subject: [PATCH 108/440] [skip ci] Generate changelog to version 7.13.1 --- CHANGELOG.md | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9f7238013..341435378 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog -## 7.13.0 +## 7.13.1 + +- [96637a7](https://github.com/AxaFrance/oidc-client/commit/96637a73252e9ea34d8687409131f58f09633da6) - fix(oidc): sessions storage renew tokens (release) (#1230), 2023-12-05 by *Guillaume Chervet* + + +## v7.13.0 - [49c3d5e](https://github.com/AxaFrance/oidc-client/commit/49c3d5e5487d714ccd97272e37fc34f2a7bd0ff6) - feat(oidc-client): allow to take control on service-worker registration (release) (#1229), 2023-12-04 by *Guillaume Chervet* @@ -327,9 +332,3 @@ - [0a30ab1](https://github.com/AxaFrance/oidc-client/commit/0a30ab1c3ce16df2ee8bb8c7fab4050e6cb1e3f1) - fix(ci): version empty (alpha), 2023-07-20 by *Guillaume Chervet* -## v6.24.23 - -- [8ae8b23](https://github.com/AxaFrance/oidc-client/commit/8ae8b23d54c3352221bbca638a8f8ad5d2f70459) - fix(ci): bad variable (alpha), 2023-07-20 by *Guillaume Chervet* -- [8fd627d](https://github.com/AxaFrance/oidc-client/commit/8fd627df3359f24aa2f8a56381b50b2617dc2f53) - chore(ci): add way to publish alpha, beta, release (alpha) (#1099), 2023-07-20 by *Guillaume Chervet* - - From 430a06b27b2f7164bc1557a2e55e547b5af3d8d7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Dec 2023 06:43:48 +0100 Subject: [PATCH 109/440] build(npm): bump vite from 4.4.7 to 4.4.12 (#1231) Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 4.4.7 to 4.4.12. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/v4.4.12/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v4.4.12/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-type: direct:development ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- examples/oidc-client-demo/package.json | 2 +- examples/react-oidc-demo/package.json | 2 +- .../oidc-client-service-worker/package.json | 2 +- packages/oidc-client/package.json | 2 +- packages/react-oidc/package.json | 2 +- pnpm-lock.yaml | 426 +++--------------- 6 files changed, 69 insertions(+), 367 deletions(-) diff --git a/examples/oidc-client-demo/package.json b/examples/oidc-client-demo/package.json index 1cf30c3ee..958ac268b 100644 --- a/examples/oidc-client-demo/package.json +++ b/examples/oidc-client-demo/package.json @@ -32,6 +32,6 @@ "devDependencies": { "@types/node": "^20.10.1", "cross-env": "^7.0.3", - "vite": "^4.4.4" + "vite": "^4.4.12" } } diff --git a/examples/react-oidc-demo/package.json b/examples/react-oidc-demo/package.json index 2931272ae..52954cc2a 100644 --- a/examples/react-oidc-demo/package.json +++ b/examples/react-oidc-demo/package.json @@ -36,7 +36,7 @@ "jsdom": "22.1.0", "msw": "2.0.0", "typescript": "5.1.6", - "vite": "^4.4.4", + "vite": "^4.4.12", "vite-plugin-dts": "^3.3.0", "vitest": "^0.33.0" }, diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 0017bc3c7..d6a62be3b 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -40,7 +40,7 @@ "rimraf": "5.0.1", "msw": "2.0.0", "typescript": "5.1.6", - "vite": "^4.4.4", + "vite": "^4.4.12", "vite-plugin-dts": "^3.3.0", "vitest": "^0.33.0" }, diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index fb9923db6..b565298b5 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -32,7 +32,7 @@ "cpy-cli": "^5.0.0", "rimraf": "5.0.1", "typescript": "5.1.6", - "vite": "^4.4.4", + "vite": "^4.4.12", "vite-plugin-dts": "^3.3.0", "vitest": "^0.33.0" }, diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 64fe11ac7..7f51154b7 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -63,7 +63,7 @@ "react-dom": "^18.2.0", "rimraf": "5.0.1", "typescript": "5.1.6", - "vite": "^4.4.4", + "vite": "^4.4.12", "vite-plugin-dts": "^3.3.0", "vitest": "^0.33.0" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0d6848641..31add89e3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -76,7 +76,7 @@ importers: version: link:../../packages/react-oidc next: specifier: latest - version: 13.4.12(react-dom@18.2.0)(react@18.2.0) + version: 14.0.3(react-dom@18.2.0)(react@18.2.0) react: specifier: latest version: 18.2.0 @@ -112,8 +112,8 @@ importers: specifier: ^7.0.3 version: 7.0.3 vite: - specifier: ^4.4.4 - version: 4.4.7(@types/node@20.10.1) + specifier: ^4.4.12 + version: 4.4.12(@types/node@20.10.1) examples/react-oidc-demo: dependencies: @@ -144,7 +144,7 @@ importers: version: 18.2.39 '@vitejs/plugin-react': specifier: 4.0.3 - version: 4.0.3(vite@4.4.7) + version: 4.0.3(vite@4.4.12) '@vitest/coverage-c8': specifier: ^0.33.0 version: 0.33.0(vitest@0.33.0) @@ -167,11 +167,11 @@ importers: specifier: 5.1.6 version: 5.1.6 vite: - specifier: ^4.4.4 - version: 4.4.7 + specifier: ^4.4.12 + version: 4.4.12(@types/node@20.10.1) vite-plugin-dts: specifier: ^3.3.0 - version: 3.4.0(typescript@5.1.6)(vite@4.4.7) + version: 3.4.0(typescript@5.1.6)(vite@4.4.12) vitest: specifier: ^0.33.0 version: 0.33.0(jsdom@22.1.0) @@ -210,11 +210,11 @@ importers: specifier: 5.1.6 version: 5.1.6 vite: - specifier: ^4.4.4 - version: 4.4.7 + specifier: ^4.4.12 + version: 4.4.12(@types/node@20.10.1) vite-plugin-dts: specifier: ^3.3.0 - version: 3.4.0(typescript@5.1.6)(vite@4.4.7) + version: 3.4.0(typescript@5.1.6)(vite@4.4.12) vitest: specifier: ^0.33.0 version: 0.33.0(jsdom@22.1.0) @@ -240,11 +240,11 @@ importers: specifier: 5.1.6 version: 5.1.6 vite: - specifier: ^4.4.4 - version: 4.4.7 + specifier: ^4.4.12 + version: 4.4.12(@types/node@20.10.1) vite-plugin-dts: specifier: ^3.3.0 - version: 3.4.0(typescript@5.1.6)(vite@4.4.7) + version: 3.4.0(typescript@5.1.6)(vite@4.4.12) vitest: specifier: ^0.33.0 version: 0.33.0(jsdom@22.1.0) @@ -275,7 +275,7 @@ importers: version: 18.2.39 '@vitejs/plugin-react': specifier: 4.0.3 - version: 4.0.3(vite@4.4.7) + version: 4.0.3(vite@4.4.12) '@vitest/coverage-v8': specifier: ^0.33.0 version: 0.33.0(vitest@0.33.0) @@ -307,11 +307,11 @@ importers: specifier: 5.1.6 version: 5.1.6 vite: - specifier: ^4.4.4 - version: 4.4.7 + specifier: ^4.4.12 + version: 4.4.12(@types/node@20.10.1) vite-plugin-dts: specifier: ^3.3.0 - version: 3.4.0(typescript@5.1.6)(vite@4.4.7) + version: 3.4.0(typescript@5.1.6)(vite@4.4.12) vitest: specifier: ^0.33.0 version: 0.33.0(jsdom@22.1.0) @@ -583,15 +583,6 @@ packages: statuses: 2.0.1 dev: true - /@esbuild/android-arm64@0.18.17: - resolution: {integrity: sha512-9np+YYdNDed5+Jgr1TdWBsozZ85U1Oa3xW0c7TWqH0y2aGghXtZsuT8nYRbzOMcl0bXZXjOGbksoTtVOlWrRZg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - /@esbuild/android-arm64@0.18.20: resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} engines: {node: '>=12'} @@ -601,15 +592,6 @@ packages: dev: true optional: true - /@esbuild/android-arm@0.18.17: - resolution: {integrity: sha512-wHsmJG/dnL3OkpAcwbgoBTTMHVi4Uyou3F5mf58ZtmUyIKfcdA7TROav/6tCzET4A3QW2Q2FC+eFneMU+iyOxg==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: true - optional: true - /@esbuild/android-arm@0.18.20: resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} engines: {node: '>=12'} @@ -619,15 +601,6 @@ packages: dev: true optional: true - /@esbuild/android-x64@0.18.17: - resolution: {integrity: sha512-O+FeWB/+xya0aLg23hHEM2E3hbfwZzjqumKMSIqcHbNvDa+dza2D0yLuymRBQQnC34CWrsJUXyH2MG5VnLd6uw==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: true - optional: true - /@esbuild/android-x64@0.18.20: resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} engines: {node: '>=12'} @@ -637,15 +610,6 @@ packages: dev: true optional: true - /@esbuild/darwin-arm64@0.18.17: - resolution: {integrity: sha512-M9uJ9VSB1oli2BE/dJs3zVr9kcCBBsE883prage1NWz6pBS++1oNn/7soPNS3+1DGj0FrkSvnED4Bmlu1VAE9g==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - /@esbuild/darwin-arm64@0.18.20: resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} engines: {node: '>=12'} @@ -655,15 +619,6 @@ packages: dev: true optional: true - /@esbuild/darwin-x64@0.18.17: - resolution: {integrity: sha512-XDre+J5YeIJDMfp3n0279DFNrGCXlxOuGsWIkRb1NThMZ0BsrWXoTg23Jer7fEXQ9Ye5QjrvXpxnhzl3bHtk0g==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - /@esbuild/darwin-x64@0.18.20: resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} engines: {node: '>=12'} @@ -673,15 +628,6 @@ packages: dev: true optional: true - /@esbuild/freebsd-arm64@0.18.17: - resolution: {integrity: sha512-cjTzGa3QlNfERa0+ptykyxs5A6FEUQQF0MuilYXYBGdBxD3vxJcKnzDlhDCa1VAJCmAxed6mYhA2KaJIbtiNuQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/freebsd-arm64@0.18.20: resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} engines: {node: '>=12'} @@ -691,15 +637,6 @@ packages: dev: true optional: true - /@esbuild/freebsd-x64@0.18.17: - resolution: {integrity: sha512-sOxEvR8d7V7Kw8QqzxWc7bFfnWnGdaFBut1dRUYtu+EIRXefBc/eIsiUiShnW0hM3FmQ5Zf27suDuHsKgZ5QrA==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/freebsd-x64@0.18.20: resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} engines: {node: '>=12'} @@ -709,15 +646,6 @@ packages: dev: true optional: true - /@esbuild/linux-arm64@0.18.17: - resolution: {integrity: sha512-c9w3tE7qA3CYWjT+M3BMbwMt+0JYOp3vCMKgVBrCl1nwjAlOMYzEo+gG7QaZ9AtqZFj5MbUc885wuBBmu6aADQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-arm64@0.18.20: resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} engines: {node: '>=12'} @@ -727,15 +655,6 @@ packages: dev: true optional: true - /@esbuild/linux-arm@0.18.17: - resolution: {integrity: sha512-2d3Lw6wkwgSLC2fIvXKoMNGVaeY8qdN0IC3rfuVxJp89CRfA3e3VqWifGDfuakPmp90+ZirmTfye1n4ncjv2lg==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-arm@0.18.20: resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} engines: {node: '>=12'} @@ -745,15 +664,6 @@ packages: dev: true optional: true - /@esbuild/linux-ia32@0.18.17: - resolution: {integrity: sha512-1DS9F966pn5pPnqXYz16dQqWIB0dmDfAQZd6jSSpiT9eX1NzKh07J6VKR3AoXXXEk6CqZMojiVDSZi1SlmKVdg==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-ia32@0.18.20: resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} engines: {node: '>=12'} @@ -763,15 +673,6 @@ packages: dev: true optional: true - /@esbuild/linux-loong64@0.18.17: - resolution: {integrity: sha512-EvLsxCk6ZF0fpCB6w6eOI2Fc8KW5N6sHlIovNe8uOFObL2O+Mr0bflPHyHwLT6rwMg9r77WOAWb2FqCQrVnwFg==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-loong64@0.18.20: resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} engines: {node: '>=12'} @@ -781,15 +682,6 @@ packages: dev: true optional: true - /@esbuild/linux-mips64el@0.18.17: - resolution: {integrity: sha512-e0bIdHA5p6l+lwqTE36NAW5hHtw2tNRmHlGBygZC14QObsA3bD4C6sXLJjvnDIjSKhW1/0S3eDy+QmX/uZWEYQ==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-mips64el@0.18.20: resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} engines: {node: '>=12'} @@ -799,15 +691,6 @@ packages: dev: true optional: true - /@esbuild/linux-ppc64@0.18.17: - resolution: {integrity: sha512-BAAilJ0M5O2uMxHYGjFKn4nJKF6fNCdP1E0o5t5fvMYYzeIqy2JdAP88Az5LHt9qBoUa4tDaRpfWt21ep5/WqQ==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-ppc64@0.18.20: resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} engines: {node: '>=12'} @@ -817,15 +700,6 @@ packages: dev: true optional: true - /@esbuild/linux-riscv64@0.18.17: - resolution: {integrity: sha512-Wh/HW2MPnC3b8BqRSIme/9Zhab36PPH+3zam5pqGRH4pE+4xTrVLx2+XdGp6fVS3L2x+DrsIcsbMleex8fbE6g==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-riscv64@0.18.20: resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} engines: {node: '>=12'} @@ -835,15 +709,6 @@ packages: dev: true optional: true - /@esbuild/linux-s390x@0.18.17: - resolution: {integrity: sha512-j/34jAl3ul3PNcK3pfI0NSlBANduT2UO5kZ7FCaK33XFv3chDhICLY8wJJWIhiQ+YNdQ9dxqQctRg2bvrMlYgg==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-s390x@0.18.20: resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} engines: {node: '>=12'} @@ -853,15 +718,6 @@ packages: dev: true optional: true - /@esbuild/linux-x64@0.18.17: - resolution: {integrity: sha512-QM50vJ/y+8I60qEmFxMoxIx4de03pGo2HwxdBeFd4nMh364X6TIBZ6VQ5UQmPbQWUVWHWws5MmJXlHAXvJEmpQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-x64@0.18.20: resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} engines: {node: '>=12'} @@ -871,15 +727,6 @@ packages: dev: true optional: true - /@esbuild/netbsd-x64@0.18.17: - resolution: {integrity: sha512-/jGlhWR7Sj9JPZHzXyyMZ1RFMkNPjC6QIAan0sDOtIo2TYk3tZn5UDrkE0XgsTQCxWTTOcMPf9p6Rh2hXtl5TQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/netbsd-x64@0.18.20: resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} engines: {node: '>=12'} @@ -889,15 +736,6 @@ packages: dev: true optional: true - /@esbuild/openbsd-x64@0.18.17: - resolution: {integrity: sha512-rSEeYaGgyGGf4qZM2NonMhMOP/5EHp4u9ehFiBrg7stH6BYEEjlkVREuDEcQ0LfIl53OXLxNbfuIj7mr5m29TA==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/openbsd-x64@0.18.20: resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} engines: {node: '>=12'} @@ -907,15 +745,6 @@ packages: dev: true optional: true - /@esbuild/sunos-x64@0.18.17: - resolution: {integrity: sha512-Y7ZBbkLqlSgn4+zot4KUNYst0bFoO68tRgI6mY2FIM+b7ZbyNVtNbDP5y8qlu4/knZZ73fgJDlXID+ohY5zt5g==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: true - optional: true - /@esbuild/sunos-x64@0.18.20: resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} engines: {node: '>=12'} @@ -925,15 +754,6 @@ packages: dev: true optional: true - /@esbuild/win32-arm64@0.18.17: - resolution: {integrity: sha512-bwPmTJsEQcbZk26oYpc4c/8PvTY3J5/QK8jM19DVlEsAB41M39aWovWoHtNm78sd6ip6prilxeHosPADXtEJFw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - /@esbuild/win32-arm64@0.18.20: resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} engines: {node: '>=12'} @@ -943,15 +763,6 @@ packages: dev: true optional: true - /@esbuild/win32-ia32@0.18.17: - resolution: {integrity: sha512-H/XaPtPKli2MhW+3CQueo6Ni3Avggi6hP/YvgkEe1aSaxw+AeO8MFjq8DlgfTd9Iz4Yih3QCZI6YLMoyccnPRg==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - /@esbuild/win32-ia32@0.18.20: resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} engines: {node: '>=12'} @@ -961,15 +772,6 @@ packages: dev: true optional: true - /@esbuild/win32-x64@0.18.17: - resolution: {integrity: sha512-fGEb8f2BSA3CW7riJVurug65ACLuQAzKq0SSqkY2b2yHHH0MzDfbLyKIGzHwOI/gkHcxM/leuSW6D5w/LMNitA==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - /@esbuild/win32-x64@0.18.20: resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} engines: {node: '>=12'} @@ -1154,12 +956,12 @@ packages: strict-event-emitter: 0.5.1 dev: true - /@next/env@13.4.12: - resolution: {integrity: sha512-RmHanbV21saP/6OEPBJ7yJMuys68cIf8OBBWd7+uj40LdpmswVAwe1uzeuFyUsd6SfeITWT3XnQfn6wULeKwDQ==} + /@next/env@14.0.3: + resolution: {integrity: sha512-7xRqh9nMvP5xrW4/+L0jgRRX+HoNRGnfJpD+5Wq6/13j3dsdzxO3BCXn7D3hMqsDb+vjZnJq+vI7+EtgrYZTeA==} dev: false - /@next/swc-darwin-arm64@13.4.12: - resolution: {integrity: sha512-deUrbCXTMZ6ZhbOoloqecnUeNpUOupi8SE2tx4jPfNS9uyUR9zK4iXBvH65opVcA/9F5I/p8vDXSYbUlbmBjZg==} + /@next/swc-darwin-arm64@14.0.3: + resolution: {integrity: sha512-64JbSvi3nbbcEtyitNn2LEDS/hcleAFpHdykpcnrstITFlzFgB/bW0ER5/SJJwUPj+ZPY+z3e+1jAfcczRLVGw==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] @@ -1167,8 +969,8 @@ packages: dev: false optional: true - /@next/swc-darwin-x64@13.4.12: - resolution: {integrity: sha512-WRvH7RxgRHlC1yb5oG0ZLx8F7uci9AivM5/HGGv9ZyG2Als8Ij64GC3d+mQ5sJhWjusyU6T6V1WKTUoTmOB0zQ==} + /@next/swc-darwin-x64@14.0.3: + resolution: {integrity: sha512-RkTf+KbAD0SgYdVn1XzqE/+sIxYGB7NLMZRn9I4Z24afrhUpVJx6L8hsRnIwxz3ERE2NFURNliPjJ2QNfnWicQ==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] @@ -1176,8 +978,8 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-gnu@13.4.12: - resolution: {integrity: sha512-YEKracAWuxp54tKiAvvq73PUs9lok57cc8meYRibTWe/VdPB2vLgkTVWFcw31YDuRXdEhdX0fWS6Q+ESBhnEig==} + /@next/swc-linux-arm64-gnu@14.0.3: + resolution: {integrity: sha512-3tBWGgz7M9RKLO6sPWC6c4pAw4geujSwQ7q7Si4d6bo0l6cLs4tmO+lnSwFp1Tm3lxwfMk0SgkJT7EdwYSJvcg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -1185,8 +987,8 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-musl@13.4.12: - resolution: {integrity: sha512-LhJR7/RAjdHJ2Isl2pgc/JaoxNk0KtBgkVpiDJPVExVWA1c6gzY57+3zWuxuyWzTG+fhLZo2Y80pLXgIJv7g3g==} + /@next/swc-linux-arm64-musl@14.0.3: + resolution: {integrity: sha512-v0v8Kb8j8T23jvVUWZeA2D8+izWspeyeDGNaT2/mTHWp7+37fiNfL8bmBWiOmeumXkacM/AB0XOUQvEbncSnHA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -1194,8 +996,8 @@ packages: dev: false optional: true - /@next/swc-linux-x64-gnu@13.4.12: - resolution: {integrity: sha512-1DWLL/B9nBNiQRng+1aqs3OaZcxC16Nf+mOnpcrZZSdyKHek3WQh6j/fkbukObgNGwmCoVevLUa/p3UFTTqgqg==} + /@next/swc-linux-x64-gnu@14.0.3: + resolution: {integrity: sha512-VM1aE1tJKLBwMGtyBR21yy+STfl0MapMQnNrXkxeyLs0GFv/kZqXS5Jw/TQ3TSUnbv0QPDf/X8sDXuMtSgG6eg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -1203,8 +1005,8 @@ packages: dev: false optional: true - /@next/swc-linux-x64-musl@13.4.12: - resolution: {integrity: sha512-kEAJmgYFhp0VL+eRWmUkVxLVunn7oL9Mdue/FS8yzRBVj7Z0AnIrHpTIeIUl1bbdQq1VaoOztnKicAjfkLTRCQ==} + /@next/swc-linux-x64-musl@14.0.3: + resolution: {integrity: sha512-64EnmKy18MYFL5CzLaSuUn561hbO1Gk16jM/KHznYP3iCIfF9e3yULtHaMy0D8zbHfxset9LTOv6cuYKJgcOxg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -1212,8 +1014,8 @@ packages: dev: false optional: true - /@next/swc-win32-arm64-msvc@13.4.12: - resolution: {integrity: sha512-GMLuL/loR6yIIRTnPRY6UGbLL9MBdw2anxkOnANxvLvsml4F0HNIgvnU3Ej4BjbqMTNjD4hcPFdlEow4XHPdZA==} + /@next/swc-win32-arm64-msvc@14.0.3: + resolution: {integrity: sha512-WRDp8QrmsL1bbGtsh5GqQ/KWulmrnMBgbnb+59qNTW1kVi1nG/2ndZLkcbs2GX7NpFLlToLRMWSQXmPzQm4tog==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] @@ -1221,8 +1023,8 @@ packages: dev: false optional: true - /@next/swc-win32-ia32-msvc@13.4.12: - resolution: {integrity: sha512-PhgNqN2Vnkm7XaMdRmmX0ZSwZXQAtamBVSa9A/V1dfKQCV1rjIZeiy/dbBnVYGdj63ANfsOR/30XpxP71W0eww==} + /@next/swc-win32-ia32-msvc@14.0.3: + resolution: {integrity: sha512-EKffQeqCrj+t6qFFhIFTRoqb2QwX1mU7iTOvMyLbYw3QtqTw9sMwjykyiMlZlrfm2a4fA84+/aeW+PMg1MjuTg==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] @@ -1230,8 +1032,8 @@ packages: dev: false optional: true - /@next/swc-win32-x64-msvc@13.4.12: - resolution: {integrity: sha512-Z+56e/Ljt0bUs+T+jPjhFyxYBcdY2RIq9ELFU+qAMQMteHo7ymbV7CKmlcX59RI9C4YzN8PgMgLyAoi916b5HA==} + /@next/swc-win32-x64-msvc@14.0.3: + resolution: {integrity: sha512-ERhKPSJ1vQrPiwrs15Pjz/rvDHZmkmvbf/BjPN/UCOI++ODftT0GtasDPi0j+y6PPJi5HsXw+dpRaXUaw4vjuQ==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -1350,8 +1152,8 @@ packages: resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} dev: true - /@swc/helpers@0.5.1: - resolution: {integrity: sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg==} + /@swc/helpers@0.5.2: + resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==} dependencies: tslib: 2.6.2 dev: false @@ -1739,7 +1541,7 @@ packages: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} dev: true - /@vitejs/plugin-react@4.0.3(vite@4.4.7): + /@vitejs/plugin-react@4.0.3(vite@4.4.12): resolution: {integrity: sha512-pwXDog5nwwvSIzwrvYYmA2Ljcd/ZNlcsSG2Q9CNDBwnsd55UGAyr2doXtB5j+2uymRCnCfExlznzzSFbBRcoCg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -1749,7 +1551,7 @@ packages: '@babel/plugin-transform-react-jsx-self': 7.22.5(@babel/core@7.22.9) '@babel/plugin-transform-react-jsx-source': 7.22.5(@babel/core@7.22.9) react-refresh: 0.14.0 - vite: 4.4.7 + vite: 4.4.12(@types/node@20.10.1) transitivePeerDependencies: - supports-color dev: true @@ -2910,36 +2712,6 @@ packages: is-symbol: 1.0.4 dev: true - /esbuild@0.18.17: - resolution: {integrity: sha512-1GJtYnUxsJreHYA0Y+iQz2UEykonY66HNWOb0yXYZi9/kNrORUEHVg87eQsCtqh59PEJ5YVZJO98JHznMJSWjg==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/android-arm': 0.18.17 - '@esbuild/android-arm64': 0.18.17 - '@esbuild/android-x64': 0.18.17 - '@esbuild/darwin-arm64': 0.18.17 - '@esbuild/darwin-x64': 0.18.17 - '@esbuild/freebsd-arm64': 0.18.17 - '@esbuild/freebsd-x64': 0.18.17 - '@esbuild/linux-arm': 0.18.17 - '@esbuild/linux-arm64': 0.18.17 - '@esbuild/linux-ia32': 0.18.17 - '@esbuild/linux-loong64': 0.18.17 - '@esbuild/linux-mips64el': 0.18.17 - '@esbuild/linux-ppc64': 0.18.17 - '@esbuild/linux-riscv64': 0.18.17 - '@esbuild/linux-s390x': 0.18.17 - '@esbuild/linux-x64': 0.18.17 - '@esbuild/netbsd-x64': 0.18.17 - '@esbuild/openbsd-x64': 0.18.17 - '@esbuild/sunos-x64': 0.18.17 - '@esbuild/win32-arm64': 0.18.17 - '@esbuild/win32-ia32': 0.18.17 - '@esbuild/win32-x64': 0.18.17 - dev: true - /esbuild@0.18.20: resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} engines: {node: '>=12'} @@ -4653,44 +4425,40 @@ packages: resolution: {integrity: sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==} dev: true - /next@13.4.12(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-eHfnru9x6NRmTMcjQp6Nz0J4XH9OubmzOa7CkWL+AUrUxpibub3vWwttjduu9No16dug1kq04hiUUpo7J3m3Xw==} - engines: {node: '>=16.8.0'} + /next@14.0.3(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-AbYdRNfImBr3XGtvnwOxq8ekVCwbFTv/UJoLwmaX89nk9i051AEY4/HAWzU0YpaTDw8IofUpmuIlvzWF13jxIw==} + engines: {node: '>=18.17.0'} hasBin: true peerDependencies: '@opentelemetry/api': ^1.1.0 - fibers: '>= 3.1.0' react: ^18.2.0 react-dom: ^18.2.0 sass: ^1.3.0 peerDependenciesMeta: '@opentelemetry/api': optional: true - fibers: - optional: true sass: optional: true dependencies: - '@next/env': 13.4.12 - '@swc/helpers': 0.5.1 + '@next/env': 14.0.3 + '@swc/helpers': 0.5.2 busboy: 1.6.0 caniuse-lite: 1.0.30001565 - postcss: 8.4.14 + postcss: 8.4.31 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) styled-jsx: 5.1.1(react@18.2.0) watchpack: 2.4.0 - zod: 3.21.4 optionalDependencies: - '@next/swc-darwin-arm64': 13.4.12 - '@next/swc-darwin-x64': 13.4.12 - '@next/swc-linux-arm64-gnu': 13.4.12 - '@next/swc-linux-arm64-musl': 13.4.12 - '@next/swc-linux-x64-gnu': 13.4.12 - '@next/swc-linux-x64-musl': 13.4.12 - '@next/swc-win32-arm64-msvc': 13.4.12 - '@next/swc-win32-ia32-msvc': 13.4.12 - '@next/swc-win32-x64-msvc': 13.4.12 + '@next/swc-darwin-arm64': 14.0.3 + '@next/swc-darwin-x64': 14.0.3 + '@next/swc-linux-arm64-gnu': 14.0.3 + '@next/swc-linux-arm64-musl': 14.0.3 + '@next/swc-linux-x64-gnu': 14.0.3 + '@next/swc-linux-x64-musl': 14.0.3 + '@next/swc-win32-arm64-msvc': 14.0.3 + '@next/swc-win32-ia32-msvc': 14.0.3 + '@next/swc-win32-x64-msvc': 14.0.3 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros @@ -5061,24 +4829,6 @@ packages: deprecated: You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1 dev: true - /postcss@8.4.14: - resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==} - engines: {node: ^10 || ^12 || >=14} - dependencies: - nanoid: 3.3.7 - picocolors: 1.0.0 - source-map-js: 1.0.2 - dev: false - - /postcss@8.4.27: - resolution: {integrity: sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==} - engines: {node: ^10 || ^12 || >=14} - dependencies: - nanoid: 3.3.7 - picocolors: 1.0.0 - source-map-js: 1.0.2 - dev: true - /postcss@8.4.31: resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} @@ -5086,7 +4836,6 @@ packages: nanoid: 3.3.7 picocolors: 1.0.0 source-map-js: 1.0.2 - dev: true /prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} @@ -5399,14 +5148,6 @@ packages: glob: 10.3.3 dev: true - /rollup@3.27.0: - resolution: {integrity: sha512-aOltLCrYZ0FhJDm7fCqwTjIUEVjWjcydKBV/Zeid6Mn8BWgDCUBBWT5beM5ieForYNo/1ZHuGJdka26kvQ3Gzg==} - engines: {node: '>=14.18.0', npm: '>=8.0.0'} - hasBin: true - optionalDependencies: - fsevents: 2.3.3 - dev: true - /rollup@3.29.4: resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} @@ -6170,7 +5911,7 @@ packages: - terser dev: true - /vite-plugin-dts@3.4.0(typescript@5.1.6)(vite@4.4.7): + /vite-plugin-dts@3.4.0(typescript@5.1.6)(vite@4.4.12): resolution: {integrity: sha512-B5UbhiF83hPlJpdri3k2FlseO2qIQfY95XJib7z1s8NTQKgPK+KgeuOQf8FR1hnE/pSU+RA3ra2T18HvymPDyA==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -6186,7 +5927,7 @@ packages: debug: 4.3.4 kolorist: 1.8.0 typescript: 5.1.6 - vite: 4.4.7 + vite: 4.4.12(@types/node@20.10.1) vue-tsc: 1.8.8(typescript@5.1.6) transitivePeerDependencies: - '@types/node' @@ -6194,43 +5935,8 @@ packages: - supports-color dev: true - /vite@4.4.7: - resolution: {integrity: sha512-6pYf9QJ1mHylfVh39HpuSfMPojPSKVxZvnclX1K1FyZ1PXDOcLBibdq5t1qxJSnL63ca8Wf4zts6mD8u8oc9Fw==} - engines: {node: ^14.18.0 || >=16.0.0} - hasBin: true - peerDependencies: - '@types/node': '>= 14' - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - dependencies: - esbuild: 0.18.17 - postcss: 8.4.31 - rollup: 3.27.0 - optionalDependencies: - fsevents: 2.3.3 - dev: true - - /vite@4.4.7(@types/node@20.10.1): - resolution: {integrity: sha512-6pYf9QJ1mHylfVh39HpuSfMPojPSKVxZvnclX1K1FyZ1PXDOcLBibdq5t1qxJSnL63ca8Wf4zts6mD8u8oc9Fw==} + /vite@4.4.12(@types/node@20.10.1): + resolution: {integrity: sha512-KtPlUbWfxzGVul8Nut8Gw2Qe8sBzWY+8QVc5SL8iRFnpnrcoCaNlzO40c1R6hPmcdTwIPEDkq0Y9+27a5tVbdQ==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: @@ -6258,9 +5964,9 @@ packages: optional: true dependencies: '@types/node': 20.10.1 - esbuild: 0.18.17 - postcss: 8.4.27 - rollup: 3.27.0 + esbuild: 0.18.20 + postcss: 8.4.31 + rollup: 3.29.4 optionalDependencies: fsevents: 2.3.3 dev: true @@ -6354,7 +6060,7 @@ packages: strip-literal: 1.0.1 tinybench: 2.5.0 tinypool: 0.6.0 - vite: 4.4.7(@types/node@20.10.1) + vite: 4.5.0(@types/node@20.10.1) vite-node: 0.33.0(@types/node@20.10.1) why-is-node-running: 2.2.2 transitivePeerDependencies: @@ -6698,7 +6404,3 @@ packages: optionalDependencies: commander: 9.5.0 dev: true - - /zod@3.21.4: - resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==} - dev: false From 69111018ab317868304e0c04421ff8441585800d Mon Sep 17 00:00:00 2001 From: GitHub Date: Thu, 7 Dec 2023 05:46:29 +0000 Subject: [PATCH 110/440] [skip ci] Update to version 7.13.2 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index d6a62be3b..3985f3ff9 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.13.1", + "version": "7.13.2", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 996a5af91..8d869c75d 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.13.1'; +export default '7.13.2'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index b565298b5..ce0c3ba0b 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.13.1", + "version": "7.13.2", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 996a5af91..8d869c75d 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.13.1'; +export default '7.13.2'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 7f51154b7..8d1e053fb 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.13.1", + "version": "7.13.2", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From dbe6a9c22a294d3817e578964755c11e53b2766d Mon Sep 17 00:00:00 2001 From: GitHub Date: Thu, 7 Dec 2023 05:46:31 +0000 Subject: [PATCH 111/440] [skip ci] Generate changelog to version 7.13.2 --- CHANGELOG.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 341435378..1005469e1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog -## 7.13.1 +## 7.13.2 + +- [430a06b](https://github.com/AxaFrance/oidc-client/commit/430a06b27b2f7164bc1557a2e55e547b5af3d8d7) - build(npm): bump vite from 4.4.7 to 4.4.12 (#1231), 2023-12-07 by *dependabot[bot]* + + +## v7.13.1 - [96637a7](https://github.com/AxaFrance/oidc-client/commit/96637a73252e9ea34d8687409131f58f09633da6) - fix(oidc): sessions storage renew tokens (release) (#1230), 2023-12-05 by *Guillaume Chervet* @@ -327,8 +332,3 @@ - [f449785](https://github.com/AxaFrance/oidc-client/commit/f44978588f1697fe38fea68accbca0408ad6f6c6) - fix(ci): version badly injected, 2023-07-20 by *Guillaume Chervet* -## v6.24.24 - -- [0a30ab1](https://github.com/AxaFrance/oidc-client/commit/0a30ab1c3ce16df2ee8bb8c7fab4050e6cb1e3f1) - fix(ci): version empty (alpha), 2023-07-20 by *Guillaume Chervet* - - From 43eac59f1598ab6a5b07dc52deed95297c73f875 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Dec 2023 06:47:13 +0100 Subject: [PATCH 112/440] build(npm): bump vite-plugin-dts from 3.4.0 to 3.6.4 (#1227) Bumps [vite-plugin-dts](https://github.com/qmhc/vite-plugin-dts) from 3.4.0 to 3.6.4. - [Release notes](https://github.com/qmhc/vite-plugin-dts/releases) - [Changelog](https://github.com/qmhc/vite-plugin-dts/blob/main/CHANGELOG.md) - [Commits](https://github.com/qmhc/vite-plugin-dts/compare/v3.4.0...v3.6.4) --- updated-dependencies: - dependency-name: vite-plugin-dts dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- examples/react-oidc-demo/package.json | 2 +- .../oidc-client-service-worker/package.json | 2 +- packages/oidc-client/package.json | 2 +- packages/react-oidc/package.json | 2 +- pnpm-lock.yaml | 130 ++++++++---------- 5 files changed, 64 insertions(+), 74 deletions(-) diff --git a/examples/react-oidc-demo/package.json b/examples/react-oidc-demo/package.json index 52954cc2a..c35fa3457 100644 --- a/examples/react-oidc-demo/package.json +++ b/examples/react-oidc-demo/package.json @@ -37,7 +37,7 @@ "msw": "2.0.0", "typescript": "5.1.6", "vite": "^4.4.12", - "vite-plugin-dts": "^3.3.0", + "vite-plugin-dts": "^3.6.4", "vitest": "^0.33.0" }, "license": "MIT", diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 3985f3ff9..13108b70b 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -41,7 +41,7 @@ "msw": "2.0.0", "typescript": "5.1.6", "vite": "^4.4.12", - "vite-plugin-dts": "^3.3.0", + "vite-plugin-dts": "^3.6.4", "vitest": "^0.33.0" }, "publishConfig": { diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index ce0c3ba0b..698b4b19b 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -33,7 +33,7 @@ "rimraf": "5.0.1", "typescript": "5.1.6", "vite": "^4.4.12", - "vite-plugin-dts": "^3.3.0", + "vite-plugin-dts": "^3.6.4", "vitest": "^0.33.0" }, "keywords": [ diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 8d1e053fb..00a416aa9 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -64,7 +64,7 @@ "rimraf": "5.0.1", "typescript": "5.1.6", "vite": "^4.4.12", - "vite-plugin-dts": "^3.3.0", + "vite-plugin-dts": "^3.6.4", "vitest": "^0.33.0" }, "license": "MIT", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 31add89e3..20bf7192c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -170,8 +170,8 @@ importers: specifier: ^4.4.12 version: 4.4.12(@types/node@20.10.1) vite-plugin-dts: - specifier: ^3.3.0 - version: 3.4.0(typescript@5.1.6)(vite@4.4.12) + specifier: ^3.6.4 + version: 3.6.4(typescript@5.1.6)(vite@4.4.12) vitest: specifier: ^0.33.0 version: 0.33.0(jsdom@22.1.0) @@ -213,8 +213,8 @@ importers: specifier: ^4.4.12 version: 4.4.12(@types/node@20.10.1) vite-plugin-dts: - specifier: ^3.3.0 - version: 3.4.0(typescript@5.1.6)(vite@4.4.12) + specifier: ^3.6.4 + version: 3.6.4(typescript@5.1.6)(vite@4.4.12) vitest: specifier: ^0.33.0 version: 0.33.0(jsdom@22.1.0) @@ -243,8 +243,8 @@ importers: specifier: ^4.4.12 version: 4.4.12(@types/node@20.10.1) vite-plugin-dts: - specifier: ^3.3.0 - version: 3.4.0(typescript@5.1.6)(vite@4.4.12) + specifier: ^3.6.4 + version: 3.6.4(typescript@5.1.6)(vite@4.4.12) vitest: specifier: ^0.33.0 version: 0.33.0(jsdom@22.1.0) @@ -310,8 +310,8 @@ importers: specifier: ^4.4.12 version: 4.4.12(@types/node@20.10.1) vite-plugin-dts: - specifier: ^3.3.0 - version: 3.4.0(typescript@5.1.6)(vite@4.4.12) + specifier: ^3.6.4 + version: 3.6.4(typescript@5.1.6)(vite@4.4.12) vitest: specifier: ^0.33.0 version: 0.33.0(jsdom@22.1.0) @@ -896,26 +896,26 @@ packages: '@jridgewell/sourcemap-codec': 1.4.14 dev: true - /@microsoft/api-extractor-model@7.27.5: - resolution: {integrity: sha512-9/tBzYMJitR+o+zkPr1lQh2+e8ClcaTF6eZo7vZGDqRt2O5XmXWPbYJZmxyM3wb5at6lfJNEeGZrQXLjsQ0Nbw==} + /@microsoft/api-extractor-model@7.28.3: + resolution: {integrity: sha512-wT/kB2oDbdZXITyDh2SQLzaWwTOFbV326fP0pUwNW00WeliARs0qjmXBWmGWardEzp2U3/axkO3Lboqun6vrig==} dependencies: '@microsoft/tsdoc': 0.14.2 '@microsoft/tsdoc-config': 0.16.2 - '@rushstack/node-core-library': 3.59.6 + '@rushstack/node-core-library': 3.62.0 transitivePeerDependencies: - '@types/node' dev: true - /@microsoft/api-extractor@7.36.3: - resolution: {integrity: sha512-u0H6362AQq+r55X8drHx4npgkrCfJnMzRRHfQo8PMNKB8TcBnrTLfXhXWi+xnTM6CzlU/netEN8c4bq581Rnrg==} + /@microsoft/api-extractor@7.38.5: + resolution: {integrity: sha512-c/w2zfqBcBJxaCzpJNvFoouWewcYrUOfeu5ZkWCCIXTF9a/gXM85RGevEzlMAIEGM/kssAAZSXRJIZ3Q5vLFow==} hasBin: true dependencies: - '@microsoft/api-extractor-model': 7.27.5 + '@microsoft/api-extractor-model': 7.28.3 '@microsoft/tsdoc': 0.14.2 '@microsoft/tsdoc-config': 0.16.2 - '@rushstack/node-core-library': 3.59.6 - '@rushstack/rig-package': 0.4.0 - '@rushstack/ts-command-line': 4.15.1 + '@rushstack/node-core-library': 3.62.0 + '@rushstack/rig-package': 0.5.1 + '@rushstack/ts-command-line': 4.17.1 colors: 1.2.5 lodash: 4.17.21 resolve: 1.22.8 @@ -1101,11 +1101,11 @@ packages: engines: {node: '>=14'} dev: false - /@rollup/pluginutils@5.0.2: - resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} + /@rollup/pluginutils@5.1.0: + resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} engines: {node: '>=14.0.0'} peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0 + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 peerDependenciesMeta: rollup: optional: true @@ -1115,8 +1115,8 @@ packages: picomatch: 2.3.1 dev: true - /@rushstack/node-core-library@3.59.6: - resolution: {integrity: sha512-bMYJwNFfWXRNUuHnsE9wMlW/mOB4jIwSUkRKtu02CwZhQdmzMsUbxE0s1xOLwTpNIwlzfW/YT7OnOHgDffLgYg==} + /@rushstack/node-core-library@3.62.0: + resolution: {integrity: sha512-88aJn2h8UpSvdwuDXBv1/v1heM6GnBf3RjEy6ZPP7UnzHNCqOHA2Ut+ScYUbXcqIdfew9JlTAe3g+cnX9xQ/Aw==} peerDependencies: '@types/node': '*' peerDependenciesMeta: @@ -1132,15 +1132,15 @@ packages: z-schema: 5.0.5 dev: true - /@rushstack/rig-package@0.4.0: - resolution: {integrity: sha512-FnM1TQLJYwSiurP6aYSnansprK5l8WUK8VG38CmAaZs29ZeL1msjK0AP1VS4ejD33G0kE/2cpsPsS9jDenBMxw==} + /@rushstack/rig-package@0.5.1: + resolution: {integrity: sha512-pXRYSe29TjRw7rqxD4WS3HN/sRSbfr+tJs4a9uuaSIBAITbUggygdhuG0VrO0EO+QqH91GhYMN4S6KRtOEmGVA==} dependencies: resolve: 1.22.8 strip-json-comments: 3.1.1 dev: true - /@rushstack/ts-command-line@4.15.1: - resolution: {integrity: sha512-EL4jxZe5fhb1uVL/P/wQO+Z8Rc8FMiWJ1G7VgnPDvdIt5GVjRfK7vwzder1CZQiX3x0PY6uxENYLNGTFd1InRQ==} + /@rushstack/ts-command-line@4.17.1: + resolution: {integrity: sha512-2jweO1O57BYP5qdBGl6apJLB+aRIn5ccIRTPDyULh0KMwVzFqWtw6IZWt1qtUoZD/pD2RNkIOosH6Cq45rIYeg==} dependencies: '@types/argparse': 1.0.38 argparse: 1.0.10 @@ -1666,22 +1666,23 @@ packages: pretty-format: 29.7.0 dev: true - /@volar/language-core@1.10.0: - resolution: {integrity: sha512-ddyWwSYqcbEZNFHm+Z3NZd6M7Ihjcwl/9B5cZd8kECdimVXUFdFi60XHWD27nrWtUQIsUYIG7Ca1WBwV2u2LSQ==} + /@volar/language-core@1.11.1: + resolution: {integrity: sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==} dependencies: - '@volar/source-map': 1.10.0 + '@volar/source-map': 1.11.1 dev: true - /@volar/source-map@1.10.0: - resolution: {integrity: sha512-/ibWdcOzDGiq/GM1JU2eX8fH1bvAhl66hfe8yEgLEzg9txgr6qb5sQ/DEz5PcDL75tF5H5sCRRwn8Eu8ezi9mw==} + /@volar/source-map@1.11.1: + resolution: {integrity: sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==} dependencies: muggle-string: 0.3.1 dev: true - /@volar/typescript@1.10.0: - resolution: {integrity: sha512-OtqGtFbUKYC0pLNIk3mHQp5xWnvL1CJIUc9VE39VdZ/oqpoBh5jKfb9uJ45Y4/oP/WYTrif/Uxl1k8VTPz66Gg==} + /@volar/typescript@1.11.1: + resolution: {integrity: sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==} dependencies: - '@volar/language-core': 1.10.0 + '@volar/language-core': 1.11.1 + path-browserify: 1.0.1 dev: true /@vue/compiler-core@3.3.4: @@ -1700,44 +1701,30 @@ packages: '@vue/shared': 3.3.4 dev: true - /@vue/language-core@1.8.8(typescript@5.1.6): - resolution: {integrity: sha512-i4KMTuPazf48yMdYoebTkgSOJdFraE4pQf0B+FTOFkbB+6hAfjrSou/UmYWRsWyZV6r4Rc6DDZdI39CJwL0rWw==} + /@vue/language-core@1.8.25(typescript@5.1.6): + resolution: {integrity: sha512-NJk/5DnAZlpvXX8BdWmHI45bWGLViUaS3R/RMrmFSvFMSbJKuEODpM4kR0F0Ofv5SFzCWuNiMhxameWpVdQsnA==} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@volar/language-core': 1.10.0 - '@volar/source-map': 1.10.0 + '@volar/language-core': 1.11.1 + '@volar/source-map': 1.11.1 '@vue/compiler-dom': 3.3.4 - '@vue/reactivity': 3.3.4 '@vue/shared': 3.3.4 + computeds: 0.0.1 minimatch: 9.0.3 muggle-string: 0.3.1 + path-browserify: 1.0.1 typescript: 5.1.6 vue-template-compiler: 2.7.14 dev: true - /@vue/reactivity@3.3.4: - resolution: {integrity: sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==} - dependencies: - '@vue/shared': 3.3.4 - dev: true - /@vue/shared@3.3.4: resolution: {integrity: sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==} dev: true - /@vue/typescript@1.8.8(typescript@5.1.6): - resolution: {integrity: sha512-jUnmMB6egu5wl342eaUH236v8tdcEPXXkPgj+eI/F6JwW/lb+yAU6U07ZbQ3MVabZRlupIlPESB7ajgAGixhow==} - dependencies: - '@volar/typescript': 1.10.0 - '@vue/language-core': 1.8.8(typescript@5.1.6) - transitivePeerDependencies: - - typescript - dev: true - /abab@2.0.6: resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} dev: true @@ -2305,6 +2292,10 @@ packages: engines: {node: '>= 12.0.0'} dev: true + /computeds@0.0.1: + resolution: {integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==} + dev: true + /concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} dev: true @@ -4754,6 +4745,10 @@ packages: entities: 4.5.0 dev: true + /path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + dev: true + /path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -4888,11 +4883,6 @@ packages: resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} dev: true - /punycode@2.3.0: - resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} - engines: {node: '>=6'} - dev: true - /punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} @@ -5632,7 +5622,7 @@ packages: engines: {node: '>=6'} dependencies: psl: 1.9.0 - punycode: 2.3.0 + punycode: 2.3.1 universalify: 0.2.0 url-parse: 1.5.10 dev: true @@ -5911,8 +5901,8 @@ packages: - terser dev: true - /vite-plugin-dts@3.4.0(typescript@5.1.6)(vite@4.4.12): - resolution: {integrity: sha512-B5UbhiF83hPlJpdri3k2FlseO2qIQfY95XJib7z1s8NTQKgPK+KgeuOQf8FR1hnE/pSU+RA3ra2T18HvymPDyA==} + /vite-plugin-dts@3.6.4(typescript@5.1.6)(vite@4.4.12): + resolution: {integrity: sha512-yOVhUI/kQhtS6lCXRYYLv2UUf9bftcwQK9ROxCX2ul17poLQs02ctWX7+vXB8GPRzH8VCK3jebEFtPqqijXx6w==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -5921,14 +5911,14 @@ packages: vite: optional: true dependencies: - '@microsoft/api-extractor': 7.36.3 - '@rollup/pluginutils': 5.0.2 - '@vue/language-core': 1.8.8(typescript@5.1.6) + '@microsoft/api-extractor': 7.38.5 + '@rollup/pluginutils': 5.1.0 + '@vue/language-core': 1.8.25(typescript@5.1.6) debug: 4.3.4 kolorist: 1.8.0 typescript: 5.1.6 vite: 4.4.12(@types/node@20.10.1) - vue-tsc: 1.8.8(typescript@5.1.6) + vue-tsc: 1.8.25(typescript@5.1.6) transitivePeerDependencies: - '@types/node' - rollup @@ -6145,14 +6135,14 @@ packages: he: 1.2.0 dev: true - /vue-tsc@1.8.8(typescript@5.1.6): - resolution: {integrity: sha512-bSydNFQsF7AMvwWsRXD7cBIXaNs/KSjvzWLymq/UtKE36697sboX4EccSHFVxvgdBlI1frYPc/VMKJNB7DFeDQ==} + /vue-tsc@1.8.25(typescript@5.1.6): + resolution: {integrity: sha512-lHsRhDc/Y7LINvYhZ3pv4elflFADoEOo67vfClAfF2heVHpHmVquLSjojgCSIwzA4F0Pc4vowT/psXCYcfk+iQ==} hasBin: true peerDependencies: typescript: '*' dependencies: - '@vue/language-core': 1.8.8(typescript@5.1.6) - '@vue/typescript': 1.8.8(typescript@5.1.6) + '@volar/typescript': 1.11.1 + '@vue/language-core': 1.8.25(typescript@5.1.6) semver: 7.5.4 typescript: 5.1.6 dev: true From 33a9c8349f23d98960fb4c60f49d7fd19572cca5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Dec 2023 06:48:32 +0100 Subject: [PATCH 113/440] build(npm): bump react-router-dom from 6.14.2 to 6.20.1 (#1234) Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.14.2 to 6.20.1. - [Release notes](https://github.com/remix-run/react-router/releases) - [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md) - [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.20.1/packages/react-router-dom) --- updated-dependencies: - dependency-name: react-router-dom dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- examples/react-oidc-demo/package.json | 2 +- pnpm-lock.yaml | 28 +++++++++++++-------------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/examples/react-oidc-demo/package.json b/examples/react-oidc-demo/package.json index c35fa3457..be35496e4 100644 --- a/examples/react-oidc-demo/package.json +++ b/examples/react-oidc-demo/package.json @@ -21,7 +21,7 @@ "@axa-fr/react-oidc":"workspace:*", "react": "^18.2.0", "react-dom": "^18.2.0", - "react-router-dom": "^6.14.1" + "react-router-dom": "^6.20.1" }, "devDependencies": { "@testing-library/jest-dom": "5.16.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 20bf7192c..98da085a1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -127,8 +127,8 @@ importers: specifier: ^18.2.0 version: 18.2.0(react@18.2.0) react-router-dom: - specifier: ^6.14.1 - version: 6.14.2(react-dom@18.2.0)(react@18.2.0) + specifier: ^6.20.1 + version: 6.20.1(react-dom@18.2.0)(react@18.2.0) devDependencies: '@testing-library/jest-dom': specifier: 5.16.5 @@ -1096,9 +1096,9 @@ packages: tslib: 2.6.2 dev: true - /@remix-run/router@1.7.2: - resolution: {integrity: sha512-7Lcn7IqGMV+vizMPoEl5F0XDshcdDYtMI6uJLQdQz5CfZAwy3vvGKYSUk789qndt5dEC4HfSjviSYlSoHGL2+A==} - engines: {node: '>=14'} + /@remix-run/router@1.13.1: + resolution: {integrity: sha512-so+DHzZKsoOcoXrILB4rqDkMDy7NLMErRdOxvzvOKb507YINKUP4Di+shbTZDhSE/pBZ+vr7XGIpcOO0VLSA+Q==} + engines: {node: '>=14.0.0'} dev: false /@rollup/pluginutils@5.1.0: @@ -4926,26 +4926,26 @@ packages: engines: {node: '>=0.10.0'} dev: true - /react-router-dom@6.14.2(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-5pWX0jdKR48XFZBuJqHosX3AAHjRAzygouMTyimnBPOLdY3WjzUSKhus2FVMihUFWzeLebDgr4r8UeQFAct7Bg==} - engines: {node: '>=14'} + /react-router-dom@6.20.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-npzfPWcxfQN35psS7rJgi/EW0Gx6EsNjfdJSAk73U/HqMEJZ2k/8puxfwHFgDQhBGmS3+sjnGbMdMSV45axPQw==} + engines: {node: '>=14.0.0'} peerDependencies: react: '>=16.8' react-dom: '>=16.8' dependencies: - '@remix-run/router': 1.7.2 + '@remix-run/router': 1.13.1 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-router: 6.14.2(react@18.2.0) + react-router: 6.20.1(react@18.2.0) dev: false - /react-router@6.14.2(react@18.2.0): - resolution: {integrity: sha512-09Zss2dE2z+T1D03IheqAFtK4UzQyX8nFPWx6jkwdYzGLXd5ie06A6ezS2fO6zJfEb/SpG6UocN2O1hfD+2urQ==} - engines: {node: '>=14'} + /react-router@6.20.1(react@18.2.0): + resolution: {integrity: sha512-ccvLrB4QeT5DlaxSFFYi/KR8UMQ4fcD8zBcR71Zp1kaYTC5oJKYAp1cbavzGrogwxca+ubjkd7XjFZKBW8CxPA==} + engines: {node: '>=14.0.0'} peerDependencies: react: '>=16.8' dependencies: - '@remix-run/router': 1.7.2 + '@remix-run/router': 1.13.1 react: 18.2.0 dev: false From 8f5f888fe34d739ded51f611e194d77a2e788830 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Dec 2023 06:49:25 +0100 Subject: [PATCH 114/440] build(npm): bump eslint-plugin-regexp from 1.15.0 to 2.1.2 (#1233) Bumps [eslint-plugin-regexp](https://github.com/ota-meshi/eslint-plugin-regexp) from 1.15.0 to 2.1.2. - [Release notes](https://github.com/ota-meshi/eslint-plugin-regexp/releases) - [Changelog](https://github.com/ota-meshi/eslint-plugin-regexp/blob/master/CHANGELOG.md) - [Commits](https://github.com/ota-meshi/eslint-plugin-regexp/compare/v1.15.0...v2.1.2) --- updated-dependencies: - dependency-name: eslint-plugin-regexp dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 51 +++++++++++++++++++++++--------------------------- 2 files changed, 24 insertions(+), 29 deletions(-) diff --git a/package.json b/package.json index 6d99483bb..e39db69b1 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "eslint-plugin-prettier": "5.0.1", "eslint-plugin-react": "7.33.2", "eslint-plugin-react-hooks": "^4.6.0", - "eslint-plugin-regexp": "^1.15.0", + "eslint-plugin-regexp": "^2.1.2", "eslint-plugin-simple-import-sort": "^10.0.0", "eslint-plugin-testing-library": "^5.11.0", "prettier": "3.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 98da085a1..e06ceb75f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -45,8 +45,8 @@ importers: specifier: ^4.6.0 version: 4.6.0(eslint@8.54.0) eslint-plugin-regexp: - specifier: ^1.15.0 - version: 1.15.0(eslint@8.54.0) + specifier: ^2.1.2 + version: 2.1.2(eslint@8.54.0) eslint-plugin-simple-import-sort: specifier: ^10.0.0 version: 10.0.0(eslint@8.54.0) @@ -2965,21 +2965,20 @@ packages: string.prototype.matchall: 4.0.10 dev: true - /eslint-plugin-regexp@1.15.0(eslint@8.54.0): - resolution: {integrity: sha512-YEtQPfdudafU7RBIFci81R/Q1yErm0mVh3BkGnXD2Dk8DLwTFdc2ITYH1wCnHKim2gnHfPFgrkh+b2ozyyU7ag==} - engines: {node: ^12 || >=14} + /eslint-plugin-regexp@2.1.2(eslint@8.54.0): + resolution: {integrity: sha512-nnhNqHblaD8YTJiEHfyVRhiw8sm0eFQ9h+ee3rMqJhf2R9sJWbSXkjrLxIeCNZSNqitUOdaYFfrPVyvS9i72AA==} + engines: {node: ^18 || >=20} peerDependencies: - eslint: '>=6.0.0' + eslint: '>=8.44.0' dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) '@eslint-community/regexpp': 4.10.0 comment-parser: 1.4.1 eslint: 8.54.0 - grapheme-splitter: 1.0.4 - jsdoctypeparser: 9.0.0 - refa: 0.11.0 - regexp-ast-analysis: 0.6.0 - scslre: 0.2.0 + jsdoc-type-pratt-parser: 4.0.0 + refa: 0.12.1 + regexp-ast-analysis: 0.7.1 + scslre: 0.3.0 dev: true /eslint-plugin-simple-import-sort@10.0.0(eslint@8.54.0): @@ -3442,10 +3441,6 @@ packages: /graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - /grapheme-splitter@1.0.4: - resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} - dev: true - /graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} dev: true @@ -3992,10 +3987,9 @@ packages: argparse: 2.0.1 dev: true - /jsdoctypeparser@9.0.0: - resolution: {integrity: sha512-jrTA2jJIL6/DAEILBEh2/w9QxCuwmvNXIry39Ay/HVfhE3o2yVV0U44blYkqdHA/OKloJEqvJy0xU+GSdE2SIw==} - engines: {node: '>=10'} - hasBin: true + /jsdoc-type-pratt-parser@4.0.0: + resolution: {integrity: sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==} + engines: {node: '>=12.0.0'} dev: true /jsdom@22.1.0: @@ -5026,8 +5020,8 @@ packages: strip-indent: 4.0.0 dev: true - /refa@0.11.0: - resolution: {integrity: sha512-486O8/pQXwj9jV0mVvUnTsxq0uknpBnNJ0eCUhkZqJRQ8KutrT1PhzmumdCeM1hSBF2eMlFPmwECRER4IbKXlQ==} + /refa@0.12.1: + resolution: {integrity: sha512-J8rn6v4DBb2nnFqkqwy6/NnTYMcgLA+sLr0iIO41qpv0n+ngb7ksag2tMRl0inb1bbO/esUwzW1vbJi7K0sI0g==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dependencies: '@eslint-community/regexpp': 4.10.0 @@ -5051,12 +5045,12 @@ packages: /regenerator-runtime@0.14.0: resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} - /regexp-ast-analysis@0.6.0: - resolution: {integrity: sha512-OLxjyjPkVH+rQlBLb1I/P/VTmamSjGkvN5PTV5BXP432k3uVz727J7H29GA5IFiY0m7e1xBN7049Wn59FY3DEQ==} + /regexp-ast-analysis@0.7.1: + resolution: {integrity: sha512-sZuz1dYW/ZsfG17WSAG7eS85r5a0dDsvg+7BiiYR5o6lKCAtUrEwdmRmaGF6rwVj3LcmAeYkOWKEPlbPzN3Y3A==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dependencies: '@eslint-community/regexpp': 4.10.0 - refa: 0.11.0 + refa: 0.12.1 dev: true /regexp.prototype.flags@1.5.1: @@ -5216,12 +5210,13 @@ packages: dependencies: loose-envify: 1.4.0 - /scslre@0.2.0: - resolution: {integrity: sha512-4hc49fUMmX3jM0XdFUAPBrs1xwEcdHa0KyjEsjFs+Zfc66mpFpq5YmRgDtl+Ffo6AtJIilfei+yKw8fUn3N88w==} + /scslre@0.3.0: + resolution: {integrity: sha512-3A6sD0WYP7+QrjbfNA2FN3FsOaGGFoekCVgTyypy53gPxhbkCIjtO6YWgdrfM+n/8sI8JeXZOIxsHjMTNxQ4nQ==} + engines: {node: ^14.0.0 || >=16.0.0} dependencies: '@eslint-community/regexpp': 4.10.0 - refa: 0.11.0 - regexp-ast-analysis: 0.6.0 + refa: 0.12.1 + regexp-ast-analysis: 0.7.1 dev: true /semver@6.3.1: From e386fa19f554f07df448f6e984e22cbeeca25933 Mon Sep 17 00:00:00 2001 From: GitHub Date: Thu, 7 Dec 2023 05:52:17 +0000 Subject: [PATCH 115/440] [skip ci] Update to version 7.13.5 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 13108b70b..f984dd921 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.13.2", + "version": "7.13.5", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 8d869c75d..717e0679a 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.13.2'; +export default '7.13.5'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 698b4b19b..6edb207a4 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.13.2", + "version": "7.13.5", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 8d869c75d..717e0679a 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.13.2'; +export default '7.13.5'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 00a416aa9..6d1b4404b 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.13.2", + "version": "7.13.5", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 43ac307f1bc709dfe8dc4ea1566e097a5f7c2bae Mon Sep 17 00:00:00 2001 From: GitHub Date: Thu, 7 Dec 2023 05:52:19 +0000 Subject: [PATCH 116/440] [skip ci] Generate changelog to version 7.13.5 --- CHANGELOG.md | 34 ++++++++++++++++------------------ 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1005469e1..6fd54fc19 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,21 @@ # Changelog -## 7.13.2 +## 7.13.5 + +- [8f5f888](https://github.com/AxaFrance/oidc-client/commit/8f5f888fe34d739ded51f611e194d77a2e788830) - build(npm): bump eslint-plugin-regexp from 1.15.0 to 2.1.2 (#1233), 2023-12-07 by *dependabot[bot]* + + +## v7.13.4 + +- [33a9c83](https://github.com/AxaFrance/oidc-client/commit/33a9c8349f23d98960fb4c60f49d7fd19572cca5) - build(npm): bump react-router-dom from 6.14.2 to 6.20.1 (#1234), 2023-12-07 by *dependabot[bot]* + + +## v7.13.3 + +- [43eac59](https://github.com/AxaFrance/oidc-client/commit/43eac59f1598ab6a5b07dc52deed95297c73f875) - build(npm): bump vite-plugin-dts from 3.4.0 to 3.6.4 (#1227), 2023-12-07 by *dependabot[bot]* + + +## v7.13.2 - [430a06b](https://github.com/AxaFrance/oidc-client/commit/430a06b27b2f7164bc1557a2e55e547b5af3d8d7) - build(npm): bump vite from 4.4.7 to 4.4.12 (#1231), 2023-12-07 by *dependabot[bot]* @@ -315,20 +330,3 @@ - [d337b8b](https://github.com/AxaFrance/oidc-client/commit/d337b8b574936b81a4a6de9d533076a9da3a848b) - chore(ci): add way to publish alpha, beta, release (beta) (#1099), 2023-07-20 by *Guillaume Chervet* -## v6.24.27 - -- [e68b26b](https://github.com/AxaFrance/oidc-client/commit/e68b26be8ab30eef9aa46e5e4dd029fa5b3818c3) - test (beta), 2023-07-21 by *Guillaume Chervet* -- [4e78bbb](https://github.com/AxaFrance/oidc-client/commit/4e78bbbc4fb6f6728e97ee7a0f517bf8eac72998) - Update npm-publish.yml (alpha), 2023-07-20 by *Guillaume Chervet* -- [8b7eb9b](https://github.com/AxaFrance/oidc-client/commit/8b7eb9bfc29f242132e1cff4952a2342dd610b34) - fix(ci): Update npm-publish.yml (alpha), 2023-07-20 by *Guillaume Chervet* - - -## v6.24.26 - -- [cee3198](https://github.com/AxaFrance/oidc-client/commit/cee3198d3ffde50a71e52a5654907b7f4ac013d9) - fix(ci): lastcomiit (alpha), 2023-07-20 by *Guillaume Chervet* - - -## v6.24.25 - -- [f449785](https://github.com/AxaFrance/oidc-client/commit/f44978588f1697fe38fea68accbca0408ad6f6c6) - fix(ci): version badly injected, 2023-07-20 by *Guillaume Chervet* - - From da77bb912b61e5aad93c53e84ce4fbea2a503fb2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Dec 2023 06:53:51 +0100 Subject: [PATCH 117/440] build(npm): bump typescript from 5.1.6 to 5.3.3 (#1232) Bumps [typescript](https://github.com/Microsoft/TypeScript) from 5.1.6 to 5.3.3. - [Release notes](https://github.com/Microsoft/TypeScript/releases) - [Commits](https://github.com/Microsoft/TypeScript/compare/v5.1.6...v5.3.3) --- updated-dependencies: - dependency-name: typescript dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- examples/oidc-client-demo/package.json | 2 +- examples/react-oidc-demo/package.json | 2 +- package.json | 2 +- .../oidc-client-service-worker/package.json | 2 +- packages/oidc-client/package.json | 2 +- packages/react-oidc/package.json | 2 +- pnpm-lock.yaml | 140 +++++++++--------- 7 files changed, 73 insertions(+), 79 deletions(-) diff --git a/examples/oidc-client-demo/package.json b/examples/oidc-client-demo/package.json index 958ac268b..3aaa8d91d 100644 --- a/examples/oidc-client-demo/package.json +++ b/examples/oidc-client-demo/package.json @@ -7,7 +7,7 @@ "@testing-library/jest-dom": "^5.16.5", "@testing-library/user-event": "^13.5.0", "@types/jest": "^27.5.2", - "typescript": "^5.1.6", + "typescript": "^5.3.3", "web-vitals": "^3.4.0" }, "scripts": { diff --git a/examples/react-oidc-demo/package.json b/examples/react-oidc-demo/package.json index be35496e4..d3b1a37ec 100644 --- a/examples/react-oidc-demo/package.json +++ b/examples/react-oidc-demo/package.json @@ -35,7 +35,7 @@ "cross-env": "^7.0.3", "jsdom": "22.1.0", "msw": "2.0.0", - "typescript": "5.1.6", + "typescript": "5.3.3", "vite": "^4.4.12", "vite-plugin-dts": "^3.6.4", "vitest": "^0.33.0" diff --git a/package.json b/package.json index e39db69b1..2b8fc1bcf 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "prettier": "3.1.0", "tslib": "^2.6.2", "tsx": "4.6.1", - "typescript": "5.3.2", + "typescript": "5.3.3", "vitest": "0.34.6" }, "engines": { diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index f984dd921..54c50c7b5 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -39,7 +39,7 @@ "cpy-cli": "^5.0.0", "rimraf": "5.0.1", "msw": "2.0.0", - "typescript": "5.1.6", + "typescript": "5.3.3", "vite": "^4.4.12", "vite-plugin-dts": "^3.6.4", "vitest": "^0.33.0" diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 6edb207a4..085583a11 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -31,7 +31,7 @@ "cpy": "^10.1.0", "cpy-cli": "^5.0.0", "rimraf": "5.0.1", - "typescript": "5.1.6", + "typescript": "5.3.3", "vite": "^4.4.12", "vite-plugin-dts": "^3.6.4", "vitest": "^0.33.0" diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 6d1b4404b..762a18585 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -62,7 +62,7 @@ "react": "^18.2.0", "react-dom": "^18.2.0", "rimraf": "5.0.1", - "typescript": "5.1.6", + "typescript": "5.3.3", "vite": "^4.4.12", "vite-plugin-dts": "^3.6.4", "vitest": "^0.33.0" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e06ceb75f..6abcfae5f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,10 +10,10 @@ importers: devDependencies: '@typescript-eslint/eslint-plugin': specifier: 6.13.1 - version: 6.13.1(@typescript-eslint/parser@6.13.1)(eslint@8.54.0)(typescript@5.3.2) + version: 6.13.1(@typescript-eslint/parser@6.13.1)(eslint@8.54.0)(typescript@5.3.3) '@typescript-eslint/parser': specifier: 6.13.1 - version: 6.13.1(eslint@8.54.0)(typescript@5.3.2) + version: 6.13.1(eslint@8.54.0)(typescript@5.3.3) eslint: specifier: ^8.54.0 version: 8.54.0 @@ -52,7 +52,7 @@ importers: version: 10.0.0(eslint@8.54.0) eslint-plugin-testing-library: specifier: ^5.11.0 - version: 5.11.1(eslint@8.54.0)(typescript@5.3.2) + version: 5.11.1(eslint@8.54.0)(typescript@5.3.3) prettier: specifier: 3.1.0 version: 3.1.0 @@ -63,8 +63,8 @@ importers: specifier: 4.6.1 version: 4.6.1 typescript: - specifier: 5.3.2 - version: 5.3.2 + specifier: 5.3.3 + version: 5.3.3 vitest: specifier: 0.34.6 version: 0.34.6 @@ -99,8 +99,8 @@ importers: specifier: ^27.5.2 version: 27.5.2 typescript: - specifier: ^5.1.6 - version: 5.1.6 + specifier: ^5.3.3 + version: 5.3.3 web-vitals: specifier: ^3.4.0 version: 3.4.0 @@ -162,16 +162,16 @@ importers: version: 22.1.0 msw: specifier: 2.0.0 - version: 2.0.0(typescript@5.1.6) + version: 2.0.0(typescript@5.3.3) typescript: - specifier: 5.1.6 - version: 5.1.6 + specifier: 5.3.3 + version: 5.3.3 vite: specifier: ^4.4.12 version: 4.4.12(@types/node@20.10.1) vite-plugin-dts: specifier: ^3.6.4 - version: 3.6.4(typescript@5.1.6)(vite@4.4.12) + version: 3.6.4(typescript@5.3.3)(vite@4.4.12) vitest: specifier: ^0.33.0 version: 0.33.0(jsdom@22.1.0) @@ -207,14 +207,14 @@ importers: specifier: 5.0.1 version: 5.0.1 typescript: - specifier: 5.1.6 - version: 5.1.6 + specifier: 5.3.3 + version: 5.3.3 vite: specifier: ^4.4.12 version: 4.4.12(@types/node@20.10.1) vite-plugin-dts: specifier: ^3.6.4 - version: 3.6.4(typescript@5.1.6)(vite@4.4.12) + version: 3.6.4(typescript@5.3.3)(vite@4.4.12) vitest: specifier: ^0.33.0 version: 0.33.0(jsdom@22.1.0) @@ -232,19 +232,19 @@ importers: version: 5.0.0 msw: specifier: 2.0.0 - version: 2.0.0(typescript@5.1.6) + version: 2.0.0(typescript@5.3.3) rimraf: specifier: 5.0.1 version: 5.0.1 typescript: - specifier: 5.1.6 - version: 5.1.6 + specifier: 5.3.3 + version: 5.3.3 vite: specifier: ^4.4.12 version: 4.4.12(@types/node@20.10.1) vite-plugin-dts: specifier: ^3.6.4 - version: 3.6.4(typescript@5.1.6)(vite@4.4.12) + version: 3.6.4(typescript@5.3.3)(vite@4.4.12) vitest: specifier: ^0.33.0 version: 0.33.0(jsdom@22.1.0) @@ -293,7 +293,7 @@ importers: version: 22.1.0 msw: specifier: 2.0.0 - version: 2.0.0(typescript@5.1.6) + version: 2.0.0(typescript@5.3.3) react: specifier: ^18.2.0 version: 18.2.0 @@ -304,14 +304,14 @@ importers: specifier: 5.0.1 version: 5.0.1 typescript: - specifier: 5.1.6 - version: 5.1.6 + specifier: 5.3.3 + version: 5.3.3 vite: specifier: ^4.4.12 version: 4.4.12(@types/node@20.10.1) vite-plugin-dts: specifier: ^3.6.4 - version: 3.6.4(typescript@5.1.6)(vite@4.4.12) + version: 3.6.4(typescript@5.3.3)(vite@4.4.12) vitest: specifier: ^0.33.0 version: 0.33.0(jsdom@22.1.0) @@ -1344,7 +1344,7 @@ packages: dependencies: '@types/jest': 27.5.2 - /@typescript-eslint/eslint-plugin@6.13.1(@typescript-eslint/parser@6.13.1)(eslint@8.54.0)(typescript@5.3.2): + /@typescript-eslint/eslint-plugin@6.13.1(@typescript-eslint/parser@6.13.1)(eslint@8.54.0)(typescript@5.3.3): resolution: {integrity: sha512-5bQDGkXaxD46bPvQt08BUz9YSaO4S0fB1LB5JHQuXTfkGPI3+UUeS387C/e9jRie5GqT8u5kFTrMvAjtX4O5kA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -1356,10 +1356,10 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.13.1(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/parser': 6.13.1(eslint@8.54.0)(typescript@5.3.3) '@typescript-eslint/scope-manager': 6.13.1 - '@typescript-eslint/type-utils': 6.13.1(eslint@8.54.0)(typescript@5.3.2) - '@typescript-eslint/utils': 6.13.1(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/type-utils': 6.13.1(eslint@8.54.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.13.1(eslint@8.54.0)(typescript@5.3.3) '@typescript-eslint/visitor-keys': 6.13.1 debug: 4.3.4 eslint: 8.54.0 @@ -1367,13 +1367,13 @@ packages: ignore: 5.3.0 natural-compare: 1.4.0 semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.3.2) - typescript: 5.3.2 + ts-api-utils: 1.0.3(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@6.13.1(eslint@8.54.0)(typescript@5.3.2): + /@typescript-eslint/parser@6.13.1(eslint@8.54.0)(typescript@5.3.3): resolution: {integrity: sha512-fs2XOhWCzRhqMmQf0eicLa/CWSaYss2feXsy7xBD/pLyWke/jCIVc2s1ikEAtSW7ina1HNhv7kONoEfVNEcdDQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -1385,11 +1385,11 @@ packages: dependencies: '@typescript-eslint/scope-manager': 6.13.1 '@typescript-eslint/types': 6.13.1 - '@typescript-eslint/typescript-estree': 6.13.1(typescript@5.3.2) + '@typescript-eslint/typescript-estree': 6.13.1(typescript@5.3.3) '@typescript-eslint/visitor-keys': 6.13.1 debug: 4.3.4 eslint: 8.54.0 - typescript: 5.3.2 + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true @@ -1410,7 +1410,7 @@ packages: '@typescript-eslint/visitor-keys': 6.13.1 dev: true - /@typescript-eslint/type-utils@6.13.1(eslint@8.54.0)(typescript@5.3.2): + /@typescript-eslint/type-utils@6.13.1(eslint@8.54.0)(typescript@5.3.3): resolution: {integrity: sha512-A2qPlgpxx2v//3meMqQyB1qqTg1h1dJvzca7TugM3Yc2USDY+fsRBiojAEo92HO7f5hW5mjAUF6qobOPzlBCBQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -1420,12 +1420,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.13.1(typescript@5.3.2) - '@typescript-eslint/utils': 6.13.1(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/typescript-estree': 6.13.1(typescript@5.3.3) + '@typescript-eslint/utils': 6.13.1(eslint@8.54.0)(typescript@5.3.3) debug: 4.3.4 eslint: 8.54.0 - ts-api-utils: 1.0.3(typescript@5.3.2) - typescript: 5.3.2 + ts-api-utils: 1.0.3(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true @@ -1440,7 +1440,7 @@ packages: engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@5.62.0(typescript@5.3.2): + /@typescript-eslint/typescript-estree@5.62.0(typescript@5.3.3): resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -1455,13 +1455,13 @@ packages: globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 - tsutils: 3.21.0(typescript@5.3.2) - typescript: 5.3.2 + tsutils: 3.21.0(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/typescript-estree@6.13.1(typescript@5.3.2): + /@typescript-eslint/typescript-estree@6.13.1(typescript@5.3.3): resolution: {integrity: sha512-sBLQsvOC0Q7LGcUHO5qpG1HxRgePbT6wwqOiGLpR8uOJvPJbfs0mW3jPA3ujsDvfiVwVlWUDESNXv44KtINkUQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -1476,13 +1476,13 @@ packages: globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.3.2) - typescript: 5.3.2 + ts-api-utils: 1.0.3(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@5.62.0(eslint@8.54.0)(typescript@5.3.2): + /@typescript-eslint/utils@5.62.0(eslint@8.54.0)(typescript@5.3.3): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -1493,7 +1493,7 @@ packages: '@types/semver': 7.5.6 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.3.2) + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.3.3) eslint: 8.54.0 eslint-scope: 5.1.1 semver: 7.5.4 @@ -1502,7 +1502,7 @@ packages: - typescript dev: true - /@typescript-eslint/utils@6.13.1(eslint@8.54.0)(typescript@5.3.2): + /@typescript-eslint/utils@6.13.1(eslint@8.54.0)(typescript@5.3.3): resolution: {integrity: sha512-ouPn/zVoan92JgAegesTXDB/oUp6BP1v8WpfYcqh649ejNc9Qv+B4FF2Ff626kO1xg0wWwwG48lAJ4JuesgdOw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -1513,7 +1513,7 @@ packages: '@types/semver': 7.5.6 '@typescript-eslint/scope-manager': 6.13.1 '@typescript-eslint/types': 6.13.1 - '@typescript-eslint/typescript-estree': 6.13.1(typescript@5.3.2) + '@typescript-eslint/typescript-estree': 6.13.1(typescript@5.3.3) eslint: 8.54.0 semver: 7.5.4 transitivePeerDependencies: @@ -1701,7 +1701,7 @@ packages: '@vue/shared': 3.3.4 dev: true - /@vue/language-core@1.8.25(typescript@5.1.6): + /@vue/language-core@1.8.25(typescript@5.3.3): resolution: {integrity: sha512-NJk/5DnAZlpvXX8BdWmHI45bWGLViUaS3R/RMrmFSvFMSbJKuEODpM4kR0F0Ofv5SFzCWuNiMhxameWpVdQsnA==} peerDependencies: typescript: '*' @@ -1717,7 +1717,7 @@ packages: minimatch: 9.0.3 muggle-string: 0.3.1 path-browserify: 1.0.1 - typescript: 5.1.6 + typescript: 5.3.3 vue-template-compiler: 2.7.14 dev: true @@ -2806,7 +2806,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.13.1(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/parser': 6.13.1(eslint@8.54.0)(typescript@5.3.3) debug: 3.2.7 eslint: 8.54.0 eslint-import-resolver-node: 0.3.9 @@ -2836,7 +2836,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.13.1(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/parser': 6.13.1(eslint@8.54.0)(typescript@5.3.3) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 @@ -2989,13 +2989,13 @@ packages: eslint: 8.54.0 dev: true - /eslint-plugin-testing-library@5.11.1(eslint@8.54.0)(typescript@5.3.2): + /eslint-plugin-testing-library@5.11.1(eslint@8.54.0)(typescript@5.3.3): resolution: {integrity: sha512-5eX9e1Kc2PqVRed3taaLnAAqPZGEX75C+M/rXzUAI3wIg/ZxzUm1OVAwfe/O+vE+6YXOLetSe9g5GKD2ecXipw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0, npm: '>=6'} peerDependencies: eslint: ^7.5.0 || ^8.0.0 dependencies: - '@typescript-eslint/utils': 5.62.0(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/utils': 5.62.0(eslint@8.54.0)(typescript@5.3.3) eslint: 8.54.0 transitivePeerDependencies: - supports-color @@ -4350,7 +4350,7 @@ packages: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} dev: true - /msw@2.0.0(typescript@5.1.6): + /msw@2.0.0(typescript@5.3.3): resolution: {integrity: sha512-lw9UHuzNCWoODHaThGeLLIIuzEBUQkj3fJXQnChHifMKbB2UmF2msHd4d/lnyqjAyD0XWoibdviW9wlstFPpkA==} engines: {node: '>=18'} hasBin: true @@ -4383,7 +4383,7 @@ packages: path-to-regexp: 6.2.1 strict-event-emitter: 0.5.1 type-fest: 2.19.0 - typescript: 5.1.6 + typescript: 5.3.3 yargs: 17.7.2 transitivePeerDependencies: - encoding @@ -5638,13 +5638,13 @@ packages: engines: {node: '>=14.16'} dev: true - /ts-api-utils@1.0.3(typescript@5.3.2): + /ts-api-utils@1.0.3(typescript@5.3.3): resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} engines: {node: '>=16.13.0'} peerDependencies: typescript: '>=4.2.0' dependencies: - typescript: 5.3.2 + typescript: 5.3.3 dev: true /tsconfig-paths@3.14.2: @@ -5663,14 +5663,14 @@ packages: /tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - /tsutils@3.21.0(typescript@5.3.2): + /tsutils@3.21.0(typescript@5.3.3): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} 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' dependencies: tslib: 1.14.1 - typescript: 5.3.2 + typescript: 5.3.3 dev: true /tsx@4.6.1: @@ -5760,17 +5760,11 @@ packages: hasBin: true dev: true - /typescript@5.1.6: - resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==} + /typescript@5.3.3: + resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} engines: {node: '>=14.17'} hasBin: true - /typescript@5.3.2: - resolution: {integrity: sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==} - engines: {node: '>=14.17'} - hasBin: true - dev: true - /ufo@1.3.2: resolution: {integrity: sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==} dev: true @@ -5896,7 +5890,7 @@ packages: - terser dev: true - /vite-plugin-dts@3.6.4(typescript@5.1.6)(vite@4.4.12): + /vite-plugin-dts@3.6.4(typescript@5.3.3)(vite@4.4.12): resolution: {integrity: sha512-yOVhUI/kQhtS6lCXRYYLv2UUf9bftcwQK9ROxCX2ul17poLQs02ctWX7+vXB8GPRzH8VCK3jebEFtPqqijXx6w==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -5908,12 +5902,12 @@ packages: dependencies: '@microsoft/api-extractor': 7.38.5 '@rollup/pluginutils': 5.1.0 - '@vue/language-core': 1.8.25(typescript@5.1.6) + '@vue/language-core': 1.8.25(typescript@5.3.3) debug: 4.3.4 kolorist: 1.8.0 - typescript: 5.1.6 + typescript: 5.3.3 vite: 4.4.12(@types/node@20.10.1) - vue-tsc: 1.8.25(typescript@5.1.6) + vue-tsc: 1.8.25(typescript@5.3.3) transitivePeerDependencies: - '@types/node' - rollup @@ -6130,16 +6124,16 @@ packages: he: 1.2.0 dev: true - /vue-tsc@1.8.25(typescript@5.1.6): + /vue-tsc@1.8.25(typescript@5.3.3): resolution: {integrity: sha512-lHsRhDc/Y7LINvYhZ3pv4elflFADoEOo67vfClAfF2heVHpHmVquLSjojgCSIwzA4F0Pc4vowT/psXCYcfk+iQ==} hasBin: true peerDependencies: typescript: '*' dependencies: '@volar/typescript': 1.11.1 - '@vue/language-core': 1.8.25(typescript@5.1.6) + '@vue/language-core': 1.8.25(typescript@5.3.3) semver: 7.5.4 - typescript: 5.1.6 + typescript: 5.3.3 dev: true /w3c-xmlserializer@4.0.0: From caf70a65f1cd99a23e6d94ec6e96f69e7ad87b05 Mon Sep 17 00:00:00 2001 From: GitHub Date: Thu, 7 Dec 2023 05:56:24 +0000 Subject: [PATCH 118/440] [skip ci] Update to version 7.13.6 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 54c50c7b5..9a1850e23 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.13.5", + "version": "7.13.6", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 717e0679a..7bc0bfbae 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.13.5'; +export default '7.13.6'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 085583a11..2d38bf678 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.13.5", + "version": "7.13.6", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 717e0679a..7bc0bfbae 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.13.5'; +export default '7.13.6'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 762a18585..39163e991 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.13.5", + "version": "7.13.6", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From dd8fab4af63c62c65621c3767a4c44fc4d9239ce Mon Sep 17 00:00:00 2001 From: GitHub Date: Thu, 7 Dec 2023 05:56:26 +0000 Subject: [PATCH 119/440] [skip ci] Generate changelog to version 7.13.6 --- CHANGELOG.md | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6fd54fc19..047d9a174 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog -## 7.13.5 +## 7.13.6 + +- [da77bb9](https://github.com/AxaFrance/oidc-client/commit/da77bb912b61e5aad93c53e84ce4fbea2a503fb2) - build(npm): bump typescript from 5.1.6 to 5.3.3 (#1232), 2023-12-07 by *dependabot[bot]* + + +## v7.13.5 - [8f5f888](https://github.com/AxaFrance/oidc-client/commit/8f5f888fe34d739ded51f611e194d77a2e788830) - build(npm): bump eslint-plugin-regexp from 1.15.0 to 2.1.2 (#1233), 2023-12-07 by *dependabot[bot]* @@ -323,10 +328,3 @@ - [e02bc6e](https://github.com/AxaFrance/oidc-client/commit/e02bc6e77114f585e00f7d9d888db1d0a537be88) - chore(ci): fix numversion (alpha), 2023-07-22 by *Guillaume Chervet* -## v6.25.0 - -- [7ba2509](https://github.com/AxaFrance/oidc-client/commit/7ba2509271acefb6ff744fb07a464fd7f9c42064) - chore(ci): invert client and react (alpha), 2023-07-22 by *Guillaume Chervet* -- [4be9aed](https://github.com/AxaFrance/oidc-client/commit/4be9aedde3a81f11aac5f8dfdef4914ce2c0483b) - feat(workspace): Add workspaces to specify build order dependencies in packages. (#1004), 2023-07-22 by *Jason Finch* -- [d337b8b](https://github.com/AxaFrance/oidc-client/commit/d337b8b574936b81a4a6de9d533076a9da3a848b) - chore(ci): add way to publish alpha, beta, release (beta) (#1099), 2023-07-20 by *Guillaume Chervet* - - From 64a8df3281f95159a60e5f9ec61db315a8d20c7d Mon Sep 17 00:00:00 2001 From: abhilashlr Date: Sat, 9 Dec 2023 15:12:12 +0530 Subject: [PATCH 120/440] fix(oidc-client): make locks work only ifAvailable (#1237)(alpha) Co-authored-by: abhilashlr --- packages/oidc-client/src/renewTokens.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/oidc-client/src/renewTokens.ts b/packages/oidc-client/src/renewTokens.ts index 993d6cdb9..c7e3e6d8f 100644 --- a/packages/oidc-client/src/renewTokens.ts +++ b/packages/oidc-client/src/renewTokens.ts @@ -34,7 +34,8 @@ export async function renewTokensAndStartTimerAsync(oidc, refreshToken, forceRef if(configuration.storage === window.sessionStorage && !serviceWorker) { tokens = await syncTokens(oidc, refreshToken, forceRefresh, extras); } else { - tokens = await navigator.locks.request(lockResourcesName, async (lock) => { + tokens = await navigator.locks.request(lockResourcesName, { ifAvailable: true }, async (lock) => { + oidc.publishEvent('Lock executed', lock); return await syncTokens(oidc, refreshToken, forceRefresh, extras); }); } From 9f1f7f684a6b344f59221caf3e3a14faef73a6bc Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Tue, 12 Dec 2023 21:17:29 +0100 Subject: [PATCH 121/440] fix(oidc): session storage for next (#1240) (alpha) --- packages/oidc-client/src/oidc.ts | 1 - packages/oidc-client/src/renewTokens.ts | 7 +++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/oidc-client/src/oidc.ts b/packages/oidc-client/src/oidc.ts index 9922dd8d2..eb55d301b 100644 --- a/packages/oidc-client/src/oidc.ts +++ b/packages/oidc-client/src/oidc.ts @@ -112,7 +112,6 @@ export class Oidc { logout_tokens_to_invalidate: configuration.logout_tokens_to_invalidate ?? ['access_token', 'refresh_token'], service_worker_update_require_callback, service_worker_activate: configuration.service_worker_activate ?? activateServiceWorker, - storage: configuration.storage ?? sessionStorage, }; this.getFetch = getFetch ?? getFetchDefault; diff --git a/packages/oidc-client/src/renewTokens.ts b/packages/oidc-client/src/renewTokens.ts index c7e3e6d8f..4d367eaf8 100644 --- a/packages/oidc-client/src/renewTokens.ts +++ b/packages/oidc-client/src/renewTokens.ts @@ -31,17 +31,20 @@ export async function renewTokensAndStartTimerAsync(oidc, refreshToken, forceRef let tokens = null; const serviceWorker = await initWorkerAsync(oidc.configuration, oidc.configurationName); - if(configuration.storage === window.sessionStorage && !serviceWorker) { + if(configuration?.storage === window?.sessionStorage && !serviceWorker) { tokens = await syncTokens(oidc, refreshToken, forceRefresh, extras); } else { tokens = await navigator.locks.request(lockResourcesName, { ifAvailable: true }, async (lock) => { - oidc.publishEvent('Lock executed', lock); + if(!lock){ + return tokens; + } return await syncTokens(oidc, refreshToken, forceRefresh, extras); }); } if(!tokens){ return null; } + if (oidc.timeoutId) { oidc.timeoutId = autoRenewTokens(oidc, tokens.refreshToken, oidc.tokens.expiresAt, extras); } From 23c87152e55c8d7f1c51a33032d48c751b15c4c5 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Fri, 15 Dec 2023 12:03:23 +0100 Subject: [PATCH 122/440] fix(ci): clean changelog generation --- bin/generate-changelog.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/bin/generate-changelog.sh b/bin/generate-changelog.sh index 0c6151267..25084aaaf 100755 --- a/bin/generate-changelog.sh +++ b/bin/generate-changelog.sh @@ -2,6 +2,7 @@ num_tags=60 excluded_author="GitHub" +project_url="https://github.com/AxaFrance/oidc-client/commit" # Get all tag names in reverse order tags=(`git tag -l --sort=-creatordate | head -$num_tags`) @@ -39,7 +40,7 @@ do if [ "$author" != "$excluded_author" ]; then # Get commit log in the desired format. # You can modify the 'format' as per your need. Please refer 'PRETTY FORMATS' section of git-log man page - log=$(git log -1 --pretty=format:"[%h](https://github.com/AxaFrance/oidc-client/commit/%H) - %s, %ad by *%an*" --date=short $hash) + log=$(git log -1 --pretty=format:"[%h]($project_url/%H) - %s, %ad by *%an*" --date=short $hash) # Write formatted log to CHANGELOG.md file echo "- $log" >> $outfile From 6667eabc8c5cb0ff5874b6583b2223721bd18525 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Fri, 15 Dec 2023 18:01:20 +0100 Subject: [PATCH 123/440] fix(oidc): temporary fix on lock need to be continued but require refactor (release) --- packages/oidc-client/src/renewTokens.ts | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client/src/renewTokens.ts b/packages/oidc-client/src/renewTokens.ts index 4d367eaf8..a24f0896d 100644 --- a/packages/oidc-client/src/renewTokens.ts +++ b/packages/oidc-client/src/renewTokens.ts @@ -34,13 +34,18 @@ export async function renewTokensAndStartTimerAsync(oidc, refreshToken, forceRef if(configuration?.storage === window?.sessionStorage && !serviceWorker) { tokens = await syncTokens(oidc, refreshToken, forceRefresh, extras); } else { - tokens = await navigator.locks.request(lockResourcesName, { ifAvailable: true }, async (lock) => { - if(!lock){ - return tokens; - } - return await syncTokens(oidc, refreshToken, forceRefresh, extras); + const controller = new AbortController(); + const timeout = Math.max(configuration.token_request_timeout??0, configuration.silent_login_timeout??0, 20000); + const timeoutId = timer.setTimeout(() => { + controller.abort(); + }, timeout); + tokens = await navigator.locks.request(lockResourcesName, { signal: controller.signal }, async () => { + const tokens = await syncTokens(oidc, refreshToken, forceRefresh, extras); + timer.clearTimeout(timeoutId); + return tokens; }); } + if(!tokens){ return null; } @@ -48,6 +53,7 @@ export async function renewTokensAndStartTimerAsync(oidc, refreshToken, forceRef if (oidc.timeoutId) { oidc.timeoutId = autoRenewTokens(oidc, tokens.refreshToken, oidc.tokens.expiresAt, extras); } + return oidc.tokens; } From 24a1c0b0d9358c3ae58949adecce5eb3bad631ab Mon Sep 17 00:00:00 2001 From: GitHub Date: Fri, 15 Dec 2023 17:05:26 +0000 Subject: [PATCH 124/440] [skip ci] Update to version 7.13.7 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 9a1850e23..31239d7d3 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.13.6", + "version": "7.13.7", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 7bc0bfbae..74063ba54 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.13.6'; +export default '7.13.7'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 2d38bf678..a1c071f4c 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.13.6", + "version": "7.13.7", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 7bc0bfbae..74063ba54 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.13.6'; +export default '7.13.7'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 39163e991..ce42f47c9 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.13.6", + "version": "7.13.7", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 257f389f57901d1bf8723c7ebacc254f98057e52 Mon Sep 17 00:00:00 2001 From: GitHub Date: Fri, 15 Dec 2023 17:05:27 +0000 Subject: [PATCH 125/440] [skip ci] Generate changelog to version 7.13.7 --- CHANGELOG.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 047d9a174..8ec1818c3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,14 @@ # Changelog -## 7.13.6 +## 7.13.7 + +- [6667eab](https://github.com/AxaFrance/oidc-client/commit/6667eabc8c5cb0ff5874b6583b2223721bd18525) - fix(oidc): temporary fix on lock need to be continued but require refactor (release), 2023-12-15 by *Guillaume Chervet* +- [23c8715](https://github.com/AxaFrance/oidc-client/commit/23c87152e55c8d7f1c51a33032d48c751b15c4c5) - fix(ci): clean changelog generation, 2023-12-15 by *Guillaume Chervet* +- [9f1f7f6](https://github.com/AxaFrance/oidc-client/commit/9f1f7f684a6b344f59221caf3e3a14faef73a6bc) - fix(oidc): session storage for next (#1240) (alpha), 2023-12-12 by *Guillaume Chervet* +- [64a8df3](https://github.com/AxaFrance/oidc-client/commit/64a8df3281f95159a60e5f9ec61db315a8d20c7d) - fix(oidc-client): make locks work only ifAvailable (#1237)(alpha), 2023-12-09 by *abhilashlr* + + +## v7.13.6 - [da77bb9](https://github.com/AxaFrance/oidc-client/commit/da77bb912b61e5aad93c53e84ce4fbea2a503fb2) - build(npm): bump typescript from 5.1.6 to 5.3.3 (#1232), 2023-12-07 by *dependabot[bot]* @@ -322,9 +330,3 @@ - [4ccbef0](https://github.com/AxaFrance/oidc-client/commit/4ccbef0417543bf2a7395788315298b873327e7a) - chore(ci): add serviceworker (alpha), 2023-07-22 by *Guillaume Chervet* -## v6.25.1 - -- [cf3e31a](https://github.com/AxaFrance/oidc-client/commit/cf3e31af027d60626f1bff9a7c0951db115d11c3) - fix(react): update lock file (alpha), 2023-07-22 by *Guillaume Chervet* -- [e02bc6e](https://github.com/AxaFrance/oidc-client/commit/e02bc6e77114f585e00f7d9d888db1d0a537be88) - chore(ci): fix numversion (alpha), 2023-07-22 by *Guillaume Chervet* - - From b0cf4ad52df9c16c130cce791b05ceea7c4370c4 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Mon, 18 Dec 2023 13:05:26 +0100 Subject: [PATCH 126/440] fix(oidc): temp renew token fix (#1245) (release) * fix(oidc): temp renew token fix * update * update * update * update --- packages/oidc-client/src/events.ts | 1 + packages/oidc-client/src/renewTokens.ts | 41 ++++++++++++++++--------- 2 files changed, 28 insertions(+), 14 deletions(-) diff --git a/packages/oidc-client/src/events.ts b/packages/oidc-client/src/events.ts index ac2690113..5cb31c05e 100644 --- a/packages/oidc-client/src/events.ts +++ b/packages/oidc-client/src/events.ts @@ -23,6 +23,7 @@ export const eventNames = { silentLoginAsync_end: 'silentLoginAsync_end', silentLoginAsync_error: 'silentLoginAsync_error', syncTokensAsync_begin: 'syncTokensAsync_begin', + syncTokensAsync_lock_not_available: 'syncTokensAsync_lock_not_available', syncTokensAsync_end: 'syncTokensAsync_end', syncTokensAsync_error: 'syncTokensAsync_error', }; diff --git a/packages/oidc-client/src/renewTokens.ts b/packages/oidc-client/src/renewTokens.ts index a24f0896d..dbcec1497 100644 --- a/packages/oidc-client/src/renewTokens.ts +++ b/packages/oidc-client/src/renewTokens.ts @@ -1,9 +1,9 @@ -import { initSession } from './initSession.js'; -import { initWorkerAsync } from './initWorker.js'; +import {initSession} from './initSession.js'; +import {initWorkerAsync} from './initWorker.js'; import Oidc from './oidc.js'; -import { computeTimeLeft } from './parseTokens.js'; +import {computeTimeLeft} from './parseTokens.js'; import timer from './timer.js'; -import { StringMap } from './types.js'; +import {StringMap} from './types.js'; async function syncTokens(oidc, refreshToken, forceRefresh: boolean, extras: StringMap) { const updateTokens = (tokens) => { @@ -24,26 +24,38 @@ async function syncTokens(oidc, refreshToken, forceRefresh: boolean, extras: Str return tokens; } +async function loadLatestTokensAsync(oidc, configuration) { + const serviceWorker = await initWorkerAsync(configuration, oidc.configurationName); + if (serviceWorker) { + const oidcServerConfiguration = await oidc.initAsync(configuration.authority, configuration.authority_configuration); + const {tokens} = await serviceWorker.initAsync(oidcServerConfiguration, 'tryKeepExistingSessionAsync', configuration); + return tokens; + } else { + const session = initSession(oidc.configurationName, configuration.storage ?? sessionStorage); + const {tokens} = await session.initAsync(); + return tokens; + } +} + export async function renewTokensAndStartTimerAsync(oidc, refreshToken, forceRefresh = false, extras:StringMap = null) { const configuration = oidc.configuration; const lockResourcesName = `${configuration.client_id}_${oidc.configurationName}_${configuration.authority}`; - let tokens = null; + let tokens: null; const serviceWorker = await initWorkerAsync(oidc.configuration, oidc.configurationName); + if(configuration?.storage === window?.sessionStorage && !serviceWorker) { tokens = await syncTokens(oidc, refreshToken, forceRefresh, extras); } else { - const controller = new AbortController(); - const timeout = Math.max(configuration.token_request_timeout??0, configuration.silent_login_timeout??0, 20000); - const timeoutId = timer.setTimeout(() => { - controller.abort(); - }, timeout); - tokens = await navigator.locks.request(lockResourcesName, { signal: controller.signal }, async () => { - const tokens = await syncTokens(oidc, refreshToken, forceRefresh, extras); - timer.clearTimeout(timeoutId); - return tokens; + tokens = await navigator.locks.request(lockResourcesName, { ifAvailable: true }, async (lock) => { + if(!lock){ + oidc.publishEvent(Oidc.eventNames.syncTokensAsync_lock_not_available, { lock: 'lock not available' }); + return await loadLatestTokensAsync(oidc, configuration); + } + return await syncTokens(oidc, refreshToken, forceRefresh, extras); }); + } if(!tokens){ @@ -51,6 +63,7 @@ export async function renewTokensAndStartTimerAsync(oidc, refreshToken, forceRef } if (oidc.timeoutId) { + // @ts-ignore oidc.timeoutId = autoRenewTokens(oidc, tokens.refreshToken, oidc.tokens.expiresAt, extras); } From 3978988504dd07cbbd9b55e08ac04891b9570e3f Mon Sep 17 00:00:00 2001 From: GitHub Date: Mon, 18 Dec 2023 12:08:04 +0000 Subject: [PATCH 127/440] [skip ci] Update to version 7.13.8 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 31239d7d3..fb31331b1 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.13.7", + "version": "7.13.8", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 74063ba54..9663c86f4 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.13.7'; +export default '7.13.8'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index a1c071f4c..e64458a8d 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.13.7", + "version": "7.13.8", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 74063ba54..9663c86f4 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.13.7'; +export default '7.13.8'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index ce42f47c9..92c394202 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.13.7", + "version": "7.13.8", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 7a9dab1603bf4cc1eefabc40c0d2400d689413f7 Mon Sep 17 00:00:00 2001 From: GitHub Date: Mon, 18 Dec 2023 12:08:05 +0000 Subject: [PATCH 128/440] [skip ci] Generate changelog to version 7.13.8 --- CHANGELOG.md | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8ec1818c3..62929c436 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog -## 7.13.7 +## 7.13.8 + +- [b0cf4ad](https://github.com/AxaFrance/oidc-client/commit/b0cf4ad52df9c16c130cce791b05ceea7c4370c4) - fix(oidc): temp renew token fix (#1245) (release), 2023-12-18 by *Guillaume Chervet* + + +## v7.13.7 - [6667eab](https://github.com/AxaFrance/oidc-client/commit/6667eabc8c5cb0ff5874b6583b2223721bd18525) - fix(oidc): temporary fix on lock need to be continued but require refactor (release), 2023-12-15 by *Guillaume Chervet* - [23c8715](https://github.com/AxaFrance/oidc-client/commit/23c87152e55c8d7f1c51a33032d48c751b15c4c5) - fix(ci): clean changelog generation, 2023-12-15 by *Guillaume Chervet* @@ -318,15 +323,3 @@ - [aea4aea](https://github.com/AxaFrance/oidc-client/commit/aea4aea5fda1ef7c7ee6e43f8fc8efb2a0797a58) - chore(ci): invert client and react (alpha), 2023-07-22 by *Guillaume Chervet* -## v6.25.2 - -- [612cf26](https://github.com/AxaFrance/oidc-client/commit/612cf26c1fb087c20f7207ae4e6281c2fe9d6a46) - Update package.json (alpha), 2023-07-22 by *Guillaume Chervet* -- [5472e0a](https://github.com/AxaFrance/oidc-client/commit/5472e0a9e510ba14c38bd205be39b732e877353a) - Update package.json (alpha), 2023-07-22 by *Guillaume Chervet* -- [945043c](https://github.com/AxaFrance/oidc-client/commit/945043c39376611ba1e417e24d55607a5a4e861b) - Update package.json (alpha), 2023-07-22 by *Guillaume Chervet* -- [776f0c2](https://github.com/AxaFrance/oidc-client/commit/776f0c22446763d89cd10412c53c964f3dd2bb57) - fix sw package test (alpha), 2023-07-22 by *Guillaume Chervet* -- [b2ed839](https://github.com/AxaFrance/oidc-client/commit/b2ed8393b061d4da8bbb67003f7940aaa7b845d3) - fix package sw remove private (alpha), 2023-07-22 by *Guillaume Chervet* -- [d3531a6](https://github.com/AxaFrance/oidc-client/commit/d3531a68b78d48e6150f71d22deba738a15391f3) - fix conflict (alpha), 2023-07-22 by *Guillaume Chervet* -- [8c3e0c9](https://github.com/AxaFrance/oidc-client/commit/8c3e0c99c2507d7a6e198db517fd120cb06f6ac7) - chore(ci): fix duplicated id (alpha), 2023-07-22 by *Guillaume Chervet* -- [4ccbef0](https://github.com/AxaFrance/oidc-client/commit/4ccbef0417543bf2a7395788315298b873327e7a) - chore(ci): add serviceworker (alpha), 2023-07-22 by *Guillaume Chervet* - - From 819962bae1d7c1e7fd997ede7bb42cce27ba76f3 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Tue, 19 Dec 2023 10:36:38 +0100 Subject: [PATCH 129/440] fix(oidc): renew with simple storage (#1246) (release) --- packages/oidc-client/src/renewTokens.ts | 6 ++++-- packages/oidc-client/src/requests.ts | 1 - 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/oidc-client/src/renewTokens.ts b/packages/oidc-client/src/renewTokens.ts index dbcec1497..8d80ebb5b 100644 --- a/packages/oidc-client/src/renewTokens.ts +++ b/packages/oidc-client/src/renewTokens.ts @@ -1,7 +1,7 @@ import {initSession} from './initSession.js'; import {initWorkerAsync} from './initWorker.js'; import Oidc from './oidc.js'; -import {computeTimeLeft} from './parseTokens.js'; +import {computeTimeLeft, setTokens} from './parseTokens.js'; import timer from './timer.js'; import {StringMap} from './types.js'; @@ -32,7 +32,9 @@ async function loadLatestTokensAsync(oidc, configuration) { return tokens; } else { const session = initSession(oidc.configurationName, configuration.storage ?? sessionStorage); - const {tokens} = await session.initAsync(); + let {tokens} = await session.initAsync(); + // @ts-ignore + tokens = setTokens(tokens, oidc.tokens, configuration.token_renew_mode); return tokens; } } diff --git a/packages/oidc-client/src/requests.ts b/packages/oidc-client/src/requests.ts index 345660ace..176a25c63 100644 --- a/packages/oidc-client/src/requests.ts +++ b/packages/oidc-client/src/requests.ts @@ -3,7 +3,6 @@ import { deriveChallengeAsync, generateRandom } from './crypto.js'; import { OidcAuthorizationServiceConfiguration } from './oidc.js'; import { parseOriginalTokens } from './parseTokens.js'; import { Fetch, StringMap } from './types.js'; -import EC, {JWK, JWT} from './jwt'; import {ILOidcLocation} from "./location"; const oneHourSecond = 60 * 60; From a12d9a9eff7dcf0989a20a5c4e8c9458cab2db53 Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 19 Dec 2023 09:39:19 +0000 Subject: [PATCH 130/440] [skip ci] Update to version 7.13.9 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index fb31331b1..33ea29fec 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.13.8", + "version": "7.13.9", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 9663c86f4..4a09502d2 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.13.8'; +export default '7.13.9'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index e64458a8d..671355214 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.13.8", + "version": "7.13.9", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 9663c86f4..4a09502d2 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.13.8'; +export default '7.13.9'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 92c394202..3e650d31c 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.13.8", + "version": "7.13.9", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 8884243a9ed0a896fc5a1cfb3f94f272bae01a87 Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 19 Dec 2023 09:39:21 +0000 Subject: [PATCH 131/440] [skip ci] Generate changelog to version 7.13.9 --- CHANGELOG.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 62929c436..79560017d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog -## 7.13.8 +## 7.13.9 + +- [819962b](https://github.com/AxaFrance/oidc-client/commit/819962bae1d7c1e7fd997ede7bb42cce27ba76f3) - fix(oidc): renew with simple storage (#1246) (release), 2023-12-19 by *Guillaume Chervet* + + +## v7.13.8 - [b0cf4ad](https://github.com/AxaFrance/oidc-client/commit/b0cf4ad52df9c16c130cce791b05ceea7c4370c4) - fix(oidc): temp renew token fix (#1245) (release), 2023-12-18 by *Guillaume Chervet* @@ -318,8 +323,3 @@ - [e04fb4b](https://github.com/AxaFrance/oidc-client/commit/e04fb4b465178e4fe1d1b8e80c41516979e9702f) - chore(ci): invert client and react (alpha), 2023-07-22 by *Guillaume Chervet* -## v6.25.3 - -- [aea4aea](https://github.com/AxaFrance/oidc-client/commit/aea4aea5fda1ef7c7ee6e43f8fc8efb2a0797a58) - chore(ci): invert client and react (alpha), 2023-07-22 by *Guillaume Chervet* - - From 4b1a9a26eba51e24dd1c9c9fd0087ef0b3b1ce8b Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Wed, 20 Dec 2023 09:53:05 +0100 Subject: [PATCH 132/440] fix(oidc): crash when regex on userAgent empty result iOS (#1248) (release) --- packages/oidc-client/src/initWorkerOption.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client/src/initWorkerOption.ts b/packages/oidc-client/src/initWorkerOption.ts index 87df15b17..dc1ddabed 100644 --- a/packages/oidc-client/src/initWorkerOption.ts +++ b/packages/oidc-client/src/initWorkerOption.ts @@ -68,7 +68,9 @@ export const getOperatingSystem = (navigator) => { case 'iOS': { const osVersionArray = /OS (\d+)_(\d+)_?(\d+)?/.exec(nVer); - osVersion = osVersionArray[1] + '.' + osVersionArray[2] + '.' + (parseInt(osVersionArray[3]) | 0); + if(osVersionArray !=null && osVersionArray.length > 2) { + osVersion = osVersionArray[1] + '.' + osVersionArray[2] + '.' + (parseInt(osVersionArray[3]) | 0); + } break; } } @@ -126,8 +128,6 @@ export const activateServiceWorker : ServiceWorkerActivate = () : boolean =>{ } const operatingSystem = getOperatingSystem(navigator); - if (excludeOs(operatingSystem)) { - return false; - } - return true; + return !excludeOs(operatingSystem); + } \ No newline at end of file From 3811b7ef1adbf7633563e8be30c5359761d70a5e Mon Sep 17 00:00:00 2001 From: GitHub Date: Wed, 20 Dec 2023 08:55:40 +0000 Subject: [PATCH 133/440] [skip ci] Update to version 7.13.10 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 33ea29fec..c6bec2243 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.13.9", + "version": "7.13.10", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 4a09502d2..3682bcbc0 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.13.9'; +export default '7.13.10'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 671355214..07a9589e3 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.13.9", + "version": "7.13.10", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 4a09502d2..3682bcbc0 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.13.9'; +export default '7.13.10'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 3e650d31c..908356c42 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.13.9", + "version": "7.13.10", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From fd0058bdee9a0171b635e396014713dfbb8b8e29 Mon Sep 17 00:00:00 2001 From: GitHub Date: Wed, 20 Dec 2023 08:55:41 +0000 Subject: [PATCH 134/440] [skip ci] Generate changelog to version 7.13.10 --- CHANGELOG.md | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 79560017d..c449c7a05 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog -## 7.13.9 +## 7.13.10 + +- [4b1a9a2](https://github.com/AxaFrance/oidc-client/commit/4b1a9a26eba51e24dd1c9c9fd0087ef0b3b1ce8b) - fix(oidc): crash when regex on userAgent empty result iOS (#1248) (release), 2023-12-20 by *Guillaume Chervet* + + +## v7.13.9 - [819962b](https://github.com/AxaFrance/oidc-client/commit/819962bae1d7c1e7fd997ede7bb42cce27ba76f3) - fix(oidc): renew with simple storage (#1246) (release), 2023-12-19 by *Guillaume Chervet* @@ -314,12 +319,3 @@ - [8786e85](https://github.com/AxaFrance/oidc-client/commit/8786e85190dbc23de4311381b1c59f08673b0436) - fix(ci): github release (release), 2023-07-24 by *Guillaume Chervet* -## v6.25.4 - -- [9139393](https://github.com/AxaFrance/oidc-client/commit/9139393069142b05708f73a64ee81afdfaf0104f) - fix(oidc): Service Worker improper token revocation when logging out and showAccessToken=true (#1104) (release), 2023-07-24 by *kosciolek* -- [ccc7c42](https://github.com/AxaFrance/oidc-client/commit/ccc7c429cde1da743993d16db17ef343f374f00b) - fix(ci): website and packages psotinstall error when pnpm from root (#1108), 2023-07-24 by *Guillaume Chervet* -- [d0ede07](https://github.com/AxaFrance/oidc-client/commit/d0ede07c1cd1aaf8526917df299d7a308eb7ea9d) - ci(version): Add a period between version alpha|beta and run_number (#1107) (alpha), 2023-07-24 by *Jason Finch* -- [254b9f9](https://github.com/AxaFrance/oidc-client/commit/254b9f945bff154e127782522244378a3a224f94) - refactor(post-install): Alter post-install to not have a dependency on 'cpy' (#1106), 2023-07-24 by *Jason Finch* -- [e04fb4b](https://github.com/AxaFrance/oidc-client/commit/e04fb4b465178e4fe1d1b8e80c41516979e9702f) - chore(ci): invert client and react (alpha), 2023-07-22 by *Guillaume Chervet* - - From 529cabfbe7ee602325ba0f70844c969176371746 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Wed, 20 Dec 2023 10:20:24 +0100 Subject: [PATCH 135/440] fix(oidc): DPOP type jit instead of jti (#1249) (release) --- packages/oidc-client/src/jwt.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/oidc-client/src/jwt.ts b/packages/oidc-client/src/jwt.ts index 01376ea66..c4a2c4286 100644 --- a/packages/oidc-client/src/jwt.ts +++ b/packages/oidc-client/src/jwt.ts @@ -229,7 +229,7 @@ export const generateJwtDemonstratingProofOfPossessionAsync = (jwk, method = 'PO const claims = { // https://www.rfc-editor.org/rfc/rfc9449.html#name-concept - jit: btoa(guid()), + jti: btoa(guid()), htm: method, htu: url, iat: Math.round(Date.now() / 1000), From 57dad4b19fa50eb5ad8d44c393c37fc598954ad0 Mon Sep 17 00:00:00 2001 From: GitHub Date: Wed, 20 Dec 2023 09:23:04 +0000 Subject: [PATCH 136/440] [skip ci] Update to version 7.13.11 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index c6bec2243..3efd16117 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.13.10", + "version": "7.13.11", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 3682bcbc0..87cdf24f4 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.13.10'; +export default '7.13.11'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 07a9589e3..890874f6c 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.13.10", + "version": "7.13.11", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 3682bcbc0..87cdf24f4 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.13.10'; +export default '7.13.11'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 908356c42..d14eb5f3b 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.13.10", + "version": "7.13.11", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 3f1d2d7c71d3588ab225f564ad4bd753d21203a8 Mon Sep 17 00:00:00 2001 From: GitHub Date: Wed, 20 Dec 2023 09:23:05 +0000 Subject: [PATCH 137/440] [skip ci] Generate changelog to version 7.13.11 --- CHANGELOG.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c449c7a05..004a94bc7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog -## 7.13.10 +## 7.13.11 + +- [529cabf](https://github.com/AxaFrance/oidc-client/commit/529cabfbe7ee602325ba0f70844c969176371746) - fix(oidc): DPOP type jit instead of jti (#1249) (release), 2023-12-20 by *Guillaume Chervet* + + +## v7.13.10 - [4b1a9a2](https://github.com/AxaFrance/oidc-client/commit/4b1a9a26eba51e24dd1c9c9fd0087ef0b3b1ce8b) - fix(oidc): crash when regex on userAgent empty result iOS (#1248) (release), 2023-12-20 by *Guillaume Chervet* @@ -314,8 +319,3 @@ - [288ce99](https://github.com/AxaFrance/oidc-client/commit/288ce9937e6e1cb8c1b7c7f6909ebef8a48f12e5) - fix(react): ajust peerDependencies (release), 2023-07-24 by *Guillaume Chervet* -## v6.25.5 - -- [8786e85](https://github.com/AxaFrance/oidc-client/commit/8786e85190dbc23de4311381b1c59f08673b0436) - fix(ci): github release (release), 2023-07-24 by *Guillaume Chervet* - - From 9ef56f17793e1bfbd668d6f001125a8f773c2370 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Thu, 28 Dec 2023 14:55:45 +0100 Subject: [PATCH 138/440] fix(oidc): Handling of errors returned from authorize endpoint (#1250) (release) --- packages/oidc-client/src/login.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/oidc-client/src/login.ts b/packages/oidc-client/src/login.ts index ba3a37f15..471149e50 100644 --- a/packages/oidc-client/src/login.ts +++ b/packages/oidc-client/src/login.ts @@ -110,13 +110,17 @@ export const loginCallbackAsync = (oidc) => async (isSilentSignin = false) => { } const params = getParseQueryStringFromLocation(href); + + if(params.error || params.error_description) { + throw new Error(`Error from OIDC server: ${params.error} - ${params.error_description}`); + } if (params.iss && params.iss !== oidcServerConfiguration.issuer) { console.error(); - throw new Error(`issuer not valid (expected: ${oidcServerConfiguration.issuer}, received: ${params.iss})`); + throw new Error(`Issuer not valid (expected: ${oidcServerConfiguration.issuer}, received: ${params.iss})`); } if (params.state && params.state !== state) { - throw new Error(`state not valid (expected: ${state}, received: ${params.state})`); + throw new Error(`State not valid (expected: ${state}, received: ${params.state})`); } const data = { From ba324ce7b6a122cad7c2aeaccbbf74c0b3c00233 Mon Sep 17 00:00:00 2001 From: GitHub Date: Thu, 28 Dec 2023 13:58:15 +0000 Subject: [PATCH 139/440] [skip ci] Update to version 7.13.12 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 3efd16117..951e737df 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.13.11", + "version": "7.13.12", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 87cdf24f4..714ef4ad6 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.13.11'; +export default '7.13.12'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 890874f6c..95bdec42c 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.13.11", + "version": "7.13.12", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 87cdf24f4..714ef4ad6 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.13.11'; +export default '7.13.12'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index d14eb5f3b..55b022c63 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.13.11", + "version": "7.13.12", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 05cb598dca3b4ea9515774de256d5b8b0d87a2e1 Mon Sep 17 00:00:00 2001 From: GitHub Date: Thu, 28 Dec 2023 13:58:16 +0000 Subject: [PATCH 140/440] [skip ci] Generate changelog to version 7.13.12 --- CHANGELOG.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 004a94bc7..09132c1b9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog -## 7.13.11 +## 7.13.12 + +- [9ef56f1](https://github.com/AxaFrance/oidc-client/commit/9ef56f17793e1bfbd668d6f001125a8f773c2370) - fix(oidc): Handling of errors returned from authorize endpoint (#1250) (release), 2023-12-28 by *Guillaume Chervet* + + +## v7.13.11 - [529cabf](https://github.com/AxaFrance/oidc-client/commit/529cabfbe7ee602325ba0f70844c969176371746) - fix(oidc): DPOP type jit instead of jti (#1249) (release), 2023-12-20 by *Guillaume Chervet* @@ -314,8 +319,3 @@ - [762ca42](https://github.com/AxaFrance/oidc-client/commit/762ca423a2efe946d4213a3c482638a386a5b555) - ci(lint): Move eslint config to root. Add GH workflow to run lint. (#1109), 2023-07-27 by *Jason Finch* -## v6.25.6 - -- [288ce99](https://github.com/AxaFrance/oidc-client/commit/288ce9937e6e1cb8c1b7c7f6909ebef8a48f12e5) - fix(react): ajust peerDependencies (release), 2023-07-24 by *Guillaume Chervet* - - From d009de8091ac256d1384466df9b3fe7de75a5629 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Thu, 28 Dec 2023 15:11:56 +0100 Subject: [PATCH 141/440] chore(ci): Update npm-publish.yml --- .github/workflows/npm-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml index 8f7fd0c4e..f90b150ff 100644 --- a/.github/workflows/npm-publish.yml +++ b/.github/workflows/npm-publish.yml @@ -71,7 +71,7 @@ jobs: id: which_tag run: | if [[ ${{ github.ref }} == refs/pull* ]]; then - last_commit_message=$(curl -s "https://api.github.com/repos/AxaFrance/oidc-client/pulls/${{ github.event.number }}/commits" | jq -r '.[-1].commit.message') + last_commit_message=$(curl -s "https://api.github.com/repos/${GITHUB_REPOSITORY}/pulls/${{ github.event.number }}/commits" | jq -r '.[-1].commit.message') else last_commit_message=$(git log --format=%B -n 1) fi From 1faaab4ecb86144ed6f3c1ed68b938804854bd36 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 2 Jan 2024 10:58:36 +0100 Subject: [PATCH 142/440] build(npm): bump next from 14.0.3 to 14.0.4 (#1255) Bumps [next](https://github.com/vercel/next.js) from 14.0.3 to 14.0.4. - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/compare/v14.0.3...v14.0.4) --- updated-dependencies: - dependency-name: next dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pnpm-lock.yaml | 67 +++++++++++++++++++++++++------------------------- 1 file changed, 34 insertions(+), 33 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6abcfae5f..885caab78 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -76,7 +76,7 @@ importers: version: link:../../packages/react-oidc next: specifier: latest - version: 14.0.3(react-dom@18.2.0)(react@18.2.0) + version: 14.0.4(react-dom@18.2.0)(react@18.2.0) react: specifier: latest version: 18.2.0 @@ -956,12 +956,12 @@ packages: strict-event-emitter: 0.5.1 dev: true - /@next/env@14.0.3: - resolution: {integrity: sha512-7xRqh9nMvP5xrW4/+L0jgRRX+HoNRGnfJpD+5Wq6/13j3dsdzxO3BCXn7D3hMqsDb+vjZnJq+vI7+EtgrYZTeA==} + /@next/env@14.0.4: + resolution: {integrity: sha512-irQnbMLbUNQpP1wcE5NstJtbuA/69kRfzBrpAD7Gsn8zm/CY6YQYc3HQBz8QPxwISG26tIm5afvvVbu508oBeQ==} dev: false - /@next/swc-darwin-arm64@14.0.3: - resolution: {integrity: sha512-64JbSvi3nbbcEtyitNn2LEDS/hcleAFpHdykpcnrstITFlzFgB/bW0ER5/SJJwUPj+ZPY+z3e+1jAfcczRLVGw==} + /@next/swc-darwin-arm64@14.0.4: + resolution: {integrity: sha512-mF05E/5uPthWzyYDyptcwHptucf/jj09i2SXBPwNzbgBNc+XnwzrL0U6BmPjQeOL+FiB+iG1gwBeq7mlDjSRPg==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] @@ -969,8 +969,8 @@ packages: dev: false optional: true - /@next/swc-darwin-x64@14.0.3: - resolution: {integrity: sha512-RkTf+KbAD0SgYdVn1XzqE/+sIxYGB7NLMZRn9I4Z24afrhUpVJx6L8hsRnIwxz3ERE2NFURNliPjJ2QNfnWicQ==} + /@next/swc-darwin-x64@14.0.4: + resolution: {integrity: sha512-IZQ3C7Bx0k2rYtrZZxKKiusMTM9WWcK5ajyhOZkYYTCc8xytmwSzR1skU7qLgVT/EY9xtXDG0WhY6fyujnI3rw==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] @@ -978,8 +978,8 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-gnu@14.0.3: - resolution: {integrity: sha512-3tBWGgz7M9RKLO6sPWC6c4pAw4geujSwQ7q7Si4d6bo0l6cLs4tmO+lnSwFp1Tm3lxwfMk0SgkJT7EdwYSJvcg==} + /@next/swc-linux-arm64-gnu@14.0.4: + resolution: {integrity: sha512-VwwZKrBQo/MGb1VOrxJ6LrKvbpo7UbROuyMRvQKTFKhNaXjUmKTu7wxVkIuCARAfiI8JpaWAnKR+D6tzpCcM4w==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -987,8 +987,8 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-musl@14.0.3: - resolution: {integrity: sha512-v0v8Kb8j8T23jvVUWZeA2D8+izWspeyeDGNaT2/mTHWp7+37fiNfL8bmBWiOmeumXkacM/AB0XOUQvEbncSnHA==} + /@next/swc-linux-arm64-musl@14.0.4: + resolution: {integrity: sha512-8QftwPEW37XxXoAwsn+nXlodKWHfpMaSvt81W43Wh8dv0gkheD+30ezWMcFGHLI71KiWmHK5PSQbTQGUiidvLQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -996,8 +996,8 @@ packages: dev: false optional: true - /@next/swc-linux-x64-gnu@14.0.3: - resolution: {integrity: sha512-VM1aE1tJKLBwMGtyBR21yy+STfl0MapMQnNrXkxeyLs0GFv/kZqXS5Jw/TQ3TSUnbv0QPDf/X8sDXuMtSgG6eg==} + /@next/swc-linux-x64-gnu@14.0.4: + resolution: {integrity: sha512-/s/Pme3VKfZAfISlYVq2hzFS8AcAIOTnoKupc/j4WlvF6GQ0VouS2Q2KEgPuO1eMBwakWPB1aYFIA4VNVh667A==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -1005,8 +1005,8 @@ packages: dev: false optional: true - /@next/swc-linux-x64-musl@14.0.3: - resolution: {integrity: sha512-64EnmKy18MYFL5CzLaSuUn561hbO1Gk16jM/KHznYP3iCIfF9e3yULtHaMy0D8zbHfxset9LTOv6cuYKJgcOxg==} + /@next/swc-linux-x64-musl@14.0.4: + resolution: {integrity: sha512-m8z/6Fyal4L9Bnlxde5g2Mfa1Z7dasMQyhEhskDATpqr+Y0mjOBZcXQ7G5U+vgL22cI4T7MfvgtrM2jdopqWaw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -1014,8 +1014,8 @@ packages: dev: false optional: true - /@next/swc-win32-arm64-msvc@14.0.3: - resolution: {integrity: sha512-WRDp8QrmsL1bbGtsh5GqQ/KWulmrnMBgbnb+59qNTW1kVi1nG/2ndZLkcbs2GX7NpFLlToLRMWSQXmPzQm4tog==} + /@next/swc-win32-arm64-msvc@14.0.4: + resolution: {integrity: sha512-7Wv4PRiWIAWbm5XrGz3D8HUkCVDMMz9igffZG4NB1p4u1KoItwx9qjATHz88kwCEal/HXmbShucaslXCQXUM5w==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] @@ -1023,8 +1023,8 @@ packages: dev: false optional: true - /@next/swc-win32-ia32-msvc@14.0.3: - resolution: {integrity: sha512-EKffQeqCrj+t6qFFhIFTRoqb2QwX1mU7iTOvMyLbYw3QtqTw9sMwjykyiMlZlrfm2a4fA84+/aeW+PMg1MjuTg==} + /@next/swc-win32-ia32-msvc@14.0.4: + resolution: {integrity: sha512-zLeNEAPULsl0phfGb4kdzF/cAVIfaC7hY+kt0/d+y9mzcZHsMS3hAS829WbJ31DkSlVKQeHEjZHIdhN+Pg7Gyg==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] @@ -1032,8 +1032,8 @@ packages: dev: false optional: true - /@next/swc-win32-x64-msvc@14.0.3: - resolution: {integrity: sha512-ERhKPSJ1vQrPiwrs15Pjz/rvDHZmkmvbf/BjPN/UCOI++ODftT0GtasDPi0j+y6PPJi5HsXw+dpRaXUaw4vjuQ==} + /@next/swc-win32-x64-msvc@14.0.4: + resolution: {integrity: sha512-yEh2+R8qDlDCjxVpzOTEpBLQTEFAcP2A8fUFLaWNap9GitYKkKv1//y2S6XY6zsR4rCOPRpU7plYDR+az2n30A==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -4410,8 +4410,8 @@ packages: resolution: {integrity: sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==} dev: true - /next@14.0.3(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-AbYdRNfImBr3XGtvnwOxq8ekVCwbFTv/UJoLwmaX89nk9i051AEY4/HAWzU0YpaTDw8IofUpmuIlvzWF13jxIw==} + /next@14.0.4(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-qbwypnM7327SadwFtxXnQdGiKpkuhaRLE2uq62/nRul9cj9KhQ5LhHmlziTNqUidZotw/Q1I9OjirBROdUJNgA==} engines: {node: '>=18.17.0'} hasBin: true peerDependencies: @@ -4425,25 +4425,26 @@ packages: sass: optional: true dependencies: - '@next/env': 14.0.3 + '@next/env': 14.0.4 '@swc/helpers': 0.5.2 busboy: 1.6.0 caniuse-lite: 1.0.30001565 + graceful-fs: 4.2.11 postcss: 8.4.31 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) styled-jsx: 5.1.1(react@18.2.0) watchpack: 2.4.0 optionalDependencies: - '@next/swc-darwin-arm64': 14.0.3 - '@next/swc-darwin-x64': 14.0.3 - '@next/swc-linux-arm64-gnu': 14.0.3 - '@next/swc-linux-arm64-musl': 14.0.3 - '@next/swc-linux-x64-gnu': 14.0.3 - '@next/swc-linux-x64-musl': 14.0.3 - '@next/swc-win32-arm64-msvc': 14.0.3 - '@next/swc-win32-ia32-msvc': 14.0.3 - '@next/swc-win32-x64-msvc': 14.0.3 + '@next/swc-darwin-arm64': 14.0.4 + '@next/swc-darwin-x64': 14.0.4 + '@next/swc-linux-arm64-gnu': 14.0.4 + '@next/swc-linux-arm64-musl': 14.0.4 + '@next/swc-linux-x64-gnu': 14.0.4 + '@next/swc-linux-x64-musl': 14.0.4 + '@next/swc-win32-arm64-msvc': 14.0.4 + '@next/swc-win32-ia32-msvc': 14.0.4 + '@next/swc-win32-x64-msvc': 14.0.4 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros From 3a1883c343c55637aa1ce5d118cc2841c76d8752 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 2 Jan 2024 10:58:54 +0100 Subject: [PATCH 143/440] build(npm): bump react-router-dom from 6.20.1 to 6.21.1 (#1252) Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.20.1 to 6.21.1. - [Release notes](https://github.com/remix-run/react-router/releases) - [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md) - [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.21.1/packages/react-router-dom) --- updated-dependencies: - dependency-name: react-router-dom dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- examples/react-oidc-demo/package.json | 2 +- pnpm-lock.yaml | 22 +++++++++++----------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/examples/react-oidc-demo/package.json b/examples/react-oidc-demo/package.json index d3b1a37ec..0c12ba741 100644 --- a/examples/react-oidc-demo/package.json +++ b/examples/react-oidc-demo/package.json @@ -21,7 +21,7 @@ "@axa-fr/react-oidc":"workspace:*", "react": "^18.2.0", "react-dom": "^18.2.0", - "react-router-dom": "^6.20.1" + "react-router-dom": "^6.21.1" }, "devDependencies": { "@testing-library/jest-dom": "5.16.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 885caab78..086c4dcdf 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -127,8 +127,8 @@ importers: specifier: ^18.2.0 version: 18.2.0(react@18.2.0) react-router-dom: - specifier: ^6.20.1 - version: 6.20.1(react-dom@18.2.0)(react@18.2.0) + specifier: ^6.21.1 + version: 6.21.1(react-dom@18.2.0)(react@18.2.0) devDependencies: '@testing-library/jest-dom': specifier: 5.16.5 @@ -1096,8 +1096,8 @@ packages: tslib: 2.6.2 dev: true - /@remix-run/router@1.13.1: - resolution: {integrity: sha512-so+DHzZKsoOcoXrILB4rqDkMDy7NLMErRdOxvzvOKb507YINKUP4Di+shbTZDhSE/pBZ+vr7XGIpcOO0VLSA+Q==} + /@remix-run/router@1.14.1: + resolution: {integrity: sha512-Qg4DMQsfPNAs88rb2xkdk03N3bjK4jgX5fR24eHCTR9q6PrhZQZ4UJBPzCHJkIpTRN1UKxx2DzjZmnC+7Lj0Ow==} engines: {node: '>=14.0.0'} dev: false @@ -4921,26 +4921,26 @@ packages: engines: {node: '>=0.10.0'} dev: true - /react-router-dom@6.20.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-npzfPWcxfQN35psS7rJgi/EW0Gx6EsNjfdJSAk73U/HqMEJZ2k/8puxfwHFgDQhBGmS3+sjnGbMdMSV45axPQw==} + /react-router-dom@6.21.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-QCNrtjtDPwHDO+AO21MJd7yIcr41UetYt5jzaB9Y1UYaPTCnVuJq6S748g1dE11OQlCFIQg+RtAA1SEZIyiBeA==} engines: {node: '>=14.0.0'} peerDependencies: react: '>=16.8' react-dom: '>=16.8' dependencies: - '@remix-run/router': 1.13.1 + '@remix-run/router': 1.14.1 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-router: 6.20.1(react@18.2.0) + react-router: 6.21.1(react@18.2.0) dev: false - /react-router@6.20.1(react@18.2.0): - resolution: {integrity: sha512-ccvLrB4QeT5DlaxSFFYi/KR8UMQ4fcD8zBcR71Zp1kaYTC5oJKYAp1cbavzGrogwxca+ubjkd7XjFZKBW8CxPA==} + /react-router@6.21.1(react@18.2.0): + resolution: {integrity: sha512-W0l13YlMTm1YrpVIOpjCADJqEUpz1vm+CMo47RuFX4Ftegwm6KOYsL5G3eiE52jnJpKvzm6uB/vTKTPKM8dmkA==} engines: {node: '>=14.0.0'} peerDependencies: react: '>=16.8' dependencies: - '@remix-run/router': 1.13.1 + '@remix-run/router': 1.14.1 react: 18.2.0 dev: false From 6e63e9ea17514b1171e6659d39d5c68e2908951e Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 2 Jan 2024 10:01:34 +0000 Subject: [PATCH 144/440] [skip ci] Update to version 7.13.14 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 951e737df..aeab8c80c 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.13.12", + "version": "7.13.14", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 714ef4ad6..f5cbf98b6 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.13.12'; +export default '7.13.14'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 95bdec42c..1604d5671 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.13.12", + "version": "7.13.14", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 714ef4ad6..f5cbf98b6 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.13.12'; +export default '7.13.14'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 55b022c63..dbf74059b 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.13.12", + "version": "7.13.14", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 117de93fa5b4caaee142796a0eabfe80104c6a23 Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 2 Jan 2024 10:01:35 +0000 Subject: [PATCH 145/440] [skip ci] Generate changelog to version 7.13.14 --- CHANGELOG.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 09132c1b9..5776d64c3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,17 @@ # Changelog -## 7.13.12 +## 7.13.14 + +- [3a1883c](https://github.com/AxaFrance/oidc-client/commit/3a1883c343c55637aa1ce5d118cc2841c76d8752) - build(npm): bump react-router-dom from 6.20.1 to 6.21.1 (#1252), 2024-01-02 by *dependabot[bot]* + + +## v7.13.13 + +- [1faaab4](https://github.com/AxaFrance/oidc-client/commit/1faaab4ecb86144ed6f3c1ed68b938804854bd36) - build(npm): bump next from 14.0.3 to 14.0.4 (#1255), 2024-01-02 by *dependabot[bot]* +- [d009de8](https://github.com/AxaFrance/oidc-client/commit/d009de8091ac256d1384466df9b3fe7de75a5629) - chore(ci): Update npm-publish.yml, 2023-12-28 by *Guillaume Chervet* + + +## v7.13.12 - [9ef56f1](https://github.com/AxaFrance/oidc-client/commit/9ef56f17793e1bfbd668d6f001125a8f773c2370) - fix(oidc): Handling of errors returned from authorize endpoint (#1250) (release), 2023-12-28 by *Guillaume Chervet* @@ -308,14 +319,3 @@ - [d329ce0](https://github.com/AxaFrance/oidc-client/commit/d329ce0cb013f4877cb401c6ccef316077ce9d09) - fix(ci): add set to replace workspace* (release), 2023-07-28 by *Guillaume Chervet* -## v6.26.1 - - - -## v6.26.0 - -- [7eac9e5](https://github.com/AxaFrance/oidc-client/commit/7eac9e5c10175ae6850a72e21e11bac568a01720) - feat(oidc): rename vanilla-oidc to oidc-client (#1112) (release), 2023-07-28 by *Guillaume Chervet* -- [9f25be7](https://github.com/AxaFrance/oidc-client/commit/9f25be794ff6b08d8ca30cc5f27dff554136d163) - refactor(lint): Enable linting on examples, fix lint warnings. (#1111), 2023-07-27 by *Jason Finch* -- [762ca42](https://github.com/AxaFrance/oidc-client/commit/762ca423a2efe946d4213a3c482638a386a5b555) - ci(lint): Move eslint config to root. Add GH workflow to run lint. (#1109), 2023-07-27 by *Jason Finch* - - From c56cc842d8da427b2aa88eb71f7d63937ea3c363 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Tue, 16 Jan 2024 21:22:55 +0100 Subject: [PATCH 146/440] fix(react-oidc): missing console.log in useOidcFetch (release) --- packages/react-oidc/src/FetchToken.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/react-oidc/src/FetchToken.tsx b/packages/react-oidc/src/FetchToken.tsx index ca59e3240..af94a512f 100644 --- a/packages/react-oidc/src/FetchToken.tsx +++ b/packages/react-oidc/src/FetchToken.tsx @@ -28,7 +28,6 @@ export const useOidcFetch = (fetch: Fetch = null, configurationName = defaultCon (input: RequestInfo | URL, init?: RequestInit) => { const getOidcWithConfigurationName = () => getOidc(configurationName); const newFetch = fetchWithToken(previousFetch, getOidcWithConfigurationName); - console.log('newFetch', input) return newFetch(input, init); }, [previousFetch, configurationName], From 6e56b70998f9f22ed78c56560feae47efbfc84e6 Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 16 Jan 2024 20:34:53 +0000 Subject: [PATCH 147/440] [skip ci] Update to version 7.13.15 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index aeab8c80c..061e2a422 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.13.14", + "version": "7.13.15", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index f5cbf98b6..8e8511c92 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.13.14'; +export default '7.13.15'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 1604d5671..352dd109f 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.13.14", + "version": "7.13.15", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index f5cbf98b6..8e8511c92 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.13.14'; +export default '7.13.15'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index dbf74059b..551ee52da 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.13.14", + "version": "7.13.15", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From da88573ed9574f236b486eaf9b0302f9b387e503 Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 16 Jan 2024 20:34:55 +0000 Subject: [PATCH 148/440] [skip ci] Generate changelog to version 7.13.15 --- CHANGELOG.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5776d64c3..b862a4111 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog -## 7.13.14 +## 7.13.15 + +- [c56cc84](https://github.com/AxaFrance/oidc-client/commit/c56cc842d8da427b2aa88eb71f7d63937ea3c363) - fix(react-oidc): missing console.log in useOidcFetch (release), 2024-01-16 by *Guillaume Chervet* + + +## v7.13.14 - [3a1883c](https://github.com/AxaFrance/oidc-client/commit/3a1883c343c55637aa1ce5d118cc2841c76d8752) - build(npm): bump react-router-dom from 6.20.1 to 6.21.1 (#1252), 2024-01-02 by *dependabot[bot]* @@ -314,8 +319,3 @@ - [04f4900](https://github.com/AxaFrance/oidc-client/commit/04f4900d672e954278e6835bc31c62e4bf8660de) - try fix (release), 2023-07-28 by *Guillaume Chervet* -## v6.26.2 - -- [d329ce0](https://github.com/AxaFrance/oidc-client/commit/d329ce0cb013f4877cb401c6ccef316077ce9d09) - fix(ci): add set to replace workspace* (release), 2023-07-28 by *Guillaume Chervet* - - From f2310bc917898b779a40edecf3dd73c21ec32b47 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Thu, 25 Jan 2024 21:00:13 +0100 Subject: [PATCH 149/440] fix(oidc): parseJwt fails for some JWT because of wrong use of replace (release) (#1269) --- .../src/utils/__tests__/tokens.spec.ts | 17 ++++++++++++++++- .../src/utils/tokens.ts | 6 +++--- packages/oidc-client/src/parseTokens.spec.ts | 16 +++++++++++++++- packages/oidc-client/src/parseTokens.ts | 6 +++--- 4 files changed, 37 insertions(+), 8 deletions(-) diff --git a/packages/oidc-client-service-worker/src/utils/__tests__/tokens.spec.ts b/packages/oidc-client-service-worker/src/utils/__tests__/tokens.spec.ts index 41435f4b2..b8559154b 100644 --- a/packages/oidc-client-service-worker/src/utils/__tests__/tokens.spec.ts +++ b/packages/oidc-client-service-worker/src/utils/__tests__/tokens.spec.ts @@ -1,7 +1,7 @@ import { beforeEach, describe, expect, it } from 'vitest'; import { OidcServerConfiguration } from '../../types'; -import { _hideTokens, extractTokenPayload, isTokensOidcValid, isTokensValid } from '..'; +import {_hideTokens, extractTokenPayload, isTokensOidcValid, isTokensValid, parseJwt} from '..'; import { OidcConfigBuilder, OidcServerConfigBuilder, TokenBuilder } from './testHelper'; describe('tokens', () => { @@ -31,6 +31,21 @@ describe('tokens', () => { }); describe('extractTokenPayload', () => { + + it('parseJwtShouldExtractData', async () => { + const claimsPart = "eyJzZXNzaW9uX3N0YXRlIjoiNzVjYzVlZDItZGYyZC00NTY5LWJmYzUtMThhOThlNjhiZTExIiwic2NvcGUiOiJvcGVuaWQgZW1haWwgcHJvZmlsZSIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJuYW1lIjoixrTHosOBw6zDhyDlsI_lkI0t44Ob44Or44OYIiwicHJlZmVycmVkX3VzZXJuYW1lIjoidGVzdGluZ2NoYXJhY3RlcnNAaW52ZW50ZWRtYWlsLmNvbSIsImdpdmVuX25hbWUiOiLGtMeiw4HDrMOHIiwiZmFtaWx5X25hbWUiOiLlsI_lkI0t44Ob44Or44OYIn0" + const result = parseJwt(claimsPart); + expect(result).toStrictEqual({ + "session_state": "75cc5ed2-df2d-4569-bfc5-18a98e68be11", + "scope": "openid email profile", + "email_verified": true, + "name": "ƴǢÁìÇ 小名-ホルヘ", + "preferred_username": "testingcharacters@inventedmail.com", + "given_name": "ƴǢÁìÇ", + "family_name": "小名-ホルヘ" + }); + }); + it('can extract token payload', () => { const result = extractTokenPayload( 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c', diff --git a/packages/oidc-client-service-worker/src/utils/tokens.ts b/packages/oidc-client-service-worker/src/utils/tokens.ts index 80a9157db..190416262 100644 --- a/packages/oidc-client-service-worker/src/utils/tokens.ts +++ b/packages/oidc-client-service-worker/src/utils/tokens.ts @@ -10,9 +10,9 @@ import { } from '../types'; import { countLetter } from './strings'; -function parseJwt(token: string) { +export const parseJwt = (payload: string) => { return JSON.parse( - b64DecodeUnicode(token.split('.')[1].replace('-', '+').replace('_', '/')), + b64DecodeUnicode(payload.replace(/-/g, '+').replace(/_/g, '/')), ); } function b64DecodeUnicode(str: string) { @@ -51,7 +51,7 @@ const extractTokenPayload = (token?: string) => { return null; } if (countLetter(token, '.') === 2) { - return parseJwt(token); + return parseJwt(token.split('.')[1]); } else { return null; } diff --git a/packages/oidc-client/src/parseTokens.spec.ts b/packages/oidc-client/src/parseTokens.spec.ts index 070bbeea6..e520d7b4a 100644 --- a/packages/oidc-client/src/parseTokens.spec.ts +++ b/packages/oidc-client/src/parseTokens.spec.ts @@ -1,6 +1,6 @@ import { describe, expect,it } from 'vitest'; -import {getValidTokenAsync, isTokensOidcValid, parseOriginalTokens} from "./parseTokens"; +import { getValidTokenAsync, isTokensOidcValid, parseJwt, parseOriginalTokens} from "./parseTokens"; describe('ParseTokens test Suite', () => { const currentTimeUnixSecond = new Date().getTime() / 1000; @@ -25,6 +25,20 @@ describe('ParseTokens test Suite', () => { }); }); + it('parseJwtShouldExtractData', async () => { + const claimsPart = "eyJzZXNzaW9uX3N0YXRlIjoiNzVjYzVlZDItZGYyZC00NTY5LWJmYzUtMThhOThlNjhiZTExIiwic2NvcGUiOiJvcGVuaWQgZW1haWwgcHJvZmlsZSIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJuYW1lIjoixrTHosOBw6zDhyDlsI_lkI0t44Ob44Or44OYIiwicHJlZmVycmVkX3VzZXJuYW1lIjoidGVzdGluZ2NoYXJhY3RlcnNAaW52ZW50ZWRtYWlsLmNvbSIsImdpdmVuX25hbWUiOiLGtMeiw4HDrMOHIiwiZmFtaWx5X25hbWUiOiLlsI_lkI0t44Ob44Or44OYIn0" + const result = parseJwt(claimsPart); + expect(result).toStrictEqual({ + "session_state": "75cc5ed2-df2d-4569-bfc5-18a98e68be11", + "scope": "openid email profile", + "email_verified": true, + "name": "ƴǢÁìÇ 小名-ホルヘ", + "preferred_username": "testingcharacters@inventedmail.com", + "given_name": "ƴǢÁìÇ", + "family_name": "小名-ホルヘ" + }); + }); + const id_token ="eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IjUwNWZkODljLTM4YzktNGI2Mi04ZjQ3LWI4MGQ0ZTNhYjYxNSJ9.eyJpc3MiOiJodHRwOlwvXC9sb2NhbGhvc3Q6ODA4MCIsInN1YiI6ImFkbWluIiwiYXVkIjoiM2FTbk5XUGxZQWQwOGVES3c1UUNpSWVMcWpIdHkxTTVzSGFzcDJDZWREcWYzbmJkZm8xUFo1cXhmbWoyaFhkUyIsImV4cCI6MTY5MDk4NzQ1NCwiYXV0aF90aW1lIjoxNjkwOTg2NTUxLCJpYXQiOjE2OTA5ODY1NTQsImFjciI6IjAiLCJhenAiOiIzYVNuTldQbFlBZDA4ZURLdzVRQ2lJZUxxakh0eTFNNXNIYXNwMkNlZERxZjNuYmRmbzFQWjVxeGZtajJoWGRTIiwicHJlZmVycmVkX3VzZXJuYW1lIjoiYWRtaW4iLCJzY29wZSI6Im9wZW5pZCBwcm9maWxlIGdyb3VwcyBvZmZsaW5lX2FjY2VzcyIsIm5iZiI6MTY5MDk4NjU1NCwianRpIjoiNjMiLCJub25jZSI6ImNpQkVVOTdaVmRWVSIsImdyb3VwcyI6WyJhZG1pbiJdLCJuYW1lIjoiQWRtaW5pc3RyYXRvciIsInVwZGF0ZWRfYXQiOjE2OTA5ODY1NDV9.2MUdtQR_QtzDY9BTMctG8C4uvg92DgMIUUoJed2cI7WTd5_VEPFW87esDQLw4snVdAJM1_Wf3wB88B2MXFDMCnMTNn0TMnzetRDiG3xlr2LL-geL5SNgwD0Y6RPK_aITjrC9uiQCTj3LPEENrBulNRZPURwaVon9WUVNuuBmMTKd7QKEuFN0zYDoRs0HnXo6WKnFy1rldLGh_JpA3PBUuXt4VMjfGQ7yYEuNn7MkFVDX6OnTffR8jTQp74hREvuRLFjYxfgfgu547X7yIcboOl81D0ZQlP-gfvBOeypZolRLScuqAA3fHBYvE0vCtOM6ObekfeeTDfms75csMLUuZtTR07x32xYC8vdoFsY0sRpMByTqlhsae9VX_rETJ7PIWEfruojzcj47WN9dG0K3pdPiJHEwZ1CKgZfU_cY0gtuAGaIcIjKL0txXCevaiIiIsrgSU_HTjNVybp4WHSAs3h6x0XLz4_91luCylsaoMQbwKOQNwAfr2L74jF6DOg-8DIPb-WClRQzaQtrkx_iv6FtqCB3ogFoZwi6xljdYUc2EHUmoAo-LXal-QAgUXGGzfFU2YOpxV3RyAbMGPm7PfkMVzDsDJwORJNhh38QQ6o88GgNnV28BT-d2G0n7okc0QC6o2IW0jpyCrI6v0hWOBUX2EqiJ5Wao-4LYZfCaRgU"; const refresh_token ="DEsqDca7nDGSgT6tJPkCwbPy98B8VOC4AA55lOPs03G3hqhZ8WH08REBcwTZg1s0jZyVoA3iCXzm4PPJ096gjV7ZKYyN8vnFKw6P6KLV3tUI6mWFaSROoh1LipThFrkS"; diff --git a/packages/oidc-client/src/parseTokens.ts b/packages/oidc-client/src/parseTokens.ts index b1e6f83df..0df18cb16 100644 --- a/packages/oidc-client/src/parseTokens.ts +++ b/packages/oidc-client/src/parseTokens.ts @@ -2,15 +2,15 @@ import {sleepAsync} from './initWorker.js'; const b64DecodeUnicode = (str) => decodeURIComponent(Array.prototype.map.call(atob(str), (c) => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)).join('')); -const parseJwt = (token) => JSON.parse(b64DecodeUnicode(token.split('.')[1].replace('-', '+').replace('_', '/'))); +export const parseJwt = (payload:string) => JSON.parse(b64DecodeUnicode(payload.replace(/-/g, '+').replace(/_/g, '/'))); -const extractTokenPayload = (token) => { +const extractTokenPayload = (token:string) => { try { if (!token) { return null; } if (countLetter(token, '.') === 2) { - return parseJwt(token); + return parseJwt(token.split('.')[1]); } else { return null; } From d7d2c149cff306679696c3cf47aeffae364a0fe5 Mon Sep 17 00:00:00 2001 From: GitHub Date: Thu, 25 Jan 2024 20:02:52 +0000 Subject: [PATCH 150/440] [skip ci] Update to version 7.13.16 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 061e2a422..5aa9cf552 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.13.15", + "version": "7.13.16", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 8e8511c92..52e8c9412 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.13.15'; +export default '7.13.16'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 352dd109f..55a894189 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.13.15", + "version": "7.13.16", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 8e8511c92..52e8c9412 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.13.15'; +export default '7.13.16'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 551ee52da..4beaeb130 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.13.15", + "version": "7.13.16", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From df754bd51e94bce277d7b5baaadc109042ad8c89 Mon Sep 17 00:00:00 2001 From: GitHub Date: Thu, 25 Jan 2024 20:02:53 +0000 Subject: [PATCH 151/440] [skip ci] Generate changelog to version 7.13.16 --- CHANGELOG.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b862a4111..5f2755cb5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog -## 7.13.15 +## 7.13.16 + +- [f2310bc](https://github.com/AxaFrance/oidc-client/commit/f2310bc917898b779a40edecf3dd73c21ec32b47) - fix(oidc): parseJwt fails for some JWT because of wrong use of replace (release) (#1269), 2024-01-25 by *Guillaume Chervet* + + +## v7.13.15 - [c56cc84](https://github.com/AxaFrance/oidc-client/commit/c56cc842d8da427b2aa88eb71f7d63937ea3c363) - fix(react-oidc): missing console.log in useOidcFetch (release), 2024-01-16 by *Guillaume Chervet* @@ -314,8 +319,3 @@ - [9c7a143](https://github.com/AxaFrance/oidc-client/commit/9c7a143797cffff1044c13787c6ceaf690fa4c87) - fix build (release), 2023-07-28 by *Guillaume Chervet* -## v6.26.3 - -- [04f4900](https://github.com/AxaFrance/oidc-client/commit/04f4900d672e954278e6835bc31c62e4bf8660de) - try fix (release), 2023-07-28 by *Guillaume Chervet* - - From b0510eb8d7170e8e142cb2d9bec01f41f610ed51 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Fri, 26 Jan 2024 12:53:54 +0100 Subject: [PATCH 152/440] feat(oidc): add DPOP configuration (#1259) (release) --- .../public/OidcTrustedDomains.js | 2 + examples/react-oidc-demo/src/FetchUser.tsx | 4 +- examples/react-oidc-demo/src/MultiAuth.tsx | 44 +++- packages/oidc-client/README.md | 31 +++ packages/oidc-client/src/checkSession.ts | 3 +- packages/oidc-client/src/initSession.ts | 2 +- packages/oidc-client/src/initWorker.ts | 2 +- packages/oidc-client/src/jwt.ts | 204 ++++++++++-------- packages/oidc-client/src/keepSession.ts | 78 +++++++ packages/oidc-client/src/login.ts | 7 +- packages/oidc-client/src/logout.ts | 1 + packages/oidc-client/src/oidc.ts | 166 +++----------- packages/oidc-client/src/parseTokens.ts | 2 +- packages/oidc-client/src/renewTokens.ts | 64 +++++- packages/oidc-client/src/requests.ts | 2 +- packages/oidc-client/src/types.ts | 9 + packages/oidc-client/src/user.ts | 3 +- packages/react-oidc/README.md | 36 +++- readme.md | 3 +- 19 files changed, 408 insertions(+), 255 deletions(-) create mode 100644 packages/oidc-client/src/keepSession.ts diff --git a/examples/react-oidc-demo/public/OidcTrustedDomains.js b/examples/react-oidc-demo/public/OidcTrustedDomains.js index 5bc49de89..416c4626a 100644 --- a/examples/react-oidc-demo/public/OidcTrustedDomains.js +++ b/examples/react-oidc-demo/public/OidcTrustedDomains.js @@ -21,4 +21,6 @@ trustedDomains.config_separate_oidc_access_token_domains = { oidcDomains: ["https://demo.duendesoftware.com"], accessTokenDomains: ["https://myapi"] }; + +trustedDomains.config_with_dpop = { domains: ["https://demo.duendesoftware.com"], showAccessToken: true }; //# sourceMappingURL=OidcTrustedDomains.js.map \ No newline at end of file diff --git a/examples/react-oidc-demo/src/FetchUser.tsx b/examples/react-oidc-demo/src/FetchUser.tsx index b4178363e..cc4795aa5 100644 --- a/examples/react-oidc-demo/src/FetchUser.tsx +++ b/examples/react-oidc-demo/src/FetchUser.tsx @@ -46,7 +46,7 @@ const UserInfoWithFetchHoc = withOidcFetch(fetch)(DisplayUserInfo); export const FetchUserHoc = () => ; -export const FetchUserHook = () => { - const { fetch } = useOidcFetch(); +export const FetchUserHook = (props:any) => { + const { fetch } = useOidcFetch(window.fetch, props.configurationName); return ; }; diff --git a/examples/react-oidc-demo/src/MultiAuth.tsx b/examples/react-oidc-demo/src/MultiAuth.tsx index 38ee6663f..77e83b461 100644 --- a/examples/react-oidc-demo/src/MultiAuth.tsx +++ b/examples/react-oidc-demo/src/MultiAuth.tsx @@ -8,6 +8,7 @@ import { CallBackSuccess } from './override/Callback.component'; import Loading from './override/Loading.component'; import ServiceWorkerNotSupported from './override/ServiceWorkerNotSupported.component'; import SessionLost from './override/SessionLost.component'; +import {FetchUserHook} from "./FetchUser"; const fetchWithLogs = (fetch: Fetch) => async (...params: Parameters) => { const [url, options, ...rest] = params; @@ -45,6 +46,7 @@ const MultiAuth = ({ configurationName, handleConfigurationChange }) => { + {!isAuthenticated && } {isAuthenticatedDefault && } @@ -118,6 +120,27 @@ export const MultiAuthContainer = () => { redirect_uri: callBack, silent_redirect_uri, }, + config_with_dpop: { + ...configurationIdentityServer, + redirect_uri: callBack, + silent_redirect_uri, + demonstrating_proof_of_possession: true, + /*demonstrating_proof_of_possession_configuration: { + importKeyAlgorithm: { + name: "RSASSA-PKCS1-v1_5", + hash: { name: "SHA-256" }, //can be "SHA-1", "SHA-256", "SHA-384", or "SHA-512" + }, + signAlgorithm: { name: "RSASSA-PKCS1-v1_5" }, + generateKeyAlgorithm: { + name: "RSASSA-PKCS1-v1_5", + modulusLength: 2048, //can be 1024, 2048, or 4096 + publicExponent: new Uint8Array([0x01, 0x00, 0x01]), + hash: { name: "SHA-256" }, //can be "SHA-1", "SHA-256", "SHA-384", or "SHA-512" + }, + digestAlgorithm: { name: "SHA-256" }, + jwtHeaderAlgorithm: "RS256", + },*/ + } }; const handleConfigurationChange = (event) => { const configurationName = event.target.value; @@ -176,15 +199,18 @@ const DisplayAccessToken = ({ configurationName }) => { return

you are not authentified

; } return ( -
-
-
Access Token
-

Please consider to configure the ServiceWorker in order to protect your application from XSRF attacks. "access_token" and "refresh_token" will never be accessible from your client side javascript.

- {

Access Token: {JSON.stringify(accessToken)}

} - {accessTokenPayload != null &&

Access Token Payload: {JSON.stringify(accessTokenPayload)}

} -
Id Token
- {idTokenPayload != null &&

Access Token Payload: {JSON.stringify(idTokenPayload)}

} + <> +
+
+
Access Token
+

Please consider to configure the ServiceWorker in order to protect your application from XSRF attacks. "access_token" and "refresh_token" will never be accessible from your client side javascript.

+ {

Access Token: {JSON.stringify(accessToken)}

} + {accessTokenPayload != null &&

Access Token Payload: {JSON.stringify(accessTokenPayload)}

} +
Id Token
+ {idTokenPayload != null &&

Access Token Payload: {JSON.stringify(idTokenPayload)}

} +
-
+ + ); }; diff --git a/packages/oidc-client/README.md b/packages/oidc-client/README.md index b958d2bc0..2b9828817 100644 --- a/packages/oidc-client/README.md +++ b/packages/oidc-client/README.md @@ -205,8 +205,37 @@ const configuration = { monitor_session: Boolean, // Add OpenID monitor session, default is false (more information https://openid.net/specs/openid-connect-session-1_0.html), if you need to set it to true consider https://infi.nl/nieuws/spa-necromancy/ token_renew_mode: String, // Optional, update tokens based on the selected token(s) lifetime: "access_token_or_id_token_invalid" (default), "access_token_invalid", "id_token_invalid" logout_tokens_to_invalidate: Array, // Optional tokens to invalidate during logout, default: ['access_token', 'refresh_token'] + location: ILOidcLocation, // Optional, default is window.location, you can inject your own location object respecting the ILOidcLocation interface demonstrating_proof_of_possession: Boolean, // Optional, default is false, if true, the the Demonstrating Proof of Possession will be activated //https://www.rfc-editor.org/rfc/rfc9449.html#name-protected-resource-access + demonstrating_proof_of_possession_configuration: DemonstratingProofOfPossessionConfiguration // Optional, more details bellow }; + + +interface DemonstratingProofOfPossessionConfiguration { + generateKeyAlgorithm: RsaHashedKeyGenParams | EcKeyGenParams, + digestAlgorithm: AlgorithmIdentifier, + importKeyAlgorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, + signAlgorithm: AlgorithmIdentifier | RsaPssParams | EcdsaParams, + jwtHeaderAlgorithm: string +}; + +// default value of demonstrating_proof_of_possession_configuration +const defaultDemonstratingProofOfPossessionConfiguration: DemonstratingProofOfPossessionConfiguration ={ + importKeyAlgorithm: { + name: 'ECDSA', + namedCurve: 'P-256', + hash: {name: 'ES256'} + }, + signAlgorithm: {name: 'ECDSA', hash: {name: 'SHA-256'}}, + generateKeyAlgorithm: { + name: 'ECDSA', + namedCurve: 'P-256' + }, + digestAlgorithm: { name: 'SHA-256' }, + jwtHeaderAlgorithm : 'ES256' +}; + + ``` ## API @@ -374,6 +403,8 @@ More information about OIDC - [French : Augmentez la sécurité et la simplicité de votre Système d’Information OpenID Connect](https://medium.com/just-tech-it-now/augmentez-la-s%C3%A9curit%C3%A9-et-la-simplicit%C3%A9-de-votre-syst%C3%A8me-dinformation-avec-oauth-2-0-cf0732d71284) - [English : Increase the security and simplicity of your information system with openid connect](https://medium.com/just-tech-it-now/increase-the-security-and-simplicity-of-your-information-system-with-openid-connect-fa8c26b99d6d) +- [English: youtube OIDC](https://www.youtube.com/watch?v=frIJfavZkUE&list=PL8EMdIH6Mzxy2kHtsVOEWqNz-OaM_D_fB&index=1) +- [French: youtube OIDC](https://www.youtube.com/watch?v=H-mLMGzQ_y0&list=PL8EMdIH6Mzxy2kHtsVOEWqNz-OaM_D_fB&index=2) ## Hash route diff --git a/packages/oidc-client/src/checkSession.ts b/packages/oidc-client/src/checkSession.ts index 66124d9e9..e291ef2c1 100644 --- a/packages/oidc-client/src/checkSession.ts +++ b/packages/oidc-client/src/checkSession.ts @@ -1,9 +1,10 @@ import { CheckSessionIFrame } from './checkSessionIFrame.js'; import { _silentLoginAsync, SilentLoginResponse } from './silentLogin.js'; import { OidcConfiguration } from './types.js'; +import Oidc from "./oidc"; // eslint-disable-next-line @typescript-eslint/ban-types -export const startCheckSessionAsync = (oidc:any, oidcDatabase:any, configuration :OidcConfiguration) => (checkSessionIFrameUri, clientId, sessionState, isSilentSignin = false) => { +export const startCheckSessionAsync = (oidc:Oidc, oidcDatabase:any, configuration :OidcConfiguration) => (checkSessionIFrameUri, clientId, sessionState, isSilentSignin = false) => { const silentLoginAsync = (extras, state = undefined, scope = undefined):Promise => { return _silentLoginAsync(oidc.configurationName, configuration, oidc.publishEvent.bind(oidc))(extras, state, scope); }; diff --git a/packages/oidc-client/src/initSession.ts b/packages/oidc-client/src/initSession.ts index f582108b0..3d79b69b3 100644 --- a/packages/oidc-client/src/initSession.ts +++ b/packages/oidc-client/src/initSession.ts @@ -29,7 +29,7 @@ export const initSession = (configurationName, storage = sessionStorage) => { storage[`oidc.nonce.${configurationName}`] = nonce.nonce; }; - const setDemonstratingProofOfPossessionJwkAsync = (jwk) => { + const setDemonstratingProofOfPossessionJwkAsync = (jwk:JsonWebKey) => { storage[`oidc.jwk.${configurationName}`] = JSON.stringify(jwk); }; diff --git a/packages/oidc-client/src/initWorker.ts b/packages/oidc-client/src/initWorker.ts index 959bc0a75..8a5d7d9ab 100644 --- a/packages/oidc-client/src/initWorker.ts +++ b/packages/oidc-client/src/initWorker.ts @@ -171,7 +171,7 @@ export const initWorkerAsync = async(configuration, configurationName) => { return result.demonstratingProofOfPossessionNonce; }; - const setDemonstratingProofOfPossessionJwkAsync = async (demonstratingProofOfPossessionJwk:string) => { + const setDemonstratingProofOfPossessionJwkAsync = async (demonstratingProofOfPossessionJwk:JsonWebKey) => { const demonstratingProofOfPossessionJwkJson = JSON.stringify(demonstratingProofOfPossessionJwk); sendMessageAsync(registration)({ type: 'setDemonstratingProofOfPossessionJwk', data: { demonstratingProofOfPossessionJwkJson }, configurationName }); }; diff --git a/packages/oidc-client/src/jwt.ts b/packages/oidc-client/src/jwt.ts index c4a2c4286..2abe55a2b 100644 --- a/packages/oidc-client/src/jwt.ts +++ b/packages/oidc-client/src/jwt.ts @@ -4,6 +4,8 @@ // // because... JavaScript, Strings, and Buffers // @ts-ignore +import {DemonstratingProofOfPossessionConfiguration} from "./types"; + function strToUint8(str) { return new TextEncoder().encode(str); } @@ -56,19 +58,42 @@ function strToUrlBase64(str) { return binToUrlBase64(utf8ToBinaryString(str)); } -export var JWT = {}; +export const defaultDemonstratingProofOfPossessionConfiguration: DemonstratingProofOfPossessionConfiguration ={ + importKeyAlgorithm: { + name: 'ECDSA', + namedCurve: 'P-256', + hash: {name: 'ES256'} + }, + signAlgorithm: {name: 'ECDSA', hash: {name: 'SHA-256'}}, + generateKeyAlgorithm: { + name: 'ECDSA', + namedCurve: 'P-256' + }, + digestAlgorithm: { name: 'SHA-256' }, + jwtHeaderAlgorithm : 'ES256' +} + + // @ts-ignore -JWT.sign = (jwk, headers, claims, jwtHeaderType= 'dpop+jwt') => { +const sign = async (jwk, headers, claims, demonstratingProofOfPossessionConfiguration: DemonstratingProofOfPossessionConfiguration, jwtHeaderType= 'dpop+jwt') => { // Make a shallow copy of the key // (to set ext if it wasn't already set) jwk = Object.assign({}, jwk); // The headers should probably be empty headers.typ = jwtHeaderType; - headers.alg = 'ES256'; - if (!headers.kid) { - // alternate: see thumbprint function below - headers.jwk = { kty: jwk.kty, crv: jwk.crv, x: jwk.x, y: jwk.y }; + headers.alg = demonstratingProofOfPossessionConfiguration.jwtHeaderAlgorithm; + switch (headers.alg) { + case 'ES256': //if (!headers.kid) { + // alternate: see thumbprint function below + headers.jwk = {kty: jwk.kty, crv: jwk.crv, x: jwk.x, y: jwk.y}; + //} + break; + case 'RS256': + headers.jwk = {kty: jwk.kty, n: jwk.n, e: jwk.e, kid: headers.kid}; + break; + default: + throw new Error('Unknown or not implemented JWS algorithm'); } const jws = { @@ -81,11 +106,7 @@ JWT.sign = (jwk, headers, claims, jwtHeaderType= 'dpop+jwt') => { }; // To import as EC (ECDSA, P-256, SHA-256, ES256) - const keyType = { - name: 'ECDSA', - namedCurve: 'P-256', - hash: {name: 'ES256'} - }; + const keyType = demonstratingProofOfPossessionConfiguration.importKeyAlgorithm; // To make re-exportable as JSON (or DER/PEM) const exportable = true; @@ -95,80 +116,110 @@ JWT.sign = (jwk, headers, claims, jwtHeaderType= 'dpop+jwt') => { // Actually do the import, which comes out as an abstract key type // @ts-ignore - return window.crypto.subtle - // @ts-ignore - .importKey('jwk', jwk, keyType, exportable, privileges) - .then(function(privateKey) { - // Convert UTF-8 to Uint8Array ArrayBuffer - // @ts-ignore - const data = strToUint8(jws.protected + '.' + jws.payload); - - // The signature and hash should match the bit-entropy of the key - // https://tools.ietf.org/html/rfc7518#section-3 - const signatureType = {name: 'ECDSA', hash: {name: 'SHA-256'}}; - - return window.crypto.subtle.sign(signatureType, privateKey, data).then(function(signature) { - // returns an ArrayBuffer containing a JOSE (not X509) signature, - // which must be converted to Uint8 to be useful - // @ts-ignore - jws.signature = uint8ToUrlBase64(new Uint8Array(signature)); - - // JWT is just a "compressed", "protected" JWS - // @ts-ignore - return jws.protected + '.' + jws.payload + '.' + jws.signature; - }); - }); + const privateKey = await window.crypto.subtle.importKey('jwk', jwk, keyType, exportable, privileges); + // Convert UTF-8 to Uint8Array ArrayBuffer + // @ts-ignore + const data = strToUint8(`${jws.protected}.${jws.payload}`); + + // The signature and hash should match the bit-entropy of the key + // https://tools.ietf.org/html/rfc7518#section-3 + const signatureType = demonstratingProofOfPossessionConfiguration.signAlgorithm; + + const signature = await window.crypto.subtle.sign(signatureType, privateKey, data); + // returns an ArrayBuffer containing a JOSE (not X509) signature, + // which must be converted to Uint8 to be useful + // @ts-ignore + jws.signature = uint8ToUrlBase64(new Uint8Array(signature)); + // JWT is just a "compressed", "protected" JWS + // @ts-ignore + return `${jws.protected}.${jws.payload}.${jws.signature}`; }; +export var JWT = {sign}; + -const EC = {}; // @ts-ignore -EC.generate = function() { - const keyType = { - name: 'ECDSA', - namedCurve: 'P-256' - }; +const generate = async (generateKeyAlgorithm: RsaHashedKeyGenParams | EcKeyGenParams) => { + const keyType = generateKeyAlgorithm; const exportable = true; const privileges = ['sign', 'verify']; // @ts-ignore - return window.crypto.subtle.generateKey(keyType, exportable, privileges).then(function(key) { - // returns an abstract and opaque WebCrypto object, - // which in most cases you'll want to export as JSON to be able to save - return window.crypto.subtle.exportKey('jwk', key.privateKey); - }); + const key = await window.crypto.subtle.generateKey(keyType, exportable, privileges); + // returns an abstract and opaque WebCrypto object, + // which in most cases you'll want to export as JSON to be able to save + return await window.crypto.subtle.exportKey('jwk', key.privateKey); }; // Create a Public Key from a Private Key // // chops off the private parts // @ts-ignore -EC.neuter = function(jwk) { +const neuter = jwk => { const copy = Object.assign({}, jwk); delete copy.d; copy.key_ops = ['verify']; return copy; }; -export var JWK = {}; +const EC = { + generate, + neuter +}; // @ts-ignore -JWK.thumbprint = function(jwk) { +const thumbprint = async (jwk, digestAlgorithm: AlgorithmIdentifier) => { + let sortedPub; // lexigraphically sorted, no spaces - const sortedPub = '{"crv":"CRV","kty":"EC","x":"X","y":"Y"}' - .replace('CRV', jwk.crv) - .replace('X', jwk.x) - .replace('Y', jwk.y); - + switch (jwk.kty) { + case 'EC': + sortedPub = '{"crv":"CRV","kty":"EC","x":"X","y":"Y"}' + .replace('CRV', jwk.crv) + .replace('X', jwk.x) + .replace('Y', jwk.y); + break; + case 'RSA': + sortedPub = '{"e":"E","kty":"RSA","n":"N"}' + .replace('E', jwk.e) + .replace('N', jwk.n); + break; + default: + throw new Error('Unknown or not implemented JWK type'); + } // The hash should match the size of the key, // but we're only dealing with P-256 - return window.crypto.subtle - .digest({ name: 'SHA-256' }, strToUint8(sortedPub)) - .then(function(hash) { - return uint8ToUrlBase64(new Uint8Array(hash)); - }); -}; + const hash = await window.crypto.subtle.digest(digestAlgorithm, strToUint8(sortedPub)); + return uint8ToUrlBase64(new Uint8Array(hash)); +} + +export var JWK = {thumbprint}; + +export const generateJwkAsync = async (generateKeyAlgorithm: RsaHashedKeyGenParams | EcKeyGenParams) => { + // @ts-ignore + const jwk = await EC.generate(generateKeyAlgorithm); + console.info('Private Key:', JSON.stringify(jwk)); + // @ts-ignore + console.info('Public Key:', JSON.stringify(EC.neuter(jwk))); + return jwk; +} +export const generateJwtDemonstratingProofOfPossessionAsync = (demonstratingProofOfPossessionConfiguration: DemonstratingProofOfPossessionConfiguration) => async (jwk, method = 'POST', url: string, extrasClaims={}) => { -const guid = function () { + const claims = { + // https://www.rfc-editor.org/rfc/rfc9449.html#name-concept + jti: btoa(guid()), + htm: method, + htu: url, + iat: Math.round(Date.now() / 1000), + ...extrasClaims, + }; + // @ts-ignore + const kid = await JWK.thumbprint(jwk, demonstratingProofOfPossessionConfiguration.digestAlgorithm); + // @ts-ignore + const jwt = await JWT.sign(jwk, { kid: kid }, claims, demonstratingProofOfPossessionConfiguration) + // console.info('JWT:', jwt); + return jwt; +} + +const guid = () => { // RFC4122: The version 4 UUID is meant for generating UUIDs from truly-random or // pseudo-random numbers. // The algorithm is as follows: @@ -213,36 +264,3 @@ const guid = function () { return guidResponse; }; - - -export const generateJwkAsync = () => { - // @ts-ignore - return EC.generate().then(function(jwk) { - // console.info('Private Key:', JSON.stringify(jwk)); - // @ts-ignore - // console.info('Public Key:', JSON.stringify(EC.neuter(jwk))); - return jwk; - }); -} - -export const generateJwtDemonstratingProofOfPossessionAsync = (jwk, method = 'POST', url: string, extrasClaims={}) => { - - const claims = { - // https://www.rfc-editor.org/rfc/rfc9449.html#name-concept - jti: btoa(guid()), - htm: method, - htu: url, - iat: Math.round(Date.now() / 1000), - ...extrasClaims, - }; - // @ts-ignore - return JWK.thumbprint(jwk).then(function(kid) { - // @ts-ignore - return JWT.sign(jwk, { /*kid: kid*/ }, claims).then(function(jwt) { - // console.info('JWT:', jwt); - return jwt; - }); - }); -} - -export default EC; \ No newline at end of file diff --git a/packages/oidc-client/src/keepSession.ts b/packages/oidc-client/src/keepSession.ts new file mode 100644 index 000000000..018733877 --- /dev/null +++ b/packages/oidc-client/src/keepSession.ts @@ -0,0 +1,78 @@ +import {initWorkerAsync} from "./initWorker"; +import {autoRenewTokens} from "./renewTokens"; +import {initSession} from "./initSession"; +import {setTokens} from "./parseTokens"; +import {eventNames} from "./events"; +import Oidc from "./oidc"; + +export const tryKeepSessionAsync = async (oidc: Oidc) =>{ + + let serviceWorker; + if (oidc.tokens != null) { + return false; + } + oidc.publishEvent(eventNames.tryKeepExistingSessionAsync_begin, {}); + try { + const configuration = oidc.configuration; + const oidcServerConfiguration = await oidc.initAsync(configuration.authority, configuration.authority_configuration); + serviceWorker = await initWorkerAsync(configuration, oidc.configurationName); + if (serviceWorker) { + const { tokens } = await serviceWorker.initAsync(oidcServerConfiguration, 'tryKeepExistingSessionAsync', configuration); + if (tokens) { + serviceWorker.startKeepAliveServiceWorker(); + // @ts-ignore + oidc.tokens = tokens; + const getLoginParams = serviceWorker.getLoginParams(oidc.configurationName); + // @ts-ignore + oidc.timeoutId = autoRenewTokens(oidc, oidc.tokens.refreshToken, oidc.tokens.expiresAt, getLoginParams.extras); + const sessionState = await serviceWorker.getSessionStateAsync(); + // @ts-ignore + await oidc.startCheckSessionAsync(oidcServerConfiguration.check_session_iframe, configuration.client_id, sessionState); + oidc.publishEvent(eventNames.tryKeepExistingSessionAsync_end, { + success: true, + message: 'tokens inside ServiceWorker are valid', + }); + return true; + } + oidc.publishEvent(eventNames.tryKeepExistingSessionAsync_end, { + success: false, + message: 'no exiting session found', + }); + } else { + if (configuration.service_worker_relative_url) { + oidc.publishEvent(eventNames.service_worker_not_supported_by_browser, { + message: 'service worker is not supported by this browser', + }); + } + const session = initSession(oidc.configurationName, configuration.storage ?? sessionStorage); + const { tokens } = await session.initAsync(); + if (tokens) { + // @ts-ignore + oidc.tokens = setTokens(tokens, null, configuration.token_renew_mode); + const getLoginParams = session.getLoginParams(); + // @ts-ignore + oidc.timeoutId = autoRenewTokens(oidc, tokens.refreshToken, oidc.tokens.expiresAt, getLoginParams.extras); + const sessionState = await session.getSessionStateAsync(); + // @ts-ignore + await oidc.startCheckSessionAsync(oidcServerConfiguration.check_session_iframe, configuration.client_id, sessionState); + oidc.publishEvent(eventNames.tryKeepExistingSessionAsync_end, { + success: true, + message: 'tokens inside storage are valid', + }); + return true; + } + } + oidc.publishEvent(eventNames.tryKeepExistingSessionAsync_end, { + success: false, + message: serviceWorker ? 'service worker sessions not retrieved' : 'session storage sessions not retrieved', + }); + return false; + } catch (exception) { + console.error(exception); + if (serviceWorker) { + await serviceWorker.clearAsync(); + } + oidc.publishEvent(eventNames.tryKeepExistingSessionAsync_error, 'tokens inside ServiceWorker are invalid'); + return false; + } +} \ No newline at end of file diff --git a/packages/oidc-client/src/login.ts b/packages/oidc-client/src/login.ts index 471149e50..473c14055 100644 --- a/packages/oidc-client/src/login.ts +++ b/packages/oidc-client/src/login.ts @@ -11,6 +11,7 @@ import {getParseQueryStringFromLocation} from './route-utils.js'; import {OidcConfiguration, StringMap} from './types.js'; import {generateJwkAsync, generateJwtDemonstratingProofOfPossessionAsync} from "./jwt"; import {ILOidcLocation} from "./location"; +import Oidc from "./oidc"; // eslint-disable-next-line @typescript-eslint/ban-types export const defaultLoginAsync = (configurationName:string, configuration:OidcConfiguration, publishEvent :(string, any)=>void, initAsync:Function, oidcLocation: ILOidcLocation) => (callbackPath:string = undefined, extras:StringMap = null, isSilentSignin = false, scope:string = undefined) => { @@ -75,7 +76,7 @@ export const defaultLoginAsync = (configurationName:string, configuration:OidcCo return loginLocalAsync(); }; -export const loginCallbackAsync = (oidc) => async (isSilentSignin = false) => { +export const loginCallbackAsync = (oidc:Oidc) => async (isSilentSignin = false) => { try { oidc.publishEvent(eventNames.loginCallbackAsync_begin, {}); const configuration = oidc.configuration; @@ -148,14 +149,14 @@ export const loginCallbackAsync = (oidc) => async (isSilentSignin = false) => { const url = oidcServerConfiguration.tokenEndpoint; const headersExtras = {}; if(configuration.demonstrating_proof_of_possession) { - const jwk = await generateJwkAsync(); + const jwk = await generateJwkAsync(configuration.demonstrating_proof_of_possession_configuration.generateKeyAlgorithm); if (serviceWorker) { await serviceWorker.setDemonstratingProofOfPossessionJwkAsync(jwk); } else { const session = initSession(oidc.configurationName, configuration.storage); await session.setDemonstratingProofOfPossessionJwkAsync(jwk); } - headersExtras['DPoP'] = await generateJwtDemonstratingProofOfPossessionAsync(jwk, 'POST', url); + headersExtras['DPoP'] = await generateJwtDemonstratingProofOfPossessionAsync(configuration.demonstrating_proof_of_possession_configuration)(jwk, 'POST', url); } const tokenResponse = await performFirstTokenRequestAsync(storage)(url, diff --git a/packages/oidc-client/src/logout.ts b/packages/oidc-client/src/logout.ts index 782984f06..33116c865 100644 --- a/packages/oidc-client/src/logout.ts +++ b/packages/oidc-client/src/logout.ts @@ -4,6 +4,7 @@ import { performRevocationRequestAsync, TOKEN_TYPE } from './requests.js'; import timer from './timer.js'; import { StringMap } from './types.js'; import {ILOidcLocation} from "./location"; +import Oidc from "./oidc"; export const oidcLogoutTokens = { access_token: 'access_token', diff --git a/packages/oidc-client/src/oidc.ts b/packages/oidc-client/src/oidc.ts index eb55d301b..bbd925d0b 100644 --- a/packages/oidc-client/src/oidc.ts +++ b/packages/oidc-client/src/oidc.ts @@ -5,8 +5,13 @@ import {initSession} from './initSession.js'; import {defaultServiceWorkerUpdateRequireCallback, initWorkerAsync, sleepAsync} from './initWorker.js'; import {defaultLoginAsync, loginCallbackAsync} from './login.js'; import {destroyAsync, logoutAsync} from './logout.js'; -import {computeTimeLeft, isTokensOidcValid, setTokens, TokenRenewMode, Tokens,} from './parseTokens.js'; -import {autoRenewTokens, renewTokensAndStartTimerAsync} from './renewTokens.js'; +import {isTokensOidcValid, TokenRenewMode, Tokens,} from './parseTokens.js'; +import { + autoRenewTokens, + renewTokensAndStartTimerAsync, + synchroniseTokensStatus, + syncTokensInfoAsync +} from './renewTokens.js'; import {fetchFromIssuer, performTokenRequestAsync} from './requests.js'; import {getParseQueryStringFromLocation} from './route-utils.js'; import defaultSilentLoginAsync, {_silentLoginAsync} from './silentLogin.js'; @@ -14,9 +19,13 @@ import timer from './timer.js'; import {AuthorityConfiguration, Fetch, OidcConfiguration, StringMap} from './types.js'; import {userInfoAsync} from './user.js'; import {base64urlOfHashOfASCIIEncodingAsync} from "./crypto"; -import {generateJwtDemonstratingProofOfPossessionAsync} from "./jwt"; +import { + defaultDemonstratingProofOfPossessionConfiguration, + generateJwtDemonstratingProofOfPossessionAsync +} from "./jwt"; import {ILOidcLocation, OidcLocation} from "./location"; import {activateServiceWorker} from "./initWorkerOption"; +import {tryKeepSessionAsync} from "./keepSession"; @@ -83,11 +92,11 @@ export class Oidc { public userInfo: null; public tokens?: Tokens; public events: Array; - private timeoutId: NodeJS.Timeout; + public timeoutId: NodeJS.Timeout | number; public configurationName: string; - private checkSessionIFrame: CheckSessionIFrame; + public checkSessionIFrame: CheckSessionIFrame; private getFetch: () => Fetch; - private location: ILOidcLocation; + public location: ILOidcLocation; constructor(configuration:OidcConfiguration, configurationName = 'default', getFetch : () => Fetch, location: ILOidcLocation = new OidcLocation()) { let silent_login_uri = configuration.silent_login_uri; if (configuration.silent_redirect_uri && !configuration.silent_login_uri) { @@ -112,6 +121,7 @@ export class Oidc { logout_tokens_to_invalidate: configuration.logout_tokens_to_invalidate ?? ['access_token', 'refresh_token'], service_worker_update_require_callback, service_worker_activate: configuration.service_worker_activate ?? activateServiceWorker, + demonstrating_proof_of_possession_configuration: configuration.demonstrating_proof_of_possession_configuration ?? defaultDemonstratingProofOfPossessionConfiguration, }; this.getFetch = getFetch ?? getFetchDefault; @@ -225,78 +235,8 @@ Please checkout that you are using OIDC hook inside a { - let serviceWorker; - if (this.tokens != null) { - return false; - } - this.publishEvent(eventNames.tryKeepExistingSessionAsync_begin, {}); - try { - const configuration = this.configuration; - const oidcServerConfiguration = await this.initAsync(configuration.authority, configuration.authority_configuration); - serviceWorker = await initWorkerAsync(configuration, this.configurationName); - if (serviceWorker) { - const { tokens } = await serviceWorker.initAsync(oidcServerConfiguration, 'tryKeepExistingSessionAsync', configuration); - if (tokens) { - serviceWorker.startKeepAliveServiceWorker(); - // @ts-ignore - this.tokens = tokens; - const getLoginParams = serviceWorker.getLoginParams(this.configurationName); - // @ts-ignore - this.timeoutId = autoRenewTokens(this, this.tokens.refreshToken, this.tokens.expiresAt, getLoginParams.extras); - const sessionState = await serviceWorker.getSessionStateAsync(); - // @ts-ignore - await this.startCheckSessionAsync(oidcServerConfiguration.check_session_iframe, configuration.client_id, sessionState); - this.publishEvent(eventNames.tryKeepExistingSessionAsync_end, { - success: true, - message: 'tokens inside ServiceWorker are valid', - }); - return true; - } - this.publishEvent(eventNames.tryKeepExistingSessionAsync_end, { - success: false, - message: 'no exiting session found', - }); - } else { - if (configuration.service_worker_relative_url) { - this.publishEvent(eventNames.service_worker_not_supported_by_browser, { - message: 'service worker is not supported by this browser', - }); - } - const session = initSession(this.configurationName, configuration.storage ?? sessionStorage); - const { tokens } = await session.initAsync(); - if (tokens) { - // @ts-ignore - this.tokens = setTokens(tokens, null, configuration.token_renew_mode); - const getLoginParams = session.getLoginParams(); - // @ts-ignore - this.timeoutId = autoRenewTokens(this, tokens.refreshToken, this.tokens.expiresAt, getLoginParams.extras); - const sessionState = await session.getSessionStateAsync(); - // @ts-ignore - await this.startCheckSessionAsync(oidcServerConfiguration.check_session_iframe, configuration.client_id, sessionState); - this.publishEvent(eventNames.tryKeepExistingSessionAsync_end, { - success: true, - message: 'tokens inside storage are valid', - }); - return true; - } - } - this.publishEvent(eventNames.tryKeepExistingSessionAsync_end, { - success: false, - message: serviceWorker ? 'service worker sessions not retrieved' : 'session storage sessions not retrieved', - }); - return false; - } catch (exception) { - console.error(exception); - if (serviceWorker) { - await serviceWorker.clearAsync(); - } - this.publishEvent(eventNames.tryKeepExistingSessionAsync_error, 'tokens inside ServiceWorker are invalid'); - return false; - } - }; - - this.tryKeepExistingSessionPromise = funcAsync(); + + this.tryKeepExistingSessionPromise = tryKeepSessionAsync(this); return this.tryKeepExistingSessionPromise.then((result) => { this.tryKeepExistingSessionPromise = null; return result; @@ -349,8 +289,11 @@ Please checkout that you are using OIDC hook inside a 0) ? 'TOKEN_UPDATED_BY_ANOTHER_TAB_TOKENS_VALID' : 'TOKEN_UPDATED_BY_ANOTHER_TAB_TOKENS_INVALID'; - const nonce = await serviceWorker.getNonceAsync(); - return { tokens, status, nonce }; - } - nonce = await serviceWorker.getNonceAsync(); - } else { - const session = initSession(configurationName, configuration.storage ?? sessionStorage); - const { tokens, status } = await session.initAsync(); - if (!tokens) { - return { tokens: null, status: 'LOGOUT_FROM_ANOTHER_TAB', nonce: nullNonce }; - } else if (status === 'SESSIONS_LOST') { - return { tokens: null, status: 'SESSIONS_LOST', nonce: nullNonce }; - } else if (tokens.issuedAt !== currentTokens.issuedAt) { - const timeLeft = computeTimeLeft(configuration.refresh_time_before_tokens_expiration_in_second, tokens.expiresAt); - const status = (timeLeft > 0) ? 'TOKEN_UPDATED_BY_ANOTHER_TAB_TOKENS_VALID' : 'TOKEN_UPDATED_BY_ANOTHER_TAB_TOKENS_INVALID'; - const nonce = await session.getNonceAsync(); - return { tokens, status, nonce }; - } - nonce = await session.getNonceAsync(); - } - - const timeLeft = computeTimeLeft(configuration.refresh_time_before_tokens_expiration_in_second, currentTokens.expiresAt); - const status = (timeLeft > 0) ? 'TOKENS_VALID' : 'TOKENS_INVALID'; - if (forceRefresh) { - return { tokens: currentTokens, status: 'FORCE_REFRESH', nonce }; - } - return { tokens: currentTokens, status, nonce }; + return await generateJwtDemonstratingProofOfPossessionAsync(configuration.demonstrating_proof_of_possession_configuration)(jwk, method, url, claimsExtras); } loginCallbackWithAutoTokensRenewPromise:Promise = null; diff --git a/packages/oidc-client/src/parseTokens.ts b/packages/oidc-client/src/parseTokens.ts index 0df18cb16..d79f35846 100644 --- a/packages/oidc-client/src/parseTokens.ts +++ b/packages/oidc-client/src/parseTokens.ts @@ -20,7 +20,7 @@ const extractTokenPayload = (token:string) => { return null; }; -const countLetter = (str, find) => { +const countLetter = (str : string, find) => { return (str.split(find)).length - 1; }; diff --git a/packages/oidc-client/src/renewTokens.ts b/packages/oidc-client/src/renewTokens.ts index 8d80ebb5b..db7fd883b 100644 --- a/packages/oidc-client/src/renewTokens.ts +++ b/packages/oidc-client/src/renewTokens.ts @@ -3,9 +3,9 @@ import {initWorkerAsync} from './initWorker.js'; import Oidc from './oidc.js'; import {computeTimeLeft, setTokens} from './parseTokens.js'; import timer from './timer.js'; -import {StringMap} from './types.js'; +import {OidcConfiguration, StringMap} from './types.js'; -async function syncTokens(oidc, refreshToken, forceRefresh: boolean, extras: StringMap) { +async function syncTokens(oidc:Oidc, refreshToken, forceRefresh: boolean, extras: StringMap) { const updateTokens = (tokens) => { oidc.tokens = tokens; }; @@ -72,7 +72,7 @@ export async function renewTokensAndStartTimerAsync(oidc, refreshToken, forceRef return oidc.tokens; } -export const autoRenewTokens = (oidc, refreshToken, expiresAt, extras:StringMap = null) => { +export const autoRenewTokens = (oidc:Oidc, refreshToken, expiresAt, extras:StringMap = null) => { const refreshTimeBeforeTokensExpirationInSecond = oidc.configuration.refresh_time_before_tokens_expiration_in_second; return timer.setTimeout(async () => { const timeLeft = computeTimeLeft(refreshTimeBeforeTokensExpirationInSecond, expiresAt); @@ -81,3 +81,61 @@ export const autoRenewTokens = (oidc, refreshToken, expiresAt, extras:StringMap await renewTokensAndStartTimerAsync(oidc, refreshToken, false, extras); }, 1000); }; + +export const synchroniseTokensStatus ={ + 'SESSION_LOST': 'SESSION_LOST', + 'NOT_CONNECTED':'NOT_CONNECTED', + 'TOKENS_VALID':'TOKENS_VALID', + 'TOKEN_UPDATED_BY_ANOTHER_TAB_TOKENS_VALID': 'TOKEN_UPDATED_BY_ANOTHER_TAB_TOKENS_VALID', + 'LOGOUT_FROM_ANOTHER_TAB': 'LOGOUT_FROM_ANOTHER_TAB', + 'REQUIRE_SYNC_TOKENS': 'REQUIRE_SYNC_TOKENS' +}; + +export const syncTokensInfoAsync = (oidc: Oidc) => async (configuration:OidcConfiguration, configurationName: string, currentTokens, forceRefresh = false) => { + // Service Worker can be killed by the browser (when it wants,for example after 10 seconds of inactivity, so we retreieve the session if it happen) + // const configuration = this.configuration; + const nullNonce = { nonce: null }; + if (!currentTokens) { + return { tokens: null, status: 'NOT_CONNECTED', nonce: nullNonce }; + } + let nonce = nullNonce; + const oidcServerConfiguration = await oidc.initAsync(configuration.authority, configuration.authority_configuration); + const serviceWorker = await initWorkerAsync(configuration, configurationName); + if (serviceWorker) { + const { status, tokens } = await serviceWorker.initAsync(oidcServerConfiguration, 'syncTokensAsync', configuration); + if (status === 'LOGGED_OUT') { + return { tokens: null, status: 'LOGOUT_FROM_ANOTHER_TAB', nonce: nullNonce }; + } else if (status === 'SESSIONS_LOST') { + return { tokens: null, status: 'SESSIONS_LOST', nonce: nullNonce }; + } else if (!status || !tokens) { + return { tokens: null, status: 'REQUIRE_SYNC_TOKENS', nonce: nullNonce }; + } else if (tokens.issuedAt !== currentTokens.issuedAt) { + const timeLeft = computeTimeLeft(configuration.refresh_time_before_tokens_expiration_in_second, tokens.expiresAt); + const status = (timeLeft > 0) ? 'TOKEN_UPDATED_BY_ANOTHER_TAB_TOKENS_VALID' : 'TOKEN_UPDATED_BY_ANOTHER_TAB_TOKENS_INVALID'; + const nonce = await serviceWorker.getNonceAsync(); + return { tokens, status, nonce }; + } + nonce = await serviceWorker.getNonceAsync(); + } else { + const session = initSession(configurationName, configuration.storage ?? sessionStorage); + const { tokens, status } = await session.initAsync(); + if (!tokens) { + return { tokens: null, status: 'LOGOUT_FROM_ANOTHER_TAB', nonce: nullNonce }; + } else if (status === 'SESSIONS_LOST') { + return { tokens: null, status: 'SESSIONS_LOST', nonce: nullNonce }; + } else if (tokens.issuedAt !== currentTokens.issuedAt) { + const timeLeft = computeTimeLeft(configuration.refresh_time_before_tokens_expiration_in_second, tokens.expiresAt); + const status = (timeLeft > 0) ? 'TOKEN_UPDATED_BY_ANOTHER_TAB_TOKENS_VALID' : 'TOKEN_UPDATED_BY_ANOTHER_TAB_TOKENS_INVALID'; + const nonce = await session.getNonceAsync(); + return { tokens, status, nonce }; + } + nonce = await session.getNonceAsync(); + } + + const timeLeft = computeTimeLeft(configuration.refresh_time_before_tokens_expiration_in_second, currentTokens.expiresAt); + const status = (timeLeft > 0) ? 'TOKENS_VALID' : 'TOKENS_INVALID'; + if (forceRefresh) { + return { tokens: currentTokens, status: 'FORCE_REFRESH', nonce }; + } + return { tokens: currentTokens, status, nonce }; +} \ No newline at end of file diff --git a/packages/oidc-client/src/requests.ts b/packages/oidc-client/src/requests.ts index 176a25c63..98d1272ae 100644 --- a/packages/oidc-client/src/requests.ts +++ b/packages/oidc-client/src/requests.ts @@ -27,7 +27,7 @@ export const fetchFromIssuer = (fetch) => async (openIdIssuerUrl: string, timeCa return new OidcAuthorizationServiceConfiguration(result); }; -const internalFetch = (fetch) => async (url, headers = {}, timeoutMs = 10000, numberRetry = 0) : Promise => { +const internalFetch = (fetch) => async (url:string, headers = {}, timeoutMs = 10000, numberRetry = 0) : Promise => { let response; try { const controller = new AbortController(); diff --git a/packages/oidc-client/src/types.ts b/packages/oidc-client/src/types.ts index 54180c818..c823c772e 100644 --- a/packages/oidc-client/src/types.ts +++ b/packages/oidc-client/src/types.ts @@ -33,8 +33,17 @@ export type OidcConfiguration = { token_renew_mode?: string; logout_tokens_to_invalidate?:Array; demonstrating_proof_of_possession?:boolean; + demonstrating_proof_of_possession_configuration?: DemonstratingProofOfPossessionConfiguration; }; +export interface DemonstratingProofOfPossessionConfiguration { + generateKeyAlgorithm: RsaHashedKeyGenParams | EcKeyGenParams, + digestAlgorithm: AlgorithmIdentifier, + importKeyAlgorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, + signAlgorithm: AlgorithmIdentifier | RsaPssParams | EcdsaParams, + jwtHeaderAlgorithm: string +} + export interface StringMap { [key: string]: string; } diff --git a/packages/oidc-client/src/user.ts b/packages/oidc-client/src/user.ts index 5068c6435..b523bab30 100644 --- a/packages/oidc-client/src/user.ts +++ b/packages/oidc-client/src/user.ts @@ -1,7 +1,8 @@ import { sleepAsync } from './initWorker.js'; import { isTokensValid } from './parseTokens.js'; +import Oidc from "./oidc"; -export const userInfoAsync = (oidc) => async (noCache = false) => { +export const userInfoAsync = (oidc:Oidc) => async (noCache = false) => { if (oidc.userInfo != null && !noCache) { return oidc.userInfo; } diff --git a/packages/react-oidc/README.md b/packages/react-oidc/README.md index 8abaddeb2..00c30601b 100644 --- a/packages/react-oidc/README.md +++ b/packages/react-oidc/README.md @@ -202,11 +202,41 @@ const configuration = { onLogoutFromSameTab: Function, // Optional, can be set to override the default behavior, this function is triggered when a user is logged out from the same tab when session_monitor is active token_renew_mode: String, // Optional, update tokens based on the selected token(s) lifetime: "access_token_or_id_token_invalid" (default), "access_token_invalid", "id_token_invalid" logout_tokens_to_invalidate: Array, // Optional tokens to invalidate during logout, default: ['access_token', 'refresh_token'] - demonstrating_proof_of_possession: Boolean, // Optional, default is false, if true, the the Demonstrating Proof of Possession will be activated //https://www.rfc-editor.org/rfc/rfc9449.html#name-protected-resource-access location: ILOidcLocation, // Optional, default is window.location, you can inject your own location object respecting the ILOidcLocation interface - }.isRequired, + demonstrating_proof_of_possession: Boolean, // Optional, default is false, if true, the the Demonstrating Proof of Possession will be activated //https://www.rfc-editor.org/rfc/rfc9449.html#name-protected-resource-access + demonstrating_proof_of_possession_configuration: DemonstratingProofOfPossessionConfiguration // Optional, more details bellow + }, }; +demonstrating_proof_of_possession_configuration: DemonstratingProofOfPossessionConfiguration // Optional, more details bellow +}; + + +interface DemonstratingProofOfPossessionConfiguration { + generateKeyAlgorithm: RsaHashedKeyGenParams | EcKeyGenParams, + digestAlgorithm: AlgorithmIdentifier, + importKeyAlgorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, + signAlgorithm: AlgorithmIdentifier | RsaPssParams | EcdsaParams, + jwtHeaderAlgorithm: string +}; + +// default value of demonstrating_proof_of_possession_configuration +const defaultDemonstratingProofOfPossessionConfiguration: DemonstratingProofOfPossessionConfiguration ={ + importKeyAlgorithm: { + name: 'ECDSA', + namedCurve: 'P-256', + hash: {name: 'ES256'} + }, + signAlgorithm: {name: 'ECDSA', hash: {name: 'SHA-256'}}, + generateKeyAlgorithm: { + name: 'ECDSA', + namedCurve: 'P-256' + }, + digestAlgorithm: { name: 'SHA-256' }, + jwtHeaderAlgorithm : 'ES256' +}; + + ``` ## How to consume @@ -590,6 +620,8 @@ More information about OIDC - [French : Augmentez la sécurité et la simplicité de votre Système d’Information OpenID Connect](https://medium.com/just-tech-it-now/augmentez-la-s%C3%A9curit%C3%A9-et-la-simplicit%C3%A9-de-votre-syst%C3%A8me-dinformation-avec-oauth-2-0-cf0732d71284) - [English : Increase the security and simplicity of your information system with openid connect](https://medium.com/just-tech-it-now/increase-the-security-and-simplicity-of-your-information-system-with-openid-connect-fa8c26b99d6d) +- [English: youtube OIDC](https://www.youtube.com/watch?v=frIJfavZkUE&list=PL8EMdIH6Mzxy2kHtsVOEWqNz-OaM_D_fB&index=1) +- [French: youtube OIDC](https://www.youtube.com/watch?v=H-mLMGzQ_y0&list=PL8EMdIH6Mzxy2kHtsVOEWqNz-OaM_D_fB&index=2) ## NextJS diff --git a/readme.md b/readme.md index 7efd04620..f257e5d4d 100644 --- a/readme.md +++ b/readme.md @@ -160,7 +160,8 @@ More information about OIDC : - [French : Augmentez la sécurité et la simplicité de votre Système d’Information OpenID Connect](https://medium.com/just-tech-it-now/augmentez-la-s%C3%A9curit%C3%A9-et-la-simplicit%C3%A9-de-votre-syst%C3%A8me-dinformation-avec-oauth-2-0-cf0732d71284) - [English : Increase the security and simplicity of your information system with OpenID Connect](https://medium.com/just-tech-it-now/increase-the-security-and-simplicity-of-your-information-system-with-openid-connect-fa8c26b99d6d) - +- [English: youtube OIDC](https://www.youtube.com/watch?v=frIJfavZkUE&list=PL8EMdIH6Mzxy2kHtsVOEWqNz-OaM_D_fB&index=1) +- [French: youtube OIDC](https://www.youtube.com/watch?v=H-mLMGzQ_y0&list=PL8EMdIH6Mzxy2kHtsVOEWqNz-OaM_D_fB&index=2) ## FAQ - Frequented Asked Question [`FAQ`](./FAQ.md) From df2da6e813394590ea162b7590b1fea7b7c181b7 Mon Sep 17 00:00:00 2001 From: GitHub Date: Fri, 26 Jan 2024 11:56:45 +0000 Subject: [PATCH 153/440] [skip ci] Update to version 7.14.0 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 5aa9cf552..88cf3a420 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.13.16", + "version": "7.14.0", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 52e8c9412..1ebfb116d 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.13.16'; +export default '7.14.0'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 55a894189..58cd15358 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.13.16", + "version": "7.14.0", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 52e8c9412..1ebfb116d 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.13.16'; +export default '7.14.0'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 4beaeb130..5fc612622 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.13.16", + "version": "7.14.0", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From d4ed29cf0d9562cb221bab11d00eb5860fed8eab Mon Sep 17 00:00:00 2001 From: GitHub Date: Fri, 26 Jan 2024 11:56:46 +0000 Subject: [PATCH 154/440] [skip ci] Generate changelog to version 7.14.0 --- CHANGELOG.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5f2755cb5..7932fc6b8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog -## 7.13.16 +## 7.14.0 + +- [b0510eb](https://github.com/AxaFrance/oidc-client/commit/b0510eb8d7170e8e142cb2d9bec01f41f610ed51) - feat(oidc): add DPOP configuration (#1259) (release), 2024-01-26 by *Guillaume Chervet* + + +## v7.13.16 - [f2310bc](https://github.com/AxaFrance/oidc-client/commit/f2310bc917898b779a40edecf3dd73c21ec32b47) - fix(oidc): parseJwt fails for some JWT because of wrong use of replace (release) (#1269), 2024-01-25 by *Guillaume Chervet* @@ -314,8 +319,3 @@ - [48d9db2](https://github.com/AxaFrance/oidc-client/commit/48d9db2f2cffbe74a6fd32b5771f5df0b8314b7f) - test release, 2023-07-28 by *Guillaume Chervet* -## v6.26.4 - -- [9c7a143](https://github.com/AxaFrance/oidc-client/commit/9c7a143797cffff1044c13787c6ceaf690fa4c87) - fix build (release), 2023-07-28 by *Guillaume Chervet* - - From 15eb2592d9582cb43798a5d7fc988b3c349e5b43 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Fri, 26 Jan 2024 20:18:38 +0100 Subject: [PATCH 155/440] doc(oidc): Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 7efd04620..038c38352 100644 --- a/README.md +++ b/README.md @@ -160,6 +160,8 @@ More information about OIDC : - [French : Augmentez la sécurité et la simplicité de votre Système d’Information OpenID Connect](https://medium.com/just-tech-it-now/augmentez-la-s%C3%A9curit%C3%A9-et-la-simplicit%C3%A9-de-votre-syst%C3%A8me-dinformation-avec-oauth-2-0-cf0732d71284) - [English : Increase the security and simplicity of your information system with OpenID Connect](https://medium.com/just-tech-it-now/increase-the-security-and-simplicity-of-your-information-system-with-openid-connect-fa8c26b99d6d) +- [English: youtube react-oidc introduction](https://www.youtube.com/watch?v=frIJfavZkUE&list=PL8EMdIH6Mzxy2kHtsVOEWqNz-OaM_D_fB&index=1) +- [French: youtube react-oidc introduction](https://www.youtube.com/watch?v=H-mLMGzQ_y0&list=PL8EMdIH6Mzxy2kHtsVOEWqNz-OaM_D_fB&index=2) ## FAQ From 14ccbeb83f1d7e790b496e571d424f615a39b43f Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Sun, 28 Jan 2024 15:01:44 +0100 Subject: [PATCH 156/440] fix(oidc): demo and remove console.log --- examples/react-oidc-demo/src/FetchUser.tsx | 2 +- examples/react-oidc-demo/src/MultiAuth.tsx | 7 ++++--- packages/oidc-client/src/jwt.ts | 4 ++-- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/examples/react-oidc-demo/src/FetchUser.tsx b/examples/react-oidc-demo/src/FetchUser.tsx index cc4795aa5..e9c5206fb 100644 --- a/examples/react-oidc-demo/src/FetchUser.tsx +++ b/examples/react-oidc-demo/src/FetchUser.tsx @@ -48,5 +48,5 @@ export const FetchUserHoc = () => { const { fetch } = useOidcFetch(window.fetch, props.configurationName); - return ; + return ; }; diff --git a/examples/react-oidc-demo/src/MultiAuth.tsx b/examples/react-oidc-demo/src/MultiAuth.tsx index 77e83b461..3da6b0d46 100644 --- a/examples/react-oidc-demo/src/MultiAuth.tsx +++ b/examples/react-oidc-demo/src/MultiAuth.tsx @@ -17,6 +17,7 @@ const fetchWithLogs = (fetch: Fetch) => async (...params: Parameters) => }; const MultiAuth = ({ configurationName, handleConfigurationChange }) => { + console.log('MultiAuth', configurationName); const { login, logout, isAuthenticated } = useOidc(configurationName); const { isAuthenticated: isAuthenticatedDefault } = useOidc('default'); const [fname, setFname] = useState(''); @@ -80,8 +81,8 @@ export const MultiAuthContainer = () => { const [isSessionLost, setIsSessionLost] = useState(false); const [configurationName, setConfigurationName] = useState(sessionStorage.configurationName); const [events, dispatch] = useReducer(reducer, []); - const callBack = window.location.origin + '/multi-auth/authentification/callback2'; - const silent_redirect_uri = window.location.origin + '/multi-auth/authentification/silent-callback2'; + const callBack = window.location.origin + '/multi-auth/authentification/callback'; + const silent_redirect_uri = window.location.origin + '/multi-auth/authentification/silent-callback'; const configurations = { config_classic: { ...configurationIdentityServer, @@ -155,7 +156,7 @@ export const MultiAuthContainer = () => { // console.log(`oidc:${configurationName}:${eventName}`, data); dispatch({ type: 'event', data: { name: `oidc:${configurationName}:${eventName}`, data } }); }; - + console.log('MultiAuthContainer', configurationName); return ( <> { // @ts-ignore const jwk = await EC.generate(generateKeyAlgorithm); - console.info('Private Key:', JSON.stringify(jwk)); + // console.info('Private Key:', JSON.stringify(jwk)); // @ts-ignore - console.info('Public Key:', JSON.stringify(EC.neuter(jwk))); + // console.info('Public Key:', JSON.stringify(EC.neuter(jwk))); return jwk; } From 0fe53a6b870c13c71330806a045896ea1e0a57e2 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Sun, 28 Jan 2024 15:04:21 +0100 Subject: [PATCH 157/440] fix(oidc): remove console.log (release) --- .gitignore | 1 + readme.md | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 10d5cede9..204bffd0b 100644 --- a/.gitignore +++ b/.gitignore @@ -26,3 +26,4 @@ examples/**/build/ **/public/*.d.ts /public/* +/Folder.DotSettings.user diff --git a/readme.md b/readme.md index f257e5d4d..038c38352 100644 --- a/readme.md +++ b/readme.md @@ -160,8 +160,9 @@ More information about OIDC : - [French : Augmentez la sécurité et la simplicité de votre Système d’Information OpenID Connect](https://medium.com/just-tech-it-now/augmentez-la-s%C3%A9curit%C3%A9-et-la-simplicit%C3%A9-de-votre-syst%C3%A8me-dinformation-avec-oauth-2-0-cf0732d71284) - [English : Increase the security and simplicity of your information system with OpenID Connect](https://medium.com/just-tech-it-now/increase-the-security-and-simplicity-of-your-information-system-with-openid-connect-fa8c26b99d6d) -- [English: youtube OIDC](https://www.youtube.com/watch?v=frIJfavZkUE&list=PL8EMdIH6Mzxy2kHtsVOEWqNz-OaM_D_fB&index=1) -- [French: youtube OIDC](https://www.youtube.com/watch?v=H-mLMGzQ_y0&list=PL8EMdIH6Mzxy2kHtsVOEWqNz-OaM_D_fB&index=2) +- [English: youtube react-oidc introduction](https://www.youtube.com/watch?v=frIJfavZkUE&list=PL8EMdIH6Mzxy2kHtsVOEWqNz-OaM_D_fB&index=1) +- [French: youtube react-oidc introduction](https://www.youtube.com/watch?v=H-mLMGzQ_y0&list=PL8EMdIH6Mzxy2kHtsVOEWqNz-OaM_D_fB&index=2) + ## FAQ - Frequented Asked Question [`FAQ`](./FAQ.md) From 2647f69401573082ae7458b0b128e7c4db0230b6 Mon Sep 17 00:00:00 2001 From: GitHub Date: Sun, 28 Jan 2024 14:08:43 +0000 Subject: [PATCH 158/440] [skip ci] Update to version 7.14.1 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 88cf3a420..392aa687c 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.14.0", + "version": "7.14.1", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 1ebfb116d..73a1d26d3 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.14.0'; +export default '7.14.1'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 58cd15358..bfae84a8a 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.14.0", + "version": "7.14.1", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 1ebfb116d..73a1d26d3 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.14.0'; +export default '7.14.1'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 5fc612622..ded6cc0ff 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.14.0", + "version": "7.14.1", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 7749c5dd27554841cf3d44165e26fad7bc2388ea Mon Sep 17 00:00:00 2001 From: GitHub Date: Sun, 28 Jan 2024 14:08:44 +0000 Subject: [PATCH 159/440] [skip ci] Generate changelog to version 7.14.1 --- CHANGELOG.md | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7932fc6b8..91f60afd4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,14 @@ # Changelog -## 7.14.0 +## 7.14.1 + +- [0fe53a6](https://github.com/AxaFrance/oidc-client/commit/0fe53a6b870c13c71330806a045896ea1e0a57e2) - fix(oidc): remove console.log (release), 2024-01-28 by *Guillaume Chervet* +- [b23d6a7](https://github.com/AxaFrance/oidc-client/commit/b23d6a7e1fc04ce43f489ac8977de9fe5affff73) - Merge branch 'main' of https://github.com/AxaFrance/oidc-client, 2024-01-28 by *Guillaume Chervet* +- [14ccbeb](https://github.com/AxaFrance/oidc-client/commit/14ccbeb83f1d7e790b496e571d424f615a39b43f) - fix(oidc): demo and remove console.log, 2024-01-28 by *Guillaume Chervet* +- [15eb259](https://github.com/AxaFrance/oidc-client/commit/15eb2592d9582cb43798a5d7fc988b3c349e5b43) - doc(oidc): Update README.md, 2024-01-26 by *Guillaume Chervet* + + +## v7.14.0 - [b0510eb](https://github.com/AxaFrance/oidc-client/commit/b0510eb8d7170e8e142cb2d9bec01f41f610ed51) - feat(oidc): add DPOP configuration (#1259) (release), 2024-01-26 by *Guillaume Chervet* @@ -314,8 +322,3 @@ - [dab3662](https://github.com/AxaFrance/oidc-client/commit/dab36629bdebed5a3f085d606f313c7a12644e77) - fix build (release), 2023-07-28 by *Guillaume Chervet* -## v6.26.5 - -- [48d9db2](https://github.com/AxaFrance/oidc-client/commit/48d9db2f2cffbe74a6fd32b5771f5df0b8314b7f) - test release, 2023-07-28 by *Guillaume Chervet* - - From 1676881f1db53cff6652ee7fe9658a437682231f Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Mon, 29 Jan 2024 19:30:03 +0100 Subject: [PATCH 160/440] feat(oidc): idToken can be null on a refresh (release) (#1271) --- .../src/utils/__tests__/testHelper.ts | 7 ++ .../src/utils/__tests__/tokens.spec.ts | 28 +++++++ .../src/utils/tokens.ts | 20 +++-- packages/oidc-client/src/parseTokens.spec.ts | 78 ++++++++++++++++++- packages/oidc-client/src/parseTokens.ts | 15 +++- 5 files changed, 139 insertions(+), 9 deletions(-) diff --git a/packages/oidc-client-service-worker/src/utils/__tests__/testHelper.ts b/packages/oidc-client-service-worker/src/utils/__tests__/testHelper.ts index 0e29f7476..39ce16af3 100644 --- a/packages/oidc-client-service-worker/src/utils/__tests__/testHelper.ts +++ b/packages/oidc-client-service-worker/src/utils/__tests__/testHelper.ts @@ -188,6 +188,13 @@ class OidcConfigBuilder { return this; } + public withOidcConfiguration( + oidcConfiguration: OidcConfiguration, + ): OidcConfigBuilder { + this.oidcConfig.oidcConfiguration = oidcConfiguration; + return this; + } + public build() { return this.oidcConfig; } diff --git a/packages/oidc-client-service-worker/src/utils/__tests__/tokens.spec.ts b/packages/oidc-client-service-worker/src/utils/__tests__/tokens.spec.ts index b8559154b..0cfcb6053 100644 --- a/packages/oidc-client-service-worker/src/utils/__tests__/tokens.spec.ts +++ b/packages/oidc-client-service-worker/src/utils/__tests__/tokens.spec.ts @@ -104,5 +104,33 @@ describe('tokens', () => { expect(secureTokens.access_token).toBe(expectedAccessToken); expect(typeof secureTokens.expiresAt).toBe("number"); }); + + it('should reuse old id_token', () => { + const token = new TokenBuilder().withNonExpiredToken().build(); + // @ts-ignore + delete token.id_token; + // @ts-ignore + delete token.idTokenPayload; + const oidcConfiguration = new OidcConfigBuilder() + .withOidcConfiguration({token_renew_mode: "access_token_invalid"}) + .withOidcServerConfiguration({issuer: "", + authorizationEndpoint:"", + revocationEndpoint:"", + tokenEndpoint:"", + userInfoEndpoint:"" }) + .withTokens(new TokenBuilder() + .withNonExpiredToken() + .withIdToken("old_id_token") + .withIdTokenPayload({ + iss: oidcServerConfig.issuer, + exp: 0, + iat: 0, + nonce: null, + }) + .build()).build(); + const secureTokens = _hideTokens(token, oidcConfiguration, 'test'); + expect(secureTokens.id_token).toBe("old_id_token"); + + }); }); }); diff --git a/packages/oidc-client-service-worker/src/utils/tokens.ts b/packages/oidc-client-service-worker/src/utils/tokens.ts index 190416262..8d34f2637 100644 --- a/packages/oidc-client-service-worker/src/utils/tokens.ts +++ b/packages/oidc-client-service-worker/src/utils/tokens.ts @@ -133,9 +133,19 @@ function _hideTokens(tokens: Tokens, currentDatabaseElement: OidcConfig, configu } tokens.accessTokenPayload = accessTokenPayload; + // When id_token is not rotated we reuse old id_token + const oldTokens = currentDatabaseElement.tokens; + let id_token: string | null; + if (oldTokens != null && 'id_token' in oldTokens && !('id_token' in tokens)) { + id_token = oldTokens.id_token; + } else { + id_token = tokens.id_token; + } + tokens.id_token = id_token; + let _idTokenPayload = null; - if (tokens.id_token) { - _idTokenPayload = extractTokenPayload(tokens.id_token); + if (id_token) { + _idTokenPayload = extractTokenPayload(id_token); tokens.idTokenPayload = { ..._idTokenPayload }; if (_idTokenPayload.nonce && currentDatabaseElement.nonce != null) { const keyNonce = @@ -193,11 +203,11 @@ function _hideTokens(tokens: Tokens, currentDatabaseElement: OidcConfig, configu // When refresh_token is not rotated we reuse ald refresh_token if ( - currentDatabaseElement.tokens != null && - 'refresh_token' in currentDatabaseElement.tokens && + oldTokens != null && + 'refresh_token' in oldTokens && !('refresh_token' in tokens) ) { - const refreshToken = currentDatabaseElement.tokens.refresh_token; + const refreshToken = oldTokens.refresh_token; currentDatabaseElement.tokens = { ...tokens, diff --git a/packages/oidc-client/src/parseTokens.spec.ts b/packages/oidc-client/src/parseTokens.spec.ts index e520d7b4a..4d2c2e169 100644 --- a/packages/oidc-client/src/parseTokens.spec.ts +++ b/packages/oidc-client/src/parseTokens.spec.ts @@ -1,6 +1,13 @@ import { describe, expect,it } from 'vitest'; -import { getValidTokenAsync, isTokensOidcValid, parseJwt, parseOriginalTokens} from "./parseTokens"; +import { + getValidTokenAsync, + isTokensOidcValid, + parseJwt, + parseOriginalTokens, + setTokens, + TokenRenewMode +} from "./parseTokens"; describe('ParseTokens test Suite', () => { const currentTimeUnixSecond = new Date().getTime() / 1000; @@ -94,5 +101,74 @@ describe('ParseTokens test Suite', () => { expect(isValid).toEqual(expectIsValidToken); }); }); + + + const testTokens = { + "id_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6IkMyNTJGOUNBQjc3Q0MxNTQwNTBFMTg1NTk5MjJCMTJGIiwidHlwIjoiSldUIn0.eyJpc3MiOiJodHRwczovL2RlbW8uZHVlbmRlc29mdHdhcmUuY29tIiwibmJmIjoxNzA2NTQwMjU4LCJpYXQiOjE3MDY1NDAyNTgsImV4cCI6MTcwNjU0MDU1OCwiYXVkIjoiaW50ZXJhY3RpdmUucHVibGljLnNob3J0IiwiYW1yIjpbInB3ZCJdLCJub25jZSI6IlA5dEo5eGxHZE05NiIsImF0X2hhc2giOiJOWnZhR0dZYlhoelRNWlVxUjlNYk5nIiwic2lkIjoiMzQ1QUJDODhFNkU1MEFGMTI3M0VENDE1QTdGRDZBMjMiLCJzdWIiOiIyIiwiYXV0aF90aW1lIjoxNzA2NTMxNjY1LCJpZHAiOiJsb2NhbCJ9.MVtXrCkshJFBplbOw7az3fdWB1Ewqixb2fuHXpx7KbGWUY6qgT9ijlldeD-ZV7JGA958AKqmGwfNjovAJE89pQsCFKkNft6fRO8eM9qKif6eRUqMMPiQrawARpuJOs1NvJ-SyeRs_jSNLwPVzI8NlZyFWHoyQ4DZnFoQLSQMy5UaHaCtWhC_FrWMFLQvbE3RuMlnJGzrsoMewFyVAZctMCTE1MOI3Akvhe1IGc1hmxzwNg3OkxwzHLinsDlDw8UVn8vX5iNI18GFuyTuJlawOq5OHHJH3LdKQD_RbwRF-9BFjKRZfWzGpdpxTD2lIPf1Irc3U_R6xCNuXYUwzrHp6Q", + "access_token": "ACCESS_TOKEN_SECURED_BY_OIDC_SERVICE_WORKER_default", + "expires_in": 75, + "token_type": "Bearer", + "refresh_token": "REFRESH_TOKEN_SECURED_BY_OIDC_SERVICE_WORKER_default", + "scope": "openid profile email api offline_access", + "issued_at": 1706540256.465, + "accessTokenPayload": { + "iss": "https://demo.duendesoftware.com", + "nbf": 1706540258, + "iat": 1706540258, + "exp": 1706540333, + "aud": "api", + "scope": [ + "openid", + "profile", + "email", + "api", + "offline_access" + ], + "amr": [ + "pwd" + ], + "client_id": "interactive.public.short", + "sub": "2", + "auth_time": 1706531665, + "idp": "local", + "name": "Bob Smith", + "email": "BobSmith@email.com", + "sid": "345ABC88E6E50AF1273ED415A7FD6A23", + "jti": "E3CF3853D77AC90ABC774266CD381C43" + }, + "idTokenPayload": { + "iss": "https://demo.duendesoftware.com", + "nbf": 1706540258, + "iat": 1706540258, + "exp": 1706540558, + "aud": "interactive.public.short", + "amr": [ + "pwd" + ], + "nonce": "NONCE_SECURED_BY_OIDC_SERVICE_WORKER_default", + "at_hash": "NZvaGGYbXhzTMZUqR9MbNg", + "sid": "345ABC88E6E50AF1273ED415A7FD6A23", + "sub": "2", + "auth_time": 1706531665, + "idp": "local" + }, + "expiresAt": 1706540333 + } + + describe.each([ + [testTokens, null, TokenRenewMode.access_token_invalid, () => {}], + [testTokens, {testTokens, idTokenPayload: undefined, id_token: undefined}, TokenRenewMode.access_token_invalid, (newTokens:any) => { + expect(newTokens.idTokenPayload).toBeDefined(); + expect(newTokens.id_token).toBeDefined(); + }], + ])('setTokens', (tokens, oldTokens, tokenRenewMode, validationFunction) => { + it('should setTokens return updatedTokens' , async () => { + const oidc = { + idTokenPayload, + }; + const newTokens = setTokens(tokens, oldTokens, tokenRenewMode); + validationFunction(newTokens) + }); + }); }); diff --git a/packages/oidc-client/src/parseTokens.ts b/packages/oidc-client/src/parseTokens.ts index d79f35846..0d745320d 100644 --- a/packages/oidc-client/src/parseTokens.ts +++ b/packages/oidc-client/src/parseTokens.ts @@ -74,7 +74,16 @@ export const setTokens = (tokens, oldTokens = null, tokenRenewMode: string):Toke } else { accessTokenPayload = extractTokenPayload(tokens.accessToken); } - const _idTokenPayload = tokens.idTokenPayload ? tokens.idTokenPayload : extractTokenPayload(tokens.idToken); + + // When id_token is not rotated we reuse old id_token + let idToken: string; + if (oldTokens != null && 'idToken' in oldTokens && !('idToken' in tokens)) { + idToken = oldTokens.idToken; + } else { + idToken = tokens.idToken; + } + + const _idTokenPayload = tokens.idTokenPayload ? tokens.idTokenPayload : extractTokenPayload(idToken); const idTokenExpireAt = (_idTokenPayload && _idTokenPayload.exp) ? _idTokenPayload.exp : Number.MAX_VALUE; const accessTokenExpiresAt = (accessTokenPayload && accessTokenPayload.exp) ? accessTokenPayload.exp : tokens.issuedAt + expireIn; @@ -96,8 +105,8 @@ export const setTokens = (tokens, oldTokens = null, tokenRenewMode: string):Toke } } - const newTokens = { ...tokens, idTokenPayload: _idTokenPayload, accessTokenPayload, expiresAt }; - // When refresh_token is not rotated we reuse ald refresh_token + const newTokens = { ...tokens, idTokenPayload: _idTokenPayload, accessTokenPayload, expiresAt, idToken }; + // When refresh_token is not rotated we reuse old refresh_token if (oldTokens != null && 'refreshToken' in oldTokens && !('refreshToken' in tokens)) { const refreshToken = oldTokens.refreshToken; return { ...newTokens, refreshToken }; From 5094e36c1435684c5863e8d27eca59093aaec7b7 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Tue, 30 Jan 2024 23:00:36 +0100 Subject: [PATCH 161/440] fix(service-worker): unit test broken (release) --- examples/react-oidc-demo/index.html | 2 +- .../src/utils/__tests__/tokens.spec.ts | 4 ++-- .../oidc-client-service-worker/src/utils/tokens.ts | 12 ++++++------ 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/examples/react-oidc-demo/index.html b/examples/react-oidc-demo/index.html index 0bb0aea6f..00be91c24 100644 --- a/examples/react-oidc-demo/index.html +++ b/examples/react-oidc-demo/index.html @@ -13,6 +13,6 @@
- + diff --git a/packages/oidc-client-service-worker/src/utils/__tests__/tokens.spec.ts b/packages/oidc-client-service-worker/src/utils/__tests__/tokens.spec.ts index 0cfcb6053..d4853fd9d 100644 --- a/packages/oidc-client-service-worker/src/utils/__tests__/tokens.spec.ts +++ b/packages/oidc-client-service-worker/src/utils/__tests__/tokens.spec.ts @@ -128,8 +128,8 @@ describe('tokens', () => { nonce: null, }) .build()).build(); - const secureTokens = _hideTokens(token, oidcConfiguration, 'test'); - expect(secureTokens.id_token).toBe("old_id_token"); + _hideTokens(token, oidcConfiguration, 'test'); + expect(token.id_token).toBe("old_id_token"); }); }); diff --git a/packages/oidc-client-service-worker/src/utils/tokens.ts b/packages/oidc-client-service-worker/src/utils/tokens.ts index 8d34f2637..90c8ff693 100644 --- a/packages/oidc-client-service-worker/src/utils/tokens.ts +++ b/packages/oidc-client-service-worker/src/utils/tokens.ts @@ -71,7 +71,7 @@ const isTokensOidcValid = ( if (tokens.idTokenPayload) { const idTokenPayload = tokens.idTokenPayload; // 2: The Issuer Identifier for the OpenID Provider (which is typically obtained during Discovery) MUST exactly match the value of the iss (issuer) Claim. - if (oidcServerConfiguration.issuer !== idTokenPayload.iss) { + if (idTokenPayload && oidcServerConfiguration.issuer !== idTokenPayload.iss) { return { isValid: false, reason: `Issuer does not match (oidcServerConfiguration issuer) ${oidcServerConfiguration.issuer} !== (idTokenPayload issuer) ${idTokenPayload.iss}` }; } // 3: The Client MUST validate that the aud (audience) Claim contains its client_id value registered at the Issuer identified by the iss (issuer) Claim as an audience. The aud (audience) Claim MAY contain an array with more than one element. The ID Token MUST be rejected if the ID Token does not list the Client as a valid audience, or if it contains additional audiences not trusted by the Client. @@ -80,19 +80,19 @@ const isTokensOidcValid = ( // 9: The current time MUST be before the time represented by the exp Claim. const currentTimeUnixSecond = new Date().getTime() / 1000; - if (idTokenPayload.exp && idTokenPayload.exp < currentTimeUnixSecond) { + if (idTokenPayload && idTokenPayload.exp && idTokenPayload.exp < currentTimeUnixSecond) { return { isValid: false, reason: `Token expired at (idTokenPayload exp) ${idTokenPayload.exp} < (currentTimeUnixSecond) ${currentTimeUnixSecond}` }; } // 10: The iat Claim can be used to reject tokens that were issued too far away from the current time, limiting the amount of time that nonces need to be stored to prevent attacks. The acceptable range is Client specific. const timeInSevenDays = 60 * 60 * 24 * 7; if ( - idTokenPayload.iat && + idTokenPayload && idTokenPayload.iat && idTokenPayload.iat + timeInSevenDays < currentTimeUnixSecond ) { return { isValid: false, reason: `Token is used from too long time (idTokenPayload iat + timeInSevenDays) ${idTokenPayload.iat + timeInSevenDays} < (currentTimeUnixSecond) ${currentTimeUnixSecond}` }; } // 11: If a nonce value was sent in the Authentication Request, a nonce Claim MUST be present and its value checked to verify that it is the same value as the one that was sent in the Authentication Request. The Client SHOULD check the nonce value for replay attacks. The precise method for detecting replay attacks is Client specific. - if (nonce && idTokenPayload.nonce && idTokenPayload.nonce !== nonce) { + if (idTokenPayload && nonce && idTokenPayload.nonce && idTokenPayload.nonce !== nonce) { return { isValid: false, reason: `Nonce does not match (nonce) ${nonce} !== (idTokenPayload nonce) ${idTokenPayload.nonce}` }; } } @@ -146,8 +146,8 @@ function _hideTokens(tokens: Tokens, currentDatabaseElement: OidcConfig, configu let _idTokenPayload = null; if (id_token) { _idTokenPayload = extractTokenPayload(id_token); - tokens.idTokenPayload = { ..._idTokenPayload }; - if (_idTokenPayload.nonce && currentDatabaseElement.nonce != null) { + tokens.idTokenPayload = _idTokenPayload !=null ? { ..._idTokenPayload }: null; + if (_idTokenPayload && _idTokenPayload.nonce && currentDatabaseElement.nonce != null) { const keyNonce = TOKEN.NONCE_TOKEN + '_' + currentDatabaseElement.configurationName; _idTokenPayload.nonce = keyNonce; From c806e6670b82c97ad7ecadc08ac75e55d6762a6a Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 30 Jan 2024 22:13:27 +0000 Subject: [PATCH 162/440] [skip ci] Update to version 7.15.1 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 392aa687c..828bce43d 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.14.1", + "version": "7.15.1", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 73a1d26d3..58bfb381c 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.14.1'; +export default '7.15.1'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index bfae84a8a..df3bad654 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.14.1", + "version": "7.15.1", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 73a1d26d3..58bfb381c 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.14.1'; +export default '7.15.1'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index ded6cc0ff..e927c405e 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.14.1", + "version": "7.15.1", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From ffc597b65d91f76510dcfa682323154983f38333 Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 30 Jan 2024 22:13:28 +0000 Subject: [PATCH 163/440] [skip ci] Generate changelog to version 7.15.1 --- CHANGELOG.md | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 91f60afd4..ea6fffb63 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,16 @@ # Changelog -## 7.14.1 +## 7.15.1 + +- [5094e36](https://github.com/AxaFrance/oidc-client/commit/5094e36c1435684c5863e8d27eca59093aaec7b7) - fix(service-worker): unit test broken (release), 2024-01-30 by *Guillaume Chervet* + + +## v7.15.0 + +- [1676881](https://github.com/AxaFrance/oidc-client/commit/1676881f1db53cff6652ee7fe9658a437682231f) - feat(oidc): idToken can be null on a refresh (release) (#1271), 2024-01-29 by *Guillaume Chervet* + + +## v7.14.1 - [0fe53a6](https://github.com/AxaFrance/oidc-client/commit/0fe53a6b870c13c71330806a045896ea1e0a57e2) - fix(oidc): remove console.log (release), 2024-01-28 by *Guillaume Chervet* - [b23d6a7](https://github.com/AxaFrance/oidc-client/commit/b23d6a7e1fc04ce43f489ac8977de9fe5affff73) - Merge branch 'main' of https://github.com/AxaFrance/oidc-client, 2024-01-28 by *Guillaume Chervet* @@ -310,15 +320,3 @@ - [cd97895](https://github.com/AxaFrance/oidc-client/commit/cd9789520090b27ea905401be6d03fd87f817f76) - fix(oidc): expire_in in string instead of number (#1118) (release), 2023-08-03 by *Guillaume Chervet* -## v7.0.0 - -- [9567873](https://github.com/AxaFrance/oidc-client/commit/95678734c0495f80628f99ad3aa284a3014f8bbc) - feat(oidc): rename repository oidc-client (#1115) (release), 2023-08-01 by *Guillaume Chervet* -- [ff61e5d](https://github.com/AxaFrance/oidc-client/commit/ff61e5d5e3387888ce18ec8e99fde0044009f481) - fix(demo): google new link and add navigate button, 2023-07-31 by *Guillaume Chervet* -- [0d8bc06](https://github.com/AxaFrance/oidc-client/commit/0d8bc0626be0d5d14edca83dacb7367f57d4bb6d) - feat(oidc): rename vanilla-oidc to oidc-client (#1112) (release), 2023-07-28 by *Guillaume Chervet* - - -## v6.26.6 - -- [dab3662](https://github.com/AxaFrance/oidc-client/commit/dab36629bdebed5a3f085d606f313c7a12644e77) - fix build (release), 2023-07-28 by *Guillaume Chervet* - - From 0a15e60f0e5c167a0418a972c6726eec72add447 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Thu, 1 Feb 2024 10:38:05 +0100 Subject: [PATCH 164/440] refactor(renew): clean an debug (alpha) (#1273) --- examples/react-oidc-demo/index.html | 2 +- examples/react-oidc-demo/src/MultiAuth.tsx | 5 ++--- packages/oidc-client/src/keepSession.ts | 4 ++-- packages/oidc-client/src/oidc.ts | 18 ++++++++-------- packages/oidc-client/src/renewTokens.ts | 25 ++++++++++++---------- packages/oidc-client/src/silentLogin.ts | 2 +- 6 files changed, 29 insertions(+), 27 deletions(-) diff --git a/examples/react-oidc-demo/index.html b/examples/react-oidc-demo/index.html index 00be91c24..0bb0aea6f 100644 --- a/examples/react-oidc-demo/index.html +++ b/examples/react-oidc-demo/index.html @@ -13,6 +13,6 @@
- + diff --git a/examples/react-oidc-demo/src/MultiAuth.tsx b/examples/react-oidc-demo/src/MultiAuth.tsx index 3da6b0d46..66eff1d7f 100644 --- a/examples/react-oidc-demo/src/MultiAuth.tsx +++ b/examples/react-oidc-demo/src/MultiAuth.tsx @@ -16,8 +16,7 @@ const fetchWithLogs = (fetch: Fetch) => async (...params: Parameters) => return await fetch(url, options, ...rest); }; -const MultiAuth = ({ configurationName, handleConfigurationChange }) => { - console.log('MultiAuth', configurationName); +const MultiAuth = ({ configurationName, handleConfigurationChange }) => {; const { login, logout, isAuthenticated } = useOidc(configurationName); const { isAuthenticated: isAuthenticatedDefault } = useOidc('default'); const [fname, setFname] = useState(''); @@ -156,7 +155,7 @@ export const MultiAuthContainer = () => { // console.log(`oidc:${configurationName}:${eventName}`, data); dispatch({ type: 'event', data: { name: `oidc:${configurationName}:${eventName}`, data } }); }; - console.log('MultiAuthContainer', configurationName); + return ( <> { oidc.tokens = tokens; const getLoginParams = serviceWorker.getLoginParams(oidc.configurationName); // @ts-ignore - oidc.timeoutId = autoRenewTokens(oidc, oidc.tokens.refreshToken, oidc.tokens.expiresAt, getLoginParams.extras); + oidc.timeoutId = autoRenewTokens(oidc, oidc.tokens.expiresAt, getLoginParams.extras); const sessionState = await serviceWorker.getSessionStateAsync(); // @ts-ignore await oidc.startCheckSessionAsync(oidcServerConfiguration.check_session_iframe, configuration.client_id, sessionState); @@ -51,7 +51,7 @@ export const tryKeepSessionAsync = async (oidc: Oidc) =>{ oidc.tokens = setTokens(tokens, null, configuration.token_renew_mode); const getLoginParams = session.getLoginParams(); // @ts-ignore - oidc.timeoutId = autoRenewTokens(oidc, tokens.refreshToken, oidc.tokens.expiresAt, getLoginParams.extras); + oidc.timeoutId = autoRenewTokens(oidc, oidc.tokens.expiresAt, getLoginParams.extras); const sessionState = await session.getSessionStateAsync(); // @ts-ignore await oidc.startCheckSessionAsync(oidcServerConfiguration.check_session_iframe, configuration.client_id, sessionState); diff --git a/packages/oidc-client/src/oidc.ts b/packages/oidc-client/src/oidc.ts index bbd925d0b..94f4df974 100644 --- a/packages/oidc-client/src/oidc.ts +++ b/packages/oidc-client/src/oidc.ts @@ -79,7 +79,7 @@ export type InternalLoginCallback = { const loginCallbackWithAutoTokensRenewAsync = async (oidc) : Promise => { const { parsedTokens, callbackPath } = await oidc.loginCallbackAsync(); - oidc.timeoutId = autoRenewTokens(oidc, parsedTokens.refreshToken, parsedTokens.expiresAt); + oidc.timeoutId = autoRenewTokens(oidc, parsedTokens.expiresAt); return { callbackPath }; }; @@ -292,7 +292,7 @@ Please checkout that you are using OIDC hook inside a 4) { @@ -374,11 +374,11 @@ Please checkout that you are using OIDC hook inside a { this.renewTokensPromise = null; return result; diff --git a/packages/oidc-client/src/renewTokens.ts b/packages/oidc-client/src/renewTokens.ts index db7fd883b..64166370b 100644 --- a/packages/oidc-client/src/renewTokens.ts +++ b/packages/oidc-client/src/renewTokens.ts @@ -1,15 +1,15 @@ import {initSession} from './initSession.js'; import {initWorkerAsync} from './initWorker.js'; import Oidc from './oidc.js'; -import {computeTimeLeft, setTokens} from './parseTokens.js'; +import {computeTimeLeft, setTokens, Tokens} from './parseTokens.js'; import timer from './timer.js'; import {OidcConfiguration, StringMap} from './types.js'; -async function syncTokens(oidc:Oidc, refreshToken, forceRefresh: boolean, extras: StringMap) { +async function syncTokens(oidc:Oidc, forceRefresh: boolean, extras: StringMap) { const updateTokens = (tokens) => { oidc.tokens = tokens; }; - const {tokens, status} = await oidc.synchroniseTokensAsync(refreshToken, 0, forceRefresh, extras, updateTokens); + const {tokens, status} = await oidc.synchroniseTokensAsync(0, forceRefresh, extras, updateTokens); const serviceWorker = await initWorkerAsync(oidc.configuration, oidc.configurationName); if (!serviceWorker) { @@ -24,7 +24,7 @@ async function syncTokens(oidc:Oidc, refreshToken, forceRefresh: boolean, extras return tokens; } -async function loadLatestTokensAsync(oidc, configuration) { +const loadLatestTokensAsync = async (oidc:Oidc, configuration:OidcConfiguration) :Promise => { const serviceWorker = await initWorkerAsync(configuration, oidc.configurationName); if (serviceWorker) { const oidcServerConfiguration = await oidc.initAsync(configuration.authority, configuration.authority_configuration); @@ -39,7 +39,7 @@ async function loadLatestTokensAsync(oidc, configuration) { } } -export async function renewTokensAndStartTimerAsync(oidc, refreshToken, forceRefresh = false, extras:StringMap = null) { +export async function renewTokensAndStartTimerAsync(oidc, forceRefresh = false, extras:StringMap = null) { const configuration = oidc.configuration; const lockResourcesName = `${configuration.client_id}_${oidc.configurationName}_${configuration.authority}`; @@ -48,14 +48,14 @@ export async function renewTokensAndStartTimerAsync(oidc, refreshToken, forceRef const serviceWorker = await initWorkerAsync(oidc.configuration, oidc.configurationName); if(configuration?.storage === window?.sessionStorage && !serviceWorker) { - tokens = await syncTokens(oidc, refreshToken, forceRefresh, extras); + tokens = await syncTokens(oidc, forceRefresh, extras); } else { tokens = await navigator.locks.request(lockResourcesName, { ifAvailable: true }, async (lock) => { if(!lock){ oidc.publishEvent(Oidc.eventNames.syncTokensAsync_lock_not_available, { lock: 'lock not available' }); return await loadLatestTokensAsync(oidc, configuration); } - return await syncTokens(oidc, refreshToken, forceRefresh, extras); + return await syncTokens(oidc, forceRefresh, extras); }); } @@ -66,19 +66,19 @@ export async function renewTokensAndStartTimerAsync(oidc, refreshToken, forceRef if (oidc.timeoutId) { // @ts-ignore - oidc.timeoutId = autoRenewTokens(oidc, tokens.refreshToken, oidc.tokens.expiresAt, extras); + oidc.timeoutId = autoRenewTokens(oidc, oidc.tokens.expiresAt, extras); } return oidc.tokens; } -export const autoRenewTokens = (oidc:Oidc, refreshToken, expiresAt, extras:StringMap = null) => { +export const autoRenewTokens = (oidc:Oidc, expiresAt, extras:StringMap = null) => { const refreshTimeBeforeTokensExpirationInSecond = oidc.configuration.refresh_time_before_tokens_expiration_in_second; return timer.setTimeout(async () => { const timeLeft = computeTimeLeft(refreshTimeBeforeTokensExpirationInSecond, expiresAt); const timeInfo = { timeLeft }; oidc.publishEvent(Oidc.eventNames.token_timer, timeInfo); - await renewTokensAndStartTimerAsync(oidc, refreshToken, false, extras); + await renewTokensAndStartTimerAsync(oidc, false, extras); }, 1000); }; @@ -118,7 +118,10 @@ export const syncTokensInfoAsync = (oidc: Oidc) => async (configuration:OidcConf nonce = await serviceWorker.getNonceAsync(); } else { const session = initSession(configurationName, configuration.storage ?? sessionStorage); - const { tokens, status } = await session.initAsync(); + let { tokens, status } = await session.initAsync(); + if(tokens){ + tokens = setTokens(tokens, oidc.tokens, configuration.token_renew_mode); + } if (!tokens) { return { tokens: null, status: 'LOGOUT_FROM_ANOTHER_TAB', nonce: nullNonce }; } else if (status === 'SESSIONS_LOST') { diff --git a/packages/oidc-client/src/silentLogin.ts b/packages/oidc-client/src/silentLogin.ts index 70932a974..319125944 100644 --- a/packages/oidc-client/src/silentLogin.ts +++ b/packages/oidc-client/src/silentLogin.ts @@ -131,7 +131,7 @@ export const defaultSilentLoginAsync = (window, configurationName, configuration oidc.tokens = silentResult.tokens; publishEvent(eventNames.token_aquired, {}); // @ts-ignore - oidc.timeoutId = autoRenewTokens(oidc, oidc.tokens.refreshToken, oidc.tokens.expiresAt, extras); + oidc.timeoutId = autoRenewTokens(oidc, oidc.tokens.expiresAt, extras); return {}; } } catch (e) { From 31f295cb549bf55dfd5db1e1c71178363c7f2dae Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Fri, 2 Feb 2024 09:53:19 +0100 Subject: [PATCH 165/440] fix(logout): add event when same config name (alpha) --- packages/oidc-client/src/logout.ts | 9 ++++++--- packages/oidc-client/src/oidc.ts | 6 +++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/packages/oidc-client/src/logout.ts b/packages/oidc-client/src/logout.ts index 33116c865..436a28dde 100644 --- a/packages/oidc-client/src/logout.ts +++ b/packages/oidc-client/src/logout.ts @@ -4,7 +4,7 @@ import { performRevocationRequestAsync, TOKEN_TYPE } from './requests.js'; import timer from './timer.js'; import { StringMap } from './types.js'; import {ILOidcLocation} from "./location"; -import Oidc from "./oidc"; +import {eventNames} from "./events"; export const oidcLogoutTokens = { access_token: 'access_token', @@ -67,15 +67,18 @@ export const logoutAsync = (oidc, oidcDatabase, fetch, console, oicLocation:ILOi } // @ts-ignore const sub = oidc.tokens && oidc.tokens.idTokenPayload ? oidc.tokens.idTokenPayload.sub : null; - await oidc.destroyAsync('LOGGED_OUT'); + // eslint-disable-next-line @typescript-eslint/no-unused-vars for (const [key, itemOidc] of Object.entries(oidcDatabase)) { if (itemOidc !== oidc) { // @ts-ignore await oidc.logoutSameTabAsync(oidc.configuration.client_id, sub); + } else { + oidc.publishEvent(eventNames.logout_from_same_tab, {} ); } } - + await oidc.destroyAsync('LOGGED_OUT'); + if (oidcServerConfiguration.endSessionEndpoint) { if (!extras) { extras = { diff --git a/packages/oidc-client/src/oidc.ts b/packages/oidc-client/src/oidc.ts index 94f4df974..21add6cbc 100644 --- a/packages/oidc-client/src/oidc.ts +++ b/packages/oidc-client/src/oidc.ts @@ -526,16 +526,16 @@ Please checkout that you are using OIDC hook inside a Date: Sat, 3 Feb 2024 14:57:38 +0100 Subject: [PATCH 166/440] fix(oidc): json not valid add warning message (release) (#1258) --- packages/oidc-client/src/initSession.ts | 6 ++++++ packages/oidc-client/src/oidc.ts | 7 +++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/packages/oidc-client/src/initSession.ts b/packages/oidc-client/src/initSession.ts index 3d79b69b3..f4a6e57e5 100644 --- a/packages/oidc-client/src/initSession.ts +++ b/packages/oidc-client/src/initSession.ts @@ -64,6 +64,12 @@ export const initSession = (configurationName, storage = sessionStorage) => { }; const getLoginParams = () => { const dataString = storage[`oidc.login.${configurationName}`]; + + if(!dataString){ + console.warn(`storage[oidc.login.${configurationName}] is empty`); + return null; + } + if (!getLoginParamsCache[configurationName]) { getLoginParamsCache[configurationName] = JSON.parse(dataString); } diff --git a/packages/oidc-client/src/oidc.ts b/packages/oidc-client/src/oidc.ts index 21add6cbc..c4143d5c4 100644 --- a/packages/oidc-client/src/oidc.ts +++ b/packages/oidc-client/src/oidc.ts @@ -234,8 +234,7 @@ Please checkout that you are using OIDC hook inside a { if (this.tryKeepExistingSessionPromise !== null) { return this.tryKeepExistingSessionPromise; - } - + } this.tryKeepExistingSessionPromise = tryKeepSessionAsync(this); return this.tryKeepExistingSessionPromise.then((result) => { this.tryKeepExistingSessionPromise = null; @@ -311,7 +310,7 @@ Please checkout that you are using OIDC hook inside a { + const silentLoginAsync = (extras: StringMap, state:string=null, scope:string = null) => { return _silentLoginAsync(this.configurationName, this.configuration, this.publishEvent.bind(this))(extras, state, scope); }; const localsilentLoginAsync = async () => { @@ -328,7 +327,7 @@ Please checkout that you are using OIDC hook inside a Date: Sat, 3 Feb 2024 14:00:15 +0000 Subject: [PATCH 167/440] [skip ci] Update to version 7.15.2 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 828bce43d..5735099f2 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.15.1", + "version": "7.15.2", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 58bfb381c..73a320933 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.15.1'; +export default '7.15.2'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index df3bad654..d1aee691e 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.15.1", + "version": "7.15.2", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 58bfb381c..73a320933 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.15.1'; +export default '7.15.2'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index e927c405e..5db7136ca 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.15.1", + "version": "7.15.2", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 31c2545c49c08dabc63cbe1d7d0fd28f83905fa5 Mon Sep 17 00:00:00 2001 From: GitHub Date: Sat, 3 Feb 2024 14:00:16 +0000 Subject: [PATCH 168/440] [skip ci] Generate changelog to version 7.15.2 --- CHANGELOG.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ea6fffb63..b5e7f865b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,13 @@ # Changelog -## 7.15.1 +## 7.15.2 + +- [940ffac](https://github.com/AxaFrance/oidc-client/commit/940ffac724894460af13e4e4a0de5e691e487c74) - fix(oidc): json not valid add warning message (release) (#1258), 2024-02-03 by *Guillaume Chervet* +- [31f295c](https://github.com/AxaFrance/oidc-client/commit/31f295cb549bf55dfd5db1e1c71178363c7f2dae) - fix(logout): add event when same config name (alpha), 2024-02-02 by *Guillaume Chervet* +- [0a15e60](https://github.com/AxaFrance/oidc-client/commit/0a15e60f0e5c167a0418a972c6726eec72add447) - refactor(renew): clean an debug (alpha) (#1273), 2024-02-01 by *Guillaume Chervet* + + +## v7.15.1 - [5094e36](https://github.com/AxaFrance/oidc-client/commit/5094e36c1435684c5863e8d27eca59093aaec7b7) - fix(service-worker): unit test broken (release), 2024-01-30 by *Guillaume Chervet* @@ -315,8 +322,3 @@ - [ae8a601](https://github.com/AxaFrance/oidc-client/commit/ae8a60130b4dacfe7a73f6e2262ca1238a07a509) - feat(oidc): update service worker from version (#1121) (release), 2023-08-04 by *Guillaume Chervet* -## v7.0.1 - -- [cd97895](https://github.com/AxaFrance/oidc-client/commit/cd9789520090b27ea905401be6d03fd87f817f76) - fix(oidc): expire_in in string instead of number (#1118) (release), 2023-08-03 by *Guillaume Chervet* - - From 7a5d32cf650870a5b1c2910ceb0a3e6db4cec0b7 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Sat, 3 Feb 2024 15:18:48 +0100 Subject: [PATCH 169/440] fix(oidc): storage empty update message (release) --- packages/oidc-client/src/initSession.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/oidc-client/src/initSession.ts b/packages/oidc-client/src/initSession.ts index f4a6e57e5..e01b591ae 100644 --- a/packages/oidc-client/src/initSession.ts +++ b/packages/oidc-client/src/initSession.ts @@ -66,7 +66,7 @@ export const initSession = (configurationName, storage = sessionStorage) => { const dataString = storage[`oidc.login.${configurationName}`]; if(!dataString){ - console.warn(`storage[oidc.login.${configurationName}] is empty`); + console.warn(`storage[oidc.login.${configurationName}] is empty, you should have an bad OIDC or code configuration somewhere.`); return null; } From 0741d97d9b0c096f9c1ee056a4776d70b39111a1 Mon Sep 17 00:00:00 2001 From: GitHub Date: Sat, 3 Feb 2024 14:22:42 +0000 Subject: [PATCH 170/440] [skip ci] Update to version 7.15.3 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 5735099f2..19b4d5db1 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.15.2", + "version": "7.15.3", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 73a320933..6d1aa22bb 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.15.2'; +export default '7.15.3'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index d1aee691e..3371d15b1 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.15.2", + "version": "7.15.3", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 73a320933..6d1aa22bb 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.15.2'; +export default '7.15.3'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 5db7136ca..7311cc148 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.15.2", + "version": "7.15.3", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 2ccad163355d2d01dee89031dc878e3d1a084678 Mon Sep 17 00:00:00 2001 From: GitHub Date: Sat, 3 Feb 2024 14:22:44 +0000 Subject: [PATCH 171/440] [skip ci] Generate changelog to version 7.15.3 --- CHANGELOG.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b5e7f865b..d04c2cf2c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog -## 7.15.2 +## 7.15.3 + +- [7a5d32c](https://github.com/AxaFrance/oidc-client/commit/7a5d32cf650870a5b1c2910ceb0a3e6db4cec0b7) - fix(oidc): storage empty update message (release), 2024-02-03 by *Guillaume Chervet* + + +## v7.15.2 - [940ffac](https://github.com/AxaFrance/oidc-client/commit/940ffac724894460af13e4e4a0de5e691e487c74) - fix(oidc): json not valid add warning message (release) (#1258), 2024-02-03 by *Guillaume Chervet* - [31f295c](https://github.com/AxaFrance/oidc-client/commit/31f295cb549bf55dfd5db1e1c71178363c7f2dae) - fix(logout): add event when same config name (alpha), 2024-02-02 by *Guillaume Chervet* @@ -317,8 +322,3 @@ - [60ea58b](https://github.com/AxaFrance/oidc-client/commit/60ea58b266c4173e3a92b8637d9abd09cca0ea1a) - feat(oidc-service-worker): copy become manual (#1120) (release), 2023-08-04 by *Guillaume Chervet* -## v7.1.0 - -- [ae8a601](https://github.com/AxaFrance/oidc-client/commit/ae8a60130b4dacfe7a73f6e2262ca1238a07a509) - feat(oidc): update service worker from version (#1121) (release), 2023-08-04 by *Guillaume Chervet* - - From f2d74fba6d2e48e6d478aa69d261fe9cceb69bfa Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Sat, 3 Feb 2024 22:30:44 +0100 Subject: [PATCH 172/440] fix(oidc): eternal lock when refresh_token invalid and multiple tabs (#1281) (release) * fix(oidc): eternal lock when refresh_token invalid and multiple tabs * fix (alpha) * fix crash (alpha) * cleaner error iframe (alpha) whith ugly code * to be continued (alpha) * fix (alpha) * fix (beta) --- packages/oidc-client/src/checkSession.ts | 3 + packages/oidc-client/src/oidc.ts | 181 ++-------------------- packages/oidc-client/src/renewTokens.ts | 186 ++++++++++++++++++++++- packages/oidc-client/src/requests.ts | 7 +- packages/oidc-client/src/silentLogin.ts | 11 +- 5 files changed, 213 insertions(+), 175 deletions(-) diff --git a/packages/oidc-client/src/checkSession.ts b/packages/oidc-client/src/checkSession.ts index e291ef2c1..c313c8c99 100644 --- a/packages/oidc-client/src/checkSession.ts +++ b/packages/oidc-client/src/checkSession.ts @@ -24,6 +24,9 @@ export const startCheckSessionAsync = (oidc:Oidc, oidcDatabase:any, configuratio id_token_hint: idToken, scope: configuration.scope || 'openid', }).then((silentSigninResponse) => { + if(silentSigninResponse.error) { + throw new Error(silentSigninResponse.error); + } const iFrameIdTokenPayload = silentSigninResponse.tokens.idTokenPayload; if (idTokenPayload.sub === iFrameIdTokenPayload.sub) { const sessionState = silentSigninResponse.sessionState; diff --git a/packages/oidc-client/src/oidc.ts b/packages/oidc-client/src/oidc.ts index c4143d5c4..0c82eeaaa 100644 --- a/packages/oidc-client/src/oidc.ts +++ b/packages/oidc-client/src/oidc.ts @@ -95,7 +95,7 @@ export class Oidc { public timeoutId: NodeJS.Timeout | number; public configurationName: string; public checkSessionIFrame: CheckSessionIFrame; - private getFetch: () => Fetch; + public getFetch: () => Fetch; public location: ILOidcLocation; constructor(configuration:OidcConfiguration, configurationName = 'default', getFetch : () => Fetch, location: ILOidcLocation = new OidcLocation()) { let silent_login_uri = configuration.silent_login_uri; @@ -130,7 +130,6 @@ export class Oidc { this.userInfo = null; this.events = []; this.timeoutId = null; - this.synchroniseTokensAsync.bind(this); this.loginCallbackWithAutoTokensRenewAsync.bind(this); this.initAsync.bind(this); this.loginCallbackAsync.bind(this); @@ -183,11 +182,16 @@ Please checkout that you are using OIDC hook inside a 0) { - await sleepAsync({milliseconds: 1000}); - numberTryOnline--; - this.publishEvent(eventNames.refreshTokensAsync, { message: `wait because navigator is offline try ${numberTryOnline}` }); - } - const isDocumentHidden = document.hidden; - const nextIndex = isDocumentHidden ? index : index + 1; - if (!extras) { - extras = {}; - } - const configuration = this.configuration; - - const silentLoginAsync = (extras: StringMap, state:string=null, scope:string = null) => { - return _silentLoginAsync(this.configurationName, this.configuration, this.publishEvent.bind(this))(extras, state, scope); - }; - const localsilentLoginAsync = async () => { - try { - let loginParams; - const serviceWorker = await initWorkerAsync(configuration, this.configurationName); - if (serviceWorker) { - loginParams = serviceWorker.getLoginParams(); - } else { - const session = initSession(this.configurationName, configuration.storage); - loginParams = session.getLoginParams(); - } - const silent_token_response = await silentLoginAsync({ - ...loginParams.extras, - ...extras, - prompt: 'none', - }); - if (silent_token_response) { - updateTokens(silent_token_response.tokens); - this.publishEvent(Oidc.eventNames.token_renewed, {}); - return { tokens: silent_token_response.tokens, status: 'LOGGED' }; - } - } catch (exceptionSilent: any) { - console.error(exceptionSilent); - this.publishEvent(eventNames.refreshTokensAsync_silent_error, { message: 'exceptionSilent', exception: exceptionSilent.message }); - if (exceptionSilent && exceptionSilent.message && exceptionSilent.message.startsWith('oidc')) { - updateTokens(null); - this.publishEvent(eventNames.refreshTokensAsync_error, { message: 'refresh token silent' }); - return { tokens: null, status: 'SESSION_LOST' }; - } - } - this.publishEvent(eventNames.refreshTokensAsync_error, { message: 'refresh token silent return' }); - return await this.synchroniseTokensAsync(nextIndex, forceRefresh, extras, updateTokens); - }; - - if (index > 4) { - updateTokens(null); - this.publishEvent(eventNames.refreshTokensAsync_error, { message: 'refresh token' }); - return { tokens: null, status: 'SESSION_LOST' }; - } - try { - const { status, tokens, nonce } = await syncTokensInfoAsync(this)(configuration, this.configurationName, this.tokens, forceRefresh); - switch (status) { - case synchroniseTokensStatus.SESSION_LOST: - updateTokens(null); - this.publishEvent(eventNames.refreshTokensAsync_error, { message: 'refresh token session lost' }); - return { tokens: null, status: 'SESSION_LOST' }; - case synchroniseTokensStatus.NOT_CONNECTED: - updateTokens(null); - return { tokens: null, status: null }; - case synchroniseTokensStatus.TOKENS_VALID: - updateTokens(tokens); - return { tokens, status: 'LOGGED_IN' }; - case synchroniseTokensStatus.TOKEN_UPDATED_BY_ANOTHER_TAB_TOKENS_VALID: - updateTokens(tokens); - this.publishEvent(Oidc.eventNames.token_renewed, { reason: 'TOKEN_UPDATED_BY_ANOTHER_TAB_TOKENS_VALID' }); - return { tokens, status: 'LOGGED_IN' }; - case synchroniseTokensStatus.LOGOUT_FROM_ANOTHER_TAB: - updateTokens(null); - this.publishEvent(eventNames.logout_from_another_tab, { status: 'session syncTokensAsync' }); - return { tokens: null, status: 'LOGGED_OUT' }; - case synchroniseTokensStatus.REQUIRE_SYNC_TOKENS: - this.publishEvent(eventNames.refreshTokensAsync_begin, { refreshToken: tokens.refreshToken, status, tryNumber: index }); - return await localsilentLoginAsync(); - default: { - this.publishEvent(eventNames.refreshTokensAsync_begin, { refreshToken: tokens.refreshToken, status, tryNumber: index }); - if (!tokens.refreshToken) { - return await localsilentLoginAsync(); - } - - const clientId = configuration.client_id; - const redirectUri = configuration.redirect_uri; - const authority = configuration.authority; - const tokenExtras = configuration.token_request_extras ? configuration.token_request_extras : {}; - const finalExtras = { ...tokenExtras }; - - for (const [key, value] of Object.entries(extras)) { - if (key.endsWith(':token_request')) { - finalExtras[key.replace(':token_request', '')] = value; - } - } - const localFunctionAsync = async () => { - const details = { - client_id: clientId, - redirect_uri: redirectUri, - grant_type: 'refresh_token', - refresh_token: tokens.refreshToken, - }; - const oidcServerConfiguration = await this.initAsync(authority, configuration.authority_configuration); - const timeoutMs = document.hidden ? 10000 : 30000 * 10; - const url = oidcServerConfiguration.tokenEndpoint; - const headersExtras = {}; - if(configuration.demonstrating_proof_of_possession) { - headersExtras['DPoP'] = await this.generateDemonstrationOfProofOfPossessionAsync(tokens.accessToken, url, 'POST'); - } - const tokenResponse = await performTokenRequestAsync(this.getFetch())(url, - details, - finalExtras, - tokens, - headersExtras, - configuration.token_renew_mode, - timeoutMs); - - if (tokenResponse.success) { - const { isValid, reason } = isTokensOidcValid(tokenResponse.data, nonce.nonce, oidcServerConfiguration); - if (!isValid) { - updateTokens(null); - this.publishEvent(eventNames.refreshTokensAsync_error, { message: `refresh token return not valid tokens, reason: ${reason}` }); - return { tokens: null, status: 'SESSION_LOST' }; - } - updateTokens(tokenResponse.data); - if(tokenResponse.demonstratingProofOfPossessionNonce) { - const serviceWorker = await initWorkerAsync(configuration, this.configurationName); - if(serviceWorker){ - await serviceWorker.setDemonstratingProofOfPossessionNonce(tokenResponse.demonstratingProofOfPossessionNonce); - } else { - const session = initSession(this.configurationName, configuration.storage); - await session.setDemonstratingProofOfPossessionNonce(tokenResponse.demonstratingProofOfPossessionNonce); - } - } - this.publishEvent(eventNames.refreshTokensAsync_end, { success: tokenResponse.success }); - this.publishEvent(Oidc.eventNames.token_renewed, { reason: 'REFRESH_TOKEN' }); - return { tokens: tokenResponse.data, status: 'LOGGED_IN' }; - } else { - this.publishEvent(eventNames.refreshTokensAsync_silent_error, { - message: 'bad request', - tokenResponse, - }); - return await this.synchroniseTokensAsync(nextIndex, forceRefresh, extras, updateTokens); - } - }; - return await localFunctionAsync(); - } - } - } catch (exception: any) { - console.error(exception); - this.publishEvent(eventNames.refreshTokensAsync_silent_error, { message: 'exception', exception: exception.message }); - return this.synchroniseTokensAsync(nextIndex, forceRefresh, extras, updateTokens); - } - } async generateDemonstrationOfProofOfPossessionAsync(accessToken:string, url:string, method:string): Promise { diff --git a/packages/oidc-client/src/renewTokens.ts b/packages/oidc-client/src/renewTokens.ts index 64166370b..79ae5c133 100644 --- a/packages/oidc-client/src/renewTokens.ts +++ b/packages/oidc-client/src/renewTokens.ts @@ -1,15 +1,18 @@ import {initSession} from './initSession.js'; -import {initWorkerAsync} from './initWorker.js'; +import {initWorkerAsync, sleepAsync} from './initWorker.js'; import Oidc from './oidc.js'; -import {computeTimeLeft, setTokens, Tokens} from './parseTokens.js'; +import {computeTimeLeft, isTokensOidcValid, setTokens, Tokens} from './parseTokens.js'; import timer from './timer.js'; import {OidcConfiguration, StringMap} from './types.js'; +import {_silentLoginAsync} from "./silentLogin"; +import {performTokenRequestAsync} from "./requests"; +import {eventNames} from "./events"; async function syncTokens(oidc:Oidc, forceRefresh: boolean, extras: StringMap) { const updateTokens = (tokens) => { oidc.tokens = tokens; }; - const {tokens, status} = await oidc.synchroniseTokensAsync(0, forceRefresh, extras, updateTokens); + const {tokens, status} = await synchroniseTokensAsync(oidc)(0, forceRefresh, extras, updateTokens); const serviceWorker = await initWorkerAsync(oidc.configuration, oidc.configurationName); if (!serviceWorker) { @@ -141,4 +144,181 @@ export const syncTokensInfoAsync = (oidc: Oidc) => async (configuration:OidcConf return { tokens: currentTokens, status: 'FORCE_REFRESH', nonce }; } return { tokens: currentTokens, status, nonce }; +} + + + + +const synchroniseTokensAsync = (oidc:Oidc) => async (index = 0, forceRefresh = false, extras:StringMap = null, updateTokens) =>{ + + while (!navigator.onLine && document.hidden) { + await sleepAsync({milliseconds: 1000}); + oidc.publishEvent(eventNames.refreshTokensAsync, { message: 'wait because navigator is offline and hidden' }); + } + let numberTryOnline = 6; + while (!navigator.onLine && numberTryOnline > 0) { + await sleepAsync({milliseconds: 1000}); + numberTryOnline--; + oidc.publishEvent(eventNames.refreshTokensAsync, { message: `wait because navigator is offline try ${numberTryOnline}` }); + } + const isDocumentHidden = document.hidden; + const nextIndex = index + 1; + if (!extras) { + extras = {}; + } + const configuration = oidc.configuration; + + const silentLoginAsync = (extras: StringMap, state:string=null, scope:string = null) => { + return _silentLoginAsync(oidc.configurationName, oidc.configuration, oidc.publishEvent.bind(oidc))(extras, state, scope); + }; + const localsilentLoginAsync = async () => { + try { + let loginParams; + const serviceWorker = await initWorkerAsync(configuration, oidc.configurationName); + if (serviceWorker) { + loginParams = serviceWorker.getLoginParams(); + } else { + const session = initSession(oidc.configurationName, configuration.storage); + loginParams = session.getLoginParams(); + } + const silent_token_response = await silentLoginAsync({ + ...loginParams.extras, + ...extras, + prompt: 'none', + }); + if (silent_token_response) { + if(silent_token_response.error) { + updateTokens(null); + oidc.publishEvent(eventNames.refreshTokensAsync_error, { message: 'refresh token silent' }); + return { tokens: null, status: 'SESSION_LOST' }; + } + + updateTokens(silent_token_response.tokens); + oidc.publishEvent(Oidc.eventNames.token_renewed, {}); + return { tokens: silent_token_response.tokens, status: 'LOGGED' }; + } + + } catch (exceptionSilent: any) { + console.error(exceptionSilent); + oidc.publishEvent(eventNames.refreshTokensAsync_silent_error, { message: 'exceptionSilent', exception: exceptionSilent.message }); + return await synchroniseTokensAsync(oidc)(nextIndex, forceRefresh, extras, updateTokens); + } + }; + + if (index > 4) { + if(isDocumentHidden){ + //oidc.publishEvent(eventNames.refreshTokensAsync_error, { message: 'refresh token' }); + return { tokens: oidc.tokens, status: 'GIVE_UP' }; + } else{ + updateTokens(null); + oidc.publishEvent(eventNames.refreshTokensAsync_error, { message: 'refresh token' }); + return { tokens: null, status: 'SESSION_LOST' }; + } + } + try { + const { status, tokens, nonce } = await syncTokensInfoAsync(oidc)(configuration, oidc.configurationName, oidc.tokens, forceRefresh); + switch (status) { + case synchroniseTokensStatus.SESSION_LOST: + updateTokens(null); + oidc.publishEvent(eventNames.refreshTokensAsync_error, { message: 'refresh token session lost' }); + return { tokens: null, status: 'SESSION_LOST' }; + case synchroniseTokensStatus.NOT_CONNECTED: + updateTokens(null); + return { tokens: null, status: null }; + case synchroniseTokensStatus.TOKENS_VALID: + updateTokens(tokens); + return { tokens, status: 'LOGGED_IN' }; + case synchroniseTokensStatus.TOKEN_UPDATED_BY_ANOTHER_TAB_TOKENS_VALID: + updateTokens(tokens); + oidc.publishEvent(Oidc.eventNames.token_renewed, { reason: 'TOKEN_UPDATED_BY_ANOTHER_TAB_TOKENS_VALID' }); + return { tokens, status: 'LOGGED_IN' }; + case synchroniseTokensStatus.LOGOUT_FROM_ANOTHER_TAB: + updateTokens(null); + oidc.publishEvent(eventNames.logout_from_another_tab, { status: 'session syncTokensAsync' }); + return { tokens: null, status: 'LOGGED_OUT' }; + case synchroniseTokensStatus.REQUIRE_SYNC_TOKENS: + oidc.publishEvent(eventNames.refreshTokensAsync_begin, { tryNumber: index }); + return await localsilentLoginAsync(); + default: { + oidc.publishEvent(eventNames.refreshTokensAsync_begin, { refreshToken: tokens.refreshToken, status, tryNumber: index }); + if (!tokens.refreshToken) { + return await localsilentLoginAsync(); + } + + const clientId = configuration.client_id; + const redirectUri = configuration.redirect_uri; + const authority = configuration.authority; + const tokenExtras = configuration.token_request_extras ? configuration.token_request_extras : {}; + const finalExtras = { ...tokenExtras }; + + for (const [key, value] of Object.entries(extras)) { + if (key.endsWith(':token_request')) { + finalExtras[key.replace(':token_request', '')] = value; + } + } + const localFunctionAsync = async () => { + const details = { + client_id: clientId, + redirect_uri: redirectUri, + grant_type: 'refresh_token', + refresh_token: tokens.refreshToken, + }; + const oidcServerConfiguration = await oidc.initAsync(authority, configuration.authority_configuration); + const timeoutMs = document.hidden ? 10000 : 30000 * 10; + const url = oidcServerConfiguration.tokenEndpoint; + const headersExtras = {}; + if(configuration.demonstrating_proof_of_possession) { + headersExtras['DPoP'] = await oidc.generateDemonstrationOfProofOfPossessionAsync(tokens.accessToken, url, 'POST'); + } + const tokenResponse = await performTokenRequestAsync(oidc.getFetch())(url, + details, + finalExtras, + tokens, + headersExtras, + configuration.token_renew_mode, + timeoutMs); + + if (tokenResponse.success) { + const { isValid, reason } = isTokensOidcValid(tokenResponse.data, nonce.nonce, oidcServerConfiguration); + if (!isValid) { + updateTokens(null); + oidc.publishEvent(eventNames.refreshTokensAsync_error, { message: `refresh token return not valid tokens, reason: ${reason}` }); + return { tokens: null, status: 'SESSION_LOST' }; + } + updateTokens(tokenResponse.data); + if(tokenResponse.demonstratingProofOfPossessionNonce) { + const serviceWorker = await initWorkerAsync(configuration, oidc.configurationName); + if(serviceWorker){ + await serviceWorker.setDemonstratingProofOfPossessionNonce(tokenResponse.demonstratingProofOfPossessionNonce); + } else { + const session = initSession(oidc.configurationName, configuration.storage); + await session.setDemonstratingProofOfPossessionNonce(tokenResponse.demonstratingProofOfPossessionNonce); + } + } + oidc.publishEvent(eventNames.refreshTokensAsync_end, { success: tokenResponse.success }); + oidc.publishEvent(Oidc.eventNames.token_renewed, { reason: 'REFRESH_TOKEN' }); + return { tokens: tokenResponse.data, status: 'LOGGED_IN' }; + } else { + oidc.publishEvent(eventNames.refreshTokensAsync_silent_error, { + message: 'bad request', + tokenResponse, + }); + + if (tokenResponse.status >= 400 && tokenResponse.status < 500) { + updateTokens(null); + oidc.publishEvent(eventNames.refreshTokensAsync_error, { message: `session lost: ${tokenResponse.status}` }); + return { tokens: null, status: 'SESSION_LOST' }; + } + + return await synchroniseTokensAsync(oidc)(nextIndex, forceRefresh, extras, updateTokens); + } + }; + return await localFunctionAsync(); + } + } + } catch (exception: any) { + console.error(exception); + oidc.publishEvent(eventNames.refreshTokensAsync_silent_error, { message: 'exception', exception: exception.message }); + return synchroniseTokensAsync(oidc)(nextIndex, forceRefresh, extras, updateTokens); + } } \ No newline at end of file diff --git a/packages/oidc-client/src/requests.ts b/packages/oidc-client/src/requests.ts index 98d1272ae..9f4ab259a 100644 --- a/packages/oidc-client/src/requests.ts +++ b/packages/oidc-client/src/requests.ts @@ -122,7 +122,11 @@ export const performTokenRequestAsync = (fetch:Fetch) => async (url:string, body: formBodyString, }, timeoutMs); if (response.status !== 200) { - return { success: false, status: response.status, demonstratingProofOfPossessionNonce:null }; + return { + success: false, + status: response.status, + demonstratingProofOfPossessionNonce:null + }; } const tokens = await response.json(); @@ -132,6 +136,7 @@ export const performTokenRequestAsync = (fetch:Fetch) => async (url:string, } return { success: true, + status: response.status, data: parseOriginalTokens(tokens, oldTokens, tokenRenewMode), demonstratingProofOfPossessionNonce: demonstratingProofOfPossessionNonce, }; diff --git a/packages/oidc-client/src/silentLogin.ts b/packages/oidc-client/src/silentLogin.ts index 319125944..3e1b5a51d 100644 --- a/packages/oidc-client/src/silentLogin.ts +++ b/packages/oidc-client/src/silentLogin.ts @@ -6,6 +6,7 @@ import { OidcConfiguration, StringMap } from './types.js'; export type SilentLoginResponse = { tokens:Tokens; sessionState:string; + error:string; }; // eslint-disable-next-line @typescript-eslint/ban-types @@ -60,6 +61,7 @@ export const _silentLoginAsync = (configurationName:string, configuration:OidcCo ) { const key = `${configurationName}_oidc_tokens:`; const key_error = `${configurationName}_oidc_error:`; + const key_exception = `${configurationName}_oidc_exception:`; const data = e.data; if (data && typeof (data) === 'string') { if (!isResolved) { @@ -74,8 +76,15 @@ export const _silentLoginAsync = (configurationName:string, configuration:OidcCo publishEvent(eventNames.silentLoginAsync_error, result); iframe.remove(); isResolved = true; - reject(new Error('oidc_' + result.error)); + resolve({error: 'oidc_' + result.error, tokens: null, sessionState: null}); + } else if (data.startsWith(key_exception)) { + const result = JSON.parse(e.data.replace(key_exception, '')); + publishEvent(eventNames.silentLoginAsync_error, result); + iframe.remove(); + isResolved = true; + reject(new Error(result.error)); } + } } } From b6d0612ed00687ec1b0332cc11a536c6b221e860 Mon Sep 17 00:00:00 2001 From: GitHub Date: Sat, 3 Feb 2024 21:33:29 +0000 Subject: [PATCH 173/440] [skip ci] Update to version 7.15.4 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 19b4d5db1..c7a73aedc 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.15.3", + "version": "7.15.4", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 6d1aa22bb..7796b3fe0 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.15.3'; +export default '7.15.4'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 3371d15b1..e2497663a 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.15.3", + "version": "7.15.4", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 6d1aa22bb..7796b3fe0 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.15.3'; +export default '7.15.4'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 7311cc148..5b8c967e7 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.15.3", + "version": "7.15.4", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 44b58511bb7f966bb3470b1a2592ddc1623cbd79 Mon Sep 17 00:00:00 2001 From: GitHub Date: Sat, 3 Feb 2024 21:33:30 +0000 Subject: [PATCH 174/440] [skip ci] Generate changelog to version 7.15.4 --- CHANGELOG.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d04c2cf2c..df151687c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog -## 7.15.3 +## 7.15.4 + +- [f2d74fb](https://github.com/AxaFrance/oidc-client/commit/f2d74fba6d2e48e6d478aa69d261fe9cceb69bfa) - fix(oidc): eternal lock when refresh_token invalid and multiple tabs (#1281) (release), 2024-02-03 by *Guillaume Chervet* + + +## v7.15.3 - [7a5d32c](https://github.com/AxaFrance/oidc-client/commit/7a5d32cf650870a5b1c2910ceb0a3e6db4cec0b7) - fix(oidc): storage empty update message (release), 2024-02-03 by *Guillaume Chervet* @@ -317,8 +322,3 @@ - [faa0da2](https://github.com/AxaFrance/oidc-client/commit/faa0da2235239a0b12e82a070b3f6e2c30572bfa) - fix(readme): some path was broken, 2023-08-04 by *Guillaume Chervet* -## v7.2.0 - -- [60ea58b](https://github.com/AxaFrance/oidc-client/commit/60ea58b266c4173e3a92b8637d9abd09cca0ea1a) - feat(oidc-service-worker): copy become manual (#1120) (release), 2023-08-04 by *Guillaume Chervet* - - From d79af9aba023faf78e9816c4d681413618bdd843 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Fri, 9 Feb 2024 06:53:33 +0100 Subject: [PATCH 175/440] refactor(all): updates dev libraries (release) (#1284) * refactor(all): updates dev libraries * update (alpha) * update (alpha) * update * ttest * test * upf * test (alpha) * update (alpha) * update --- examples/oidc-client-demo/package.json | 12 +- examples/react-oidc-demo/package.json | 18 +- package.json | 24 +- .../oidc-client-service-worker/package.json | 13 +- .../oidc-client-service-worker/vite.config.js | 5 - packages/oidc-client/package.json | 18 +- .../oidc-client/public/OidcServiceWorker.js | 567 --- packages/oidc-client/src/logout.spec.ts | 2 +- packages/oidc-client/tests/setup.js | 18 +- packages/oidc-client/vite.config.ts | 17 - packages/react-oidc/package.json | 22 +- packages/react-oidc/tests/setup.js | 8 +- pnpm-lock.yaml | 3150 +++++++---------- 13 files changed, 1395 insertions(+), 2479 deletions(-) delete mode 100644 packages/oidc-client/public/OidcServiceWorker.js diff --git a/examples/oidc-client-demo/package.json b/examples/oidc-client-demo/package.json index 3aaa8d91d..4655811b9 100644 --- a/examples/oidc-client-demo/package.json +++ b/examples/oidc-client-demo/package.json @@ -4,11 +4,11 @@ "private": true, "dependencies": { "@axa-fr/oidc-client": "workspace:~", - "@testing-library/jest-dom": "^5.16.5", - "@testing-library/user-event": "^13.5.0", - "@types/jest": "^27.5.2", + "@testing-library/jest-dom": "6.4.2", + "@testing-library/user-event": "14.5.2", + "@types/jest": "29.5.12", "typescript": "^5.3.3", - "web-vitals": "^3.4.0" + "web-vitals": "3.5.2" }, "scripts": { "start": "vite", @@ -30,8 +30,8 @@ ] }, "devDependencies": { - "@types/node": "^20.10.1", + "@types/node": "20.11.16", "cross-env": "^7.0.3", - "vite": "^4.4.12" + "vite": " 5.0.12" } } diff --git a/examples/react-oidc-demo/package.json b/examples/react-oidc-demo/package.json index 0c12ba741..5c34c3e21 100644 --- a/examples/react-oidc-demo/package.json +++ b/examples/react-oidc-demo/package.json @@ -24,21 +24,19 @@ "react-router-dom": "^6.21.1" }, "devDependencies": { - "@testing-library/jest-dom": "5.16.5", - "@testing-library/react": "14.1.2", - "@testing-library/user-event": "14.4.3", - "@types/react": "^18.2.39", - "@vitejs/plugin-react": "4.0.3", - "@vitest/coverage-c8": "^0.33.0", + "@testing-library/jest-dom": "6.4.2", + "@testing-library/react": "14.2.1", + "@testing-library/user-event": "14.5.2", + "@types/react": "18.2.54", + "@vitejs/plugin-react": "4.2.1", "bootstrap": "^4.6.2", "copyfiles": "2.4.1", "cross-env": "^7.0.3", - "jsdom": "22.1.0", - "msw": "2.0.0", + "jsdom": " 24.0.0", "typescript": "5.3.3", - "vite": "^4.4.12", + "vite": "5.0.12", "vite-plugin-dts": "^3.6.4", - "vitest": "^0.33.0" + "vitest": "1.2.2" }, "license": "MIT", "publishConfig": { diff --git a/package.json b/package.json index 2b8fc1bcf..887e64718 100644 --- a/package.json +++ b/package.json @@ -27,26 +27,26 @@ "build": "pnpm -r --filter=./packages/* run build" }, "devDependencies": { - "@typescript-eslint/eslint-plugin": "6.13.1", - "@typescript-eslint/parser": "6.13.1", - "eslint": "^8.54.0", - "eslint-config-prettier": "^8.8.0", - "eslint-define-config": "^1.21.0", - "eslint-plugin-import": "2.29.0", + "@typescript-eslint/eslint-plugin": "6.21.0", + "@typescript-eslint/parser": "6.21.0", + "eslint": "^8.56.0", + "eslint-config-prettier": "9.1.0", + "eslint-define-config": "2.1.0", + "eslint-plugin-import": "2.29.1", "eslint-plugin-jsx-a11y": "6.8.0", - "eslint-plugin-n": "16.3.1", + "eslint-plugin-n": "16.6.2", "eslint-plugin-no-only-tests": "^3.1.0", "eslint-plugin-prettier": "5.0.1", "eslint-plugin-react": "7.33.2", "eslint-plugin-react-hooks": "^4.6.0", - "eslint-plugin-regexp": "^2.1.2", + "eslint-plugin-regexp": "^2.2.0", "eslint-plugin-simple-import-sort": "^10.0.0", - "eslint-plugin-testing-library": "^5.11.0", - "prettier": "3.1.0", + "eslint-plugin-testing-library": "6.2.0", + "prettier": "3.2.5", "tslib": "^2.6.2", - "tsx": "4.6.1", + "tsx": "4.7.0", "typescript": "5.3.3", - "vitest": "0.34.6" + "vitest": "1.2.2" }, "engines": { "node": "16.* || >= 18.0.0" diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index c7a73aedc..f30456754 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -34,15 +34,14 @@ "lint": "eslint src" }, "devDependencies": { - "@vitest/coverage-c8": "^0.33.0", - "cpy": "^10.1.0", + "@vitest/coverage-v8": "1.2.2", + "cpy": "11.0.0", "cpy-cli": "^5.0.0", - "rimraf": "5.0.1", - "msw": "2.0.0", + "rimraf": "5.0.5", "typescript": "5.3.3", - "vite": "^4.4.12", - "vite-plugin-dts": "^3.6.4", - "vitest": "^0.33.0" + "vite": "5.0.12", + "vite-plugin-dts": "^3.7.2", + "vitest": "1.2.2" }, "publishConfig": { "access": "public", diff --git a/packages/oidc-client-service-worker/vite.config.js b/packages/oidc-client-service-worker/vite.config.js index 13467b083..93db0b0ff 100644 --- a/packages/oidc-client-service-worker/vite.config.js +++ b/packages/oidc-client-service-worker/vite.config.js @@ -6,11 +6,6 @@ export default defineConfig({ plugins: [dts({ insertTypesEntry: true, })], - test: { - coverage: { - provider: 'c8' - } - }, build: { minify: false, //default esbuild sourcemap: true, diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index e2497663a..23907a3bb 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -23,18 +23,18 @@ "@axa-fr/oidc-client-service-worker": "workspace:*" }, "devDependencies": { - "@testing-library/dom": "^9.3.3", - "@testing-library/jest-dom": "^5.16.5", - "@testing-library/react": "14.1.2", - "@vitest/coverage-v8": "^0.33.0", + "@testing-library/dom": "9.3.4", + "@testing-library/jest-dom": "6.4.2", + "@testing-library/react": "14.2.1", + "@vitest/coverage-v8": "1.2.2", "base64-js": "^1.5.1", - "cpy": "^10.1.0", + "cpy": "11.0.0", "cpy-cli": "^5.0.0", - "rimraf": "5.0.1", + "rimraf": "5.0.5", "typescript": "5.3.3", - "vite": "^4.4.12", - "vite-plugin-dts": "^3.6.4", - "vitest": "^0.33.0" + "vite": "5.0.12", + "vite-plugin-dts": "3.7.2", + "vitest": "1.2.2" }, "keywords": [ "oidc", diff --git a/packages/oidc-client/public/OidcServiceWorker.js b/packages/oidc-client/public/OidcServiceWorker.js deleted file mode 100644 index 2d2a54661..000000000 --- a/packages/oidc-client/public/OidcServiceWorker.js +++ /dev/null @@ -1,567 +0,0 @@ -const scriptFilename = "OidcTrustedDomains.js"; -const acceptAnyDomainToken = "*"; -const TOKEN = { - REFRESH_TOKEN: "REFRESH_TOKEN_SECURED_BY_OIDC_SERVICE_WORKER", - ACCESS_TOKEN: "ACCESS_TOKEN_SECURED_BY_OIDC_SERVICE_WORKER", - NONCE_TOKEN: "NONCE_SECURED_BY_OIDC_SERVICE_WORKER", - CODE_VERIFIER: "CODE_VERIFIER_SECURED_BY_OIDC_SERVICE_WORKER" -}; -const TokenRenewMode = { - access_token_or_id_token_invalid: "access_token_or_id_token_invalid", - access_token_invalid: "access_token_invalid", - id_token_invalid: "id_token_invalid" -}; -const openidWellknownUrlEndWith = "/.well-known/openid-configuration"; -const version = "7.1.0"; -function checkDomain(domains, endpoint) { - if (!endpoint) { - return; - } - const domain = domains.find((domain2) => { - var _a; - let testable; - if (typeof domain2 === "string") { - testable = new RegExp(`^${domain2}`); - } else { - testable = domain2; - } - return (_a = testable.test) == null ? void 0 : _a.call(testable, endpoint); - }); - if (!domain) { - throw new Error( - "Domain " + endpoint + " is not trusted, please add domain in " + scriptFilename - ); - } -} -const getDomains = (trustedDomain, type) => { - if (Array.isArray(trustedDomain)) { - return trustedDomain; - } - return trustedDomain[`${type}Domains`] ?? trustedDomain.domains ?? []; -}; -const getCurrentDatabaseDomain = (database2, url, trustedDomains2) => { - var _a; - if (url.endsWith(openidWellknownUrlEndWith)) { - return null; - } - for (const [key, currentDatabase] of Object.entries(database2)) { - const oidcServerConfiguration = currentDatabase.oidcServerConfiguration; - if (!oidcServerConfiguration) { - continue; - } - if (oidcServerConfiguration.tokenEndpoint && url === oidcServerConfiguration.tokenEndpoint) { - continue; - } - if (oidcServerConfiguration.revocationEndpoint && url === oidcServerConfiguration.revocationEndpoint) { - continue; - } - const trustedDomain = trustedDomains2 == null ? [] : trustedDomains2[key]; - const domains = getDomains(trustedDomain, "accessToken"); - const domainsToSendTokens = oidcServerConfiguration.userInfoEndpoint ? [oidcServerConfiguration.userInfoEndpoint, ...domains] : [...domains]; - let hasToSendToken = false; - if (domainsToSendTokens.find((f) => f === acceptAnyDomainToken)) { - hasToSendToken = true; - } else { - for (let i = 0; i < domainsToSendTokens.length; i++) { - let domain = domainsToSendTokens[i]; - if (typeof domain === "string") { - domain = new RegExp(`^${domain}`); - } - if ((_a = domain.test) == null ? void 0 : _a.call(domain, url)) { - hasToSendToken = true; - break; - } - } - } - if (hasToSendToken) { - if (!currentDatabase.tokens) { - return null; - } - return currentDatabase; - } - } - return null; -}; -function serializeHeaders(headers) { - const headersObj = {}; - for (const key of headers.keys()) { - if (headers.has(key)) { - headersObj[key] = headers.get(key); - } - } - return headersObj; -} -const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms)); -function countLetter(str, find) { - return str.split(find).length - 1; -} -function parseJwt(token) { - return JSON.parse( - b64DecodeUnicode(token.split(".")[1].replace("-", "+").replace("_", "/")) - ); -} -function b64DecodeUnicode(str) { - return decodeURIComponent( - Array.prototype.map.call( - atob(str), - (c) => "%" + ("00" + c.charCodeAt(0).toString(16)).slice(-2) - ).join("") - ); -} -function computeTimeLeft(refreshTimeBeforeTokensExpirationInSecond, expiresAt) { - const currentTimeUnixSecond = (/* @__PURE__ */ new Date()).getTime() / 1e3; - return Math.round( - expiresAt - refreshTimeBeforeTokensExpirationInSecond - currentTimeUnixSecond - ); -} -function isTokensValid(tokens) { - if (!tokens) { - return false; - } - return computeTimeLeft(0, tokens.expiresAt) > 0; -} -const extractTokenPayload = (token) => { - try { - if (!token) { - return null; - } - if (countLetter(token, ".") === 2) { - return parseJwt(token); - } else { - return null; - } - } catch (e) { - console.warn(e); - } - return null; -}; -const isTokensOidcValid = (tokens, nonce, oidcServerConfiguration) => { - if (tokens.idTokenPayload) { - const idTokenPayload = tokens.idTokenPayload; - if (oidcServerConfiguration.issuer !== idTokenPayload.iss) { - return { isValid: false, reason: "Issuer does not match" }; - } - const currentTimeUnixSecond = (/* @__PURE__ */ new Date()).getTime() / 1e3; - if (idTokenPayload.exp && idTokenPayload.exp < currentTimeUnixSecond) { - return { isValid: false, reason: "Token expired" }; - } - const timeInSevenDays = 60 * 60 * 24 * 7; - if (idTokenPayload.iat && idTokenPayload.iat + timeInSevenDays < currentTimeUnixSecond) { - return { isValid: false, reason: "Token is used from too long time" }; - } - if (nonce && idTokenPayload.nonce && idTokenPayload.nonce !== nonce) { - return { isValid: false, reason: "Nonce does not match" }; - } - } - return { isValid: true, reason: "" }; -}; -function _hideTokens(tokens, currentDatabaseElement, configurationName) { - if (!tokens.issued_at) { - const currentTimeUnixSecond = (/* @__PURE__ */ new Date()).getTime() / 1e3; - tokens.issued_at = currentTimeUnixSecond; - } else if (typeof tokens.issued_at == "string") { - tokens.issued_at = parseInt(tokens.issued_at, 10); - } - const accessTokenPayload = extractTokenPayload(tokens.access_token); - const secureTokens = { - ...tokens, - accessTokenPayload - }; - if (currentDatabaseElement.hideAccessToken) { - secureTokens.access_token = TOKEN.ACCESS_TOKEN + "_" + configurationName; - } - tokens.accessTokenPayload = accessTokenPayload; - let _idTokenPayload = null; - if (tokens.id_token) { - _idTokenPayload = extractTokenPayload(tokens.id_token); - tokens.idTokenPayload = { ..._idTokenPayload }; - if (_idTokenPayload.nonce && currentDatabaseElement.nonce != null) { - const keyNonce = TOKEN.NONCE_TOKEN + "_" + currentDatabaseElement.configurationName; - _idTokenPayload.nonce = keyNonce; - } - secureTokens.idTokenPayload = _idTokenPayload; - } - if (tokens.refresh_token) { - secureTokens.refresh_token = TOKEN.REFRESH_TOKEN + "_" + configurationName; - } - const expireIn = typeof tokens.expires_in == "string" ? parseInt(tokens.expires_in, 10) : tokens.expires_in; - const idTokenExpiresAt = _idTokenPayload && _idTokenPayload.exp ? _idTokenPayload.exp : Number.MAX_VALUE; - const accessTokenExpiresAt = accessTokenPayload && accessTokenPayload.exp ? accessTokenPayload.exp : tokens.issued_at + expireIn; - let expiresAt; - const tokenRenewMode = currentDatabaseElement.oidcConfiguration.token_renew_mode; - if (tokenRenewMode === TokenRenewMode.access_token_invalid) { - expiresAt = accessTokenExpiresAt; - } else if (tokenRenewMode === TokenRenewMode.id_token_invalid) { - expiresAt = idTokenExpiresAt; - } else { - expiresAt = idTokenExpiresAt < accessTokenExpiresAt ? idTokenExpiresAt : accessTokenExpiresAt; - } - secureTokens.expiresAt = expiresAt; - tokens.expiresAt = expiresAt; - const nonce = currentDatabaseElement.nonce ? currentDatabaseElement.nonce.nonce : null; - const { isValid, reason } = isTokensOidcValid( - tokens, - nonce, - currentDatabaseElement.oidcServerConfiguration - ); - if (!isValid) { - throw Error(`Tokens are not OpenID valid, reason: ${reason}`); - } - if (currentDatabaseElement.tokens != null && "refresh_token" in currentDatabaseElement.tokens && !("refresh_token" in tokens)) { - const refreshToken = currentDatabaseElement.tokens.refresh_token; - currentDatabaseElement.tokens = { - ...tokens, - refresh_token: refreshToken - }; - } else { - currentDatabaseElement.tokens = tokens; - } - currentDatabaseElement.status = "LOGGED_IN"; - return secureTokens; -} -function hideTokens(currentDatabaseElement) { - const configurationName = currentDatabaseElement.configurationName; - return (response) => { - if (response.status !== 200) { - return response; - } - return response.json().then((tokens) => { - const secureTokens = _hideTokens(tokens, currentDatabaseElement, configurationName); - const body = JSON.stringify(secureTokens); - return new Response(body, response); - }); - }; -} -function replaceCodeVerifier(codeVerifier, newCodeVerifier) { - const regex = /code_verifier=[A-Za-z0-9_-]+/i; - return codeVerifier.replace(regex, `code_verifier=${newCodeVerifier}`); -} -const _self = self; -_self.importScripts(scriptFilename); -const id = Math.round((/* @__PURE__ */ new Date()).getTime() / 1e3).toString(); -const keepAliveJsonFilename = "OidcKeepAliveServiceWorker.json"; -const handleInstall = (event) => { - console.log("[OidcServiceWorker] service worker installed " + id); - event.waitUntil(_self.skipWaiting()); -}; -const handleActivate = (event) => { - console.log("[OidcServiceWorker] service worker activated " + id); - event.waitUntil(_self.clients.claim()); -}; -let currentLoginCallbackConfigurationName = null; -const database = { - default: { - configurationName: "default", - tokens: null, - status: null, - state: null, - codeVerifier: null, - nonce: null, - oidcServerConfiguration: null, - hideAccessToken: true - } -}; -const getCurrentDatabasesTokenEndpoint = (database2, url) => { - const databases = []; - for (const [, value] of Object.entries(database2)) { - if (value.oidcServerConfiguration != null && url.startsWith(value.oidcServerConfiguration.tokenEndpoint)) { - databases.push(value); - } else if (value.oidcServerConfiguration != null && value.oidcServerConfiguration.revocationEndpoint && url.startsWith(value.oidcServerConfiguration.revocationEndpoint)) { - databases.push(value); - } - } - return databases; -}; -const keepAliveAsync = async (event) => { - const originalRequest = event.request; - const isFromVanilla = originalRequest.headers.has("oidc-vanilla"); - const init = { status: 200, statusText: "oidc-service-worker" }; - const response = new Response("{}", init); - if (!isFromVanilla) { - const originalRequestUrl = new URL(originalRequest.url); - const minSleepSeconds = Number(originalRequestUrl.searchParams.get("minSleepSeconds")) || 240; - for (let i = 0; i < minSleepSeconds; i++) { - await sleep(1e3 + Math.floor(Math.random() * 1e3)); - const cache = await caches.open("oidc_dummy_cache"); - await cache.put(event.request, response.clone()); - } - } - return response; -}; -const handleFetch = async (event) => { - const originalRequest = event.request; - const url = originalRequest.url; - if (originalRequest.url.includes(keepAliveJsonFilename)) { - event.respondWith(keepAliveAsync(event)); - return; - } - const currentDatabaseForRequestAccessToken = getCurrentDatabaseDomain( - database, - originalRequest.url, - trustedDomains - ); - if (currentDatabaseForRequestAccessToken && currentDatabaseForRequestAccessToken.tokens && currentDatabaseForRequestAccessToken.tokens.access_token) { - while (currentDatabaseForRequestAccessToken.tokens && !isTokensValid(currentDatabaseForRequestAccessToken.tokens)) { - await sleep(200); - } - const newRequest = originalRequest.mode === "navigate" ? new Request(originalRequest, { - headers: { - ...serializeHeaders(originalRequest.headers), - authorization: "Bearer " + currentDatabaseForRequestAccessToken.tokens.access_token - } - }) : new Request(originalRequest, { - headers: { - ...serializeHeaders(originalRequest.headers), - authorization: "Bearer " + currentDatabaseForRequestAccessToken.tokens.access_token - }, - mode: currentDatabaseForRequestAccessToken.oidcConfiguration.service_worker_convert_all_requests_to_cors ? "cors" : originalRequest.mode - }); - event.waitUntil(event.respondWith(fetch(newRequest))); - return; - } - if (event.request.method !== "POST") { - return; - } - let currentDatabase = null; - const currentDatabases = getCurrentDatabasesTokenEndpoint( - database, - originalRequest.url - ); - const numberDatabase = currentDatabases.length; - if (numberDatabase > 0) { - const maPromesse = new Promise((resolve, reject) => { - const clonedRequest = originalRequest.clone(); - const response = clonedRequest.text().then((actualBody) => { - if (actualBody.includes(TOKEN.REFRESH_TOKEN) || actualBody.includes(TOKEN.ACCESS_TOKEN)) { - let newBody = actualBody; - for (let i = 0; i < numberDatabase; i++) { - const currentDb = currentDatabases[i]; - if (currentDb && currentDb.tokens != null) { - const keyRefreshToken = TOKEN.REFRESH_TOKEN + "_" + currentDb.configurationName; - if (actualBody.includes(keyRefreshToken)) { - newBody = newBody.replace( - keyRefreshToken, - encodeURIComponent(currentDb.tokens.refresh_token) - ); - currentDatabase = currentDb; - break; - } - const keyAccessToken = TOKEN.ACCESS_TOKEN + "_" + currentDb.configurationName; - if (actualBody.includes(keyAccessToken)) { - newBody = newBody.replace( - keyAccessToken, - encodeURIComponent(currentDb.tokens.access_token) - ); - currentDatabase = currentDb; - break; - } - } - } - const fetchPromise = fetch(originalRequest, { - body: newBody, - method: clonedRequest.method, - headers: { - ...serializeHeaders(originalRequest.headers) - }, - mode: clonedRequest.mode, - cache: clonedRequest.cache, - redirect: clonedRequest.redirect, - referrer: clonedRequest.referrer, - credentials: clonedRequest.credentials, - integrity: clonedRequest.integrity - }); - if (currentDatabase && currentDatabase.oidcServerConfiguration != null && currentDatabase.oidcServerConfiguration.revocationEndpoint && url.startsWith( - currentDatabase.oidcServerConfiguration.revocationEndpoint - )) { - return fetchPromise.then(async (response2) => { - const text = await response2.text(); - return new Response(text, response2); - }); - } - return fetchPromise.then(hideTokens(currentDatabase)); - } else if (actualBody.includes("code_verifier=") && currentLoginCallbackConfigurationName) { - currentDatabase = database[currentLoginCallbackConfigurationName]; - currentLoginCallbackConfigurationName = null; - let newBody = actualBody; - if (currentDatabase && currentDatabase.codeVerifier != null) { - newBody = replaceCodeVerifier(newBody, currentDatabase.codeVerifier); - } - return fetch(originalRequest, { - body: newBody, - method: clonedRequest.method, - headers: { - ...serializeHeaders(originalRequest.headers) - }, - mode: clonedRequest.mode, - cache: clonedRequest.cache, - redirect: clonedRequest.redirect, - referrer: clonedRequest.referrer, - credentials: clonedRequest.credentials, - integrity: clonedRequest.integrity - }).then(hideTokens(currentDatabase)); - } - return fetch(originalRequest, { - body: actualBody, - method: clonedRequest.method, - headers: { - ...serializeHeaders(originalRequest.headers) - }, - mode: clonedRequest.mode, - cache: clonedRequest.cache, - redirect: clonedRequest.redirect, - referrer: clonedRequest.referrer, - credentials: clonedRequest.credentials, - integrity: clonedRequest.integrity - }); - }); - response.then((r) => { - resolve(r); - }).catch((err) => { - reject(err); - }); - }); - event.waitUntil(event.respondWith(maPromesse)); - } -}; -const trustedDomainsShowAccessToken = {}; -const handleMessage = (event) => { - const port = event.ports[0]; - const data = event.data; - const configurationName = data.configurationName; - let currentDatabase = database[configurationName]; - if (trustedDomains == null) { - trustedDomains = {}; - } - if (!currentDatabase) { - if (trustedDomainsShowAccessToken[configurationName] === void 0) { - const trustedDomain = trustedDomains[configurationName]; - trustedDomainsShowAccessToken[configurationName] = Array.isArray(trustedDomain) ? false : trustedDomain.showAccessToken; - } - database[configurationName] = { - tokens: null, - state: null, - codeVerifier: null, - oidcServerConfiguration: null, - oidcConfiguration: void 0, - nonce: null, - status: null, - configurationName, - hideAccessToken: !trustedDomainsShowAccessToken[configurationName] - }; - currentDatabase = database[configurationName]; - if (!trustedDomains[configurationName]) { - trustedDomains[configurationName] = []; - } - } - switch (data.type) { - case "clear": - currentDatabase.tokens = null; - currentDatabase.state = null; - currentDatabase.codeVerifier = null; - currentDatabase.status = data.data.status; - port.postMessage({ configurationName }); - return; - case "init": { - const oidcServerConfiguration = data.data.oidcServerConfiguration; - const trustedDomain = trustedDomains[configurationName]; - const domains = getDomains(trustedDomain, "oidc"); - if (!domains.find((f) => f === acceptAnyDomainToken)) { - [ - oidcServerConfiguration.tokenEndpoint, - oidcServerConfiguration.revocationEndpoint, - oidcServerConfiguration.userInfoEndpoint, - oidcServerConfiguration.issuer - ].forEach((url) => { - checkDomain(domains, url); - }); - } - currentDatabase.oidcServerConfiguration = oidcServerConfiguration; - currentDatabase.oidcConfiguration = data.data.oidcConfiguration; - const where = data.data.where; - if (where === "loginCallbackAsync" || where === "tryKeepExistingSessionAsync") { - currentLoginCallbackConfigurationName = configurationName; - } else { - currentLoginCallbackConfigurationName = null; - } - if (!currentDatabase.tokens) { - port.postMessage({ - tokens: null, - status: currentDatabase.status, - configurationName, - version - }); - } else { - const tokens = { - ...currentDatabase.tokens - }; - if (currentDatabase.hideAccessToken) { - tokens.access_token = TOKEN.ACCESS_TOKEN + "_" + configurationName; - } - if (tokens.refresh_token) { - tokens.refresh_token = TOKEN.REFRESH_TOKEN + "_" + configurationName; - } - if (tokens.idTokenPayload && tokens.idTokenPayload.nonce && currentDatabase.nonce != null) { - tokens.idTokenPayload.nonce = TOKEN.NONCE_TOKEN + "_" + configurationName; - } - port.postMessage({ - tokens, - status: currentDatabase.status, - configurationName, - version - }); - } - return; - } - case "setState": - currentDatabase.state = data.data.state; - port.postMessage({ configurationName }); - return; - case "getState": { - const state = currentDatabase.state; - port.postMessage({ configurationName, state }); - return; - } - case "setCodeVerifier": - currentDatabase.codeVerifier = data.data.codeVerifier; - port.postMessage({ configurationName }); - return; - case "getCodeVerifier": { - port.postMessage({ - configurationName, - codeVerifier: currentDatabase.codeVerifier != null ? TOKEN.CODE_VERIFIER + "_" + configurationName : null - }); - return; - } - case "setSessionState": - currentDatabase.sessionState = data.data.sessionState; - port.postMessage({ configurationName }); - return; - case "getSessionState": { - const sessionState = currentDatabase.sessionState; - port.postMessage({ configurationName, sessionState }); - return; - } - case "setNonce": { - const nonce = data.data.nonce; - if (nonce) { - currentDatabase.nonce = nonce; - } - port.postMessage({ configurationName }); - return; - } - case "getNonce": { - const keyNonce = TOKEN.NONCE_TOKEN + "_" + configurationName; - const nonce = currentDatabase.nonce ? keyNonce : null; - port.postMessage({ configurationName, nonce }); - return; - } - default: - currentDatabase.items = { ...data.data }; - port.postMessage({ configurationName }); - } -}; -_self.addEventListener("install", handleInstall); -_self.addEventListener("activate", handleActivate); -_self.addEventListener("fetch", handleFetch); -_self.addEventListener("message", handleMessage); -//# sourceMappingURL=OidcServiceWorker.js.map diff --git a/packages/oidc-client/src/logout.spec.ts b/packages/oidc-client/src/logout.spec.ts index ad77d181b..e770abe64 100644 --- a/packages/oidc-client/src/logout.spec.ts +++ b/packages/oidc-client/src/logout.spec.ts @@ -1,4 +1,4 @@ -import '@testing-library/jest-dom'; +// import '@testing-library/jest-dom'; import { describe, expect, it, vi } from 'vitest'; diff --git a/packages/oidc-client/tests/setup.js b/packages/oidc-client/tests/setup.js index 47da0ebc4..aece2885f 100644 --- a/packages/oidc-client/tests/setup.js +++ b/packages/oidc-client/tests/setup.js @@ -1,11 +1,11 @@ -import matchers from '@testing-library/jest-dom/matchers'; -import { cleanup } from '@testing-library/react'; -import { afterEach,expect } from 'vitest'; +import { configDefaults } from 'vitest/config' +import {defineConfig} from "vite"; -// extends Vitest's expect method with methods from react-testing-library -expect.extend(matchers); - -// runs a cleanup after each test case (e.g. clearing jsdom) -afterEach(() => { - cleanup(); +export default defineConfig({ + test: { + exclude:[ + ...configDefaults.exclude, + 'public/*' + ] + }, }); \ No newline at end of file diff --git a/packages/oidc-client/vite.config.ts b/packages/oidc-client/vite.config.ts index 8442ebe99..398d1a5d7 100644 --- a/packages/oidc-client/vite.config.ts +++ b/packages/oidc-client/vite.config.ts @@ -2,10 +2,6 @@ import { defineConfig } from 'vite'; import dts from 'vite-plugin-dts'; -import pkg from './package.json'; - -const dependencies = externalDependencies(); -console.log('external dependencies:', dependencies); export default defineConfig({ build: { @@ -15,9 +11,6 @@ export default defineConfig({ formats: ['es', 'umd'], fileName: 'index', }, - rollupOptions: { - external: [...dependencies], - }, }, plugins: [ @@ -26,15 +19,5 @@ export default defineConfig({ resolve: { preserveSymlinks: true, // https://github.com/vitejs/vite/issues/11657 }, - test: { - globals: true, - environment: 'jsdom', - setupFiles: './tests/setup.js', - }, }); -function externalDependencies(): Array { - const deps = Object.keys(pkg.dependencies || {}); - const peerDeps = Object.keys(pkg.peerDependencies || {}); - return [...deps, ...peerDeps]; -} diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 5b8c967e7..393653747 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -48,24 +48,24 @@ "react": "^17.0.0 || ^18.0.0" }, "devDependencies": { - "@testing-library/jest-dom": "5.16.5", - "@testing-library/react": "14.1.2", - "@testing-library/user-event": "14.4.3", + "@testing-library/jest-dom": "6.4.2", + "@testing-library/react": "14.2.1", + "@testing-library/user-event": "14.5.2", "@types/react": "^18.2.39", - "@vitejs/plugin-react": "4.0.3", - "@vitest/coverage-v8": "^0.33.0", - "cpy": "^10.1.0", + "@vitejs/plugin-react": "4.2.1", + "@vitest/coverage-v8": "1.2.2", + "cpy": "11.0.0", "cpy-cli": "^5.0.0", "cross-env": "^7.0.3", - "jsdom": "22.1.0", - "msw": "2.0.0", + "jsdom": "24.0.0", + "msw": "2.1.6", "react": "^18.2.0", "react-dom": "^18.2.0", "rimraf": "5.0.1", "typescript": "5.3.3", - "vite": "^4.4.12", - "vite-plugin-dts": "^3.6.4", - "vitest": "^0.33.0" + "vite": "5.0.12", + "vite-plugin-dts": "3.7.2", + "vitest": "1.2.2" }, "license": "MIT", "publishConfig": { diff --git a/packages/react-oidc/tests/setup.js b/packages/react-oidc/tests/setup.js index 47da0ebc4..3256870fe 100644 --- a/packages/react-oidc/tests/setup.js +++ b/packages/react-oidc/tests/setup.js @@ -1,9 +1,5 @@ -import matchers from '@testing-library/jest-dom/matchers'; -import { cleanup } from '@testing-library/react'; -import { afterEach,expect } from 'vitest'; - -// extends Vitest's expect method with methods from react-testing-library -expect.extend(matchers); +import { cleanup } from '@testing-library/react'; +import { afterEach } from 'vitest'; // runs a cleanup after each test case (e.g. clearing jsdom) afterEach(() => { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 086c4dcdf..cabbeccf6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,65 +9,65 @@ importers: .: devDependencies: '@typescript-eslint/eslint-plugin': - specifier: 6.13.1 - version: 6.13.1(@typescript-eslint/parser@6.13.1)(eslint@8.54.0)(typescript@5.3.3) + specifier: 6.21.0 + version: 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/parser': - specifier: 6.13.1 - version: 6.13.1(eslint@8.54.0)(typescript@5.3.3) + specifier: 6.21.0 + version: 6.21.0(eslint@8.56.0)(typescript@5.3.3) eslint: - specifier: ^8.54.0 - version: 8.54.0 + specifier: ^8.56.0 + version: 8.56.0 eslint-config-prettier: - specifier: ^8.8.0 - version: 8.10.0(eslint@8.54.0) + specifier: 9.1.0 + version: 9.1.0(eslint@8.56.0) eslint-define-config: - specifier: ^1.21.0 - version: 1.24.1 + specifier: 2.1.0 + version: 2.1.0 eslint-plugin-import: - specifier: 2.29.0 - version: 2.29.0(@typescript-eslint/parser@6.13.1)(eslint@8.54.0) + specifier: 2.29.1 + version: 2.29.1(@typescript-eslint/parser@6.21.0)(eslint@8.56.0) eslint-plugin-jsx-a11y: specifier: 6.8.0 - version: 6.8.0(eslint@8.54.0) + version: 6.8.0(eslint@8.56.0) eslint-plugin-n: - specifier: 16.3.1 - version: 16.3.1(eslint@8.54.0) + specifier: 16.6.2 + version: 16.6.2(eslint@8.56.0) eslint-plugin-no-only-tests: specifier: ^3.1.0 version: 3.1.0 eslint-plugin-prettier: specifier: 5.0.1 - version: 5.0.1(eslint-config-prettier@8.10.0)(eslint@8.54.0)(prettier@3.1.0) + version: 5.0.1(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.2.5) eslint-plugin-react: specifier: 7.33.2 - version: 7.33.2(eslint@8.54.0) + version: 7.33.2(eslint@8.56.0) eslint-plugin-react-hooks: specifier: ^4.6.0 - version: 4.6.0(eslint@8.54.0) + version: 4.6.0(eslint@8.56.0) eslint-plugin-regexp: - specifier: ^2.1.2 - version: 2.1.2(eslint@8.54.0) + specifier: ^2.2.0 + version: 2.2.0(eslint@8.56.0) eslint-plugin-simple-import-sort: specifier: ^10.0.0 - version: 10.0.0(eslint@8.54.0) + version: 10.0.0(eslint@8.56.0) eslint-plugin-testing-library: - specifier: ^5.11.0 - version: 5.11.1(eslint@8.54.0)(typescript@5.3.3) + specifier: 6.2.0 + version: 6.2.0(eslint@8.56.0)(typescript@5.3.3) prettier: - specifier: 3.1.0 - version: 3.1.0 + specifier: 3.2.5 + version: 3.2.5 tslib: specifier: ^2.6.2 version: 2.6.2 tsx: - specifier: 4.6.1 - version: 4.6.1 + specifier: 4.7.0 + version: 4.7.0 typescript: specifier: 5.3.3 version: 5.3.3 vitest: - specifier: 0.34.6 - version: 0.34.6 + specifier: 1.2.2 + version: 1.2.2(jsdom@24.0.0) examples/nextjs-demo: dependencies: @@ -76,7 +76,7 @@ importers: version: link:../../packages/react-oidc next: specifier: latest - version: 14.0.4(react-dom@18.2.0)(react@18.2.0) + version: 14.1.0(react-dom@18.2.0)(react@18.2.0) react: specifier: latest version: 18.2.0 @@ -90,30 +90,30 @@ importers: specifier: workspace:~ version: link:../../packages/oidc-client '@testing-library/jest-dom': - specifier: ^5.16.5 - version: 5.17.0 + specifier: 6.4.2 + version: 6.4.2(@types/jest@29.5.12)(vitest@1.2.2) '@testing-library/user-event': - specifier: ^13.5.0 - version: 13.5.0(@testing-library/dom@9.3.3) + specifier: 14.5.2 + version: 14.5.2(@testing-library/dom@9.3.4) '@types/jest': - specifier: ^27.5.2 - version: 27.5.2 + specifier: 29.5.12 + version: 29.5.12 typescript: specifier: ^5.3.3 version: 5.3.3 web-vitals: - specifier: ^3.4.0 - version: 3.4.0 + specifier: 3.5.2 + version: 3.5.2 devDependencies: '@types/node': - specifier: ^20.10.1 - version: 20.10.1 + specifier: 20.11.16 + version: 20.11.16 cross-env: specifier: ^7.0.3 version: 7.0.3 vite: - specifier: ^4.4.12 - version: 4.4.12(@types/node@20.10.1) + specifier: ' 5.0.12' + version: 5.0.12(@types/node@20.11.16) examples/react-oidc-demo: dependencies: @@ -131,23 +131,20 @@ importers: version: 6.21.1(react-dom@18.2.0)(react@18.2.0) devDependencies: '@testing-library/jest-dom': - specifier: 5.16.5 - version: 5.16.5 + specifier: 6.4.2 + version: 6.4.2(@types/jest@29.5.12)(vitest@1.2.2) '@testing-library/react': - specifier: 14.1.2 - version: 14.1.2(react-dom@18.2.0)(react@18.2.0) + specifier: 14.2.1 + version: 14.2.1(react-dom@18.2.0)(react@18.2.0) '@testing-library/user-event': - specifier: 14.4.3 - version: 14.4.3(@testing-library/dom@9.3.3) + specifier: 14.5.2 + version: 14.5.2(@testing-library/dom@9.3.4) '@types/react': - specifier: ^18.2.39 - version: 18.2.39 + specifier: 18.2.54 + version: 18.2.54 '@vitejs/plugin-react': - specifier: 4.0.3 - version: 4.0.3(vite@4.4.12) - '@vitest/coverage-c8': - specifier: ^0.33.0 - version: 0.33.0(vitest@0.33.0) + specifier: 4.2.1 + version: 4.2.1(vite@5.0.12) bootstrap: specifier: ^4.6.2 version: 4.6.2(jquery@3.7.1)(popper.js@1.16.1) @@ -158,23 +155,20 @@ importers: specifier: ^7.0.3 version: 7.0.3 jsdom: - specifier: 22.1.0 - version: 22.1.0 - msw: - specifier: 2.0.0 - version: 2.0.0(typescript@5.3.3) + specifier: ' 24.0.0' + version: 24.0.0 typescript: specifier: 5.3.3 version: 5.3.3 vite: - specifier: ^4.4.12 - version: 4.4.12(@types/node@20.10.1) + specifier: 5.0.12 + version: 5.0.12(@types/node@20.11.16) vite-plugin-dts: specifier: ^3.6.4 - version: 3.6.4(typescript@5.3.3)(vite@4.4.12) + version: 3.6.4(typescript@5.3.3)(vite@5.0.12) vitest: - specifier: ^0.33.0 - version: 0.33.0(jsdom@22.1.0) + specifier: 1.2.2 + version: 1.2.2(jsdom@24.0.0) packages/oidc-client: dependencies: @@ -183,71 +177,68 @@ importers: version: link:../oidc-client-service-worker devDependencies: '@testing-library/dom': - specifier: ^9.3.3 - version: 9.3.3 + specifier: 9.3.4 + version: 9.3.4 '@testing-library/jest-dom': - specifier: ^5.16.5 - version: 5.17.0 + specifier: 6.4.2 + version: 6.4.2(@types/jest@29.5.12)(vitest@1.2.2) '@testing-library/react': - specifier: 14.1.2 - version: 14.1.2(react-dom@18.2.0)(react@18.2.0) + specifier: 14.2.1 + version: 14.2.1(react-dom@18.2.0)(react@18.2.0) '@vitest/coverage-v8': - specifier: ^0.33.0 - version: 0.33.0(vitest@0.33.0) + specifier: 1.2.2 + version: 1.2.2(vitest@1.2.2) base64-js: specifier: ^1.5.1 version: 1.5.1 cpy: - specifier: ^10.1.0 - version: 10.1.0 + specifier: 11.0.0 + version: 11.0.0 cpy-cli: specifier: ^5.0.0 version: 5.0.0 rimraf: - specifier: 5.0.1 - version: 5.0.1 + specifier: 5.0.5 + version: 5.0.5 typescript: specifier: 5.3.3 version: 5.3.3 vite: - specifier: ^4.4.12 - version: 4.4.12(@types/node@20.10.1) + specifier: 5.0.12 + version: 5.0.12(@types/node@20.11.16) vite-plugin-dts: - specifier: ^3.6.4 - version: 3.6.4(typescript@5.3.3)(vite@4.4.12) + specifier: 3.7.2 + version: 3.7.2(typescript@5.3.3)(vite@5.0.12) vitest: - specifier: ^0.33.0 - version: 0.33.0(jsdom@22.1.0) + specifier: 1.2.2 + version: 1.2.2(jsdom@24.0.0) packages/oidc-client-service-worker: devDependencies: - '@vitest/coverage-c8': - specifier: ^0.33.0 - version: 0.33.0(vitest@0.33.0) + '@vitest/coverage-v8': + specifier: 1.2.2 + version: 1.2.2(vitest@1.2.2) cpy: - specifier: ^10.1.0 - version: 10.1.0 + specifier: 11.0.0 + version: 11.0.0 cpy-cli: specifier: ^5.0.0 version: 5.0.0 - msw: - specifier: 2.0.0 - version: 2.0.0(typescript@5.3.3) rimraf: - specifier: 5.0.1 - version: 5.0.1 + specifier: 5.0.5 + version: 5.0.5 typescript: specifier: 5.3.3 version: 5.3.3 vite: - specifier: ^4.4.12 - version: 4.4.12(@types/node@20.10.1) + specifier: 5.0.12 + version: 5.0.12(@types/node@20.11.16) vite-plugin-dts: - specifier: ^3.6.4 - version: 3.6.4(typescript@5.3.3)(vite@4.4.12) + specifier: ^3.7.2 + version: 3.7.2(typescript@5.3.3)(vite@5.0.12) vitest: - specifier: ^0.33.0 - version: 0.33.0(jsdom@22.1.0) + specifier: 1.2.2 + version: 1.2.2(jsdom@24.0.0) packages/react-oidc: dependencies: @@ -262,26 +253,26 @@ importers: version: 1.5.1 devDependencies: '@testing-library/jest-dom': - specifier: 5.16.5 - version: 5.16.5 + specifier: 6.4.2 + version: 6.4.2(@types/jest@29.5.12)(vitest@1.2.2) '@testing-library/react': - specifier: 14.1.2 - version: 14.1.2(react-dom@18.2.0)(react@18.2.0) + specifier: 14.2.1 + version: 14.2.1(react-dom@18.2.0)(react@18.2.0) '@testing-library/user-event': - specifier: 14.4.3 - version: 14.4.3(@testing-library/dom@9.3.3) + specifier: 14.5.2 + version: 14.5.2(@testing-library/dom@9.3.4) '@types/react': specifier: ^18.2.39 version: 18.2.39 '@vitejs/plugin-react': - specifier: 4.0.3 - version: 4.0.3(vite@4.4.12) + specifier: 4.2.1 + version: 4.2.1(vite@5.0.12) '@vitest/coverage-v8': - specifier: ^0.33.0 - version: 0.33.0(vitest@0.33.0) + specifier: 1.2.2 + version: 1.2.2(vitest@1.2.2) cpy: - specifier: ^10.1.0 - version: 10.1.0 + specifier: 11.0.0 + version: 11.0.0 cpy-cli: specifier: ^5.0.0 version: 5.0.0 @@ -289,11 +280,11 @@ importers: specifier: ^7.0.3 version: 7.0.3 jsdom: - specifier: 22.1.0 - version: 22.1.0 + specifier: 24.0.0 + version: 24.0.0 msw: - specifier: 2.0.0 - version: 2.0.0(typescript@5.3.3) + specifier: 2.1.6 + version: 2.1.6(typescript@5.3.3) react: specifier: ^18.2.0 version: 18.2.0 @@ -307,14 +298,14 @@ importers: specifier: 5.3.3 version: 5.3.3 vite: - specifier: ^4.4.12 - version: 4.4.12(@types/node@20.10.1) + specifier: 5.0.12 + version: 5.0.12(@types/node@20.11.16) vite-plugin-dts: - specifier: ^3.6.4 - version: 3.6.4(typescript@5.3.3)(vite@4.4.12) + specifier: 3.7.2 + version: 3.7.2(typescript@5.3.3)(vite@5.0.12) vitest: - specifier: ^0.33.0 - version: 0.33.0(jsdom@22.1.0) + specifier: 1.2.2 + version: 1.2.2(jsdom@24.0.0) packages: @@ -323,43 +314,44 @@ packages: engines: {node: '>=0.10.0'} dev: true - /@adobe/css-tools@4.2.0: - resolution: {integrity: sha512-E09FiIft46CmH5Qnjb0wsW54/YQd69LsxeKUOWawmws1XWvyFGURnAChH0mlr7YPFR1ofwvUQfcL0J3lMxXqPA==} + /@adobe/css-tools@4.3.3: + resolution: {integrity: sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ==} /@ampproject/remapping@2.2.1: resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} engines: {node: '>=6.0.0'} dependencies: '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.18 + '@jridgewell/trace-mapping': 0.3.22 dev: true - /@babel/code-frame@7.22.5: - resolution: {integrity: sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==} + /@babel/code-frame@7.23.5: + resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/highlight': 7.22.5 + '@babel/highlight': 7.23.4 + chalk: 2.4.2 - /@babel/compat-data@7.22.9: - resolution: {integrity: sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==} + /@babel/compat-data@7.23.5: + resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==} engines: {node: '>=6.9.0'} dev: true - /@babel/core@7.22.9: - resolution: {integrity: sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w==} + /@babel/core@7.23.9: + resolution: {integrity: sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.1 - '@babel/code-frame': 7.22.5 - '@babel/generator': 7.22.9 - '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9) - '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.9) - '@babel/helpers': 7.22.6 - '@babel/parser': 7.22.7 - '@babel/template': 7.22.5 - '@babel/traverse': 7.22.8 - '@babel/types': 7.22.5 - convert-source-map: 1.9.0 + '@babel/code-frame': 7.23.5 + '@babel/generator': 7.23.6 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9) + '@babel/helpers': 7.23.9 + '@babel/parser': 7.23.9 + '@babel/template': 7.23.9 + '@babel/traverse': 7.23.9 + '@babel/types': 7.23.9 + convert-source-map: 2.0.0 debug: 4.3.4 gensync: 1.0.0-beta.2 json5: 2.2.3 @@ -368,69 +360,66 @@ packages: - supports-color dev: true - /@babel/generator@7.22.9: - resolution: {integrity: sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw==} + /@babel/generator@7.23.6: + resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.23.9 '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.18 + '@jridgewell/trace-mapping': 0.3.22 jsesc: 2.5.2 dev: true - /@babel/helper-compilation-targets@7.22.9(@babel/core@7.22.9): - resolution: {integrity: sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw==} + /@babel/helper-compilation-targets@7.23.6: + resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 dependencies: - '@babel/compat-data': 7.22.9 - '@babel/core': 7.22.9 - '@babel/helper-validator-option': 7.22.5 - browserslist: 4.21.10 + '@babel/compat-data': 7.23.5 + '@babel/helper-validator-option': 7.23.5 + browserslist: 4.22.3 lru-cache: 5.1.1 semver: 6.3.1 dev: true - /@babel/helper-environment-visitor@7.22.5: - resolution: {integrity: sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==} + /@babel/helper-environment-visitor@7.22.20: + resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} engines: {node: '>=6.9.0'} dev: true - /@babel/helper-function-name@7.22.5: - resolution: {integrity: sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==} + /@babel/helper-function-name@7.23.0: + resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.22.5 - '@babel/types': 7.22.5 + '@babel/template': 7.23.9 + '@babel/types': 7.23.9 dev: true /@babel/helper-hoist-variables@7.22.5: resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.23.9 dev: true - /@babel/helper-module-imports@7.22.5: - resolution: {integrity: sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==} + /@babel/helper-module-imports@7.22.15: + resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.23.9 dev: true - /@babel/helper-module-transforms@7.22.9(@babel/core@7.22.9): - resolution: {integrity: sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==} + /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-module-imports': 7.22.5 + '@babel/core': 7.23.9 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.22.15 '@babel/helper-simple-access': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 - '@babel/helper-validator-identifier': 7.22.5 + '@babel/helper-validator-identifier': 7.22.20 dev: true /@babel/helper-plugin-utils@7.22.5: @@ -442,122 +431,116 @@ packages: resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.23.9 dev: true /@babel/helper-split-export-declaration@7.22.6: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.23.9 dev: true - /@babel/helper-string-parser@7.22.5: - resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} + /@babel/helper-string-parser@7.23.4: + resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} engines: {node: '>=6.9.0'} dev: true - /@babel/helper-validator-identifier@7.22.5: - resolution: {integrity: sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==} + /@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} engines: {node: '>=6.9.0'} - /@babel/helper-validator-option@7.22.5: - resolution: {integrity: sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==} + /@babel/helper-validator-option@7.23.5: + resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} engines: {node: '>=6.9.0'} dev: true - /@babel/helpers@7.22.6: - resolution: {integrity: sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA==} + /@babel/helpers@7.23.9: + resolution: {integrity: sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.22.5 - '@babel/traverse': 7.22.8 - '@babel/types': 7.22.5 + '@babel/template': 7.23.9 + '@babel/traverse': 7.23.9 + '@babel/types': 7.23.9 transitivePeerDependencies: - supports-color dev: true - /@babel/highlight@7.22.5: - resolution: {integrity: sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==} + /@babel/highlight@7.23.4: + resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-validator-identifier': 7.22.5 + '@babel/helper-validator-identifier': 7.22.20 chalk: 2.4.2 js-tokens: 4.0.0 - /@babel/parser@7.22.7: - resolution: {integrity: sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==} + /@babel/parser@7.23.9: + resolution: {integrity: sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.23.9 dev: true - /@babel/plugin-transform-react-jsx-self@7.22.5(@babel/core@7.22.9): - resolution: {integrity: sha512-nTh2ogNUtxbiSbxaT4Ds6aXnXEipHweN9YRgOX/oNXdf0cCrGn/+2LozFa3lnPV5D90MkjhgckCPBrsoSc1a7g==} + /@babel/plugin-transform-react-jsx-self@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-react-jsx-source@7.22.5(@babel/core@7.22.9): - resolution: {integrity: sha512-yIiRO6yobeEIaI0RTbIr8iAK9FcBHLtZq0S89ZPjDLQXBA4xvghaKqI0etp/tF3htTM0sazJKKLz9oEiGRtu7w==} + /@babel/plugin-transform-react-jsx-source@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/runtime@7.22.6: - resolution: {integrity: sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ==} - engines: {node: '>=6.9.0'} - dependencies: - regenerator-runtime: 0.13.11 - - /@babel/runtime@7.23.5: - resolution: {integrity: sha512-NdUTHcPe4C99WxPub+K9l9tK5/lV4UXIoaHSYgzco9BCyjKAAwzdBI+wWtYqHt7LJdbo74ZjRPJgzVweq1sz0w==} + /@babel/runtime@7.23.9: + resolution: {integrity: sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==} engines: {node: '>=6.9.0'} dependencies: - regenerator-runtime: 0.14.0 + regenerator-runtime: 0.14.1 - /@babel/template@7.22.5: - resolution: {integrity: sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==} + /@babel/template@7.23.9: + resolution: {integrity: sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.22.5 - '@babel/parser': 7.22.7 - '@babel/types': 7.22.5 + '@babel/code-frame': 7.23.5 + '@babel/parser': 7.23.9 + '@babel/types': 7.23.9 dev: true - /@babel/traverse@7.22.8: - resolution: {integrity: sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw==} + /@babel/traverse@7.23.9: + resolution: {integrity: sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.22.5 - '@babel/generator': 7.22.9 - '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-function-name': 7.22.5 + '@babel/code-frame': 7.23.5 + '@babel/generator': 7.23.6 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 '@babel/helper-hoist-variables': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.22.7 - '@babel/types': 7.22.5 + '@babel/parser': 7.23.9 + '@babel/types': 7.23.9 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color dev: true - /@babel/types@7.22.5: - resolution: {integrity: sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==} + /@babel/types@7.23.9: + resolution: {integrity: sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-string-parser': 7.22.5 - '@babel/helper-validator-identifier': 7.22.5 + '@babel/helper-string-parser': 7.23.4 + '@babel/helper-validator-identifier': 7.22.20 to-fast-properties: 2.0.0 dev: true @@ -571,223 +554,203 @@ packages: cookie: 0.5.0 dev: true - /@bundled-es-modules/js-levenshtein@2.0.1: - resolution: {integrity: sha512-DERMS3yfbAljKsQc0U2wcqGKUWpdFjwqWuoMugEJlqBnKO180/n+4SR/J8MRDt1AN48X1ovgoD9KrdVXcaa3Rg==} - dependencies: - js-levenshtein: 1.1.6 - dev: true - /@bundled-es-modules/statuses@1.0.1: resolution: {integrity: sha512-yn7BklA5acgcBr+7w064fGV+SGIFySjCKpqjcWgBAIfrAkY+4GQTJJHQMeT3V/sgz23VTEVV8TtOmkvJAhFVfg==} dependencies: statuses: 2.0.1 dev: true - /@esbuild/android-arm64@0.18.20: - resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} + /@esbuild/aix-ppc64@0.19.12: + resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + requiresBuild: true + optional: true + + /@esbuild/android-arm64@0.19.12: + resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} engines: {node: '>=12'} cpu: [arm64] os: [android] requiresBuild: true - dev: true optional: true - /@esbuild/android-arm@0.18.20: - resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} + /@esbuild/android-arm@0.19.12: + resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} engines: {node: '>=12'} cpu: [arm] os: [android] requiresBuild: true - dev: true optional: true - /@esbuild/android-x64@0.18.20: - resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} + /@esbuild/android-x64@0.19.12: + resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} engines: {node: '>=12'} cpu: [x64] os: [android] requiresBuild: true - dev: true optional: true - /@esbuild/darwin-arm64@0.18.20: - resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} + /@esbuild/darwin-arm64@0.19.12: + resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] requiresBuild: true - dev: true optional: true - /@esbuild/darwin-x64@0.18.20: - resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} + /@esbuild/darwin-x64@0.19.12: + resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} engines: {node: '>=12'} cpu: [x64] os: [darwin] requiresBuild: true - dev: true optional: true - /@esbuild/freebsd-arm64@0.18.20: - resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} + /@esbuild/freebsd-arm64@0.19.12: + resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] requiresBuild: true - dev: true optional: true - /@esbuild/freebsd-x64@0.18.20: - resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} + /@esbuild/freebsd-x64@0.19.12: + resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] requiresBuild: true - dev: true optional: true - /@esbuild/linux-arm64@0.18.20: - resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} + /@esbuild/linux-arm64@0.19.12: + resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} engines: {node: '>=12'} cpu: [arm64] os: [linux] requiresBuild: true - dev: true optional: true - /@esbuild/linux-arm@0.18.20: - resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} + /@esbuild/linux-arm@0.19.12: + resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} engines: {node: '>=12'} cpu: [arm] os: [linux] requiresBuild: true - dev: true optional: true - /@esbuild/linux-ia32@0.18.20: - resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} + /@esbuild/linux-ia32@0.19.12: + resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} engines: {node: '>=12'} cpu: [ia32] os: [linux] requiresBuild: true - dev: true optional: true - /@esbuild/linux-loong64@0.18.20: - resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} + /@esbuild/linux-loong64@0.19.12: + resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} engines: {node: '>=12'} cpu: [loong64] os: [linux] requiresBuild: true - dev: true optional: true - /@esbuild/linux-mips64el@0.18.20: - resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} + /@esbuild/linux-mips64el@0.19.12: + resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] requiresBuild: true - dev: true optional: true - /@esbuild/linux-ppc64@0.18.20: - resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} + /@esbuild/linux-ppc64@0.19.12: + resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] requiresBuild: true - dev: true optional: true - /@esbuild/linux-riscv64@0.18.20: - resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} + /@esbuild/linux-riscv64@0.19.12: + resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] requiresBuild: true - dev: true optional: true - /@esbuild/linux-s390x@0.18.20: - resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} + /@esbuild/linux-s390x@0.19.12: + resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} engines: {node: '>=12'} cpu: [s390x] os: [linux] requiresBuild: true - dev: true optional: true - /@esbuild/linux-x64@0.18.20: - resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} + /@esbuild/linux-x64@0.19.12: + resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} engines: {node: '>=12'} cpu: [x64] os: [linux] requiresBuild: true - dev: true optional: true - /@esbuild/netbsd-x64@0.18.20: - resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} + /@esbuild/netbsd-x64@0.19.12: + resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] requiresBuild: true - dev: true optional: true - /@esbuild/openbsd-x64@0.18.20: - resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} + /@esbuild/openbsd-x64@0.19.12: + resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] requiresBuild: true - dev: true optional: true - /@esbuild/sunos-x64@0.18.20: - resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} + /@esbuild/sunos-x64@0.19.12: + resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} engines: {node: '>=12'} cpu: [x64] os: [sunos] requiresBuild: true - dev: true optional: true - /@esbuild/win32-arm64@0.18.20: - resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} + /@esbuild/win32-arm64@0.19.12: + resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} engines: {node: '>=12'} cpu: [arm64] os: [win32] requiresBuild: true - dev: true optional: true - /@esbuild/win32-ia32@0.18.20: - resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} + /@esbuild/win32-ia32@0.19.12: + resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} engines: {node: '>=12'} cpu: [ia32] os: [win32] requiresBuild: true - dev: true optional: true - /@esbuild/win32-x64@0.18.20: - resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} + /@esbuild/win32-x64@0.19.12: + resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} engines: {node: '>=12'} cpu: [x64] os: [win32] requiresBuild: true - dev: true optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.54.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.56.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.54.0 + eslint: 8.56.0 eslint-visitor-keys: 3.4.3 dev: true @@ -796,15 +759,15 @@ packages: engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true - /@eslint/eslintrc@2.1.3: - resolution: {integrity: sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==} + /@eslint/eslintrc@2.1.4: + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 debug: 4.3.4 espree: 9.6.1 - globals: 13.23.0 - ignore: 5.3.0 + globals: 13.24.0 + ignore: 5.3.1 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -813,16 +776,16 @@ packages: - supports-color dev: true - /@eslint/js@8.54.0: - resolution: {integrity: sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==} + /@eslint/js@8.56.0: + resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@humanwhocodes/config-array@0.11.13: - resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==} + /@humanwhocodes/config-array@0.11.14: + resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} engines: {node: '>=10.10.0'} dependencies: - '@humanwhocodes/object-schema': 2.0.1 + '@humanwhocodes/object-schema': 2.0.2 debug: 4.3.4 minimatch: 3.1.2 transitivePeerDependencies: @@ -834,8 +797,8 @@ packages: engines: {node: '>=12.22'} dev: true - /@humanwhocodes/object-schema@2.0.1: - resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} + /@humanwhocodes/object-schema@2.0.2: + resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==} dev: true /@isaacs/cliui@8.0.2: @@ -855,12 +818,28 @@ packages: engines: {node: '>=8'} dev: true + /@jest/expect-utils@29.7.0: + resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + jest-get-type: 29.6.3 + /@jest/schemas@29.6.3: resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@sinclair/typebox': 0.27.8 - dev: true + + /@jest/types@29.6.3: + resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/schemas': 29.6.3 + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-reports': 3.0.4 + '@types/node': 20.11.16 + '@types/yargs': 17.0.32 + chalk: 4.1.2 /@jridgewell/gen-mapping@0.3.3: resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} @@ -868,11 +847,11 @@ packages: dependencies: '@jridgewell/set-array': 1.1.2 '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.18 + '@jridgewell/trace-mapping': 0.3.22 dev: true - /@jridgewell/resolve-uri@3.1.0: - resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} + /@jridgewell/resolve-uri@3.1.1: + resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} engines: {node: '>=6.0.0'} dev: true @@ -881,19 +860,14 @@ packages: engines: {node: '>=6.0.0'} dev: true - /@jridgewell/sourcemap-codec@1.4.14: - resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} - dev: true - /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - dev: true - /@jridgewell/trace-mapping@0.3.18: - resolution: {integrity: sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==} + /@jridgewell/trace-mapping@0.3.22: + resolution: {integrity: sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==} dependencies: - '@jridgewell/resolve-uri': 3.1.0 - '@jridgewell/sourcemap-codec': 1.4.14 + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 dev: true /@microsoft/api-extractor-model@7.28.3: @@ -926,6 +900,26 @@ packages: - '@types/node' dev: true + /@microsoft/api-extractor@7.39.0: + resolution: {integrity: sha512-PuXxzadgnvp+wdeZFPonssRAj/EW4Gm4s75TXzPk09h3wJ8RS3x7typf95B4vwZRrPTQBGopdUl+/vHvlPdAcg==} + hasBin: true + dependencies: + '@microsoft/api-extractor-model': 7.28.3 + '@microsoft/tsdoc': 0.14.2 + '@microsoft/tsdoc-config': 0.16.2 + '@rushstack/node-core-library': 3.62.0 + '@rushstack/rig-package': 0.5.1 + '@rushstack/ts-command-line': 4.17.1 + colors: 1.2.5 + lodash: 4.17.21 + resolve: 1.22.8 + semver: 7.5.4 + source-map: 0.6.1 + typescript: 5.3.3 + transitivePeerDependencies: + - '@types/node' + dev: true + /@microsoft/tsdoc-config@0.16.2: resolution: {integrity: sha512-OGiIzzoBLgWWR0UdRJX98oYO+XKGf7tiK4Zk6tQ/E4IJqGCe7dvkTvgDZV5cFJUzLGDOjeAXrnZoA6QkVySuxw==} dependencies: @@ -939,29 +933,29 @@ packages: resolution: {integrity: sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==} dev: true - /@mswjs/cookies@1.0.0: - resolution: {integrity: sha512-TdXoBdI+h/EDTsVLCX/34s4+9U0sWi92qFnIGUEikpMCSKLhBeujovyYVSoORNbYgsBH5ga7/tfxyWcEZAxiYA==} - engines: {node: '>=14'} + /@mswjs/cookies@1.1.0: + resolution: {integrity: sha512-0ZcCVQxifZmhwNBoQIrystCb+2sWBY2Zw8lpfJBPCHGCA/HWqehITeCRVIv4VMy8MPlaHo2w2pTHFV2pFfqKPw==} + engines: {node: '>=18'} dev: true - /@mswjs/interceptors@0.25.7: - resolution: {integrity: sha512-U7iFYs/qU/5jfz1VDpoYz3xqX9nzhsBXw7q923dv6GiGTy+m2ZLhD33L80R/shHOW/YWjeH6k16GbIHGw+bAng==} + /@mswjs/interceptors@0.25.15: + resolution: {integrity: sha512-s4jdyxmq1eeftfDXJ7MUiK/jlvYaU8Sr75+42hHCVBrYez0k51RHbMitKIKdmsF92Q6gwhp8Sm1MmvdA9llpcg==} engines: {node: '>=18'} dependencies: '@open-draft/deferred-promise': 2.2.0 '@open-draft/logger': 0.3.0 '@open-draft/until': 2.1.0 is-node-process: 1.2.0 - outvariant: 1.4.0 + outvariant: 1.4.2 strict-event-emitter: 0.5.1 dev: true - /@next/env@14.0.4: - resolution: {integrity: sha512-irQnbMLbUNQpP1wcE5NstJtbuA/69kRfzBrpAD7Gsn8zm/CY6YQYc3HQBz8QPxwISG26tIm5afvvVbu508oBeQ==} + /@next/env@14.1.0: + resolution: {integrity: sha512-Py8zIo+02ht82brwwhTg36iogzFqGLPXlRGKQw5s+qP/kMNc4MAyDeEwBKDijk6zTIbegEgu8Qy7C1LboslQAw==} dev: false - /@next/swc-darwin-arm64@14.0.4: - resolution: {integrity: sha512-mF05E/5uPthWzyYDyptcwHptucf/jj09i2SXBPwNzbgBNc+XnwzrL0U6BmPjQeOL+FiB+iG1gwBeq7mlDjSRPg==} + /@next/swc-darwin-arm64@14.1.0: + resolution: {integrity: sha512-nUDn7TOGcIeyQni6lZHfzNoo9S0euXnu0jhsbMOmMJUBfgsnESdjN97kM7cBqQxZa8L/bM9om/S5/1dzCrW6wQ==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] @@ -969,8 +963,8 @@ packages: dev: false optional: true - /@next/swc-darwin-x64@14.0.4: - resolution: {integrity: sha512-IZQ3C7Bx0k2rYtrZZxKKiusMTM9WWcK5ajyhOZkYYTCc8xytmwSzR1skU7qLgVT/EY9xtXDG0WhY6fyujnI3rw==} + /@next/swc-darwin-x64@14.1.0: + resolution: {integrity: sha512-1jgudN5haWxiAl3O1ljUS2GfupPmcftu2RYJqZiMJmmbBT5M1XDffjUtRUzP4W3cBHsrvkfOFdQ71hAreNQP6g==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] @@ -978,8 +972,8 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-gnu@14.0.4: - resolution: {integrity: sha512-VwwZKrBQo/MGb1VOrxJ6LrKvbpo7UbROuyMRvQKTFKhNaXjUmKTu7wxVkIuCARAfiI8JpaWAnKR+D6tzpCcM4w==} + /@next/swc-linux-arm64-gnu@14.1.0: + resolution: {integrity: sha512-RHo7Tcj+jllXUbK7xk2NyIDod3YcCPDZxj1WLIYxd709BQ7WuRYl3OWUNG+WUfqeQBds6kvZYlc42NJJTNi4tQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -987,8 +981,8 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-musl@14.0.4: - resolution: {integrity: sha512-8QftwPEW37XxXoAwsn+nXlodKWHfpMaSvt81W43Wh8dv0gkheD+30ezWMcFGHLI71KiWmHK5PSQbTQGUiidvLQ==} + /@next/swc-linux-arm64-musl@14.1.0: + resolution: {integrity: sha512-v6kP8sHYxjO8RwHmWMJSq7VZP2nYCkRVQ0qolh2l6xroe9QjbgV8siTbduED4u0hlk0+tjS6/Tuy4n5XCp+l6g==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -996,8 +990,8 @@ packages: dev: false optional: true - /@next/swc-linux-x64-gnu@14.0.4: - resolution: {integrity: sha512-/s/Pme3VKfZAfISlYVq2hzFS8AcAIOTnoKupc/j4WlvF6GQ0VouS2Q2KEgPuO1eMBwakWPB1aYFIA4VNVh667A==} + /@next/swc-linux-x64-gnu@14.1.0: + resolution: {integrity: sha512-zJ2pnoFYB1F4vmEVlb/eSe+VH679zT1VdXlZKX+pE66grOgjmKJHKacf82g/sWE4MQ4Rk2FMBCRnX+l6/TVYzQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -1005,8 +999,8 @@ packages: dev: false optional: true - /@next/swc-linux-x64-musl@14.0.4: - resolution: {integrity: sha512-m8z/6Fyal4L9Bnlxde5g2Mfa1Z7dasMQyhEhskDATpqr+Y0mjOBZcXQ7G5U+vgL22cI4T7MfvgtrM2jdopqWaw==} + /@next/swc-linux-x64-musl@14.1.0: + resolution: {integrity: sha512-rbaIYFt2X9YZBSbH/CwGAjbBG2/MrACCVu2X0+kSykHzHnYH5FjHxwXLkcoJ10cX0aWCEynpu+rP76x0914atg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -1014,8 +1008,8 @@ packages: dev: false optional: true - /@next/swc-win32-arm64-msvc@14.0.4: - resolution: {integrity: sha512-7Wv4PRiWIAWbm5XrGz3D8HUkCVDMMz9igffZG4NB1p4u1KoItwx9qjATHz88kwCEal/HXmbShucaslXCQXUM5w==} + /@next/swc-win32-arm64-msvc@14.1.0: + resolution: {integrity: sha512-o1N5TsYc8f/HpGt39OUQpQ9AKIGApd3QLueu7hXk//2xq5Z9OxmV6sQfNp8C7qYmiOlHYODOGqNNa0e9jvchGQ==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] @@ -1023,8 +1017,8 @@ packages: dev: false optional: true - /@next/swc-win32-ia32-msvc@14.0.4: - resolution: {integrity: sha512-zLeNEAPULsl0phfGb4kdzF/cAVIfaC7hY+kt0/d+y9mzcZHsMS3hAS829WbJ31DkSlVKQeHEjZHIdhN+Pg7Gyg==} + /@next/swc-win32-ia32-msvc@14.1.0: + resolution: {integrity: sha512-XXIuB1DBRCFwNO6EEzCTMHT5pauwaSj4SWs7CYnME57eaReAKBXCnkUE80p/pAZcewm7hs+vGvNqDPacEXHVkw==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] @@ -1032,8 +1026,8 @@ packages: dev: false optional: true - /@next/swc-win32-x64-msvc@14.0.4: - resolution: {integrity: sha512-yEh2+R8qDlDCjxVpzOTEpBLQTEFAcP2A8fUFLaWNap9GitYKkKv1//y2S6XY6zsR4rCOPRpU7plYDR+az2n30A==} + /@next/swc-win32-x64-msvc@14.1.0: + resolution: {integrity: sha512-9WEbVRRAqJ3YFVqEZIxUqkiO8l1nool1LmNxygr5HWF8AcSYsEpneUDhmjUVJEzO2A04+oPtZdombzzPPkTtgg==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -1059,7 +1053,7 @@ packages: engines: {node: '>= 8'} dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.15.0 + fastq: 1.17.1 dev: true /@open-draft/deferred-promise@2.2.0: @@ -1070,7 +1064,7 @@ packages: resolution: {integrity: sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==} dependencies: is-node-process: 1.2.0 - outvariant: 1.4.0 + outvariant: 1.4.2 dev: true /@open-draft/until@2.1.0: @@ -1084,16 +1078,9 @@ packages: dev: true optional: true - /@pkgr/utils@2.4.2: - resolution: {integrity: sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==} + /@pkgr/core@0.1.1: + resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - dependencies: - cross-spawn: 7.0.3 - fast-glob: 3.3.2 - is-glob: 4.0.3 - open: 9.1.0 - picocolors: 1.0.0 - tslib: 2.6.2 dev: true /@remix-run/router@1.14.1: @@ -1110,11 +1097,102 @@ packages: rollup: optional: true dependencies: - '@types/estree': 1.0.1 + '@types/estree': 1.0.5 estree-walker: 2.0.2 picomatch: 2.3.1 dev: true + /@rollup/rollup-android-arm-eabi@4.9.6: + resolution: {integrity: sha512-MVNXSSYN6QXOulbHpLMKYi60ppyO13W9my1qogeiAqtjb2yR4LSmfU2+POvDkLzhjYLXz9Rf9+9a3zFHW1Lecg==} + cpu: [arm] + os: [android] + requiresBuild: true + optional: true + + /@rollup/rollup-android-arm64@4.9.6: + resolution: {integrity: sha512-T14aNLpqJ5wzKNf5jEDpv5zgyIqcpn1MlwCrUXLrwoADr2RkWA0vOWP4XxbO9aiO3dvMCQICZdKeDrFl7UMClw==} + cpu: [arm64] + os: [android] + requiresBuild: true + optional: true + + /@rollup/rollup-darwin-arm64@4.9.6: + resolution: {integrity: sha512-CqNNAyhRkTbo8VVZ5R85X73H3R5NX9ONnKbXuHisGWC0qRbTTxnF1U4V9NafzJbgGM0sHZpdO83pLPzq8uOZFw==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + optional: true + + /@rollup/rollup-darwin-x64@4.9.6: + resolution: {integrity: sha512-zRDtdJuRvA1dc9Mp6BWYqAsU5oeLixdfUvkTHuiYOHwqYuQ4YgSmi6+/lPvSsqc/I0Omw3DdICx4Tfacdzmhog==} + cpu: [x64] + os: [darwin] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-arm-gnueabihf@4.9.6: + resolution: {integrity: sha512-oNk8YXDDnNyG4qlNb6is1ojTOGL/tRhbbKeE/YuccItzerEZT68Z9gHrY3ROh7axDc974+zYAPxK5SH0j/G+QQ==} + cpu: [arm] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-arm64-gnu@4.9.6: + resolution: {integrity: sha512-Z3O60yxPtuCYobrtzjo0wlmvDdx2qZfeAWTyfOjEDqd08kthDKexLpV97KfAeUXPosENKd8uyJMRDfFMxcYkDQ==} + cpu: [arm64] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-arm64-musl@4.9.6: + resolution: {integrity: sha512-gpiG0qQJNdYEVad+1iAsGAbgAnZ8j07FapmnIAQgODKcOTjLEWM9sRb+MbQyVsYCnA0Im6M6QIq6ax7liws6eQ==} + cpu: [arm64] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-riscv64-gnu@4.9.6: + resolution: {integrity: sha512-+uCOcvVmFUYvVDr27aiyun9WgZk0tXe7ThuzoUTAukZJOwS5MrGbmSlNOhx1j80GdpqbOty05XqSl5w4dQvcOA==} + cpu: [riscv64] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-x64-gnu@4.9.6: + resolution: {integrity: sha512-HUNqM32dGzfBKuaDUBqFB7tP6VMN74eLZ33Q9Y1TBqRDn+qDonkAUyKWwF9BR9unV7QUzffLnz9GrnKvMqC/fw==} + cpu: [x64] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-x64-musl@4.9.6: + resolution: {integrity: sha512-ch7M+9Tr5R4FK40FHQk8VnML0Szi2KRujUgHXd/HjuH9ifH72GUmw6lStZBo3c3GB82vHa0ZoUfjfcM7JiiMrQ==} + cpu: [x64] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-win32-arm64-msvc@4.9.6: + resolution: {integrity: sha512-VD6qnR99dhmTQ1mJhIzXsRcTBvTjbfbGGwKAHcu+52cVl15AC/kplkhxzW/uT0Xl62Y/meBKDZvoJSJN+vTeGA==} + cpu: [arm64] + os: [win32] + requiresBuild: true + optional: true + + /@rollup/rollup-win32-ia32-msvc@4.9.6: + resolution: {integrity: sha512-J9AFDq/xiRI58eR2NIDfyVmTYGyIZmRcvcAoJ48oDld/NTR8wyiPUu2X/v1navJ+N/FGg68LEbX3Ejd6l8B7MQ==} + cpu: [ia32] + os: [win32] + requiresBuild: true + optional: true + + /@rollup/rollup-win32-x64-msvc@4.9.6: + resolution: {integrity: sha512-jqzNLhNDvIZOrt69Ce4UjGRpXJBzhUBzawMwnaDAwyHriki3XollsewxWzOzz+4yOFDkuJHtTsZFwMxhYJWmLQ==} + cpu: [x64] + os: [win32] + requiresBuild: true + optional: true + /@rushstack/node-core-library@3.62.0: resolution: {integrity: sha512-88aJn2h8UpSvdwuDXBv1/v1heM6GnBf3RjEy6ZPP7UnzHNCqOHA2Ut+ScYUbXcqIdfew9JlTAe3g+cnX9xQ/Aw==} peerDependencies: @@ -1150,7 +1228,6 @@ packages: /@sinclair/typebox@0.27.8: resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - dev: true /@swc/helpers@0.5.2: resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==} @@ -1158,134 +1235,134 @@ packages: tslib: 2.6.2 dev: false - /@testing-library/dom@9.3.3: - resolution: {integrity: sha512-fB0R+fa3AUqbLHWyxXa2kGVtf1Fe1ZZFr0Zp6AIbIAzXb2mKbEXl+PCQNUOaq5lbTab5tfctfXRNsWXxa2f7Aw==} + /@testing-library/dom@9.3.4: + resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==} engines: {node: '>=14'} dependencies: - '@babel/code-frame': 7.22.5 - '@babel/runtime': 7.23.5 - '@types/aria-query': 5.0.1 + '@babel/code-frame': 7.23.5 + '@babel/runtime': 7.23.9 + '@types/aria-query': 5.0.4 aria-query: 5.1.3 chalk: 4.1.2 dom-accessibility-api: 0.5.16 lz-string: 1.5.0 pretty-format: 27.5.1 - /@testing-library/jest-dom@5.16.5: - resolution: {integrity: sha512-N5ixQ2qKpi5OLYfwQmUb/5mSV9LneAcaUfp32pn4yCnpb8r/Yz0pXFPck21dIicKmi+ta5WRAknkZCfA8refMA==} - engines: {node: '>=8', npm: '>=6', yarn: '>=1'} - dependencies: - '@adobe/css-tools': 4.2.0 - '@babel/runtime': 7.22.6 - '@types/testing-library__jest-dom': 5.14.9 - aria-query: 5.3.0 - chalk: 3.0.0 - css.escape: 1.5.1 - dom-accessibility-api: 0.5.16 - lodash: 4.17.21 - redent: 3.0.0 - dev: true - - /@testing-library/jest-dom@5.17.0: - resolution: {integrity: sha512-ynmNeT7asXyH3aSVv4vvX4Rb+0qjOhdNHnO/3vuZNqPmhDpV/+rCSGwQ7bLcmU2cJ4dvoheIO85LQj0IbJHEtg==} - engines: {node: '>=8', npm: '>=6', yarn: '>=1'} + /@testing-library/jest-dom@6.4.2(@types/jest@29.5.12)(vitest@1.2.2): + resolution: {integrity: sha512-CzqH0AFymEMG48CpzXFriYYkOjk6ZGPCLMhW9e9jg3KMCn5OfJecF8GtGW7yGfR/IgCe3SX8BSwjdzI6BBbZLw==} + engines: {node: '>=14', npm: '>=6', yarn: '>=1'} + peerDependencies: + '@jest/globals': '>= 28' + '@types/bun': latest + '@types/jest': '>= 28' + jest: '>= 28' + vitest: '>= 0.32' + peerDependenciesMeta: + '@jest/globals': + optional: true + '@types/bun': + optional: true + '@types/jest': + optional: true + jest: + optional: true + vitest: + optional: true dependencies: - '@adobe/css-tools': 4.2.0 - '@babel/runtime': 7.22.6 - '@types/testing-library__jest-dom': 5.14.9 + '@adobe/css-tools': 4.3.3 + '@babel/runtime': 7.23.9 + '@types/jest': 29.5.12 aria-query: 5.3.0 chalk: 3.0.0 css.escape: 1.5.1 - dom-accessibility-api: 0.5.16 + dom-accessibility-api: 0.6.3 lodash: 4.17.21 redent: 3.0.0 + vitest: 1.2.2(jsdom@24.0.0) - /@testing-library/react@14.1.2(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-z4p7DVBTPjKM5qDZ0t5ZjzkpSNb+fZy1u6bzO7kk8oeGagpPCAtgh4cx1syrfp7a+QWkM021jGqjJaxJJnXAZg==} + /@testing-library/react@14.2.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-sGdjws32ai5TLerhvzThYFbpnF9XtL65Cjf+gB0Dhr29BGqK+mAeN7SURSdu+eqgET4ANcWoC7FQpkaiGvBr+A==} engines: {node: '>=14'} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 dependencies: - '@babel/runtime': 7.22.6 - '@testing-library/dom': 9.3.3 + '@babel/runtime': 7.23.9 + '@testing-library/dom': 9.3.4 '@types/react-dom': 18.2.7 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@testing-library/user-event@13.5.0(@testing-library/dom@9.3.3): - resolution: {integrity: sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg==} - engines: {node: '>=10', npm: '>=6'} - peerDependencies: - '@testing-library/dom': '>=7.21.4' - dependencies: - '@babel/runtime': 7.22.6 - '@testing-library/dom': 9.3.3 - dev: false - - /@testing-library/user-event@14.4.3(@testing-library/dom@9.3.3): - resolution: {integrity: sha512-kCUc5MEwaEMakkO5x7aoD+DLi02ehmEM2QCGWvNqAS1dV/fAvORWEjnjsEIvml59M7Y5kCkWN6fCCyPOe8OL6Q==} + /@testing-library/user-event@14.5.2(@testing-library/dom@9.3.4): + resolution: {integrity: sha512-YAh82Wh4TIrxYLmfGcixwD18oIjyC1pFQC2Y01F2lzV2HTMiYrI0nze0FD0ocB//CKS/7jIUgae+adPqxK5yCQ==} engines: {node: '>=12', npm: '>=6'} peerDependencies: '@testing-library/dom': '>=7.21.4' dependencies: - '@testing-library/dom': 9.3.3 - dev: true - - /@tootallnate/once@2.0.0: - resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} - engines: {node: '>= 10'} - dev: true + '@testing-library/dom': 9.3.4 /@types/argparse@1.0.38: resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} dev: true - /@types/aria-query@5.0.1: - resolution: {integrity: sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q==} + /@types/aria-query@5.0.4: + resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} - /@types/chai-subset@1.3.3: - resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} + /@types/babel__core@7.20.5: + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} dependencies: - '@types/chai': 4.3.11 + '@babel/parser': 7.23.9 + '@babel/types': 7.23.9 + '@types/babel__generator': 7.6.8 + '@types/babel__template': 7.4.4 + '@types/babel__traverse': 7.20.5 dev: true - /@types/chai-subset@1.3.5: - resolution: {integrity: sha512-c2mPnw+xHtXDoHmdtcCXGwyLMiauiAyxWMzhGpqHC4nqI/Y5G2XhTampslK2rb59kpcuHon03UH8W6iYUzw88A==} + /@types/babel__generator@7.6.8: + resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} dependencies: - '@types/chai': 4.3.11 + '@babel/types': 7.23.9 dev: true - /@types/chai@4.3.11: - resolution: {integrity: sha512-qQR1dr2rGIHYlJulmr8Ioq3De0Le9E4MJ5AiaeAETJJpndT1uUNHsGFK3L/UIu+rbkQSdj8J/w2bCsBZc/Y5fQ==} + /@types/babel__template@7.4.4: + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} + dependencies: + '@babel/parser': 7.23.9 + '@babel/types': 7.23.9 dev: true - /@types/chai@4.3.5: - resolution: {integrity: sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==} + /@types/babel__traverse@7.20.5: + resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==} + dependencies: + '@babel/types': 7.23.9 dev: true - /@types/cookie@0.4.1: - resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==} + /@types/cookie@0.6.0: + resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} dev: true - /@types/estree@1.0.1: - resolution: {integrity: sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==} - dev: true + /@types/estree@1.0.5: + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - /@types/istanbul-lib-coverage@2.0.4: - resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} - dev: true + /@types/istanbul-lib-coverage@2.0.6: + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} - /@types/jest@27.5.2: - resolution: {integrity: sha512-mpT8LJJ4CMeeahobofYWIjFo0xonRS/HfxnVEPMPFSQdGUt1uHCnoPT7Zhb+sjDU2wz0oKV0OLUR0WzrHNgfeA==} + /@types/istanbul-lib-report@3.0.3: + resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} dependencies: - jest-matcher-utils: 27.5.1 - pretty-format: 27.5.1 + '@types/istanbul-lib-coverage': 2.0.6 - /@types/js-levenshtein@1.1.1: - resolution: {integrity: sha512-qC4bCqYGy1y/NP7dDVr7KJarn+PbX1nSpwA7JXdu0HxT3QYjO8MJ+cntENtHFVy2dRAyBV23OZ6MxsW1AM1L8g==} - dev: true + /@types/istanbul-reports@3.0.4: + resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} + dependencies: + '@types/istanbul-lib-report': 3.0.3 + + /@types/jest@29.5.12: + resolution: {integrity: sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==} + dependencies: + expect: 29.7.0 + pretty-format: 29.7.0 /@types/json-schema@7.0.15: resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} @@ -1295,19 +1372,10 @@ packages: resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} dev: true - /@types/minimist@1.2.2: - resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} - dev: true - - /@types/node@20.10.1: - resolution: {integrity: sha512-T2qwhjWwGH81vUEx4EXmBKsTJRXFXNZTL4v0gi01+zyBmCwzE6TyHszqX01m+QHTEq+EZNo13NeJIdEqf+Myrg==} + /@types/node@20.11.16: + resolution: {integrity: sha512-gKb0enTmRCzXSSUJDq6/sPcqrfCv2mkkG6Jt/clpn5eiCbKTY+SgZUxo+p8ZKMof5dCp9vHQUAB7wOUTod22wQ==} dependencies: undici-types: 5.26.5 - dev: true - - /@types/normalize-package-data@2.4.1: - resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} - dev: true /@types/prop-types@15.7.5: resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} @@ -1316,7 +1384,7 @@ packages: /@types/react-dom@18.2.7: resolution: {integrity: sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA==} dependencies: - '@types/react': 18.2.39 + '@types/react': 18.2.54 dev: true /@types/react@18.2.39: @@ -1327,6 +1395,14 @@ packages: csstype: 3.1.2 dev: true + /@types/react@18.2.54: + resolution: {integrity: sha512-039k+vrVJymDoe2y+HLk3O3oI3sa+C8KNjuDKofqrIJK26ramnqLNj9VJTaxAzFGMvpW/79HrrAJapHzpQ9fGQ==} + dependencies: + '@types/prop-types': 15.7.5 + '@types/scheduler': 0.16.3 + csstype: 3.1.2 + dev: true + /@types/scheduler@0.16.3: resolution: {integrity: sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==} dev: true @@ -1335,17 +1411,23 @@ packages: resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} dev: true - /@types/statuses@2.0.3: - resolution: {integrity: sha512-NwCYScf83RIwCyi5/9cXocrJB//xrqMh5PMw3mYTSFGaI3DuVjBLfO/PCk7QVAC3Da8b9NjxNmTO9Aj9T3rl/Q==} + /@types/stack-utils@2.0.3: + resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} + + /@types/statuses@2.0.4: + resolution: {integrity: sha512-eqNDvZsCNY49OAXB0Firg/Sc2BgoWsntsLUdybGFOhAfCD6QJ2n9HXUIHGqt5qjrxmMv4wS8WLAw43ZkKcJ8Pw==} dev: true - /@types/testing-library__jest-dom@5.14.9: - resolution: {integrity: sha512-FSYhIjFlfOpGSRyVoMBMuS3ws5ehFQODymf3vlI7U1K8c7PHwWwFY7VREfmsuzHSOnoKs/9/Y983ayOs7eRzqw==} + /@types/yargs-parser@21.0.3: + resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} + + /@types/yargs@17.0.32: + resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==} dependencies: - '@types/jest': 27.5.2 + '@types/yargs-parser': 21.0.3 - /@typescript-eslint/eslint-plugin@6.13.1(@typescript-eslint/parser@6.13.1)(eslint@8.54.0)(typescript@5.3.3): - resolution: {integrity: sha512-5bQDGkXaxD46bPvQt08BUz9YSaO4S0fB1LB5JHQuXTfkGPI3+UUeS387C/e9jRie5GqT8u5kFTrMvAjtX4O5kA==} + /@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha @@ -1356,25 +1438,25 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.13.1(eslint@8.54.0)(typescript@5.3.3) - '@typescript-eslint/scope-manager': 6.13.1 - '@typescript-eslint/type-utils': 6.13.1(eslint@8.54.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.13.1(eslint@8.54.0)(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.13.1 + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/type-utils': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.3.4 - eslint: 8.54.0 + eslint: 8.56.0 graphemer: 1.4.0 - ignore: 5.3.0 + ignore: 5.3.1 natural-compare: 1.4.0 - semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.3.3) + semver: 7.6.0 + ts-api-utils: 1.2.0(typescript@5.3.3) typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@6.13.1(eslint@8.54.0)(typescript@5.3.3): - resolution: {integrity: sha512-fs2XOhWCzRhqMmQf0eicLa/CWSaYss2feXsy7xBD/pLyWke/jCIVc2s1ikEAtSW7ina1HNhv7kONoEfVNEcdDQ==} + /@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -1383,12 +1465,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.13.1 - '@typescript-eslint/types': 6.13.1 - '@typescript-eslint/typescript-estree': 6.13.1(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.13.1 + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.3.4 - eslint: 8.54.0 + eslint: 8.56.0 typescript: 5.3.3 transitivePeerDependencies: - supports-color @@ -1402,16 +1484,16 @@ packages: '@typescript-eslint/visitor-keys': 5.62.0 dev: true - /@typescript-eslint/scope-manager@6.13.1: - resolution: {integrity: sha512-BW0kJ7ceiKi56GbT2KKzZzN+nDxzQK2DS6x0PiSMPjciPgd/JRQGMibyaN2cPt2cAvuoH0oNvn2fwonHI+4QUQ==} + /@typescript-eslint/scope-manager@6.21.0: + resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.13.1 - '@typescript-eslint/visitor-keys': 6.13.1 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 dev: true - /@typescript-eslint/type-utils@6.13.1(eslint@8.54.0)(typescript@5.3.3): - resolution: {integrity: sha512-A2qPlgpxx2v//3meMqQyB1qqTg1h1dJvzca7TugM3Yc2USDY+fsRBiojAEo92HO7f5hW5mjAUF6qobOPzlBCBQ==} + /@typescript-eslint/type-utils@6.21.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -1420,11 +1502,11 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.13.1(typescript@5.3.3) - '@typescript-eslint/utils': 6.13.1(eslint@8.54.0)(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) + '@typescript-eslint/utils': 6.21.0(eslint@8.56.0)(typescript@5.3.3) debug: 4.3.4 - eslint: 8.54.0 - ts-api-utils: 1.0.3(typescript@5.3.3) + eslint: 8.56.0 + ts-api-utils: 1.2.0(typescript@5.3.3) typescript: 5.3.3 transitivePeerDependencies: - supports-color @@ -1435,8 +1517,8 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/types@6.13.1: - resolution: {integrity: sha512-gjeEskSmiEKKFIbnhDXUyiqVma1gRCQNbVZ1C8q7Zjcxh3WZMbzWVfGE9rHfWd1msQtPS0BVD9Jz9jded44eKg==} + /@typescript-eslint/types@6.21.0: + resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} engines: {node: ^16.0.0 || >=18.0.0} dev: true @@ -1454,15 +1536,15 @@ packages: debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 - semver: 7.5.4 + semver: 7.6.0 tsutils: 3.21.0(typescript@5.3.3) typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/typescript-estree@6.13.1(typescript@5.3.3): - resolution: {integrity: sha512-sBLQsvOC0Q7LGcUHO5qpG1HxRgePbT6wwqOiGLpR8uOJvPJbfs0mW3jPA3ujsDvfiVwVlWUDESNXv44KtINkUQ==} + /@typescript-eslint/typescript-estree@6.21.0(typescript@5.3.3): + resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -1470,52 +1552,53 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.13.1 - '@typescript-eslint/visitor-keys': 6.13.1 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 - semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.3.3) + minimatch: 9.0.3 + semver: 7.6.0 + ts-api-utils: 1.2.0(typescript@5.3.3) typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@5.62.0(eslint@8.54.0)(typescript@5.3.3): + /@typescript-eslint/utils@5.62.0(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.6 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.3.3) - eslint: 8.54.0 + eslint: 8.56.0 eslint-scope: 5.1.1 - semver: 7.5.4 + semver: 7.6.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/utils@6.13.1(eslint@8.54.0)(typescript@5.3.3): - resolution: {integrity: sha512-ouPn/zVoan92JgAegesTXDB/oUp6BP1v8WpfYcqh649ejNc9Qv+B4FF2Ff626kO1xg0wWwwG48lAJ4JuesgdOw==} + /@typescript-eslint/utils@6.21.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.6 - '@typescript-eslint/scope-manager': 6.13.1 - '@typescript-eslint/types': 6.13.1 - '@typescript-eslint/typescript-estree': 6.13.1(typescript@5.3.3) - eslint: 8.54.0 - semver: 7.5.4 + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) + eslint: 8.56.0 + semver: 7.6.0 transitivePeerDependencies: - supports-color - typescript @@ -1529,11 +1612,11 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@typescript-eslint/visitor-keys@6.13.1: - resolution: {integrity: sha512-NDhQUy2tg6XGNBGDRm1XybOHSia8mcXmlbKWoQP+nm1BIIMxa55shyJfZkHpEBN62KNPLrocSM2PdPcaLgDKMQ==} + /@typescript-eslint/visitor-keys@6.21.0: + resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.13.1 + '@typescript-eslint/types': 6.21.0 eslint-visitor-keys: 3.4.3 dev: true @@ -1541,130 +1624,78 @@ packages: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} dev: true - /@vitejs/plugin-react@4.0.3(vite@4.4.12): - resolution: {integrity: sha512-pwXDog5nwwvSIzwrvYYmA2Ljcd/ZNlcsSG2Q9CNDBwnsd55UGAyr2doXtB5j+2uymRCnCfExlznzzSFbBRcoCg==} + /@vitejs/plugin-react@4.2.1(vite@5.0.12): + resolution: {integrity: sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - vite: ^4.2.0 + vite: ^4.2.0 || ^5.0.0 dependencies: - '@babel/core': 7.22.9 - '@babel/plugin-transform-react-jsx-self': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-react-jsx-source': 7.22.5(@babel/core@7.22.9) + '@babel/core': 7.23.9 + '@babel/plugin-transform-react-jsx-self': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.23.9) + '@types/babel__core': 7.20.5 react-refresh: 0.14.0 - vite: 4.4.12(@types/node@20.10.1) + vite: 5.0.12(@types/node@20.11.16) transitivePeerDependencies: - supports-color dev: true - /@vitest/coverage-c8@0.33.0(vitest@0.33.0): - resolution: {integrity: sha512-DaF1zJz4dcOZS4k/neiQJokmOWqsGXwhthfmUdPGorXIQHjdPvV6JQSYhQDI41MyI8c+IieQUdIDs5XAMHtDDw==} - peerDependencies: - vitest: '>=0.30.0 <1' - dependencies: - '@ampproject/remapping': 2.2.1 - c8: 7.14.0 - magic-string: 0.30.2 - picocolors: 1.0.0 - std-env: 3.3.3 - vitest: 0.33.0(jsdom@22.1.0) - dev: true - - /@vitest/coverage-v8@0.33.0(vitest@0.33.0): - resolution: {integrity: sha512-Rj5IzoLF7FLj6yR7TmqsfRDSeaFki6NAJ/cQexqhbWkHEV2htlVGrmuOde3xzvFsCbLCagf4omhcIaVmfU8Okg==} + /@vitest/coverage-v8@1.2.2(vitest@1.2.2): + resolution: {integrity: sha512-IHyKnDz18SFclIEEAHb9Y4Uxx0sPKC2VO1kdDCs1BF6Ip4S8rQprs971zIsooLUn7Afs71GRxWMWpkCGZpRMhw==} peerDependencies: - vitest: '>=0.32.0 <1' + vitest: ^1.0.0 dependencies: '@ampproject/remapping': 2.2.1 '@bcoe/v8-coverage': 0.2.3 - istanbul-lib-coverage: 3.2.0 + debug: 4.3.4 + istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 4.0.1 istanbul-reports: 3.1.6 - magic-string: 0.30.2 + magic-string: 0.30.7 + magicast: 0.3.3 picocolors: 1.0.0 - std-env: 3.3.3 + std-env: 3.7.0 test-exclude: 6.0.0 - v8-to-istanbul: 9.1.0 - vitest: 0.33.0(jsdom@22.1.0) + v8-to-istanbul: 9.2.0 + vitest: 1.2.2(jsdom@24.0.0) transitivePeerDependencies: - supports-color dev: true - /@vitest/expect@0.33.0: - resolution: {integrity: sha512-sVNf+Gla3mhTCxNJx+wJLDPp/WcstOe0Ksqz4Vec51MmgMth/ia0MGFEkIZmVGeTL5HtjYR4Wl/ZxBxBXZJTzQ==} - dependencies: - '@vitest/spy': 0.33.0 - '@vitest/utils': 0.33.0 - chai: 4.3.10 - dev: true - - /@vitest/expect@0.34.6: - resolution: {integrity: sha512-QUzKpUQRc1qC7qdGo7rMK3AkETI7w18gTCUrsNnyjjJKYiuUB9+TQK3QnR1unhCnWRC0AbKv2omLGQDF/mIjOw==} - dependencies: - '@vitest/spy': 0.34.6 - '@vitest/utils': 0.34.6 - chai: 4.3.10 - dev: true - - /@vitest/runner@0.33.0: - resolution: {integrity: sha512-UPfACnmCB6HKRHTlcgCoBh6ppl6fDn+J/xR8dTufWiKt/74Y9bHci5CKB8tESSV82zKYtkBJo9whU3mNvfaisg==} - dependencies: - '@vitest/utils': 0.33.0 - p-limit: 4.0.0 - pathe: 1.1.1 - dev: true - - /@vitest/runner@0.34.6: - resolution: {integrity: sha512-1CUQgtJSLF47NnhN+F9X2ycxUP0kLHQ/JWvNHbeBfwW8CzEGgeskzNnHDyv1ieKTltuR6sdIHV+nmR6kPxQqzQ==} + /@vitest/expect@1.2.2: + resolution: {integrity: sha512-3jpcdPAD7LwHUUiT2pZTj2U82I2Tcgg2oVPvKxhn6mDI2On6tfvPQTjAI4628GUGDZrCm4Zna9iQHm5cEexOAg==} dependencies: - '@vitest/utils': 0.34.6 - p-limit: 4.0.0 - pathe: 1.1.1 - dev: true + '@vitest/spy': 1.2.2 + '@vitest/utils': 1.2.2 + chai: 4.4.1 - /@vitest/snapshot@0.33.0: - resolution: {integrity: sha512-tJjrl//qAHbyHajpFvr8Wsk8DIOODEebTu7pgBrP07iOepR5jYkLFiqLq2Ltxv+r0uptUb4izv1J8XBOwKkVYA==} + /@vitest/runner@1.2.2: + resolution: {integrity: sha512-JctG7QZ4LSDXr5CsUweFgcpEvrcxOV1Gft7uHrvkQ+fsAVylmWQvnaAr/HDp3LAH1fztGMQZugIheTWjaGzYIg==} dependencies: - magic-string: 0.30.5 - pathe: 1.1.1 - pretty-format: 29.7.0 - dev: true + '@vitest/utils': 1.2.2 + p-limit: 5.0.0 + pathe: 1.1.2 - /@vitest/snapshot@0.34.6: - resolution: {integrity: sha512-B3OZqYn6k4VaN011D+ve+AA4whM4QkcwcrwaKwAbyyvS/NB1hCWjFIBQxAQQSQir9/RtyAAGuq+4RJmbn2dH4w==} + /@vitest/snapshot@1.2.2: + resolution: {integrity: sha512-SmGY4saEw1+bwE1th6S/cZmPxz/Q4JWsl7LvbQIky2tKE35US4gd0Mjzqfr84/4OD0tikGWaWdMja/nWL5NIPA==} dependencies: - magic-string: 0.30.5 - pathe: 1.1.1 + magic-string: 0.30.7 + pathe: 1.1.2 pretty-format: 29.7.0 - dev: true - - /@vitest/spy@0.33.0: - resolution: {integrity: sha512-Kv+yZ4hnH1WdiAkPUQTpRxW8kGtH8VRTnus7ZTGovFYM1ZezJpvGtb9nPIjPnptHbsyIAxYZsEpVPYgtpjGnrg==} - dependencies: - tinyspy: 2.2.0 - dev: true - /@vitest/spy@0.34.6: - resolution: {integrity: sha512-xaCvneSaeBw/cz8ySmF7ZwGvL0lBjfvqc1LpQ/vcdHEvpLn3Ff1vAvjw+CoGn0802l++5L/pxb7whwcWAw+DUQ==} + /@vitest/spy@1.2.2: + resolution: {integrity: sha512-k9Gcahssw8d7X3pSLq3e3XEu/0L78mUkCjivUqCQeXJm9clfXR/Td8+AP+VC1O6fKPIDLcHDTAmBOINVuv6+7g==} dependencies: tinyspy: 2.2.0 - dev: true - - /@vitest/utils@0.33.0: - resolution: {integrity: sha512-pF1w22ic965sv+EN6uoePkAOTkAPWM03Ri/jXNyMIKBb/XHLDPfhLvf/Fa9g0YECevAIz56oVYXhodLvLQ/awA==} - dependencies: - diff-sequences: 29.6.3 - loupe: 2.3.7 - pretty-format: 29.7.0 - dev: true - /@vitest/utils@0.34.6: - resolution: {integrity: sha512-IG5aDD8S6zlvloDsnzHw0Ut5xczlF+kv2BOTo+iXfPr54Yhi5qbVOgGB1hZaVq4iJ4C/MZ2J0y15IlsV/ZcI0A==} + /@vitest/utils@1.2.2: + resolution: {integrity: sha512-WKITBHLsBHlpjnDQahr+XK6RE7MiAsgrIkr0pGhQ9ygoxBfUeG0lUG5iLlzqjmKSlBv3+j5EGsriBzh+C3Tq9g==} dependencies: diff-sequences: 29.6.3 + estree-walker: 3.0.3 loupe: 2.3.7 pretty-format: 29.7.0 - dev: true /@volar/language-core@1.11.1: resolution: {integrity: sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==} @@ -1688,12 +1719,22 @@ packages: /@vue/compiler-core@3.3.4: resolution: {integrity: sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==} dependencies: - '@babel/parser': 7.22.7 + '@babel/parser': 7.23.9 '@vue/shared': 3.3.4 estree-walker: 2.0.2 source-map-js: 1.0.2 dev: true + /@vue/compiler-core@3.4.15: + resolution: {integrity: sha512-XcJQVOaxTKCnth1vCxEChteGuwG6wqnUHxAm1DO3gCz0+uXKaJNx8/digSz4dLALCy8n2lKq24jSUs8segoqIw==} + dependencies: + '@babel/parser': 7.23.9 + '@vue/shared': 3.4.15 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.0.2 + dev: true + /@vue/compiler-dom@3.3.4: resolution: {integrity: sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==} dependencies: @@ -1701,6 +1742,13 @@ packages: '@vue/shared': 3.3.4 dev: true + /@vue/compiler-dom@3.4.15: + resolution: {integrity: sha512-wox0aasVV74zoXyblarOM3AZQz/Z+OunYcIHe1OsGclCHt8RsRm04DObjefaI82u6XDzv+qGWZ24tIsRAIi5MQ==} + dependencies: + '@vue/compiler-core': 3.4.15 + '@vue/shared': 3.4.15 + dev: true + /@vue/language-core@1.8.25(typescript@5.3.3): resolution: {integrity: sha512-NJk/5DnAZlpvXX8BdWmHI45bWGLViUaS3R/RMrmFSvFMSbJKuEODpM4kR0F0Ofv5SFzCWuNiMhxameWpVdQsnA==} peerDependencies: @@ -1721,52 +1769,58 @@ packages: vue-template-compiler: 2.7.14 dev: true + /@vue/language-core@1.8.27(typescript@5.3.3): + resolution: {integrity: sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@volar/language-core': 1.11.1 + '@volar/source-map': 1.11.1 + '@vue/compiler-dom': 3.4.15 + '@vue/shared': 3.4.15 + computeds: 0.0.1 + minimatch: 9.0.3 + muggle-string: 0.3.1 + path-browserify: 1.0.1 + typescript: 5.3.3 + vue-template-compiler: 2.7.16 + dev: true + /@vue/shared@3.3.4: resolution: {integrity: sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==} dev: true - /abab@2.0.6: - resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} + /@vue/shared@3.4.15: + resolution: {integrity: sha512-KzfPTxVaWfB+eGcGdbSf4CWdaXcGDqckoeXUh7SB3fZdEtzPCK2Vq9B/lRRL3yutax/LWITz+SwvgyOxz5V75g==} dev: true - /acorn-jsx@5.3.2(acorn@8.11.2): + /acorn-jsx@5.3.2(acorn@8.11.3): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 8.11.2 - dev: true - - /acorn-walk@8.2.0: - resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} - engines: {node: '>=0.4.0'} + acorn: 8.11.3 dev: true - /acorn-walk@8.3.0: - resolution: {integrity: sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==} + /acorn-walk@8.3.2: + resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} engines: {node: '>=0.4.0'} - dev: true - - /acorn@8.10.0: - resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} - engines: {node: '>=0.4.0'} - hasBin: true - dev: true - /acorn@8.11.2: - resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==} + /acorn@8.11.3: + resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} engines: {node: '>=0.4.0'} hasBin: true - dev: true - /agent-base@6.0.2: - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} - engines: {node: '>= 6.0.0'} + /agent-base@7.1.0: + resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==} + engines: {node: '>= 14'} dependencies: debug: 4.3.4 transitivePeerDependencies: - supports-color - dev: true /aggregate-error@4.0.1: resolution: {integrity: sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==} @@ -1850,11 +1904,12 @@ packages: dependencies: dequal: 2.0.3 - /array-buffer-byte-length@1.0.0: - resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} + /array-buffer-byte-length@1.0.1: + resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.5 - is-array-buffer: 3.0.2 + is-array-buffer: 3.0.4 /array-includes@3.1.7: resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} @@ -1863,7 +1918,7 @@ packages: call-bind: 1.0.5 define-properties: 1.2.1 es-abstract: 1.22.3 - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.3 is-string: 1.0.7 dev: true @@ -1872,6 +1927,17 @@ packages: engines: {node: '>=8'} dev: true + /array.prototype.filter@1.0.3: + resolution: {integrity: sha512-VizNcj/RGJiUyQBgzwxzE5oHdeuXY5hSbbmKMlphj1cy1Vl7Pn2asCGbSrru6hSQjmCzqTBPVWAF/whmEOVHbw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-array-method-boxes-properly: 1.0.0 + is-string: 1.0.7 + dev: true + /array.prototype.findlastindex@1.2.3: resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==} engines: {node: '>= 0.4'} @@ -1880,7 +1946,7 @@ packages: define-properties: 1.2.1 es-abstract: 1.22.3 es-shim-unscopables: 1.0.2 - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.3 dev: true /array.prototype.flat@1.3.2: @@ -1903,34 +1969,30 @@ packages: es-shim-unscopables: 1.0.2 dev: true - /array.prototype.tosorted@1.1.2: - resolution: {integrity: sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==} + /array.prototype.tosorted@1.1.3: + resolution: {integrity: sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==} dependencies: call-bind: 1.0.5 define-properties: 1.2.1 es-abstract: 1.22.3 + es-errors: 1.3.0 es-shim-unscopables: 1.0.2 - get-intrinsic: 1.2.2 dev: true - /arraybuffer.prototype.slice@1.0.2: - resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} + /arraybuffer.prototype.slice@1.0.3: + resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} engines: {node: '>= 0.4'} dependencies: - array-buffer-byte-length: 1.0.0 + array-buffer-byte-length: 1.0.1 call-bind: 1.0.5 define-properties: 1.2.1 es-abstract: 1.22.3 - get-intrinsic: 1.2.2 - is-array-buffer: 3.0.2 + es-errors: 1.3.0 + get-intrinsic: 1.2.3 + is-array-buffer: 3.0.4 is-shared-array-buffer: 1.0.2 dev: true - /arrify@1.0.1: - resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} - engines: {node: '>=0.10.0'} - dev: true - /arrify@3.0.0: resolution: {integrity: sha512-tLkvA81vQG/XqE2mjDkGQHoOINtMHtysSnemrmoGe6PydDPMRbVugqyk4A6V/WDWEfm3l+0d8anA9r8cv/5Jaw==} engines: {node: '>=12'} @@ -1938,7 +2000,6 @@ packages: /assertion-error@1.1.0: resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} - dev: true /ast-types-flow@0.0.8: resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} @@ -1952,10 +2013,9 @@ packages: /asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - dev: true - /available-typed-arrays@1.0.5: - resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + /available-typed-arrays@1.0.6: + resolution: {integrity: sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg==} engines: {node: '>= 0.4'} /axe-core@4.7.0: @@ -1976,11 +2036,6 @@ packages: /base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - /big-integer@1.6.52: - resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} - engines: {node: '>=0.6'} - dev: true - /binary-extensions@2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} @@ -2004,13 +2059,6 @@ packages: popper.js: 1.16.1 dev: true - /bplist-parser@0.2.0: - resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==} - engines: {node: '>= 5.10.0'} - dependencies: - big-integer: 1.6.52 - dev: true - /brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: @@ -2029,17 +2077,16 @@ packages: engines: {node: '>=8'} dependencies: fill-range: 7.0.1 - dev: true - /browserslist@4.21.10: - resolution: {integrity: sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==} + /browserslist@4.22.3: + resolution: {integrity: sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001565 - electron-to-chromium: 1.4.477 - node-releases: 2.0.13 - update-browserslist-db: 1.0.11(browserslist@4.21.10) + caniuse-lite: 1.0.30001584 + electron-to-chromium: 1.4.657 + node-releases: 2.0.14 + update-browserslist-db: 1.0.13(browserslist@4.22.3) dev: true /buffer@5.7.1: @@ -2057,14 +2104,7 @@ packages: /builtins@5.0.1: resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} dependencies: - semver: 7.5.4 - dev: true - - /bundle-name@3.0.0: - resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==} - engines: {node: '>=12'} - dependencies: - run-applescript: 5.0.0 + semver: 7.6.0 dev: true /busboy@1.6.0: @@ -2074,75 +2114,27 @@ packages: streamsearch: 1.1.0 dev: false - /c8@7.14.0: - resolution: {integrity: sha512-i04rtkkcNcCf7zsQcSv/T9EbUn4RXQ6mropeMcjFOsQXQ0iGLAr/xT6TImQg4+U9hmNpN9XdvPkjUL1IzbgxJw==} - engines: {node: '>=10.12.0'} - hasBin: true - dependencies: - '@bcoe/v8-coverage': 0.2.3 - '@istanbuljs/schema': 0.1.3 - find-up: 5.0.0 - foreground-child: 2.0.0 - istanbul-lib-coverage: 3.2.0 - istanbul-lib-report: 3.0.1 - istanbul-reports: 3.1.6 - rimraf: 3.0.2 - test-exclude: 6.0.0 - v8-to-istanbul: 9.1.0 - yargs: 16.2.0 - yargs-parser: 20.2.9 - dev: true - /cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} - dev: true /call-bind@1.0.5: resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} dependencies: function-bind: 1.1.2 - get-intrinsic: 1.2.2 - set-function-length: 1.1.1 + get-intrinsic: 1.2.3 + set-function-length: 1.2.0 /callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} dev: true - /camelcase-keys@8.0.2: - resolution: {integrity: sha512-qMKdlOfsjlezMqxkUGGMaWWs17i2HoL15tM+wtx8ld4nLrUwU58TFdvyGOz/piNP842KeO8yXvggVQSdQ828NA==} - engines: {node: '>=14.16'} - dependencies: - camelcase: 7.0.1 - map-obj: 4.3.0 - quick-lru: 6.1.1 - type-fest: 2.19.0 - dev: true - - /camelcase@7.0.1: - resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} - engines: {node: '>=14.16'} - dev: true - - /caniuse-lite@1.0.30001565: - resolution: {integrity: sha512-xrE//a3O7TP0vaJ8ikzkD2c2NgcVUvsEe2IvFTntV4Yd1Z9FVzh+gW+enX96L0psrbaFMcVcH2l90xNuGDWc8w==} - - /chai@4.3.10: - resolution: {integrity: sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==} - engines: {node: '>=4'} - dependencies: - assertion-error: 1.1.0 - check-error: 1.0.3 - deep-eql: 4.1.3 - get-func-name: 2.0.2 - loupe: 2.3.7 - pathval: 1.1.1 - type-detect: 4.0.8 - dev: true + /caniuse-lite@1.0.30001584: + resolution: {integrity: sha512-LOz7CCQ9M1G7OjJOF9/mzmqmj3jE/7VOmrfw6Mgs0E8cjOsbRXQJHsPBfmBOXDskXKrHLyyW3n7kpDW/4BsfpQ==} - /chai@4.3.7: - resolution: {integrity: sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==} + /chai@4.4.1: + resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} engines: {node: '>=4'} dependencies: assertion-error: 1.1.0 @@ -2152,7 +2144,6 @@ packages: loupe: 2.3.7 pathval: 1.1.1 type-detect: 4.0.8 - dev: true /chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} @@ -2184,7 +2175,6 @@ packages: resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} dependencies: get-func-name: 2.0.2 - dev: true /chokidar@3.5.3: resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} @@ -2201,6 +2191,10 @@ packages: fsevents: 2.3.3 dev: true + /ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + engines: {node: '>=8'} + /clean-stack@4.2.0: resolution: {integrity: sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==} engines: {node: '>=12'} @@ -2215,8 +2209,8 @@ packages: restore-cursor: 3.1.0 dev: true - /cli-spinners@2.9.0: - resolution: {integrity: sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g==} + /cli-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} engines: {node: '>=6'} dev: true @@ -2278,7 +2272,6 @@ packages: engines: {node: '>= 0.8'} dependencies: delayed-stream: 1.0.0 - dev: true /commander@9.5.0: resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} @@ -2300,8 +2293,8 @@ packages: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} dev: true - /convert-source-map@1.9.0: - resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + /convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} dev: true /cookie@0.5.0: @@ -2309,6 +2302,14 @@ packages: engines: {node: '>= 0.6'} dev: true + /copy-file@11.0.0: + resolution: {integrity: sha512-mFsNh/DIANLqFt5VHZoGirdg7bK5+oTWlhnGu6tgRhzBlnEKWaPX2xrFaLltii/6rmhqFMJqffUgknuRdpYlHw==} + engines: {node: '>=18'} + dependencies: + graceful-fs: 4.2.11 + p-event: 6.0.0 + dev: true + /copyfiles@2.4.1: resolution: {integrity: sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==} hasBin: true @@ -2341,7 +2342,7 @@ packages: hasBin: true dependencies: cpy: 10.1.0 - meow: 12.0.1 + meow: 12.1.1 dev: true /cpy@10.1.0: @@ -2358,6 +2359,18 @@ packages: p-map: 6.0.0 dev: true + /cpy@11.0.0: + resolution: {integrity: sha512-vA71mFQyIxCrqvP/9JBLCj05UJV/+WpvAxZK2/EiK5ndD090cjuChfJ3ExVVuZXHoTJ/3HLedOPYDWyxnNHjrg==} + engines: {node: '>=18'} + dependencies: + copy-file: 11.0.0 + globby: 13.2.2 + junk: 4.0.1 + micromatch: 4.0.5 + p-filter: 3.0.0 + p-map: 6.0.0 + dev: true + /cross-env@7.0.3: resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} @@ -2373,17 +2386,15 @@ packages: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 - dev: true /css.escape@1.5.1: resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} - /cssstyle@3.0.0: - resolution: {integrity: sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg==} - engines: {node: '>=14'} + /cssstyle@4.0.1: + resolution: {integrity: sha512-8ZYiJ3A/3OkDd093CBT/0UKDWry7ak4BdPTFP2+QEP7cmhouyq/Up709ASSj2cK02BbZiMgk7kYjZNS4QP5qrQ==} + engines: {node: '>=18'} dependencies: rrweb-cssom: 0.6.0 - dev: true /csstype@3.1.2: resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} @@ -2393,14 +2404,12 @@ packages: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} dev: true - /data-urls@4.0.0: - resolution: {integrity: sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g==} - engines: {node: '>=14'} + /data-urls@5.0.0: + resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} + engines: {node: '>=18'} dependencies: - abab: 2.0.6 - whatwg-mimetype: 3.0.0 - whatwg-url: 12.0.1 - dev: true + whatwg-mimetype: 4.0.0 + whatwg-url: 14.0.0 /de-indent@1.0.2: resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} @@ -2427,76 +2436,40 @@ packages: optional: true dependencies: ms: 2.1.2 - dev: true - - /decamelize-keys@2.0.1: - resolution: {integrity: sha512-nrNeSCtU2gV3Apcmn/EZ+aR20zKDuNDStV67jPiupokD3sOAFeMzslLMCFdKv1sPqzwoe5ZUhsSW9IAVgKSL/Q==} - engines: {node: '>=14.16'} - dependencies: - decamelize: 6.0.0 - map-obj: 4.3.0 - quick-lru: 6.1.1 - type-fest: 3.13.1 - dev: true - - /decamelize@6.0.0: - resolution: {integrity: sha512-Fv96DCsdOgB6mdGl67MT5JaTNKRzrzill5OH5s8bjYJXVlcXyPYGyPsUkWyGV5p1TXI5esYIYMMeDJL0hEIwaA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true /decimal.js@10.4.3: resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} - dev: true /deep-eql@4.1.3: resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} engines: {node: '>=6'} dependencies: type-detect: 4.0.8 - dev: true /deep-equal@2.2.2: resolution: {integrity: sha512-xjVyBf0w5vH0I42jdAZzOKVldmPgSulmiyPRywoyq7HXC9qdgo17kxJE+rdnif5Tz6+pIrpJI8dCpMNLIGkUiA==} dependencies: - array-buffer-byte-length: 1.0.0 + array-buffer-byte-length: 1.0.1 call-bind: 1.0.5 es-get-iterator: 1.1.3 - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.3 is-arguments: 1.1.1 - is-array-buffer: 3.0.2 + is-array-buffer: 3.0.4 is-date-object: 1.0.5 is-regex: 1.1.4 is-shared-array-buffer: 1.0.2 isarray: 2.0.5 object-is: 1.1.5 object-keys: 1.1.1 - object.assign: 4.1.4 + object.assign: 4.1.5 regexp.prototype.flags: 1.5.1 side-channel: 1.0.4 which-boxed-primitive: 1.0.2 which-collection: 1.0.1 - which-typed-array: 1.1.13 - - /deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - dev: true - - /default-browser-id@3.0.0: - resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==} - engines: {node: '>=12'} - dependencies: - bplist-parser: 0.2.0 - untildify: 4.0.0 - dev: true - - /default-browser@4.0.0: - resolution: {integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==} - engines: {node: '>=14.16'} - dependencies: - bundle-name: 3.0.0 - default-browser-id: 3.0.0 - execa: 7.2.0 - titleize: 3.0.0 + which-typed-array: 1.1.14 + + /deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: true /defaults@1.0.4: @@ -2509,15 +2482,10 @@ packages: resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.3 gopd: 1.0.1 has-property-descriptors: 1.0.1 - /define-lazy-prop@3.0.0: - resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} - engines: {node: '>=12'} - dev: true - /define-properties@1.2.1: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} @@ -2529,20 +2497,14 @@ packages: /delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} - dev: true /dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} - /diff-sequences@27.5.1: - resolution: {integrity: sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - /diff-sequences@29.6.3: resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dev: true /dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} @@ -2568,19 +2530,15 @@ packages: /dom-accessibility-api@0.5.16: resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} - /domexception@4.0.0: - resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} - engines: {node: '>=12'} - dependencies: - webidl-conversions: 7.0.0 - dev: true + /dom-accessibility-api@0.6.3: + resolution: {integrity: sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==} /eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} dev: true - /electron-to-chromium@1.4.477: - resolution: {integrity: sha512-shUVy6Eawp33dFBFIoYbIwLHrX0IZ857AlH9ug2o4rvbWmpaCUdBpQ5Zw39HRrfzAFm4APJE9V+E2A/WB0YqJw==} + /electron-to-chromium@1.4.657: + resolution: {integrity: sha512-On2ymeleg6QbRuDk7wNgDdXtNqlJLM2w4Agx1D/RiTmItiL+a9oq5p7HUa2ZtkAtGBe/kil2dq/7rPfkbe0r5w==} dev: true /emoji-regex@8.0.0: @@ -2594,26 +2552,19 @@ packages: /entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} - dev: true - - /error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - dependencies: - is-arrayish: 0.2.1 - dev: true /es-abstract@1.22.3: resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==} engines: {node: '>= 0.4'} dependencies: - array-buffer-byte-length: 1.0.0 - arraybuffer.prototype.slice: 1.0.2 - available-typed-arrays: 1.0.5 + array-buffer-byte-length: 1.0.1 + arraybuffer.prototype.slice: 1.0.3 + available-typed-arrays: 1.0.6 call-bind: 1.0.5 es-set-tostringtag: 2.0.2 es-to-primitive: 1.2.1 function.prototype.name: 1.1.6 - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.3 get-symbol-description: 1.0.0 globalthis: 1.0.3 gopd: 1.0.1 @@ -2622,20 +2573,20 @@ packages: has-symbols: 1.0.3 hasown: 2.0.0 internal-slot: 1.0.6 - is-array-buffer: 3.0.2 + is-array-buffer: 3.0.4 is-callable: 1.2.7 is-negative-zero: 2.0.2 is-regex: 1.1.4 is-shared-array-buffer: 1.0.2 is-string: 1.0.7 - is-typed-array: 1.1.12 + is-typed-array: 1.1.13 is-weakref: 1.0.2 object-inspect: 1.13.1 object-keys: 1.1.1 - object.assign: 4.1.4 + object.assign: 4.1.5 regexp.prototype.flags: 1.5.1 - safe-array-concat: 1.0.1 - safe-regex-test: 1.0.0 + safe-array-concat: 1.1.0 + safe-regex-test: 1.0.2 string.prototype.trim: 1.2.8 string.prototype.trimend: 1.0.7 string.prototype.trimstart: 1.0.7 @@ -2644,14 +2595,22 @@ packages: typed-array-byte-offset: 1.0.0 typed-array-length: 1.0.4 unbox-primitive: 1.0.2 - which-typed-array: 1.1.13 + which-typed-array: 1.1.14 + dev: true + + /es-array-method-boxes-properly@1.0.0: + resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==} dev: true + /es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + /es-get-iterator@1.1.3: resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} dependencies: call-bind: 1.0.5 - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.3 has-symbols: 1.0.3 is-arguments: 1.1.1 is-map: 2.0.2 @@ -2669,22 +2628,22 @@ packages: es-abstract: 1.22.3 es-set-tostringtag: 2.0.2 function-bind: 1.1.2 - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.3 globalthis: 1.0.3 has-property-descriptors: 1.0.1 has-proto: 1.0.1 has-symbols: 1.0.3 internal-slot: 1.0.6 iterator.prototype: 1.1.2 - safe-array-concat: 1.0.1 + safe-array-concat: 1.1.0 dev: true /es-set-tostringtag@2.0.2: resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==} engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.2.2 - has-tostringtag: 1.0.0 + get-intrinsic: 1.2.3 + has-tostringtag: 1.0.2 hasown: 2.0.0 dev: true @@ -2703,38 +2662,38 @@ packages: is-symbol: 1.0.4 dev: true - /esbuild@0.18.20: - resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} + /esbuild@0.19.12: + resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.18.20 - '@esbuild/android-arm64': 0.18.20 - '@esbuild/android-x64': 0.18.20 - '@esbuild/darwin-arm64': 0.18.20 - '@esbuild/darwin-x64': 0.18.20 - '@esbuild/freebsd-arm64': 0.18.20 - '@esbuild/freebsd-x64': 0.18.20 - '@esbuild/linux-arm': 0.18.20 - '@esbuild/linux-arm64': 0.18.20 - '@esbuild/linux-ia32': 0.18.20 - '@esbuild/linux-loong64': 0.18.20 - '@esbuild/linux-mips64el': 0.18.20 - '@esbuild/linux-ppc64': 0.18.20 - '@esbuild/linux-riscv64': 0.18.20 - '@esbuild/linux-s390x': 0.18.20 - '@esbuild/linux-x64': 0.18.20 - '@esbuild/netbsd-x64': 0.18.20 - '@esbuild/openbsd-x64': 0.18.20 - '@esbuild/sunos-x64': 0.18.20 - '@esbuild/win32-arm64': 0.18.20 - '@esbuild/win32-ia32': 0.18.20 - '@esbuild/win32-x64': 0.18.20 - dev: true - - /escalade@3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + '@esbuild/aix-ppc64': 0.19.12 + '@esbuild/android-arm': 0.19.12 + '@esbuild/android-arm64': 0.19.12 + '@esbuild/android-x64': 0.19.12 + '@esbuild/darwin-arm64': 0.19.12 + '@esbuild/darwin-x64': 0.19.12 + '@esbuild/freebsd-arm64': 0.19.12 + '@esbuild/freebsd-x64': 0.19.12 + '@esbuild/linux-arm': 0.19.12 + '@esbuild/linux-arm64': 0.19.12 + '@esbuild/linux-ia32': 0.19.12 + '@esbuild/linux-loong64': 0.19.12 + '@esbuild/linux-mips64el': 0.19.12 + '@esbuild/linux-ppc64': 0.19.12 + '@esbuild/linux-riscv64': 0.19.12 + '@esbuild/linux-s390x': 0.19.12 + '@esbuild/linux-x64': 0.19.12 + '@esbuild/netbsd-x64': 0.19.12 + '@esbuild/openbsd-x64': 0.19.12 + '@esbuild/sunos-x64': 0.19.12 + '@esbuild/win32-arm64': 0.19.12 + '@esbuild/win32-ia32': 0.19.12 + '@esbuild/win32-x64': 0.19.12 + + /escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} engines: {node: '>=6'} dev: true @@ -2742,6 +2701,10 @@ packages: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} + /escape-string-regexp@2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} + /escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} @@ -2752,27 +2715,27 @@ packages: engines: {node: '>=12'} dev: true - /eslint-compat-utils@0.1.2(eslint@8.54.0): + /eslint-compat-utils@0.1.2(eslint@8.56.0): resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==} engines: {node: '>=12'} peerDependencies: eslint: '>=6.0.0' dependencies: - eslint: 8.54.0 + eslint: 8.56.0 dev: true - /eslint-config-prettier@8.10.0(eslint@8.54.0): - resolution: {integrity: sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==} + /eslint-config-prettier@9.1.0(eslint@8.56.0): + resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.54.0 + eslint: 8.56.0 dev: true - /eslint-define-config@1.24.1: - resolution: {integrity: sha512-o36vBhPSWyIQlHoMqGhhcGmOOm2A2ccBVIdLTG/AWdm9YmjpsLpf+5ntf9LlHR6dduLREgxtGwvwPwSt7vnXJg==} - engines: {node: '>=18.0.0', npm: '>=9.0.0', pnpm: '>= 8.6.0'} + /eslint-define-config@2.1.0: + resolution: {integrity: sha512-QUp6pM9pjKEVannNAbSJNeRuYwW3LshejfyBBpjeMGaJjaDUpVps4C6KVR8R7dWZnD3i0synmrE36znjTkJvdQ==} + engines: {node: '>=18.0.0', npm: '>=9.0.0', pnpm: '>=8.6.0'} dev: true /eslint-import-resolver-node@0.3.9: @@ -2785,7 +2748,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.13.1)(eslint-import-resolver-node@0.3.9)(eslint@8.54.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -2806,28 +2769,28 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.13.1(eslint@8.54.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) debug: 3.2.7 - eslint: 8.54.0 + eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-es-x@7.4.0(eslint@8.54.0): - resolution: {integrity: sha512-WJa3RhYzBtl8I37ebY9p76s61UhZyi4KaFOnX2A5r32RPazkXj5yoT6PGnD02dhwzEUj0KwsUdqfKDd/OuvGsw==} + /eslint-plugin-es-x@7.5.0(eslint@8.56.0): + resolution: {integrity: sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '>=8' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@eslint-community/regexpp': 4.10.0 - eslint: 8.54.0 - eslint-compat-utils: 0.1.2(eslint@8.54.0) + eslint: 8.56.0 + eslint-compat-utils: 0.1.2(eslint@8.56.0) dev: true - /eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.13.1)(eslint@8.54.0): - resolution: {integrity: sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==} + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.21.0)(eslint@8.56.0): + resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -2836,38 +2799,38 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.13.1(eslint@8.54.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 array.prototype.flatmap: 1.3.2 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.54.0 + eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.13.1)(eslint-import-resolver-node@0.3.9)(eslint@8.54.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0) hasown: 2.0.0 is-core-module: 2.13.1 is-glob: 4.0.3 minimatch: 3.1.2 object.fromentries: 2.0.7 - object.groupby: 1.0.1 + object.groupby: 1.0.2 object.values: 1.1.7 semver: 6.3.1 - tsconfig-paths: 3.14.2 + tsconfig-paths: 3.15.0 transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color dev: true - /eslint-plugin-jsx-a11y@6.8.0(eslint@8.54.0): + /eslint-plugin-jsx-a11y@6.8.0(eslint@8.56.0): resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==} engines: {node: '>=4.0'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.9 aria-query: 5.3.0 array-includes: 3.1.7 array.prototype.flatmap: 1.3.2 @@ -2877,7 +2840,7 @@ packages: damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 es-iterator-helpers: 1.0.15 - eslint: 8.54.0 + eslint: 8.56.0 hasown: 2.0.0 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 @@ -2886,23 +2849,24 @@ packages: object.fromentries: 2.0.7 dev: true - /eslint-plugin-n@16.3.1(eslint@8.54.0): - resolution: {integrity: sha512-w46eDIkxQ2FaTHcey7G40eD+FhTXOdKudDXPUO2n9WNcslze/i/HT2qJ3GXjHngYSGDISIgPNhwGtgoix4zeOw==} + /eslint-plugin-n@16.6.2(eslint@8.56.0): + resolution: {integrity: sha512-6TyDmZ1HXoFQXnhCTUjVFULReoBPOAjpuiKELMkeP40yffI/1ZRO+d9ug/VC6fqISo2WkuIBk3cvuRPALaWlOQ==} engines: {node: '>=16.0.0'} peerDependencies: eslint: '>=7.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) builtins: 5.0.1 - eslint: 8.54.0 - eslint-plugin-es-x: 7.4.0(eslint@8.54.0) + eslint: 8.56.0 + eslint-plugin-es-x: 7.5.0(eslint@8.56.0) get-tsconfig: 4.7.2 - ignore: 5.3.0 + globals: 13.24.0 + ignore: 5.3.1 is-builtin-module: 3.2.1 is-core-module: 2.13.1 minimatch: 3.1.2 resolve: 1.22.8 - semver: 7.5.4 + semver: 7.6.0 dev: true /eslint-plugin-no-only-tests@3.1.0: @@ -2910,7 +2874,7 @@ packages: engines: {node: '>=5.0.0'} dev: true - /eslint-plugin-prettier@5.0.1(eslint-config-prettier@8.10.0)(eslint@8.54.0)(prettier@3.1.0): + /eslint-plugin-prettier@5.0.1(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.2.5): resolution: {integrity: sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -2924,23 +2888,23 @@ packages: eslint-config-prettier: optional: true dependencies: - eslint: 8.54.0 - eslint-config-prettier: 8.10.0(eslint@8.54.0) - prettier: 3.1.0 + eslint: 8.56.0 + eslint-config-prettier: 9.1.0(eslint@8.56.0) + prettier: 3.2.5 prettier-linter-helpers: 1.0.0 - synckit: 0.8.5 + synckit: 0.8.8 dev: true - /eslint-plugin-react-hooks@4.6.0(eslint@8.54.0): + /eslint-plugin-react-hooks@4.6.0(eslint@8.56.0): resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: - eslint: 8.54.0 + eslint: 8.56.0 dev: true - /eslint-plugin-react@7.33.2(eslint@8.54.0): + /eslint-plugin-react@7.33.2(eslint@8.56.0): resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} engines: {node: '>=4'} peerDependencies: @@ -2948,10 +2912,10 @@ packages: dependencies: array-includes: 3.1.7 array.prototype.flatmap: 1.3.2 - array.prototype.tosorted: 1.1.2 + array.prototype.tosorted: 1.1.3 doctrine: 2.1.0 es-iterator-helpers: 1.0.15 - eslint: 8.54.0 + eslint: 8.56.0 estraverse: 5.3.0 jsx-ast-utils: 3.3.5 minimatch: 3.1.2 @@ -2965,38 +2929,38 @@ packages: string.prototype.matchall: 4.0.10 dev: true - /eslint-plugin-regexp@2.1.2(eslint@8.54.0): - resolution: {integrity: sha512-nnhNqHblaD8YTJiEHfyVRhiw8sm0eFQ9h+ee3rMqJhf2R9sJWbSXkjrLxIeCNZSNqitUOdaYFfrPVyvS9i72AA==} + /eslint-plugin-regexp@2.2.0(eslint@8.56.0): + resolution: {integrity: sha512-0kwpiWiLRVBkVr3oIRQLl196sXP/NF6DQFefv9jtR4ZOgQR+6WID2pIZ0I+wIt54qgBPwBB7Gm2a+ueh8/WsFQ==} engines: {node: ^18 || >=20} peerDependencies: eslint: '>=8.44.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@eslint-community/regexpp': 4.10.0 comment-parser: 1.4.1 - eslint: 8.54.0 + eslint: 8.56.0 jsdoc-type-pratt-parser: 4.0.0 refa: 0.12.1 regexp-ast-analysis: 0.7.1 scslre: 0.3.0 dev: true - /eslint-plugin-simple-import-sort@10.0.0(eslint@8.54.0): + /eslint-plugin-simple-import-sort@10.0.0(eslint@8.56.0): resolution: {integrity: sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw==} peerDependencies: eslint: '>=5.0.0' dependencies: - eslint: 8.54.0 + eslint: 8.56.0 dev: true - /eslint-plugin-testing-library@5.11.1(eslint@8.54.0)(typescript@5.3.3): - resolution: {integrity: sha512-5eX9e1Kc2PqVRed3taaLnAAqPZGEX75C+M/rXzUAI3wIg/ZxzUm1OVAwfe/O+vE+6YXOLetSe9g5GKD2ecXipw==} + /eslint-plugin-testing-library@6.2.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-+LCYJU81WF2yQ+Xu4A135CgK8IszcFcyMF4sWkbiu6Oj+Nel0TrkZq/HvDw0/1WuO3dhDQsZA/OpEMGd0NfcUw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0, npm: '>=6'} peerDependencies: eslint: ^7.5.0 || ^8.0.0 dependencies: - '@typescript-eslint/utils': 5.62.0(eslint@8.54.0)(typescript@5.3.3) - eslint: 8.54.0 + '@typescript-eslint/utils': 5.62.0(eslint@8.56.0)(typescript@5.3.3) + eslint: 8.56.0 transitivePeerDependencies: - supports-color - typescript @@ -3023,16 +2987,16 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.54.0: - resolution: {integrity: sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==} + /eslint@8.56.0: + resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@eslint-community/regexpp': 4.10.0 - '@eslint/eslintrc': 2.1.3 - '@eslint/js': 8.54.0 - '@humanwhocodes/config-array': 0.11.13 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.56.0 + '@humanwhocodes/config-array': 0.11.14 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 '@ungap/structured-clone': 1.2.0 @@ -3051,9 +3015,9 @@ packages: file-entry-cache: 6.0.1 find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.23.0 + globals: 13.24.0 graphemer: 1.4.0 - ignore: 5.3.0 + ignore: 5.3.1 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 @@ -3074,8 +3038,8 @@ packages: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.11.2 - acorn-jsx: 5.3.2(acorn@8.11.2) + acorn: 8.11.3 + acorn-jsx: 5.3.2(acorn@8.11.3) eslint-visitor-keys: 3.4.3 dev: true @@ -3107,40 +3071,39 @@ packages: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} dev: true + /estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + dependencies: + '@types/estree': 1.0.5 + /esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} dev: true - /execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} - dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - dev: true - - /execa@7.2.0: - resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} - engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} + /execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} dependencies: cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 4.3.1 + get-stream: 8.0.1 + human-signals: 5.0.0 is-stream: 3.0.0 merge-stream: 2.0.0 - npm-run-path: 5.1.0 + npm-run-path: 5.2.0 onetime: 6.0.0 - signal-exit: 3.0.7 + signal-exit: 4.1.0 strip-final-newline: 3.0.0 - dev: true + + /expect@29.7.0: + resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/expect-utils': 29.7.0 + jest-get-type: 29.6.3 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-util: 29.7.0 /external-editor@3.1.0: resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} @@ -3178,8 +3141,8 @@ packages: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} dev: true - /fastq@1.15.0: - resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + /fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} dependencies: reusify: 1.0.4 dev: true @@ -3203,7 +3166,6 @@ packages: engines: {node: '>=8'} dependencies: to-regex-range: 5.0.1 - dev: true /find-up@5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} @@ -3213,14 +3175,6 @@ packages: path-exists: 4.0.0 dev: true - /find-up@6.3.0: - resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - locate-path: 7.2.0 - path-exists: 5.0.0 - dev: true - /flat-cache@3.2.0: resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} engines: {node: ^10.12.0 || >=12.0.0} @@ -3239,14 +3193,6 @@ packages: dependencies: is-callable: 1.2.7 - /foreground-child@2.0.0: - resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==} - engines: {node: '>=8.0.0'} - dependencies: - cross-spawn: 7.0.3 - signal-exit: 3.0.7 - dev: true - /foreground-child@3.1.1: resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} engines: {node: '>=14'} @@ -3262,15 +3208,6 @@ packages: asynckit: 0.4.0 combined-stream: 1.0.8 mime-types: 2.1.35 - dev: true - - /formdata-node@4.4.1: - resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==} - engines: {node: '>= 12.20'} - dependencies: - node-domexception: 1.0.0 - web-streams-polyfill: 4.0.0-beta.3 - dev: true /fs-extra@7.0.1: resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} @@ -3290,7 +3227,6 @@ packages: engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true - dev: true optional: true /function-bind@1.1.2: @@ -3321,27 +3257,27 @@ packages: /get-func-name@2.0.2: resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} - dev: true - /get-intrinsic@1.2.2: - resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} + /get-intrinsic@1.2.3: + resolution: {integrity: sha512-JIcZczvcMVE7AUOP+X72bh8HqHBRxFdz5PDHYtNG/lE3yk9b3KZBJlwFcTyPYjg3L4RLLmZJzvjxhaZVapxFrQ==} + engines: {node: '>= 0.4'} dependencies: + es-errors: 1.3.0 function-bind: 1.1.2 has-proto: 1.0.1 has-symbols: 1.0.3 hasown: 2.0.0 - /get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} - dev: true + /get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} /get-symbol-description@1.0.0: resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.5 - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.3 dev: true /get-tsconfig@4.7.2: @@ -3364,19 +3300,15 @@ packages: is-glob: 4.0.3 dev: true - /glob-to-regexp@0.4.1: - resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - dev: false - - /glob@10.3.3: - resolution: {integrity: sha512-92vPiMb/iqpmEgsOoIDvTjc50wf9CCCvMzsi6W0JLPeUKE8TWP1a73PgqSrqy7iAZxaSD1YdzU7QZR5LF51MJw==} + /glob@10.3.10: + resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} engines: {node: '>=16 || 14 >=14.17'} hasBin: true dependencies: foreground-child: 3.1.1 - jackspeak: 2.2.2 + jackspeak: 2.3.6 minimatch: 9.0.3 - minipass: 7.0.2 + minipass: 7.0.4 path-scurry: 1.10.1 dev: true @@ -3396,8 +3328,8 @@ packages: engines: {node: '>=4'} dev: true - /globals@13.23.0: - resolution: {integrity: sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==} + /globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} engines: {node: '>=8'} dependencies: type-fest: 0.20.2 @@ -3417,7 +3349,7 @@ packages: array-union: 2.1.0 dir-glob: 3.0.1 fast-glob: 3.3.2 - ignore: 5.3.0 + ignore: 5.3.1 merge2: 1.4.1 slash: 3.0.0 dev: true @@ -3428,7 +3360,7 @@ packages: dependencies: dir-glob: 3.0.1 fast-glob: 3.3.2 - ignore: 5.3.0 + ignore: 5.3.1 merge2: 1.4.1 slash: 4.0.0 dev: true @@ -3436,7 +3368,7 @@ packages: /gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} dependencies: - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.3 /graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} @@ -3450,11 +3382,6 @@ packages: engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} dev: true - /hard-rejection@2.1.0: - resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} - engines: {node: '>=6'} - dev: true - /has-bigints@1.0.2: resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} @@ -3469,7 +3396,7 @@ packages: /has-property-descriptors@1.0.1: resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} dependencies: - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.3 /has-proto@1.0.1: resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} @@ -3479,8 +3406,8 @@ packages: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} - /has-tostringtag@1.0.0: - resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + /has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} dependencies: has-symbols: 1.0.3 @@ -3500,61 +3427,37 @@ packages: resolution: {integrity: sha512-EWGTfnTqAO2L/j5HZgoM/3z82L7necsJ0pO9Tp0X1wil3PDLrkypTBRgVO2ExehEEvUycejZD3FuRaXpZZc3kw==} dev: true - /hosted-git-info@4.1.0: - resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} - engines: {node: '>=10'} - dependencies: - lru-cache: 6.0.0 - dev: true - - /hosted-git-info@6.1.1: - resolution: {integrity: sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dependencies: - lru-cache: 7.18.3 - dev: true - - /html-encoding-sniffer@3.0.0: - resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} - engines: {node: '>=12'} + /html-encoding-sniffer@4.0.0: + resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} + engines: {node: '>=18'} dependencies: - whatwg-encoding: 2.0.0 - dev: true + whatwg-encoding: 3.1.1 /html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} dev: true - /http-proxy-agent@5.0.0: - resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} - engines: {node: '>= 6'} + /http-proxy-agent@7.0.0: + resolution: {integrity: sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==} + engines: {node: '>= 14'} dependencies: - '@tootallnate/once': 2.0.0 - agent-base: 6.0.2 + agent-base: 7.1.0 debug: 4.3.4 transitivePeerDependencies: - supports-color - dev: true - /https-proxy-agent@5.0.1: - resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} - engines: {node: '>= 6'} + /https-proxy-agent@7.0.2: + resolution: {integrity: sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==} + engines: {node: '>= 14'} dependencies: - agent-base: 6.0.2 + agent-base: 7.1.0 debug: 4.3.4 transitivePeerDependencies: - supports-color - dev: true - /human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - dev: true - - /human-signals@4.3.1: - resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} - engines: {node: '>=14.18.0'} - dev: true + /human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} /iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} @@ -3568,14 +3471,13 @@ packages: engines: {node: '>=0.10.0'} dependencies: safer-buffer: 2.1.2 - dev: true /ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} dev: true - /ignore@5.3.0: - resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==} + /ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} engines: {node: '>= 4'} dev: true @@ -3617,8 +3519,8 @@ packages: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} dev: true - /inquirer@8.2.5: - resolution: {integrity: sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==} + /inquirer@8.2.6: + resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==} engines: {node: '>=12.0.0'} dependencies: ansi-escapes: 4.3.2 @@ -3635,14 +3537,14 @@ packages: string-width: 4.2.3 strip-ansi: 6.0.1 through: 2.3.8 - wrap-ansi: 7.0.0 + wrap-ansi: 6.2.0 dev: true /internal-slot@1.0.6: resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==} engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.3 hasown: 2.0.0 side-channel: 1.0.4 @@ -3651,24 +3553,20 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.5 - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 - /is-array-buffer@3.0.2: - resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} + /is-array-buffer@3.0.4: + resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.5 - get-intrinsic: 1.2.2 - is-typed-array: 1.1.12 - - /is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - dev: true + get-intrinsic: 1.2.3 /is-async-function@2.0.0: resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} engines: {node: '>= 0.4'} dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 dev: true /is-bigint@1.0.4: @@ -3688,7 +3586,7 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.5 - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 /is-builtin-module@3.2.1: resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} @@ -3711,19 +3609,7 @@ packages: resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} engines: {node: '>= 0.4'} dependencies: - has-tostringtag: 1.0.0 - - /is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} - hasBin: true - dev: true - - /is-docker@3.0.0: - resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - hasBin: true - dev: true + has-tostringtag: 1.0.2 /is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} @@ -3745,7 +3631,7 @@ packages: resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} engines: {node: '>= 0.4'} dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 dev: true /is-glob@4.0.3: @@ -3755,14 +3641,6 @@ packages: is-extglob: 2.1.1 dev: true - /is-inside-container@1.0.0: - resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} - engines: {node: '>=14.16'} - hasBin: true - dependencies: - is-docker: 3.0.0 - dev: true - /is-interactive@1.0.0: resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} engines: {node: '>=8'} @@ -3784,33 +3662,26 @@ packages: resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} engines: {node: '>= 0.4'} dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 /is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} - dev: true /is-path-inside@3.0.3: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} engines: {node: '>=8'} dev: true - /is-plain-obj@1.1.0: - resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} - engines: {node: '>=0.10.0'} - dev: true - /is-potential-custom-element-name@1.0.1: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} - dev: true /is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.5 - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 /is-set@2.0.2: resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} @@ -3820,21 +3691,15 @@ packages: dependencies: call-bind: 1.0.5 - /is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - dev: true - /is-stream@3.0.0: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true /is-string@1.0.7: resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} engines: {node: '>= 0.4'} dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 /is-symbol@1.0.4: resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} @@ -3842,11 +3707,12 @@ packages: dependencies: has-symbols: 1.0.3 - /is-typed-array@1.1.12: - resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} + /is-typed-array@1.1.13: + resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} engines: {node: '>= 0.4'} dependencies: - which-typed-array: 1.1.13 + which-typed-array: 1.1.14 + dev: true /is-unicode-supported@0.1.0: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} @@ -3866,14 +3732,7 @@ packages: resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} dependencies: call-bind: 1.0.5 - get-intrinsic: 1.2.2 - - /is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} - dependencies: - is-docker: 2.2.1 - dev: true + get-intrinsic: 1.2.3 /isarray@0.0.1: resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} @@ -3888,10 +3747,9 @@ packages: /isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - dev: true - /istanbul-lib-coverage@3.2.0: - resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==} + /istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} engines: {node: '>=8'} dev: true @@ -3899,7 +3757,7 @@ packages: resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} engines: {node: '>=10'} dependencies: - istanbul-lib-coverage: 3.2.0 + istanbul-lib-coverage: 3.2.2 make-dir: 4.0.0 supports-color: 7.2.0 dev: true @@ -3909,7 +3767,7 @@ packages: engines: {node: '>=10'} dependencies: debug: 4.3.4 - istanbul-lib-coverage: 3.2.0 + istanbul-lib-coverage: 3.2.2 source-map: 0.6.1 transitivePeerDependencies: - supports-color @@ -3927,14 +3785,14 @@ packages: resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} dependencies: define-properties: 1.2.1 - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.3 has-symbols: 1.0.3 - reflect.getprototypeof: 1.0.4 + reflect.getprototypeof: 1.0.5 set-function-name: 2.0.1 dev: true - /jackspeak@2.2.2: - resolution: {integrity: sha512-mgNtVv4vUuaKA97yxUHoA3+FkuhtxkjdXEWOyB/N76fjy0FjezEt34oy3epBtvCvS+7DyKwqCFWx/oJLV5+kCg==} + /jackspeak@2.3.6: + resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} engines: {node: '>=14'} dependencies: '@isaacs/cliui': 8.0.2 @@ -3942,27 +3800,52 @@ packages: '@pkgjs/parseargs': 0.11.0 dev: true - /jest-diff@27.5.1: - resolution: {integrity: sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + /jest-diff@29.7.0: + resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 - diff-sequences: 27.5.1 - jest-get-type: 27.5.1 - pretty-format: 27.5.1 + diff-sequences: 29.6.3 + jest-get-type: 29.6.3 + pretty-format: 29.7.0 - /jest-get-type@27.5.1: - resolution: {integrity: sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + /jest-get-type@29.6.3: + resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - /jest-matcher-utils@27.5.1: - resolution: {integrity: sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + /jest-matcher-utils@29.7.0: + resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 - jest-diff: 27.5.1 - jest-get-type: 27.5.1 - pretty-format: 27.5.1 + jest-diff: 29.7.0 + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + + /jest-message-util@29.7.0: + resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/code-frame': 7.23.5 + '@jest/types': 29.6.3 + '@types/stack-utils': 2.0.3 + chalk: 4.1.2 + graceful-fs: 4.2.11 + micromatch: 4.0.5 + pretty-format: 29.7.0 + slash: 3.0.0 + stack-utils: 2.0.6 + + /jest-util@29.7.0: + resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.3 + '@types/node': 20.11.16 + chalk: 4.1.2 + ci-info: 3.9.0 + graceful-fs: 4.2.11 + picomatch: 2.3.1 /jju@1.4.0: resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} @@ -3972,11 +3855,6 @@ packages: resolution: {integrity: sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==} dev: true - /js-levenshtein@1.1.6: - resolution: {integrity: sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==} - engines: {node: '>=0.10.0'} - dev: true - /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -3992,24 +3870,22 @@ packages: engines: {node: '>=12.0.0'} dev: true - /jsdom@22.1.0: - resolution: {integrity: sha512-/9AVW7xNbsBv6GfWho4TTNjEo9fe6Zhf9O7s0Fhhr3u+awPwAJMKwAMXnkk5vBxflqLW9hTHX/0cs+P3gW+cQw==} - engines: {node: '>=16'} + /jsdom@24.0.0: + resolution: {integrity: sha512-UDS2NayCvmXSXVP6mpTj+73JnNQadZlr9N68189xib2tx5Mls7swlTNao26IoHv46BZJFvXygyRtyXd1feAk1A==} + engines: {node: '>=18'} peerDependencies: - canvas: ^2.5.0 + canvas: ^2.11.2 peerDependenciesMeta: canvas: optional: true dependencies: - abab: 2.0.6 - cssstyle: 3.0.0 - data-urls: 4.0.0 + cssstyle: 4.0.1 + data-urls: 5.0.0 decimal.js: 10.4.3 - domexception: 4.0.0 form-data: 4.0.0 - html-encoding-sniffer: 3.0.0 - http-proxy-agent: 5.0.0 - https-proxy-agent: 5.0.1 + html-encoding-sniffer: 4.0.0 + http-proxy-agent: 7.0.0 + https-proxy-agent: 7.0.2 is-potential-custom-element-name: 1.0.1 nwsapi: 2.2.7 parse5: 7.1.2 @@ -4017,18 +3893,17 @@ packages: saxes: 6.0.0 symbol-tree: 3.2.4 tough-cookie: 4.1.3 - w3c-xmlserializer: 4.0.0 + w3c-xmlserializer: 5.0.0 webidl-conversions: 7.0.0 - whatwg-encoding: 2.0.0 - whatwg-mimetype: 3.0.0 - whatwg-url: 12.0.1 - ws: 8.13.0 - xml-name-validator: 4.0.0 + whatwg-encoding: 3.1.1 + whatwg-mimetype: 4.0.0 + whatwg-url: 14.0.0 + ws: 8.16.0 + xml-name-validator: 5.0.0 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - dev: true /jsesc@2.5.2: resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} @@ -4040,10 +3915,6 @@ packages: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} dev: true - /json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - dev: true - /json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} dev: true @@ -4065,9 +3936,8 @@ packages: hasBin: true dev: true - /jsonc-parser@3.2.0: - resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} - dev: true + /jsonc-parser@3.2.1: + resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==} /jsonfile@4.0.0: resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} @@ -4081,7 +3951,7 @@ packages: dependencies: array-includes: 3.1.7 array.prototype.flat: 1.3.2 - object.assign: 4.1.4 + object.assign: 4.1.5 object.values: 1.1.7 dev: true @@ -4096,11 +3966,6 @@ packages: json-buffer: 3.0.1 dev: true - /kind-of@6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} - engines: {node: '>=0.10.0'} - dev: true - /kolorist@1.8.0: resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} dev: true @@ -4124,14 +3989,12 @@ packages: type-check: 0.4.0 dev: true - /lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - dev: true - - /local-pkg@0.4.3: - resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} + /local-pkg@0.5.0: + resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} engines: {node: '>=14'} - dev: true + dependencies: + mlly: 1.5.0 + pkg-types: 1.0.3 /locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} @@ -4140,13 +4003,6 @@ packages: p-locate: 5.0.0 dev: true - /locate-path@7.2.0: - resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - p-locate: 6.0.0 - dev: true - /lodash.get@4.4.2: resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} dev: true @@ -4180,10 +4036,9 @@ packages: resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} dependencies: get-func-name: 2.0.2 - dev: true - /lru-cache@10.0.0: - resolution: {integrity: sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw==} + /lru-cache@10.2.0: + resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} engines: {node: 14 || >=16.14} dev: true @@ -4200,62 +4055,38 @@ packages: yallist: 4.0.0 dev: true - /lru-cache@7.18.3: - resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} - engines: {node: '>=12'} - dev: true - /lz-string@1.5.0: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true - /magic-string@0.30.2: - resolution: {integrity: sha512-lNZdu7pewtq/ZvWUp9Wpf/x7WzMTsR26TWV03BRZrXFsv+BI6dy8RAiKgm1uM/kyR0rCfUcqvOlXKG66KhIGug==} + /magic-string@0.30.7: + resolution: {integrity: sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==} engines: {node: '>=12'} dependencies: '@jridgewell/sourcemap-codec': 1.4.15 - dev: true - /magic-string@0.30.5: - resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} - engines: {node: '>=12'} + /magicast@0.3.3: + resolution: {integrity: sha512-ZbrP1Qxnpoes8sz47AM0z08U+jW6TyRgZzcWy3Ma3vDhJttwMwAFDMMQFobwdBxByBD46JYmxRzeF7w2+wJEuw==} dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 + '@babel/parser': 7.23.9 + '@babel/types': 7.23.9 + source-map-js: 1.0.2 dev: true /make-dir@4.0.0: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} dependencies: - semver: 7.5.4 - dev: true - - /map-obj@4.3.0: - resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} - engines: {node: '>=8'} + semver: 7.6.0 dev: true - /meow@12.0.1: - resolution: {integrity: sha512-/QOqMALNoKQcJAOOdIXjNLtfcCdLXbMFyB1fOOPdm6RzfBTlsuodOCTBDjVbeUSmgDQb8UI2oONqYGtq1PKKKA==} + /meow@12.1.1: + resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==} engines: {node: '>=16.10'} - dependencies: - '@types/minimist': 1.2.2 - camelcase-keys: 8.0.2 - decamelize: 6.0.0 - decamelize-keys: 2.0.1 - hard-rejection: 2.1.0 - minimist-options: 4.1.0 - normalize-package-data: 5.0.0 - read-pkg-up: 9.1.0 - redent: 4.0.0 - trim-newlines: 5.0.0 - type-fest: 3.13.1 - yargs-parser: 21.1.1 dev: true /merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - dev: true /merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} @@ -4268,19 +4099,16 @@ packages: dependencies: braces: 3.0.2 picomatch: 2.3.1 - dev: true /mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} - dev: true /mime-types@2.1.35: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} dependencies: mime-db: 1.52.0 - dev: true /mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} @@ -4290,7 +4118,6 @@ packages: /mimic-fn@4.0.0: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} engines: {node: '>=12'} - dev: true /min-indent@1.0.1: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} @@ -4309,21 +4136,12 @@ packages: brace-expansion: 2.0.1 dev: true - /minimist-options@4.1.0: - resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} - engines: {node: '>= 6'} - dependencies: - arrify: 1.0.1 - is-plain-obj: 1.1.0 - kind-of: 6.0.3 - dev: true - /minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} dev: true - /minipass@7.0.2: - resolution: {integrity: sha512-eL79dXrE1q9dBbDCLg7xfn/vl7MS4F1gvJAgjJrQli/jbQWdUttuVawphqpffoIYfRdq78LHx6GP4bU/EQ2ATA==} + /minipass@7.0.4: + resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} engines: {node: '>=16 || 14 >=14.17'} dev: true @@ -4333,60 +4151,51 @@ packages: hasBin: true dev: true - /mlly@1.4.2: - resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==} + /mlly@1.5.0: + resolution: {integrity: sha512-NPVQvAY1xr1QoVeG0cy8yUYC7FQcOx6evl/RjT1wL5FvzPnzOysoqB/jmx/DhssT2dYa8nxECLAaFI/+gVLhDQ==} dependencies: - acorn: 8.11.2 - pathe: 1.1.1 + acorn: 8.11.3 + pathe: 1.1.2 pkg-types: 1.0.3 ufo: 1.3.2 - dev: true /ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - dev: true /ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} dev: true - /msw@2.0.0(typescript@5.3.3): - resolution: {integrity: sha512-lw9UHuzNCWoODHaThGeLLIIuzEBUQkj3fJXQnChHifMKbB2UmF2msHd4d/lnyqjAyD0XWoibdviW9wlstFPpkA==} + /msw@2.1.6(typescript@5.3.3): + resolution: {integrity: sha512-62NX1pdMa1C17U/6+SQjQFxwHx0bcWHzZoDN2mK97FvEttTkX9CyJqx3OcYYBpNykDx+segweaO4yxapjifj4g==} engines: {node: '>=18'} hasBin: true requiresBuild: true peerDependencies: - typescript: '>= 4.7.x <= 5.2.x' + typescript: '>= 4.7.x <= 5.3.x' peerDependenciesMeta: typescript: optional: true dependencies: '@bundled-es-modules/cookie': 2.0.0 - '@bundled-es-modules/js-levenshtein': 2.0.1 '@bundled-es-modules/statuses': 1.0.1 - '@mswjs/cookies': 1.0.0 - '@mswjs/interceptors': 0.25.7 + '@mswjs/cookies': 1.1.0 + '@mswjs/interceptors': 0.25.15 '@open-draft/until': 2.1.0 - '@types/cookie': 0.4.1 - '@types/js-levenshtein': 1.1.1 - '@types/statuses': 2.0.3 + '@types/cookie': 0.6.0 + '@types/statuses': 2.0.4 chalk: 4.1.2 chokidar: 3.5.3 - formdata-node: 4.4.1 graphql: 16.8.1 headers-polyfill: 4.0.2 - inquirer: 8.2.5 + inquirer: 8.2.6 is-node-process: 1.2.0 - js-levenshtein: 1.1.6 - node-fetch: 2.6.12 - outvariant: 1.4.0 + outvariant: 1.4.2 path-to-regexp: 6.2.1 strict-event-emitter: 0.5.1 - type-fest: 2.19.0 + type-fest: 4.10.2 typescript: 5.3.3 yargs: 17.7.2 - transitivePeerDependencies: - - encoding dev: true /muggle-string@0.3.1: @@ -4410,8 +4219,8 @@ packages: resolution: {integrity: sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==} dev: true - /next@14.0.4(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-qbwypnM7327SadwFtxXnQdGiKpkuhaRLE2uq62/nRul9cj9KhQ5LhHmlziTNqUidZotw/Q1I9OjirBROdUJNgA==} + /next@14.1.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-wlzrsbfeSU48YQBjZhDzOwhWhGsy+uQycR8bHAOt1LY1bn3zZEcDyHQOEoN3aWzQ8LHCAJ1nqrWCc9XF2+O45Q==} engines: {node: '>=18.17.0'} hasBin: true peerDependencies: @@ -4425,50 +4234,32 @@ packages: sass: optional: true dependencies: - '@next/env': 14.0.4 + '@next/env': 14.1.0 '@swc/helpers': 0.5.2 busboy: 1.6.0 - caniuse-lite: 1.0.30001565 + caniuse-lite: 1.0.30001584 graceful-fs: 4.2.11 postcss: 8.4.31 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) styled-jsx: 5.1.1(react@18.2.0) - watchpack: 2.4.0 optionalDependencies: - '@next/swc-darwin-arm64': 14.0.4 - '@next/swc-darwin-x64': 14.0.4 - '@next/swc-linux-arm64-gnu': 14.0.4 - '@next/swc-linux-arm64-musl': 14.0.4 - '@next/swc-linux-x64-gnu': 14.0.4 - '@next/swc-linux-x64-musl': 14.0.4 - '@next/swc-win32-arm64-msvc': 14.0.4 - '@next/swc-win32-ia32-msvc': 14.0.4 - '@next/swc-win32-x64-msvc': 14.0.4 + '@next/swc-darwin-arm64': 14.1.0 + '@next/swc-darwin-x64': 14.1.0 + '@next/swc-linux-arm64-gnu': 14.1.0 + '@next/swc-linux-arm64-musl': 14.1.0 + '@next/swc-linux-x64-gnu': 14.1.0 + '@next/swc-linux-x64-musl': 14.1.0 + '@next/swc-win32-arm64-msvc': 14.1.0 + '@next/swc-win32-ia32-msvc': 14.1.0 + '@next/swc-win32-x64-msvc': 14.1.0 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros dev: false - /node-domexception@1.0.0: - resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} - engines: {node: '>=10.5.0'} - dev: true - - /node-fetch@2.6.12: - resolution: {integrity: sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - dependencies: - whatwg-url: 5.0.0 - dev: true - - /node-releases@2.0.13: - resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} + /node-releases@2.0.14: + resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} dev: true /noms@0.0.0: @@ -4478,48 +4269,19 @@ packages: readable-stream: 1.0.34 dev: true - /normalize-package-data@3.0.3: - resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} - engines: {node: '>=10'} - dependencies: - hosted-git-info: 4.1.0 - is-core-module: 2.13.1 - semver: 7.5.4 - validate-npm-package-license: 3.0.4 - dev: true - - /normalize-package-data@5.0.0: - resolution: {integrity: sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dependencies: - hosted-git-info: 6.1.1 - is-core-module: 2.13.1 - semver: 7.5.4 - validate-npm-package-license: 3.0.4 - dev: true - /normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} dev: true - /npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} - dependencies: - path-key: 3.1.1 - dev: true - - /npm-run-path@5.1.0: - resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} + /npm-run-path@5.2.0: + resolution: {integrity: sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: path-key: 4.0.0 - dev: true /nwsapi@2.2.7: resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==} - dev: true /object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} @@ -4540,8 +4302,8 @@ packages: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} - /object.assign@4.1.4: - resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} + /object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.5 @@ -4567,13 +4329,14 @@ packages: es-abstract: 1.22.3 dev: true - /object.groupby@1.0.1: - resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==} + /object.groupby@1.0.2: + resolution: {integrity: sha512-bzBq58S+x+uo0VjurFT0UktpKHOZmv4/xePiOA1nbB9pMqpGK7rUPNgf+1YC+7mE+0HzhTMqNUuCqvKhj6FnBw==} dependencies: + array.prototype.filter: 1.0.3 call-bind: 1.0.5 define-properties: 1.2.1 es-abstract: 1.22.3 - get-intrinsic: 1.2.2 + es-errors: 1.3.0 dev: true /object.hasown@1.1.3: @@ -4610,17 +4373,6 @@ packages: engines: {node: '>=12'} dependencies: mimic-fn: 4.0.0 - dev: true - - /open@9.1.0: - resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==} - engines: {node: '>=14.16'} - dependencies: - default-browser: 4.0.0 - define-lazy-prop: 3.0.0 - is-inside-container: 1.0.0 - is-wsl: 2.2.0 - dev: true /optionator@0.9.3: resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} @@ -4641,7 +4393,7 @@ packages: bl: 4.1.0 chalk: 4.1.2 cli-cursor: 3.1.0 - cli-spinners: 2.9.0 + cli-spinners: 2.9.2 is-interactive: 1.0.0 is-unicode-supported: 0.1.0 log-symbols: 4.1.0 @@ -4654,8 +4406,8 @@ packages: engines: {node: '>=0.10.0'} dev: true - /outvariant@1.4.0: - resolution: {integrity: sha512-AlWY719RF02ujitly7Kk/0QlV+pXGFDHrHf9O2OKqyqgBieaPOIeuSkL8sRK6j2WK+/ZAURq2kZsY0d8JapUiw==} + /outvariant@1.4.2: + resolution: {integrity: sha512-Ou3dJ6bA/UJ5GVHxah4LnqDwZRwAmWxrG3wtrHrbGnP4RnLCtA64A4F+ae7Y8ww660JaddSoArUR5HjipWSHAQ==} dev: true /p-event@5.0.1: @@ -4665,6 +4417,13 @@ packages: p-timeout: 5.1.0 dev: true + /p-event@6.0.0: + resolution: {integrity: sha512-Xbfxd0CfZmHLGKXH32k1JKjQYX6Rkv0UtQdaFJ8OyNcf+c0oWCeXHc1C4CX/IESZLmcvfPa5aFIO/vCr5gqtag==} + engines: {node: '>=16.17'} + dependencies: + p-timeout: 6.1.2 + dev: true + /p-filter@3.0.0: resolution: {integrity: sha512-QtoWLjXAW++uTX67HZQz1dbTpqBfiidsB6VtQUC9iR85S120+s0T5sO6s+B5MLzFcZkrEd/DGMmCjR+f2Qpxwg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -4679,12 +4438,11 @@ packages: yocto-queue: 0.1.0 dev: true - /p-limit@4.0.0: - resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + /p-limit@5.0.0: + resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} + engines: {node: '>=18'} dependencies: yocto-queue: 1.0.0 - dev: true /p-locate@5.0.0: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} @@ -4693,13 +4451,6 @@ packages: p-limit: 3.1.0 dev: true - /p-locate@6.0.0: - resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - p-limit: 4.0.0 - dev: true - /p-map@5.5.0: resolution: {integrity: sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==} engines: {node: '>=12'} @@ -4717,6 +4468,11 @@ packages: engines: {node: '>=12'} dev: true + /p-timeout@6.1.2: + resolution: {integrity: sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ==} + engines: {node: '>=14.16'} + dev: true + /parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} @@ -4724,21 +4480,10 @@ packages: callsites: 3.1.0 dev: true - /parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} - dependencies: - '@babel/code-frame': 7.22.5 - error-ex: 1.3.2 - json-parse-even-better-errors: 2.3.1 - lines-and-columns: 1.2.4 - dev: true - /parse5@7.1.2: resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} dependencies: entities: 4.5.0 - dev: true /path-browserify@1.0.1: resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} @@ -4749,11 +4494,6 @@ packages: engines: {node: '>=8'} dev: true - /path-exists@5.0.0: - resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true - /path-is-absolute@1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} @@ -4762,12 +4502,10 @@ packages: /path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} - dev: true /path-key@4.0.0: resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} engines: {node: '>=12'} - dev: true /path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} @@ -4777,8 +4515,8 @@ packages: resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} engines: {node: '>=16 || 14 >=14.17'} dependencies: - lru-cache: 10.0.0 - minipass: 7.0.2 + lru-cache: 10.2.0 + minipass: 7.0.4 dev: true /path-to-regexp@6.2.1: @@ -4790,13 +4528,11 @@ packages: engines: {node: '>=8'} dev: true - /pathe@1.1.1: - resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==} - dev: true + /pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} /pathval@1.1.1: resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} - dev: true /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} @@ -4804,15 +4540,13 @@ packages: /picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - dev: true /pkg-types@1.0.3: resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} dependencies: - jsonc-parser: 3.2.0 - mlly: 1.4.2 - pathe: 1.1.1 - dev: true + jsonc-parser: 3.2.1 + mlly: 1.5.0 + pathe: 1.1.2 /popper.js@1.16.1: resolution: {integrity: sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==} @@ -4826,6 +4560,15 @@ packages: nanoid: 3.3.7 picocolors: 1.0.0 source-map-js: 1.0.2 + dev: false + + /postcss@8.4.33: + resolution: {integrity: sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.0 + source-map-js: 1.0.2 /prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} @@ -4839,8 +4582,8 @@ packages: fast-diff: 1.3.0 dev: true - /prettier@3.1.0: - resolution: {integrity: sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==} + /prettier@3.2.5: + resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} engines: {node: '>=14'} hasBin: true dev: true @@ -4860,7 +4603,6 @@ packages: '@jest/schemas': 29.6.3 ansi-styles: 5.2.0 react-is: 18.2.0 - dev: true /process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} @@ -4876,26 +4618,18 @@ packages: /psl@1.9.0: resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} - dev: true /punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} - dev: true /querystringify@2.2.0: resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} - dev: true /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: true - /quick-lru@6.1.1: - resolution: {integrity: sha512-S27GBT+F0NTRiehtbrgaSE1idUAJ5bX8dPAQTdylEyNlrdcH5X4Lz7Edz3DYzecbsCluD5zO8ZNEe04z3D3u6Q==} - engines: {node: '>=12'} - dev: true - /react-dom@18.2.0(react@18.2.0): resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} peerDependencies: @@ -4914,7 +4648,6 @@ packages: /react-is@18.2.0: resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} - dev: true /react-refresh@0.14.0: resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} @@ -4950,25 +4683,6 @@ packages: dependencies: loose-envify: 1.4.0 - /read-pkg-up@9.1.0: - resolution: {integrity: sha512-vaMRR1AC1nrd5CQM0PhlRsO5oc2AAigqr7cCrZ/MW/Rsaflz4RlgzkpL4qoU/z1F6wrbd85iFv1OQj/y5RdGvg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - find-up: 6.3.0 - read-pkg: 7.1.0 - type-fest: 2.19.0 - dev: true - - /read-pkg@7.1.0: - resolution: {integrity: sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==} - engines: {node: '>=12.20'} - dependencies: - '@types/normalize-package-data': 2.4.1 - normalize-package-data: 3.0.3 - parse-json: 5.2.0 - type-fest: 2.19.0 - dev: true - /readable-stream@1.0.34: resolution: {integrity: sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==} dependencies: @@ -5013,14 +4727,6 @@ packages: indent-string: 4.0.0 strip-indent: 3.0.0 - /redent@4.0.0: - resolution: {integrity: sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==} - engines: {node: '>=12'} - dependencies: - indent-string: 5.0.0 - strip-indent: 4.0.0 - dev: true - /refa@0.12.1: resolution: {integrity: sha512-J8rn6v4DBb2nnFqkqwy6/NnTYMcgLA+sLr0iIO41qpv0n+ngb7ksag2tMRl0inb1bbO/esUwzW1vbJi7K0sI0g==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} @@ -5028,23 +4734,21 @@ packages: '@eslint-community/regexpp': 4.10.0 dev: true - /reflect.getprototypeof@1.0.4: - resolution: {integrity: sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==} + /reflect.getprototypeof@1.0.5: + resolution: {integrity: sha512-62wgfC8dJWrmxv44CA36pLDnP6KKl3Vhxb7PL+8+qrrFMMoJij4vgiMP8zV4O8+CBMXY1mHxI5fITGHXFHVmQQ==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.5 define-properties: 1.2.1 es-abstract: 1.22.3 - get-intrinsic: 1.2.2 + es-errors: 1.3.0 + get-intrinsic: 1.2.3 globalthis: 1.0.3 which-builtin-type: 1.1.3 dev: true - /regenerator-runtime@0.13.11: - resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} - - /regenerator-runtime@0.14.0: - resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} + /regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} /regexp-ast-analysis@0.7.1: resolution: {integrity: sha512-sZuz1dYW/ZsfG17WSAG7eS85r5a0dDsvg+7BiiYR5o6lKCAtUrEwdmRmaGF6rwVj3LcmAeYkOWKEPlbPzN3Y3A==} @@ -5069,7 +4773,6 @@ packages: /requires-port@1.0.0: resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} - dev: true /resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} @@ -5130,27 +4833,41 @@ packages: engines: {node: '>=14'} hasBin: true dependencies: - glob: 10.3.3 + glob: 10.3.10 dev: true - /rollup@3.29.4: - resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==} - engines: {node: '>=14.18.0', npm: '>=8.0.0'} + /rimraf@5.0.5: + resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==} + engines: {node: '>=14'} + hasBin: true + dependencies: + glob: 10.3.10 + dev: true + + /rollup@4.9.6: + resolution: {integrity: sha512-05lzkCS2uASX0CiLFybYfVkwNbKZG5NFQ6Go0VWyogFTXXbR039UVsegViTntkk4OglHBdF54ccApXRRuXRbsg==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true + dependencies: + '@types/estree': 1.0.5 optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.9.6 + '@rollup/rollup-android-arm64': 4.9.6 + '@rollup/rollup-darwin-arm64': 4.9.6 + '@rollup/rollup-darwin-x64': 4.9.6 + '@rollup/rollup-linux-arm-gnueabihf': 4.9.6 + '@rollup/rollup-linux-arm64-gnu': 4.9.6 + '@rollup/rollup-linux-arm64-musl': 4.9.6 + '@rollup/rollup-linux-riscv64-gnu': 4.9.6 + '@rollup/rollup-linux-x64-gnu': 4.9.6 + '@rollup/rollup-linux-x64-musl': 4.9.6 + '@rollup/rollup-win32-arm64-msvc': 4.9.6 + '@rollup/rollup-win32-ia32-msvc': 4.9.6 + '@rollup/rollup-win32-x64-msvc': 4.9.6 fsevents: 2.3.3 - dev: true /rrweb-cssom@0.6.0: resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} - dev: true - - /run-applescript@5.0.0: - resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==} - engines: {node: '>=12'} - dependencies: - execa: 5.1.1 - dev: true /run-async@2.4.1: resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} @@ -5169,12 +4886,12 @@ packages: tslib: 2.6.2 dev: true - /safe-array-concat@1.0.1: - resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} + /safe-array-concat@1.1.0: + resolution: {integrity: sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==} engines: {node: '>=0.4'} dependencies: call-bind: 1.0.5 - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.3 has-symbols: 1.0.3 isarray: 2.0.5 dev: true @@ -5187,24 +4904,23 @@ packages: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} dev: true - /safe-regex-test@1.0.0: - resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} + /safe-regex-test@1.0.2: + resolution: {integrity: sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.5 - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.3 is-regex: 1.1.4 dev: true /safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - dev: true /saxes@6.0.0: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} engines: {node: '>=v12.22.7'} dependencies: xmlchars: 2.2.0 - dev: true /scheduler@0.23.0: resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} @@ -5233,12 +4949,21 @@ packages: lru-cache: 6.0.0 dev: true - /set-function-length@1.1.1: - resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==} + /semver@7.6.0: + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + + /set-function-length@1.2.0: + resolution: {integrity: sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==} engines: {node: '>= 0.4'} dependencies: define-data-property: 1.1.1 - get-intrinsic: 1.2.2 + function-bind: 1.1.2 + get-intrinsic: 1.2.3 gopd: 1.0.1 has-property-descriptors: 1.0.1 @@ -5255,23 +4980,20 @@ packages: engines: {node: '>=8'} dependencies: shebang-regex: 3.0.0 - dev: true /shebang-regex@3.0.0: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - dev: true /side-channel@1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: call-bind: 1.0.5 - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.3 object-inspect: 1.13.1 /siginfo@2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} - dev: true /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} @@ -5280,12 +5002,10 @@ packages: /signal-exit@4.1.0: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} - dev: true /slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} - dev: true /slash@4.0.0: resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} @@ -5301,48 +5021,26 @@ packages: engines: {node: '>=0.10.0'} dev: true - /spdx-correct@3.2.0: - resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} - dependencies: - spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.13 - dev: true - - /spdx-exceptions@2.3.0: - resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} - dev: true - - /spdx-expression-parse@3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - dependencies: - spdx-exceptions: 2.3.0 - spdx-license-ids: 3.0.13 - dev: true - - /spdx-license-ids@3.0.13: - resolution: {integrity: sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==} - dev: true - /sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} dev: true + /stack-utils@2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} + engines: {node: '>=10'} + dependencies: + escape-string-regexp: 2.0.0 + /stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} - dev: true /statuses@2.0.1: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} dev: true - /std-env@3.3.3: - resolution: {integrity: sha512-Rz6yejtVyWnVjC1RFvNmYL10kgjC49EOghxWn0RFqlCHGFpQx+Xe7yW3I4ceK1SGrWIGMjD5Kbue8W/udkbMJg==} - dev: true - - /std-env@3.5.0: - resolution: {integrity: sha512-JGUEaALvL0Mf6JCfYnJOTcobY+Nc7sG/TemDRBqCA0wEr4DER7zDchaaixTlmOxAjG1uRJmX82EQcxwTQTkqVA==} - dev: true + /std-env@3.7.0: + resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} /stop-iteration-iterator@1.0.0: resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} @@ -5388,7 +5086,7 @@ packages: call-bind: 1.0.5 define-properties: 1.2.1 es-abstract: 1.22.3 - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.3 has-symbols: 1.0.3 internal-slot: 1.0.6 regexp.prototype.flags: 1.5.1 @@ -5456,15 +5154,9 @@ packages: engines: {node: '>=4'} dev: true - /strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - dev: true - /strip-final-newline@3.0.0: resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} engines: {node: '>=12'} - dev: true /strip-indent@3.0.0: resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} @@ -5472,29 +5164,15 @@ packages: dependencies: min-indent: 1.0.1 - /strip-indent@4.0.0: - resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==} - engines: {node: '>=12'} - dependencies: - min-indent: 1.0.1 - dev: true - /strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} dev: true - /strip-literal@1.0.1: - resolution: {integrity: sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==} - dependencies: - acorn: 8.11.2 - dev: true - /strip-literal@1.3.0: resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} dependencies: - acorn: 8.11.2 - dev: true + acorn: 8.11.3 /styled-jsx@5.1.1(react@18.2.0): resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} @@ -5532,13 +5210,12 @@ packages: /symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - dev: true - /synckit@0.8.5: - resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==} + /synckit@0.8.8: + resolution: {integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==} engines: {node: ^14.18.0 || >=16.0.0} dependencies: - '@pkgr/utils': 2.4.2 + '@pkgr/core': 0.1.1 tslib: 2.6.2 dev: true @@ -5566,33 +5243,16 @@ packages: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true - /tinybench@2.5.0: - resolution: {integrity: sha512-kRwSG8Zx4tjF9ZiyH4bhaebu+EDz1BOx9hOigYHlUW4xxI/wKIUQUqo018UlU4ar6ATPBsaMrdbKZ+tmPdohFA==} - dev: true - - /tinybench@2.5.1: - resolution: {integrity: sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==} - dev: true - - /tinypool@0.6.0: - resolution: {integrity: sha512-FdswUUo5SxRizcBc6b1GSuLpLjisa8N8qMyYoP3rl+bym+QauhtJP5bvZY1ytt8krKGmMLYIRl36HBZfeAoqhQ==} - engines: {node: '>=14.0.0'} - dev: true + /tinybench@2.6.0: + resolution: {integrity: sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==} - /tinypool@0.7.0: - resolution: {integrity: sha512-zSYNUlYSMhJ6Zdou4cJwo/p7w5nmAH17GRfU/ui3ctvjXFErXXkruT4MWW6poDeXgCaIBlGLrfU6TbTXxyGMww==} + /tinypool@0.8.2: + resolution: {integrity: sha512-SUszKYe5wgsxnNOVlBYO6IC+8VGWdVGZWAqUxp3UErNBtptZvWbwyUOyzNL59zigz2rCA92QiL3wvG+JDSdJdQ==} engines: {node: '>=14.0.0'} - dev: true /tinyspy@2.2.0: resolution: {integrity: sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==} engines: {node: '>=14.0.0'} - dev: true - - /titleize@3.0.0: - resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==} - engines: {node: '>=12'} - dev: true /tmp@0.0.33: resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} @@ -5611,7 +5271,6 @@ packages: engines: {node: '>=8.0'} dependencies: is-number: 7.0.0 - dev: true /tough-cookie@4.1.3: resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==} @@ -5621,35 +5280,24 @@ packages: punycode: 2.3.1 universalify: 0.2.0 url-parse: 1.5.10 - dev: true - - /tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - dev: true - /tr46@4.1.1: - resolution: {integrity: sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==} - engines: {node: '>=14'} + /tr46@5.0.0: + resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==} + engines: {node: '>=18'} dependencies: punycode: 2.3.1 - dev: true - /trim-newlines@5.0.0: - resolution: {integrity: sha512-kstfs+hgwmdsOadN3KgA+C68wPJwnZq4DN6WMDCvZapDWEF34W2TyPKN2v2+BJnZgIz5QOfxFeldLyYvdgRAwg==} - engines: {node: '>=14.16'} - dev: true - - /ts-api-utils@1.0.3(typescript@5.3.3): - resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} - engines: {node: '>=16.13.0'} + /ts-api-utils@1.2.0(typescript@5.3.3): + resolution: {integrity: sha512-d+3WxW4r8WQy2cZWpNRPPGExX8ffOLGcIhheUANKbL5Sqjbhkneki76fRAWeXkaslV2etTb4tSJBSxOsH5+CJw==} + engines: {node: '>=18'} peerDependencies: typescript: '>=4.2.0' dependencies: typescript: 5.3.3 dev: true - /tsconfig-paths@3.14.2: - resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==} + /tsconfig-paths@3.15.0: + resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} dependencies: '@types/json5': 0.0.29 json5: 1.0.2 @@ -5674,12 +5322,12 @@ packages: typescript: 5.3.3 dev: true - /tsx@4.6.1: - resolution: {integrity: sha512-OQ4TAPHXAPUo/NZAmmIybl0o8LFOTlycQxFepLBAp6EV87U88fOKYGCQI2viGAEOVU9UW/cgQcxcOMnfEKVY3Q==} + /tsx@4.7.0: + resolution: {integrity: sha512-I+t79RYPlEYlHn9a+KzwrvEwhJg35h/1zHsLC2JXvhC2mdynMv6Zxzvhv5EMV6VF5qJlLlkSnMVvdZV3PSIGcg==} engines: {node: '>=18.0.0'} hasBin: true dependencies: - esbuild: 0.18.20 + esbuild: 0.19.12 get-tsconfig: 4.7.2 optionalDependencies: fsevents: 2.3.3 @@ -5695,7 +5343,6 @@ packages: /type-detect@4.0.8: resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} engines: {node: '>=4'} - dev: true /type-fest@0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} @@ -5707,14 +5354,9 @@ packages: engines: {node: '>=10'} dev: true - /type-fest@2.19.0: - resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} - engines: {node: '>=12.20'} - dev: true - - /type-fest@3.13.1: - resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} - engines: {node: '>=14.16'} + /type-fest@4.10.2: + resolution: {integrity: sha512-anpAG63wSpdEbLwOqH8L84urkL6PiVIov3EMmgIhhThevh9aiMQov+6Btx0wldNcvm4wV+e2/Rt1QdDwKHFbHw==} + engines: {node: '>=16'} dev: true /typed-array-buffer@1.0.0: @@ -5722,8 +5364,8 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.5 - get-intrinsic: 1.2.2 - is-typed-array: 1.1.12 + get-intrinsic: 1.2.3 + is-typed-array: 1.1.13 dev: true /typed-array-byte-length@1.0.0: @@ -5733,18 +5375,18 @@ packages: call-bind: 1.0.5 for-each: 0.3.3 has-proto: 1.0.1 - is-typed-array: 1.1.12 + is-typed-array: 1.1.13 dev: true /typed-array-byte-offset@1.0.0: resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} engines: {node: '>= 0.4'} dependencies: - available-typed-arrays: 1.0.5 + available-typed-arrays: 1.0.6 call-bind: 1.0.5 for-each: 0.3.3 has-proto: 1.0.1 - is-typed-array: 1.1.12 + is-typed-array: 1.1.13 dev: true /typed-array-length@1.0.4: @@ -5752,7 +5394,7 @@ packages: dependencies: call-bind: 1.0.5 for-each: 0.3.3 - is-typed-array: 1.1.12 + is-typed-array: 1.1.13 dev: true /typescript@5.0.4: @@ -5768,7 +5410,6 @@ packages: /ufo@1.3.2: resolution: {integrity: sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==} - dev: true /unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} @@ -5781,7 +5422,6 @@ packages: /undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - dev: true /universalify@0.1.2: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} @@ -5791,21 +5431,20 @@ packages: /universalify@0.2.0: resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} engines: {node: '>= 4.0.0'} - dev: true /untildify@4.0.0: resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} engines: {node: '>=8'} dev: true - /update-browserslist-db@1.0.11(browserslist@4.21.10): - resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} + /update-browserslist-db@1.0.13(browserslist@4.22.3): + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' dependencies: - browserslist: 4.21.10 - escalade: 3.1.1 + browserslist: 4.22.3 + escalade: 3.1.2 picocolors: 1.0.0 dev: true @@ -5820,26 +5459,18 @@ packages: dependencies: querystringify: 2.2.0 requires-port: 1.0.0 - dev: true /util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} dev: true - /v8-to-istanbul@9.1.0: - resolution: {integrity: sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==} + /v8-to-istanbul@9.2.0: + resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} engines: {node: '>=10.12.0'} dependencies: - '@jridgewell/trace-mapping': 0.3.18 - '@types/istanbul-lib-coverage': 2.0.4 - convert-source-map: 1.9.0 - dev: true - - /validate-npm-package-license@3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} - dependencies: - spdx-correct: 3.2.0 - spdx-expression-parse: 3.0.1 + '@jridgewell/trace-mapping': 0.3.22 + '@types/istanbul-lib-coverage': 2.0.6 + convert-source-map: 2.0.0 dev: true /validator@13.9.0: @@ -5847,39 +5478,16 @@ packages: engines: {node: '>= 0.10'} dev: true - /vite-node@0.33.0(@types/node@20.10.1): - resolution: {integrity: sha512-19FpHYbwWWxDr73ruNahC+vtEdza52kA90Qb3La98yZ0xULqV8A5JLNPUff0f5zID4984tW7l3DH2przTJUZSw==} - engines: {node: '>=v14.18.0'} - hasBin: true - dependencies: - cac: 6.7.14 - debug: 4.3.4 - mlly: 1.4.2 - pathe: 1.1.1 - picocolors: 1.0.0 - vite: 4.5.0(@types/node@20.10.1) - transitivePeerDependencies: - - '@types/node' - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - dev: true - - /vite-node@0.34.6(@types/node@20.10.1): - resolution: {integrity: sha512-nlBMJ9x6n7/Amaz6F3zJ97EBwR2FkzhBRxF5e+jE6LA3yi6Wtc2lyTij1OnDMIr34v5g/tVQtsVAzhT0jc5ygA==} - engines: {node: '>=v14.18.0'} + /vite-node@1.2.2: + resolution: {integrity: sha512-1as4rDTgVWJO3n1uHmUYqq7nsFgINQ9u+mRcXpjeOMJUmviqNKjcZB7UfRZrlM7MjYXMKpuWp5oGkjaFLnjawg==} + engines: {node: ^18.0.0 || >=20.0.0} hasBin: true dependencies: cac: 6.7.14 debug: 4.3.4 - mlly: 1.4.2 - pathe: 1.1.1 + pathe: 1.1.2 picocolors: 1.0.0 - vite: 4.5.0(@types/node@20.10.1) + vite: 5.0.12(@types/node@20.11.16) transitivePeerDependencies: - '@types/node' - less @@ -5889,9 +5497,8 @@ packages: - sugarss - supports-color - terser - dev: true - /vite-plugin-dts@3.6.4(typescript@5.3.3)(vite@4.4.12): + /vite-plugin-dts@3.6.4(typescript@5.3.3)(vite@5.0.12): resolution: {integrity: sha512-yOVhUI/kQhtS6lCXRYYLv2UUf9bftcwQK9ROxCX2ul17poLQs02ctWX7+vXB8GPRzH8VCK3jebEFtPqqijXx6w==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -5907,7 +5514,7 @@ packages: debug: 4.3.4 kolorist: 1.8.0 typescript: 5.3.3 - vite: 4.4.12(@types/node@20.10.1) + vite: 5.0.12(@types/node@20.11.16) vue-tsc: 1.8.25(typescript@5.3.3) transitivePeerDependencies: - '@types/node' @@ -5915,48 +5522,36 @@ packages: - supports-color dev: true - /vite@4.4.12(@types/node@20.10.1): - resolution: {integrity: sha512-KtPlUbWfxzGVul8Nut8Gw2Qe8sBzWY+8QVc5SL8iRFnpnrcoCaNlzO40c1R6hPmcdTwIPEDkq0Y9+27a5tVbdQ==} + /vite-plugin-dts@3.7.2(typescript@5.3.3)(vite@5.0.12): + resolution: {integrity: sha512-kg//1nDA01b8rufJf4TsvYN8LMkdwv0oBYpiQi6nRwpHyue+wTlhrBiqgipdFpMnW1oOYv6ywmzE5B0vg6vSEA==} engines: {node: ^14.18.0 || >=16.0.0} - hasBin: true peerDependencies: - '@types/node': '>= 14' - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 + typescript: '*' + vite: '*' peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: + vite: optional: true dependencies: - '@types/node': 20.10.1 - esbuild: 0.18.20 - postcss: 8.4.31 - rollup: 3.29.4 - optionalDependencies: - fsevents: 2.3.3 + '@microsoft/api-extractor': 7.39.0 + '@rollup/pluginutils': 5.1.0 + '@vue/language-core': 1.8.27(typescript@5.3.3) + debug: 4.3.4 + kolorist: 1.8.0 + typescript: 5.3.3 + vite: 5.0.12(@types/node@20.11.16) + vue-tsc: 1.8.27(typescript@5.3.3) + transitivePeerDependencies: + - '@types/node' + - rollup + - supports-color dev: true - /vite@4.5.0(@types/node@20.10.1): - resolution: {integrity: sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==} - engines: {node: ^14.18.0 || >=16.0.0} + /vite@5.0.12(@types/node@20.11.16): + resolution: {integrity: sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w==} + engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: - '@types/node': '>= 14' + '@types/node': ^18.0.0 || >=20.0.0 less: '*' lightningcss: ^1.21.0 sass: '*' @@ -5979,95 +5574,28 @@ packages: terser: optional: true dependencies: - '@types/node': 20.10.1 - esbuild: 0.18.20 - postcss: 8.4.31 - rollup: 3.29.4 + '@types/node': 20.11.16 + esbuild: 0.19.12 + postcss: 8.4.33 + rollup: 4.9.6 optionalDependencies: fsevents: 2.3.3 - dev: true - /vitest@0.33.0(jsdom@22.1.0): - resolution: {integrity: sha512-1CxaugJ50xskkQ0e969R/hW47za4YXDUfWJDxip1hwbnhUjYolpfUn2AMOulqG/Dtd9WYAtkHmM/m3yKVrEejQ==} - engines: {node: '>=v14.18.0'} + /vitest@1.2.2(jsdom@24.0.0): + resolution: {integrity: sha512-d5Ouvrnms3GD9USIK36KG8OZ5bEvKEkITFtnGv56HFaSlbItJuYr7hv2Lkn903+AvRAgSixiamozUVfORUekjw==} + engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' - '@vitest/browser': '*' - '@vitest/ui': '*' + '@types/node': ^18.0.0 || >=20.0.0 + '@vitest/browser': ^1.0.0 + '@vitest/ui': ^1.0.0 happy-dom: '*' jsdom: '*' - playwright: '*' - safaridriver: '*' - webdriverio: '*' peerDependenciesMeta: '@edge-runtime/vm': optional: true - '@vitest/browser': - optional: true - '@vitest/ui': - optional: true - happy-dom: - optional: true - jsdom: - optional: true - playwright: - optional: true - safaridriver: - optional: true - webdriverio: - optional: true - dependencies: - '@types/chai': 4.3.5 - '@types/chai-subset': 1.3.3 - '@types/node': 20.10.1 - '@vitest/expect': 0.33.0 - '@vitest/runner': 0.33.0 - '@vitest/snapshot': 0.33.0 - '@vitest/spy': 0.33.0 - '@vitest/utils': 0.33.0 - acorn: 8.10.0 - acorn-walk: 8.2.0 - cac: 6.7.14 - chai: 4.3.7 - debug: 4.3.4 - jsdom: 22.1.0 - local-pkg: 0.4.3 - magic-string: 0.30.2 - pathe: 1.1.1 - picocolors: 1.0.0 - std-env: 3.3.3 - strip-literal: 1.0.1 - tinybench: 2.5.0 - tinypool: 0.6.0 - vite: 4.5.0(@types/node@20.10.1) - vite-node: 0.33.0(@types/node@20.10.1) - why-is-node-running: 2.2.2 - transitivePeerDependencies: - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - dev: true - - /vitest@0.34.6: - resolution: {integrity: sha512-+5CALsOvbNKnS+ZHMXtuUC7nL8/7F1F2DnHGjSsszX8zCjWSSviphCb/NuS9Nzf4Q03KyyDRBAXhF/8lffME4Q==} - engines: {node: '>=v14.18.0'} - hasBin: true - peerDependencies: - '@edge-runtime/vm': '*' - '@vitest/browser': '*' - '@vitest/ui': '*' - happy-dom: '*' - jsdom: '*' - playwright: '*' - safaridriver: '*' - webdriverio: '*' - peerDependenciesMeta: - '@edge-runtime/vm': + '@types/node': optional: true '@vitest/browser': optional: true @@ -6077,36 +5605,28 @@ packages: optional: true jsdom: optional: true - playwright: - optional: true - safaridriver: - optional: true - webdriverio: - optional: true dependencies: - '@types/chai': 4.3.11 - '@types/chai-subset': 1.3.5 - '@types/node': 20.10.1 - '@vitest/expect': 0.34.6 - '@vitest/runner': 0.34.6 - '@vitest/snapshot': 0.34.6 - '@vitest/spy': 0.34.6 - '@vitest/utils': 0.34.6 - acorn: 8.11.2 - acorn-walk: 8.3.0 + '@vitest/expect': 1.2.2 + '@vitest/runner': 1.2.2 + '@vitest/snapshot': 1.2.2 + '@vitest/spy': 1.2.2 + '@vitest/utils': 1.2.2 + acorn-walk: 8.3.2 cac: 6.7.14 - chai: 4.3.10 + chai: 4.4.1 debug: 4.3.4 - local-pkg: 0.4.3 - magic-string: 0.30.5 - pathe: 1.1.1 + execa: 8.0.1 + jsdom: 24.0.0 + local-pkg: 0.5.0 + magic-string: 0.30.7 + pathe: 1.1.2 picocolors: 1.0.0 - std-env: 3.5.0 + std-env: 3.7.0 strip-literal: 1.3.0 - tinybench: 2.5.1 - tinypool: 0.7.0 - vite: 4.5.0(@types/node@20.10.1) - vite-node: 0.34.6(@types/node@20.10.1) + tinybench: 2.6.0 + tinypool: 0.8.2 + vite: 5.0.12(@types/node@20.11.16) + vite-node: 1.2.2 why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -6116,7 +5636,6 @@ packages: - sugarss - supports-color - terser - dev: true /vue-template-compiler@2.7.14: resolution: {integrity: sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==} @@ -6125,6 +5644,13 @@ packages: he: 1.2.0 dev: true + /vue-template-compiler@2.7.16: + resolution: {integrity: sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==} + dependencies: + de-indent: 1.0.2 + he: 1.2.0 + dev: true + /vue-tsc@1.8.25(typescript@5.3.3): resolution: {integrity: sha512-lHsRhDc/Y7LINvYhZ3pv4elflFADoEOo67vfClAfF2heVHpHmVquLSjojgCSIwzA4F0Pc4vowT/psXCYcfk+iQ==} hasBin: true @@ -6133,24 +5659,27 @@ packages: dependencies: '@volar/typescript': 1.11.1 '@vue/language-core': 1.8.25(typescript@5.3.3) - semver: 7.5.4 + semver: 7.6.0 typescript: 5.3.3 dev: true - /w3c-xmlserializer@4.0.0: - resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} - engines: {node: '>=14'} + /vue-tsc@1.8.27(typescript@5.3.3): + resolution: {integrity: sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==} + hasBin: true + peerDependencies: + typescript: '*' dependencies: - xml-name-validator: 4.0.0 + '@volar/typescript': 1.11.1 + '@vue/language-core': 1.8.27(typescript@5.3.3) + semver: 7.6.0 + typescript: 5.3.3 dev: true - /watchpack@2.4.0: - resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} - engines: {node: '>=10.13.0'} + /w3c-xmlserializer@5.0.0: + resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} + engines: {node: '>=18'} dependencies: - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - dev: false + xml-name-validator: 5.0.0 /wcwidth@1.0.1: resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} @@ -6158,50 +5687,30 @@ packages: defaults: 1.0.4 dev: true - /web-streams-polyfill@4.0.0-beta.3: - resolution: {integrity: sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==} - engines: {node: '>= 14'} - dev: true - - /web-vitals@3.4.0: - resolution: {integrity: sha512-n9fZ5/bG1oeDkyxLWyep0eahrNcPDF6bFqoyispt7xkW0xhDzpUBTgyDKqWDi1twT0MgH4HvvqzpUyh0ZxZV4A==} + /web-vitals@3.5.2: + resolution: {integrity: sha512-c0rhqNcHXRkY/ogGDJQxZ9Im9D19hDihbzSQJrsioex+KnFgmMzBiy57Z1EjkhX/+OjyBpclDCzz2ITtjokFmg==} dev: false - /webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - dev: true - /webidl-conversions@7.0.0: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} engines: {node: '>=12'} - dev: true - /whatwg-encoding@2.0.0: - resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} - engines: {node: '>=12'} + /whatwg-encoding@3.1.1: + resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} + engines: {node: '>=18'} dependencies: iconv-lite: 0.6.3 - dev: true - /whatwg-mimetype@3.0.0: - resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} - engines: {node: '>=12'} - dev: true + /whatwg-mimetype@4.0.0: + resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} + engines: {node: '>=18'} - /whatwg-url@12.0.1: - resolution: {integrity: sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ==} - engines: {node: '>=14'} + /whatwg-url@14.0.0: + resolution: {integrity: sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==} + engines: {node: '>=18'} dependencies: - tr46: 4.1.1 + tr46: 5.0.0 webidl-conversions: 7.0.0 - dev: true - - /whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - dependencies: - tr46: 0.0.3 - webidl-conversions: 3.0.1 - dev: true /which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} @@ -6217,7 +5726,7 @@ packages: engines: {node: '>= 0.4'} dependencies: function.prototype.name: 1.1.6 - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 is-async-function: 2.0.0 is-date-object: 1.0.5 is-finalizationregistry: 1.0.2 @@ -6227,7 +5736,7 @@ packages: isarray: 2.0.5 which-boxed-primitive: 1.0.2 which-collection: 1.0.1 - which-typed-array: 1.1.13 + which-typed-array: 1.1.14 dev: true /which-collection@1.0.1: @@ -6238,15 +5747,15 @@ packages: is-weakmap: 2.0.1 is-weakset: 2.0.2 - /which-typed-array@1.1.13: - resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==} + /which-typed-array@1.1.14: + resolution: {integrity: sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==} engines: {node: '>= 0.4'} dependencies: - available-typed-arrays: 1.0.5 + available-typed-arrays: 1.0.6 call-bind: 1.0.5 for-each: 0.3.3 gopd: 1.0.1 - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 /which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} @@ -6254,7 +5763,6 @@ packages: hasBin: true dependencies: isexe: 2.0.0 - dev: true /why-is-node-running@2.2.2: resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} @@ -6263,6 +5771,14 @@ packages: dependencies: siginfo: 2.0.0 stackback: 0.0.2 + + /wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 dev: true /wrap-ansi@7.0.0: @@ -6287,8 +5803,8 @@ packages: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} dev: true - /ws@8.13.0: - resolution: {integrity: sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==} + /ws@8.16.0: + resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -6298,16 +5814,13 @@ packages: optional: true utf-8-validate: optional: true - dev: true - /xml-name-validator@4.0.0: - resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} - engines: {node: '>=12'} - dev: true + /xml-name-validator@5.0.0: + resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} + engines: {node: '>=18'} /xmlchars@2.2.0: resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} - dev: true /xtend@4.0.2: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} @@ -6342,7 +5855,7 @@ packages: engines: {node: '>=10'} dependencies: cliui: 7.0.4 - escalade: 3.1.1 + escalade: 3.1.2 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 @@ -6355,7 +5868,7 @@ packages: engines: {node: '>=12'} dependencies: cliui: 8.0.1 - escalade: 3.1.1 + escalade: 3.1.2 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 @@ -6371,7 +5884,6 @@ packages: /yocto-queue@1.0.0: resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} engines: {node: '>=12.20'} - dev: true /z-schema@5.0.5: resolution: {integrity: sha512-D7eujBWkLa3p2sIpJA0d1pr7es+a7m0vFAnZLlCEKq/Ij2k0MLi9Br2UPxoxdYystm5K1yeBGzub0FlYUEWj2Q==} From 8bc9316cf853fb9e270909b05298a45556a23706 Mon Sep 17 00:00:00 2001 From: GitHub Date: Fri, 9 Feb 2024 05:56:11 +0000 Subject: [PATCH 176/440] [skip ci] Update to version 7.15.5 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index f30456754..a8e0a57cf 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.15.4", + "version": "7.15.5", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 7796b3fe0..af4af448b 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.15.4'; +export default '7.15.5'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 23907a3bb..a5144d537 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.15.4", + "version": "7.15.5", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 7796b3fe0..af4af448b 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.15.4'; +export default '7.15.5'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 393653747..237b7b28a 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.15.4", + "version": "7.15.5", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From d5f1c9e4179fd3fc999bc5bc1f791a9a7810a187 Mon Sep 17 00:00:00 2001 From: GitHub Date: Fri, 9 Feb 2024 05:56:12 +0000 Subject: [PATCH 177/440] [skip ci] Generate changelog to version 7.15.5 --- CHANGELOG.md | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index df151687c..fe7f48f69 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog -## 7.15.4 +## 7.15.5 + +- [d79af9a](https://github.com/AxaFrance/oidc-client/commit/d79af9aba023faf78e9816c4d681413618bdd843) - refactor(all): updates dev libraries (release) (#1284), 2024-02-09 by *Guillaume Chervet* + + +## v7.15.4 - [f2d74fb](https://github.com/AxaFrance/oidc-client/commit/f2d74fba6d2e48e6d478aa69d261fe9cceb69bfa) - fix(oidc): eternal lock when refresh_token invalid and multiple tabs (#1281) (release), 2024-02-03 by *Guillaume Chervet* @@ -315,10 +320,3 @@ - [a5d2e58](https://github.com/AxaFrance/oidc-client/commit/a5d2e5892cf456225618f55602c87c654cdad62c) - fix(oidc+serviceworker): add more log detail on token validation, 2023-08-07 by *Guillaume Chervet* -## v7.2.1 - -- [0e52c56](https://github.com/AxaFrance/oidc-client/commit/0e52c56e1d747aa17ee2bf3005893a8d67a03ab3) - fix(package.json): update new repository link (release), 2023-08-07 by *Guillaume Chervet* -- [3d0aaff](https://github.com/AxaFrance/oidc-client/commit/3d0aaff74fd1b14afe2aa3ec2b8b3c028dd3fe75) - fix(oidc): add more detail on state error, 2023-08-04 by *Guillaume Chervet* -- [faa0da2](https://github.com/AxaFrance/oidc-client/commit/faa0da2235239a0b12e82a070b3f6e2c30572bfa) - fix(readme): some path was broken, 2023-08-04 by *Guillaume Chervet* - - From 6b9b524c54a18dca9cc5bab34f0d058716e9d116 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Sat, 10 Feb 2024 15:28:08 +0100 Subject: [PATCH 178/440] feat(react): expose dpop method generation (#1291) (release) --- packages/react-oidc/src/ReactOidc.tsx | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/packages/react-oidc/src/ReactOidc.tsx b/packages/react-oidc/src/ReactOidc.tsx index 005e44710..805e183a1 100644 --- a/packages/react-oidc/src/ReactOidc.tsx +++ b/packages/react-oidc/src/ReactOidc.tsx @@ -1,5 +1,6 @@ import { StringMap, OidcClient } from '@axa-fr/oidc-client'; import { useEffect, useState } from 'react'; +import {Tokens} from "@axa-fr/oidc-client/dist/parseTokens"; const defaultConfigurationName = 'default'; @@ -72,6 +73,7 @@ const initTokens = (configurationName: string) => { return { accessToken: tokens.accessToken, accessTokenPayload: tokens.accessTokenPayload, + generateDemonstrationOfProofOfPossessionAsync: oidc.configuration.demonstrating_proof_of_possession ? (url:string, method:string) => oidc.generateDemonstrationOfProofOfPossessionAsync(tokens.accessToken, url, method) : null, }; } return accessTokenInitialState; @@ -80,6 +82,11 @@ const initTokens = (configurationName: string) => { export type OidcAccessToken = { accessToken?: any; accessTokenPayload?: any; + generateDemonstrationOfProofOfPossessionAsync?: any; +} + +function getGenerateDemonstrationOfProofOfPossessionAsync(oidc: OidcClient, tokens: Tokens) { + return oidc.configuration.demonstrating_proof_of_possession ? (url: string, method: string) => oidc.generateDemonstrationOfProofOfPossessionAsync(tokens.accessToken, url, method) : null; } export const useOidcAccessToken = (configurationName = defaultConfigurationName) => { @@ -103,7 +110,11 @@ export const useOidcAccessToken = (configurationName = defaultConfigurationName) name === OidcClient.eventNames.syncTokensAsync_error) { if (isMounted) { const tokens = oidc.tokens; - setAccessToken(tokens != null ? { accessToken: tokens.accessToken, accessTokenPayload: tokens.accessTokenPayload } : accessTokenInitialState); + setAccessToken(tokens != null ? { + accessToken: tokens.accessToken, + accessTokenPayload: tokens.accessTokenPayload , + generateDemonstrationOfProofOfPossessionAsync: getGenerateDemonstrationOfProofOfPossessionAsync(oidc, tokens), + } : accessTokenInitialState); } } }); From 124d021c50c9a504ab0c88cfe76b0b03725b7b0a Mon Sep 17 00:00:00 2001 From: GitHub Date: Sat, 10 Feb 2024 14:30:44 +0000 Subject: [PATCH 179/440] [skip ci] Update to version 7.16.0 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index a8e0a57cf..49833a4d2 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.15.5", + "version": "7.16.0", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index af4af448b..7dfa93ae9 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.15.5'; +export default '7.16.0'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index a5144d537..955e3299f 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.15.5", + "version": "7.16.0", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index af4af448b..7dfa93ae9 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.15.5'; +export default '7.16.0'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 237b7b28a..57aa60f24 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.15.5", + "version": "7.16.0", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From fbb7111968a13bccce92645de1a3d06fef106a30 Mon Sep 17 00:00:00 2001 From: GitHub Date: Sat, 10 Feb 2024 14:30:45 +0000 Subject: [PATCH 180/440] [skip ci] Generate changelog to version 7.16.0 --- CHANGELOG.md | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fe7f48f69..8b545ac13 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog -## 7.15.5 +## 7.16.0 + +- [6b9b524](https://github.com/AxaFrance/oidc-client/commit/6b9b524c54a18dca9cc5bab34f0d058716e9d116) - feat(react): expose dpop method generation (#1291) (release), 2024-02-10 by *Guillaume Chervet* + + +## v7.15.5 - [d79af9a](https://github.com/AxaFrance/oidc-client/commit/d79af9aba023faf78e9816c4d681413618bdd843) - refactor(all): updates dev libraries (release) (#1284), 2024-02-09 by *Guillaume Chervet* @@ -314,9 +319,3 @@ - [7ffcde4](https://github.com/AxaFrance/oidc-client/commit/7ffcde465f5f4cbba4b39e0da43dee34d4ec37d9) - doc(readme): update images urls, 2023-08-08 by *Guillaume Chervet* -## v7.2.2 - -- [e0cad22](https://github.com/AxaFrance/oidc-client/commit/e0cad22179fb1d9e641fbbf14b879ea2d2d78c3a) - fix(faq): update faq (release), 2023-08-07 by *Guillaume Chervet* -- [a5d2e58](https://github.com/AxaFrance/oidc-client/commit/a5d2e5892cf456225618f55602c87c654cdad62c) - fix(oidc+serviceworker): add more log detail on token validation, 2023-08-07 by *Guillaume Chervet* - - From a09e6fda64aa210fe7f63d70b6c64af559012640 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Sat, 10 Feb 2024 15:53:51 +0100 Subject: [PATCH 181/440] feat(oidc): logout add extras parameter to avoid the page reload (release) (#1290) * feat(oidc): logout add extras parameter to avoid the page reload after logout. * update demo * update --- examples/react-oidc-demo/src/Home.tsx | 1 + packages/oidc-client/README.md | 2 +- packages/oidc-client/src/logout.spec.ts | 17 +++++++++-------- packages/oidc-client/src/logout.ts | 17 ++++++++++++++++- packages/oidc-client/src/oidc.ts | 4 ++-- 5 files changed, 29 insertions(+), 12 deletions(-) diff --git a/examples/react-oidc-demo/src/Home.tsx b/examples/react-oidc-demo/src/Home.tsx index 8cb99b060..118e9b7ee 100644 --- a/examples/react-oidc-demo/src/Home.tsx +++ b/examples/react-oidc-demo/src/Home.tsx @@ -32,6 +32,7 @@ export const Home = () => { {!isAuthenticated &&

} {isAuthenticated &&

} {isAuthenticated &&

} + {isAuthenticated &&

} {isAuthenticated &&

} {isAuthenticated &&

}

diff --git a/packages/oidc-client/README.md b/packages/oidc-client/README.md index 2b9828817..02a31f977 100644 --- a/packages/oidc-client/README.md +++ b/packages/oidc-client/README.md @@ -312,7 +312,7 @@ export class OidcClient { /** * Starts the OIDC logout process with specified options. * @param callbackPathOrUrl The callback path or URL to use after logout. - * @param extras Additional parameters to send to the OIDC server during the logout request. + * @param extras Additional parameters to send to the OIDC server during the logout request. {"no_reload:oidc":"true"} to avoid the page reload after logout. * @returns A promise resolved when the logout is completed. */ logoutAsync(callbackPathOrUrl?: string | null | undefined, extras?: StringMap): Promise; diff --git a/packages/oidc-client/src/logout.spec.ts b/packages/oidc-client/src/logout.spec.ts index e770abe64..489b846dc 100644 --- a/packages/oidc-client/src/logout.spec.ts +++ b/packages/oidc-client/src/logout.spec.ts @@ -6,13 +6,14 @@ import { logoutAsync } from "./logout"; import {ILOidcLocation, OidcLocation} from "./location"; describe('Logout test suite', () => { - + const expectedFinalUrl = "http://api/connect/endsession?id_token_hint=abcd&post_logout_redirect_uri=http%3A%2F%2Flocalhost%3A4200%2Flogged_out"; it.each([ - {logout_tokens_to_invalidate:['access_token', 'refresh_token'], expectedResults: ["token=abcd&token_type_hint=access_token&client_id=interactive.public.short","token=abdc&token_type_hint=refresh_token&client_id=interactive.public.short"]}, - {logout_tokens_to_invalidate:['refresh_token'], expectedResults: ["token=abdc&token_type_hint=refresh_token&client_id=interactive.public.short"]}, - {logout_tokens_to_invalidate:['access_token'], expectedResults: ["token=abcd&token_type_hint=access_token&client_id=interactive.public.short"]}, - {logout_tokens_to_invalidate:[], expectedResults: []}, - ])('Logout should revoke tokens $logout_tokens_to_invalidate', async ({ logout_tokens_to_invalidate, expectedResults}) => { + {logout_tokens_to_invalidate:['access_token', 'refresh_token'], extras:null, expectedResults: ["token=abcd&token_type_hint=access_token&client_id=interactive.public.short","token=abdc&token_type_hint=refresh_token&client_id=interactive.public.short"], expectedFinalUrl}, + {logout_tokens_to_invalidate:['refresh_token'],extras:null, expectedResults: ["token=abdc&token_type_hint=refresh_token&client_id=interactive.public.short"], expectedFinalUrl}, + {logout_tokens_to_invalidate:['access_token'],extras:null, expectedResults: ["token=abcd&token_type_hint=access_token&client_id=interactive.public.short"], expectedFinalUrl}, + {logout_tokens_to_invalidate:[],extras:null, expectedResults: [], expectedFinalUrl}, + {logout_tokens_to_invalidate:[],extras: {"no_reload:oidc":"true"}, expectedResults: [], expectedFinalUrl:""}, + ])('Logout should revoke tokens $logout_tokens_to_invalidate', async ({ logout_tokens_to_invalidate, extras =null, expectedResults, expectedFinalUrl}) => { const configuration = { client_id: 'interactive.public.short', @@ -70,13 +71,13 @@ describe('Logout test suite', () => { } - await logoutAsync(oidc, oidcDatabase, mockFetchFn, console, new OidcLocationMock())("/logged_out"); + await logoutAsync(oidc, oidcDatabase, mockFetchFn, console, new OidcLocationMock())("/logged_out", extras); // @ts-ignore const results = mockFetchFn.mock.calls.map((call, index) => call[1].body); expect(results).toEqual(expectedResults); - expect(finalUrl).toBe("http://api/connect/endsession?id_token_hint=abcd&post_logout_redirect_uri=http%3A%2F%2Flocalhost%3A4200%2Flogged_out"); + expect(finalUrl).toBe(expectedFinalUrl); }); }); diff --git a/packages/oidc-client/src/logout.ts b/packages/oidc-client/src/logout.ts index 436a28dde..731bac9d3 100644 --- a/packages/oidc-client/src/logout.ts +++ b/packages/oidc-client/src/logout.ts @@ -69,6 +69,7 @@ export const logoutAsync = (oidc, oidcDatabase, fetch, console, oicLocation:ILOi const sub = oidc.tokens && oidc.tokens.idTokenPayload ? oidc.tokens.idTokenPayload.sub : null; // eslint-disable-next-line @typescript-eslint/no-unused-vars + await oidc.destroyAsync('LOGGED_OUT'); for (const [key, itemOidc] of Object.entries(oidcDatabase)) { if (itemOidc !== oidc) { // @ts-ignore @@ -77,7 +78,21 @@ export const logoutAsync = (oidc, oidcDatabase, fetch, console, oicLocation:ILOi oidc.publishEvent(eventNames.logout_from_same_tab, {} ); } } - await oidc.destroyAsync('LOGGED_OUT'); + + let noReload = false; + if(extras) { + extras = {...extras}; + for (const [key, value] of Object.entries(extras)) { + if (key.endsWith('no_reload:oidc')) { + noReload = extras[key] == "true"; + delete extras[key]; + } + } + } + + if(noReload) { + return; + } if (oidcServerConfiguration.endSessionEndpoint) { if (!extras) { diff --git a/packages/oidc-client/src/oidc.ts b/packages/oidc-client/src/oidc.ts index 0c82eeaaa..bdf8dee82 100644 --- a/packages/oidc-client/src/oidc.ts +++ b/packages/oidc-client/src/oidc.ts @@ -366,16 +366,16 @@ Please checkout that you are using OIDC hook inside a Date: Sat, 10 Feb 2024 14:56:19 +0000 Subject: [PATCH 182/440] [skip ci] Update to version 7.17.0 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 49833a4d2..7ecdc9193 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.16.0", + "version": "7.17.0", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 7dfa93ae9..dde20ab66 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.16.0'; +export default '7.17.0'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 955e3299f..9d8a5eaee 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.16.0", + "version": "7.17.0", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 7dfa93ae9..dde20ab66 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.16.0'; +export default '7.17.0'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 57aa60f24..a1ad36859 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.16.0", + "version": "7.17.0", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From cc60cf0c05c937372458f983e95cebda30dae739 Mon Sep 17 00:00:00 2001 From: GitHub Date: Sat, 10 Feb 2024 14:56:20 +0000 Subject: [PATCH 183/440] [skip ci] Generate changelog to version 7.17.0 --- CHANGELOG.md | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8b545ac13..977c33ee4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog -## 7.16.0 +## 7.17.0 + +- [a09e6fd](https://github.com/AxaFrance/oidc-client/commit/a09e6fda64aa210fe7f63d70b6c64af559012640) - feat(oidc): logout add extras parameter to avoid the page reload (release) (#1290), 2024-02-10 by *Guillaume Chervet* + + +## v7.16.0 - [6b9b524](https://github.com/AxaFrance/oidc-client/commit/6b9b524c54a18dca9cc5bab34f0d058716e9d116) - feat(react): expose dpop method generation (#1291) (release), 2024-02-10 by *Guillaume Chervet* @@ -312,10 +317,3 @@ - [c2564f9](https://github.com/AxaFrance/oidc-client/commit/c2564f9ef6de2122962cfb4a8e0f9195aa688d84) - fix(all): copy of service worker files (release), 2023-08-08 by *Guillaume Chervet* -## v7.3.0 - -- [282c0f7](https://github.com/AxaFrance/oidc-client/commit/282c0f72ab7741f24468b2278466eb307d1fa0ce) - feat(oidc+serviceworker): add property setAccessTokenToNavigateRequests + service_worker_convert_all_requests_to_cors moved to TrustedDomains.js (#1123) (release), 2023-08-08 by *Guillaume Chervet* -- [c94163d](https://github.com/AxaFrance/oidc-client/commit/c94163d02f5947761d00bd5e18df6749106d6f3d) - doc(FAQ): add "Does Service Worker is mandatory ?", 2023-08-08 by *Guillaume Chervet* -- [7ffcde4](https://github.com/AxaFrance/oidc-client/commit/7ffcde465f5f4cbba4b39e0da43dee34d4ec37d9) - doc(readme): update images urls, 2023-08-08 by *Guillaume Chervet* - - From d20953a0180bdf3b8b6dd3247a025e3b4fc389f8 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Sat, 10 Feb 2024 15:56:34 +0100 Subject: [PATCH 184/440] refactor(oidc): remove base64.js dependencies (alpha) --- packages/oidc-client/package.json | 1 - packages/oidc-client/src/crypto.ts | 10 +++------- packages/oidc-client/src/jwt.ts | 6 ++---- 3 files changed, 5 insertions(+), 12 deletions(-) diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 955e3299f..6ee1c1593 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -27,7 +27,6 @@ "@testing-library/jest-dom": "6.4.2", "@testing-library/react": "14.2.1", "@vitest/coverage-v8": "1.2.2", - "base64-js": "^1.5.1", "cpy": "11.0.0", "cpy-cli": "^5.0.0", "rimraf": "5.0.5", diff --git a/packages/oidc-client/src/crypto.ts b/packages/oidc-client/src/crypto.ts index d44370d13..fff0a9f84 100644 --- a/packages/oidc-client/src/crypto.ts +++ b/packages/oidc-client/src/crypto.ts @@ -1,4 +1,5 @@ -import * as base64 from 'base64-js'; +import {uint8ToUrlBase64} from "./jwt"; + const cryptoInfo = () => { const hasCrypto = typeof window !== 'undefined' && !!(window.crypto as any); @@ -16,11 +17,6 @@ const bufferToString = (buffer: Uint8Array) => { return state.join(''); }; -const urlSafe = (buffer: Uint8Array): string => { - const encoded = base64.fromByteArray(new Uint8Array(buffer)); - return encoded.replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, ''); -}; - export const generateRandom = (size: number) => { const buffer = new Uint8Array(size); const { hasCrypto } = cryptoInfo(); @@ -48,7 +44,7 @@ export function textEncodeLite(str: string) { export function base64urlOfHashOfASCIIEncodingAsync(code: string):Promise { return new Promise((resolve, reject) => { crypto.subtle.digest('SHA-256', textEncodeLite(code)).then(buffer => { - return resolve(urlSafe(new Uint8Array(buffer))); + return resolve(uint8ToUrlBase64(new Uint8Array(buffer))); }, error => reject(error)); }); } diff --git a/packages/oidc-client/src/jwt.ts b/packages/oidc-client/src/jwt.ts index 8f869e7d3..f65ec7b7e 100644 --- a/packages/oidc-client/src/jwt.ts +++ b/packages/oidc-client/src/jwt.ts @@ -30,18 +30,16 @@ function utf8ToBinaryString(str) { const escstr = encodeURIComponent(str); // replaces any uri escape sequence, such as %0A, // with binary escape, such as 0x0A - const binstr = escstr.replace(/%([0-9A-F]{2})/g, function (match, p1) { + return escstr.replace(/%([0-9A-F]{2})/g, function (match, p1) { return String.fromCharCode(parseInt(p1, 16)); }); - - return binstr; } // Uint8Array to URL Safe Base64 // // the shortest distant between two encodings... binary string // @ts-ignore -function uint8ToUrlBase64(uint8) { +export const uint8ToUrlBase64 =(uint8: Uint8Array) => { let bin = ''; // @ts-ignore uint8.forEach(function(code) { From 251164830a9a1b976e8d6c743490795a028afa16 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Sat, 10 Feb 2024 16:03:46 +0100 Subject: [PATCH 185/440] refactor(oidc): remove base64.js dependency (#1292) (release) --- packages/oidc-client/package.json | 3 +-- packages/oidc-client/src/crypto.ts | 10 +++------- packages/oidc-client/src/jwt.ts | 6 ++---- pnpm-lock.yaml | 3 --- 4 files changed, 6 insertions(+), 16 deletions(-) diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 9d8a5eaee..6ee1c1593 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.17.0", + "version": "7.16.0", "private": false, "type": "module", "main": "./dist/index.umd.cjs", @@ -27,7 +27,6 @@ "@testing-library/jest-dom": "6.4.2", "@testing-library/react": "14.2.1", "@vitest/coverage-v8": "1.2.2", - "base64-js": "^1.5.1", "cpy": "11.0.0", "cpy-cli": "^5.0.0", "rimraf": "5.0.5", diff --git a/packages/oidc-client/src/crypto.ts b/packages/oidc-client/src/crypto.ts index d44370d13..fff0a9f84 100644 --- a/packages/oidc-client/src/crypto.ts +++ b/packages/oidc-client/src/crypto.ts @@ -1,4 +1,5 @@ -import * as base64 from 'base64-js'; +import {uint8ToUrlBase64} from "./jwt"; + const cryptoInfo = () => { const hasCrypto = typeof window !== 'undefined' && !!(window.crypto as any); @@ -16,11 +17,6 @@ const bufferToString = (buffer: Uint8Array) => { return state.join(''); }; -const urlSafe = (buffer: Uint8Array): string => { - const encoded = base64.fromByteArray(new Uint8Array(buffer)); - return encoded.replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, ''); -}; - export const generateRandom = (size: number) => { const buffer = new Uint8Array(size); const { hasCrypto } = cryptoInfo(); @@ -48,7 +44,7 @@ export function textEncodeLite(str: string) { export function base64urlOfHashOfASCIIEncodingAsync(code: string):Promise { return new Promise((resolve, reject) => { crypto.subtle.digest('SHA-256', textEncodeLite(code)).then(buffer => { - return resolve(urlSafe(new Uint8Array(buffer))); + return resolve(uint8ToUrlBase64(new Uint8Array(buffer))); }, error => reject(error)); }); } diff --git a/packages/oidc-client/src/jwt.ts b/packages/oidc-client/src/jwt.ts index 8f869e7d3..f65ec7b7e 100644 --- a/packages/oidc-client/src/jwt.ts +++ b/packages/oidc-client/src/jwt.ts @@ -30,18 +30,16 @@ function utf8ToBinaryString(str) { const escstr = encodeURIComponent(str); // replaces any uri escape sequence, such as %0A, // with binary escape, such as 0x0A - const binstr = escstr.replace(/%([0-9A-F]{2})/g, function (match, p1) { + return escstr.replace(/%([0-9A-F]{2})/g, function (match, p1) { return String.fromCharCode(parseInt(p1, 16)); }); - - return binstr; } // Uint8Array to URL Safe Base64 // // the shortest distant between two encodings... binary string // @ts-ignore -function uint8ToUrlBase64(uint8) { +export const uint8ToUrlBase64 =(uint8: Uint8Array) => { let bin = ''; // @ts-ignore uint8.forEach(function(code) { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cabbeccf6..a6e7691cc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -188,9 +188,6 @@ importers: '@vitest/coverage-v8': specifier: 1.2.2 version: 1.2.2(vitest@1.2.2) - base64-js: - specifier: ^1.5.1 - version: 1.5.1 cpy: specifier: 11.0.0 version: 11.0.0 From bee6c9c82ef1456798fe42f5966082fd0940bf53 Mon Sep 17 00:00:00 2001 From: GitHub Date: Sat, 10 Feb 2024 15:06:16 +0000 Subject: [PATCH 186/440] [skip ci] Update to version 7.17.1 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 7ecdc9193..a9ed73415 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.17.0", + "version": "7.17.1", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index dde20ab66..6c63c4d15 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.17.0'; +export default '7.17.1'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 6ee1c1593..b177b0bfa 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.16.0", + "version": "7.17.1", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index dde20ab66..6c63c4d15 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.17.0'; +export default '7.17.1'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index a1ad36859..44e5dd557 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.17.0", + "version": "7.17.1", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From a91a7bcac6046f3832d0efff886c5faac6ae5863 Mon Sep 17 00:00:00 2001 From: GitHub Date: Sat, 10 Feb 2024 15:06:18 +0000 Subject: [PATCH 187/440] [skip ci] Generate changelog to version 7.17.1 --- CHANGELOG.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 977c33ee4..2eabd306a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog -## 7.17.0 +## 7.17.1 + +- [2511648](https://github.com/AxaFrance/oidc-client/commit/251164830a9a1b976e8d6c743490795a028afa16) - refactor(oidc): remove base64.js dependency (#1292) (release), 2024-02-10 by *Guillaume Chervet* + + +## v7.17.0 - [a09e6fd](https://github.com/AxaFrance/oidc-client/commit/a09e6fda64aa210fe7f63d70b6c64af559012640) - feat(oidc): logout add extras parameter to avoid the page reload (release) (#1290), 2024-02-10 by *Guillaume Chervet* @@ -312,8 +317,3 @@ - [790ec46](https://github.com/AxaFrance/oidc-client/commit/790ec468355967462b9bfce40196e9336efed0d7) - fix(oidc): allow service worker to chrome 70 (release), 2023-08-15 by *Guillaume Chervet* -## v7.3.1 - -- [c2564f9](https://github.com/AxaFrance/oidc-client/commit/c2564f9ef6de2122962cfb4a8e0f9195aa688d84) - fix(all): copy of service worker files (release), 2023-08-08 by *Guillaume Chervet* - - From c3d5c6b1a6a2a82450d134134513634031c1c338 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Sun, 11 Feb 2024 13:56:30 +0100 Subject: [PATCH 188/440] refactor(react-oidc): remove base64js dependencies (release) --- packages/oidc-client/package.json | 3 ++- packages/react-oidc/package.json | 3 +-- pnpm-lock.yaml | 4 +--- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index b177b0bfa..80ad982bf 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -41,7 +41,8 @@ "openid", "oauth2", "oauth", - "vanilla" + "vanilla", + "vanillajs" ], "scripts": { "clean": "rimraf dist", diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 44e5dd557..cfd634fc7 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -41,8 +41,7 @@ }, "dependencies": { "@axa-fr/oidc-client-service-worker": "workspace:*", - "@axa-fr/oidc-client": "workspace:*", - "base64-js": "1.5.1" + "@axa-fr/oidc-client": "workspace:*" }, "peerDependencies": { "react": "^17.0.0 || ^18.0.0" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a6e7691cc..b55c2708e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -245,9 +245,6 @@ importers: '@axa-fr/oidc-client-service-worker': specifier: workspace:* version: link:../oidc-client-service-worker - base64-js: - specifier: 1.5.1 - version: 1.5.1 devDependencies: '@testing-library/jest-dom': specifier: 6.4.2 @@ -2032,6 +2029,7 @@ packages: /base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + dev: true /binary-extensions@2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} From 98eb195b0f1d45b490913381c74c1d03375e9858 Mon Sep 17 00:00:00 2001 From: GitHub Date: Sun, 11 Feb 2024 12:59:23 +0000 Subject: [PATCH 189/440] [skip ci] Update to version 7.17.2 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index a9ed73415..7b3f47798 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.17.1", + "version": "7.17.2", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 6c63c4d15..a9835fb8d 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.17.1'; +export default '7.17.2'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 80ad982bf..320d6618b 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.17.1", + "version": "7.17.2", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 6c63c4d15..a9835fb8d 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.17.1'; +export default '7.17.2'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index cfd634fc7..b6da391f5 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.17.1", + "version": "7.17.2", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 7a42de8efa8a66b6efce63f34dd1de3b77795f1d Mon Sep 17 00:00:00 2001 From: GitHub Date: Sun, 11 Feb 2024 12:59:24 +0000 Subject: [PATCH 190/440] [skip ci] Generate changelog to version 7.17.2 --- CHANGELOG.md | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2eabd306a..6dfa2a465 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,14 @@ # Changelog -## 7.17.1 +## 7.17.2 + +- [c3d5c6b](https://github.com/AxaFrance/oidc-client/commit/c3d5c6b1a6a2a82450d134134513634031c1c338) - refactor(react-oidc): remove base64js dependencies (release), 2024-02-11 by *Guillaume Chervet* +- [2a7031b](https://github.com/AxaFrance/oidc-client/commit/2a7031bfdd5a7c638940ece97778988ead73cbdc) - Merge branch 'main' of https://github.com/AxaFrance/oidc-client, 2024-02-11 by *Guillaume Chervet* +- [3973497](https://github.com/AxaFrance/oidc-client/commit/397349749e9abb75a6910b3824786f3c688447fe) - Merge branch 'main' of https://github.com/AxaFrance/oidc-client, 2024-02-10 by *Guillaume Chervet* +- [d20953a](https://github.com/AxaFrance/oidc-client/commit/d20953a0180bdf3b8b6dd3247a025e3b4fc389f8) - refactor(oidc): remove base64.js dependencies (alpha), 2024-02-10 by *Guillaume Chervet* + + +## v7.17.1 - [2511648](https://github.com/AxaFrance/oidc-client/commit/251164830a9a1b976e8d6c743490795a028afa16) - refactor(oidc): remove base64.js dependency (#1292) (release), 2024-02-10 by *Guillaume Chervet* @@ -312,8 +320,3 @@ - [e4e7409](https://github.com/AxaFrance/oidc-client/commit/e4e74091a8a6fadb64429dcccbd43331af62f920) - fix(oidc): parent instead of top for iframe allow app inside iframe (#1130) (release), 2023-08-15 by *Guillaume Chervet* -## v7.3.2 - -- [790ec46](https://github.com/AxaFrance/oidc-client/commit/790ec468355967462b9bfce40196e9336efed0d7) - fix(oidc): allow service worker to chrome 70 (release), 2023-08-15 by *Guillaume Chervet* - - From dbaf602d31e0b437285496e2711ff7cce5d8d3f7 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Sun, 11 Feb 2024 14:59:36 +0100 Subject: [PATCH 191/440] fix(react-oidc): typings user can be null (release) --- packages/react-oidc/src/User.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-oidc/src/User.ts b/packages/react-oidc/src/User.ts index 0b1b6a712..14413e57e 100644 --- a/packages/react-oidc/src/User.ts +++ b/packages/react-oidc/src/User.ts @@ -9,7 +9,7 @@ export enum OidcUserStatus { } export type OidcUser = { - user: T; + user: T | null; status: OidcUserStatus; } From 6291b24f81584304e89deab66b9cd10fc114e543 Mon Sep 17 00:00:00 2001 From: GitHub Date: Sun, 11 Feb 2024 14:02:25 +0000 Subject: [PATCH 192/440] [skip ci] Update to version 7.17.3 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 7b3f47798..f2187b91a 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.17.2", + "version": "7.17.3", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index a9835fb8d..71f6c9026 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.17.2'; +export default '7.17.3'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 320d6618b..74150e212 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.17.2", + "version": "7.17.3", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index a9835fb8d..71f6c9026 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.17.2'; +export default '7.17.3'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index b6da391f5..be6d7d4bb 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.17.2", + "version": "7.17.3", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 9ffef5d0248034af666bdc2217dec70c3da7b243 Mon Sep 17 00:00:00 2001 From: GitHub Date: Sun, 11 Feb 2024 14:02:27 +0000 Subject: [PATCH 193/440] [skip ci] Generate changelog to version 7.17.3 --- CHANGELOG.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6dfa2a465..44f528d83 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog -## 7.17.2 +## 7.17.3 + +- [dbaf602](https://github.com/AxaFrance/oidc-client/commit/dbaf602d31e0b437285496e2711ff7cce5d8d3f7) - fix(react-oidc): typings user can be null (release), 2024-02-11 by *Guillaume Chervet* + + +## v7.17.2 - [c3d5c6b](https://github.com/AxaFrance/oidc-client/commit/c3d5c6b1a6a2a82450d134134513634031c1c338) - refactor(react-oidc): remove base64js dependencies (release), 2024-02-11 by *Guillaume Chervet* - [2a7031b](https://github.com/AxaFrance/oidc-client/commit/2a7031bfdd5a7c638940ece97778988ead73cbdc) - Merge branch 'main' of https://github.com/AxaFrance/oidc-client, 2024-02-11 by *Guillaume Chervet* @@ -315,8 +320,3 @@ - [6d371ff](https://github.com/AxaFrance/oidc-client/commit/6d371ff1ce909ae40ef2f44a145bdcd322ca9d90) - fix(oidc-service-worker): gracefull timeout on firefox (release) (#1132), 2023-08-25 by *Guillaume Chervet* -## v7.3.3 - -- [e4e7409](https://github.com/AxaFrance/oidc-client/commit/e4e74091a8a6fadb64429dcccbd43331af62f920) - fix(oidc): parent instead of top for iframe allow app inside iframe (#1130) (release), 2023-08-15 by *Guillaume Chervet* - - From 91b11afa983bf4bee8def95c4ee101ede5447dc9 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Sun, 11 Feb 2024 18:49:51 +0100 Subject: [PATCH 194/440] fix(oidc): resfreshTokenError not triggered when silentsignin disabled (release) --- packages/oidc-client/src/renewTokens.ts | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/packages/oidc-client/src/renewTokens.ts b/packages/oidc-client/src/renewTokens.ts index 79ae5c133..72762c61c 100644 --- a/packages/oidc-client/src/renewTokens.ts +++ b/packages/oidc-client/src/renewTokens.ts @@ -186,17 +186,20 @@ const synchroniseTokensAsync = (oidc:Oidc) => async (index = 0, forceRefresh = f ...extras, prompt: 'none', }); - if (silent_token_response) { - if(silent_token_response.error) { - updateTokens(null); - oidc.publishEvent(eventNames.refreshTokensAsync_error, { message: 'refresh token silent' }); - return { tokens: null, status: 'SESSION_LOST' }; - } + if (!silent_token_response) { + updateTokens(null); + oidc.publishEvent(eventNames.refreshTokensAsync_error, { message: 'refresh token silent not active' }); + return { tokens: null, status: 'SESSION_LOST' }; + } + if(silent_token_response.error) { + updateTokens(null); + oidc.publishEvent(eventNames.refreshTokensAsync_error, { message: 'refresh token silent' }); + return { tokens: null, status: 'SESSION_LOST' }; + } - updateTokens(silent_token_response.tokens); - oidc.publishEvent(Oidc.eventNames.token_renewed, {}); - return { tokens: silent_token_response.tokens, status: 'LOGGED' }; - } + updateTokens(silent_token_response.tokens); + oidc.publishEvent(Oidc.eventNames.token_renewed, {}); + return { tokens: silent_token_response.tokens, status: 'LOGGED' }; } catch (exceptionSilent: any) { console.error(exceptionSilent); From f17b70152a2ffe55fd2f0a7824ff4495c83d16e5 Mon Sep 17 00:00:00 2001 From: GitHub Date: Sun, 11 Feb 2024 17:53:05 +0000 Subject: [PATCH 195/440] [skip ci] Update to version 7.17.4 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index f2187b91a..1029c4204 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.17.3", + "version": "7.17.4", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 71f6c9026..7a179e32c 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.17.3'; +export default '7.17.4'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 74150e212..8e622aaa0 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.17.3", + "version": "7.17.4", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 71f6c9026..7a179e32c 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.17.3'; +export default '7.17.4'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index be6d7d4bb..4a8c8cda2 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.17.3", + "version": "7.17.4", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 29693341ff020f826b297a47b606cd55ab615386 Mon Sep 17 00:00:00 2001 From: GitHub Date: Sun, 11 Feb 2024 17:53:06 +0000 Subject: [PATCH 196/440] [skip ci] Generate changelog to version 7.17.4 --- CHANGELOG.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 44f528d83..63f32a592 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog -## 7.17.3 +## 7.17.4 + +- [91b11af](https://github.com/AxaFrance/oidc-client/commit/91b11afa983bf4bee8def95c4ee101ede5447dc9) - fix(oidc): resfreshTokenError not triggered when silentsignin disabled (release), 2024-02-11 by *Guillaume Chervet* + + +## v7.17.3 - [dbaf602](https://github.com/AxaFrance/oidc-client/commit/dbaf602d31e0b437285496e2711ff7cce5d8d3f7) - fix(react-oidc): typings user can be null (release), 2024-02-11 by *Guillaume Chervet* @@ -315,8 +320,3 @@ - [d0dfde4](https://github.com/AxaFrance/oidc-client/commit/d0dfde47e27125248e5af7e9d6c12bfbe1e3ec60) - feat(oidc+serviceworker): increase security preventing sw unresgistration during silent signin (#1134) (release), 2023-09-05 by *Guillaume Chervet* -## v7.3.4 - -- [6d371ff](https://github.com/AxaFrance/oidc-client/commit/6d371ff1ce909ae40ef2f44a145bdcd322ca9d90) - fix(oidc-service-worker): gracefull timeout on firefox (release) (#1132), 2023-08-25 by *Guillaume Chervet* - - From 5e35346bfa477b560f5bde1afb2125a2c5f6e9c4 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Tue, 13 Feb 2024 21:39:07 +0100 Subject: [PATCH 197/440] feat(oidc): add extras to revoke access_token and refresh_tokens (#1295) (release) --- packages/oidc-client/README.md | 5 +- packages/oidc-client/src/logout.spec.ts | 4 +- packages/oidc-client/src/logout.ts | 78 +++++++++++++++++-------- packages/oidc-client/src/oidc.ts | 2 +- packages/oidc-client/src/requests.ts | 13 ++++- 5 files changed, 75 insertions(+), 27 deletions(-) diff --git a/packages/oidc-client/README.md b/packages/oidc-client/README.md index 02a31f977..2cc14490b 100644 --- a/packages/oidc-client/README.md +++ b/packages/oidc-client/README.md @@ -312,7 +312,10 @@ export class OidcClient { /** * Starts the OIDC logout process with specified options. * @param callbackPathOrUrl The callback path or URL to use after logout. - * @param extras Additional parameters to send to the OIDC server during the logout request. {"no_reload:oidc":"true"} to avoid the page reload after logout. + * @param extras Additional parameters to send to the OIDC server during the logout request. + * {"no_reload:oidc":"true"} to avoid the page reload after logout. + * you can add extras like {"client_secret:revoke_refresh_token":"secret"} to revoke the refresh token with extra client secret. Any key ending with ":revoke_refresh_token" will be used to revoke the refresh token. + * you can add extras like {"client_secret:revoke_access_token":"secret"} to revoke the access token with extra client secret. Any key ending with ":revoke_access_token" will be used to revoke the access token. * @returns A promise resolved when the logout is completed. */ logoutAsync(callbackPathOrUrl?: string | null | undefined, extras?: StringMap): Promise; diff --git a/packages/oidc-client/src/logout.spec.ts b/packages/oidc-client/src/logout.spec.ts index 489b846dc..5d18d8705 100644 --- a/packages/oidc-client/src/logout.spec.ts +++ b/packages/oidc-client/src/logout.spec.ts @@ -12,7 +12,9 @@ describe('Logout test suite', () => { {logout_tokens_to_invalidate:['refresh_token'],extras:null, expectedResults: ["token=abdc&token_type_hint=refresh_token&client_id=interactive.public.short"], expectedFinalUrl}, {logout_tokens_to_invalidate:['access_token'],extras:null, expectedResults: ["token=abcd&token_type_hint=access_token&client_id=interactive.public.short"], expectedFinalUrl}, {logout_tokens_to_invalidate:[],extras:null, expectedResults: [], expectedFinalUrl}, - {logout_tokens_to_invalidate:[],extras: {"no_reload:oidc":"true"}, expectedResults: [], expectedFinalUrl:""}, + {logout_tokens_to_invalidate:[],extras: {"no_reload:oidc":"true"}, expectedResults: [], expectedFinalUrl:""}, + {logout_tokens_to_invalidate:['refresh_token'],extras:{"client_secret:revoke_refresh_token":"secret"}, expectedResults: ["token=abdc&token_type_hint=refresh_token&client_id=interactive.public.short&client_secret=secret"], expectedFinalUrl}, + {logout_tokens_to_invalidate:['access_token'],extras:{"client_secret:revoke_access_token":"secret"}, expectedResults: ["token=abcd&token_type_hint=access_token&client_id=interactive.public.short&client_secret=secret"], expectedFinalUrl}, ])('Logout should revoke tokens $logout_tokens_to_invalidate', async ({ logout_tokens_to_invalidate, extras =null, expectedResults, expectedFinalUrl}) => { const configuration = { diff --git a/packages/oidc-client/src/logout.ts b/packages/oidc-client/src/logout.ts index 731bac9d3..d422a9a8d 100644 --- a/packages/oidc-client/src/logout.ts +++ b/packages/oidc-client/src/logout.ts @@ -11,6 +11,33 @@ export const oidcLogoutTokens = { refresh_token: 'refresh_token', }; +const extractExtras = (extras: StringMap, postKey: string):StringMap => { + const postExtras:StringMap = {}; + if (extras) { + for (const [key, value] of Object.entries(extras)) { + if (key.endsWith(postKey)) { + const newKey = key.replace(postKey, ''); + postExtras[newKey] = value; + } + } + return postExtras; + } + return postExtras; +} + +const keepExtras = (extras: StringMap):StringMap => { + const postExtras : StringMap = {}; + if (extras) { + for (const [key, value] of Object.entries(extras)) { + if (!key.includes(':')) { + postExtras[key] = value; + } + } + return postExtras; + } + return postExtras; +} + export const destroyAsync = (oidc) => async (status) => { timer.clearTimeout(oidc.timeoutId); oidc.timeoutId = null; @@ -28,7 +55,10 @@ export const destroyAsync = (oidc) => async (status) => { oidc.userInfo = null; }; -export const logoutAsync = (oidc, oidcDatabase, fetch, console, oicLocation:ILOidcLocation) => async (callbackPathOrUrl: string | null | undefined = undefined, extras: StringMap = null) => { +export const logoutAsync = (oidc, + oidcDatabase, + fetch, + console, oicLocation:ILOidcLocation) => async (callbackPathOrUrl: string | null | undefined = undefined, extras: StringMap = null) => { const configuration = oidc.configuration; const oidcServerConfiguration = await oidc.initAsync(configuration.authority, configuration.authority_configuration); if (callbackPathOrUrl && (typeof callbackPathOrUrl !== 'string')) { @@ -49,12 +79,22 @@ export const logoutAsync = (oidc, oidcDatabase, fetch, console, oicLocation:ILOi const promises = []; const accessToken = oidc.tokens ? oidc.tokens.accessToken : null; if (accessToken && configuration.logout_tokens_to_invalidate.includes(oidcLogoutTokens.access_token)) { - const revokeAccessTokenPromise = performRevocationRequestAsync(fetch)(revocationEndpoint, accessToken, TOKEN_TYPE.access_token, configuration.client_id); + const revokeAccessTokenExtras = extractExtras(extras, ':revoke_access_token'); + const revokeAccessTokenPromise = performRevocationRequestAsync(fetch)(revocationEndpoint, + accessToken, + TOKEN_TYPE.access_token, + configuration.client_id, + revokeAccessTokenExtras); promises.push(revokeAccessTokenPromise); } const refreshToken = oidc.tokens ? oidc.tokens.refreshToken : null; if (refreshToken && configuration.logout_tokens_to_invalidate.includes(oidcLogoutTokens.refresh_token)) { - const revokeRefreshTokenPromise = performRevocationRequestAsync(fetch)(revocationEndpoint, refreshToken, TOKEN_TYPE.refresh_token, configuration.client_id); + const revokeAccessTokenExtras = extractExtras(extras, ':revoke_refresh_token'); + const revokeRefreshTokenPromise = performRevocationRequestAsync(fetch)(revocationEndpoint, + refreshToken, + TOKEN_TYPE.refresh_token, + configuration.client_id, + revokeAccessTokenExtras); promises.push(revokeRefreshTokenPromise); } if (promises.length > 0) { @@ -78,34 +118,26 @@ export const logoutAsync = (oidc, oidcDatabase, fetch, console, oicLocation:ILOi oidc.publishEvent(eventNames.logout_from_same_tab, {} ); } } - - let noReload = false; - if(extras) { - extras = {...extras}; - for (const [key, value] of Object.entries(extras)) { - if (key.endsWith('no_reload:oidc')) { - noReload = extras[key] == "true"; - delete extras[key]; - } - } - } + + const oidcExtras = extractExtras(extras, ':oidc'); + let noReload = oidcExtras && oidcExtras['no_reload'] === 'true'; if(noReload) { return; } + + const endPointExtras = keepExtras(extras); if (oidcServerConfiguration.endSessionEndpoint) { - if (!extras) { - extras = { - id_token_hint: idToken, - }; - if (callbackPathOrUrl !== null) { - extras.post_logout_redirect_uri = url; - } + if (!('id_token_hint' in endPointExtras)) { + endPointExtras['id_token_hint'] = idToken; + } + if (!('post_logout_redirect_uri' in endPointExtras) && callbackPathOrUrl !== null) { + endPointExtras['post_logout_redirect_uri'] = url; } let queryString = ''; - if (extras) { - for (const [key, value] of Object.entries(extras)) { + for (const [key, value] of Object.entries(endPointExtras)) { + if(value !== null && value !== undefined) { if (queryString === '') { queryString += '?'; } else { diff --git a/packages/oidc-client/src/oidc.ts b/packages/oidc-client/src/oidc.ts index bdf8dee82..afcc232bf 100644 --- a/packages/oidc-client/src/oidc.ts +++ b/packages/oidc-client/src/oidc.ts @@ -167,7 +167,7 @@ export class Oidc { const isInsideBrowser = (typeof process === 'undefined'); if (!Object.prototype.hasOwnProperty.call(oidcDatabase, name) && isInsideBrowser) { throw Error(`OIDC library does seem initialized. -Please checkout that you are using OIDC hook inside a compoment.`); +Please checkout that you are using OIDC hook inside a component.`); } return oidcDatabase[name]; } diff --git a/packages/oidc-client/src/requests.ts b/packages/oidc-client/src/requests.ts index 9f4ab259a..5321210f0 100644 --- a/packages/oidc-client/src/requests.ts +++ b/packages/oidc-client/src/requests.ts @@ -54,12 +54,23 @@ export const TOKEN_TYPE = { access_token: 'access_token', }; -export const performRevocationRequestAsync = (fetch) => async (url, token, token_type = TOKEN_TYPE.refresh_token, client_id, timeoutMs = 10000) => { +export const performRevocationRequestAsync = (fetch) => async (url, + token, + token_type = TOKEN_TYPE.refresh_token, + client_id, + extras:StringMap = {}, + timeoutMs = 10000) => { const details = { token, token_type_hint: token_type, client_id, }; + for (const [key, value] of Object.entries(extras)) { + + if (details[key] === undefined) { + details[key] = value; + } + } const formBody = []; for (const property in details) { From 6391b65d9bb73e35a23ee893b3bdab23074652b6 Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 13 Feb 2024 20:41:44 +0000 Subject: [PATCH 198/440] [skip ci] Update to version 7.18.0 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 1029c4204..d29514926 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.17.4", + "version": "7.18.0", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 7a179e32c..4f9c59ec3 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.17.4'; +export default '7.18.0'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 8e622aaa0..08291abb9 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.17.4", + "version": "7.18.0", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 7a179e32c..4f9c59ec3 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.17.4'; +export default '7.18.0'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 4a8c8cda2..9c90dbaa8 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.17.4", + "version": "7.18.0", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 8585205cc29aaa41f9c47115c3ff1cf9d3f7f9aa Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 13 Feb 2024 20:41:45 +0000 Subject: [PATCH 199/440] [skip ci] Generate changelog to version 7.18.0 --- CHANGELOG.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 63f32a592..13f584421 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog -## 7.17.4 +## 7.18.0 + +- [5e35346](https://github.com/AxaFrance/oidc-client/commit/5e35346bfa477b560f5bde1afb2125a2c5f6e9c4) - feat(oidc): add extras to revoke access_token and refresh_tokens (#1295) (release), 2024-02-13 by *Guillaume Chervet* + + +## v7.17.4 - [91b11af](https://github.com/AxaFrance/oidc-client/commit/91b11afa983bf4bee8def95c4ee101ede5447dc9) - fix(oidc): resfreshTokenError not triggered when silentsignin disabled (release), 2024-02-11 by *Guillaume Chervet* @@ -315,8 +320,3 @@ - [823a3c3](https://github.com/AxaFrance/oidc-client/commit/823a3c37351e39b0bb1290228f72c58f11a28960) - fix(oidc+serviceworker): better issueAt, 2023-09-05 by *Guillaume Chervet* -## v7.4.0 - -- [d0dfde4](https://github.com/AxaFrance/oidc-client/commit/d0dfde47e27125248e5af7e9d6c12bfbe1e3ec60) - feat(oidc+serviceworker): increase security preventing sw unresgistration during silent signin (#1134) (release), 2023-09-05 by *Guillaume Chervet* - - From 0d13cc28a8cc40c610d3943d33fe8a7d4e28c32f Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Tue, 13 Feb 2024 21:46:31 +0100 Subject: [PATCH 200/440] fix(oidc): unload user on logout (#1296) (release) --- packages/react-oidc/src/User.ts | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/packages/react-oidc/src/User.ts b/packages/react-oidc/src/User.ts index 14413e57e..c972f25c2 100644 --- a/packages/react-oidc/src/User.ts +++ b/packages/react-oidc/src/User.ts @@ -17,8 +17,9 @@ export const useOidcUser = (configuration const [oidcUser, setOidcUser] = useState>({ user: null, status: OidcUserStatus.Unauthenticated }); const [oidcUserId, setOidcUserId] = useState(''); - const oidc = OidcClient.get(configurationName); + useEffect(() => { + const oidc = OidcClient.get(configurationName); let isMounted = true; if (oidc && oidc.tokens) { setOidcUser({ ...oidcUser, status: OidcUserStatus.Loading }); @@ -34,7 +35,18 @@ export const useOidcUser = (configuration } else { setOidcUser({ user: null, status: OidcUserStatus.Unauthenticated }); } - return () => { isMounted = false; }; + // eslint-disable-next-line @typescript-eslint/no-unused-vars + const newSubscriptionId = oidc.subscribeEvents((name: string, data: any) => { + if (name === OidcClient.eventNames.logout_from_another_tab || name === OidcClient.eventNames.logout_from_same_tab) { + if (isMounted) { + setOidcUser({ user: null, status: OidcUserStatus.Unauthenticated }); + } + } + }); + return () => { + isMounted = false; + oidc.removeEventSubscription(newSubscriptionId); + }; }, [oidcUserId]); const reloadOidcUser = () => { From 68a8d03ec22caa975f6f4d992b8d2235b370f98b Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 13 Feb 2024 20:49:04 +0000 Subject: [PATCH 201/440] [skip ci] Update to version 7.18.1 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index d29514926..c00b8fb92 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.18.0", + "version": "7.18.1", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 4f9c59ec3..588db1f84 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.18.0'; +export default '7.18.1'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 08291abb9..594fa0a2b 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.18.0", + "version": "7.18.1", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 4f9c59ec3..588db1f84 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.18.0'; +export default '7.18.1'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 9c90dbaa8..2474c4337 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.18.0", + "version": "7.18.1", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From aa69ce607a7819a8df3d2887b30963b5f776edf2 Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 13 Feb 2024 20:49:06 +0000 Subject: [PATCH 202/440] [skip ci] Generate changelog to version 7.18.1 --- CHANGELOG.md | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 13f584421..8e1f71e92 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog -## 7.18.0 +## 7.18.1 + +- [0d13cc2](https://github.com/AxaFrance/oidc-client/commit/0d13cc28a8cc40c610d3943d33fe8a7d4e28c32f) - fix(oidc): unload user on logout (#1296) (release), 2024-02-13 by *Guillaume Chervet* + + +## v7.18.0 - [5e35346](https://github.com/AxaFrance/oidc-client/commit/5e35346bfa477b560f5bde1afb2125a2c5f6e9c4) - feat(oidc): add extras to revoke access_token and refresh_tokens (#1295) (release), 2024-02-13 by *Guillaume Chervet* @@ -314,9 +319,3 @@ - [1980813](https://github.com/AxaFrance/oidc-client/commit/1980813234a63e13353b8e5623982e714b42ac12) - feat(demo): hack iframe unregister serviceworker (#1137), 2023-09-14 by *Guillaume Chervet* -## v7.4.1 - -- [6941766](https://github.com/AxaFrance/oidc-client/commit/6941766614d18ff3c92bbd00bdf0583350b16b7f) - fix(service-worker): setAccessTokenToNavigateRequests always true (#1136) (release), 2023-09-07 by *Guillaume Chervet* -- [823a3c3](https://github.com/AxaFrance/oidc-client/commit/823a3c37351e39b0bb1290228f72c58f11a28960) - fix(oidc+serviceworker): better issueAt, 2023-09-05 by *Guillaume Chervet* - - From 77329ce52a5fc7278ff35ccd13ca572ff7ebbf4d Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Thu, 15 Feb 2024 20:28:37 +0100 Subject: [PATCH 203/440] fix(oidc-service-worker): bad request on many token request at the same time (#1300) (release) --- .../src/OidcServiceWorker.ts | 39 ++++++++++--------- .../src/utils/__tests__/codeVerifier.spec.ts | 18 ++++++++- .../src/utils/codeVerifier.ts | 11 ++++++ 3 files changed, 48 insertions(+), 20 deletions(-) diff --git a/packages/oidc-client-service-worker/src/OidcServiceWorker.ts b/packages/oidc-client-service-worker/src/OidcServiceWorker.ts index 88109e353..cb963cdf6 100644 --- a/packages/oidc-client-service-worker/src/OidcServiceWorker.ts +++ b/packages/oidc-client-service-worker/src/OidcServiceWorker.ts @@ -14,7 +14,7 @@ import { serializeHeaders, sleep, } from './utils'; -import { replaceCodeVerifier } from './utils/codeVerifier'; +import {extractConfigurationNameFromCodeVerifier, replaceCodeVerifier} from './utils/codeVerifier'; import { normalizeUrl } from './utils/normalizeUrl'; import version from './version'; @@ -51,7 +51,6 @@ const handleActivate = (event: ExtendableEvent) => { event.waitUntil(_self.clients.claim()); }; -let currentLoginCallbackConfigurationName: string | null = null; const database: Database = {}; const getCurrentDatabasesTokenEndpoint = (database: Database, url: string) => { @@ -136,10 +135,16 @@ const handleFetch = async (event: FetchEvent) => { ...serializeHeaders(originalRequest.headers), }; } else { + + const authorization = originalRequest.headers.get('authorization'); + if (!authorization ) { + throw new Error('No authorization header'); + } + const authentificationMode = authorization.split(" ")[0]; headers = { ...serializeHeaders(originalRequest.headers), authorization: - 'Bearer ' + currentDatabaseForRequestAccessToken.tokens.access_token, + authentificationMode + ' ' + currentDatabaseForRequestAccessToken.tokens.access_token, }; } let init: RequestInit; @@ -232,13 +237,16 @@ const handleFetch = async (event: FetchEvent) => { return new Response(text, response); }); } - return fetchPromise.then(hideTokens(currentDatabase as OidcConfig)); // todo type assertion to OidcConfig but could be null, NEEDS REVIEW + return fetchPromise.then(hideTokens(currentDatabase as OidcConfig)); } else if ( actualBody.includes('code_verifier=') && - currentLoginCallbackConfigurationName + extractConfigurationNameFromCodeVerifier(actualBody) != null ) { + const currentLoginCallbackConfigurationName = extractConfigurationNameFromCodeVerifier( + actualBody, + ); + // @ts-ignore currentDatabase = database[currentLoginCallbackConfigurationName]; - currentLoginCallbackConfigurationName = null; let newBody = actualBody; if (currentDatabase && currentDatabase.codeVerifier != null) { newBody = replaceCodeVerifier( @@ -246,7 +254,7 @@ const handleFetch = async (event: FetchEvent) => { currentDatabase.codeVerifier, ); } - + return fetch(originalRequest, { body: newBody, method: clonedRequest.method, @@ -259,6 +267,7 @@ const handleFetch = async (event: FetchEvent) => { referrer: clonedRequest.referrer, credentials: clonedRequest.credentials, integrity: clonedRequest.integrity, + // @ts-ignore }).then(hideTokens(currentDatabase)); } @@ -338,7 +347,7 @@ const handleMessage = (event: ExtendableMessageEvent) => { trustedDomains[configurationName] = []; } } - + console.log('[OidcServiceWorker] handleMessage', data.type); switch (data.type) { case 'clear': currentDatabase.tokens = null; @@ -363,15 +372,6 @@ const handleMessage = (event: ExtendableMessageEvent) => { } currentDatabase.oidcServerConfiguration = oidcServerConfiguration; currentDatabase.oidcConfiguration = data.data.oidcConfiguration; - const where = data.data.where; - if ( - where === 'loginCallbackAsync' || - where === 'tryKeepExistingSessionAsync' - ) { - currentLoginCallbackConfigurationName = configurationName; - } else { - currentLoginCallbackConfigurationName = null; - } if (!currentDatabase.tokens) { port.postMessage({ @@ -487,8 +487,9 @@ const handleMessage = (event: ExtendableMessageEvent) => { return; } default: { - currentDatabase.items = { ...data.data }; - port.postMessage({ configurationName }); + return; + // currentDatabase.items = { ...data.data }; + // port.postMessage({ configurationName }); } } }; diff --git a/packages/oidc-client-service-worker/src/utils/__tests__/codeVerifier.spec.ts b/packages/oidc-client-service-worker/src/utils/__tests__/codeVerifier.spec.ts index e2ad25a05..d976b355f 100644 --- a/packages/oidc-client-service-worker/src/utils/__tests__/codeVerifier.spec.ts +++ b/packages/oidc-client-service-worker/src/utils/__tests__/codeVerifier.spec.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest'; -import { replaceCodeVerifier } from '../codeVerifier'; +import { replaceCodeVerifier, extractConfigurationNameFromCodeVerifier } from '../codeVerifier'; describe('replaceCodeVerifier should', () => { it.each([ @@ -11,3 +11,19 @@ describe('replaceCodeVerifier should', () => { expect(bodyExpected).toEqual(result); }); }); + + +describe('extractConfigurationNameFromCodeVerifier should', () => { + it.each([ + { body: "code=56DB8E3592FBD48DCF6F65B38B12845FF0186ECF6D66ECB5425C0F7E658B7951-1&grant_type=authorization_code&client_id=interactive.public.short&redirect_uri=https%3A%2F%2Fblack-rock-0dc6b0d03.1.azurestaticapps.net%2Fauthentication%2Fcallback&code_verifier=CODE_VERIFIER_SECURED_BY_OIDC_SERVICE_WORKER_default", expected: 'default' }, + { body: "code=56DB8E3592FBD48DCF6F65B38B12845FF0186ECF6D66ECB5425C0F7E658B7951-1&code_verifier=CODE_VERIFIER_SECURED_BY_OIDC_SERVICE_WORKER_youhou&grant_type=authorization_code&client_id=interactive.public.short&redirect_uri=https%3A%2F%2Fblack-rock-0dc6b0d03.1.azurestaticapps.net%2Fauthentication%2Fcallback", expected: 'youhou' }, + ])('inject new codeVerifier', async ({ body, expected }) => { + + const configurationName = extractConfigurationNameFromCodeVerifier(body); + console.log(configurationName); + expect(configurationName).toEqual(expected); + }); +}); + + + diff --git a/packages/oidc-client-service-worker/src/utils/codeVerifier.ts b/packages/oidc-client-service-worker/src/utils/codeVerifier.ts index a011716db..e84f47c19 100644 --- a/packages/oidc-client-service-worker/src/utils/codeVerifier.ts +++ b/packages/oidc-client-service-worker/src/utils/codeVerifier.ts @@ -2,3 +2,14 @@ export function replaceCodeVerifier(codeVerifier:string, newCodeVerifier:string) const regex = /code_verifier=[A-Za-z0-9_-]+/i; return codeVerifier.replace(regex, `code_verifier=${newCodeVerifier}`); } + +export const extractConfigurationNameFromCodeVerifier = (chaine:string):string | null => { + const regex = /CODE_VERIFIER_SECURED_BY_OIDC_SERVICE_WORKER_([^&\s]+)/; + const result = chaine.match(regex); + + if (result && result.length > 1) { + return result[1]; + } else { + return null; + } +} From daee256061a342b9c22ea2821ac50a6b7d653149 Mon Sep 17 00:00:00 2001 From: GitHub Date: Thu, 15 Feb 2024 19:31:13 +0000 Subject: [PATCH 204/440] [skip ci] Update to version 7.18.2 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index c00b8fb92..1a00550ef 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.18.1", + "version": "7.18.2", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 588db1f84..e0ea72f76 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.18.1'; +export default '7.18.2'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 594fa0a2b..858461961 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.18.1", + "version": "7.18.2", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 588db1f84..e0ea72f76 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.18.1'; +export default '7.18.2'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 2474c4337..cb9ece617 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.18.1", + "version": "7.18.2", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From fcbb40dfd57ae8aeab745a0ad43bee56abc056b2 Mon Sep 17 00:00:00 2001 From: GitHub Date: Thu, 15 Feb 2024 19:31:15 +0000 Subject: [PATCH 205/440] [skip ci] Generate changelog to version 7.18.2 --- CHANGELOG.md | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8e1f71e92..70407e7a0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog -## 7.18.1 +## 7.18.2 + +- [77329ce](https://github.com/AxaFrance/oidc-client/commit/77329ce52a5fc7278ff35ccd13ca572ff7ebbf4d) - fix(oidc-service-worker): bad request on many token request at the same time (#1300) (release), 2024-02-15 by *Guillaume Chervet* + + +## v7.18.1 - [0d13cc2](https://github.com/AxaFrance/oidc-client/commit/0d13cc28a8cc40c610d3943d33fe8a7d4e28c32f) - fix(oidc): unload user on logout (#1296) (release), 2024-02-13 by *Guillaume Chervet* @@ -313,9 +318,3 @@ - [60d9c4e](https://github.com/AxaFrance/oidc-client/commit/60d9c4e68622f81ecceaf480de21d4646ae909f1) - fix(oidc): clean link with service worker (#1141) (release), 2023-09-20 by *Guillaume Chervet* -## v7.5.0 - -- [ff7ac6a](https://github.com/AxaFrance/oidc-client/commit/ff7ac6ae7defbd84067b4084222430ef07f15713) - feat(oidc): add dpop (#1139) (release), 2023-09-19 by *Guillaume Chervet* -- [1980813](https://github.com/AxaFrance/oidc-client/commit/1980813234a63e13353b8e5623982e714b42ac12) - feat(demo): hack iframe unregister serviceworker (#1137), 2023-09-14 by *Guillaume Chervet* - - From 8eb75d3f2036708d9c3067a2973a4d685d8b4923 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Thu, 15 Feb 2024 20:55:03 +0100 Subject: [PATCH 206/440] fix(oidc): logout continue to run before redirecting (#1301) (release) --- packages/oidc-client/src/location.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/oidc-client/src/location.ts b/packages/oidc-client/src/location.ts index 351d262ea..64125a3d7 100644 --- a/packages/oidc-client/src/location.ts +++ b/packages/oidc-client/src/location.ts @@ -9,7 +9,7 @@ export interface ILOidcLocation { export class OidcLocation implements ILOidcLocation { open(url:string) { - window.open(url, '_self'); + window.location.href = url; } reload() { From c8157ff629da85e8bf33c3ad6d6165fc53c2107a Mon Sep 17 00:00:00 2001 From: GitHub Date: Thu, 15 Feb 2024 19:57:41 +0000 Subject: [PATCH 207/440] [skip ci] Update to version 7.18.3 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 1a00550ef..f62dfb1ab 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.18.2", + "version": "7.18.3", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index e0ea72f76..da9ea0019 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.18.2'; +export default '7.18.3'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 858461961..80652dd27 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.18.2", + "version": "7.18.3", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index e0ea72f76..da9ea0019 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.18.2'; +export default '7.18.3'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index cb9ece617..31f4df8b8 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.18.2", + "version": "7.18.3", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 1d4be7725aee9197f4031dad902535315ce21021 Mon Sep 17 00:00:00 2001 From: GitHub Date: Thu, 15 Feb 2024 19:57:42 +0000 Subject: [PATCH 208/440] [skip ci] Generate changelog to version 7.18.3 --- CHANGELOG.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 70407e7a0..ad105fd84 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog -## 7.18.2 +## 7.18.3 + +- [8eb75d3](https://github.com/AxaFrance/oidc-client/commit/8eb75d3f2036708d9c3067a2973a4d685d8b4923) - fix(oidc): logout continue to run before redirecting (#1301) (release), 2024-02-15 by *Guillaume Chervet* + + +## v7.18.2 - [77329ce](https://github.com/AxaFrance/oidc-client/commit/77329ce52a5fc7278ff35ccd13ca572ff7ebbf4d) - fix(oidc-service-worker): bad request on many token request at the same time (#1300) (release), 2024-02-15 by *Guillaume Chervet* @@ -313,8 +318,3 @@ - [3e0e554](https://github.com/AxaFrance/oidc-client/commit/3e0e5546ec756b4a9ddad695e4e2368c5721175f) - feat(service-worker): add to trusted type (#1142) (release), 2023-09-21 by *Guillaume Chervet* -## v7.5.1 - -- [60d9c4e](https://github.com/AxaFrance/oidc-client/commit/60d9c4e68622f81ecceaf480de21d4646ae909f1) - fix(oidc): clean link with service worker (#1141) (release), 2023-09-20 by *Guillaume Chervet* - - From b4e5ec834bdfedf8975b79086c2c0144f4e6e9b1 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Sat, 17 Feb 2024 15:51:25 +0100 Subject: [PATCH 209/440] fix(oidc-service-worker): set Bearer as default (release) --- .../oidc-client-service-worker/src/OidcServiceWorker.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/oidc-client-service-worker/src/OidcServiceWorker.ts b/packages/oidc-client-service-worker/src/OidcServiceWorker.ts index cb963cdf6..5363cc226 100644 --- a/packages/oidc-client-service-worker/src/OidcServiceWorker.ts +++ b/packages/oidc-client-service-worker/src/OidcServiceWorker.ts @@ -137,14 +137,14 @@ const handleFetch = async (event: FetchEvent) => { } else { const authorization = originalRequest.headers.get('authorization'); - if (!authorization ) { - throw new Error('No authorization header'); + let authenticationMode = "Bearer" + if (authorization ) { + authenticationMode = authorization.split(" ")[0]; } - const authentificationMode = authorization.split(" ")[0]; headers = { ...serializeHeaders(originalRequest.headers), authorization: - authentificationMode + ' ' + currentDatabaseForRequestAccessToken.tokens.access_token, + authenticationMode + ' ' + currentDatabaseForRequestAccessToken.tokens.access_token, }; } let init: RequestInit; From fff59c738c81419e66c6646ed1e5e5180cb4becc Mon Sep 17 00:00:00 2001 From: GitHub Date: Sat, 17 Feb 2024 14:55:42 +0000 Subject: [PATCH 210/440] [skip ci] Update to version 7.18.4 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index f62dfb1ab..ac65d046b 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.18.3", + "version": "7.18.4", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index da9ea0019..2c6c25543 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.18.3'; +export default '7.18.4'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 80652dd27..9599f1289 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.18.3", + "version": "7.18.4", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index da9ea0019..2c6c25543 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.18.3'; +export default '7.18.4'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 31f4df8b8..e2ffa5f50 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.18.3", + "version": "7.18.4", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 0db232e0d8b88f76feb8f631af4022e7334c9085 Mon Sep 17 00:00:00 2001 From: GitHub Date: Sat, 17 Feb 2024 14:55:43 +0000 Subject: [PATCH 211/440] [skip ci] Generate changelog to version 7.18.4 --- CHANGELOG.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ad105fd84..6e37b74f6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog -## 7.18.3 +## 7.18.4 + +- [b4e5ec8](https://github.com/AxaFrance/oidc-client/commit/b4e5ec834bdfedf8975b79086c2c0144f4e6e9b1) - fix(oidc-service-worker): set Bearer as default (release), 2024-02-17 by *Guillaume Chervet* + + +## v7.18.3 - [8eb75d3](https://github.com/AxaFrance/oidc-client/commit/8eb75d3f2036708d9c3067a2973a4d685d8b4923) - fix(oidc): logout continue to run before redirecting (#1301) (release), 2024-02-15 by *Guillaume Chervet* @@ -313,8 +318,3 @@ - [8f24b11](https://github.com/AxaFrance/oidc-client/commit/8f24b119613fef5d7214826528bdb04c931a1986) - doc(faq): Update FAQ.md (#1151), 2023-10-13 by *Mateusz Popielarz* -## v7.6.0 - -- [3e0e554](https://github.com/AxaFrance/oidc-client/commit/3e0e5546ec756b4a9ddad695e4e2368c5721175f) - feat(service-worker): add to trusted type (#1142) (release), 2023-09-21 by *Guillaume Chervet* - - From 7a38d962b0e08837989a1d2affeb5e557dc09444 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Sun, 18 Feb 2024 15:23:53 +0100 Subject: [PATCH 212/440] fix(oidc): parse token with many _ or - (#1302) (release) --- .../src/utils/__tests__/tokens.spec.ts | 27 +++-- .../src/utils/tokens.ts | 2 +- packages/oidc-client/src/parseTokens.spec.ts | 101 ++++++++++-------- packages/oidc-client/src/parseTokens.ts | 2 +- 4 files changed, 79 insertions(+), 53 deletions(-) diff --git a/packages/oidc-client-service-worker/src/utils/__tests__/tokens.spec.ts b/packages/oidc-client-service-worker/src/utils/__tests__/tokens.spec.ts index d4853fd9d..b35b6ba6d 100644 --- a/packages/oidc-client-service-worker/src/utils/__tests__/tokens.spec.ts +++ b/packages/oidc-client-service-worker/src/utils/__tests__/tokens.spec.ts @@ -30,12 +30,9 @@ describe('tokens', () => { }); }); - describe('extractTokenPayload', () => { - - it('parseJwtShouldExtractData', async () => { - const claimsPart = "eyJzZXNzaW9uX3N0YXRlIjoiNzVjYzVlZDItZGYyZC00NTY5LWJmYzUtMThhOThlNjhiZTExIiwic2NvcGUiOiJvcGVuaWQgZW1haWwgcHJvZmlsZSIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJuYW1lIjoixrTHosOBw6zDhyDlsI_lkI0t44Ob44Or44OYIiwicHJlZmVycmVkX3VzZXJuYW1lIjoidGVzdGluZ2NoYXJhY3RlcnNAaW52ZW50ZWRtYWlsLmNvbSIsImdpdmVuX25hbWUiOiLGtMeiw4HDrMOHIiwiZmFtaWx5X25hbWUiOiLlsI_lkI0t44Ob44Or44OYIn0" - const result = parseJwt(claimsPart); - expect(result).toStrictEqual({ + describe.each([ + ["eyJzZXNzaW9uX3N0YXRlIjoiNzVjYzVlZDItZGYyZC00NTY5LWJmYzUtMThhOThlNjhiZTExIiwic2NvcGUiOiJvcGVuaWQgZW1haWwgcHJvZmlsZSIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJuYW1lIjoixrTHosOBw6zDhyDlsI_lkI0t44Ob44Or44OYIiwicHJlZmVycmVkX3VzZXJuYW1lIjoidGVzdGluZ2NoYXJhY3RlcnNAaW52ZW50ZWRtYWlsLmNvbSIsImdpdmVuX25hbWUiOiLGtMeiw4HDrMOHIiwiZmFtaWx5X25hbWUiOiLlsI_lkI0t44Ob44Or44OYIn0", + { "session_state": "75cc5ed2-df2d-4569-bfc5-18a98e68be11", "scope": "openid email profile", "email_verified": true, @@ -43,8 +40,24 @@ describe('tokens', () => { "preferred_username": "testingcharacters@inventedmail.com", "given_name": "ƴǢÁìÇ", "family_name": "小名-ホルヘ" - }); + }], + [ + "eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyLCI_IjoiYWE_In0", + { + "?": "aa?", + "iat": 1516239022, + "name": "John Doe", + "sub": "1234567890", + } + ] + ])('parseJwtShouldExtractData', (claimsPart, expectedResult) => { + it('should parseJwtShouldExtractData ', async () => { + const result = parseJwt(claimsPart); + expect(expectedResult).toStrictEqual(result); }); + }); + + describe('extractTokenPayload', () => { it('can extract token payload', () => { const result = extractTokenPayload( diff --git a/packages/oidc-client-service-worker/src/utils/tokens.ts b/packages/oidc-client-service-worker/src/utils/tokens.ts index 90c8ff693..e21933e55 100644 --- a/packages/oidc-client-service-worker/src/utils/tokens.ts +++ b/packages/oidc-client-service-worker/src/utils/tokens.ts @@ -12,7 +12,7 @@ import { countLetter } from './strings'; export const parseJwt = (payload: string) => { return JSON.parse( - b64DecodeUnicode(payload.replace(/-/g, '+').replace(/_/g, '/')), + b64DecodeUnicode(payload.replaceAll(/-/g, '+').replaceAll(/_/g, '/')), ); } function b64DecodeUnicode(str: string) { diff --git a/packages/oidc-client/src/parseTokens.spec.ts b/packages/oidc-client/src/parseTokens.spec.ts index 4d2c2e169..380f05d90 100644 --- a/packages/oidc-client/src/parseTokens.spec.ts +++ b/packages/oidc-client/src/parseTokens.spec.ts @@ -32,54 +32,67 @@ describe('ParseTokens test Suite', () => { }); }); - it('parseJwtShouldExtractData', async () => { - const claimsPart = "eyJzZXNzaW9uX3N0YXRlIjoiNzVjYzVlZDItZGYyZC00NTY5LWJmYzUtMThhOThlNjhiZTExIiwic2NvcGUiOiJvcGVuaWQgZW1haWwgcHJvZmlsZSIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJuYW1lIjoixrTHosOBw6zDhyDlsI_lkI0t44Ob44Or44OYIiwicHJlZmVycmVkX3VzZXJuYW1lIjoidGVzdGluZ2NoYXJhY3RlcnNAaW52ZW50ZWRtYWlsLmNvbSIsImdpdmVuX25hbWUiOiLGtMeiw4HDrMOHIiwiZmFtaWx5X25hbWUiOiLlsI_lkI0t44Ob44Or44OYIn0" - const result = parseJwt(claimsPart); - expect(result).toStrictEqual({ - "session_state": "75cc5ed2-df2d-4569-bfc5-18a98e68be11", - "scope": "openid email profile", - "email_verified": true, - "name": "ƴǢÁìÇ 小名-ホルヘ", - "preferred_username": "testingcharacters@inventedmail.com", - "given_name": "ƴǢÁìÇ", - "family_name": "小名-ホルヘ" + describe.each([ + ["eyJzZXNzaW9uX3N0YXRlIjoiNzVjYzVlZDItZGYyZC00NTY5LWJmYzUtMThhOThlNjhiZTExIiwic2NvcGUiOiJvcGVuaWQgZW1haWwgcHJvZmlsZSIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJuYW1lIjoixrTHosOBw6zDhyDlsI_lkI0t44Ob44Or44OYIiwicHJlZmVycmVkX3VzZXJuYW1lIjoidGVzdGluZ2NoYXJhY3RlcnNAaW52ZW50ZWRtYWlsLmNvbSIsImdpdmVuX25hbWUiOiLGtMeiw4HDrMOHIiwiZmFtaWx5X25hbWUiOiLlsI_lkI0t44Ob44Or44OYIn0", + { + "session_state": "75cc5ed2-df2d-4569-bfc5-18a98e68be11", + "scope": "openid email profile", + "email_verified": true, + "name": "ƴǢÁìÇ 小名-ホルヘ", + "preferred_username": "testingcharacters@inventedmail.com", + "given_name": "ƴǢÁìÇ", + "family_name": "小名-ホルヘ" + }], + [ + "eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyLCI_IjoiYWE_In0", + { + "?": "aa?", + "iat": 1516239022, + "name": "John Doe", + "sub": "1234567890", + } + ] + ])('parseJwtShouldExtractData', (claimsPart, expectedResult) => { + it('should parseJwtShouldExtractData ', async () => { + const result = parseJwt(claimsPart); + expect(expectedResult).toStrictEqual(result); }); }); - - const id_token ="eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IjUwNWZkODljLTM4YzktNGI2Mi04ZjQ3LWI4MGQ0ZTNhYjYxNSJ9.eyJpc3MiOiJodHRwOlwvXC9sb2NhbGhvc3Q6ODA4MCIsInN1YiI6ImFkbWluIiwiYXVkIjoiM2FTbk5XUGxZQWQwOGVES3c1UUNpSWVMcWpIdHkxTTVzSGFzcDJDZWREcWYzbmJkZm8xUFo1cXhmbWoyaFhkUyIsImV4cCI6MTY5MDk4NzQ1NCwiYXV0aF90aW1lIjoxNjkwOTg2NTUxLCJpYXQiOjE2OTA5ODY1NTQsImFjciI6IjAiLCJhenAiOiIzYVNuTldQbFlBZDA4ZURLdzVRQ2lJZUxxakh0eTFNNXNIYXNwMkNlZERxZjNuYmRmbzFQWjVxeGZtajJoWGRTIiwicHJlZmVycmVkX3VzZXJuYW1lIjoiYWRtaW4iLCJzY29wZSI6Im9wZW5pZCBwcm9maWxlIGdyb3VwcyBvZmZsaW5lX2FjY2VzcyIsIm5iZiI6MTY5MDk4NjU1NCwianRpIjoiNjMiLCJub25jZSI6ImNpQkVVOTdaVmRWVSIsImdyb3VwcyI6WyJhZG1pbiJdLCJuYW1lIjoiQWRtaW5pc3RyYXRvciIsInVwZGF0ZWRfYXQiOjE2OTA5ODY1NDV9.2MUdtQR_QtzDY9BTMctG8C4uvg92DgMIUUoJed2cI7WTd5_VEPFW87esDQLw4snVdAJM1_Wf3wB88B2MXFDMCnMTNn0TMnzetRDiG3xlr2LL-geL5SNgwD0Y6RPK_aITjrC9uiQCTj3LPEENrBulNRZPURwaVon9WUVNuuBmMTKd7QKEuFN0zYDoRs0HnXo6WKnFy1rldLGh_JpA3PBUuXt4VMjfGQ7yYEuNn7MkFVDX6OnTffR8jTQp74hREvuRLFjYxfgfgu547X7yIcboOl81D0ZQlP-gfvBOeypZolRLScuqAA3fHBYvE0vCtOM6ObekfeeTDfms75csMLUuZtTR07x32xYC8vdoFsY0sRpMByTqlhsae9VX_rETJ7PIWEfruojzcj47WN9dG0K3pdPiJHEwZ1CKgZfU_cY0gtuAGaIcIjKL0txXCevaiIiIsrgSU_HTjNVybp4WHSAs3h6x0XLz4_91luCylsaoMQbwKOQNwAfr2L74jF6DOg-8DIPb-WClRQzaQtrkx_iv6FtqCB3ogFoZwi6xljdYUc2EHUmoAo-LXal-QAgUXGGzfFU2YOpxV3RyAbMGPm7PfkMVzDsDJwORJNhh38QQ6o88GgNnV28BT-d2G0n7okc0QC6o2IW0jpyCrI6v0hWOBUX2EqiJ5Wao-4LYZfCaRgU"; - const refresh_token ="DEsqDca7nDGSgT6tJPkCwbPy98B8VOC4AA55lOPs03G3hqhZ8WH08REBcwTZg1s0jZyVoA3iCXzm4PPJ096gjV7ZKYyN8vnFKw6P6KLV3tUI6mWFaSROoh1LipThFrkS"; - const access_token ="opqavdgHEYx8nhCdc3iByd1HD0jiYN30LevhJy4f5wIavINXKdh4lQ9C3kA49QF0OH0XeA02"; - describe.each([ - [{ - "access_token":access_token, - "token_type":"Bearer", - "expires_in":"900", // Here a string instead of a number - "refresh_token":refresh_token, - "id_token":id_token - }], - [{ - "access_token":access_token, - "token_type":"Bearer", - "expires_in":900, - "refresh_token":refresh_token, - "id_token":id_token - }], - [{ - "access_token":access_token, - "token_type":"Bearer", - "expires_in":900, - "expiresAt": 1609987454, // Here expiresAt that come from Service Worker - "refresh_token":refresh_token, - "id_token":id_token - }], - ])('getValidTokenAsync', (tokens) => { - it('should parseOriginalTokens', async () => { - // @ts-ignore - const result = parseOriginalTokens(tokens); - expect(typeof result.issuedAt).toEqual("number"); + const id_token = "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IjUwNWZkODljLTM4YzktNGI2Mi04ZjQ3LWI4MGQ0ZTNhYjYxNSJ9.eyJpc3MiOiJodHRwOlwvXC9sb2NhbGhvc3Q6ODA4MCIsInN1YiI6ImFkbWluIiwiYXVkIjoiM2FTbk5XUGxZQWQwOGVES3c1UUNpSWVMcWpIdHkxTTVzSGFzcDJDZWREcWYzbmJkZm8xUFo1cXhmbWoyaFhkUyIsImV4cCI6MTY5MDk4NzQ1NCwiYXV0aF90aW1lIjoxNjkwOTg2NTUxLCJpYXQiOjE2OTA5ODY1NTQsImFjciI6IjAiLCJhenAiOiIzYVNuTldQbFlBZDA4ZURLdzVRQ2lJZUxxakh0eTFNNXNIYXNwMkNlZERxZjNuYmRmbzFQWjVxeGZtajJoWGRTIiwicHJlZmVycmVkX3VzZXJuYW1lIjoiYWRtaW4iLCJzY29wZSI6Im9wZW5pZCBwcm9maWxlIGdyb3VwcyBvZmZsaW5lX2FjY2VzcyIsIm5iZiI6MTY5MDk4NjU1NCwianRpIjoiNjMiLCJub25jZSI6ImNpQkVVOTdaVmRWVSIsImdyb3VwcyI6WyJhZG1pbiJdLCJuYW1lIjoiQWRtaW5pc3RyYXRvciIsInVwZGF0ZWRfYXQiOjE2OTA5ODY1NDV9.2MUdtQR_QtzDY9BTMctG8C4uvg92DgMIUUoJed2cI7WTd5_VEPFW87esDQLw4snVdAJM1_Wf3wB88B2MXFDMCnMTNn0TMnzetRDiG3xlr2LL-geL5SNgwD0Y6RPK_aITjrC9uiQCTj3LPEENrBulNRZPURwaVon9WUVNuuBmMTKd7QKEuFN0zYDoRs0HnXo6WKnFy1rldLGh_JpA3PBUuXt4VMjfGQ7yYEuNn7MkFVDX6OnTffR8jTQp74hREvuRLFjYxfgfgu547X7yIcboOl81D0ZQlP-gfvBOeypZolRLScuqAA3fHBYvE0vCtOM6ObekfeeTDfms75csMLUuZtTR07x32xYC8vdoFsY0sRpMByTqlhsae9VX_rETJ7PIWEfruojzcj47WN9dG0K3pdPiJHEwZ1CKgZfU_cY0gtuAGaIcIjKL0txXCevaiIiIsrgSU_HTjNVybp4WHSAs3h6x0XLz4_91luCylsaoMQbwKOQNwAfr2L74jF6DOg-8DIPb-WClRQzaQtrkx_iv6FtqCB3ogFoZwi6xljdYUc2EHUmoAo-LXal-QAgUXGGzfFU2YOpxV3RyAbMGPm7PfkMVzDsDJwORJNhh38QQ6o88GgNnV28BT-d2G0n7okc0QC6o2IW0jpyCrI6v0hWOBUX2EqiJ5Wao-4LYZfCaRgU"; + const refresh_token = "DEsqDca7nDGSgT6tJPkCwbPy98B8VOC4AA55lOPs03G3hqhZ8WH08REBcwTZg1s0jZyVoA3iCXzm4PPJ096gjV7ZKYyN8vnFKw6P6KLV3tUI6mWFaSROoh1LipThFrkS"; + const access_token = "opqavdgHEYx8nhCdc3iByd1HD0jiYN30LevhJy4f5wIavINXKdh4lQ9C3kA49QF0OH0XeA02"; + describe.each([ + [{ + "access_token": access_token, + "token_type": "Bearer", + "expires_in": "900", // Here a string instead of a number + "refresh_token": refresh_token, + "id_token": id_token + }], + [{ + "access_token": access_token, + "token_type": "Bearer", + "expires_in": 900, + "refresh_token": refresh_token, + "id_token": id_token + }], + [{ + "access_token": access_token, + "token_type": "Bearer", + "expires_in": 900, + "expiresAt": 1609987454, // Here expiresAt that come from Service Worker + "refresh_token": refresh_token, + "id_token": id_token + }], + ])('getValidTokenAsync', (tokens) => { + it('should parseOriginalTokens', async () => { + // @ts-ignore + const result = parseOriginalTokens(tokens); + expect(typeof result.issuedAt).toEqual("number"); + }); }); - }); + const idTokenPayload = {iss: "toto", exp: currentTimeUnixSecond +900, iat: currentTimeUnixSecond -900, nonce: "nonce"}; const oidcServerConfiguration = {issuer:"toto"}; diff --git a/packages/oidc-client/src/parseTokens.ts b/packages/oidc-client/src/parseTokens.ts index 0d745320d..eec9e2ba1 100644 --- a/packages/oidc-client/src/parseTokens.ts +++ b/packages/oidc-client/src/parseTokens.ts @@ -2,7 +2,7 @@ import {sleepAsync} from './initWorker.js'; const b64DecodeUnicode = (str) => decodeURIComponent(Array.prototype.map.call(atob(str), (c) => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)).join('')); -export const parseJwt = (payload:string) => JSON.parse(b64DecodeUnicode(payload.replace(/-/g, '+').replace(/_/g, '/'))); +export const parseJwt = (payload:string) => JSON.parse(b64DecodeUnicode(payload.replaceAll(/-/g, '+').replaceAll(/_/g, '/'))); const extractTokenPayload = (token:string) => { try { From ef5c88d7d4bc76bfb4e4a529e6532462ffe59300 Mon Sep 17 00:00:00 2001 From: GitHub Date: Sun, 18 Feb 2024 14:26:27 +0000 Subject: [PATCH 213/440] [skip ci] Update to version 7.18.5 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index ac65d046b..e62812372 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.18.4", + "version": "7.18.5", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 2c6c25543..0f26aa82b 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.18.4'; +export default '7.18.5'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 9599f1289..b9fe0e43c 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.18.4", + "version": "7.18.5", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 2c6c25543..0f26aa82b 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.18.4'; +export default '7.18.5'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index e2ffa5f50..fae25626d 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.18.4", + "version": "7.18.5", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 3a145799098bbc64f7619a217f9854795becc50b Mon Sep 17 00:00:00 2001 From: GitHub Date: Sun, 18 Feb 2024 14:26:29 +0000 Subject: [PATCH 214/440] [skip ci] Generate changelog to version 7.18.5 --- CHANGELOG.md | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6e37b74f6..5f741c9d4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog -## 7.18.4 +## 7.18.5 + +- [7a38d96](https://github.com/AxaFrance/oidc-client/commit/7a38d962b0e08837989a1d2affeb5e557dc09444) - fix(oidc): parse token with many _ or - (#1302) (release), 2024-02-18 by *Guillaume Chervet* + + +## v7.18.4 - [b4e5ec8](https://github.com/AxaFrance/oidc-client/commit/b4e5ec834bdfedf8975b79086c2c0144f4e6e9b1) - fix(oidc-service-worker): set Bearer as default (release), 2024-02-17 by *Guillaume Chervet* @@ -312,9 +317,3 @@ - [07d266b](https://github.com/AxaFrance/oidc-client/commit/07d266b32b275038176a407036a338624d2bed47) - build(npm): bump next from 13.4.12 to 13.5.6 (#1158), 2023-10-25 by *dependabot[bot]* -## v7.7.0 - -- [ec5ba27](https://github.com/AxaFrance/oidc-client/commit/ec5ba27f463c513e4d476621f684d0dcccd34470) - feat(oidc): make location injectable (release) (#1155), 2023-10-19 by *Guillaume Chervet* -- [8f24b11](https://github.com/AxaFrance/oidc-client/commit/8f24b119613fef5d7214826528bdb04c931a1986) - doc(faq): Update FAQ.md (#1151), 2023-10-13 by *Mateusz Popielarz* - - From 4a5887f5e7b3d739d709c7bb4fb7a007ccb051a1 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Mon, 19 Feb 2024 20:55:27 +0100 Subject: [PATCH 215/440] fix(oidc-service-worker): remove sw unecessary log --- packages/oidc-client-service-worker/src/OidcServiceWorker.ts | 3 --- packages/oidc-client/src/initWorker.ts | 2 +- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/packages/oidc-client-service-worker/src/OidcServiceWorker.ts b/packages/oidc-client-service-worker/src/OidcServiceWorker.ts index 5363cc226..26eef6755 100644 --- a/packages/oidc-client-service-worker/src/OidcServiceWorker.ts +++ b/packages/oidc-client-service-worker/src/OidcServiceWorker.ts @@ -347,7 +347,6 @@ const handleMessage = (event: ExtendableMessageEvent) => { trustedDomains[configurationName] = []; } } - console.log('[OidcServiceWorker] handleMessage', data.type); switch (data.type) { case 'clear': currentDatabase.tokens = null; @@ -488,8 +487,6 @@ const handleMessage = (event: ExtendableMessageEvent) => { } default: { return; - // currentDatabase.items = { ...data.data }; - // port.postMessage({ configurationName }); } } }; diff --git a/packages/oidc-client/src/initWorker.ts b/packages/oidc-client/src/initWorker.ts index 8a5d7d9ab..a48ce4011 100644 --- a/packages/oidc-client/src/initWorker.ts +++ b/packages/oidc-client/src/initWorker.ts @@ -173,7 +173,7 @@ export const initWorkerAsync = async(configuration, configurationName) => { const setDemonstratingProofOfPossessionJwkAsync = async (demonstratingProofOfPossessionJwk:JsonWebKey) => { const demonstratingProofOfPossessionJwkJson = JSON.stringify(demonstratingProofOfPossessionJwk); - sendMessageAsync(registration)({ type: 'setDemonstratingProofOfPossessionJwk', data: { demonstratingProofOfPossessionJwkJson }, configurationName }); + await sendMessageAsync(registration)({ type: 'setDemonstratingProofOfPossessionJwk', data: { demonstratingProofOfPossessionJwkJson }, configurationName }); }; const getDemonstratingProofOfPossessionJwkAsync = async () => { From 8f3940c42ad62264abfd61690777b602e0bdc31a Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Thu, 22 Feb 2024 21:36:01 +0100 Subject: [PATCH 216/440] feat(oidc): dpop inside serviceworker (#1306) (release) * feat(oidc): dpop inside serviceworker * test * update * update * update * update --- .../public/OidcTrustedDomains.js | 4 +- .../public/staticwebapp.config.json | 9 + examples/react-oidc-demo/src/Home.tsx | 8 +- examples/react-oidc-demo/vite.config.js | 2 +- .../src/OidcServiceWorker.ts | 65 +++-- .../oidc-client-service-worker/src/crypto.ts | 20 ++ .../oidc-client-service-worker/src/dpop.ts | 22 ++ .../oidc-client-service-worker/src/jwt.ts | 267 ++++++++++++++++++ .../oidc-client-service-worker/src/types.ts | 12 + .../src/utils/__tests__/domains.spec.ts | 1 + .../src/utils/__tests__/testHelper.ts | 2 + .../src/utils/__tests__/tokens.spec.ts | 2 +- .../src/utils/domains.ts | 2 + .../src/utils/tokens.ts | 17 +- packages/oidc-client/README.md | 26 +- packages/oidc-client/src/jwt.ts | 26 +- packages/oidc-client/src/login.ts | 6 +- packages/oidc-client/src/oidc.ts | 18 +- packages/react-oidc/README.md | 24 +- 19 files changed, 474 insertions(+), 59 deletions(-) create mode 100644 packages/oidc-client-service-worker/src/crypto.ts create mode 100644 packages/oidc-client-service-worker/src/dpop.ts create mode 100644 packages/oidc-client-service-worker/src/jwt.ts diff --git a/examples/react-oidc-demo/public/OidcTrustedDomains.js b/examples/react-oidc-demo/public/OidcTrustedDomains.js index 416c4626a..e7b4ee1c1 100644 --- a/examples/react-oidc-demo/public/OidcTrustedDomains.js +++ b/examples/react-oidc-demo/public/OidcTrustedDomains.js @@ -22,5 +22,7 @@ trustedDomains.config_separate_oidc_access_token_domains = { accessTokenDomains: ["https://myapi"] }; -trustedDomains.config_with_dpop = { domains: ["https://demo.duendesoftware.com"], showAccessToken: true }; +trustedDomains.config_with_dpop = { + domains: ["https://demo.duendesoftware.com"], + demonstratingProofOfPossession: true }; //# sourceMappingURL=OidcTrustedDomains.js.map \ No newline at end of file diff --git a/examples/react-oidc-demo/public/staticwebapp.config.json b/examples/react-oidc-demo/public/staticwebapp.config.json index ba338eae6..5877917f4 100644 --- a/examples/react-oidc-demo/public/staticwebapp.config.json +++ b/examples/react-oidc-demo/public/staticwebapp.config.json @@ -2,5 +2,14 @@ "navigationFallback": { "rewrite": "index.html", "exclude": ["*.{svg,png,jpg,gif}","*.{css,scss}","*.js"] + }, + "globalHeaders": { + "content-security-policy": "script-src 'self'", + "Access-Control-Allow-Origin": "*", + "X-Frame-Options": "SAMEORIGIN", + "X-Permitted-Cross-Domain-Policies": "none", + "Referrer-Policy":"no-referrer", + "X-Content-Type-Options": "nosniff", + "Permissions-Policy": "autoplay=()" } } \ No newline at end of file diff --git a/examples/react-oidc-demo/src/Home.tsx b/examples/react-oidc-demo/src/Home.tsx index 118e9b7ee..b8c035158 100644 --- a/examples/react-oidc-demo/src/Home.tsx +++ b/examples/react-oidc-demo/src/Home.tsx @@ -3,12 +3,12 @@ import React, {useEffect} from 'react'; import {useNavigate} from "react-router-dom"; -/*const createIframeHack =() => { + const createIframeHack =() => { const iframe = document.createElement('iframe'); const html = 'Foo'; iframe.srcdoc = html; document.body.appendChild(iframe); -}*/ +} export const Home = () => { const { login, logout, renewTokens, isAuthenticated } = useOidc(); @@ -18,9 +18,9 @@ export const Home = () => { navigate("/profile"); }; - /*useEffect(() => { + useEffect(() => { createIframeHack(); - }, []);*/ + }, []); return ( diff --git a/examples/react-oidc-demo/vite.config.js b/examples/react-oidc-demo/vite.config.js index 9fd73d00c..197494e22 100644 --- a/examples/react-oidc-demo/vite.config.js +++ b/examples/react-oidc-demo/vite.config.js @@ -12,7 +12,7 @@ export default defineConfig({ }, server: { headers: { - // "Content-Security-Policy": "script-src 'self' 'unsafe-inline';", + //"Content-Security-Policy": "script-src 'unsafe-inline' https://www.google-analitics.com;", }, }, }); diff --git a/packages/oidc-client-service-worker/src/OidcServiceWorker.ts b/packages/oidc-client-service-worker/src/OidcServiceWorker.ts index 26eef6755..22271eb52 100644 --- a/packages/oidc-client-service-worker/src/OidcServiceWorker.ts +++ b/packages/oidc-client-service-worker/src/OidcServiceWorker.ts @@ -17,6 +17,9 @@ import { import {extractConfigurationNameFromCodeVerifier, replaceCodeVerifier} from './utils/codeVerifier'; import { normalizeUrl } from './utils/normalizeUrl'; import version from './version'; +import {generateJwkAsync, generateJwtDemonstratingProofOfPossessionAsync} from "./jwt"; +import {getDpopConfiguration} from "./dpop"; +import {base64urlOfHashOfASCIIEncodingAsync} from "./crypto"; // @ts-ignore if (typeof trustedTypes !== 'undefined' && typeof trustedTypes.createPolicy == 'function') { @@ -92,6 +95,19 @@ const keepAliveAsync = async (event: FetchEvent) => { return response; }; +async function generateDpopAsync(originalRequest: Request, currentDatabase:OidcConfig|null, url: string, extrasClaims={} ) { + const headersExtras = serializeHeaders(originalRequest.headers); + if (currentDatabase && currentDatabase.demonstratingProofOfPossessionConfiguration && currentDatabase.demonstratingProofOfPossessionJwkJson) { + const dpopConfiguration = currentDatabase.demonstratingProofOfPossessionConfiguration; + const jwk = currentDatabase.demonstratingProofOfPossessionJwkJson; + headersExtras['dpop'] = await generateJwtDemonstratingProofOfPossessionAsync(self)(dpopConfiguration)(jwk, 'POST', url, extrasClaims); + if(currentDatabase.demonstratingProofOfPossessionNonce != null) { + headersExtras['nonce'] = currentDatabase.demonstratingProofOfPossessionNonce; + } + } + return headersExtras; +} + const handleFetch = async (event: FetchEvent) => { const originalRequest = event.request; const url = normalizeUrl(originalRequest.url); @@ -176,16 +192,18 @@ const handleFetch = async (event: FetchEvent) => { if (numberDatabase > 0) { const maPromesse = new Promise((resolve, reject) => { const clonedRequest = originalRequest.clone(); - const response = clonedRequest.text().then((actualBody) => { + const response = clonedRequest.text().then(async (actualBody) => { if ( actualBody.includes(TOKEN.REFRESH_TOKEN) || actualBody.includes(TOKEN.ACCESS_TOKEN) ) { + let headers = serializeHeaders(originalRequest.headers); let newBody = actualBody; for (let i = 0; i < numberDatabase; i++) { const currentDb = currentDatabases[i]; - if (currentDb && currentDb.tokens != null) { + const claimsExtras = {ath: await base64urlOfHashOfASCIIEncodingAsync(currentDb.tokens.access_token),}; + headers = await generateDpopAsync(originalRequest, currentDb, url, claimsExtras); const keyRefreshToken = TOKEN.REFRESH_TOKEN + '_' + currentDb.configurationName; if (actualBody.includes(keyRefreshToken)) { @@ -194,6 +212,7 @@ const handleFetch = async (event: FetchEvent) => { encodeURIComponent(currentDb.tokens.refresh_token as string), ); currentDatabase = currentDb; + break; } const keyAccessToken = @@ -208,11 +227,12 @@ const handleFetch = async (event: FetchEvent) => { } } } + const fetchPromise = fetch(originalRequest, { body: newBody, method: clonedRequest.method, headers: { - ...serializeHeaders(originalRequest.headers), + ...headers, }, mode: clonedRequest.mode, cache: clonedRequest.cache, @@ -254,12 +274,14 @@ const handleFetch = async (event: FetchEvent) => { currentDatabase.codeVerifier, ); } - + + const headersExtras = await generateDpopAsync(originalRequest, currentDatabase, url); + return fetch(originalRequest, { body: newBody, method: clonedRequest.method, headers: { - ...serializeHeaders(originalRequest.headers), + ...headersExtras, }, mode: clonedRequest.mode, cache: clonedRequest.cache, @@ -301,7 +323,7 @@ const handleFetch = async (event: FetchEvent) => { } }; -const handleMessage = (event: ExtendableMessageEvent) => { +const handleMessage = async (event: ExtendableMessageEvent) => { const port = event.ports[0]; const data = event.data as MessageEventData; if (event.data.type === 'claim') { @@ -340,6 +362,7 @@ const handleMessage = (event: ExtendableMessageEvent) => { convertAllRequestsToCorsExceptNavigate ?? false, demonstratingProofOfPossessionNonce: null, demonstratingProofOfPossessionJwkJson: null, + demonstratingProofOfPossessionConfiguration: null, }; currentDatabase = database[configurationName]; @@ -347,11 +370,15 @@ const handleMessage = (event: ExtendableMessageEvent) => { trustedDomains[configurationName] = []; } } + switch (data.type) { case 'clear': currentDatabase.tokens = null; currentDatabase.state = null; currentDatabase.codeVerifier = null; + currentDatabase.demonstratingProofOfPossessionNonce = null; + currentDatabase.demonstratingProofOfPossessionJwkJson = null; + currentDatabase.demonstratingProofOfPossessionConfiguration = null; currentDatabase.status = data.data.status; port.postMessage({ configurationName }); return; @@ -372,6 +399,17 @@ const handleMessage = (event: ExtendableMessageEvent) => { currentDatabase.oidcServerConfiguration = oidcServerConfiguration; currentDatabase.oidcConfiguration = data.data.oidcConfiguration; + if(currentDatabase.demonstratingProofOfPossessionConfiguration == null ){ + const demonstratingProofOfPossessionConfiguration = getDpopConfiguration(trustedDomains[configurationName]); + if(demonstratingProofOfPossessionConfiguration != null){ + if(currentDatabase.oidcConfiguration.demonstrating_proof_of_possession){ + console.warn("In service worker, demonstrating_proof_of_possession must be configured from trustedDomains file") + } + currentDatabase.demonstratingProofOfPossessionConfiguration = demonstratingProofOfPossessionConfiguration; + currentDatabase.demonstratingProofOfPossessionJwkJson = await generateJwkAsync(self)(demonstratingProofOfPossessionConfiguration.generateKeyAlgorithm); + } + } + if (!currentDatabase.tokens) { port.postMessage({ tokens: null, @@ -421,21 +459,6 @@ const handleMessage = (event: ExtendableMessageEvent) => { }); return; } - case 'setDemonstratingProofOfPossessionJwk': { - currentDatabase.demonstratingProofOfPossessionJwkJson = - data.data.demonstratingProofOfPossessionJwkJson; - port.postMessage({ configurationName }); - return; - } - case 'getDemonstratingProofOfPossessionJwk': { - const demonstratingProofOfPossessionJwkJson = - currentDatabase.demonstratingProofOfPossessionJwkJson; - port.postMessage({ - configurationName, - demonstratingProofOfPossessionJwkJson, - }); - return; - } case 'setState': { currentDatabase.state = data.data.state; port.postMessage({ configurationName }); diff --git a/packages/oidc-client-service-worker/src/crypto.ts b/packages/oidc-client-service-worker/src/crypto.ts new file mode 100644 index 000000000..e68d89c9d --- /dev/null +++ b/packages/oidc-client-service-worker/src/crypto.ts @@ -0,0 +1,20 @@ +import {uint8ToUrlBase64} from "./jwt"; + + +export function textEncodeLite(str: string) { + const buf = new ArrayBuffer(str.length); + const bufView = new Uint8Array(buf); + + for (let i = 0; i < str.length; i++) { + bufView[i] = str.charCodeAt(i); + } + return bufView; +} + +export function base64urlOfHashOfASCIIEncodingAsync(code: string):Promise { + return new Promise((resolve, reject) => { + crypto.subtle.digest('SHA-256', textEncodeLite(code)).then(buffer => { + return resolve(uint8ToUrlBase64(new Uint8Array(buffer))); + }, error => reject(error)); + }); +} diff --git a/packages/oidc-client-service-worker/src/dpop.ts b/packages/oidc-client-service-worker/src/dpop.ts new file mode 100644 index 000000000..dfa516d1e --- /dev/null +++ b/packages/oidc-client-service-worker/src/dpop.ts @@ -0,0 +1,22 @@ +import {Domain, DomainDetails} from "./types.js"; +import {defaultDemonstratingProofOfPossessionConfiguration} from "./jwt"; + +const isDpop= (trustedDomain: Domain[] | DomainDetails) : boolean => { + if (Array.isArray(trustedDomain)) { + return false; + } + return trustedDomain.demonstratingProofOfPossession ?? false; +} + +export const getDpopConfiguration = (trustedDomain: Domain[] | DomainDetails) => { + + if(!isDpop(trustedDomain)) { + return null; + } + + if (Array.isArray(trustedDomain)) { + return null; + } + + return trustedDomain.demonstratingProofOfPossessionConfiguration ?? defaultDemonstratingProofOfPossessionConfiguration; +} \ No newline at end of file diff --git a/packages/oidc-client-service-worker/src/jwt.ts b/packages/oidc-client-service-worker/src/jwt.ts new file mode 100644 index 000000000..ef7665f19 --- /dev/null +++ b/packages/oidc-client-service-worker/src/jwt.ts @@ -0,0 +1,267 @@ +// code base on https://coolaj86.com/articles/sign-jwt-webcrypto-vanilla-js/ + +// String (UCS-2) to Uint8Array +// +// because... JavaScript, Strings, and Buffers +// @ts-ignore +import {DemonstratingProofOfPossessionConfiguration} from "./types"; + +function strToUint8(str:string) { + return new TextEncoder().encode(str); +} + +// Binary String to URL-Safe Base64 +// +// btoa (Binary-to-Ascii) means "binary string" to base64 +// @ts-ignore +function binToUrlBase64(bin) { + return btoa(bin) + .replace(/\+/g, '-') + .replace(/\//g, '_') + .replace(/=+/g, ''); +} + +// UTF-8 to Binary String +// +// Because JavaScript has a strange relationship with strings +// https://coolaj86.com/articles/base64-unicode-utf-8-javascript-and-you/ +// @ts-ignore +function utf8ToBinaryString(str) { + const escstr = encodeURIComponent(str); + // replaces any uri escape sequence, such as %0A, + // with binary escape, such as 0x0A + // @ts-ignore + return escstr.replace(/%([0-9A-F]{2})/g, function (match:string, p1) { + return String.fromCharCode(parseInt(p1, 16)); + }); +} + +// Uint8Array to URL Safe Base64 +// +// the shortest distant between two encodings... binary string +// @ts-ignore +export const uint8ToUrlBase64 =(uint8: Uint8Array) => { + let bin = ''; + // @ts-ignore + uint8.forEach(function(code) { + bin += String.fromCharCode(code); + }); + return binToUrlBase64(bin); +} + +// UCS-2 String to URL-Safe Base64 +// +// btoa doesn't work on UTF-8 strings +// @ts-ignore +function strToUrlBase64(str) { + return binToUrlBase64(utf8ToBinaryString(str)); +} + +export const defaultDemonstratingProofOfPossessionConfiguration: DemonstratingProofOfPossessionConfiguration ={ + importKeyAlgorithm: { + name: 'ECDSA', + namedCurve: 'P-256', + hash: {name: 'ES256'} + }, + signAlgorithm: {name: 'ECDSA', hash: {name: 'SHA-256'}}, + generateKeyAlgorithm: { + name: 'ECDSA', + namedCurve: 'P-256' + }, + digestAlgorithm: { name: 'SHA-256' }, + jwtHeaderAlgorithm : 'ES256' +} + + +// @ts-ignore +const sign = (w:any) => async (jwk, headers, claims, demonstratingProofOfPossessionConfiguration: DemonstratingProofOfPossessionConfiguration, jwtHeaderType= 'dpop+jwt') => { + // Make a shallow copy of the key + // (to set ext if it wasn't already set) + jwk = Object.assign({}, jwk); + + // The headers should probably be empty + headers.typ = jwtHeaderType; + headers.alg = demonstratingProofOfPossessionConfiguration.jwtHeaderAlgorithm; + switch (headers.alg) { + case 'ES256': //if (!headers.kid) { + // alternate: see thumbprint function below + headers.jwk = {kty: jwk.kty, crv: jwk.crv, x: jwk.x, y: jwk.y}; + //} + break; + case 'RS256': + headers.jwk = {kty: jwk.kty, n: jwk.n, e: jwk.e, kid: headers.kid}; + break; + default: + throw new Error('Unknown or not implemented JWS algorithm'); + } + + const jws = { + // @ts-ignore + // JWT "headers" really means JWS "protected headers" + protected: strToUrlBase64(JSON.stringify(headers)), + // @ts-ignore + // JWT "claims" are really a JSON-defined JWS "payload" + payload: strToUrlBase64(JSON.stringify(claims)) + }; + + // To import as EC (ECDSA, P-256, SHA-256, ES256) + const keyType = demonstratingProofOfPossessionConfiguration.importKeyAlgorithm; + + // To make re-exportable as JSON (or DER/PEM) + const exportable = true; + + // Import as a private key that isn't black-listed from signing + const privileges = ['sign']; + + // Actually do the import, which comes out as an abstract key type + // @ts-ignore + const privateKey = await w.crypto.subtle.importKey('jwk', jwk, keyType, exportable, privileges); + // Convert UTF-8 to Uint8Array ArrayBuffer + // @ts-ignore + const data = strToUint8(`${jws.protected}.${jws.payload}`); + + // The signature and hash should match the bit-entropy of the key + // https://tools.ietf.org/html/rfc7518#section-3 + const signatureType = demonstratingProofOfPossessionConfiguration.signAlgorithm; + + const signature = await w.crypto.subtle.sign(signatureType, privateKey, data); + // returns an ArrayBuffer containing a JOSE (not X509) signature, + // which must be converted to Uint8 to be useful + // @ts-ignore + jws.signature = uint8ToUrlBase64(new Uint8Array(signature)); + // JWT is just a "compressed", "protected" JWS + // @ts-ignore + return `${jws.protected}.${jws.payload}.${jws.signature}`; +}; + +export var JWT = {sign}; + + +// @ts-ignore +const generate = (w:any) => async (generateKeyAlgorithm: RsaHashedKeyGenParams | EcKeyGenParams) => { + const keyType = generateKeyAlgorithm; + const exportable = true; + const privileges = ['sign', 'verify']; + // @ts-ignore + const key = await w.crypto.subtle.generateKey(keyType, exportable, privileges); + // returns an abstract and opaque WebCrypto object, + // which in most cases you'll want to export as JSON to be able to save + return await w.crypto.subtle.exportKey('jwk', key.privateKey); +}; + +// Create a Public Key from a Private Key +// +// chops off the private parts +// @ts-ignore +const neuter = jwk => { + const copy = Object.assign({}, jwk); + delete copy.d; + copy.key_ops = ['verify']; + return copy; +}; + +const EC = { + generate, + neuter +}; +// @ts-ignore +const thumbprint = (w:any) => async (jwk, digestAlgorithm: AlgorithmIdentifier) => { + let sortedPub; + // lexigraphically sorted, no spaces + switch (jwk.kty) { + case 'EC': + sortedPub = '{"crv":"CRV","kty":"EC","x":"X","y":"Y"}' + .replace('CRV', jwk.crv) + .replace('X', jwk.x) + .replace('Y', jwk.y); + break; + case 'RSA': + sortedPub = '{"e":"E","kty":"RSA","n":"N"}' + .replace('E', jwk.e) + .replace('N', jwk.n); + break; + default: + throw new Error('Unknown or not implemented JWK type'); + } + // The hash should match the size of the key, + // but we're only dealing with P-256 + const hash = await w.crypto.subtle.digest(digestAlgorithm, strToUint8(sortedPub)); + return uint8ToUrlBase64(new Uint8Array(hash)); +} + +export var JWK = {thumbprint}; + +export const generateJwkAsync = (w:any) => async (generateKeyAlgorithm: RsaHashedKeyGenParams | EcKeyGenParams) => { + // @ts-ignore + const jwk = await EC.generate(w)(generateKeyAlgorithm); + // console.info('Private Key:', JSON.stringify(jwk)); + // @ts-ignore + // console.info('Public Key:', JSON.stringify(EC.neuter(jwk))); + return jwk; +} + +export const generateJwtDemonstratingProofOfPossessionAsync = (w:any) => (demonstratingProofOfPossessionConfiguration: DemonstratingProofOfPossessionConfiguration) => async (jwk:any, method = 'POST', url: string, extrasClaims={}) => { + + const claims = { + // https://www.rfc-editor.org/rfc/rfc9449.html#name-concept + jti: btoa(guid()), + htm: method, + htu: url, + iat: Math.round(Date.now() / 1000), + ...extrasClaims, + }; + // @ts-ignore + const kid = await JWK.thumbprint(w)(jwk, demonstratingProofOfPossessionConfiguration.digestAlgorithm); + // @ts-ignore + const jwt = await JWT.sign(w)(jwk, { kid: kid }, claims, demonstratingProofOfPossessionConfiguration) + // console.info('JWT:', jwt); + return jwt; +} + +const guid = () => { + // RFC4122: The version 4 UUID is meant for generating UUIDs from truly-random or + // pseudo-random numbers. + // The algorithm is as follows: + // Set the two most significant bits (bits 6 and 7) of the + // clock_seq_hi_and_reserved to zero and one, respectively. + // Set the four most significant bits (bits 12 through 15) of the + // time_hi_and_version field to the 4-bit version number from + // Section 4.1.3. Version4 + // Set all the other bits to randomly (or pseudo-randomly) chosen + // values. + // UUID = time-low "-" time-mid "-"time-high-and-version "-"clock-seq-reserved and low(2hexOctet)"-" node + // time-low = 4hexOctet + // time-mid = 2hexOctet + // time-high-and-version = 2hexOctet + // clock-seq-and-reserved = hexOctet: + // clock-seq-low = hexOctet + // node = 6hexOctet + // Format: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx + // y could be 1000, 1001, 1010, 1011 since most significant two bits needs to be 10 + // y values are 8, 9, A, B + const guidHolder = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'; + const hex = '0123456789abcdef'; + let r = 0; + let guidResponse = ""; + for (let i = 0; i < 36; i++) { + if (guidHolder[i] !== '-' && guidHolder[i] !== '4') { + // each x and y needs to be random + r = Math.random() * 16 | 0; + } + + if (guidHolder[i] === 'x') { + guidResponse += hex[r]; + } else if (guidHolder[i] === 'y') { + // clock-seq-and-reserved first hex is filtered and remaining hex values are random + r &= 0x3; // bit and with 0011 to set pos 2 to zero ?0?? + r |= 0x8; // set pos 3 to 1 as 1??? + guidResponse += hex[r]; + } else { + guidResponse += guidHolder[i]; + } + } + + return guidResponse; +}; + + diff --git a/packages/oidc-client-service-worker/src/types.ts b/packages/oidc-client-service-worker/src/types.ts index d669b0b96..ef3244671 100644 --- a/packages/oidc-client-service-worker/src/types.ts +++ b/packages/oidc-client-service-worker/src/types.ts @@ -5,6 +5,16 @@ export type DomainDetails = { showAccessToken: boolean; convertAllRequestsToCorsExceptNavigate?: boolean, setAccessTokenToNavigateRequests?: boolean, + demonstratingProofOfPossession?:boolean; + demonstratingProofOfPossessionConfiguration?: DemonstratingProofOfPossessionConfiguration; +} + +export interface DemonstratingProofOfPossessionConfiguration { + generateKeyAlgorithm: RsaHashedKeyGenParams | EcKeyGenParams, + digestAlgorithm: AlgorithmIdentifier, + importKeyAlgorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, + signAlgorithm: AlgorithmIdentifier | RsaPssParams | EcdsaParams, + jwtHeaderAlgorithm: string } export type Domain = string | RegExp; @@ -23,6 +33,7 @@ export type OidcServerConfiguration = { export type OidcConfiguration = { token_renew_mode: string; + demonstrating_proof_of_possession: boolean; } // Uncertain why the Headers interface in lib.webworker.d.ts does not have a keys() function, so extending @@ -57,6 +68,7 @@ export type Nonce = { } | null; export type OidcConfig = { + demonstratingProofOfPossessionConfiguration: DemonstratingProofOfPossessionConfiguration | null; configurationName: string; tokens: Tokens | null; status: Status; diff --git a/packages/oidc-client-service-worker/src/utils/__tests__/domains.spec.ts b/packages/oidc-client-service-worker/src/utils/__tests__/domains.spec.ts index 3ec9cc4bd..f2ab1e8fe 100644 --- a/packages/oidc-client-service-worker/src/utils/__tests__/domains.spec.ts +++ b/packages/oidc-client-service-worker/src/utils/__tests__/domains.spec.ts @@ -53,6 +53,7 @@ describe('domains', () => { setAccessTokenToNavigateRequests: true, demonstratingProofOfPossessionNonce: null, demonstratingProofOfPossessionJwkJson: null, + demonstratingProofOfPossessionConfiguration: null, }, }; }); diff --git a/packages/oidc-client-service-worker/src/utils/__tests__/testHelper.ts b/packages/oidc-client-service-worker/src/utils/__tests__/testHelper.ts index 39ce16af3..6e30e61e2 100644 --- a/packages/oidc-client-service-worker/src/utils/__tests__/testHelper.ts +++ b/packages/oidc-client-service-worker/src/utils/__tests__/testHelper.ts @@ -96,6 +96,7 @@ class TokenBuilder { class OidcConfigurationBuilder { private oidcConfiguration: OidcConfiguration = { token_renew_mode: 'offline', + demonstrating_proof_of_possession: false, }; public withTokenRenewMode( @@ -127,6 +128,7 @@ class OidcConfigBuilder { setAccessTokenToNavigateRequests: true, demonstratingProofOfPossessionNonce: null, demonstratingProofOfPossessionJwkJson: null, + demonstratingProofOfPossessionConfiguration: null, }; public withTestingDefault(): OidcConfigBuilder { diff --git a/packages/oidc-client-service-worker/src/utils/__tests__/tokens.spec.ts b/packages/oidc-client-service-worker/src/utils/__tests__/tokens.spec.ts index b35b6ba6d..72bf460a9 100644 --- a/packages/oidc-client-service-worker/src/utils/__tests__/tokens.spec.ts +++ b/packages/oidc-client-service-worker/src/utils/__tests__/tokens.spec.ts @@ -125,7 +125,7 @@ describe('tokens', () => { // @ts-ignore delete token.idTokenPayload; const oidcConfiguration = new OidcConfigBuilder() - .withOidcConfiguration({token_renew_mode: "access_token_invalid"}) + .withOidcConfiguration({token_renew_mode: "access_token_invalid", demonstrating_proof_of_possession: false}) .withOidcServerConfiguration({issuer: "", authorizationEndpoint:"", revocationEndpoint:"", diff --git a/packages/oidc-client-service-worker/src/utils/domains.ts b/packages/oidc-client-service-worker/src/utils/domains.ts index d811b2ea3..80533dc8c 100644 --- a/packages/oidc-client-service-worker/src/utils/domains.ts +++ b/packages/oidc-client-service-worker/src/utils/domains.ts @@ -36,6 +36,8 @@ export const getDomains = ( return trustedDomain[`${type}Domains`] ?? trustedDomain.domains ?? []; }; + + export const getCurrentDatabaseDomain = ( database: Database, url: string, diff --git a/packages/oidc-client-service-worker/src/utils/tokens.ts b/packages/oidc-client-service-worker/src/utils/tokens.ts index e21933e55..67c7296c5 100644 --- a/packages/oidc-client-service-worker/src/utils/tokens.ts +++ b/packages/oidc-client-service-worker/src/utils/tokens.ts @@ -1,5 +1,5 @@ /* eslint-disable simple-import-sort/exports */ -import { TOKEN, TokenRenewMode } from '../constants'; +import {TOKEN, TokenRenewMode} from '../constants'; import { AccessTokenPayload, IdTokenPayload, @@ -8,7 +8,7 @@ import { OidcServerConfiguration, Tokens } from '../types'; -import { countLetter } from './strings'; +import {countLetter} from './strings'; export const parseJwt = (payload: string) => { return JSON.parse( @@ -221,16 +221,27 @@ function _hideTokens(tokens: Tokens, currentDatabaseElement: OidcConfig, configu return secureTokens; } +const demonstratingProofOfPossessionNonceResponseHeader = "DPoP-Nonce"; function hideTokens(currentDatabaseElement: OidcConfig) { const configurationName = currentDatabaseElement.configurationName; return (response: Response) => { if (response.status !== 200) { return response; } + const newHeaders = new Headers(response.headers); + if( response.headers.has(demonstratingProofOfPossessionNonceResponseHeader)){ + currentDatabaseElement.demonstratingProofOfPossessionNonce = response.headers.get(demonstratingProofOfPossessionNonceResponseHeader); + newHeaders.delete(demonstratingProofOfPossessionNonceResponseHeader); + } + return response.json().then((tokens: Tokens) => { const secureTokens = _hideTokens(tokens, currentDatabaseElement, configurationName); const body = JSON.stringify(secureTokens); - return new Response(body, response); + return new Response(body, { + status: response.status, + statusText: response.statusText, + headers: newHeaders + }); }); }; } diff --git a/packages/oidc-client/README.md b/packages/oidc-client/README.md index 2cc14490b..be012d1a7 100644 --- a/packages/oidc-client/README.md +++ b/packages/oidc-client/README.md @@ -94,10 +94,32 @@ const trustedDomains = { trustedDomains.config_show_access_token = { oidcDomains :["https://demo.duendesoftware.com"], accessTokenDomains : ["https://www.myapi.com/users"], - showAccessToken: true, + showAccessToken: false, // convertAllRequestsToCorsExceptNavigate: false, // default value is false // setAccessTokenToNavigateRequests: true, // default value is true }; + +// DPoP (Demonstrating Proof of Possession) will be activated for the following domains +trustedDomains.config_with_dpop = { + domains: ["https://demo.duendesoftware.com"], + demonstratingProofOfPossession: true + // Optional, more details bellow + /*demonstratingProofOfPossessionConfiguration: { + importKeyAlgorithm: { + name: 'ECDSA', + namedCurve: 'P-256', + hash: {name: 'ES256'} + }, + signAlgorithm: {name: 'ECDSA', hash: {name: 'SHA-256'}}, + generateKeyAlgorithm: { + name: 'ECDSA', + namedCurve: 'P-256' + }, + digestAlgorithm: { name: 'SHA-256' }, + jwtHeaderAlgorithm : 'ES256' + }*/ +}; + ``` The code of the demo : @@ -113,7 +135,7 @@ export const configuration = { authority: 'https://demo.duendesoftware.com', service_worker_relative_url: '/OidcServiceWorker.js', // just comment that line to disable service worker mode service_worker_only: false, - demonstrating_proof_of_possession: false, // demonstrating proof of possession will work only if access_token is accessible from the client (This is because WebCrypto API is not available inside a Service Worker) + demonstrating_proof_of_possession: false, }; const href = window.location.href; diff --git a/packages/oidc-client/src/jwt.ts b/packages/oidc-client/src/jwt.ts index f65ec7b7e..4aadb41fe 100644 --- a/packages/oidc-client/src/jwt.ts +++ b/packages/oidc-client/src/jwt.ts @@ -73,7 +73,7 @@ export const defaultDemonstratingProofOfPossessionConfiguration: DemonstratingPr // @ts-ignore -const sign = async (jwk, headers, claims, demonstratingProofOfPossessionConfiguration: DemonstratingProofOfPossessionConfiguration, jwtHeaderType= 'dpop+jwt') => { +const sign = (w:any) => async (jwk, headers, claims, demonstratingProofOfPossessionConfiguration: DemonstratingProofOfPossessionConfiguration, jwtHeaderType= 'dpop+jwt') => { // Make a shallow copy of the key // (to set ext if it wasn't already set) jwk = Object.assign({}, jwk); @@ -114,7 +114,7 @@ const sign = async (jwk, headers, claims, demonstratingProofOfPossessionConfigur // Actually do the import, which comes out as an abstract key type // @ts-ignore - const privateKey = await window.crypto.subtle.importKey('jwk', jwk, keyType, exportable, privileges); + const privateKey = await w.crypto.subtle.importKey('jwk', jwk, keyType, exportable, privileges); // Convert UTF-8 to Uint8Array ArrayBuffer // @ts-ignore const data = strToUint8(`${jws.protected}.${jws.payload}`); @@ -123,7 +123,7 @@ const sign = async (jwk, headers, claims, demonstratingProofOfPossessionConfigur // https://tools.ietf.org/html/rfc7518#section-3 const signatureType = demonstratingProofOfPossessionConfiguration.signAlgorithm; - const signature = await window.crypto.subtle.sign(signatureType, privateKey, data); + const signature = await w.crypto.subtle.sign(signatureType, privateKey, data); // returns an ArrayBuffer containing a JOSE (not X509) signature, // which must be converted to Uint8 to be useful // @ts-ignore @@ -137,15 +137,15 @@ export var JWT = {sign}; // @ts-ignore -const generate = async (generateKeyAlgorithm: RsaHashedKeyGenParams | EcKeyGenParams) => { +const generate = (w:any) => async (generateKeyAlgorithm: RsaHashedKeyGenParams | EcKeyGenParams) => { const keyType = generateKeyAlgorithm; const exportable = true; const privileges = ['sign', 'verify']; // @ts-ignore - const key = await window.crypto.subtle.generateKey(keyType, exportable, privileges); + const key = await w.crypto.subtle.generateKey(keyType, exportable, privileges); // returns an abstract and opaque WebCrypto object, // which in most cases you'll want to export as JSON to be able to save - return await window.crypto.subtle.exportKey('jwk', key.privateKey); + return await w.crypto.subtle.exportKey('jwk', key.privateKey); }; // Create a Public Key from a Private Key @@ -164,7 +164,7 @@ const EC = { neuter }; // @ts-ignore -const thumbprint = async (jwk, digestAlgorithm: AlgorithmIdentifier) => { +const thumbprint = (w:any) => async (jwk, digestAlgorithm: AlgorithmIdentifier) => { let sortedPub; // lexigraphically sorted, no spaces switch (jwk.kty) { @@ -184,22 +184,22 @@ const thumbprint = async (jwk, digestAlgorithm: AlgorithmIdentifier) => { } // The hash should match the size of the key, // but we're only dealing with P-256 - const hash = await window.crypto.subtle.digest(digestAlgorithm, strToUint8(sortedPub)); + const hash = await w.crypto.subtle.digest(digestAlgorithm, strToUint8(sortedPub)); return uint8ToUrlBase64(new Uint8Array(hash)); } export var JWK = {thumbprint}; -export const generateJwkAsync = async (generateKeyAlgorithm: RsaHashedKeyGenParams | EcKeyGenParams) => { +export const generateJwkAsync = (w:any) => async (generateKeyAlgorithm: RsaHashedKeyGenParams | EcKeyGenParams) => { // @ts-ignore - const jwk = await EC.generate(generateKeyAlgorithm); + const jwk = await EC.generate(w)(generateKeyAlgorithm); // console.info('Private Key:', JSON.stringify(jwk)); // @ts-ignore // console.info('Public Key:', JSON.stringify(EC.neuter(jwk))); return jwk; } -export const generateJwtDemonstratingProofOfPossessionAsync = (demonstratingProofOfPossessionConfiguration: DemonstratingProofOfPossessionConfiguration) => async (jwk, method = 'POST', url: string, extrasClaims={}) => { +export const generateJwtDemonstratingProofOfPossessionAsync = (w:any) => (demonstratingProofOfPossessionConfiguration: DemonstratingProofOfPossessionConfiguration) => async (jwk, method = 'POST', url: string, extrasClaims={}) => { const claims = { // https://www.rfc-editor.org/rfc/rfc9449.html#name-concept @@ -210,9 +210,9 @@ export const generateJwtDemonstratingProofOfPossessionAsync = (demonstratingProo ...extrasClaims, }; // @ts-ignore - const kid = await JWK.thumbprint(jwk, demonstratingProofOfPossessionConfiguration.digestAlgorithm); + const kid = await JWK.thumbprint(w)(jwk, demonstratingProofOfPossessionConfiguration.digestAlgorithm); // @ts-ignore - const jwt = await JWT.sign(jwk, { kid: kid }, claims, demonstratingProofOfPossessionConfiguration) + const jwt = await JWT.sign(w)(jwk, { kid: kid }, claims, demonstratingProofOfPossessionConfiguration) // console.info('JWT:', jwt); return jwt; } diff --git a/packages/oidc-client/src/login.ts b/packages/oidc-client/src/login.ts index 473c14055..7f37919bb 100644 --- a/packages/oidc-client/src/login.ts +++ b/packages/oidc-client/src/login.ts @@ -149,14 +149,14 @@ export const loginCallbackAsync = (oidc:Oidc) => async (isSilentSignin = false) const url = oidcServerConfiguration.tokenEndpoint; const headersExtras = {}; if(configuration.demonstrating_proof_of_possession) { - const jwk = await generateJwkAsync(configuration.demonstrating_proof_of_possession_configuration.generateKeyAlgorithm); if (serviceWorker) { - await serviceWorker.setDemonstratingProofOfPossessionJwkAsync(jwk); + headersExtras['DPoP'] = `DPOP_SECURED_BY_OIDC_SERVICE_WORKER_${oidc.configurationName}`; } else { + const jwk = await generateJwkAsync(window)(configuration.demonstrating_proof_of_possession_configuration.generateKeyAlgorithm); const session = initSession(oidc.configurationName, configuration.storage); await session.setDemonstratingProofOfPossessionJwkAsync(jwk); + headersExtras['DPoP'] = await generateJwtDemonstratingProofOfPossessionAsync(window)(configuration.demonstrating_proof_of_possession_configuration)(jwk, 'POST', url); } - headersExtras['DPoP'] = await generateJwtDemonstratingProofOfPossessionAsync(configuration.demonstrating_proof_of_possession_configuration)(jwk, 'POST', url); } const tokenResponse = await performFirstTokenRequestAsync(storage)(url, diff --git a/packages/oidc-client/src/oidc.ts b/packages/oidc-client/src/oidc.ts index afcc232bf..f2eff47fd 100644 --- a/packages/oidc-client/src/oidc.ts +++ b/packages/oidc-client/src/oidc.ts @@ -300,21 +300,21 @@ Please checkout that you are using OIDC hook inside a = null; diff --git a/packages/react-oidc/README.md b/packages/react-oidc/README.md index 00c30601b..1fee9a95f 100644 --- a/packages/react-oidc/README.md +++ b/packages/react-oidc/README.md @@ -98,6 +98,28 @@ trustedDomains.config_show_access_token = { // setAccessTokenToNavigateRequests: true, // default value is true }; +// DPoP (Demonstrating Proof of Possession) will be activated for the following domains +trustedDomains.config_with_dpop = { + domains: ["https://demo.duendesoftware.com"], + demonstratingProofOfPossession: true + // Optional, more details bellow + /*demonstratingProofOfPossessionConfiguration: { + importKeyAlgorithm: { + name: 'ECDSA', + namedCurve: 'P-256', + hash: {name: 'ES256'} + }, + signAlgorithm: {name: 'ECDSA', hash: {name: 'SHA-256'}}, + generateKeyAlgorithm: { + name: 'ECDSA', + namedCurve: 'P-256' + }, + digestAlgorithm: { name: 'SHA-256' }, + jwtHeaderAlgorithm : 'ES256' + }*/ +}; + + ``` ## Run The Demo @@ -142,7 +164,7 @@ const configuration = { authority: "https://demo.duendesoftware.com", service_worker_relative_url: "/OidcServiceWorker.js", // just comment that line to disable service worker mode service_worker_only: false, - demonstrating_proof_of_possession: false, // demonstrating proof of possession will work only if access_token is accessible from the client (This is because WebCrypto API is not available inside a Service Worker) + demonstrating_proof_of_possession: false, }; const App = () => ( From d43cea04e7e1a82cad54e40e63f2a0f22e122ab9 Mon Sep 17 00:00:00 2001 From: GitHub Date: Thu, 22 Feb 2024 20:38:36 +0000 Subject: [PATCH 217/440] [skip ci] Update to version 7.19.0 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index e62812372..1745a5094 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.18.5", + "version": "7.19.0", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 0f26aa82b..03ba240ff 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.18.5'; +export default '7.19.0'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index b9fe0e43c..41d4c27ff 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.18.5", + "version": "7.19.0", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 0f26aa82b..03ba240ff 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.18.5'; +export default '7.19.0'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index fae25626d..e5cb3a44a 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.18.5", + "version": "7.19.0", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 3ec38381f75bf9eaa52bd8e2b17016e39cfb4515 Mon Sep 17 00:00:00 2001 From: GitHub Date: Thu, 22 Feb 2024 20:38:38 +0000 Subject: [PATCH 218/440] [skip ci] Generate changelog to version 7.19.0 --- CHANGELOG.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5f741c9d4..c53790851 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,12 @@ # Changelog -## 7.18.5 +## 7.19.0 + +- [8f3940c](https://github.com/AxaFrance/oidc-client/commit/8f3940c42ad62264abfd61690777b602e0bdc31a) - feat(oidc): dpop inside serviceworker (#1306) (release), 2024-02-22 by *Guillaume Chervet* +- [4a5887f](https://github.com/AxaFrance/oidc-client/commit/4a5887f5e7b3d739d709c7bb4fb7a007ccb051a1) - fix(oidc-service-worker): remove sw unecessary log, 2024-02-19 by *Guillaume Chervet* + + +## v7.18.5 - [7a38d96](https://github.com/AxaFrance/oidc-client/commit/7a38d962b0e08837989a1d2affeb5e557dc09444) - fix(oidc): parse token with many _ or - (#1302) (release), 2024-02-18 by *Guillaume Chervet* @@ -312,8 +318,3 @@ - [41ecf9e](https://github.com/AxaFrance/oidc-client/commit/41ecf9e1752f291f0d8f96a979ab393f5aaeb885) - build(npm): bump @testing-library/dom from 9.3.1 to 9.3.3 (#1161), 2023-10-25 by *dependabot[bot]* -## v7.7.1 - -- [07d266b](https://github.com/AxaFrance/oidc-client/commit/07d266b32b275038176a407036a338624d2bed47) - build(npm): bump next from 13.4.12 to 13.5.6 (#1158), 2023-10-25 by *dependabot[bot]* - - From fa33e7250cd5d46c98940c999b8f701116f78446 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Fri, 23 Feb 2024 09:57:32 +0100 Subject: [PATCH 219/440] doc(oidc-client): update vanilla to add Hack game --- .../public/staticwebapp.config.json | 9 ++++ examples/oidc-client-demo/src/index.tsx | 49 +++++++++++-------- 2 files changed, 38 insertions(+), 20 deletions(-) diff --git a/examples/oidc-client-demo/public/staticwebapp.config.json b/examples/oidc-client-demo/public/staticwebapp.config.json index ba338eae6..5877917f4 100644 --- a/examples/oidc-client-demo/public/staticwebapp.config.json +++ b/examples/oidc-client-demo/public/staticwebapp.config.json @@ -2,5 +2,14 @@ "navigationFallback": { "rewrite": "index.html", "exclude": ["*.{svg,png,jpg,gif}","*.{css,scss}","*.js"] + }, + "globalHeaders": { + "content-security-policy": "script-src 'self'", + "Access-Control-Allow-Origin": "*", + "X-Frame-Options": "SAMEORIGIN", + "X-Permitted-Cross-Domain-Policies": "none", + "Referrer-Policy":"no-referrer", + "X-Content-Type-Options": "nosniff", + "Permissions-Policy": "autoplay=()" } } \ No newline at end of file diff --git a/examples/oidc-client-demo/src/index.tsx b/examples/oidc-client-demo/src/index.tsx index 211e0ac68..bb6546119 100644 --- a/examples/oidc-client-demo/src/index.tsx +++ b/examples/oidc-client-demo/src/index.tsx @@ -83,8 +83,7 @@ export const configuration = { authority: 'https://demo.duendesoftware.com', refresh_time_before_tokens_expiration_in_second: 40, service_worker_relative_url:'/OidcServiceWorker.js', - service_worker_only: false, - // monitor_session: true, + service_worker_only: true, }; const href = window.location.href; @@ -93,44 +92,53 @@ const vanillaOidc = OidcClient.getOrCreate(() => fetch)(configuration); console.log(href); - -vanillaOidc.tryKeepExistingSessionAsync().then(() => { - if(href.includes(configuration.redirect_uri)){ - // @ts-ignore - element.innerHTML = `
+if(href.includes(configuration.redirect_uri)){ + // @ts-ignore + element.innerHTML = `

@axa-fr/oidc-client demo

Loading callback

`; - vanillaOidc.loginCallbackAsync().then(()=>{ - router.getCustomHistory().replaceState("/"); - // @ts-ignore - window.logout = () => vanillaOidc.logoutAsync(); - const tokens = vanillaOidc.tokens; - // @ts-ignore - element.innerHTML = `
+ vanillaOidc.loginCallbackAsync().then(()=>{ + router.getCustomHistory().replaceState("/"); + // @ts-ignore + window.logout = () => vanillaOidc.logoutAsync(); + const tokens = vanillaOidc.tokens; + // @ts-ignore + element.innerHTML = `

@axa-fr/oidc-client demo

Authenticated

${JSON.stringify(tokens,null,'\t')}
`; - }); - return; - } + }); +} +vanillaOidc.tryKeepExistingSessionAsync().then(() => { const tokens = vanillaOidc.tokens; - if(tokens){ - + // @ts-ignore window.logout = () => vanillaOidc.logoutAsync(); // @ts-ignore element.innerHTML = `

@axa-fr/oidc-client demo

+

Game, let's try to make an XSS attacks to retrieve original tokens !

+

You may think servcie worker mode is not secure like said here https://datatracker.ietf.org/doc/html/draft-ietf-oauth-browser-based-apps#payload-new-flow + So let try to hack it ! + In fact it can be prevented by using the following CSP header to forbid to write dynamic iframe with javascript dynamic inside: +

+            Content-Security-Policy: script-src 'self'
+            
+ and setting up the redirect_uri and redirect_silent_uri at the top level of your javascript application before any XSS attack could accur. + Security is always good a cursor level to adjsute and a set of good practices. +

+ +

Authenticated

${JSON.stringify(tokens,null,'\t')}
+
`; - } else { // @ts-ignore @@ -142,6 +150,7 @@ vanillaOidc.tryKeepExistingSessionAsync().then(() => {
`; vanillaOidc.loginAsync("/"); }; + // @ts-ignore element.innerHTML = `

@axa-fr/oidc-client demo

From cf92792db7ede5f35c3e2883f4353376e73ff7e3 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Fri, 23 Feb 2024 12:45:57 +0100 Subject: [PATCH 220/440] doc(oidc-client-demo): repair demo --- examples/oidc-client-demo/index.html | 2 +- examples/oidc-client-demo/src/index.tsx | 246 ++++++++++++----------- examples/oidc-client-demo/vite.config.js | 2 +- 3 files changed, 136 insertions(+), 114 deletions(-) diff --git a/examples/oidc-client-demo/index.html b/examples/oidc-client-demo/index.html index d0912cccb..91a7df9b9 100644 --- a/examples/oidc-client-demo/index.html +++ b/examples/oidc-client-demo/index.html @@ -10,6 +10,6 @@
- + diff --git a/examples/oidc-client-demo/src/index.tsx b/examples/oidc-client-demo/src/index.tsx index bb6546119..16a397972 100644 --- a/examples/oidc-client-demo/src/index.tsx +++ b/examples/oidc-client-demo/src/index.tsx @@ -1,128 +1,137 @@ -import { OidcClient } from '@axa-fr/oidc-client'; +import {OidcClient} from "@axa-fr/oidc-client"; class Router { getCustomHistory(){ - const generateKey = () => - Math.random() - .toString(36) - .substr(2, 6); - - // Exported only for test - type WindowInternal = Window & { - CustomEvent?: new (typeArg: string, eventInitDict?: CustomEventInit) => CustomEvent; - Event: typeof Event; - }; - - type IPrototype = { - prototype: any; - }; - - type InitCustomEventParams = { - bubbles: boolean; - cancelable: boolean; - detail: T; - }; - - // IE Polyfill for CustomEvent - const CreateEvent = (windowInternal: Window, documentInternal: Document) => ( - event: string, - params: InitCustomEventParams, - ): CustomEvent => { - // @ts-ignore - if (typeof windowInternal.CustomEvent === 'function') { - // @ts-ignore - return new windowInternal.CustomEvent(event, params); - } - const paramsToFunction = params || { bubbles: false, cancelable: false, detail: undefined }; - const evt: CustomEvent = documentInternal.createEvent('CustomEvent'); - evt.initCustomEvent(event, paramsToFunction.bubbles, paramsToFunction.cancelable, paramsToFunction.detail); + const generateKey = () => + Math.random() + .toString(36) + .substr(2, 6); + + // Exported only for test + type WindowInternal = Window & { + CustomEvent?: new (typeArg: string, eventInitDict?: CustomEventInit) => CustomEvent; + Event: typeof Event; + }; + + type IPrototype = { + prototype: any; + }; + + type InitCustomEventParams = { + bubbles: boolean; + cancelable: boolean; + detail: T; + }; + + // IE Polyfill for CustomEvent + const CreateEvent = (windowInternal: Window, documentInternal: Document) => ( + event: string, + params: InitCustomEventParams, + ): CustomEvent => { + // @ts-ignore + if (typeof windowInternal.CustomEvent === 'function') { // @ts-ignore - (evt as CustomEvent & IPrototype).prototype = windowInternal.Event.prototype; - return evt; - }; + return new windowInternal.CustomEvent(event, params); + } + const paramsToFunction = params || { bubbles: false, cancelable: false, detail: undefined }; + const evt: CustomEvent = documentInternal.createEvent('CustomEvent'); + evt.initCustomEvent(event, paramsToFunction.bubbles, paramsToFunction.cancelable, paramsToFunction.detail); + // @ts-ignore + (evt as CustomEvent & IPrototype).prototype = windowInternal.Event.prototype; + return evt; + }; - type WindowHistoryState = typeof window.history.state; + type WindowHistoryState = typeof window.history.state; - type CustomHistory = { - replaceState(url?: string | null, stateHistory?: WindowHistoryState): void; - } + type CustomHistory = { + replaceState(url?: string | null, stateHistory?: WindowHistoryState): void; + } - const getHistory = ( - windowInternal: WindowInternal, - CreateEventInternal: (event: string, params?: InitCustomEventParams) => CustomEvent, - generateKeyInternal: typeof generateKey, - ): CustomHistory => { - return { - replaceState: (url?: string | null, stateHistory?: WindowHistoryState): void => { - const key = generateKeyInternal(); - const state = stateHistory || windowInternal.history.state; - // @ts-ignore - windowInternal.history.replaceState({ key, state }, null, url); - windowInternal.dispatchEvent(CreateEventInternal('popstate')); - }, - }; + const getHistory = ( + windowInternal: WindowInternal, + CreateEventInternal: (event: string, params?: InitCustomEventParams) => CustomEvent, + generateKeyInternal: typeof generateKey, + ): CustomHistory => { + return { + replaceState: (url?: string | null, stateHistory?: WindowHistoryState): void => { + const key = generateKeyInternal(); + const state = stateHistory || windowInternal.history.state; + // @ts-ignore + windowInternal.history.replaceState({ key, state }, null, url); + windowInternal.dispatchEvent(CreateEventInternal('popstate')); + }, }; + }; - // @ts-ignore + // @ts-ignore const getCustomHistory = () => getHistory(window, CreateEvent(window, document), generateKey); - return getCustomHistory(); - } + return getCustomHistory(); +} } -const router = new Router(); +// @ts-ignore +export const execute = () => { -document.body.innerHTML = `
`; -const element = document.getElementById("my-vanilla-app"); + const router = new Router(); -export const configuration = { - client_id: 'interactive.public.short', - redirect_uri: window.location.origin + '/#/authentication/callback', - silent_redirect_uri: window.location.origin + '/#/authentication/silent-callback', - scope: 'openid profile email api offline_access', - authority: 'https://demo.duendesoftware.com', - refresh_time_before_tokens_expiration_in_second: 40, - service_worker_relative_url:'/OidcServiceWorker.js', - service_worker_only: true, -}; + const element = document.getElementById("root"); -const href = window.location.href; + const configuration = { + client_id: 'interactive.public.short', + redirect_uri: window.location.origin + '/#/authentication/callback', + silent_redirect_uri: window.location.origin + '/#/authentication/silent-callback', + scope: 'openid profile email api offline_access', + authority: 'https://demo.duendesoftware.com', + refresh_time_before_tokens_expiration_in_second: 40, + service_worker_relative_url:'/OidcServiceWorker.js', + service_worker_only: true, + }; -const vanillaOidc = OidcClient.getOrCreate(() => fetch)(configuration); + const href = window.location.href; -console.log(href); + const vanillaOidc = OidcClient.getOrCreate(() => fetch)(configuration); -if(href.includes(configuration.redirect_uri)){ - // @ts-ignore - element.innerHTML = `
+ console.log(href); + + if(href.includes(configuration.redirect_uri)){ + // @ts-ignore + element.innerHTML = `

@axa-fr/oidc-client demo

Loading callback

`; - vanillaOidc.loginCallbackAsync().then(()=>{ - router.getCustomHistory().replaceState("/"); - // @ts-ignore - window.logout = () => vanillaOidc.logoutAsync(); - const tokens = vanillaOidc.tokens; - // @ts-ignore - element.innerHTML = `
+ vanillaOidc.loginCallbackAsync().then(()=>{ + router.getCustomHistory().replaceState("/"); + // @ts-ignore + function logout() { + vanillaOidc.logoutAsync(); + } + const tokens = vanillaOidc.tokens; + // @ts-ignore + element.innerHTML = `

@axa-fr/oidc-client demo

- +

Authenticated

${JSON.stringify(tokens,null,'\t')}
`; - }); -} -vanillaOidc.tryKeepExistingSessionAsync().then(() => { - const tokens = vanillaOidc.tokens; - if(tokens){ - - // @ts-ignore - window.logout = () => vanillaOidc.logoutAsync(); - // @ts-ignore - element.innerHTML = `
+ // @ts-ignore + window.document.getElementById('logout').addEventListener('click',logout); + }); + } + + vanillaOidc.tryKeepExistingSessionAsync().then(() => { + const tokens = vanillaOidc.tokens; + if(tokens){ + + // @ts-ignore + function logout () { + vanillaOidc.logoutAsync(); + } + // @ts-ignore + element.innerHTML = `

@axa-fr/oidc-client demo

- +

Game, let's try to make an XSS attacks to retrieve original tokens !

You may think servcie worker mode is not secure like said here https://datatracker.ietf.org/doc/html/draft-ietf-oauth-browser-based-apps#payload-new-flow So let try to hack it ! @@ -131,31 +140,44 @@ vanillaOidc.tryKeepExistingSessionAsync().then(() => { Content-Security-Policy: script-src 'self' and setting up the redirect_uri and redirect_silent_uri at the top level of your javascript application before any XSS attack could accur. - Security is always good a cursor level to adjsute and a set of good practices. + Security is always good a cursor level to adjsut and a set of good practices.

- +

Authenticated

${JSON.stringify(tokens,null,'\t')}
`; - } - else { - // @ts-ignore - window.login= () => { // @ts-ignore - element.innerHTML = `
+ window.document.getElementById('logout').addEventListener('click',logout); + // @ts-ignore + window.document.getElementById('buttonxsshack').addEventListener('click',()=> { + // @ts-ignore + eval(document.getElementById('xsshack').value) + }); + + } + else { + // @ts-ignore + function login() { + // @ts-ignore + element.innerHTML = `

@axa-fr/oidc-client demo

Loading

`; - vanillaOidc.loginAsync("/"); - }; - - // @ts-ignore - element.innerHTML = `
+ vanillaOidc.loginAsync("/"); + } + + // @ts-ignore + element.innerHTML = `

@axa-fr/oidc-client demo

- +
`; - } -}); + // @ts-ignore + document.getElementById('login').addEventListener('click',login); + } + }); + +}; +execute(); \ No newline at end of file diff --git a/examples/oidc-client-demo/vite.config.js b/examples/oidc-client-demo/vite.config.js index e95902064..3b8014a1d 100644 --- a/examples/oidc-client-demo/vite.config.js +++ b/examples/oidc-client-demo/vite.config.js @@ -7,7 +7,7 @@ export default defineConfig({ }, server: { headers: { - //"Content-Security-Policy": "script-src 'self';", + "Content-Security-Policy": "script-src 'self' 'unsafe-eval';", }, }, }); From 322c1f1fbd3563b27b01a6ca98c8d95eeef12038 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Fri, 23 Feb 2024 13:55:24 +0100 Subject: [PATCH 221/440] doc(oidc-client-demo): update content and CSP --- examples/oidc-client-demo/index.html | 2 ++ .../public/staticwebapp.config.json | 2 +- examples/oidc-client-demo/src/index.tsx | 25 ++++++++++++------- 3 files changed, 19 insertions(+), 10 deletions(-) diff --git a/examples/oidc-client-demo/index.html b/examples/oidc-client-demo/index.html index 91a7df9b9..db3d3a00d 100644 --- a/examples/oidc-client-demo/index.html +++ b/examples/oidc-client-demo/index.html @@ -9,6 +9,8 @@ +

@axa-de/oidc-client

+

OpenId Connect, OIDC client is free under licence MIT. Available on github axa oidc-client

diff --git a/examples/oidc-client-demo/public/staticwebapp.config.json b/examples/oidc-client-demo/public/staticwebapp.config.json index 5877917f4..2a93a91ed 100644 --- a/examples/oidc-client-demo/public/staticwebapp.config.json +++ b/examples/oidc-client-demo/public/staticwebapp.config.json @@ -4,7 +4,7 @@ "exclude": ["*.{svg,png,jpg,gif}","*.{css,scss}","*.js"] }, "globalHeaders": { - "content-security-policy": "script-src 'self'", + "content-security-policy": "script-src 'self' 'unsafe-eval'", "Access-Control-Allow-Origin": "*", "X-Frame-Options": "SAMEORIGIN", "X-Permitted-Cross-Domain-Policies": "none", diff --git a/examples/oidc-client-demo/src/index.tsx b/examples/oidc-client-demo/src/index.tsx index 16a397972..43592f6cd 100644 --- a/examples/oidc-client-demo/src/index.tsx +++ b/examples/oidc-client-demo/src/index.tsx @@ -130,21 +130,28 @@ export const execute = () => { } // @ts-ignore element.innerHTML = `
-

@axa-fr/oidc-client demo

- -

Game, let's try to make an XSS attacks to retrieve original tokens !

-

You may think servcie worker mode is not secure like said here https://datatracker.ietf.org/doc/html/draft-ietf-oauth-browser-based-apps#payload-new-flow +

Demo

+ +

Game, let's try to make an XSS attacks to retrieve some secure tokens !

+

Service Worker mode is not magic https://datatracker.ietf.org/doc/html/draft-ietf-oauth-browser-based-apps#payload-new-flow So let try to hack it ! - In fact it can be prevented by using the following CSP header to forbid to write dynamic iframe with javascript dynamic inside: +

+

Service Worker mode is secure if your follow 2 following rules:

+

Rule 1: Configure CSP

+

+ Add CSP header to forbid to write dynamic iframe with javascript dynamic inside. + You should never add "unsafe-inline" in your CSP header. For this game we set up 'unsafe-eval' in the CSP header to allow the eval function to be executed and allow you to hack the application like a big XSS attack.

-            Content-Security-Policy: script-src 'self'
+            Content-Security-Policy: script-src 'self' 'unsafe-eval'; 
             
- and setting up the redirect_uri and redirect_silent_uri at the top level of your javascript application before any XSS attack could accur. - Security is always good a cursor level to adjsut and a set of good practices. +

Rule 2: Apply redirect URI before any WebService call

+ Set up the redirect_uri and redirect_silent_uri at the top level of your javascript application before any XSS attack could be executed.

+

Let's play

-

Authenticated

+

Authenticated

+
${JSON.stringify(tokens,null,'\t')}
`; From db13d8bdfbd49e564452461aeefc6e3024ce4435 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Fri, 23 Feb 2024 16:14:22 +0100 Subject: [PATCH 222/440] doc(oidc-client-demo): fix workflow --- examples/oidc-client-demo/index.html | 1 + examples/oidc-client-demo/src/index.tsx | 115 +++++++++++++----------- 2 files changed, 63 insertions(+), 53 deletions(-) diff --git a/examples/oidc-client-demo/index.html b/examples/oidc-client-demo/index.html index db3d3a00d..d43e866d5 100644 --- a/examples/oidc-client-demo/index.html +++ b/examples/oidc-client-demo/index.html @@ -12,6 +12,7 @@

@axa-de/oidc-client

OpenId Connect, OIDC client is free under licence MIT. Available on github axa oidc-client

+
diff --git a/examples/oidc-client-demo/src/index.tsx b/examples/oidc-client-demo/src/index.tsx index 43592f6cd..b81c4f853 100644 --- a/examples/oidc-client-demo/src/index.tsx +++ b/examples/oidc-client-demo/src/index.tsx @@ -70,12 +70,52 @@ class Router } + +const display = (element:any) => { + + // @ts-ignore + element.innerHTML = `
+

Game Hack Challenge

+ +

Game, let's try to make an XSS attacks to retrieve some secure tokens !

+

Service Worker mode is not magic https://datatracker.ietf.org/doc/html/draft-ietf-oauth-browser-based-apps#payload-new-flow + So let try to hack it ! +

+

Service Worker mode is secure if your follow 2 following rules:

+

Rule 1: Configure CSP

+

+ Add CSP header to forbid to write dynamic iframe with javascript dynamic inside. + You should never add "unsafe-inline" in your CSP header. +

+            Content-Security-Policy: script-src 'self';  // Secure
+            
+

Rule 2: Apply redirect URI before any WebService call

+ Set up the redirect_uri and redirect_silent_uri at the top level of your javascript application before any XSS attack could be executed. +

+

Let's play

+

To help you for this game, we set up 'unsafe-eval' in the CSP header to allow the eval function to be executed and allow you to hack the application like a big XSS attack.

+
+            Content-Security-Policy: script-src 'self' 'unsafe-eval'; 
+            
+ + + + +
`; + // @ts-ignore + window.document.getElementById('buttonxsshack').addEventListener('click',()=> { + // @ts-ignore + eval(document.getElementById('xsshack').value) + }); +} + // @ts-ignore export const execute = () => { const router = new Router(); - const element = document.getElementById("root"); + const root = document.getElementById("root"); + const game = document.getElementById("game"); const configuration = { client_id: 'interactive.public.short', @@ -92,92 +132,61 @@ export const execute = () => { const vanillaOidc = OidcClient.getOrCreate(() => fetch)(configuration); + // @ts-ignore + function logout () { + vanillaOidc.logoutAsync(); + } + console.log(href); if(href.includes(configuration.redirect_uri)){ // @ts-ignore - element.innerHTML = `
-

@axa-fr/oidc-client demo

+ root.innerHTML = `
+

Login demo

Loading callback

`; vanillaOidc.loginCallbackAsync().then(()=>{ router.getCustomHistory().replaceState("/"); + display(game); // @ts-ignore - function logout() { - vanillaOidc.logoutAsync(); - } - const tokens = vanillaOidc.tokens; - // @ts-ignore - element.innerHTML = `
-

@axa-fr/oidc-client demo

- -

Authenticated

-
${JSON.stringify(tokens,null,'\t')}
+ root.innerHTML = `
+

Login demo Authenticated

+ +
${JSON.stringify(vanillaOidc.tokens,null,'\t')}
`; - // @ts-ignore window.document.getElementById('logout').addEventListener('click',logout); }); + return; } vanillaOidc.tryKeepExistingSessionAsync().then(() => { const tokens = vanillaOidc.tokens; if(tokens){ - - // @ts-ignore - function logout () { - vanillaOidc.logoutAsync(); - } + display(game); // @ts-ignore - element.innerHTML = `
-

Demo

- -

Game, let's try to make an XSS attacks to retrieve some secure tokens !

-

Service Worker mode is not magic https://datatracker.ietf.org/doc/html/draft-ietf-oauth-browser-based-apps#payload-new-flow - So let try to hack it ! -

-

Service Worker mode is secure if your follow 2 following rules:

-

Rule 1: Configure CSP

-

- Add CSP header to forbid to write dynamic iframe with javascript dynamic inside. - You should never add "unsafe-inline" in your CSP header. For this game we set up 'unsafe-eval' in the CSP header to allow the eval function to be executed and allow you to hack the application like a big XSS attack. -

-            Content-Security-Policy: script-src 'self' 'unsafe-eval'; 
-            
-

Rule 2: Apply redirect URI before any WebService call

- Set up the redirect_uri and redirect_silent_uri at the top level of your javascript application before any XSS attack could be executed. -

-

Let's play

- - -

Authenticated

+ root.innerHTML = `
+

Login demo Authenticated

${JSON.stringify(tokens,null,'\t')}
-
`; // @ts-ignore window.document.getElementById('logout').addEventListener('click',logout); - // @ts-ignore - window.document.getElementById('buttonxsshack').addEventListener('click',()=> { - // @ts-ignore - eval(document.getElementById('xsshack').value) - }); - } else { // @ts-ignore function login() { // @ts-ignore - element.innerHTML = `
-

@axa-fr/oidc-client demo

+ root.innerHTML = `
+

Login demo

Loading

`; vanillaOidc.loginAsync("/"); } - + display(game); // @ts-ignore - element.innerHTML = `
-

@axa-fr/oidc-client demo

+ root.innerHTML = `
+

Login demo

`; // @ts-ignore From d4c9ec6b8a4760c81f4d88bc72563cc810b52b00 Mon Sep 17 00:00:00 2001 From: Jean-Marc Rakotoarisoa <15631355+astrinxit66@users.noreply.github.com> Date: Wed, 28 Feb 2024 14:20:44 +0100 Subject: [PATCH 223/440] fix(oidc): when having multiple iframes, only the last one gets resolved (#1311) (alpha) --- packages/oidc-client/src/silentLogin.ts | 81 ++++++++++++++----------- 1 file changed, 44 insertions(+), 37 deletions(-) diff --git a/packages/oidc-client/src/silentLogin.ts b/packages/oidc-client/src/silentLogin.ts index 3e1b5a51d..e5b2c1174 100644 --- a/packages/oidc-client/src/silentLogin.ts +++ b/packages/oidc-client/src/silentLogin.ts @@ -44,7 +44,7 @@ export const _silentLoginAsync = (configurationName:string, configuration:OidcCo } const link = configuration.silent_login_uri + queries; const idx = link.indexOf('/', link.indexOf('//') + 2); - const iFrameOrigin = link.substr(0, idx); + const iFrameOrigin = link.substring(0, idx); const iframe = document.createElement('iframe'); iframe.width = '0px'; iframe.height = '0px'; @@ -53,53 +53,60 @@ export const _silentLoginAsync = (configurationName:string, configuration:OidcCo iframe.setAttribute('src', link); document.body.appendChild(iframe); return new Promise((resolve, reject) => { - try { - let isResolved = false; - window.onmessage = (e: MessageEvent) => { - if (e.origin === iFrameOrigin && - e.source === iframe.contentWindow - ) { - const key = `${configurationName}_oidc_tokens:`; - const key_error = `${configurationName}_oidc_error:`; - const key_exception = `${configurationName}_oidc_exception:`; - const data = e.data; - if (data && typeof (data) === 'string') { - if (!isResolved) { - if (data.startsWith(key)) { - const result = JSON.parse(e.data.replace(key, '')); - publishEvent(eventNames.silentLoginAsync_end, {}); - iframe.remove(); - isResolved = true; - resolve(result); - } else if (data.startsWith(key_error)) { - const result = JSON.parse(e.data.replace(key_error, '')); - publishEvent(eventNames.silentLoginAsync_error, result); - iframe.remove(); - isResolved = true; - resolve({error: 'oidc_' + result.error, tokens: null, sessionState: null}); - } else if (data.startsWith(key_exception)) { - const result = JSON.parse(e.data.replace(key_exception, '')); - publishEvent(eventNames.silentLoginAsync_error, result); - iframe.remove(); - isResolved = true; - reject(new Error(result.error)); - } - + let isResolved = false; + + const clear = () => { + window.removeEventListener('message', listener); + iframe.remove(); + isResolved = true; + }; + + const listener = (e: MessageEvent) => { + if (e.origin === iFrameOrigin && + e.source === iframe.contentWindow + ) { + const key = `${configurationName}_oidc_tokens:`; + const key_error = `${configurationName}_oidc_error:`; + const key_exception = `${configurationName}_oidc_exception:`; + const data = e.data; + + if (data && typeof (data) === 'string') { + if (!isResolved) { + if (data.startsWith(key)) { + const result = JSON.parse(e.data.replace(key, '')); + publishEvent(eventNames.silentLoginAsync_end, {}); + resolve(result); + clear(); + } else if (data.startsWith(key_error)) { + const result = JSON.parse(e.data.replace(key_error, '')); + publishEvent(eventNames.silentLoginAsync_error, result); + resolve({error: 'oidc_' + result.error, tokens: null, sessionState: null}); + clear(); + } else if (data.startsWith(key_exception)) { + const result = JSON.parse(e.data.replace(key_exception, '')); + publishEvent(eventNames.silentLoginAsync_error, result); + reject(new Error(result.error)); + clear(); } + } } - }; + } + }; + + try { + window.addEventListener('message', listener); + const silentSigninTimeout = configuration.silent_login_timeout; setTimeout(() => { if (!isResolved) { + clear(); publishEvent(eventNames.silentLoginAsync_error, { reason: 'timeout' }); - iframe.remove(); - isResolved = true; reject(new Error('timeout')); } }, silentSigninTimeout); } catch (e) { - iframe.remove(); + clear(); publishEvent(eventNames.silentLoginAsync_error, e); reject(e); } From 7b2b21a9837210d0caaea9e16cfea9e9daeb8364 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Mar 2024 09:20:53 +0100 Subject: [PATCH 224/440] build(npm): bump rimraf from 5.0.1 to 5.0.5 (#1313) (release) Bumps [rimraf](https://github.com/isaacs/rimraf) from 5.0.1 to 5.0.5. - [Changelog](https://github.com/isaacs/rimraf/blob/main/CHANGELOG.md) - [Commits](https://github.com/isaacs/rimraf/compare/v5.0.1...v5.0.5) --- updated-dependencies: - dependency-name: rimraf dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- packages/react-oidc/package.json | 2 +- pnpm-lock.yaml | 78 ++++++++++++++------------------ 2 files changed, 36 insertions(+), 44 deletions(-) diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index e5cb3a44a..0e49f1310 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -60,7 +60,7 @@ "msw": "2.1.6", "react": "^18.2.0", "react-dom": "^18.2.0", - "rimraf": "5.0.1", + "rimraf": "5.0.5", "typescript": "5.3.3", "vite": "5.0.12", "vite-plugin-dts": "3.7.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b55c2708e..26a42f325 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -76,7 +76,7 @@ importers: version: link:../../packages/react-oidc next: specifier: latest - version: 14.1.0(react-dom@18.2.0)(react@18.2.0) + version: 14.1.1(react-dom@18.2.0)(react@18.2.0) react: specifier: latest version: 18.2.0 @@ -286,8 +286,8 @@ importers: specifier: ^18.2.0 version: 18.2.0(react@18.2.0) rimraf: - specifier: 5.0.1 - version: 5.0.1 + specifier: 5.0.5 + version: 5.0.5 typescript: specifier: 5.3.3 version: 5.3.3 @@ -944,12 +944,12 @@ packages: strict-event-emitter: 0.5.1 dev: true - /@next/env@14.1.0: - resolution: {integrity: sha512-Py8zIo+02ht82brwwhTg36iogzFqGLPXlRGKQw5s+qP/kMNc4MAyDeEwBKDijk6zTIbegEgu8Qy7C1LboslQAw==} + /@next/env@14.1.1: + resolution: {integrity: sha512-7CnQyD5G8shHxQIIg3c7/pSeYFeMhsNbpU/bmvH7ZnDql7mNRgg8O2JZrhrc/soFnfBnKP4/xXNiiSIPn2w8gA==} dev: false - /@next/swc-darwin-arm64@14.1.0: - resolution: {integrity: sha512-nUDn7TOGcIeyQni6lZHfzNoo9S0euXnu0jhsbMOmMJUBfgsnESdjN97kM7cBqQxZa8L/bM9om/S5/1dzCrW6wQ==} + /@next/swc-darwin-arm64@14.1.1: + resolution: {integrity: sha512-yDjSFKQKTIjyT7cFv+DqQfW5jsD+tVxXTckSe1KIouKk75t1qZmj/mV3wzdmFb0XHVGtyRjDMulfVG8uCKemOQ==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] @@ -957,8 +957,8 @@ packages: dev: false optional: true - /@next/swc-darwin-x64@14.1.0: - resolution: {integrity: sha512-1jgudN5haWxiAl3O1ljUS2GfupPmcftu2RYJqZiMJmmbBT5M1XDffjUtRUzP4W3cBHsrvkfOFdQ71hAreNQP6g==} + /@next/swc-darwin-x64@14.1.1: + resolution: {integrity: sha512-KCQmBL0CmFmN8D64FHIZVD9I4ugQsDBBEJKiblXGgwn7wBCSe8N4Dx47sdzl4JAg39IkSN5NNrr8AniXLMb3aw==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] @@ -966,8 +966,8 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-gnu@14.1.0: - resolution: {integrity: sha512-RHo7Tcj+jllXUbK7xk2NyIDod3YcCPDZxj1WLIYxd709BQ7WuRYl3OWUNG+WUfqeQBds6kvZYlc42NJJTNi4tQ==} + /@next/swc-linux-arm64-gnu@14.1.1: + resolution: {integrity: sha512-YDQfbWyW0JMKhJf/T4eyFr4b3tceTorQ5w2n7I0mNVTFOvu6CGEzfwT3RSAQGTi/FFMTFcuspPec/7dFHuP7Eg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -975,8 +975,8 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-musl@14.1.0: - resolution: {integrity: sha512-v6kP8sHYxjO8RwHmWMJSq7VZP2nYCkRVQ0qolh2l6xroe9QjbgV8siTbduED4u0hlk0+tjS6/Tuy4n5XCp+l6g==} + /@next/swc-linux-arm64-musl@14.1.1: + resolution: {integrity: sha512-fiuN/OG6sNGRN/bRFxRvV5LyzLB8gaL8cbDH5o3mEiVwfcMzyE5T//ilMmaTrnA8HLMS6hoz4cHOu6Qcp9vxgQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -984,8 +984,8 @@ packages: dev: false optional: true - /@next/swc-linux-x64-gnu@14.1.0: - resolution: {integrity: sha512-zJ2pnoFYB1F4vmEVlb/eSe+VH679zT1VdXlZKX+pE66grOgjmKJHKacf82g/sWE4MQ4Rk2FMBCRnX+l6/TVYzQ==} + /@next/swc-linux-x64-gnu@14.1.1: + resolution: {integrity: sha512-rv6AAdEXoezjbdfp3ouMuVqeLjE1Bin0AuE6qxE6V9g3Giz5/R3xpocHoAi7CufRR+lnkuUjRBn05SYJ83oKNQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -993,8 +993,8 @@ packages: dev: false optional: true - /@next/swc-linux-x64-musl@14.1.0: - resolution: {integrity: sha512-rbaIYFt2X9YZBSbH/CwGAjbBG2/MrACCVu2X0+kSykHzHnYH5FjHxwXLkcoJ10cX0aWCEynpu+rP76x0914atg==} + /@next/swc-linux-x64-musl@14.1.1: + resolution: {integrity: sha512-YAZLGsaNeChSrpz/G7MxO3TIBLaMN8QWMr3X8bt6rCvKovwU7GqQlDu99WdvF33kI8ZahvcdbFsy4jAFzFX7og==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -1002,8 +1002,8 @@ packages: dev: false optional: true - /@next/swc-win32-arm64-msvc@14.1.0: - resolution: {integrity: sha512-o1N5TsYc8f/HpGt39OUQpQ9AKIGApd3QLueu7hXk//2xq5Z9OxmV6sQfNp8C7qYmiOlHYODOGqNNa0e9jvchGQ==} + /@next/swc-win32-arm64-msvc@14.1.1: + resolution: {integrity: sha512-1L4mUYPBMvVDMZg1inUYyPvFSduot0g73hgfD9CODgbr4xiTYe0VOMTZzaRqYJYBA9mana0x4eaAaypmWo1r5A==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] @@ -1011,8 +1011,8 @@ packages: dev: false optional: true - /@next/swc-win32-ia32-msvc@14.1.0: - resolution: {integrity: sha512-XXIuB1DBRCFwNO6EEzCTMHT5pauwaSj4SWs7CYnME57eaReAKBXCnkUE80p/pAZcewm7hs+vGvNqDPacEXHVkw==} + /@next/swc-win32-ia32-msvc@14.1.1: + resolution: {integrity: sha512-jvIE9tsuj9vpbbXlR5YxrghRfMuG0Qm/nZ/1KDHc+y6FpnZ/apsgh+G6t15vefU0zp3WSpTMIdXRUsNl/7RSuw==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] @@ -1020,8 +1020,8 @@ packages: dev: false optional: true - /@next/swc-win32-x64-msvc@14.1.0: - resolution: {integrity: sha512-9WEbVRRAqJ3YFVqEZIxUqkiO8l1nool1LmNxygr5HWF8AcSYsEpneUDhmjUVJEzO2A04+oPtZdombzzPPkTtgg==} + /@next/swc-win32-x64-msvc@14.1.1: + resolution: {integrity: sha512-S6K6EHDU5+1KrBDLko7/c1MNy/Ya73pIAmvKeFwsF4RmBFJSO7/7YeD4FnZ4iBdzE69PpQ4sOMU9ORKeNuxe8A==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -4214,8 +4214,8 @@ packages: resolution: {integrity: sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==} dev: true - /next@14.1.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-wlzrsbfeSU48YQBjZhDzOwhWhGsy+uQycR8bHAOt1LY1bn3zZEcDyHQOEoN3aWzQ8LHCAJ1nqrWCc9XF2+O45Q==} + /next@14.1.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-McrGJqlGSHeaz2yTRPkEucxQKe5Zq7uPwyeHNmJaZNY4wx9E9QdxmTp310agFRoMuIYgQrCrT3petg13fSVOww==} engines: {node: '>=18.17.0'} hasBin: true peerDependencies: @@ -4229,7 +4229,7 @@ packages: sass: optional: true dependencies: - '@next/env': 14.1.0 + '@next/env': 14.1.1 '@swc/helpers': 0.5.2 busboy: 1.6.0 caniuse-lite: 1.0.30001584 @@ -4239,15 +4239,15 @@ packages: react-dom: 18.2.0(react@18.2.0) styled-jsx: 5.1.1(react@18.2.0) optionalDependencies: - '@next/swc-darwin-arm64': 14.1.0 - '@next/swc-darwin-x64': 14.1.0 - '@next/swc-linux-arm64-gnu': 14.1.0 - '@next/swc-linux-arm64-musl': 14.1.0 - '@next/swc-linux-x64-gnu': 14.1.0 - '@next/swc-linux-x64-musl': 14.1.0 - '@next/swc-win32-arm64-msvc': 14.1.0 - '@next/swc-win32-ia32-msvc': 14.1.0 - '@next/swc-win32-x64-msvc': 14.1.0 + '@next/swc-darwin-arm64': 14.1.1 + '@next/swc-darwin-x64': 14.1.1 + '@next/swc-linux-arm64-gnu': 14.1.1 + '@next/swc-linux-arm64-musl': 14.1.1 + '@next/swc-linux-x64-gnu': 14.1.1 + '@next/swc-linux-x64-musl': 14.1.1 + '@next/swc-win32-arm64-msvc': 14.1.1 + '@next/swc-win32-ia32-msvc': 14.1.1 + '@next/swc-win32-x64-msvc': 14.1.1 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros @@ -4823,14 +4823,6 @@ packages: glob: 7.2.3 dev: true - /rimraf@5.0.1: - resolution: {integrity: sha512-OfFZdwtd3lZ+XZzYP/6gTACubwFcHdLRqS9UX3UwpU2dnGQYkPFISRwvM3w9IiB2w7bW5qGo/uAwE4SmXXSKvg==} - engines: {node: '>=14'} - hasBin: true - dependencies: - glob: 10.3.10 - dev: true - /rimraf@5.0.5: resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==} engines: {node: '>=14'} From da61894070a8129063ec93fd63ef7cdd37f980c9 Mon Sep 17 00:00:00 2001 From: GitHub Date: Mon, 4 Mar 2024 08:23:27 +0000 Subject: [PATCH 225/440] [skip ci] Update to version 7.19.1 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 1745a5094..dd633bf17 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.19.0", + "version": "7.19.1", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 03ba240ff..56fe6c9af 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.19.0'; +export default '7.19.1'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 41d4c27ff..3b076d906 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.19.0", + "version": "7.19.1", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 03ba240ff..56fe6c9af 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.19.0'; +export default '7.19.1'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 0e49f1310..a64d678b3 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.19.0", + "version": "7.19.1", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 3358b0f853101399546cad3a6e3521ac1b2416c6 Mon Sep 17 00:00:00 2001 From: GitHub Date: Mon, 4 Mar 2024 08:23:28 +0000 Subject: [PATCH 226/440] [skip ci] Generate changelog to version 7.19.1 --- CHANGELOG.md | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c53790851..0b2eaef8f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,16 @@ # Changelog -## 7.19.0 +## 7.19.1 + +- [7b2b21a](https://github.com/AxaFrance/oidc-client/commit/7b2b21a9837210d0caaea9e16cfea9e9daeb8364) - build(npm): bump rimraf from 5.0.1 to 5.0.5 (#1313) (release), 2024-03-04 by *dependabot[bot]* +- [d4c9ec6](https://github.com/AxaFrance/oidc-client/commit/d4c9ec6b8a4760c81f4d88bc72563cc810b52b00) - fix(oidc): when having multiple iframes, only the last one gets resolved (#1311) (alpha), 2024-02-28 by *Jean-Marc Rakotoarisoa* +- [db13d8b](https://github.com/AxaFrance/oidc-client/commit/db13d8bdfbd49e564452461aeefc6e3024ce4435) - doc(oidc-client-demo): fix workflow, 2024-02-23 by *Guillaume Chervet* +- [322c1f1](https://github.com/AxaFrance/oidc-client/commit/322c1f1fbd3563b27b01a6ca98c8d95eeef12038) - doc(oidc-client-demo): update content and CSP, 2024-02-23 by *Guillaume Chervet* +- [cf92792](https://github.com/AxaFrance/oidc-client/commit/cf92792db7ede5f35c3e2883f4353376e73ff7e3) - doc(oidc-client-demo): repair demo, 2024-02-23 by *Guillaume Chervet* +- [fa33e72](https://github.com/AxaFrance/oidc-client/commit/fa33e7250cd5d46c98940c999b8f701116f78446) - doc(oidc-client): update vanilla to add Hack game, 2024-02-23 by *Guillaume Chervet* + + +## v7.19.0 - [8f3940c](https://github.com/AxaFrance/oidc-client/commit/8f3940c42ad62264abfd61690777b602e0bdc31a) - feat(oidc): dpop inside serviceworker (#1306) (release), 2024-02-22 by *Guillaume Chervet* - [4a5887f](https://github.com/AxaFrance/oidc-client/commit/4a5887f5e7b3d739d709c7bb4fb7a007ccb051a1) - fix(oidc-service-worker): remove sw unecessary log, 2024-02-19 by *Guillaume Chervet* @@ -313,8 +323,3 @@ - [ac7f37b](https://github.com/AxaFrance/oidc-client/commit/ac7f37be28883edbe539eff02d0a6a054b2aab14) - build(npm): bump msw from 1.2.2 to 2.0.0 (#1165), 2023-10-29 by *dependabot[bot]* -## v7.7.2 - -- [41ecf9e](https://github.com/AxaFrance/oidc-client/commit/41ecf9e1752f291f0d8f96a979ab393f5aaeb885) - build(npm): bump @testing-library/dom from 9.3.1 to 9.3.3 (#1161), 2023-10-25 by *dependabot[bot]* - - From 95be8f79a3fc399b05322d0197ab674cf272326a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Mar 2024 18:10:07 +0100 Subject: [PATCH 227/440] build(npm): bump vitest from 1.2.2 to 1.3.1 (#1315) Bumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) from 1.2.2 to 1.3.1. - [Release notes](https://github.com/vitest-dev/vitest/releases) - [Commits](https://github.com/vitest-dev/vitest/commits/v1.3.1/packages/vitest) --- updated-dependencies: - dependency-name: vitest dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- examples/react-oidc-demo/package.json | 2 +- package.json | 2 +- .../oidc-client-service-worker/package.json | 2 +- packages/oidc-client/package.json | 2 +- packages/react-oidc/package.json | 2 +- pnpm-lock.yaml | 104 +++++++++--------- 6 files changed, 58 insertions(+), 56 deletions(-) diff --git a/examples/react-oidc-demo/package.json b/examples/react-oidc-demo/package.json index 5c34c3e21..0f4d4df08 100644 --- a/examples/react-oidc-demo/package.json +++ b/examples/react-oidc-demo/package.json @@ -36,7 +36,7 @@ "typescript": "5.3.3", "vite": "5.0.12", "vite-plugin-dts": "^3.6.4", - "vitest": "1.2.2" + "vitest": "1.3.1" }, "license": "MIT", "publishConfig": { diff --git a/package.json b/package.json index 887e64718..6a92fbee9 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "tslib": "^2.6.2", "tsx": "4.7.0", "typescript": "5.3.3", - "vitest": "1.2.2" + "vitest": "1.3.1" }, "engines": { "node": "16.* || >= 18.0.0" diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index dd633bf17..e0b25fb03 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -41,7 +41,7 @@ "typescript": "5.3.3", "vite": "5.0.12", "vite-plugin-dts": "^3.7.2", - "vitest": "1.2.2" + "vitest": "1.3.1" }, "publishConfig": { "access": "public", diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 3b076d906..a22965e98 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -33,7 +33,7 @@ "typescript": "5.3.3", "vite": "5.0.12", "vite-plugin-dts": "3.7.2", - "vitest": "1.2.2" + "vitest": "1.3.1" }, "keywords": [ "oidc", diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index a64d678b3..0e3b4546b 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -64,7 +64,7 @@ "typescript": "5.3.3", "vite": "5.0.12", "vite-plugin-dts": "3.7.2", - "vitest": "1.2.2" + "vitest": "1.3.1" }, "license": "MIT", "publishConfig": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 26a42f325..8aa639a45 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -66,8 +66,8 @@ importers: specifier: 5.3.3 version: 5.3.3 vitest: - specifier: 1.2.2 - version: 1.2.2(jsdom@24.0.0) + specifier: 1.3.1 + version: 1.3.1(jsdom@24.0.0) examples/nextjs-demo: dependencies: @@ -91,7 +91,7 @@ importers: version: link:../../packages/oidc-client '@testing-library/jest-dom': specifier: 6.4.2 - version: 6.4.2(@types/jest@29.5.12)(vitest@1.2.2) + version: 6.4.2(@types/jest@29.5.12)(vitest@1.3.1) '@testing-library/user-event': specifier: 14.5.2 version: 14.5.2(@testing-library/dom@9.3.4) @@ -132,7 +132,7 @@ importers: devDependencies: '@testing-library/jest-dom': specifier: 6.4.2 - version: 6.4.2(@types/jest@29.5.12)(vitest@1.2.2) + version: 6.4.2(@types/jest@29.5.12)(vitest@1.3.1) '@testing-library/react': specifier: 14.2.1 version: 14.2.1(react-dom@18.2.0)(react@18.2.0) @@ -167,8 +167,8 @@ importers: specifier: ^3.6.4 version: 3.6.4(typescript@5.3.3)(vite@5.0.12) vitest: - specifier: 1.2.2 - version: 1.2.2(jsdom@24.0.0) + specifier: 1.3.1 + version: 1.3.1(jsdom@24.0.0) packages/oidc-client: dependencies: @@ -181,13 +181,13 @@ importers: version: 9.3.4 '@testing-library/jest-dom': specifier: 6.4.2 - version: 6.4.2(@types/jest@29.5.12)(vitest@1.2.2) + version: 6.4.2(@types/jest@29.5.12)(vitest@1.3.1) '@testing-library/react': specifier: 14.2.1 version: 14.2.1(react-dom@18.2.0)(react@18.2.0) '@vitest/coverage-v8': specifier: 1.2.2 - version: 1.2.2(vitest@1.2.2) + version: 1.2.2(vitest@1.3.1) cpy: specifier: 11.0.0 version: 11.0.0 @@ -207,14 +207,14 @@ importers: specifier: 3.7.2 version: 3.7.2(typescript@5.3.3)(vite@5.0.12) vitest: - specifier: 1.2.2 - version: 1.2.2(jsdom@24.0.0) + specifier: 1.3.1 + version: 1.3.1(jsdom@24.0.0) packages/oidc-client-service-worker: devDependencies: '@vitest/coverage-v8': specifier: 1.2.2 - version: 1.2.2(vitest@1.2.2) + version: 1.2.2(vitest@1.3.1) cpy: specifier: 11.0.0 version: 11.0.0 @@ -234,8 +234,8 @@ importers: specifier: ^3.7.2 version: 3.7.2(typescript@5.3.3)(vite@5.0.12) vitest: - specifier: 1.2.2 - version: 1.2.2(jsdom@24.0.0) + specifier: 1.3.1 + version: 1.3.1(jsdom@24.0.0) packages/react-oidc: dependencies: @@ -248,7 +248,7 @@ importers: devDependencies: '@testing-library/jest-dom': specifier: 6.4.2 - version: 6.4.2(@types/jest@29.5.12)(vitest@1.2.2) + version: 6.4.2(@types/jest@29.5.12)(vitest@1.3.1) '@testing-library/react': specifier: 14.2.1 version: 14.2.1(react-dom@18.2.0)(react@18.2.0) @@ -263,7 +263,7 @@ importers: version: 4.2.1(vite@5.0.12) '@vitest/coverage-v8': specifier: 1.2.2 - version: 1.2.2(vitest@1.2.2) + version: 1.2.2(vitest@1.3.1) cpy: specifier: 11.0.0 version: 11.0.0 @@ -298,8 +298,8 @@ importers: specifier: 3.7.2 version: 3.7.2(typescript@5.3.3)(vite@5.0.12) vitest: - specifier: 1.2.2 - version: 1.2.2(jsdom@24.0.0) + specifier: 1.3.1 + version: 1.3.1(jsdom@24.0.0) packages: @@ -1242,7 +1242,7 @@ packages: lz-string: 1.5.0 pretty-format: 27.5.1 - /@testing-library/jest-dom@6.4.2(@types/jest@29.5.12)(vitest@1.2.2): + /@testing-library/jest-dom@6.4.2(@types/jest@29.5.12)(vitest@1.3.1): resolution: {integrity: sha512-CzqH0AFymEMG48CpzXFriYYkOjk6ZGPCLMhW9e9jg3KMCn5OfJecF8GtGW7yGfR/IgCe3SX8BSwjdzI6BBbZLw==} engines: {node: '>=14', npm: '>=6', yarn: '>=1'} peerDependencies: @@ -1272,7 +1272,7 @@ packages: dom-accessibility-api: 0.6.3 lodash: 4.17.21 redent: 3.0.0 - vitest: 1.2.2(jsdom@24.0.0) + vitest: 1.3.1(jsdom@24.0.0) /@testing-library/react@14.2.1(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-sGdjws32ai5TLerhvzThYFbpnF9XtL65Cjf+gB0Dhr29BGqK+mAeN7SURSdu+eqgET4ANcWoC7FQpkaiGvBr+A==} @@ -1634,7 +1634,7 @@ packages: - supports-color dev: true - /@vitest/coverage-v8@1.2.2(vitest@1.2.2): + /@vitest/coverage-v8@1.2.2(vitest@1.3.1): resolution: {integrity: sha512-IHyKnDz18SFclIEEAHb9Y4Uxx0sPKC2VO1kdDCs1BF6Ip4S8rQprs971zIsooLUn7Afs71GRxWMWpkCGZpRMhw==} peerDependencies: vitest: ^1.0.0 @@ -1652,39 +1652,39 @@ packages: std-env: 3.7.0 test-exclude: 6.0.0 v8-to-istanbul: 9.2.0 - vitest: 1.2.2(jsdom@24.0.0) + vitest: 1.3.1(jsdom@24.0.0) transitivePeerDependencies: - supports-color dev: true - /@vitest/expect@1.2.2: - resolution: {integrity: sha512-3jpcdPAD7LwHUUiT2pZTj2U82I2Tcgg2oVPvKxhn6mDI2On6tfvPQTjAI4628GUGDZrCm4Zna9iQHm5cEexOAg==} + /@vitest/expect@1.3.1: + resolution: {integrity: sha512-xofQFwIzfdmLLlHa6ag0dPV8YsnKOCP1KdAeVVh34vSjN2dcUiXYCD9htu/9eM7t8Xln4v03U9HLxLpPlsXdZw==} dependencies: - '@vitest/spy': 1.2.2 - '@vitest/utils': 1.2.2 + '@vitest/spy': 1.3.1 + '@vitest/utils': 1.3.1 chai: 4.4.1 - /@vitest/runner@1.2.2: - resolution: {integrity: sha512-JctG7QZ4LSDXr5CsUweFgcpEvrcxOV1Gft7uHrvkQ+fsAVylmWQvnaAr/HDp3LAH1fztGMQZugIheTWjaGzYIg==} + /@vitest/runner@1.3.1: + resolution: {integrity: sha512-5FzF9c3jG/z5bgCnjr8j9LNq/9OxV2uEBAITOXfoe3rdZJTdO7jzThth7FXv/6b+kdY65tpRQB7WaKhNZwX+Kg==} dependencies: - '@vitest/utils': 1.2.2 + '@vitest/utils': 1.3.1 p-limit: 5.0.0 pathe: 1.1.2 - /@vitest/snapshot@1.2.2: - resolution: {integrity: sha512-SmGY4saEw1+bwE1th6S/cZmPxz/Q4JWsl7LvbQIky2tKE35US4gd0Mjzqfr84/4OD0tikGWaWdMja/nWL5NIPA==} + /@vitest/snapshot@1.3.1: + resolution: {integrity: sha512-EF++BZbt6RZmOlE3SuTPu/NfwBF6q4ABS37HHXzs2LUVPBLx2QoY/K0fKpRChSo8eLiuxcbCVfqKgx/dplCDuQ==} dependencies: magic-string: 0.30.7 pathe: 1.1.2 pretty-format: 29.7.0 - /@vitest/spy@1.2.2: - resolution: {integrity: sha512-k9Gcahssw8d7X3pSLq3e3XEu/0L78mUkCjivUqCQeXJm9clfXR/Td8+AP+VC1O6fKPIDLcHDTAmBOINVuv6+7g==} + /@vitest/spy@1.3.1: + resolution: {integrity: sha512-xAcW+S099ylC9VLU7eZfdT9myV67Nor9w9zhf0mGCYJSO+zM2839tOeROTdikOi/8Qeusffvxb/MyBSOja1Uig==} dependencies: tinyspy: 2.2.0 - /@vitest/utils@1.2.2: - resolution: {integrity: sha512-WKITBHLsBHlpjnDQahr+XK6RE7MiAsgrIkr0pGhQ9ygoxBfUeG0lUG5iLlzqjmKSlBv3+j5EGsriBzh+C3Tq9g==} + /@vitest/utils@1.3.1: + resolution: {integrity: sha512-d3Waie/299qqRyHTm2DjADeTaNdNSVsnwHPWrs20JMpjh6eiVq7ggggweO8rc4arhf6rRkWuHKwvxGvejUXZZQ==} dependencies: diff-sequences: 29.6.3 estree-walker: 3.0.3 @@ -3853,6 +3853,9 @@ packages: /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + /js-tokens@8.0.3: + resolution: {integrity: sha512-UfJMcSJc+SEXEl9lH/VLHSZbThQyLpw1vLO1Lb+j4RWDvG3N2f7yj3PVQA3cmkTBNldJ9eFnM+xEXxHIXrYiJw==} + /js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true @@ -5156,10 +5159,10 @@ packages: engines: {node: '>=8'} dev: true - /strip-literal@1.3.0: - resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} + /strip-literal@2.0.0: + resolution: {integrity: sha512-f9vHgsCWBq2ugHAkGMiiYY+AYG0D/cbloKKg0nhaaaSNsujdGIpVXCNsrJpCKr5M0f4aI31mr13UjY6GAuXCKA==} dependencies: - acorn: 8.11.3 + js-tokens: 8.0.3 /styled-jsx@5.1.1(react@18.2.0): resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} @@ -5465,8 +5468,8 @@ packages: engines: {node: '>= 0.10'} dev: true - /vite-node@1.2.2: - resolution: {integrity: sha512-1as4rDTgVWJO3n1uHmUYqq7nsFgINQ9u+mRcXpjeOMJUmviqNKjcZB7UfRZrlM7MjYXMKpuWp5oGkjaFLnjawg==} + /vite-node@1.3.1: + resolution: {integrity: sha512-azbRrqRxlWTJEVbzInZCTchx0X69M/XPTCz4H+TLvlTcR/xH/3hkRqhOakT41fMJCMzXTu4UvegkZiEoJAWvng==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true dependencies: @@ -5568,15 +5571,15 @@ packages: optionalDependencies: fsevents: 2.3.3 - /vitest@1.2.2(jsdom@24.0.0): - resolution: {integrity: sha512-d5Ouvrnms3GD9USIK36KG8OZ5bEvKEkITFtnGv56HFaSlbItJuYr7hv2Lkn903+AvRAgSixiamozUVfORUekjw==} + /vitest@1.3.1(jsdom@24.0.0): + resolution: {integrity: sha512-/1QJqXs8YbCrfv/GPQ05wAZf2eakUPLPa18vkJAKE7RXOKfVHqMZZ1WlTjiwl6Gcn65M5vpNUB6EFLnEdRdEXQ==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': ^1.0.0 - '@vitest/ui': ^1.0.0 + '@vitest/browser': 1.3.1 + '@vitest/ui': 1.3.1 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -5593,13 +5596,12 @@ packages: jsdom: optional: true dependencies: - '@vitest/expect': 1.2.2 - '@vitest/runner': 1.2.2 - '@vitest/snapshot': 1.2.2 - '@vitest/spy': 1.2.2 - '@vitest/utils': 1.2.2 + '@vitest/expect': 1.3.1 + '@vitest/runner': 1.3.1 + '@vitest/snapshot': 1.3.1 + '@vitest/spy': 1.3.1 + '@vitest/utils': 1.3.1 acorn-walk: 8.3.2 - cac: 6.7.14 chai: 4.4.1 debug: 4.3.4 execa: 8.0.1 @@ -5609,11 +5611,11 @@ packages: pathe: 1.1.2 picocolors: 1.0.0 std-env: 3.7.0 - strip-literal: 1.3.0 + strip-literal: 2.0.0 tinybench: 2.6.0 tinypool: 0.8.2 vite: 5.0.12(@types/node@20.11.16) - vite-node: 1.2.2 + vite-node: 1.3.1 why-is-node-running: 2.2.2 transitivePeerDependencies: - less From 4240a38d5d08e9ba4a30268138e1ed67a0883a99 Mon Sep 17 00:00:00 2001 From: GitHub Date: Thu, 7 Mar 2024 17:12:53 +0000 Subject: [PATCH 228/440] [skip ci] Update to version 7.19.2 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index e0b25fb03..13ad27890 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.19.1", + "version": "7.19.2", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 56fe6c9af..c257e4355 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.19.1'; +export default '7.19.2'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index a22965e98..ec5866d63 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.19.1", + "version": "7.19.2", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 56fe6c9af..c257e4355 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.19.1'; +export default '7.19.2'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 0e3b4546b..59ba14983 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.19.1", + "version": "7.19.2", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 02a6c7492a5d46dd40652eb3176898f73bd1c5dc Mon Sep 17 00:00:00 2001 From: GitHub Date: Thu, 7 Mar 2024 17:12:55 +0000 Subject: [PATCH 229/440] [skip ci] Generate changelog to version 7.19.2 --- CHANGELOG.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0b2eaef8f..9032697ce 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog -## 7.19.1 +## 7.19.2 + +- [95be8f7](https://github.com/AxaFrance/oidc-client/commit/95be8f79a3fc399b05322d0197ab674cf272326a) - build(npm): bump vitest from 1.2.2 to 1.3.1 (#1315), 2024-03-07 by *dependabot[bot]* + + +## v7.19.1 - [7b2b21a](https://github.com/AxaFrance/oidc-client/commit/7b2b21a9837210d0caaea9e16cfea9e9daeb8364) - build(npm): bump rimraf from 5.0.1 to 5.0.5 (#1313) (release), 2024-03-04 by *dependabot[bot]* - [d4c9ec6](https://github.com/AxaFrance/oidc-client/commit/d4c9ec6b8a4760c81f4d88bc72563cc810b52b00) - fix(oidc): when having multiple iframes, only the last one gets resolved (#1311) (alpha), 2024-02-28 by *Jean-Marc Rakotoarisoa* @@ -318,8 +323,3 @@ - [1684abb](https://github.com/AxaFrance/oidc-client/commit/1684abba7d982ecbd2f30610eb140e2ce4549814) - feat(oidc-client): move fetch to oidc-client (#1175) (release), 2023-11-06 by *Guillaume Chervet* -## v7.7.3 - -- [ac7f37b](https://github.com/AxaFrance/oidc-client/commit/ac7f37be28883edbe539eff02d0a6a054b2aab14) - build(npm): bump msw from 1.2.2 to 2.0.0 (#1165), 2023-10-29 by *dependabot[bot]* - - From 397629d2c9e1d58efab96c000247382cfc94ce24 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Mar 2024 19:51:52 +0100 Subject: [PATCH 230/440] build(npm): bump vite from 5.0.12 to 5.1.5 (#1319) Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.0.12 to 5.1.5. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v5.1.5/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- examples/oidc-client-demo/package.json | 2 +- examples/react-oidc-demo/package.json | 2 +- .../oidc-client-service-worker/package.json | 2 +- packages/oidc-client/package.json | 2 +- packages/react-oidc/package.json | 2 +- pnpm-lock.yaml | 124 +++++++++--------- 6 files changed, 67 insertions(+), 67 deletions(-) diff --git a/examples/oidc-client-demo/package.json b/examples/oidc-client-demo/package.json index 4655811b9..be0fc944f 100644 --- a/examples/oidc-client-demo/package.json +++ b/examples/oidc-client-demo/package.json @@ -32,6 +32,6 @@ "devDependencies": { "@types/node": "20.11.16", "cross-env": "^7.0.3", - "vite": " 5.0.12" + "vite": "5.1.5" } } diff --git a/examples/react-oidc-demo/package.json b/examples/react-oidc-demo/package.json index 0f4d4df08..c43382234 100644 --- a/examples/react-oidc-demo/package.json +++ b/examples/react-oidc-demo/package.json @@ -34,7 +34,7 @@ "cross-env": "^7.0.3", "jsdom": " 24.0.0", "typescript": "5.3.3", - "vite": "5.0.12", + "vite": "5.1.5", "vite-plugin-dts": "^3.6.4", "vitest": "1.3.1" }, diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 13ad27890..21e96ebd5 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -39,7 +39,7 @@ "cpy-cli": "^5.0.0", "rimraf": "5.0.5", "typescript": "5.3.3", - "vite": "5.0.12", + "vite": "5.1.5", "vite-plugin-dts": "^3.7.2", "vitest": "1.3.1" }, diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index ec5866d63..8b58f799d 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -31,7 +31,7 @@ "cpy-cli": "^5.0.0", "rimraf": "5.0.5", "typescript": "5.3.3", - "vite": "5.0.12", + "vite": "5.1.5", "vite-plugin-dts": "3.7.2", "vitest": "1.3.1" }, diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 59ba14983..26c5156f0 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -62,7 +62,7 @@ "react-dom": "^18.2.0", "rimraf": "5.0.5", "typescript": "5.3.3", - "vite": "5.0.12", + "vite": "5.1.5", "vite-plugin-dts": "3.7.2", "vitest": "1.3.1" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8aa639a45..4374a387d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -76,7 +76,7 @@ importers: version: link:../../packages/react-oidc next: specifier: latest - version: 14.1.1(react-dom@18.2.0)(react@18.2.0) + version: 14.1.3(react-dom@18.2.0)(react@18.2.0) react: specifier: latest version: 18.2.0 @@ -112,8 +112,8 @@ importers: specifier: ^7.0.3 version: 7.0.3 vite: - specifier: ' 5.0.12' - version: 5.0.12(@types/node@20.11.16) + specifier: 5.1.5 + version: 5.1.5(@types/node@20.11.16) examples/react-oidc-demo: dependencies: @@ -144,7 +144,7 @@ importers: version: 18.2.54 '@vitejs/plugin-react': specifier: 4.2.1 - version: 4.2.1(vite@5.0.12) + version: 4.2.1(vite@5.1.5) bootstrap: specifier: ^4.6.2 version: 4.6.2(jquery@3.7.1)(popper.js@1.16.1) @@ -161,11 +161,11 @@ importers: specifier: 5.3.3 version: 5.3.3 vite: - specifier: 5.0.12 - version: 5.0.12(@types/node@20.11.16) + specifier: 5.1.5 + version: 5.1.5(@types/node@20.11.16) vite-plugin-dts: specifier: ^3.6.4 - version: 3.6.4(typescript@5.3.3)(vite@5.0.12) + version: 3.6.4(typescript@5.3.3)(vite@5.1.5) vitest: specifier: 1.3.1 version: 1.3.1(jsdom@24.0.0) @@ -201,11 +201,11 @@ importers: specifier: 5.3.3 version: 5.3.3 vite: - specifier: 5.0.12 - version: 5.0.12(@types/node@20.11.16) + specifier: 5.1.5 + version: 5.1.5(@types/node@20.11.16) vite-plugin-dts: specifier: 3.7.2 - version: 3.7.2(typescript@5.3.3)(vite@5.0.12) + version: 3.7.2(typescript@5.3.3)(vite@5.1.5) vitest: specifier: 1.3.1 version: 1.3.1(jsdom@24.0.0) @@ -228,11 +228,11 @@ importers: specifier: 5.3.3 version: 5.3.3 vite: - specifier: 5.0.12 - version: 5.0.12(@types/node@20.11.16) + specifier: 5.1.5 + version: 5.1.5(@types/node@20.11.16) vite-plugin-dts: specifier: ^3.7.2 - version: 3.7.2(typescript@5.3.3)(vite@5.0.12) + version: 3.7.2(typescript@5.3.3)(vite@5.1.5) vitest: specifier: 1.3.1 version: 1.3.1(jsdom@24.0.0) @@ -260,7 +260,7 @@ importers: version: 18.2.39 '@vitejs/plugin-react': specifier: 4.2.1 - version: 4.2.1(vite@5.0.12) + version: 4.2.1(vite@5.1.5) '@vitest/coverage-v8': specifier: 1.2.2 version: 1.2.2(vitest@1.3.1) @@ -292,11 +292,11 @@ importers: specifier: 5.3.3 version: 5.3.3 vite: - specifier: 5.0.12 - version: 5.0.12(@types/node@20.11.16) + specifier: 5.1.5 + version: 5.1.5(@types/node@20.11.16) vite-plugin-dts: specifier: 3.7.2 - version: 3.7.2(typescript@5.3.3)(vite@5.0.12) + version: 3.7.2(typescript@5.3.3)(vite@5.1.5) vitest: specifier: 1.3.1 version: 1.3.1(jsdom@24.0.0) @@ -944,12 +944,12 @@ packages: strict-event-emitter: 0.5.1 dev: true - /@next/env@14.1.1: - resolution: {integrity: sha512-7CnQyD5G8shHxQIIg3c7/pSeYFeMhsNbpU/bmvH7ZnDql7mNRgg8O2JZrhrc/soFnfBnKP4/xXNiiSIPn2w8gA==} + /@next/env@14.1.3: + resolution: {integrity: sha512-VhgXTvrgeBRxNPjyfBsDIMvgsKDxjlpw4IAUsHCX8Gjl1vtHUYRT3+xfQ/wwvLPDd/6kqfLqk9Pt4+7gysuCKQ==} dev: false - /@next/swc-darwin-arm64@14.1.1: - resolution: {integrity: sha512-yDjSFKQKTIjyT7cFv+DqQfW5jsD+tVxXTckSe1KIouKk75t1qZmj/mV3wzdmFb0XHVGtyRjDMulfVG8uCKemOQ==} + /@next/swc-darwin-arm64@14.1.3: + resolution: {integrity: sha512-LALu0yIBPRiG9ANrD5ncB3pjpO0Gli9ZLhxdOu6ZUNf3x1r3ea1rd9Q+4xxUkGrUXLqKVK9/lDkpYIJaCJ6AHQ==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] @@ -957,8 +957,8 @@ packages: dev: false optional: true - /@next/swc-darwin-x64@14.1.1: - resolution: {integrity: sha512-KCQmBL0CmFmN8D64FHIZVD9I4ugQsDBBEJKiblXGgwn7wBCSe8N4Dx47sdzl4JAg39IkSN5NNrr8AniXLMb3aw==} + /@next/swc-darwin-x64@14.1.3: + resolution: {integrity: sha512-E/9WQeXxkqw2dfcn5UcjApFgUq73jqNKaE5bysDm58hEUdUGedVrnRhblhJM7HbCZNhtVl0j+6TXsK0PuzXTCg==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] @@ -966,8 +966,8 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-gnu@14.1.1: - resolution: {integrity: sha512-YDQfbWyW0JMKhJf/T4eyFr4b3tceTorQ5w2n7I0mNVTFOvu6CGEzfwT3RSAQGTi/FFMTFcuspPec/7dFHuP7Eg==} + /@next/swc-linux-arm64-gnu@14.1.3: + resolution: {integrity: sha512-USArX9B+3rZSXYLFvgy0NVWQgqh6LHWDmMt38O4lmiJNQcwazeI6xRvSsliDLKt+78KChVacNiwvOMbl6g6BBw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -975,8 +975,8 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-musl@14.1.1: - resolution: {integrity: sha512-fiuN/OG6sNGRN/bRFxRvV5LyzLB8gaL8cbDH5o3mEiVwfcMzyE5T//ilMmaTrnA8HLMS6hoz4cHOu6Qcp9vxgQ==} + /@next/swc-linux-arm64-musl@14.1.3: + resolution: {integrity: sha512-esk1RkRBLSIEp1qaQXv1+s6ZdYzuVCnDAZySpa62iFTMGTisCyNQmqyCTL9P+cLJ4N9FKCI3ojtSfsyPHJDQNw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -984,8 +984,8 @@ packages: dev: false optional: true - /@next/swc-linux-x64-gnu@14.1.1: - resolution: {integrity: sha512-rv6AAdEXoezjbdfp3ouMuVqeLjE1Bin0AuE6qxE6V9g3Giz5/R3xpocHoAi7CufRR+lnkuUjRBn05SYJ83oKNQ==} + /@next/swc-linux-x64-gnu@14.1.3: + resolution: {integrity: sha512-8uOgRlYEYiKo0L8YGeS+3TudHVDWDjPVDUcST+z+dUzgBbTEwSSIaSgF/vkcC1T/iwl4QX9iuUyUdQEl0Kxalg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -993,8 +993,8 @@ packages: dev: false optional: true - /@next/swc-linux-x64-musl@14.1.1: - resolution: {integrity: sha512-YAZLGsaNeChSrpz/G7MxO3TIBLaMN8QWMr3X8bt6rCvKovwU7GqQlDu99WdvF33kI8ZahvcdbFsy4jAFzFX7og==} + /@next/swc-linux-x64-musl@14.1.3: + resolution: {integrity: sha512-DX2zqz05ziElLoxskgHasaJBREC5Y9TJcbR2LYqu4r7naff25B4iXkfXWfcp69uD75/0URmmoSgT8JclJtrBoQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -1002,8 +1002,8 @@ packages: dev: false optional: true - /@next/swc-win32-arm64-msvc@14.1.1: - resolution: {integrity: sha512-1L4mUYPBMvVDMZg1inUYyPvFSduot0g73hgfD9CODgbr4xiTYe0VOMTZzaRqYJYBA9mana0x4eaAaypmWo1r5A==} + /@next/swc-win32-arm64-msvc@14.1.3: + resolution: {integrity: sha512-HjssFsCdsD4GHstXSQxsi2l70F/5FsRTRQp8xNgmQs15SxUfUJRvSI9qKny/jLkY3gLgiCR3+6A7wzzK0DBlfA==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] @@ -1011,8 +1011,8 @@ packages: dev: false optional: true - /@next/swc-win32-ia32-msvc@14.1.1: - resolution: {integrity: sha512-jvIE9tsuj9vpbbXlR5YxrghRfMuG0Qm/nZ/1KDHc+y6FpnZ/apsgh+G6t15vefU0zp3WSpTMIdXRUsNl/7RSuw==} + /@next/swc-win32-ia32-msvc@14.1.3: + resolution: {integrity: sha512-DRuxD5axfDM1/Ue4VahwSxl1O5rn61hX8/sF0HY8y0iCbpqdxw3rB3QasdHn/LJ6Wb2y5DoWzXcz3L1Cr+Thrw==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] @@ -1020,8 +1020,8 @@ packages: dev: false optional: true - /@next/swc-win32-x64-msvc@14.1.1: - resolution: {integrity: sha512-S6K6EHDU5+1KrBDLko7/c1MNy/Ya73pIAmvKeFwsF4RmBFJSO7/7YeD4FnZ4iBdzE69PpQ4sOMU9ORKeNuxe8A==} + /@next/swc-win32-x64-msvc@14.1.3: + resolution: {integrity: sha512-uC2DaDoWH7h1P/aJ4Fok3Xiw6P0Lo4ez7NbowW2VGNXw/Xv6tOuLUcxhBYZxsSUJtpeknCi8/fvnSpyCFp4Rcg==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -1618,7 +1618,7 @@ packages: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} dev: true - /@vitejs/plugin-react@4.2.1(vite@5.0.12): + /@vitejs/plugin-react@4.2.1(vite@5.1.5): resolution: {integrity: sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -1629,7 +1629,7 @@ packages: '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.23.9) '@types/babel__core': 7.20.5 react-refresh: 0.14.0 - vite: 5.0.12(@types/node@20.11.16) + vite: 5.1.5(@types/node@20.11.16) transitivePeerDependencies: - supports-color dev: true @@ -4217,8 +4217,8 @@ packages: resolution: {integrity: sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==} dev: true - /next@14.1.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-McrGJqlGSHeaz2yTRPkEucxQKe5Zq7uPwyeHNmJaZNY4wx9E9QdxmTp310agFRoMuIYgQrCrT3petg13fSVOww==} + /next@14.1.3(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-oexgMV2MapI0UIWiXKkixF8J8ORxpy64OuJ/J9oVUmIthXOUCcuVEZX+dtpgq7wIfIqtBwQsKEDXejcjTsan9g==} engines: {node: '>=18.17.0'} hasBin: true peerDependencies: @@ -4232,7 +4232,7 @@ packages: sass: optional: true dependencies: - '@next/env': 14.1.1 + '@next/env': 14.1.3 '@swc/helpers': 0.5.2 busboy: 1.6.0 caniuse-lite: 1.0.30001584 @@ -4242,15 +4242,15 @@ packages: react-dom: 18.2.0(react@18.2.0) styled-jsx: 5.1.1(react@18.2.0) optionalDependencies: - '@next/swc-darwin-arm64': 14.1.1 - '@next/swc-darwin-x64': 14.1.1 - '@next/swc-linux-arm64-gnu': 14.1.1 - '@next/swc-linux-arm64-musl': 14.1.1 - '@next/swc-linux-x64-gnu': 14.1.1 - '@next/swc-linux-x64-musl': 14.1.1 - '@next/swc-win32-arm64-msvc': 14.1.1 - '@next/swc-win32-ia32-msvc': 14.1.1 - '@next/swc-win32-x64-msvc': 14.1.1 + '@next/swc-darwin-arm64': 14.1.3 + '@next/swc-darwin-x64': 14.1.3 + '@next/swc-linux-arm64-gnu': 14.1.3 + '@next/swc-linux-arm64-musl': 14.1.3 + '@next/swc-linux-x64-gnu': 14.1.3 + '@next/swc-linux-x64-musl': 14.1.3 + '@next/swc-win32-arm64-msvc': 14.1.3 + '@next/swc-win32-ia32-msvc': 14.1.3 + '@next/swc-win32-x64-msvc': 14.1.3 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros @@ -4560,8 +4560,8 @@ packages: source-map-js: 1.0.2 dev: false - /postcss@8.4.33: - resolution: {integrity: sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==} + /postcss@8.4.35: + resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.7 @@ -5477,7 +5477,7 @@ packages: debug: 4.3.4 pathe: 1.1.2 picocolors: 1.0.0 - vite: 5.0.12(@types/node@20.11.16) + vite: 5.1.5(@types/node@20.11.16) transitivePeerDependencies: - '@types/node' - less @@ -5488,7 +5488,7 @@ packages: - supports-color - terser - /vite-plugin-dts@3.6.4(typescript@5.3.3)(vite@5.0.12): + /vite-plugin-dts@3.6.4(typescript@5.3.3)(vite@5.1.5): resolution: {integrity: sha512-yOVhUI/kQhtS6lCXRYYLv2UUf9bftcwQK9ROxCX2ul17poLQs02ctWX7+vXB8GPRzH8VCK3jebEFtPqqijXx6w==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -5504,7 +5504,7 @@ packages: debug: 4.3.4 kolorist: 1.8.0 typescript: 5.3.3 - vite: 5.0.12(@types/node@20.11.16) + vite: 5.1.5(@types/node@20.11.16) vue-tsc: 1.8.25(typescript@5.3.3) transitivePeerDependencies: - '@types/node' @@ -5512,7 +5512,7 @@ packages: - supports-color dev: true - /vite-plugin-dts@3.7.2(typescript@5.3.3)(vite@5.0.12): + /vite-plugin-dts@3.7.2(typescript@5.3.3)(vite@5.1.5): resolution: {integrity: sha512-kg//1nDA01b8rufJf4TsvYN8LMkdwv0oBYpiQi6nRwpHyue+wTlhrBiqgipdFpMnW1oOYv6ywmzE5B0vg6vSEA==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -5528,7 +5528,7 @@ packages: debug: 4.3.4 kolorist: 1.8.0 typescript: 5.3.3 - vite: 5.0.12(@types/node@20.11.16) + vite: 5.1.5(@types/node@20.11.16) vue-tsc: 1.8.27(typescript@5.3.3) transitivePeerDependencies: - '@types/node' @@ -5536,8 +5536,8 @@ packages: - supports-color dev: true - /vite@5.0.12(@types/node@20.11.16): - resolution: {integrity: sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w==} + /vite@5.1.5(@types/node@20.11.16): + resolution: {integrity: sha512-BdN1xh0Of/oQafhU+FvopafUp6WaYenLU/NFoL5WyJL++GxkNfieKzBhM24H3HVsPQrlAqB7iJYTHabzaRed5Q==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -5566,7 +5566,7 @@ packages: dependencies: '@types/node': 20.11.16 esbuild: 0.19.12 - postcss: 8.4.33 + postcss: 8.4.35 rollup: 4.9.6 optionalDependencies: fsevents: 2.3.3 @@ -5614,7 +5614,7 @@ packages: strip-literal: 2.0.0 tinybench: 2.6.0 tinypool: 0.8.2 - vite: 5.0.12(@types/node@20.11.16) + vite: 5.1.5(@types/node@20.11.16) vite-node: 1.3.1 why-is-node-running: 2.2.2 transitivePeerDependencies: From ee9d0b335c9f75b3d8f46b6a05489e84071a949c Mon Sep 17 00:00:00 2001 From: GitHub Date: Thu, 7 Mar 2024 18:54:28 +0000 Subject: [PATCH 231/440] [skip ci] Update to version 7.19.3 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 21e96ebd5..14c01e951 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.19.2", + "version": "7.19.3", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index c257e4355..b8d93a687 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.19.2'; +export default '7.19.3'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 8b58f799d..9e233319c 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.19.2", + "version": "7.19.3", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index c257e4355..b8d93a687 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.19.2'; +export default '7.19.3'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 26c5156f0..3af76a38d 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.19.2", + "version": "7.19.3", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From d15454ecb6bc4da5b4f1a867c820a54f507671a1 Mon Sep 17 00:00:00 2001 From: GitHub Date: Thu, 7 Mar 2024 18:54:30 +0000 Subject: [PATCH 232/440] [skip ci] Generate changelog to version 7.19.3 --- CHANGELOG.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9032697ce..fc05e0daa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog -## 7.19.2 +## 7.19.3 + +- [397629d](https://github.com/AxaFrance/oidc-client/commit/397629d2c9e1d58efab96c000247382cfc94ce24) - build(npm): bump vite from 5.0.12 to 5.1.5 (#1319), 2024-03-07 by *dependabot[bot]* + + +## v7.19.2 - [95be8f7](https://github.com/AxaFrance/oidc-client/commit/95be8f79a3fc399b05322d0197ab674cf272326a) - build(npm): bump vitest from 1.2.2 to 1.3.1 (#1315), 2024-03-07 by *dependabot[bot]* @@ -318,8 +323,3 @@ - [9549b9a](https://github.com/AxaFrance/oidc-client/commit/9549b9ae613d3cf357cb4b760fc8cc9e0af80c44) - doc(oidc-client): typo in method name, 2023-11-07 by *Guillaume Chervet* -## v7.8.0 - -- [1684abb](https://github.com/AxaFrance/oidc-client/commit/1684abba7d982ecbd2f30610eb140e2ce4549814) - feat(oidc-client): move fetch to oidc-client (#1175) (release), 2023-11-06 by *Guillaume Chervet* - - From be24bbab3d699ff003cb14302dedc3463b1f3a1b Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Tue, 12 Mar 2024 21:07:38 +0100 Subject: [PATCH 233/440] refactor(all): update build libraries (release) --- examples/oidc-client-demo/package.json | 6 +- examples/react-oidc-demo/package.json | 10 +- .../oidc-client-service-worker/package.json | 10 +- packages/oidc-client/package.json | 10 +- packages/react-oidc/package.json | 10 +- pnpm-lock.yaml | 541 ++++++++++-------- 6 files changed, 331 insertions(+), 256 deletions(-) diff --git a/examples/oidc-client-demo/package.json b/examples/oidc-client-demo/package.json index be0fc944f..1595184da 100644 --- a/examples/oidc-client-demo/package.json +++ b/examples/oidc-client-demo/package.json @@ -7,7 +7,7 @@ "@testing-library/jest-dom": "6.4.2", "@testing-library/user-event": "14.5.2", "@types/jest": "29.5.12", - "typescript": "^5.3.3", + "typescript": "5.4.2", "web-vitals": "3.5.2" }, "scripts": { @@ -30,8 +30,8 @@ ] }, "devDependencies": { - "@types/node": "20.11.16", + "@types/node": "20.11.26", "cross-env": "^7.0.3", - "vite": "5.1.5" + "vite": "5.1.6" } } diff --git a/examples/react-oidc-demo/package.json b/examples/react-oidc-demo/package.json index c43382234..a3ca38b62 100644 --- a/examples/react-oidc-demo/package.json +++ b/examples/react-oidc-demo/package.json @@ -21,21 +21,21 @@ "@axa-fr/react-oidc":"workspace:*", "react": "^18.2.0", "react-dom": "^18.2.0", - "react-router-dom": "^6.21.1" + "react-router-dom": "^6.22.3" }, "devDependencies": { "@testing-library/jest-dom": "6.4.2", "@testing-library/react": "14.2.1", "@testing-library/user-event": "14.5.2", - "@types/react": "18.2.54", + "@types/react": "18.2.65", "@vitejs/plugin-react": "4.2.1", "bootstrap": "^4.6.2", "copyfiles": "2.4.1", "cross-env": "^7.0.3", "jsdom": " 24.0.0", - "typescript": "5.3.3", - "vite": "5.1.5", - "vite-plugin-dts": "^3.6.4", + "typescript": "5.4.2", + "vite": "5.1.6", + "vite-plugin-dts": "3.7.3", "vitest": "1.3.1" }, "license": "MIT", diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 14c01e951..7a7fd677b 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -34,13 +34,13 @@ "lint": "eslint src" }, "devDependencies": { - "@vitest/coverage-v8": "1.2.2", - "cpy": "11.0.0", + "@vitest/coverage-v8": "1.3.1", + "cpy": "11.0.1", "cpy-cli": "^5.0.0", "rimraf": "5.0.5", - "typescript": "5.3.3", - "vite": "5.1.5", - "vite-plugin-dts": "^3.7.2", + "typescript": "5.4.2", + "vite": "5.1.6", + "vite-plugin-dts": "3.7.3", "vitest": "1.3.1" }, "publishConfig": { diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 9e233319c..065c08b6c 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -26,13 +26,13 @@ "@testing-library/dom": "9.3.4", "@testing-library/jest-dom": "6.4.2", "@testing-library/react": "14.2.1", - "@vitest/coverage-v8": "1.2.2", - "cpy": "11.0.0", + "@vitest/coverage-v8": "1.3.1", + "cpy": "11.0.1", "cpy-cli": "^5.0.0", "rimraf": "5.0.5", - "typescript": "5.3.3", - "vite": "5.1.5", - "vite-plugin-dts": "3.7.2", + "typescript": "5.4.2", + "vite": "5.1.6", + "vite-plugin-dts": "3.7.3", "vitest": "1.3.1" }, "keywords": [ diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 3af76a38d..b61aa7a50 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -52,8 +52,8 @@ "@testing-library/user-event": "14.5.2", "@types/react": "^18.2.39", "@vitejs/plugin-react": "4.2.1", - "@vitest/coverage-v8": "1.2.2", - "cpy": "11.0.0", + "@vitest/coverage-v8": "1.3.1", + "cpy": "11.0.1", "cpy-cli": "^5.0.0", "cross-env": "^7.0.3", "jsdom": "24.0.0", @@ -61,9 +61,9 @@ "react": "^18.2.0", "react-dom": "^18.2.0", "rimraf": "5.0.5", - "typescript": "5.3.3", - "vite": "5.1.5", - "vite-plugin-dts": "3.7.2", + "typescript": "5.4.2", + "vite": "5.1.6", + "vite-plugin-dts": "3.7.3", "vitest": "1.3.1" }, "license": "MIT", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4374a387d..17870fdd9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -67,7 +67,7 @@ importers: version: 5.3.3 vitest: specifier: 1.3.1 - version: 1.3.1(jsdom@24.0.0) + version: 1.3.1 examples/nextjs-demo: dependencies: @@ -76,7 +76,7 @@ importers: version: link:../../packages/react-oidc next: specifier: latest - version: 14.1.3(react-dom@18.2.0)(react@18.2.0) + version: 14.1.0(react-dom@18.2.0)(react@18.2.0) react: specifier: latest version: 18.2.0 @@ -99,21 +99,21 @@ importers: specifier: 29.5.12 version: 29.5.12 typescript: - specifier: ^5.3.3 - version: 5.3.3 + specifier: 5.4.2 + version: 5.4.2 web-vitals: specifier: 3.5.2 version: 3.5.2 devDependencies: '@types/node': - specifier: 20.11.16 - version: 20.11.16 + specifier: 20.11.26 + version: 20.11.26 cross-env: specifier: ^7.0.3 version: 7.0.3 vite: - specifier: 5.1.5 - version: 5.1.5(@types/node@20.11.16) + specifier: 5.1.6 + version: 5.1.6(@types/node@20.11.26) examples/react-oidc-demo: dependencies: @@ -127,12 +127,12 @@ importers: specifier: ^18.2.0 version: 18.2.0(react@18.2.0) react-router-dom: - specifier: ^6.21.1 - version: 6.21.1(react-dom@18.2.0)(react@18.2.0) + specifier: ^6.22.3 + version: 6.22.3(react-dom@18.2.0)(react@18.2.0) devDependencies: '@testing-library/jest-dom': specifier: 6.4.2 - version: 6.4.2(@types/jest@29.5.12)(vitest@1.3.1) + version: 6.4.2(vitest@1.3.1) '@testing-library/react': specifier: 14.2.1 version: 14.2.1(react-dom@18.2.0)(react@18.2.0) @@ -140,11 +140,11 @@ importers: specifier: 14.5.2 version: 14.5.2(@testing-library/dom@9.3.4) '@types/react': - specifier: 18.2.54 - version: 18.2.54 + specifier: 18.2.65 + version: 18.2.65 '@vitejs/plugin-react': specifier: 4.2.1 - version: 4.2.1(vite@5.1.5) + version: 4.2.1(vite@5.1.6) bootstrap: specifier: ^4.6.2 version: 4.6.2(jquery@3.7.1)(popper.js@1.16.1) @@ -158,14 +158,14 @@ importers: specifier: ' 24.0.0' version: 24.0.0 typescript: - specifier: 5.3.3 - version: 5.3.3 + specifier: 5.4.2 + version: 5.4.2 vite: - specifier: 5.1.5 - version: 5.1.5(@types/node@20.11.16) + specifier: 5.1.6 + version: 5.1.6(@types/node@20.11.26) vite-plugin-dts: - specifier: ^3.6.4 - version: 3.6.4(typescript@5.3.3)(vite@5.1.5) + specifier: 3.7.3 + version: 3.7.3(typescript@5.4.2)(vite@5.1.6) vitest: specifier: 1.3.1 version: 1.3.1(jsdom@24.0.0) @@ -181,16 +181,16 @@ importers: version: 9.3.4 '@testing-library/jest-dom': specifier: 6.4.2 - version: 6.4.2(@types/jest@29.5.12)(vitest@1.3.1) + version: 6.4.2(vitest@1.3.1) '@testing-library/react': specifier: 14.2.1 version: 14.2.1(react-dom@18.2.0)(react@18.2.0) '@vitest/coverage-v8': - specifier: 1.2.2 - version: 1.2.2(vitest@1.3.1) + specifier: 1.3.1 + version: 1.3.1(vitest@1.3.1) cpy: - specifier: 11.0.0 - version: 11.0.0 + specifier: 11.0.1 + version: 11.0.1 cpy-cli: specifier: ^5.0.0 version: 5.0.0 @@ -198,26 +198,26 @@ importers: specifier: 5.0.5 version: 5.0.5 typescript: - specifier: 5.3.3 - version: 5.3.3 + specifier: 5.4.2 + version: 5.4.2 vite: - specifier: 5.1.5 - version: 5.1.5(@types/node@20.11.16) + specifier: 5.1.6 + version: 5.1.6(@types/node@20.11.26) vite-plugin-dts: - specifier: 3.7.2 - version: 3.7.2(typescript@5.3.3)(vite@5.1.5) + specifier: 3.7.3 + version: 3.7.3(typescript@5.4.2)(vite@5.1.6) vitest: specifier: 1.3.1 - version: 1.3.1(jsdom@24.0.0) + version: 1.3.1 packages/oidc-client-service-worker: devDependencies: '@vitest/coverage-v8': - specifier: 1.2.2 - version: 1.2.2(vitest@1.3.1) + specifier: 1.3.1 + version: 1.3.1(vitest@1.3.1) cpy: - specifier: 11.0.0 - version: 11.0.0 + specifier: 11.0.1 + version: 11.0.1 cpy-cli: specifier: ^5.0.0 version: 5.0.0 @@ -225,17 +225,17 @@ importers: specifier: 5.0.5 version: 5.0.5 typescript: - specifier: 5.3.3 - version: 5.3.3 + specifier: 5.4.2 + version: 5.4.2 vite: - specifier: 5.1.5 - version: 5.1.5(@types/node@20.11.16) + specifier: 5.1.6 + version: 5.1.6(@types/node@20.11.26) vite-plugin-dts: - specifier: ^3.7.2 - version: 3.7.2(typescript@5.3.3)(vite@5.1.5) + specifier: 3.7.3 + version: 3.7.3(typescript@5.4.2)(vite@5.1.6) vitest: specifier: 1.3.1 - version: 1.3.1(jsdom@24.0.0) + version: 1.3.1 packages/react-oidc: dependencies: @@ -248,7 +248,7 @@ importers: devDependencies: '@testing-library/jest-dom': specifier: 6.4.2 - version: 6.4.2(@types/jest@29.5.12)(vitest@1.3.1) + version: 6.4.2(vitest@1.3.1) '@testing-library/react': specifier: 14.2.1 version: 14.2.1(react-dom@18.2.0)(react@18.2.0) @@ -260,13 +260,13 @@ importers: version: 18.2.39 '@vitejs/plugin-react': specifier: 4.2.1 - version: 4.2.1(vite@5.1.5) + version: 4.2.1(vite@5.1.6) '@vitest/coverage-v8': - specifier: 1.2.2 - version: 1.2.2(vitest@1.3.1) + specifier: 1.3.1 + version: 1.3.1(vitest@1.3.1) cpy: - specifier: 11.0.0 - version: 11.0.0 + specifier: 11.0.1 + version: 11.0.1 cpy-cli: specifier: ^5.0.0 version: 5.0.0 @@ -278,7 +278,7 @@ importers: version: 24.0.0 msw: specifier: 2.1.6 - version: 2.1.6(typescript@5.3.3) + version: 2.1.6(typescript@5.4.2) react: specifier: ^18.2.0 version: 18.2.0 @@ -289,14 +289,14 @@ importers: specifier: 5.0.5 version: 5.0.5 typescript: - specifier: 5.3.3 - version: 5.3.3 + specifier: 5.4.2 + version: 5.4.2 vite: - specifier: 5.1.5 - version: 5.1.5(@types/node@20.11.16) + specifier: 5.1.6 + version: 5.1.6(@types/node@20.11.26) vite-plugin-dts: - specifier: 3.7.2 - version: 3.7.2(typescript@5.3.3)(vite@5.1.5) + specifier: 3.7.3 + version: 3.7.3(typescript@5.4.2)(vite@5.1.6) vitest: specifier: 1.3.1 version: 1.3.1(jsdom@24.0.0) @@ -817,6 +817,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: jest-get-type: 29.6.3 + dev: false /@jest/schemas@29.6.3: resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} @@ -831,9 +832,10 @@ packages: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 20.11.16 + '@types/node': 20.11.26 '@types/yargs': 17.0.32 chalk: 4.1.2 + dev: false /@jridgewell/gen-mapping@0.3.3: resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} @@ -874,26 +876,6 @@ packages: - '@types/node' dev: true - /@microsoft/api-extractor@7.38.5: - resolution: {integrity: sha512-c/w2zfqBcBJxaCzpJNvFoouWewcYrUOfeu5ZkWCCIXTF9a/gXM85RGevEzlMAIEGM/kssAAZSXRJIZ3Q5vLFow==} - hasBin: true - dependencies: - '@microsoft/api-extractor-model': 7.28.3 - '@microsoft/tsdoc': 0.14.2 - '@microsoft/tsdoc-config': 0.16.2 - '@rushstack/node-core-library': 3.62.0 - '@rushstack/rig-package': 0.5.1 - '@rushstack/ts-command-line': 4.17.1 - colors: 1.2.5 - lodash: 4.17.21 - resolve: 1.22.8 - semver: 7.5.4 - source-map: 0.6.1 - typescript: 5.0.4 - transitivePeerDependencies: - - '@types/node' - dev: true - /@microsoft/api-extractor@7.39.0: resolution: {integrity: sha512-PuXxzadgnvp+wdeZFPonssRAj/EW4Gm4s75TXzPk09h3wJ8RS3x7typf95B4vwZRrPTQBGopdUl+/vHvlPdAcg==} hasBin: true @@ -944,12 +926,12 @@ packages: strict-event-emitter: 0.5.1 dev: true - /@next/env@14.1.3: - resolution: {integrity: sha512-VhgXTvrgeBRxNPjyfBsDIMvgsKDxjlpw4IAUsHCX8Gjl1vtHUYRT3+xfQ/wwvLPDd/6kqfLqk9Pt4+7gysuCKQ==} + /@next/env@14.1.0: + resolution: {integrity: sha512-Py8zIo+02ht82brwwhTg36iogzFqGLPXlRGKQw5s+qP/kMNc4MAyDeEwBKDijk6zTIbegEgu8Qy7C1LboslQAw==} dev: false - /@next/swc-darwin-arm64@14.1.3: - resolution: {integrity: sha512-LALu0yIBPRiG9ANrD5ncB3pjpO0Gli9ZLhxdOu6ZUNf3x1r3ea1rd9Q+4xxUkGrUXLqKVK9/lDkpYIJaCJ6AHQ==} + /@next/swc-darwin-arm64@14.1.0: + resolution: {integrity: sha512-nUDn7TOGcIeyQni6lZHfzNoo9S0euXnu0jhsbMOmMJUBfgsnESdjN97kM7cBqQxZa8L/bM9om/S5/1dzCrW6wQ==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] @@ -957,8 +939,8 @@ packages: dev: false optional: true - /@next/swc-darwin-x64@14.1.3: - resolution: {integrity: sha512-E/9WQeXxkqw2dfcn5UcjApFgUq73jqNKaE5bysDm58hEUdUGedVrnRhblhJM7HbCZNhtVl0j+6TXsK0PuzXTCg==} + /@next/swc-darwin-x64@14.1.0: + resolution: {integrity: sha512-1jgudN5haWxiAl3O1ljUS2GfupPmcftu2RYJqZiMJmmbBT5M1XDffjUtRUzP4W3cBHsrvkfOFdQ71hAreNQP6g==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] @@ -966,8 +948,8 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-gnu@14.1.3: - resolution: {integrity: sha512-USArX9B+3rZSXYLFvgy0NVWQgqh6LHWDmMt38O4lmiJNQcwazeI6xRvSsliDLKt+78KChVacNiwvOMbl6g6BBw==} + /@next/swc-linux-arm64-gnu@14.1.0: + resolution: {integrity: sha512-RHo7Tcj+jllXUbK7xk2NyIDod3YcCPDZxj1WLIYxd709BQ7WuRYl3OWUNG+WUfqeQBds6kvZYlc42NJJTNi4tQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -975,8 +957,8 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-musl@14.1.3: - resolution: {integrity: sha512-esk1RkRBLSIEp1qaQXv1+s6ZdYzuVCnDAZySpa62iFTMGTisCyNQmqyCTL9P+cLJ4N9FKCI3ojtSfsyPHJDQNw==} + /@next/swc-linux-arm64-musl@14.1.0: + resolution: {integrity: sha512-v6kP8sHYxjO8RwHmWMJSq7VZP2nYCkRVQ0qolh2l6xroe9QjbgV8siTbduED4u0hlk0+tjS6/Tuy4n5XCp+l6g==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -984,8 +966,8 @@ packages: dev: false optional: true - /@next/swc-linux-x64-gnu@14.1.3: - resolution: {integrity: sha512-8uOgRlYEYiKo0L8YGeS+3TudHVDWDjPVDUcST+z+dUzgBbTEwSSIaSgF/vkcC1T/iwl4QX9iuUyUdQEl0Kxalg==} + /@next/swc-linux-x64-gnu@14.1.0: + resolution: {integrity: sha512-zJ2pnoFYB1F4vmEVlb/eSe+VH679zT1VdXlZKX+pE66grOgjmKJHKacf82g/sWE4MQ4Rk2FMBCRnX+l6/TVYzQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -993,8 +975,8 @@ packages: dev: false optional: true - /@next/swc-linux-x64-musl@14.1.3: - resolution: {integrity: sha512-DX2zqz05ziElLoxskgHasaJBREC5Y9TJcbR2LYqu4r7naff25B4iXkfXWfcp69uD75/0URmmoSgT8JclJtrBoQ==} + /@next/swc-linux-x64-musl@14.1.0: + resolution: {integrity: sha512-rbaIYFt2X9YZBSbH/CwGAjbBG2/MrACCVu2X0+kSykHzHnYH5FjHxwXLkcoJ10cX0aWCEynpu+rP76x0914atg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -1002,8 +984,8 @@ packages: dev: false optional: true - /@next/swc-win32-arm64-msvc@14.1.3: - resolution: {integrity: sha512-HjssFsCdsD4GHstXSQxsi2l70F/5FsRTRQp8xNgmQs15SxUfUJRvSI9qKny/jLkY3gLgiCR3+6A7wzzK0DBlfA==} + /@next/swc-win32-arm64-msvc@14.1.0: + resolution: {integrity: sha512-o1N5TsYc8f/HpGt39OUQpQ9AKIGApd3QLueu7hXk//2xq5Z9OxmV6sQfNp8C7qYmiOlHYODOGqNNa0e9jvchGQ==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] @@ -1011,8 +993,8 @@ packages: dev: false optional: true - /@next/swc-win32-ia32-msvc@14.1.3: - resolution: {integrity: sha512-DRuxD5axfDM1/Ue4VahwSxl1O5rn61hX8/sF0HY8y0iCbpqdxw3rB3QasdHn/LJ6Wb2y5DoWzXcz3L1Cr+Thrw==} + /@next/swc-win32-ia32-msvc@14.1.0: + resolution: {integrity: sha512-XXIuB1DBRCFwNO6EEzCTMHT5pauwaSj4SWs7CYnME57eaReAKBXCnkUE80p/pAZcewm7hs+vGvNqDPacEXHVkw==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] @@ -1020,8 +1002,8 @@ packages: dev: false optional: true - /@next/swc-win32-x64-msvc@14.1.3: - resolution: {integrity: sha512-uC2DaDoWH7h1P/aJ4Fok3Xiw6P0Lo4ez7NbowW2VGNXw/Xv6tOuLUcxhBYZxsSUJtpeknCi8/fvnSpyCFp4Rcg==} + /@next/swc-win32-x64-msvc@14.1.0: + resolution: {integrity: sha512-9WEbVRRAqJ3YFVqEZIxUqkiO8l1nool1LmNxygr5HWF8AcSYsEpneUDhmjUVJEzO2A04+oPtZdombzzPPkTtgg==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -1077,8 +1059,8 @@ packages: engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} dev: true - /@remix-run/router@1.14.1: - resolution: {integrity: sha512-Qg4DMQsfPNAs88rb2xkdk03N3bjK4jgX5fR24eHCTR9q6PrhZQZ4UJBPzCHJkIpTRN1UKxx2DzjZmnC+7Lj0Ow==} + /@remix-run/router@1.15.3: + resolution: {integrity: sha512-Oy8rmScVrVxWZVOpEF57ovlnhpZ8CCPlnIIumVcV9nFdiSIrus99+Lw78ekXyGvVDlIsFJbSfmSovJUhCWYV3w==} engines: {node: '>=14.0.0'} dev: false @@ -1272,7 +1254,40 @@ packages: dom-accessibility-api: 0.6.3 lodash: 4.17.21 redent: 3.0.0 + vitest: 1.3.1 + dev: false + + /@testing-library/jest-dom@6.4.2(vitest@1.3.1): + resolution: {integrity: sha512-CzqH0AFymEMG48CpzXFriYYkOjk6ZGPCLMhW9e9jg3KMCn5OfJecF8GtGW7yGfR/IgCe3SX8BSwjdzI6BBbZLw==} + engines: {node: '>=14', npm: '>=6', yarn: '>=1'} + peerDependencies: + '@jest/globals': '>= 28' + '@types/bun': latest + '@types/jest': '>= 28' + jest: '>= 28' + vitest: '>= 0.32' + peerDependenciesMeta: + '@jest/globals': + optional: true + '@types/bun': + optional: true + '@types/jest': + optional: true + jest: + optional: true + vitest: + optional: true + dependencies: + '@adobe/css-tools': 4.3.3 + '@babel/runtime': 7.23.9 + aria-query: 5.3.0 + chalk: 3.0.0 + css.escape: 1.5.1 + dom-accessibility-api: 0.6.3 + lodash: 4.17.21 + redent: 3.0.0 vitest: 1.3.1(jsdom@24.0.0) + dev: true /@testing-library/react@14.2.1(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-sGdjws32ai5TLerhvzThYFbpnF9XtL65Cjf+gB0Dhr29BGqK+mAeN7SURSdu+eqgET4ANcWoC7FQpkaiGvBr+A==} @@ -1346,17 +1361,20 @@ packages: resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} dependencies: '@types/istanbul-lib-coverage': 2.0.6 + dev: false /@types/istanbul-reports@3.0.4: resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} dependencies: '@types/istanbul-lib-report': 3.0.3 + dev: false /@types/jest@29.5.12: resolution: {integrity: sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==} dependencies: expect: 29.7.0 pretty-format: 29.7.0 + dev: false /@types/json-schema@7.0.15: resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} @@ -1366,8 +1384,8 @@ packages: resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} dev: true - /@types/node@20.11.16: - resolution: {integrity: sha512-gKb0enTmRCzXSSUJDq6/sPcqrfCv2mkkG6Jt/clpn5eiCbKTY+SgZUxo+p8ZKMof5dCp9vHQUAB7wOUTod22wQ==} + /@types/node@20.11.26: + resolution: {integrity: sha512-YwOMmyhNnAWijOBQweOJnQPl068Oqd4K3OFbTc6AHJwzweUwwWG3GIFY74OKks2PJUDkQPeddOQES9mLn1CTEQ==} dependencies: undici-types: 5.26.5 @@ -1378,7 +1396,7 @@ packages: /@types/react-dom@18.2.7: resolution: {integrity: sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA==} dependencies: - '@types/react': 18.2.54 + '@types/react': 18.2.65 dev: true /@types/react@18.2.39: @@ -1389,8 +1407,8 @@ packages: csstype: 3.1.2 dev: true - /@types/react@18.2.54: - resolution: {integrity: sha512-039k+vrVJymDoe2y+HLk3O3oI3sa+C8KNjuDKofqrIJK26ramnqLNj9VJTaxAzFGMvpW/79HrrAJapHzpQ9fGQ==} + /@types/react@18.2.65: + resolution: {integrity: sha512-98TsY0aW4jqx/3RqsUXwMDZSWR1Z4CUlJNue8ueS2/wcxZOsz4xmW1X8ieaWVRHcmmQM3R8xVA4XWB3dJnWwDQ==} dependencies: '@types/prop-types': 15.7.5 '@types/scheduler': 0.16.3 @@ -1407,6 +1425,7 @@ packages: /@types/stack-utils@2.0.3: resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} + dev: false /@types/statuses@2.0.4: resolution: {integrity: sha512-eqNDvZsCNY49OAXB0Firg/Sc2BgoWsntsLUdybGFOhAfCD6QJ2n9HXUIHGqt5qjrxmMv4wS8WLAw43ZkKcJ8Pw==} @@ -1414,11 +1433,13 @@ packages: /@types/yargs-parser@21.0.3: resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} + dev: false /@types/yargs@17.0.32: resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==} dependencies: '@types/yargs-parser': 21.0.3 + dev: false /@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==} @@ -1618,7 +1639,7 @@ packages: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} dev: true - /@vitejs/plugin-react@4.2.1(vite@5.1.5): + /@vitejs/plugin-react@4.2.1(vite@5.1.6): resolution: {integrity: sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -1629,15 +1650,15 @@ packages: '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.23.9) '@types/babel__core': 7.20.5 react-refresh: 0.14.0 - vite: 5.1.5(@types/node@20.11.16) + vite: 5.1.6(@types/node@20.11.26) transitivePeerDependencies: - supports-color dev: true - /@vitest/coverage-v8@1.2.2(vitest@1.3.1): - resolution: {integrity: sha512-IHyKnDz18SFclIEEAHb9Y4Uxx0sPKC2VO1kdDCs1BF6Ip4S8rQprs971zIsooLUn7Afs71GRxWMWpkCGZpRMhw==} + /@vitest/coverage-v8@1.3.1(vitest@1.3.1): + resolution: {integrity: sha512-UuBnkSJUNE9rdHjDCPyJ4fYuMkoMtnghes1XohYa4At0MS3OQSAo97FrbwSLRshYsXThMZy1+ybD/byK5llyIg==} peerDependencies: - vitest: ^1.0.0 + vitest: 1.3.1 dependencies: '@ampproject/remapping': 2.2.1 '@bcoe/v8-coverage': 0.2.3 @@ -1652,7 +1673,7 @@ packages: std-env: 3.7.0 test-exclude: 6.0.0 v8-to-istanbul: 9.2.0 - vitest: 1.3.1(jsdom@24.0.0) + vitest: 1.3.1 transitivePeerDependencies: - supports-color dev: true @@ -1710,15 +1731,6 @@ packages: path-browserify: 1.0.1 dev: true - /@vue/compiler-core@3.3.4: - resolution: {integrity: sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==} - dependencies: - '@babel/parser': 7.23.9 - '@vue/shared': 3.3.4 - estree-walker: 2.0.2 - source-map-js: 1.0.2 - dev: true - /@vue/compiler-core@3.4.15: resolution: {integrity: sha512-XcJQVOaxTKCnth1vCxEChteGuwG6wqnUHxAm1DO3gCz0+uXKaJNx8/digSz4dLALCy8n2lKq24jSUs8segoqIw==} dependencies: @@ -1729,13 +1741,6 @@ packages: source-map-js: 1.0.2 dev: true - /@vue/compiler-dom@3.3.4: - resolution: {integrity: sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==} - dependencies: - '@vue/compiler-core': 3.3.4 - '@vue/shared': 3.3.4 - dev: true - /@vue/compiler-dom@3.4.15: resolution: {integrity: sha512-wox0aasVV74zoXyblarOM3AZQz/Z+OunYcIHe1OsGclCHt8RsRm04DObjefaI82u6XDzv+qGWZ24tIsRAIi5MQ==} dependencies: @@ -1743,27 +1748,7 @@ packages: '@vue/shared': 3.4.15 dev: true - /@vue/language-core@1.8.25(typescript@5.3.3): - resolution: {integrity: sha512-NJk/5DnAZlpvXX8BdWmHI45bWGLViUaS3R/RMrmFSvFMSbJKuEODpM4kR0F0Ofv5SFzCWuNiMhxameWpVdQsnA==} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@volar/language-core': 1.11.1 - '@volar/source-map': 1.11.1 - '@vue/compiler-dom': 3.3.4 - '@vue/shared': 3.3.4 - computeds: 0.0.1 - minimatch: 9.0.3 - muggle-string: 0.3.1 - path-browserify: 1.0.1 - typescript: 5.3.3 - vue-template-compiler: 2.7.14 - dev: true - - /@vue/language-core@1.8.27(typescript@5.3.3): + /@vue/language-core@1.8.27(typescript@5.4.2): resolution: {integrity: sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==} peerDependencies: typescript: '*' @@ -1779,14 +1764,10 @@ packages: minimatch: 9.0.3 muggle-string: 0.3.1 path-browserify: 1.0.1 - typescript: 5.3.3 + typescript: 5.4.2 vue-template-compiler: 2.7.16 dev: true - /@vue/shared@3.3.4: - resolution: {integrity: sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==} - dev: true - /@vue/shared@3.4.15: resolution: {integrity: sha512-KzfPTxVaWfB+eGcGdbSf4CWdaXcGDqckoeXUh7SB3fZdEtzPCK2Vq9B/lRRL3yutax/LWITz+SwvgyOxz5V75g==} dev: true @@ -1815,6 +1796,7 @@ packages: debug: 4.3.4 transitivePeerDependencies: - supports-color + dev: true /aggregate-error@4.0.1: resolution: {integrity: sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==} @@ -2007,6 +1989,7 @@ packages: /asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + dev: true /available-typed-arrays@1.0.6: resolution: {integrity: sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg==} @@ -2189,6 +2172,7 @@ packages: /ci-info@3.9.0: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} + dev: false /clean-stack@4.2.0: resolution: {integrity: sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==} @@ -2267,6 +2251,7 @@ packages: engines: {node: '>= 0.8'} dependencies: delayed-stream: 1.0.0 + dev: true /commander@9.5.0: resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} @@ -2354,8 +2339,8 @@ packages: p-map: 6.0.0 dev: true - /cpy@11.0.0: - resolution: {integrity: sha512-vA71mFQyIxCrqvP/9JBLCj05UJV/+WpvAxZK2/EiK5ndD090cjuChfJ3ExVVuZXHoTJ/3HLedOPYDWyxnNHjrg==} + /cpy@11.0.1: + resolution: {integrity: sha512-VIvf1QNOHnIZ5QT8zWxNJq+YYIpbFhgeMwnVngX+AhhUQd3Rns3x6gcvb0fGpNxZQ0q629mX6+GvDtvbO/Hutg==} engines: {node: '>=18'} dependencies: copy-file: 11.0.0 @@ -2390,6 +2375,7 @@ packages: engines: {node: '>=18'} dependencies: rrweb-cssom: 0.6.0 + dev: true /csstype@3.1.2: resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} @@ -2405,6 +2391,7 @@ packages: dependencies: whatwg-mimetype: 4.0.0 whatwg-url: 14.0.0 + dev: true /de-indent@1.0.2: resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} @@ -2434,6 +2421,7 @@ packages: /decimal.js@10.4.3: resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + dev: true /deep-eql@4.1.3: resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} @@ -2492,6 +2480,7 @@ packages: /delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} + dev: true /dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} @@ -2547,6 +2536,7 @@ packages: /entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} + dev: true /es-abstract@1.22.3: resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==} @@ -2699,6 +2689,7 @@ packages: /escape-string-regexp@2.0.0: resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} engines: {node: '>=8'} + dev: false /escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} @@ -3099,6 +3090,7 @@ packages: jest-matcher-utils: 29.7.0 jest-message-util: 29.7.0 jest-util: 29.7.0 + dev: false /external-editor@3.1.0: resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} @@ -3203,6 +3195,7 @@ packages: asynckit: 0.4.0 combined-stream: 1.0.8 mime-types: 2.1.35 + dev: true /fs-extra@7.0.1: resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} @@ -3427,6 +3420,7 @@ packages: engines: {node: '>=18'} dependencies: whatwg-encoding: 3.1.1 + dev: true /html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} @@ -3440,6 +3434,7 @@ packages: debug: 4.3.4 transitivePeerDependencies: - supports-color + dev: true /https-proxy-agent@7.0.2: resolution: {integrity: sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==} @@ -3449,6 +3444,7 @@ packages: debug: 4.3.4 transitivePeerDependencies: - supports-color + dev: true /human-signals@5.0.0: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} @@ -3466,6 +3462,7 @@ packages: engines: {node: '>=0.10.0'} dependencies: safer-buffer: 2.1.2 + dev: true /ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -3670,6 +3667,7 @@ packages: /is-potential-custom-element-name@1.0.1: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + dev: true /is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} @@ -3803,10 +3801,12 @@ packages: diff-sequences: 29.6.3 jest-get-type: 29.6.3 pretty-format: 29.7.0 + dev: false /jest-get-type@29.6.3: resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: false /jest-matcher-utils@29.7.0: resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} @@ -3816,6 +3816,7 @@ packages: jest-diff: 29.7.0 jest-get-type: 29.6.3 pretty-format: 29.7.0 + dev: false /jest-message-util@29.7.0: resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} @@ -3830,17 +3831,19 @@ packages: pretty-format: 29.7.0 slash: 3.0.0 stack-utils: 2.0.6 + dev: false /jest-util@29.7.0: resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.11.16 + '@types/node': 20.11.26 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 picomatch: 2.3.1 + dev: false /jju@1.4.0: resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} @@ -3902,6 +3905,7 @@ packages: - bufferutil - supports-color - utf-8-validate + dev: true /jsesc@2.5.2: resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} @@ -4101,12 +4105,14 @@ packages: /mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} + dev: true /mime-types@2.1.35: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} dependencies: mime-db: 1.52.0 + dev: true /mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} @@ -4164,7 +4170,7 @@ packages: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} dev: true - /msw@2.1.6(typescript@5.3.3): + /msw@2.1.6(typescript@5.4.2): resolution: {integrity: sha512-62NX1pdMa1C17U/6+SQjQFxwHx0bcWHzZoDN2mK97FvEttTkX9CyJqx3OcYYBpNykDx+segweaO4yxapjifj4g==} engines: {node: '>=18'} hasBin: true @@ -4192,7 +4198,7 @@ packages: path-to-regexp: 6.2.1 strict-event-emitter: 0.5.1 type-fest: 4.10.2 - typescript: 5.3.3 + typescript: 5.4.2 yargs: 17.7.2 dev: true @@ -4217,8 +4223,8 @@ packages: resolution: {integrity: sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==} dev: true - /next@14.1.3(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-oexgMV2MapI0UIWiXKkixF8J8ORxpy64OuJ/J9oVUmIthXOUCcuVEZX+dtpgq7wIfIqtBwQsKEDXejcjTsan9g==} + /next@14.1.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-wlzrsbfeSU48YQBjZhDzOwhWhGsy+uQycR8bHAOt1LY1bn3zZEcDyHQOEoN3aWzQ8LHCAJ1nqrWCc9XF2+O45Q==} engines: {node: '>=18.17.0'} hasBin: true peerDependencies: @@ -4232,7 +4238,7 @@ packages: sass: optional: true dependencies: - '@next/env': 14.1.3 + '@next/env': 14.1.0 '@swc/helpers': 0.5.2 busboy: 1.6.0 caniuse-lite: 1.0.30001584 @@ -4242,15 +4248,15 @@ packages: react-dom: 18.2.0(react@18.2.0) styled-jsx: 5.1.1(react@18.2.0) optionalDependencies: - '@next/swc-darwin-arm64': 14.1.3 - '@next/swc-darwin-x64': 14.1.3 - '@next/swc-linux-arm64-gnu': 14.1.3 - '@next/swc-linux-arm64-musl': 14.1.3 - '@next/swc-linux-x64-gnu': 14.1.3 - '@next/swc-linux-x64-musl': 14.1.3 - '@next/swc-win32-arm64-msvc': 14.1.3 - '@next/swc-win32-ia32-msvc': 14.1.3 - '@next/swc-win32-x64-msvc': 14.1.3 + '@next/swc-darwin-arm64': 14.1.0 + '@next/swc-darwin-x64': 14.1.0 + '@next/swc-linux-arm64-gnu': 14.1.0 + '@next/swc-linux-arm64-musl': 14.1.0 + '@next/swc-linux-x64-gnu': 14.1.0 + '@next/swc-linux-x64-musl': 14.1.0 + '@next/swc-win32-arm64-msvc': 14.1.0 + '@next/swc-win32-ia32-msvc': 14.1.0 + '@next/swc-win32-x64-msvc': 14.1.0 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros @@ -4280,6 +4286,7 @@ packages: /nwsapi@2.2.7: resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==} + dev: true /object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} @@ -4482,6 +4489,7 @@ packages: resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} dependencies: entities: 4.5.0 + dev: true /path-browserify@1.0.1: resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} @@ -4616,13 +4624,16 @@ packages: /psl@1.9.0: resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} + dev: true /punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} + dev: true /querystringify@2.2.0: resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + dev: true /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -4652,26 +4663,26 @@ packages: engines: {node: '>=0.10.0'} dev: true - /react-router-dom@6.21.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-QCNrtjtDPwHDO+AO21MJd7yIcr41UetYt5jzaB9Y1UYaPTCnVuJq6S748g1dE11OQlCFIQg+RtAA1SEZIyiBeA==} + /react-router-dom@6.22.3(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-7ZILI7HjcE+p31oQvwbokjk6OA/bnFxrhJ19n82Ex9Ph8fNAq+Hm/7KchpMGlTgWhUxRHMMCut+vEtNpWpowKw==} engines: {node: '>=14.0.0'} peerDependencies: react: '>=16.8' react-dom: '>=16.8' dependencies: - '@remix-run/router': 1.14.1 + '@remix-run/router': 1.15.3 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-router: 6.21.1(react@18.2.0) + react-router: 6.22.3(react@18.2.0) dev: false - /react-router@6.21.1(react@18.2.0): - resolution: {integrity: sha512-W0l13YlMTm1YrpVIOpjCADJqEUpz1vm+CMo47RuFX4Ftegwm6KOYsL5G3eiE52jnJpKvzm6uB/vTKTPKM8dmkA==} + /react-router@6.22.3(react@18.2.0): + resolution: {integrity: sha512-dr2eb3Mj5zK2YISHK++foM9w4eBnO23eKnZEDs7c880P6oKbrjz/Svg9+nxqtHQK+oMW4OtjZca0RqPglXxguQ==} engines: {node: '>=14.0.0'} peerDependencies: react: '>=16.8' dependencies: - '@remix-run/router': 1.14.1 + '@remix-run/router': 1.15.3 react: 18.2.0 dev: false @@ -4771,6 +4782,7 @@ packages: /requires-port@1.0.0: resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + dev: true /resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} @@ -4858,6 +4870,7 @@ packages: /rrweb-cssom@0.6.0: resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} + dev: true /run-async@2.4.1: resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} @@ -4905,12 +4918,14 @@ packages: /safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + dev: true /saxes@6.0.0: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} engines: {node: '>=v12.22.7'} dependencies: xmlchars: 2.2.0 + dev: true /scheduler@0.23.0: resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} @@ -5020,6 +5035,7 @@ packages: engines: {node: '>=10'} dependencies: escape-string-regexp: 2.0.0 + dev: false /stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} @@ -5200,6 +5216,7 @@ packages: /symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + dev: true /synckit@0.8.8: resolution: {integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==} @@ -5270,12 +5287,14 @@ packages: punycode: 2.3.1 universalify: 0.2.0 url-parse: 1.5.10 + dev: true /tr46@5.0.0: resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==} engines: {node: '>=18'} dependencies: punycode: 2.3.1 + dev: true /ts-api-utils@1.2.0(typescript@5.3.3): resolution: {integrity: sha512-d+3WxW4r8WQy2cZWpNRPPGExX8ffOLGcIhheUANKbL5Sqjbhkneki76fRAWeXkaslV2etTb4tSJBSxOsH5+CJw==} @@ -5387,14 +5406,14 @@ packages: is-typed-array: 1.1.13 dev: true - /typescript@5.0.4: - resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==} - engines: {node: '>=12.20'} + /typescript@5.3.3: + resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} + engines: {node: '>=14.17'} hasBin: true dev: true - /typescript@5.3.3: - resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} + /typescript@5.4.2: + resolution: {integrity: sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==} engines: {node: '>=14.17'} hasBin: true @@ -5421,6 +5440,7 @@ packages: /universalify@0.2.0: resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} engines: {node: '>= 4.0.0'} + dev: true /untildify@4.0.0: resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} @@ -5449,6 +5469,7 @@ packages: dependencies: querystringify: 2.2.0 requires-port: 1.0.0 + dev: true /util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} @@ -5477,7 +5498,7 @@ packages: debug: 4.3.4 pathe: 1.1.2 picocolors: 1.0.0 - vite: 5.1.5(@types/node@20.11.16) + vite: 5.1.6(@types/node@20.11.26) transitivePeerDependencies: - '@types/node' - less @@ -5488,8 +5509,8 @@ packages: - supports-color - terser - /vite-plugin-dts@3.6.4(typescript@5.3.3)(vite@5.1.5): - resolution: {integrity: sha512-yOVhUI/kQhtS6lCXRYYLv2UUf9bftcwQK9ROxCX2ul17poLQs02ctWX7+vXB8GPRzH8VCK3jebEFtPqqijXx6w==} + /vite-plugin-dts@3.7.3(typescript@5.4.2)(vite@5.1.6): + resolution: {integrity: sha512-26eTlBYdpjRLWCsTJebM8vkCieE+p9gP3raf+ecDnzzK5E3FG6VE1wcy55OkRpfWWVlVvKkYFe6uvRHYWx7Nog==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -5498,46 +5519,56 @@ packages: vite: optional: true dependencies: - '@microsoft/api-extractor': 7.38.5 + '@microsoft/api-extractor': 7.39.0 '@rollup/pluginutils': 5.1.0 - '@vue/language-core': 1.8.25(typescript@5.3.3) + '@vue/language-core': 1.8.27(typescript@5.4.2) debug: 4.3.4 kolorist: 1.8.0 - typescript: 5.3.3 - vite: 5.1.5(@types/node@20.11.16) - vue-tsc: 1.8.25(typescript@5.3.3) + typescript: 5.4.2 + vite: 5.1.6(@types/node@20.11.26) + vue-tsc: 1.8.27(typescript@5.4.2) transitivePeerDependencies: - '@types/node' - rollup - supports-color dev: true - /vite-plugin-dts@3.7.2(typescript@5.3.3)(vite@5.1.5): - resolution: {integrity: sha512-kg//1nDA01b8rufJf4TsvYN8LMkdwv0oBYpiQi6nRwpHyue+wTlhrBiqgipdFpMnW1oOYv6ywmzE5B0vg6vSEA==} - engines: {node: ^14.18.0 || >=16.0.0} + /vite@5.1.5: + resolution: {integrity: sha512-BdN1xh0Of/oQafhU+FvopafUp6WaYenLU/NFoL5WyJL++GxkNfieKzBhM24H3HVsPQrlAqB7iJYTHabzaRed5Q==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true peerDependencies: - typescript: '*' - vite: '*' + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 peerDependenciesMeta: - vite: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: optional: true dependencies: - '@microsoft/api-extractor': 7.39.0 - '@rollup/pluginutils': 5.1.0 - '@vue/language-core': 1.8.27(typescript@5.3.3) - debug: 4.3.4 - kolorist: 1.8.0 - typescript: 5.3.3 - vite: 5.1.5(@types/node@20.11.16) - vue-tsc: 1.8.27(typescript@5.3.3) - transitivePeerDependencies: - - '@types/node' - - rollup - - supports-color - dev: true + esbuild: 0.19.12 + postcss: 8.4.35 + rollup: 4.9.6 + optionalDependencies: + fsevents: 2.3.3 - /vite@5.1.5(@types/node@20.11.16): - resolution: {integrity: sha512-BdN1xh0Of/oQafhU+FvopafUp6WaYenLU/NFoL5WyJL++GxkNfieKzBhM24H3HVsPQrlAqB7iJYTHabzaRed5Q==} + /vite@5.1.6(@types/node@20.11.26): + resolution: {integrity: sha512-yYIAZs9nVfRJ/AiOLCA91zzhjsHUgMjB+EigzFb6W2XTLO8JixBCKCjvhKZaye+NKYHCrkv3Oh50dH9EdLU2RA==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -5564,14 +5595,14 @@ packages: terser: optional: true dependencies: - '@types/node': 20.11.16 + '@types/node': 20.11.26 esbuild: 0.19.12 postcss: 8.4.35 rollup: 4.9.6 optionalDependencies: fsevents: 2.3.3 - /vitest@1.3.1(jsdom@24.0.0): + /vitest@1.3.1: resolution: {integrity: sha512-/1QJqXs8YbCrfv/GPQ05wAZf2eakUPLPa18vkJAKE7RXOKfVHqMZZ1WlTjiwl6Gcn65M5vpNUB6EFLnEdRdEXQ==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true @@ -5605,7 +5636,6 @@ packages: chai: 4.4.1 debug: 4.3.4 execa: 8.0.1 - jsdom: 24.0.0 local-pkg: 0.5.0 magic-string: 0.30.7 pathe: 1.1.2 @@ -5614,7 +5644,7 @@ packages: strip-literal: 2.0.0 tinybench: 2.6.0 tinypool: 0.8.2 - vite: 5.1.5(@types/node@20.11.16) + vite: 5.1.5 vite-node: 1.3.1 why-is-node-running: 2.2.2 transitivePeerDependencies: @@ -5626,11 +5656,60 @@ packages: - supports-color - terser - /vue-template-compiler@2.7.14: - resolution: {integrity: sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==} + /vitest@1.3.1(jsdom@24.0.0): + resolution: {integrity: sha512-/1QJqXs8YbCrfv/GPQ05wAZf2eakUPLPa18vkJAKE7RXOKfVHqMZZ1WlTjiwl6Gcn65M5vpNUB6EFLnEdRdEXQ==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/node': ^18.0.0 || >=20.0.0 + '@vitest/browser': 1.3.1 + '@vitest/ui': 1.3.1 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true dependencies: - de-indent: 1.0.2 - he: 1.2.0 + '@vitest/expect': 1.3.1 + '@vitest/runner': 1.3.1 + '@vitest/snapshot': 1.3.1 + '@vitest/spy': 1.3.1 + '@vitest/utils': 1.3.1 + acorn-walk: 8.3.2 + chai: 4.4.1 + debug: 4.3.4 + execa: 8.0.1 + jsdom: 24.0.0 + local-pkg: 0.5.0 + magic-string: 0.30.7 + pathe: 1.1.2 + picocolors: 1.0.0 + std-env: 3.7.0 + strip-literal: 2.0.0 + tinybench: 2.6.0 + tinypool: 0.8.2 + vite: 5.1.6(@types/node@20.11.26) + vite-node: 1.3.1 + why-is-node-running: 2.2.2 + transitivePeerDependencies: + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser dev: true /vue-template-compiler@2.7.16: @@ -5640,28 +5719,16 @@ packages: he: 1.2.0 dev: true - /vue-tsc@1.8.25(typescript@5.3.3): - resolution: {integrity: sha512-lHsRhDc/Y7LINvYhZ3pv4elflFADoEOo67vfClAfF2heVHpHmVquLSjojgCSIwzA4F0Pc4vowT/psXCYcfk+iQ==} - hasBin: true - peerDependencies: - typescript: '*' - dependencies: - '@volar/typescript': 1.11.1 - '@vue/language-core': 1.8.25(typescript@5.3.3) - semver: 7.6.0 - typescript: 5.3.3 - dev: true - - /vue-tsc@1.8.27(typescript@5.3.3): + /vue-tsc@1.8.27(typescript@5.4.2): resolution: {integrity: sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==} hasBin: true peerDependencies: typescript: '*' dependencies: '@volar/typescript': 1.11.1 - '@vue/language-core': 1.8.27(typescript@5.3.3) + '@vue/language-core': 1.8.27(typescript@5.4.2) semver: 7.6.0 - typescript: 5.3.3 + typescript: 5.4.2 dev: true /w3c-xmlserializer@5.0.0: @@ -5669,6 +5736,7 @@ packages: engines: {node: '>=18'} dependencies: xml-name-validator: 5.0.0 + dev: true /wcwidth@1.0.1: resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} @@ -5683,16 +5751,19 @@ packages: /webidl-conversions@7.0.0: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} engines: {node: '>=12'} + dev: true /whatwg-encoding@3.1.1: resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} engines: {node: '>=18'} dependencies: iconv-lite: 0.6.3 + dev: true /whatwg-mimetype@4.0.0: resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} engines: {node: '>=18'} + dev: true /whatwg-url@14.0.0: resolution: {integrity: sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==} @@ -5700,6 +5771,7 @@ packages: dependencies: tr46: 5.0.0 webidl-conversions: 7.0.0 + dev: true /which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} @@ -5803,13 +5875,16 @@ packages: optional: true utf-8-validate: optional: true + dev: true /xml-name-validator@5.0.0: resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} engines: {node: '>=18'} + dev: true /xmlchars@2.2.0: resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + dev: true /xtend@4.0.2: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} From 065ce85c794cfb01065dab0f3ceb645bfdf6d3a5 Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 12 Mar 2024 20:26:26 +0000 Subject: [PATCH 234/440] [skip ci] Update to version 7.19.5 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 7a7fd677b..1638efe9a 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.19.3", + "version": "7.19.5", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index b8d93a687..49f743586 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.19.3'; +export default '7.19.5'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 065c08b6c..f876cd947 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.19.3", + "version": "7.19.5", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index b8d93a687..49f743586 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.19.3'; +export default '7.19.5'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index b61aa7a50..b8c5a5752 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.19.3", + "version": "7.19.5", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From b91113085e6a23e3288c7862d3737b7bd45554b3 Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 12 Mar 2024 20:26:28 +0000 Subject: [PATCH 235/440] [skip ci] Generate changelog to version 7.19.5 --- CHANGELOG.md | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fc05e0daa..cddbe4ca7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,16 @@ # Changelog -## 7.19.3 +## 7.19.5 + +- [be24bba](https://github.com/AxaFrance/oidc-client/commit/be24bbab3d699ff003cb14302dedc3463b1f3a1b) - refactor(all): update build libraries (release), 2024-03-12 by *Guillaume Chervet* + + +## v7.19.4 + +- [7df257c](https://github.com/AxaFrance/oidc-client/commit/7df257ca7ba32a2605cd5d76881ea3aa50aba208) - refactor(all): update build libraries (release), 2024-03-12 by *Guillaume Chervet* + + +## v7.19.3 - [397629d](https://github.com/AxaFrance/oidc-client/commit/397629d2c9e1d58efab96c000247382cfc94ce24) - build(npm): bump vite from 5.0.12 to 5.1.5 (#1319), 2024-03-07 by *dependabot[bot]* @@ -310,16 +320,3 @@ - [5085e05](https://github.com/AxaFrance/oidc-client/commit/5085e05beb4c7a88fad1df61e11213b68672e7d9) - fix(sevice-worker): add URL normalization for getCurrentDatabaseDomain endpoints comparison (release) (#1196), 2023-11-17 by *meesvandongen* -## v7.9.1 - -- [7e0cb29](https://github.com/AxaFrance/oidc-client/commit/7e0cb297587e314451321c3ddd1b0e5f7e7e6c0e) - fix(logout): okta tokens null (release) (#1188), 2023-11-13 by *Guillaume Chervet* - - -## v7.9.0 - -- [b08cd59](https://github.com/AxaFrance/oidc-client/commit/b08cd594d2427170cde835dcff97d5be396952e6) - doc(FAQ): Update FAQ.md (release), 2023-11-12 by *Guillaume Chervet* -- [c54c7b9](https://github.com/AxaFrance/oidc-client/commit/c54c7b9f3447c0474b460649eb315c13f5f8b1da) - fix(service-worker): Reclaming all clients from SW after hard reload (#1149), 2023-11-12 by *VladimirPlatonenko* -- [dbcfec4](https://github.com/AxaFrance/oidc-client/commit/dbcfec46798b2137154dd33f31bf842f6b7730b8) - feat(oidc-client): enhance service worker flexibility (alpha) (#1180), 2023-11-12 by *Guillaume Chervet* -- [9549b9a](https://github.com/AxaFrance/oidc-client/commit/9549b9ae613d3cf357cb4b760fc8cc9e0af80c44) - doc(oidc-client): typo in method name, 2023-11-07 by *Guillaume Chervet* - - From b7568f8d73d21ba1b7cd4890bff2ad30941696e2 Mon Sep 17 00:00:00 2001 From: meesvandongen <35409045+meesvandongen@users.noreply.github.com> Date: Wed, 13 Mar 2024 12:22:05 +0100 Subject: [PATCH 236/440] fix(oidc-service-worker): normalize userinfo endpoint in service worker (#1320) (release) Co-authored-by: Mees van Dongen --- .../src/utils/__tests__/domains.spec.ts | 8 ++++++++ packages/oidc-client-service-worker/src/utils/domains.ts | 4 +--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/packages/oidc-client-service-worker/src/utils/__tests__/domains.spec.ts b/packages/oidc-client-service-worker/src/utils/__tests__/domains.spec.ts index f2ab1e8fe..75aa7cf58 100644 --- a/packages/oidc-client-service-worker/src/utils/__tests__/domains.spec.ts +++ b/packages/oidc-client-service-worker/src/utils/__tests__/domains.spec.ts @@ -101,6 +101,14 @@ describe('domains', () => { expect(getCurrentDatabaseDomain(db, url, trustedDomains)).not.toBeNull(); }); + it('will not return null, url is the userinfo endpoint on other domain, default port is set', () => { + db['default'].oidcServerConfiguration!.userInfoEndpoint = + 'https://otherdomain.com:443/connect/userinfo'; + + const url = 'https://otherdomain.com/connect/userinfo'; + expect(getCurrentDatabaseDomain(db, url, null)).not.toBeNull(); + }); + it('will test urls against domains list if accessTokenDomains list is not present', () => { const trustedDomains: TrustedDomains = { default: { diff --git a/packages/oidc-client-service-worker/src/utils/domains.ts b/packages/oidc-client-service-worker/src/utils/domains.ts index 80533dc8c..586b01f06 100644 --- a/packages/oidc-client-service-worker/src/utils/domains.ts +++ b/packages/oidc-client-service-worker/src/utils/domains.ts @@ -36,8 +36,6 @@ export const getDomains = ( return trustedDomain[`${type}Domains`] ?? trustedDomain.domains ?? []; }; - - export const getCurrentDatabaseDomain = ( database: Database, url: string, @@ -69,7 +67,7 @@ export const getCurrentDatabaseDomain = ( const domains = getDomains(trustedDomain, 'accessToken'); const domainsToSendTokens = oidcServerConfiguration.userInfoEndpoint - ? [oidcServerConfiguration.userInfoEndpoint, ...domains] + ? [normalizeUrl(oidcServerConfiguration.userInfoEndpoint), ...domains] : [...domains]; let hasToSendToken = false; From bbb1466528a76088669ba69d7fa12d91b9771c07 Mon Sep 17 00:00:00 2001 From: GitHub Date: Wed, 13 Mar 2024 11:25:21 +0000 Subject: [PATCH 237/440] [skip ci] Update to version 7.19.6 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 1638efe9a..0966c6fe4 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.19.5", + "version": "7.19.6", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 49f743586..2ac453ee3 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.19.5'; +export default '7.19.6'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index f876cd947..81dd2c76d 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.19.5", + "version": "7.19.6", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 49f743586..2ac453ee3 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.19.5'; +export default '7.19.6'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index b8c5a5752..2282036ca 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.19.5", + "version": "7.19.6", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 7b4580a9bc765c83b5de72e0ad85b14e33a286cd Mon Sep 17 00:00:00 2001 From: GitHub Date: Wed, 13 Mar 2024 11:25:23 +0000 Subject: [PATCH 238/440] [skip ci] Generate changelog to version 7.19.6 --- CHANGELOG.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cddbe4ca7..12884a2e6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog -## 7.19.5 +## 7.19.6 + +- [b7568f8](https://github.com/AxaFrance/oidc-client/commit/b7568f8d73d21ba1b7cd4890bff2ad30941696e2) - fix(oidc-service-worker): normalize userinfo endpoint in service worker (#1320) (release), 2024-03-13 by *meesvandongen* + + +## v7.19.5 - [be24bba](https://github.com/AxaFrance/oidc-client/commit/be24bbab3d699ff003cb14302dedc3463b1f3a1b) - refactor(all): update build libraries (release), 2024-03-12 by *Guillaume Chervet* @@ -315,8 +320,3 @@ - [bf19dd0](https://github.com/AxaFrance/oidc-client/commit/bf19dd0cc975ea4524b0f68f9315625b3789801b) - fix(oidc-client): tokens refresh conflict multiple tabs (alpha), 2023-11-17 by *Guillaume Chervet* -## v7.9.2 - -- [5085e05](https://github.com/AxaFrance/oidc-client/commit/5085e05beb4c7a88fad1df61e11213b68672e7d9) - fix(sevice-worker): add URL normalization for getCurrentDatabaseDomain endpoints comparison (release) (#1196), 2023-11-17 by *meesvandongen* - - From c7793c9913128dbb82a60dff11261ca5b4749f0c Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Tue, 19 Mar 2024 20:54:52 +0100 Subject: [PATCH 239/440] feat(oidc-client): add dpop extras to claims (alpha) --- packages/oidc-client/src/oidc.ts | 7 +++++-- packages/oidc-client/src/oidcClient.ts | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/oidc-client/src/oidc.ts b/packages/oidc-client/src/oidc.ts index f2eff47fd..b468a641f 100644 --- a/packages/oidc-client/src/oidc.ts +++ b/packages/oidc-client/src/oidc.ts @@ -293,10 +293,13 @@ Please checkout that you are using OIDC hook inside a { + async generateDemonstrationOfProofOfPossessionAsync(accessToken:string, url:string, method:string, extras:StringMap= {}): Promise { const configuration = this.configuration; - const claimsExtras = {ath: await base64urlOfHashOfASCIIEncodingAsync(accessToken),}; + const claimsExtras = { + ath: await base64urlOfHashOfASCIIEncodingAsync(accessToken), + ...extras + }; const serviceWorker = await initWorkerAsync(configuration, this.configurationName); let demonstratingProofOfPossessionNonce:string; diff --git a/packages/oidc-client/src/oidcClient.ts b/packages/oidc-client/src/oidcClient.ts index 32a3c123c..2e2762014 100644 --- a/packages/oidc-client/src/oidcClient.ts +++ b/packages/oidc-client/src/oidcClient.ts @@ -67,8 +67,8 @@ export class OidcClient { return this._oidc.configuration; } - async generateDemonstrationOfProofOfPossessionAsync(accessToken:string, url:string, method:string) : Promise { - return this._oidc.generateDemonstrationOfProofOfPossessionAsync(accessToken, url, method); + async generateDemonstrationOfProofOfPossessionAsync(accessToken:string, url:string, method:string, extras:StringMap= {}) : Promise { + return this._oidc.generateDemonstrationOfProofOfPossessionAsync(accessToken, url, method, extras); } async getValidTokenAsync(waitMs = 200, numberWait = 50): Promise { From 44d15be1c4d8f5069f15ddc5351e546fc5eb7730 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Fri, 22 Mar 2024 21:15:41 +0100 Subject: [PATCH 240/440] fix(oidc): userInfo 401 on first login (release) --- packages/oidc-client/src/login.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/oidc-client/src/login.ts b/packages/oidc-client/src/login.ts index 7f37919bb..95547c304 100644 --- a/packages/oidc-client/src/login.ts +++ b/packages/oidc-client/src/login.ts @@ -193,7 +193,7 @@ export const loginCallbackAsync = (oidc:Oidc) => async (isSilentSignin = false) } if (serviceWorker) { - await serviceWorker.initAsync(redirectUri, 'syncTokensAsync', configuration); + await serviceWorker.initAsync(oidcServerConfiguration, 'syncTokensAsync', configuration); loginParams = serviceWorker.getLoginParams(); if(demonstratingProofOfPossessionNonce) { await serviceWorker.setDemonstratingProofOfPossessionNonce(demonstratingProofOfPossessionNonce); From b24473db202ff0d26c56dc13e7e51f388a4e7576 Mon Sep 17 00:00:00 2001 From: GitHub Date: Fri, 22 Mar 2024 20:18:51 +0000 Subject: [PATCH 241/440] [skip ci] Update to version 7.20.0 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 0966c6fe4..fbc42813a 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.19.6", + "version": "7.20.0", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 2ac453ee3..f4679c23b 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.19.6'; +export default '7.20.0'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 81dd2c76d..95398f66f 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.19.6", + "version": "7.20.0", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 2ac453ee3..f4679c23b 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.19.6'; +export default '7.20.0'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 2282036ca..f0cef5649 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.19.6", + "version": "7.20.0", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From db670958a66482c8e78933a3e0b9a97b021af38e Mon Sep 17 00:00:00 2001 From: GitHub Date: Fri, 22 Mar 2024 20:18:52 +0000 Subject: [PATCH 242/440] [skip ci] Generate changelog to version 7.20.0 --- CHANGELOG.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 12884a2e6..3f37312af 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,12 @@ # Changelog -## 7.19.6 +## 7.20.0 + +- [44d15be](https://github.com/AxaFrance/oidc-client/commit/44d15be1c4d8f5069f15ddc5351e546fc5eb7730) - fix(oidc): userInfo 401 on first login (release), 2024-03-22 by *Guillaume Chervet* +- [c7793c9](https://github.com/AxaFrance/oidc-client/commit/c7793c9913128dbb82a60dff11261ca5b4749f0c) - feat(oidc-client): add dpop extras to claims (alpha), 2024-03-19 by *Guillaume Chervet* + + +## v7.19.6 - [b7568f8](https://github.com/AxaFrance/oidc-client/commit/b7568f8d73d21ba1b7cd4890bff2ad30941696e2) - fix(oidc-service-worker): normalize userinfo endpoint in service worker (#1320) (release), 2024-03-13 by *meesvandongen* @@ -314,9 +320,3 @@ - [56bde67](https://github.com/AxaFrance/oidc-client/commit/56bde67566f8203e9d62ae6e8b722c86a7b63cae) - doc(readme): Update README.md, 2023-11-27 by *Guillaume Chervet* -## v7.9.3 - -- [a80844c](https://github.com/AxaFrance/oidc-client/commit/a80844c2668066b083009043f1dd94fa196e1f18) - fix(service-worker): make sure URL is normalized when comparing with token endpoint and revocation endpoint (#1198) (release), 2023-11-24 by *meesvandongen* -- [bf19dd0](https://github.com/AxaFrance/oidc-client/commit/bf19dd0cc975ea4524b0f68f9315625b3789801b) - fix(oidc-client): tokens refresh conflict multiple tabs (alpha), 2023-11-17 by *Guillaume Chervet* - - From 9a3ad3a474a66cc77fa2c3eb3eafa42f167f1e45 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Sun, 24 Mar 2024 16:20:32 +0100 Subject: [PATCH 243/440] feature(oidc): token renew only when required (release) (#1327) --- .../react-oidc-demo/src/configurations.ts | 3 +- packages/oidc-client/README.md | 6 +++- packages/oidc-client/src/events.ts | 1 + packages/oidc-client/src/fetch.ts | 6 ++-- packages/oidc-client/src/index.ts | 9 +++-- packages/oidc-client/src/oidc.ts | 13 ++++--- packages/oidc-client/src/parseTokens.spec.ts | 6 ++++ packages/oidc-client/src/parseTokens.ts | 10 +++++- packages/oidc-client/src/renewTokens.ts | 33 ++++++++++++------ packages/oidc-client/src/types.ts | 6 ++++ packages/oidc-client/src/user.ts | 34 ++++--------------- packages/react-oidc/README.md | 4 +++ packages/react-oidc/src/ReactOidc.tsx | 3 +- packages/react-oidc/src/User.ts | 3 +- packages/react-oidc/src/index.ts | 3 +- 15 files changed, 83 insertions(+), 57 deletions(-) diff --git a/examples/react-oidc-demo/src/configurations.ts b/examples/react-oidc-demo/src/configurations.ts index 195191a54..eb1a58728 100644 --- a/examples/react-oidc-demo/src/configurations.ts +++ b/examples/react-oidc-demo/src/configurations.ts @@ -1,4 +1,4 @@ -import { TokenRenewMode } from '@axa-fr/react-oidc'; +import { TokenRenewMode, TokenAutomaticRenewMode } from '@axa-fr/react-oidc'; export const configurationIdentityServer = { client_id: 'interactive.public.short', @@ -16,6 +16,7 @@ export const configurationIdentityServer = { // monitor_session: true, extras: { youhou_demo: 'youhou' }, token_renew_mode: TokenRenewMode.access_token_invalid, + token_automatic_renew_mode: TokenAutomaticRenewMode.AutomaticOnlyWhenFetchExecuted, demonstrating_proof_of_possession: false, }; diff --git a/packages/oidc-client/README.md b/packages/oidc-client/README.md index be012d1a7..35d18b10d 100644 --- a/packages/oidc-client/README.md +++ b/packages/oidc-client/README.md @@ -161,7 +161,7 @@ oidcClient.tryKeepExistingSessionAsync().then(() => {

@axa-fr/oidc-client demo

Loading

`; - return + return; } let tokens = oidcClient.tokens; @@ -226,6 +226,10 @@ const configuration = { authority_timeout_wellknowurl_in_millisecond: 10000, // Timeout in milliseconds of the openid well-known URL, default is 10 seconds, then an error is thrown monitor_session: Boolean, // Add OpenID monitor session, default is false (more information https://openid.net/specs/openid-connect-session-1_0.html), if you need to set it to true consider https://infi.nl/nieuws/spa-necromancy/ token_renew_mode: String, // Optional, update tokens based on the selected token(s) lifetime: "access_token_or_id_token_invalid" (default), "access_token_invalid", "id_token_invalid" + token_automatic_renew_mode: TokenAutomaticRenewMode.AutomaticOnlyWhenFetchExecuted, // Optional, default is TokenAutomaticRenewMode.AutomaticBeforeTokensExpiration + // TokenAutomaticRenewMode.AutomaticBeforeTokensExpiration: renew tokens automatically before they expire + // TokenAutomaticRenewMode.AutomaticOnlyWhenFetchExecuted: renew tokens automatically only when fetch is executed + // It requires you to use fetch given by oidcClient.fetchWithTokens(fetch) or to use oidcClient.getValidTokenAsync() logout_tokens_to_invalidate: Array, // Optional tokens to invalidate during logout, default: ['access_token', 'refresh_token'] location: ILOidcLocation, // Optional, default is window.location, you can inject your own location object respecting the ILOidcLocation interface demonstrating_proof_of_possession: Boolean, // Optional, default is false, if true, the the Demonstrating Proof of Possession will be activated //https://www.rfc-editor.org/rfc/rfc9449.html#name-protected-resource-access diff --git a/packages/oidc-client/src/events.ts b/packages/oidc-client/src/events.ts index 5cb31c05e..9a902a0b3 100644 --- a/packages/oidc-client/src/events.ts +++ b/packages/oidc-client/src/events.ts @@ -26,4 +26,5 @@ export const eventNames = { syncTokensAsync_lock_not_available: 'syncTokensAsync_lock_not_available', syncTokensAsync_end: 'syncTokensAsync_end', syncTokensAsync_error: 'syncTokensAsync_error', + tokensInvalidAndWaitingActionsToRefresh: 'tokensInvalidAndWaitingActionsToRefresh', }; diff --git a/packages/oidc-client/src/fetch.ts b/packages/oidc-client/src/fetch.ts index 1cdfcd6fe..5d1fdc72a 100644 --- a/packages/oidc-client/src/fetch.ts +++ b/packages/oidc-client/src/fetch.ts @@ -1,8 +1,9 @@ import {Fetch} from "./types"; import {OidcClient} from "./oidcClient"; +import {getValidTokenAsync} from "./parseTokens"; // @ts-ignore -export const fetchWithTokens = (fetch: Fetch, oidcClient: OidcClient | null) : Fetch => async (...params: Parameters) :Promise => { +export const fetchWithTokens = (fetch: Fetch, oidcClient: Oidc | null) : Fetch => async (...params: Parameters) :Promise => { const [url, options, ...rest] = params; const optionTmp = options ? { ...options } : { method: 'GET' }; let headers = new Headers(); @@ -14,9 +15,8 @@ export const fetchWithTokens = (fetch: Fetch, oidcClient: OidcClient | null) : F const oidc = oidcClient; // @ts-ignore - const getValidToken = await oidc.getValidTokenAsync(); + const getValidToken = await getValidTokenAsync(oidc); const accessToken = getValidToken?.tokens?.accessToken; - if (!headers.has('Accept')) { headers.set('Accept', 'application/json'); } diff --git a/packages/oidc-client/src/index.ts b/packages/oidc-client/src/index.ts index 2dc2a8c9c..4ad660aff 100644 --- a/packages/oidc-client/src/index.ts +++ b/packages/oidc-client/src/index.ts @@ -1,3 +1,5 @@ +import {ILOidcLocation} from "./location"; + export { getFetchDefault } from './oidc.js'; export { TokenRenewMode } from './parseTokens.js'; export { getParseQueryStringFromLocation, getPath } from './route-utils'; @@ -5,7 +7,10 @@ export type { AuthorityConfiguration, Fetch, OidcConfiguration, - StringMap, + StringMap } from './types.js'; -export { type ILOidcLocation, OidcLocation } from './location.js'; + +export { OidcLocation } from './location.js'; +export type { ILOidcLocation } from './location.js'; +export { TokenAutomaticRenewMode } from './types.js'; export { type OidcUserInfo, OidcClient } from './oidcClient.js'; diff --git a/packages/oidc-client/src/oidc.ts b/packages/oidc-client/src/oidc.ts index b468a641f..56f4082c5 100644 --- a/packages/oidc-client/src/oidc.ts +++ b/packages/oidc-client/src/oidc.ts @@ -5,18 +5,16 @@ import {initSession} from './initSession.js'; import {defaultServiceWorkerUpdateRequireCallback, initWorkerAsync, sleepAsync} from './initWorker.js'; import {defaultLoginAsync, loginCallbackAsync} from './login.js'; import {destroyAsync, logoutAsync} from './logout.js'; -import {isTokensOidcValid, TokenRenewMode, Tokens,} from './parseTokens.js'; +import {TokenRenewMode, Tokens,} from './parseTokens.js'; import { autoRenewTokens, - renewTokensAndStartTimerAsync, - synchroniseTokensStatus, - syncTokensInfoAsync + renewTokensAndStartTimerAsync } from './renewTokens.js'; -import {fetchFromIssuer, performTokenRequestAsync} from './requests.js'; +import {fetchFromIssuer} from './requests.js'; import {getParseQueryStringFromLocation} from './route-utils.js'; -import defaultSilentLoginAsync, {_silentLoginAsync} from './silentLogin.js'; +import defaultSilentLoginAsync from './silentLogin.js'; import timer from './timer.js'; -import {AuthorityConfiguration, Fetch, OidcConfiguration, StringMap} from './types.js'; +import {AuthorityConfiguration, Fetch, OidcConfiguration, StringMap, TokenAutomaticRenewMode} from './types.js'; import {userInfoAsync} from './user.js'; import {base64urlOfHashOfASCIIEncodingAsync} from "./crypto"; import { @@ -112,6 +110,7 @@ export class Oidc { this.configuration = { ...configuration, silent_login_uri, + token_automatic_renew_mode: configuration.token_automatic_renew_mode ?? TokenAutomaticRenewMode.AutomaticBeforeTokenExpiration, monitor_session: configuration.monitor_session ?? false, refresh_time_before_tokens_expiration_in_second, silent_login_timeout: configuration.silent_login_timeout ?? 12000, diff --git a/packages/oidc-client/src/parseTokens.spec.ts b/packages/oidc-client/src/parseTokens.spec.ts index 380f05d90..c58669a69 100644 --- a/packages/oidc-client/src/parseTokens.spec.ts +++ b/packages/oidc-client/src/parseTokens.spec.ts @@ -8,6 +8,8 @@ import { setTokens, TokenRenewMode } from "./parseTokens"; +import {StringMap, TokenAutomaticRenewMode} from "./types"; +import {sleepAsync} from "./initWorker"; describe('ParseTokens test Suite', () => { const currentTimeUnixSecond = new Date().getTime() / 1000; @@ -26,6 +28,10 @@ describe('ParseTokens test Suite', () => { expiresAt, issuedAt, }, + configuration: { token_automatic_renew_mode: TokenAutomaticRenewMode.AutomaticBeforeTokenExpiration}, + renewTokensAsync: async (extras: StringMap) => { + await sleepAsync({milliseconds:10}); + } }; const result = await getValidTokenAsync(oidc, 1, 1); expect(result.isTokensValid).toEqual(expectIsValidToken); diff --git a/packages/oidc-client/src/parseTokens.ts b/packages/oidc-client/src/parseTokens.ts index eec9e2ba1..82d2bfeff 100644 --- a/packages/oidc-client/src/parseTokens.ts +++ b/packages/oidc-client/src/parseTokens.ts @@ -1,4 +1,5 @@ import {sleepAsync} from './initWorker.js'; +import {OidcConfiguration, StringMap, TokenAutomaticRenewMode} from "./types"; const b64DecodeUnicode = (str) => decodeURIComponent(Array.prototype.map.call(atob(str), (c) => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)).join('')); @@ -174,6 +175,8 @@ export type ValidToken = { export interface OidcToken{ tokens?: Tokens; + configuration: { token_automatic_renew_mode?: TokenAutomaticRenewMode; }, + renewTokensAsync: (extras: StringMap) => Promise; } export const getValidTokenAsync = async (oidc: OidcToken, waitMs = 200, numberWait = 50): Promise => { @@ -182,7 +185,12 @@ export const getValidTokenAsync = async (oidc: OidcToken, waitMs = 200, numberWa return null; } while (!isTokensValid(oidc.tokens) && numberWaitTemp > 0) { - await sleepAsync({milliseconds: waitMs}); + if(oidc.configuration.token_automatic_renew_mode == TokenAutomaticRenewMode.AutomaticOnlyWhenFetchExecuted){ + await oidc.renewTokensAsync({}); + break; + } else { + await sleepAsync({milliseconds: waitMs}); + } numberWaitTemp = numberWaitTemp - 1; } const isValid = isTokensValid(oidc.tokens); diff --git a/packages/oidc-client/src/renewTokens.ts b/packages/oidc-client/src/renewTokens.ts index 72762c61c..980789650 100644 --- a/packages/oidc-client/src/renewTokens.ts +++ b/packages/oidc-client/src/renewTokens.ts @@ -3,7 +3,7 @@ import {initWorkerAsync, sleepAsync} from './initWorker.js'; import Oidc from './oidc.js'; import {computeTimeLeft, isTokensOidcValid, setTokens, Tokens} from './parseTokens.js'; import timer from './timer.js'; -import {OidcConfiguration, StringMap} from './types.js'; +import {OidcConfiguration, StringMap, TokenAutomaticRenewMode} from './types.js'; import {_silentLoginAsync} from "./silentLogin"; import {performTokenRequestAsync} from "./requests"; import {eventNames} from "./events"; @@ -86,15 +86,16 @@ export const autoRenewTokens = (oidc:Oidc, expiresAt, extras:StringMap = null) = }; export const synchroniseTokensStatus ={ - 'SESSION_LOST': 'SESSION_LOST', - 'NOT_CONNECTED':'NOT_CONNECTED', - 'TOKENS_VALID':'TOKENS_VALID', - 'TOKEN_UPDATED_BY_ANOTHER_TAB_TOKENS_VALID': 'TOKEN_UPDATED_BY_ANOTHER_TAB_TOKENS_VALID', - 'LOGOUT_FROM_ANOTHER_TAB': 'LOGOUT_FROM_ANOTHER_TAB', - 'REQUIRE_SYNC_TOKENS': 'REQUIRE_SYNC_TOKENS' + FORCE_REFRESH: 'FORCE_REFRESH', + SESSION_LOST: 'SESSION_LOST', + NOT_CONNECTED:'NOT_CONNECTED', + TOKENS_VALID:'TOKENS_VALID', + TOKEN_UPDATED_BY_ANOTHER_TAB_TOKENS_VALID: 'TOKEN_UPDATED_BY_ANOTHER_TAB_TOKENS_VALID', + LOGOUT_FROM_ANOTHER_TAB: 'LOGOUT_FROM_ANOTHER_TAB', + REQUIRE_SYNC_TOKENS: 'REQUIRE_SYNC_TOKENS' }; -export const syncTokensInfoAsync = (oidc: Oidc) => async (configuration:OidcConfiguration, configurationName: string, currentTokens, forceRefresh = false) => { +export const syncTokensInfoAsync = (oidc: Oidc) => async (configuration:OidcConfiguration, configurationName: string, currentTokens: Tokens, forceRefresh = false) => { // Service Worker can be killed by the browser (when it wants,for example after 10 seconds of inactivity, so we retreieve the session if it happen) // const configuration = this.configuration; const nullNonce = { nonce: null }; @@ -147,8 +148,6 @@ export const syncTokensInfoAsync = (oidc: Oidc) => async (configuration:OidcConf } - - const synchroniseTokensAsync = (oidc:Oidc) => async (index = 0, forceRefresh = false, extras:StringMap = null, updateTokens) =>{ while (!navigator.onLine && document.hidden) { @@ -210,7 +209,6 @@ const synchroniseTokensAsync = (oidc:Oidc) => async (index = 0, forceRefresh = f if (index > 4) { if(isDocumentHidden){ - //oidc.publishEvent(eventNames.refreshTokensAsync_error, { message: 'refresh token' }); return { tokens: oidc.tokens, status: 'GIVE_UP' }; } else{ updateTokens(null); @@ -218,6 +216,7 @@ const synchroniseTokensAsync = (oidc:Oidc) => async (index = 0, forceRefresh = f return { tokens: null, status: 'SESSION_LOST' }; } } + try { const { status, tokens, nonce } = await syncTokensInfoAsync(oidc)(configuration, oidc.configurationName, oidc.tokens, forceRefresh); switch (status) { @@ -240,9 +239,21 @@ const synchroniseTokensAsync = (oidc:Oidc) => async (index = 0, forceRefresh = f oidc.publishEvent(eventNames.logout_from_another_tab, { status: 'session syncTokensAsync' }); return { tokens: null, status: 'LOGGED_OUT' }; case synchroniseTokensStatus.REQUIRE_SYNC_TOKENS: + + if(configuration.token_automatic_renew_mode == TokenAutomaticRenewMode.AutomaticOnlyWhenFetchExecuted && synchroniseTokensStatus.FORCE_REFRESH !== status ){ + oidc.publishEvent(eventNames.tokensInvalidAndWaitingActionsToRefresh, {}); + return { tokens: oidc.tokens, status: 'GIVE_UP' }; + } + oidc.publishEvent(eventNames.refreshTokensAsync_begin, { tryNumber: index }); return await localsilentLoginAsync(); default: { + + if(configuration.token_automatic_renew_mode == TokenAutomaticRenewMode.AutomaticOnlyWhenFetchExecuted && synchroniseTokensStatus.FORCE_REFRESH !== status ){ + oidc.publishEvent(eventNames.tokensInvalidAndWaitingActionsToRefresh, {}); + return { tokens: oidc.tokens, status: 'GIVE_UP' }; + } + oidc.publishEvent(eventNames.refreshTokensAsync_begin, { refreshToken: tokens.refreshToken, status, tryNumber: index }); if (!tokens.refreshToken) { return await localsilentLoginAsync(); diff --git a/packages/oidc-client/src/types.ts b/packages/oidc-client/src/types.ts index c823c772e..a816c4a31 100644 --- a/packages/oidc-client/src/types.ts +++ b/packages/oidc-client/src/types.ts @@ -6,6 +6,11 @@ export type ServiceWorkerUpdateRequireCallback = (registration:any, stopKeepAliv export type ServiceWorkerRegister = (serviceWorkerRelativeUrl:string) => Promise; export type ServiceWorkerActivate = () => boolean; +export enum TokenAutomaticRenewMode { + AutomaticBeforeTokenExpiration = 'AutomaticBeforeTokensExpiration', + AutomaticOnlyWhenFetchExecuted = 'AutomaticOnlyWhenFetchExecuted' +} + export type OidcConfiguration = { client_id: string; redirect_uri: string; @@ -18,6 +23,7 @@ export type OidcConfiguration = { authority_timeout_wellknowurl_in_millisecond?: number; authority_configuration?: AuthorityConfiguration; refresh_time_before_tokens_expiration_in_second?: number; + token_automatic_renew_mode?: TokenAutomaticRenewMode; token_request_timeout?: number; service_worker_relative_url?:string; service_worker_register?:ServiceWorkerRegister; diff --git a/packages/oidc-client/src/user.ts b/packages/oidc-client/src/user.ts index b523bab30..c01033d95 100644 --- a/packages/oidc-client/src/user.ts +++ b/packages/oidc-client/src/user.ts @@ -1,42 +1,22 @@ -import { sleepAsync } from './initWorker.js'; -import { isTokensValid } from './parseTokens.js'; import Oidc from "./oidc"; +import {fetchWithTokens} from "./fetch"; export const userInfoAsync = (oidc:Oidc) => async (noCache = false) => { if (oidc.userInfo != null && !noCache) { return oidc.userInfo; } - - // We wait the synchronisation before making a request - while (oidc.tokens && !isTokensValid(oidc.tokens)) { - await sleepAsync({milliseconds: 200}); - } - - if (!oidc.tokens) { - return null; - } - const accessToken = oidc.tokens.accessToken; - if (!accessToken) { - return null; - } - const configuration = oidc.configuration; const oidcServerConfiguration = await oidc.initAsync(configuration.authority, configuration.authority_configuration); const url = oidcServerConfiguration.userInfoEndpoint; - const fetchUserInfo = async (accessToken) => { - const res = await fetch(url, { - headers: { - authorization: `Bearer ${accessToken}`, - }, - }); - - if (res.status !== 200) { + const fetchUserInfo = async () => { + const oidcFetch = fetchWithTokens(fetch, oidc); + const response = await oidcFetch(url); + if (response.status !== 200) { return null; } - - return res.json(); + return response.json(); }; - const userInfo = await fetchUserInfo(accessToken); + const userInfo = await fetchUserInfo(); oidc.userInfo = userInfo; return userInfo; }; diff --git a/packages/react-oidc/README.md b/packages/react-oidc/README.md index 1fee9a95f..17586e3c6 100644 --- a/packages/react-oidc/README.md +++ b/packages/react-oidc/README.md @@ -223,6 +223,10 @@ const configuration = { onLogoutFromAnotherTab: Function, // Optional, can be set to override the default behavior, this function is triggered when a user with the same subject is logged out from another tab when session_monitor is active onLogoutFromSameTab: Function, // Optional, can be set to override the default behavior, this function is triggered when a user is logged out from the same tab when session_monitor is active token_renew_mode: String, // Optional, update tokens based on the selected token(s) lifetime: "access_token_or_id_token_invalid" (default), "access_token_invalid", "id_token_invalid" + token_automatic_renew_mode: TokenAutomaticRenewMode.AutomaticOnlyWhenFetchExecuted, // Optional, default is TokenAutomaticRenewMode.AutomaticBeforeTokensExpiration + // TokenAutomaticRenewMode.AutomaticBeforeTokensExpiration: renew tokens automatically before they expire + // TokenAutomaticRenewMode.AutomaticOnlyWhenFetchExecuted: renew tokens automatically only when fetch is executed + // It requires you to use fetch given by hook useOidcFetch(fetch) or HOC withOidcFetch(fetch)(Component) logout_tokens_to_invalidate: Array, // Optional tokens to invalidate during logout, default: ['access_token', 'refresh_token'] location: ILOidcLocation, // Optional, default is window.location, you can inject your own location object respecting the ILOidcLocation interface demonstrating_proof_of_possession: Boolean, // Optional, default is false, if true, the the Demonstrating Proof of Possession will be activated //https://www.rfc-editor.org/rfc/rfc9449.html#name-protected-resource-access diff --git a/packages/react-oidc/src/ReactOidc.tsx b/packages/react-oidc/src/ReactOidc.tsx index 805e183a1..f80acbb7e 100644 --- a/packages/react-oidc/src/ReactOidc.tsx +++ b/packages/react-oidc/src/ReactOidc.tsx @@ -127,11 +127,12 @@ export const useOidcAccessToken = (configurationName = defaultConfigurationName) return state; }; -const idTokenInitialState = { idToken: null, idTokenPayload: null }; +const idTokenInitialState = { idToken: null, idTokenPayload: null}; const initIdToken = (configurationName: string) => { const getOidc = OidcClient.get; const oidc = getOidc(configurationName); + if (oidc.tokens) { const tokens = oidc.tokens; return { idToken: tokens.idToken, idTokenPayload: tokens.idTokenPayload }; diff --git a/packages/react-oidc/src/User.ts b/packages/react-oidc/src/User.ts index c972f25c2..fb25ad4ea 100644 --- a/packages/react-oidc/src/User.ts +++ b/packages/react-oidc/src/User.ts @@ -16,8 +16,7 @@ export type OidcUser = { export const useOidcUser = (configurationName = 'default') => { const [oidcUser, setOidcUser] = useState>({ user: null, status: OidcUserStatus.Unauthenticated }); const [oidcUserId, setOidcUserId] = useState(''); - - + useEffect(() => { const oidc = OidcClient.get(configurationName); let isMounted = true; diff --git a/packages/react-oidc/src/index.ts b/packages/react-oidc/src/index.ts index f967e4d8d..116041f13 100644 --- a/packages/react-oidc/src/index.ts +++ b/packages/react-oidc/src/index.ts @@ -8,5 +8,6 @@ export type { Fetch, OidcConfiguration, StringMap, + ILOidcLocation } from '@axa-fr/oidc-client'; -export { type OidcUserInfo, TokenRenewMode, OidcClient } from '@axa-fr/oidc-client'; +export { type OidcUserInfo, TokenRenewMode, OidcClient, TokenAutomaticRenewMode, OidcLocation } from '@axa-fr/oidc-client'; From 4c24244d7f1d205912cb3706ca6afe0e4cffae01 Mon Sep 17 00:00:00 2001 From: GitHub Date: Sun, 24 Mar 2024 15:23:11 +0000 Subject: [PATCH 244/440] [skip ci] Update to version 7.20.1 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index fbc42813a..ee443ae0a 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.20.0", + "version": "7.20.1", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index f4679c23b..407969ea5 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.20.0'; +export default '7.20.1'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 95398f66f..f98b01ba4 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.20.0", + "version": "7.20.1", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index f4679c23b..407969ea5 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.20.0'; +export default '7.20.1'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index f0cef5649..bb8d175d4 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.20.0", + "version": "7.20.1", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 51f6d124b059852fce7aad14330738fc541ea2ab Mon Sep 17 00:00:00 2001 From: GitHub Date: Sun, 24 Mar 2024 15:23:13 +0000 Subject: [PATCH 245/440] [skip ci] Generate changelog to version 7.20.1 --- CHANGELOG.md | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3f37312af..2181d4c73 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog -## 7.20.0 +## 7.20.1 + +- [9a3ad3a](https://github.com/AxaFrance/oidc-client/commit/9a3ad3a474a66cc77fa2c3eb3eafa42f167f1e45) - feature(oidc): token renew only when required (release) (#1327), 2024-03-24 by *Guillaume Chervet* + + +## v7.20.0 - [44d15be](https://github.com/AxaFrance/oidc-client/commit/44d15be1c4d8f5069f15ddc5351e546fc5eb7730) - fix(oidc): userInfo 401 on first login (release), 2024-03-22 by *Guillaume Chervet* - [c7793c9](https://github.com/AxaFrance/oidc-client/commit/c7793c9913128dbb82a60dff11261ca5b4749f0c) - feat(oidc-client): add dpop extras to claims (alpha), 2024-03-19 by *Guillaume Chervet* @@ -314,9 +319,3 @@ - [2fdfcb5](https://github.com/AxaFrance/oidc-client/commit/2fdfcb5ec727f0c6f5f86c4648b95ba4f265fc57) - Update README.md (#1210), 2023-11-29 by *Guillaume Chervet* -## v7.11.0 - -- [6751b5c](https://github.com/AxaFrance/oidc-client/commit/6751b5c3f0e1265e35ac9b4b20cb673657eea6b4) - feat(ci): add auto changelog (release), 2023-11-29 by *Guillaume Chervet* -- [56bde67](https://github.com/AxaFrance/oidc-client/commit/56bde67566f8203e9d62ae6e8b722c86a7b63cae) - doc(readme): Update README.md, 2023-11-27 by *Guillaume Chervet* - - From 8335b5a6f5c02d320d642a022ff3828513f5a43e Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Thu, 28 Mar 2024 20:32:23 +0100 Subject: [PATCH 246/440] feat(dpop): add extras (alpha) (#1325) (release) * feat(dpop): add extras (alpha) * udpate readme --- packages/oidc-client/README.md | 3 ++- packages/oidc-client/src/index.ts | 5 +++++ packages/react-oidc/src/ReactOidc.tsx | 5 ++--- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/packages/oidc-client/README.md b/packages/oidc-client/README.md index 35d18b10d..b4904bdfb 100644 --- a/packages/oidc-client/README.md +++ b/packages/oidc-client/README.md @@ -402,9 +402,10 @@ export class OidcClient { * @param accessToken The access token to use. * @param url The url to use. * @param method The method to use. + * @param extras Additional parameters to send to the OIDC server during the demonstration of proof of possession request. * @returns A promise resolved with the proof of possession. */ - async generateDemonstrationOfProofOfPossessionAsync(accessToken:string, url:string, method:string): Promise; + async generateDemonstrationOfProofOfPossessionAsync(accessToken:string, url:string, method:string, extras:StringMap= {}): Promise; } ``` diff --git a/packages/oidc-client/src/index.ts b/packages/oidc-client/src/index.ts index 4ad660aff..070d2b197 100644 --- a/packages/oidc-client/src/index.ts +++ b/packages/oidc-client/src/index.ts @@ -3,6 +3,11 @@ import {ILOidcLocation} from "./location"; export { getFetchDefault } from './oidc.js'; export { TokenRenewMode } from './parseTokens.js'; export { getParseQueryStringFromLocation, getPath } from './route-utils'; + +export type { + Tokens +} from './parseTokens.js'; + export type { AuthorityConfiguration, Fetch, diff --git a/packages/react-oidc/src/ReactOidc.tsx b/packages/react-oidc/src/ReactOidc.tsx index f80acbb7e..9a2aef457 100644 --- a/packages/react-oidc/src/ReactOidc.tsx +++ b/packages/react-oidc/src/ReactOidc.tsx @@ -1,6 +1,5 @@ -import { StringMap, OidcClient } from '@axa-fr/oidc-client'; +import { StringMap, OidcClient, Tokens } from '@axa-fr/oidc-client'; import { useEffect, useState } from 'react'; -import {Tokens} from "@axa-fr/oidc-client/dist/parseTokens"; const defaultConfigurationName = 'default'; @@ -86,7 +85,7 @@ export type OidcAccessToken = { } function getGenerateDemonstrationOfProofOfPossessionAsync(oidc: OidcClient, tokens: Tokens) { - return oidc.configuration.demonstrating_proof_of_possession ? (url: string, method: string) => oidc.generateDemonstrationOfProofOfPossessionAsync(tokens.accessToken, url, method) : null; + return oidc.configuration.demonstrating_proof_of_possession ? (url: string, method: string, extras:StringMap={}) => oidc.generateDemonstrationOfProofOfPossessionAsync(tokens.accessToken, url, method, extras) : null; } export const useOidcAccessToken = (configurationName = defaultConfigurationName) => { From 1c92712dab3df3c707d3a29653157f26c340c086 Mon Sep 17 00:00:00 2001 From: GitHub Date: Thu, 28 Mar 2024 19:35:15 +0000 Subject: [PATCH 247/440] [skip ci] Update to version 7.21.0 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index ee443ae0a..9752cb820 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.20.1", + "version": "7.21.0", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 407969ea5..a6e42c8f0 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.20.1'; +export default '7.21.0'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index f98b01ba4..7bd821e61 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.20.1", + "version": "7.21.0", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 407969ea5..a6e42c8f0 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.20.1'; +export default '7.21.0'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index bb8d175d4..d687d5858 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.20.1", + "version": "7.21.0", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From ef1597ea2c6d41e8d61b6a27bc26f6ad40304a50 Mon Sep 17 00:00:00 2001 From: GitHub Date: Thu, 28 Mar 2024 19:35:17 +0000 Subject: [PATCH 248/440] [skip ci] Generate changelog to version 7.21.0 --- CHANGELOG.md | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2181d4c73..c4dee85a1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog -## 7.20.1 +## 7.21.0 + +- [8335b5a](https://github.com/AxaFrance/oidc-client/commit/8335b5a6f5c02d320d642a022ff3828513f5a43e) - feat(dpop): add extras (alpha) (#1325) (release), 2024-03-28 by *Guillaume Chervet* + + +## v7.20.1 - [9a3ad3a](https://github.com/AxaFrance/oidc-client/commit/9a3ad3a474a66cc77fa2c3eb3eafa42f167f1e45) - feature(oidc): token renew only when required (release) (#1327), 2024-03-24 by *Guillaume Chervet* @@ -313,9 +318,3 @@ - [2b5aa6a](https://github.com/AxaFrance/oidc-client/commit/2b5aa6aba61bb35c7ae95102a34a8517c37607e5) - fix(ci): changelog in another commit (release), 2023-11-29 by *Guillaume Chervet* -## v7.12.0 - -- [23217fe](https://github.com/AxaFrance/oidc-client/commit/23217fe3439500412eca9facc368e1ef5dfcb939) - feat(oidc-client): export OidcClient instance for client application (#1211) (release), 2023-11-29 by *Douglas Zaltron* -- [2fdfcb5](https://github.com/AxaFrance/oidc-client/commit/2fdfcb5ec727f0c6f5f86c4648b95ba4f265fc57) - Update README.md (#1210), 2023-11-29 by *Guillaume Chervet* - - From 032a00b501557fe6b5be48e83e4914051ee2c7f0 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Wed, 10 Apr 2024 07:59:41 +0200 Subject: [PATCH 249/440] feat(oidc): control dpop injection (release) (#1342) * feat(oidc): control dpop injection * fix (alpha) --- .../react-oidc-demo/public/OidcTrustedDomains.js | 4 +++- .../src/OidcServiceWorker.ts | 12 ++++++++++-- packages/oidc-client-service-worker/src/dpop.ts | 13 +++++++++++++ packages/oidc-client-service-worker/src/types.ts | 2 ++ .../src/utils/__tests__/domains.spec.ts | 1 + .../src/utils/__tests__/testHelper.ts | 1 + packages/oidc-client/README.md | 9 ++++++--- packages/oidc-client/src/fetch.ts | 4 ++-- packages/oidc-client/src/oidc.ts | 4 ++-- packages/oidc-client/src/oidcClient.ts | 6 +++--- packages/oidc-client/src/user.ts | 4 ++-- packages/react-oidc/README.md | 3 ++- packages/react-oidc/src/FetchToken.tsx | 12 ++++++------ packages/react-oidc/src/User.ts | 4 ++-- 14 files changed, 55 insertions(+), 24 deletions(-) diff --git a/examples/react-oidc-demo/public/OidcTrustedDomains.js b/examples/react-oidc-demo/public/OidcTrustedDomains.js index e7b4ee1c1..933b0f2bc 100644 --- a/examples/react-oidc-demo/public/OidcTrustedDomains.js +++ b/examples/react-oidc-demo/public/OidcTrustedDomains.js @@ -24,5 +24,7 @@ trustedDomains.config_separate_oidc_access_token_domains = { trustedDomains.config_with_dpop = { domains: ["https://demo.duendesoftware.com"], - demonstratingProofOfPossession: true }; + demonstratingProofOfPossession: true, + demonstratingProofOfPossessionOnlyWhenDpopHeaderPresent: true +}; //# sourceMappingURL=OidcTrustedDomains.js.map \ No newline at end of file diff --git a/packages/oidc-client-service-worker/src/OidcServiceWorker.ts b/packages/oidc-client-service-worker/src/OidcServiceWorker.ts index 22271eb52..cb3b7ba93 100644 --- a/packages/oidc-client-service-worker/src/OidcServiceWorker.ts +++ b/packages/oidc-client-service-worker/src/OidcServiceWorker.ts @@ -18,7 +18,7 @@ import {extractConfigurationNameFromCodeVerifier, replaceCodeVerifier} from './u import { normalizeUrl } from './utils/normalizeUrl'; import version from './version'; import {generateJwkAsync, generateJwtDemonstratingProofOfPossessionAsync} from "./jwt"; -import {getDpopConfiguration} from "./dpop"; +import {getDpopConfiguration, getDpopOnlyWhenDpopHeaderPresent} from "./dpop"; import {base64urlOfHashOfASCIIEncodingAsync} from "./crypto"; // @ts-ignore @@ -97,7 +97,11 @@ const keepAliveAsync = async (event: FetchEvent) => { async function generateDpopAsync(originalRequest: Request, currentDatabase:OidcConfig|null, url: string, extrasClaims={} ) { const headersExtras = serializeHeaders(originalRequest.headers); - if (currentDatabase && currentDatabase.demonstratingProofOfPossessionConfiguration && currentDatabase.demonstratingProofOfPossessionJwkJson) { + if (currentDatabase && + currentDatabase.demonstratingProofOfPossessionConfiguration && + currentDatabase.demonstratingProofOfPossessionJwkJson && + (!currentDatabase.demonstratingProofOfPossessionOnlyWhenDpopHeaderPresent || currentDatabase.demonstratingProofOfPossessionOnlyWhenDpopHeaderPresent && headersExtras['dpop']) + ) { const dpopConfiguration = currentDatabase.demonstratingProofOfPossessionConfiguration; const jwk = currentDatabase.demonstratingProofOfPossessionJwkJson; headersExtras['dpop'] = await generateJwtDemonstratingProofOfPossessionAsync(self)(dpopConfiguration)(jwk, 'POST', url, extrasClaims); @@ -363,6 +367,7 @@ const handleMessage = async (event: ExtendableMessageEvent) => { demonstratingProofOfPossessionNonce: null, demonstratingProofOfPossessionJwkJson: null, demonstratingProofOfPossessionConfiguration: null, + demonstratingProofOfPossessionOnlyWhenDpopHeaderPresent: false, }; currentDatabase = database[configurationName]; @@ -379,6 +384,7 @@ const handleMessage = async (event: ExtendableMessageEvent) => { currentDatabase.demonstratingProofOfPossessionNonce = null; currentDatabase.demonstratingProofOfPossessionJwkJson = null; currentDatabase.demonstratingProofOfPossessionConfiguration = null; + currentDatabase.demonstratingProofOfPossessionOnlyWhenDpopHeaderPresent = false; currentDatabase.status = data.data.status; port.postMessage({ configurationName }); return; @@ -398,6 +404,7 @@ const handleMessage = async (event: ExtendableMessageEvent) => { } currentDatabase.oidcServerConfiguration = oidcServerConfiguration; currentDatabase.oidcConfiguration = data.data.oidcConfiguration; + if(currentDatabase.demonstratingProofOfPossessionConfiguration == null ){ const demonstratingProofOfPossessionConfiguration = getDpopConfiguration(trustedDomains[configurationName]); @@ -407,6 +414,7 @@ const handleMessage = async (event: ExtendableMessageEvent) => { } currentDatabase.demonstratingProofOfPossessionConfiguration = demonstratingProofOfPossessionConfiguration; currentDatabase.demonstratingProofOfPossessionJwkJson = await generateJwkAsync(self)(demonstratingProofOfPossessionConfiguration.generateKeyAlgorithm); + currentDatabase.demonstratingProofOfPossessionOnlyWhenDpopHeaderPresent = getDpopOnlyWhenDpopHeaderPresent(trustedDomains[configurationName]) ?? false; } } diff --git a/packages/oidc-client-service-worker/src/dpop.ts b/packages/oidc-client-service-worker/src/dpop.ts index dfa516d1e..921c9f9ad 100644 --- a/packages/oidc-client-service-worker/src/dpop.ts +++ b/packages/oidc-client-service-worker/src/dpop.ts @@ -19,4 +19,17 @@ export const getDpopConfiguration = (trustedDomain: Domain[] | DomainDetails) => } return trustedDomain.demonstratingProofOfPossessionConfiguration ?? defaultDemonstratingProofOfPossessionConfiguration; +} + +export const getDpopOnlyWhenDpopHeaderPresent = (trustedDomain: Domain[] | DomainDetails) => { + + if(!isDpop(trustedDomain)) { + return null; + } + + if (Array.isArray(trustedDomain)) { + return null; + } + + return trustedDomain.demonstratingProofOfPossessionOnlyWhenDpopHeaderPresent ?? true; } \ No newline at end of file diff --git a/packages/oidc-client-service-worker/src/types.ts b/packages/oidc-client-service-worker/src/types.ts index ef3244671..dd687f4a1 100644 --- a/packages/oidc-client-service-worker/src/types.ts +++ b/packages/oidc-client-service-worker/src/types.ts @@ -6,6 +6,7 @@ export type DomainDetails = { convertAllRequestsToCorsExceptNavigate?: boolean, setAccessTokenToNavigateRequests?: boolean, demonstratingProofOfPossession?:boolean; + demonstratingProofOfPossessionOnlyWhenDpopHeaderPresent?:boolean; demonstratingProofOfPossessionConfiguration?: DemonstratingProofOfPossessionConfiguration; } @@ -84,6 +85,7 @@ export type OidcConfig = { setAccessTokenToNavigateRequests: boolean, demonstratingProofOfPossessionNonce: string | null; demonstratingProofOfPossessionJwkJson: string | null; + demonstratingProofOfPossessionOnlyWhenDpopHeaderPresent: boolean; } export type IdTokenPayload = { diff --git a/packages/oidc-client-service-worker/src/utils/__tests__/domains.spec.ts b/packages/oidc-client-service-worker/src/utils/__tests__/domains.spec.ts index 75aa7cf58..eea8e1a46 100644 --- a/packages/oidc-client-service-worker/src/utils/__tests__/domains.spec.ts +++ b/packages/oidc-client-service-worker/src/utils/__tests__/domains.spec.ts @@ -54,6 +54,7 @@ describe('domains', () => { demonstratingProofOfPossessionNonce: null, demonstratingProofOfPossessionJwkJson: null, demonstratingProofOfPossessionConfiguration: null, + demonstratingProofOfPossessionOnlyWhenDpopHeaderPresent: false, }, }; }); diff --git a/packages/oidc-client-service-worker/src/utils/__tests__/testHelper.ts b/packages/oidc-client-service-worker/src/utils/__tests__/testHelper.ts index 6e30e61e2..fd960ba65 100644 --- a/packages/oidc-client-service-worker/src/utils/__tests__/testHelper.ts +++ b/packages/oidc-client-service-worker/src/utils/__tests__/testHelper.ts @@ -129,6 +129,7 @@ class OidcConfigBuilder { demonstratingProofOfPossessionNonce: null, demonstratingProofOfPossessionJwkJson: null, demonstratingProofOfPossessionConfiguration: null, + demonstratingProofOfPossessionOnlyWhenDpopHeaderPresent: false, }; public withTestingDefault(): OidcConfigBuilder { diff --git a/packages/oidc-client/README.md b/packages/oidc-client/README.md index b4904bdfb..576aadcbc 100644 --- a/packages/oidc-client/README.md +++ b/packages/oidc-client/README.md @@ -102,7 +102,8 @@ trustedDomains.config_show_access_token = { // DPoP (Demonstrating Proof of Possession) will be activated for the following domains trustedDomains.config_with_dpop = { domains: ["https://demo.duendesoftware.com"], - demonstratingProofOfPossession: true + demonstratingProofOfPossession: true, + demonstratingProofOfPossessionOnlyWhenDpopHeaderPresent: true, // default value is false, inject DPOP token only when DPOP header is present // Optional, more details bellow /*demonstratingProofOfPossessionConfiguration: { importKeyAlgorithm: { @@ -386,16 +387,18 @@ export class OidcClient { /** * Retrieves a new fetch function that inject bearer tokens (also DPOP tokens). * @param fetch The current fetch function to use + * @param demonstrating_proof_of_possession Indicates whether the demonstration of proof of possession should be used. * @returns Fetch A new fectch function that inject bearer tokens (also DPOP tokens). */ - fetchWithTokens(fetch: Fetch): Fetch; + fetchWithTokens(fetch: Fetch, demonstrating_proof_of_possession=false): Fetch; /** * Retrieves OIDC user information. * @param noCache Indicates whether user information should be retrieved bypassing the cache. + * @param demonstrating_proof_of_possession Indicates whether the demonstration of proof of possession should be used. * @returns A promise resolved with the user information, or rejected with an error. */ - async userInfoAsync(noCache = false): Promise; + async userInfoAsync(noCache = false, demonstrating_proof_of_possession=false): Promise; /** * Generate Demonstration of proof of possession. diff --git a/packages/oidc-client/src/fetch.ts b/packages/oidc-client/src/fetch.ts index 5d1fdc72a..1d33fc86d 100644 --- a/packages/oidc-client/src/fetch.ts +++ b/packages/oidc-client/src/fetch.ts @@ -3,7 +3,7 @@ import {OidcClient} from "./oidcClient"; import {getValidTokenAsync} from "./parseTokens"; // @ts-ignore -export const fetchWithTokens = (fetch: Fetch, oidcClient: Oidc | null) : Fetch => async (...params: Parameters) :Promise => { +export const fetchWithTokens = (fetch: Fetch, oidcClient: Oidc | null, demonstrating_proof_of_possession:boolean=false) : Fetch => async (...params: Parameters) :Promise => { const [url, options, ...rest] = params; const optionTmp = options ? { ...options } : { method: 'GET' }; let headers = new Headers(); @@ -21,7 +21,7 @@ export const fetchWithTokens = (fetch: Fetch, oidcClient: Oidc | null) : Fetch = headers.set('Accept', 'application/json'); } if (accessToken) { - if(oidc.configuration.demonstrating_proof_of_possession) { + if(oidc.configuration.demonstrating_proof_of_possession && demonstrating_proof_of_possession) { const demonstrationOdProofOfPossession = await oidc.generateDemonstrationOfProofOfPossessionAsync(accessToken, url.toString(), optionTmp.method); headers.set('Authorization', `PoP ${accessToken}`); headers.set('DPoP', demonstrationOdProofOfPossession); diff --git a/packages/oidc-client/src/oidc.ts b/packages/oidc-client/src/oidc.ts index 56f4082c5..0398a05f7 100644 --- a/packages/oidc-client/src/oidc.ts +++ b/packages/oidc-client/src/oidc.ts @@ -332,11 +332,11 @@ Please checkout that you are using OIDC hook inside a = null; - userInfoAsync(noCache = false) { + userInfoAsync(noCache = false, demonstrating_proof_of_possession=false) { if (this.userInfoPromise !== null) { return this.userInfoPromise; } - this.userInfoPromise = userInfoAsync(this)(noCache); + this.userInfoPromise = userInfoAsync(this)(noCache, demonstrating_proof_of_possession); return this.userInfoPromise.then(result => { this.userInfoPromise = null; return result; diff --git a/packages/oidc-client/src/oidcClient.ts b/packages/oidc-client/src/oidcClient.ts index 2e2762014..7a799e17a 100644 --- a/packages/oidc-client/src/oidcClient.ts +++ b/packages/oidc-client/src/oidcClient.ts @@ -75,11 +75,11 @@ export class OidcClient { return getValidTokenAsync(this._oidc, waitMs, numberWait); } - fetchWithTokens(fetch: Fetch): Fetch { - return fetchWithTokens(fetch, this); + fetchWithTokens(fetch: Fetch, demonstrating_proof_of_possession:false): Fetch { + return fetchWithTokens(fetch, this, demonstrating_proof_of_possession); } - async userInfoAsync(noCache = false):Promise { + async userInfoAsync(noCache = false, demonstrating_proof_of_possession:boolean=false):Promise { return this._oidc.userInfoAsync(noCache); } } diff --git a/packages/oidc-client/src/user.ts b/packages/oidc-client/src/user.ts index c01033d95..361b59c9b 100644 --- a/packages/oidc-client/src/user.ts +++ b/packages/oidc-client/src/user.ts @@ -1,7 +1,7 @@ import Oidc from "./oidc"; import {fetchWithTokens} from "./fetch"; -export const userInfoAsync = (oidc:Oidc) => async (noCache = false) => { +export const userInfoAsync = (oidc:Oidc) => async (noCache = false, demonstrating_proof_of_possession=false) => { if (oidc.userInfo != null && !noCache) { return oidc.userInfo; } @@ -9,7 +9,7 @@ export const userInfoAsync = (oidc:Oidc) => async (noCache = false) => { const oidcServerConfiguration = await oidc.initAsync(configuration.authority, configuration.authority_configuration); const url = oidcServerConfiguration.userInfoEndpoint; const fetchUserInfo = async () => { - const oidcFetch = fetchWithTokens(fetch, oidc); + const oidcFetch = fetchWithTokens(fetch, oidc, demonstrating_proof_of_possession); const response = await oidcFetch(url); if (response.status !== 200) { return null; diff --git a/packages/react-oidc/README.md b/packages/react-oidc/README.md index 17586e3c6..5a02047ff 100644 --- a/packages/react-oidc/README.md +++ b/packages/react-oidc/README.md @@ -101,7 +101,8 @@ trustedDomains.config_show_access_token = { // DPoP (Demonstrating Proof of Possession) will be activated for the following domains trustedDomains.config_with_dpop = { domains: ["https://demo.duendesoftware.com"], - demonstratingProofOfPossession: true + demonstratingProofOfPossession: true, + demonstratingProofOfPossessionOnlyWhenDpopHeaderPresent: true, // default value is false, inject DPOP token only when DPOP header is present // Optional, more details bellow /*demonstratingProofOfPossessionConfiguration: { importKeyAlgorithm: { diff --git a/packages/react-oidc/src/FetchToken.tsx b/packages/react-oidc/src/FetchToken.tsx index af94a512f..e311778e0 100644 --- a/packages/react-oidc/src/FetchToken.tsx +++ b/packages/react-oidc/src/FetchToken.tsx @@ -7,27 +7,27 @@ export interface ComponentWithOidcFetchProps { const defaultConfigurationName = 'default'; -const fetchWithToken = (fetch: Fetch, getOidcWithConfigurationName: () => OidcClient | null) => async (...params: Parameters) => { +const fetchWithToken = (fetch: Fetch, getOidcWithConfigurationName: () => OidcClient | null, demonstrating_proof_of_possession=false) => async (...params: Parameters) => { const oidc = getOidcWithConfigurationName(); - const newFetch = oidc.fetchWithTokens(fetch); + const newFetch = oidc.fetchWithTokens(fetch, demonstrating_proof_of_possession); return await newFetch(...params); }; -export const withOidcFetch = (fetch: Fetch = null, configurationName = defaultConfigurationName) => ( +export const withOidcFetch = (fetch: Fetch = null, configurationName = defaultConfigurationName, demonstrating_proof_of_possession:boolean=false) => ( WrappedComponent, ) => (props: ComponentWithOidcFetchProps) => { - const { fetch: newFetch } = useOidcFetch(fetch || props.fetch, configurationName); + const { fetch: newFetch } = useOidcFetch(fetch || props.fetch, configurationName, demonstrating_proof_of_possession); return ; }; -export const useOidcFetch = (fetch: Fetch = null, configurationName = defaultConfigurationName) => { +export const useOidcFetch = (fetch: Fetch = null, configurationName = defaultConfigurationName, demonstrating_proof_of_possession:boolean=false) => { const previousFetch = fetch || window.fetch; const getOidc = OidcClient.get; const memoizedFetchCallback = useCallback( (input: RequestInfo | URL, init?: RequestInit) => { const getOidcWithConfigurationName = () => getOidc(configurationName); - const newFetch = fetchWithToken(previousFetch, getOidcWithConfigurationName); + const newFetch = fetchWithToken(previousFetch, getOidcWithConfigurationName, demonstrating_proof_of_possession); return newFetch(input, init); }, [previousFetch, configurationName], diff --git a/packages/react-oidc/src/User.ts b/packages/react-oidc/src/User.ts index fb25ad4ea..d7693f748 100644 --- a/packages/react-oidc/src/User.ts +++ b/packages/react-oidc/src/User.ts @@ -13,7 +13,7 @@ export type OidcUser = { status: OidcUserStatus; } -export const useOidcUser = (configurationName = 'default') => { +export const useOidcUser = (configurationName = 'default', demonstrating_proof_of_possession=false) => { const [oidcUser, setOidcUser] = useState>({ user: null, status: OidcUserStatus.Unauthenticated }); const [oidcUserId, setOidcUserId] = useState(''); @@ -23,7 +23,7 @@ export const useOidcUser = (configuration if (oidc && oidc.tokens) { setOidcUser({ ...oidcUser, status: OidcUserStatus.Loading }); const isNoCache = oidcUserId !== ''; - oidc.userInfoAsync(isNoCache) + oidc.userInfoAsync(isNoCache, demonstrating_proof_of_possession) .then((info) => { if (isMounted) { // @ts-ignore From dcfcbda7352a8afee53d297b86802a7f51736608 Mon Sep 17 00:00:00 2001 From: GitHub Date: Wed, 10 Apr 2024 06:02:30 +0000 Subject: [PATCH 250/440] [skip ci] Update to version 7.22.0 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 9752cb820..1bfc0e49e 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.21.0", + "version": "7.22.0", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index a6e42c8f0..595cf8eeb 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.21.0'; +export default '7.22.0'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 7bd821e61..97314ac0f 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.21.0", + "version": "7.22.0", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index a6e42c8f0..595cf8eeb 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.21.0'; +export default '7.22.0'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index d687d5858..c982f7a70 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.21.0", + "version": "7.22.0", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From b42f5bb4a5f547b6f69783208ec6fc1f08e351ba Mon Sep 17 00:00:00 2001 From: GitHub Date: Wed, 10 Apr 2024 06:02:32 +0000 Subject: [PATCH 251/440] [skip ci] Generate changelog to version 7.22.0 --- CHANGELOG.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c4dee85a1..f44a903c5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog -## 7.21.0 +## 7.22.0 + +- [032a00b](https://github.com/AxaFrance/oidc-client/commit/032a00b501557fe6b5be48e83e4914051ee2c7f0) - feat(oidc): control dpop injection (release) (#1342), 2024-04-10 by *Guillaume Chervet* + + +## v7.21.0 - [8335b5a](https://github.com/AxaFrance/oidc-client/commit/8335b5a6f5c02d320d642a022ff3828513f5a43e) - feat(dpop): add extras (alpha) (#1325) (release), 2024-03-28 by *Guillaume Chervet* @@ -313,8 +318,3 @@ - [cd575e7](https://github.com/AxaFrance/oidc-client/commit/cd575e716f4fbcb1ba09a76a1530a3ae23f08599) - fix(ci): last clean and test (release), 2023-11-29 by *Guillaume Chervet* -## v7.12.1 - -- [2b5aa6a](https://github.com/AxaFrance/oidc-client/commit/2b5aa6aba61bb35c7ae95102a34a8517c37607e5) - fix(ci): changelog in another commit (release), 2023-11-29 by *Guillaume Chervet* - - From be2465852e837b749abd3a86c5c0caa57a2ea8b6 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Mon, 15 Apr 2024 21:37:39 +0200 Subject: [PATCH 252/440] refactor(all): update libs (release) --- package.json | 24 +- .../oidc-client-service-worker/package.json | 10 +- packages/oidc-client/package.json | 14 +- packages/react-oidc/package.json | 16 +- pnpm-lock.yaml | 2218 ++++++++++++----- 5 files changed, 1587 insertions(+), 695 deletions(-) diff --git a/package.json b/package.json index 6a92fbee9..5202792e4 100644 --- a/package.json +++ b/package.json @@ -27,26 +27,26 @@ "build": "pnpm -r --filter=./packages/* run build" }, "devDependencies": { - "@typescript-eslint/eslint-plugin": "6.21.0", - "@typescript-eslint/parser": "6.21.0", - "eslint": "^8.56.0", + "@typescript-eslint/eslint-plugin": "7.7.0", + "@typescript-eslint/parser": "7.7.0", + "eslint": "^9.0.0", "eslint-config-prettier": "9.1.0", "eslint-define-config": "2.1.0", "eslint-plugin-import": "2.29.1", "eslint-plugin-jsx-a11y": "6.8.0", - "eslint-plugin-n": "16.6.2", + "eslint-plugin-n": "17.2.1", "eslint-plugin-no-only-tests": "^3.1.0", - "eslint-plugin-prettier": "5.0.1", - "eslint-plugin-react": "7.33.2", + "eslint-plugin-prettier": "5.1.3", + "eslint-plugin-react": "7.34.1", "eslint-plugin-react-hooks": "^4.6.0", - "eslint-plugin-regexp": "^2.2.0", - "eslint-plugin-simple-import-sort": "^10.0.0", - "eslint-plugin-testing-library": "6.2.0", + "eslint-plugin-regexp": "2.5.0", + "eslint-plugin-simple-import-sort": "12.1.0", + "eslint-plugin-testing-library": "6.2.2", "prettier": "3.2.5", "tslib": "^2.6.2", - "tsx": "4.7.0", - "typescript": "5.3.3", - "vitest": "1.3.1" + "tsx": "4.7.2", + "typescript": "5.4.5", + "vitest": "1.5.0" }, "engines": { "node": "16.* || >= 18.0.0" diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 1bfc0e49e..4d1fb7b33 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -34,14 +34,14 @@ "lint": "eslint src" }, "devDependencies": { - "@vitest/coverage-v8": "1.3.1", + "@vitest/coverage-v8": "1.5.0", "cpy": "11.0.1", "cpy-cli": "^5.0.0", "rimraf": "5.0.5", - "typescript": "5.4.2", - "vite": "5.1.6", - "vite-plugin-dts": "3.7.3", - "vitest": "1.3.1" + "typescript": "5.4.5", + "vite": "5.2.8", + "vite-plugin-dts": "3.8.3", + "vitest": "1.5.0" }, "publishConfig": { "access": "public", diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 97314ac0f..20ed6f814 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -23,17 +23,17 @@ "@axa-fr/oidc-client-service-worker": "workspace:*" }, "devDependencies": { - "@testing-library/dom": "9.3.4", + "@testing-library/dom": "10.0.0", "@testing-library/jest-dom": "6.4.2", - "@testing-library/react": "14.2.1", - "@vitest/coverage-v8": "1.3.1", + "@testing-library/react": "15.0.2", + "@vitest/coverage-v8": "1.5.0", "cpy": "11.0.1", "cpy-cli": "^5.0.0", "rimraf": "5.0.5", - "typescript": "5.4.2", - "vite": "5.1.6", - "vite-plugin-dts": "3.7.3", - "vitest": "1.3.1" + "typescript": "5.4.5", + "vite": "5.2.8", + "vite-plugin-dts": "3.8.3", + "vitest": "1.5.0" }, "keywords": [ "oidc", diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index c982f7a70..e6c0d0353 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -48,23 +48,23 @@ }, "devDependencies": { "@testing-library/jest-dom": "6.4.2", - "@testing-library/react": "14.2.1", + "@testing-library/react": "15.0.2", "@testing-library/user-event": "14.5.2", - "@types/react": "^18.2.39", + "@types/react": "^18.2.78", "@vitejs/plugin-react": "4.2.1", - "@vitest/coverage-v8": "1.3.1", + "@vitest/coverage-v8": "1.5.0", "cpy": "11.0.1", "cpy-cli": "^5.0.0", "cross-env": "^7.0.3", "jsdom": "24.0.0", - "msw": "2.1.6", + "msw": "2.2.13", "react": "^18.2.0", "react-dom": "^18.2.0", "rimraf": "5.0.5", - "typescript": "5.4.2", - "vite": "5.1.6", - "vite-plugin-dts": "3.7.3", - "vitest": "1.3.1" + "typescript": "5.4.5", + "vite": "5.2.8", + "vite-plugin-dts": "3.8.3", + "vitest": "1.5.0" }, "license": "MIT", "publishConfig": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 17870fdd9..dc3f5f7a4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,50 +9,50 @@ importers: .: devDependencies: '@typescript-eslint/eslint-plugin': - specifier: 6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) + specifier: 7.7.0 + version: 7.7.0(@typescript-eslint/parser@7.7.0)(eslint@9.0.0)(typescript@5.4.5) '@typescript-eslint/parser': - specifier: 6.21.0 - version: 6.21.0(eslint@8.56.0)(typescript@5.3.3) + specifier: 7.7.0 + version: 7.7.0(eslint@9.0.0)(typescript@5.4.5) eslint: - specifier: ^8.56.0 - version: 8.56.0 + specifier: ^9.0.0 + version: 9.0.0 eslint-config-prettier: specifier: 9.1.0 - version: 9.1.0(eslint@8.56.0) + version: 9.1.0(eslint@9.0.0) eslint-define-config: specifier: 2.1.0 version: 2.1.0 eslint-plugin-import: specifier: 2.29.1 - version: 2.29.1(@typescript-eslint/parser@6.21.0)(eslint@8.56.0) + version: 2.29.1(@typescript-eslint/parser@7.7.0)(eslint@9.0.0) eslint-plugin-jsx-a11y: specifier: 6.8.0 - version: 6.8.0(eslint@8.56.0) + version: 6.8.0(eslint@9.0.0) eslint-plugin-n: - specifier: 16.6.2 - version: 16.6.2(eslint@8.56.0) + specifier: 17.2.1 + version: 17.2.1(eslint@9.0.0) eslint-plugin-no-only-tests: specifier: ^3.1.0 version: 3.1.0 eslint-plugin-prettier: - specifier: 5.0.1 - version: 5.0.1(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.2.5) + specifier: 5.1.3 + version: 5.1.3(eslint-config-prettier@9.1.0)(eslint@9.0.0)(prettier@3.2.5) eslint-plugin-react: - specifier: 7.33.2 - version: 7.33.2(eslint@8.56.0) + specifier: 7.34.1 + version: 7.34.1(eslint@9.0.0) eslint-plugin-react-hooks: specifier: ^4.6.0 - version: 4.6.0(eslint@8.56.0) + version: 4.6.0(eslint@9.0.0) eslint-plugin-regexp: - specifier: ^2.2.0 - version: 2.2.0(eslint@8.56.0) + specifier: 2.5.0 + version: 2.5.0(eslint@9.0.0) eslint-plugin-simple-import-sort: - specifier: ^10.0.0 - version: 10.0.0(eslint@8.56.0) + specifier: 12.1.0 + version: 12.1.0(eslint@9.0.0) eslint-plugin-testing-library: - specifier: 6.2.0 - version: 6.2.0(eslint@8.56.0)(typescript@5.3.3) + specifier: 6.2.2 + version: 6.2.2(eslint@9.0.0)(typescript@5.4.5) prettier: specifier: 3.2.5 version: 3.2.5 @@ -60,14 +60,14 @@ importers: specifier: ^2.6.2 version: 2.6.2 tsx: - specifier: 4.7.0 - version: 4.7.0 + specifier: 4.7.2 + version: 4.7.2 typescript: - specifier: 5.3.3 - version: 5.3.3 + specifier: 5.4.5 + version: 5.4.5 vitest: - specifier: 1.3.1 - version: 1.3.1 + specifier: 1.5.0 + version: 1.5.0 examples/nextjs-demo: dependencies: @@ -91,10 +91,10 @@ importers: version: link:../../packages/oidc-client '@testing-library/jest-dom': specifier: 6.4.2 - version: 6.4.2(@types/jest@29.5.12)(vitest@1.3.1) + version: 6.4.2(@types/jest@29.5.12)(vitest@1.5.0) '@testing-library/user-event': specifier: 14.5.2 - version: 14.5.2(@testing-library/dom@9.3.4) + version: 14.5.2(@testing-library/dom@10.0.0) '@types/jest': specifier: 29.5.12 version: 29.5.12 @@ -138,7 +138,7 @@ importers: version: 14.2.1(react-dom@18.2.0)(react@18.2.0) '@testing-library/user-event': specifier: 14.5.2 - version: 14.5.2(@testing-library/dom@9.3.4) + version: 14.5.2(@testing-library/dom@10.0.0) '@types/react': specifier: 18.2.65 version: 18.2.65 @@ -162,7 +162,7 @@ importers: version: 5.4.2 vite: specifier: 5.1.6 - version: 5.1.6(@types/node@20.11.26) + version: 5.1.6 vite-plugin-dts: specifier: 3.7.3 version: 3.7.3(typescript@5.4.2)(vite@5.1.6) @@ -177,17 +177,17 @@ importers: version: link:../oidc-client-service-worker devDependencies: '@testing-library/dom': - specifier: 9.3.4 - version: 9.3.4 + specifier: 10.0.0 + version: 10.0.0 '@testing-library/jest-dom': specifier: 6.4.2 - version: 6.4.2(vitest@1.3.1) + version: 6.4.2(@types/jest@29.5.12)(vitest@1.5.0) '@testing-library/react': - specifier: 14.2.1 - version: 14.2.1(react-dom@18.2.0)(react@18.2.0) + specifier: 15.0.2 + version: 15.0.2(react-dom@18.2.0)(react@18.2.0) '@vitest/coverage-v8': - specifier: 1.3.1 - version: 1.3.1(vitest@1.3.1) + specifier: 1.5.0 + version: 1.5.0(vitest@1.5.0) cpy: specifier: 11.0.1 version: 11.0.1 @@ -198,23 +198,23 @@ importers: specifier: 5.0.5 version: 5.0.5 typescript: - specifier: 5.4.2 - version: 5.4.2 + specifier: 5.4.5 + version: 5.4.5 vite: - specifier: 5.1.6 - version: 5.1.6(@types/node@20.11.26) + specifier: 5.2.8 + version: 5.2.8 vite-plugin-dts: - specifier: 3.7.3 - version: 3.7.3(typescript@5.4.2)(vite@5.1.6) + specifier: 3.8.3 + version: 3.8.3(typescript@5.4.5)(vite@5.2.8) vitest: - specifier: 1.3.1 - version: 1.3.1 + specifier: 1.5.0 + version: 1.5.0 packages/oidc-client-service-worker: devDependencies: '@vitest/coverage-v8': - specifier: 1.3.1 - version: 1.3.1(vitest@1.3.1) + specifier: 1.5.0 + version: 1.5.0(vitest@1.5.0) cpy: specifier: 11.0.1 version: 11.0.1 @@ -225,17 +225,17 @@ importers: specifier: 5.0.5 version: 5.0.5 typescript: - specifier: 5.4.2 - version: 5.4.2 + specifier: 5.4.5 + version: 5.4.5 vite: - specifier: 5.1.6 - version: 5.1.6(@types/node@20.11.26) + specifier: 5.2.8 + version: 5.2.8 vite-plugin-dts: - specifier: 3.7.3 - version: 3.7.3(typescript@5.4.2)(vite@5.1.6) + specifier: 3.8.3 + version: 3.8.3(typescript@5.4.5)(vite@5.2.8) vitest: - specifier: 1.3.1 - version: 1.3.1 + specifier: 1.5.0 + version: 1.5.0 packages/react-oidc: dependencies: @@ -248,22 +248,22 @@ importers: devDependencies: '@testing-library/jest-dom': specifier: 6.4.2 - version: 6.4.2(vitest@1.3.1) + version: 6.4.2(@types/jest@29.5.12)(vitest@1.5.0) '@testing-library/react': - specifier: 14.2.1 - version: 14.2.1(react-dom@18.2.0)(react@18.2.0) + specifier: 15.0.2 + version: 15.0.2(react-dom@18.2.0)(react@18.2.0) '@testing-library/user-event': specifier: 14.5.2 - version: 14.5.2(@testing-library/dom@9.3.4) + version: 14.5.2(@testing-library/dom@10.0.0) '@types/react': - specifier: ^18.2.39 - version: 18.2.39 + specifier: ^18.2.78 + version: 18.2.78 '@vitejs/plugin-react': specifier: 4.2.1 - version: 4.2.1(vite@5.1.6) + version: 4.2.1(vite@5.2.8) '@vitest/coverage-v8': - specifier: 1.3.1 - version: 1.3.1(vitest@1.3.1) + specifier: 1.5.0 + version: 1.5.0(vitest@1.5.0) cpy: specifier: 11.0.1 version: 11.0.1 @@ -277,8 +277,8 @@ importers: specifier: 24.0.0 version: 24.0.0 msw: - specifier: 2.1.6 - version: 2.1.6(typescript@5.4.2) + specifier: 2.2.13 + version: 2.2.13(typescript@5.4.5) react: specifier: ^18.2.0 version: 18.2.0 @@ -289,17 +289,17 @@ importers: specifier: 5.0.5 version: 5.0.5 typescript: - specifier: 5.4.2 - version: 5.4.2 + specifier: 5.4.5 + version: 5.4.5 vite: - specifier: 5.1.6 - version: 5.1.6(@types/node@20.11.26) + specifier: 5.2.8 + version: 5.2.8 vite-plugin-dts: - specifier: 3.7.3 - version: 3.7.3(typescript@5.4.2)(vite@5.1.6) + specifier: 3.8.3 + version: 3.8.3(typescript@5.4.5)(vite@5.2.8) vitest: - specifier: 1.3.1 - version: 1.3.1(jsdom@24.0.0) + specifier: 1.5.0 + version: 1.5.0(jsdom@24.0.0) packages: @@ -316,7 +316,7 @@ packages: engines: {node: '>=6.0.0'} dependencies: '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.22 + '@jridgewell/trace-mapping': 0.3.25 dev: true /@babel/code-frame@7.23.5: @@ -360,7 +360,7 @@ packages: dependencies: '@babel/types': 7.23.9 '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.22 + '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 dev: true @@ -562,6 +562,14 @@ packages: requiresBuild: true optional: true + /@esbuild/aix-ppc64@0.20.2: + resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + requiresBuild: true + optional: true + /@esbuild/android-arm64@0.19.12: resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} engines: {node: '>=12'} @@ -570,6 +578,14 @@ packages: requiresBuild: true optional: true + /@esbuild/android-arm64@0.20.2: + resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + optional: true + /@esbuild/android-arm@0.19.12: resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} engines: {node: '>=12'} @@ -578,6 +594,14 @@ packages: requiresBuild: true optional: true + /@esbuild/android-arm@0.20.2: + resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + optional: true + /@esbuild/android-x64@0.19.12: resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} engines: {node: '>=12'} @@ -586,6 +610,14 @@ packages: requiresBuild: true optional: true + /@esbuild/android-x64@0.20.2: + resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + optional: true + /@esbuild/darwin-arm64@0.19.12: resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} engines: {node: '>=12'} @@ -594,6 +626,14 @@ packages: requiresBuild: true optional: true + /@esbuild/darwin-arm64@0.20.2: + resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + optional: true + /@esbuild/darwin-x64@0.19.12: resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} engines: {node: '>=12'} @@ -602,6 +642,14 @@ packages: requiresBuild: true optional: true + /@esbuild/darwin-x64@0.20.2: + resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + optional: true + /@esbuild/freebsd-arm64@0.19.12: resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} engines: {node: '>=12'} @@ -610,6 +658,14 @@ packages: requiresBuild: true optional: true + /@esbuild/freebsd-arm64@0.20.2: + resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + optional: true + /@esbuild/freebsd-x64@0.19.12: resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} engines: {node: '>=12'} @@ -618,6 +674,14 @@ packages: requiresBuild: true optional: true + /@esbuild/freebsd-x64@0.20.2: + resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + optional: true + /@esbuild/linux-arm64@0.19.12: resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} engines: {node: '>=12'} @@ -626,6 +690,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-arm64@0.20.2: + resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-arm@0.19.12: resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} engines: {node: '>=12'} @@ -634,6 +706,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-arm@0.20.2: + resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-ia32@0.19.12: resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} engines: {node: '>=12'} @@ -642,6 +722,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-ia32@0.20.2: + resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-loong64@0.19.12: resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} engines: {node: '>=12'} @@ -650,6 +738,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-loong64@0.20.2: + resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-mips64el@0.19.12: resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} engines: {node: '>=12'} @@ -658,6 +754,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-mips64el@0.20.2: + resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-ppc64@0.19.12: resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} engines: {node: '>=12'} @@ -666,6 +770,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-ppc64@0.20.2: + resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-riscv64@0.19.12: resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} engines: {node: '>=12'} @@ -674,6 +786,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-riscv64@0.20.2: + resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-s390x@0.19.12: resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} engines: {node: '>=12'} @@ -682,6 +802,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-s390x@0.20.2: + resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-x64@0.19.12: resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} engines: {node: '>=12'} @@ -690,6 +818,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-x64@0.20.2: + resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/netbsd-x64@0.19.12: resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} engines: {node: '>=12'} @@ -698,6 +834,14 @@ packages: requiresBuild: true optional: true + /@esbuild/netbsd-x64@0.20.2: + resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + optional: true + /@esbuild/openbsd-x64@0.19.12: resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} engines: {node: '>=12'} @@ -706,6 +850,14 @@ packages: requiresBuild: true optional: true + /@esbuild/openbsd-x64@0.20.2: + resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + optional: true + /@esbuild/sunos-x64@0.19.12: resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} engines: {node: '>=12'} @@ -714,6 +866,14 @@ packages: requiresBuild: true optional: true + /@esbuild/sunos-x64@0.20.2: + resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + optional: true + /@esbuild/win32-arm64@0.19.12: resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} engines: {node: '>=12'} @@ -722,6 +882,14 @@ packages: requiresBuild: true optional: true + /@esbuild/win32-arm64@0.20.2: + resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + optional: true + /@esbuild/win32-ia32@0.19.12: resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} engines: {node: '>=12'} @@ -730,6 +898,14 @@ packages: requiresBuild: true optional: true + /@esbuild/win32-ia32@0.20.2: + resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + optional: true + /@esbuild/win32-x64@0.19.12: resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} engines: {node: '>=12'} @@ -738,13 +914,21 @@ packages: requiresBuild: true optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.56.0): + /@esbuild/win32-x64@0.20.2: + resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + optional: true + + /@eslint-community/eslint-utils@4.4.0(eslint@9.0.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.56.0 + eslint: 9.0.0 eslint-visitor-keys: 3.4.3 dev: true @@ -753,14 +937,14 @@ packages: engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true - /@eslint/eslintrc@2.1.4: - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@eslint/eslintrc@3.0.2: + resolution: {integrity: sha512-wV19ZEGEMAC1eHgrS7UQPqsdEiCIbTKTasEfcXAigzoXICcqZSjBZEHlZwNVvKg6UBCjSlos84XiLqsRJnIcIg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dependencies: ajv: 6.12.6 debug: 4.3.4 - espree: 9.6.1 - globals: 13.24.0 + espree: 10.0.1 + globals: 14.0.0 ignore: 5.3.1 import-fresh: 3.3.0 js-yaml: 4.1.0 @@ -770,16 +954,16 @@ packages: - supports-color dev: true - /@eslint/js@8.56.0: - resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@eslint/js@9.0.0: + resolution: {integrity: sha512-RThY/MnKrhubF6+s1JflwUjPEsnCEmYCWwqa/aRISKWNXGZ9epUwft4bUMM35SdKF9xvBrLydAM1RDHd1Z//ZQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dev: true - /@humanwhocodes/config-array@0.11.14: - resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} + /@humanwhocodes/config-array@0.12.3: + resolution: {integrity: sha512-jsNnTBlMWuTpDkeE3on7+dWJi0D6fdDfeANj/w7MpS8ztROCoLvIO2nG0CcFj+E4k8j4QrSTh4Oryi3i2G669g==} engines: {node: '>=10.10.0'} dependencies: - '@humanwhocodes/object-schema': 2.0.2 + '@humanwhocodes/object-schema': 2.0.3 debug: 4.3.4 minimatch: 3.1.2 transitivePeerDependencies: @@ -791,8 +975,45 @@ packages: engines: {node: '>=12.22'} dev: true - /@humanwhocodes/object-schema@2.0.2: - resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==} + /@humanwhocodes/object-schema@2.0.3: + resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} + dev: true + + /@inquirer/confirm@3.1.4: + resolution: {integrity: sha512-2z2RC0JyQCmggQfRxFnQitGp8YZgdM/AqcOuLaUtL0dZHFByk5jgtzxECX4z5MsH8aq2WzdLPI2AHmHOkh8eRA==} + engines: {node: '>=18'} + dependencies: + '@inquirer/core': 8.0.0 + '@inquirer/type': 1.3.0 + dev: true + + /@inquirer/core@8.0.0: + resolution: {integrity: sha512-RAszmjXj+grbT9yQ9B+me40LskytwBYPhyl6yHI8h+J5BmL0gNI3pdvBBFD6S9LV0lzhzfCRMBMH5UvuUPYzZQ==} + engines: {node: '>=18'} + dependencies: + '@inquirer/figures': 1.0.0 + '@inquirer/type': 1.3.0 + '@types/mute-stream': 0.0.4 + '@types/node': 20.12.7 + '@types/wrap-ansi': 3.0.0 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + cli-spinners: 2.9.2 + cli-width: 4.1.0 + mute-stream: 1.0.0 + signal-exit: 4.1.0 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + dev: true + + /@inquirer/figures@1.0.0: + resolution: {integrity: sha512-3fw+7+77/duTnMJTeSS44wneszghI4tkr0m0xdIJabbYRe36ElzmsqyboMZ1nFRon6sT+ckVvYDVjwapKv+2sw==} + engines: {node: '>=18'} + dev: true + + /@inquirer/type@1.3.0: + resolution: {integrity: sha512-RW4Zf6RCTnInRaOZuRHTqAUl+v6VJuQGglir7nW2BkT3OXOphMhkIFhvFRjorBx2l0VwtC/M4No8vYR65TdN9Q==} + engines: {node: '>=18'} dev: true /@isaacs/cliui@8.0.2: @@ -817,7 +1038,6 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: jest-get-type: 29.6.3 - dev: false /@jest/schemas@29.6.3: resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} @@ -835,7 +1055,6 @@ packages: '@types/node': 20.11.26 '@types/yargs': 17.0.32 chalk: 4.1.2 - dev: false /@jridgewell/gen-mapping@0.3.3: resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} @@ -843,7 +1062,7 @@ packages: dependencies: '@jridgewell/set-array': 1.1.2 '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.22 + '@jridgewell/trace-mapping': 0.3.25 dev: true /@jridgewell/resolve-uri@3.1.1: @@ -859,13 +1078,23 @@ packages: /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - /@jridgewell/trace-mapping@0.3.22: - resolution: {integrity: sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==} + /@jridgewell/trace-mapping@0.3.25: + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} dependencies: '@jridgewell/resolve-uri': 3.1.1 '@jridgewell/sourcemap-codec': 1.4.15 dev: true + /@microsoft/api-extractor-model@7.28.13: + resolution: {integrity: sha512-39v/JyldX4MS9uzHcdfmjjfS6cYGAoXV+io8B5a338pkHiSt+gy2eXQ0Q7cGFJ7quSa1VqqlMdlPrB6sLR/cAw==} + dependencies: + '@microsoft/tsdoc': 0.14.2 + '@microsoft/tsdoc-config': 0.16.2 + '@rushstack/node-core-library': 4.0.2 + transitivePeerDependencies: + - '@types/node' + dev: true + /@microsoft/api-extractor-model@7.28.3: resolution: {integrity: sha512-wT/kB2oDbdZXITyDh2SQLzaWwTOFbV326fP0pUwNW00WeliARs0qjmXBWmGWardEzp2U3/axkO3Lboqun6vrig==} dependencies: @@ -896,6 +1125,27 @@ packages: - '@types/node' dev: true + /@microsoft/api-extractor@7.43.0: + resolution: {integrity: sha512-GFhTcJpB+MI6FhvXEI9b2K0snulNLWHqC/BbcJtyNYcKUiw7l3Lgis5ApsYncJ0leALX7/of4XfmXk+maT111w==} + hasBin: true + dependencies: + '@microsoft/api-extractor-model': 7.28.13 + '@microsoft/tsdoc': 0.14.2 + '@microsoft/tsdoc-config': 0.16.2 + '@rushstack/node-core-library': 4.0.2 + '@rushstack/rig-package': 0.5.2 + '@rushstack/terminal': 0.10.0 + '@rushstack/ts-command-line': 4.19.1 + lodash: 4.17.21 + minimatch: 3.0.8 + resolve: 1.22.8 + semver: 7.5.4 + source-map: 0.6.1 + typescript: 5.4.2 + transitivePeerDependencies: + - '@types/node' + dev: true + /@microsoft/tsdoc-config@0.16.2: resolution: {integrity: sha512-OGiIzzoBLgWWR0UdRJX98oYO+XKGf7tiK4Zk6tQ/E4IJqGCe7dvkTvgDZV5cFJUzLGDOjeAXrnZoA6QkVySuxw==} dependencies: @@ -914,8 +1164,8 @@ packages: engines: {node: '>=18'} dev: true - /@mswjs/interceptors@0.25.15: - resolution: {integrity: sha512-s4jdyxmq1eeftfDXJ7MUiK/jlvYaU8Sr75+42hHCVBrYez0k51RHbMitKIKdmsF92Q6gwhp8Sm1MmvdA9llpcg==} + /@mswjs/interceptors@0.26.15: + resolution: {integrity: sha512-HM47Lu1YFmnYHKMBynFfjCp0U/yRskHj/8QEJW0CBEPOlw8Gkmjfll+S9b8M7V5CNDw2/ciRxjjnWeaCiblSIQ==} engines: {node: '>=18'} dependencies: '@open-draft/deferred-promise': 2.2.0 @@ -1078,6 +1328,13 @@ packages: picomatch: 2.3.1 dev: true + /@rollup/rollup-android-arm-eabi@4.14.3: + resolution: {integrity: sha512-X9alQ3XM6I9IlSlmC8ddAvMSyG1WuHk5oUnXGw+yUBs3BFoTizmG1La/Gr8fVJvDWAq+zlYTZ9DBgrlKRVY06g==} + cpu: [arm] + os: [android] + requiresBuild: true + optional: true + /@rollup/rollup-android-arm-eabi@4.9.6: resolution: {integrity: sha512-MVNXSSYN6QXOulbHpLMKYi60ppyO13W9my1qogeiAqtjb2yR4LSmfU2+POvDkLzhjYLXz9Rf9+9a3zFHW1Lecg==} cpu: [arm] @@ -1085,6 +1342,13 @@ packages: requiresBuild: true optional: true + /@rollup/rollup-android-arm64@4.14.3: + resolution: {integrity: sha512-eQK5JIi+POhFpzk+LnjKIy4Ks+pwJ+NXmPxOCSvOKSNRPONzKuUvWE+P9JxGZVxrtzm6BAYMaL50FFuPe0oWMQ==} + cpu: [arm64] + os: [android] + requiresBuild: true + optional: true + /@rollup/rollup-android-arm64@4.9.6: resolution: {integrity: sha512-T14aNLpqJ5wzKNf5jEDpv5zgyIqcpn1MlwCrUXLrwoADr2RkWA0vOWP4XxbO9aiO3dvMCQICZdKeDrFl7UMClw==} cpu: [arm64] @@ -1092,6 +1356,13 @@ packages: requiresBuild: true optional: true + /@rollup/rollup-darwin-arm64@4.14.3: + resolution: {integrity: sha512-Od4vE6f6CTT53yM1jgcLqNfItTsLt5zE46fdPaEmeFHvPs5SjZYlLpHrSiHEKR1+HdRfxuzXHjDOIxQyC3ptBA==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + optional: true + /@rollup/rollup-darwin-arm64@4.9.6: resolution: {integrity: sha512-CqNNAyhRkTbo8VVZ5R85X73H3R5NX9ONnKbXuHisGWC0qRbTTxnF1U4V9NafzJbgGM0sHZpdO83pLPzq8uOZFw==} cpu: [arm64] @@ -1099,6 +1370,13 @@ packages: requiresBuild: true optional: true + /@rollup/rollup-darwin-x64@4.14.3: + resolution: {integrity: sha512-0IMAO21axJeNIrvS9lSe/PGthc8ZUS+zC53O0VhF5gMxfmcKAP4ESkKOCwEi6u2asUrt4mQv2rjY8QseIEb1aw==} + cpu: [x64] + os: [darwin] + requiresBuild: true + optional: true + /@rollup/rollup-darwin-x64@4.9.6: resolution: {integrity: sha512-zRDtdJuRvA1dc9Mp6BWYqAsU5oeLixdfUvkTHuiYOHwqYuQ4YgSmi6+/lPvSsqc/I0Omw3DdICx4Tfacdzmhog==} cpu: [x64] @@ -1106,6 +1384,13 @@ packages: requiresBuild: true optional: true + /@rollup/rollup-linux-arm-gnueabihf@4.14.3: + resolution: {integrity: sha512-ge2DC7tHRHa3caVEoSbPRJpq7azhG+xYsd6u2MEnJ6XzPSzQsTKyXvh6iWjXRf7Rt9ykIUWHtl0Uz3T6yXPpKw==} + cpu: [arm] + os: [linux] + requiresBuild: true + optional: true + /@rollup/rollup-linux-arm-gnueabihf@4.9.6: resolution: {integrity: sha512-oNk8YXDDnNyG4qlNb6is1ojTOGL/tRhbbKeE/YuccItzerEZT68Z9gHrY3ROh7axDc974+zYAPxK5SH0j/G+QQ==} cpu: [arm] @@ -1113,23 +1398,72 @@ packages: requiresBuild: true optional: true - /@rollup/rollup-linux-arm64-gnu@4.9.6: - resolution: {integrity: sha512-Z3O60yxPtuCYobrtzjo0wlmvDdx2qZfeAWTyfOjEDqd08kthDKexLpV97KfAeUXPosENKd8uyJMRDfFMxcYkDQ==} + /@rollup/rollup-linux-arm-musleabihf@4.14.3: + resolution: {integrity: sha512-ljcuiDI4V3ySuc7eSk4lQ9wU8J8r8KrOUvB2U+TtK0TiW6OFDmJ+DdIjjwZHIw9CNxzbmXY39wwpzYuFDwNXuw==} + cpu: [arm] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-arm64-gnu@4.14.3: + resolution: {integrity: sha512-Eci2us9VTHm1eSyn5/eEpaC7eP/mp5n46gTRB3Aar3BgSvDQGJZuicyq6TsH4HngNBgVqC5sDYxOzTExSU+NjA==} cpu: [arm64] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-arm64-musl@4.9.6: - resolution: {integrity: sha512-gpiG0qQJNdYEVad+1iAsGAbgAnZ8j07FapmnIAQgODKcOTjLEWM9sRb+MbQyVsYCnA0Im6M6QIq6ax7liws6eQ==} + /@rollup/rollup-linux-arm64-gnu@4.9.6: + resolution: {integrity: sha512-Z3O60yxPtuCYobrtzjo0wlmvDdx2qZfeAWTyfOjEDqd08kthDKexLpV97KfAeUXPosENKd8uyJMRDfFMxcYkDQ==} cpu: [arm64] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-riscv64-gnu@4.9.6: - resolution: {integrity: sha512-+uCOcvVmFUYvVDr27aiyun9WgZk0tXe7ThuzoUTAukZJOwS5MrGbmSlNOhx1j80GdpqbOty05XqSl5w4dQvcOA==} - cpu: [riscv64] + /@rollup/rollup-linux-arm64-musl@4.14.3: + resolution: {integrity: sha512-UrBoMLCq4E92/LCqlh+blpqMz5h1tJttPIniwUgOFJyjWI1qrtrDhhpHPuFxULlUmjFHfloWdixtDhSxJt5iKw==} + cpu: [arm64] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-arm64-musl@4.9.6: + resolution: {integrity: sha512-gpiG0qQJNdYEVad+1iAsGAbgAnZ8j07FapmnIAQgODKcOTjLEWM9sRb+MbQyVsYCnA0Im6M6QIq6ax7liws6eQ==} + cpu: [arm64] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-powerpc64le-gnu@4.14.3: + resolution: {integrity: sha512-5aRjvsS8q1nWN8AoRfrq5+9IflC3P1leMoy4r2WjXyFqf3qcqsxRCfxtZIV58tCxd+Yv7WELPcO9mY9aeQyAmw==} + cpu: [ppc64] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-riscv64-gnu@4.14.3: + resolution: {integrity: sha512-sk/Qh1j2/RJSX7FhEpJn8n0ndxy/uf0kI/9Zc4b1ELhqULVdTfN6HL31CDaTChiBAOgLcsJ1sgVZjWv8XNEsAQ==} + cpu: [riscv64] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-riscv64-gnu@4.9.6: + resolution: {integrity: sha512-+uCOcvVmFUYvVDr27aiyun9WgZk0tXe7ThuzoUTAukZJOwS5MrGbmSlNOhx1j80GdpqbOty05XqSl5w4dQvcOA==} + cpu: [riscv64] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-s390x-gnu@4.14.3: + resolution: {integrity: sha512-jOO/PEaDitOmY9TgkxF/TQIjXySQe5KVYB57H/8LRP/ux0ZoO8cSHCX17asMSv3ruwslXW/TLBcxyaUzGRHcqg==} + cpu: [s390x] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-x64-gnu@4.14.3: + resolution: {integrity: sha512-8ybV4Xjy59xLMyWo3GCfEGqtKV5M5gCSrZlxkPGvEPCGDLNla7v48S662HSGwRd6/2cSneMQWiv+QzcttLrrOA==} + cpu: [x64] os: [linux] requiresBuild: true optional: true @@ -1141,6 +1475,13 @@ packages: requiresBuild: true optional: true + /@rollup/rollup-linux-x64-musl@4.14.3: + resolution: {integrity: sha512-s+xf1I46trOY10OqAtZ5Rm6lzHre/UiLA1J2uOhCFXWkbZrJRkYBPO6FhvGfHmdtQ3Bx793MNa7LvoWFAm93bg==} + cpu: [x64] + os: [linux] + requiresBuild: true + optional: true + /@rollup/rollup-linux-x64-musl@4.9.6: resolution: {integrity: sha512-ch7M+9Tr5R4FK40FHQk8VnML0Szi2KRujUgHXd/HjuH9ifH72GUmw6lStZBo3c3GB82vHa0ZoUfjfcM7JiiMrQ==} cpu: [x64] @@ -1148,6 +1489,13 @@ packages: requiresBuild: true optional: true + /@rollup/rollup-win32-arm64-msvc@4.14.3: + resolution: {integrity: sha512-+4h2WrGOYsOumDQ5S2sYNyhVfrue+9tc9XcLWLh+Kw3UOxAvrfOrSMFon60KspcDdytkNDh7K2Vs6eMaYImAZg==} + cpu: [arm64] + os: [win32] + requiresBuild: true + optional: true + /@rollup/rollup-win32-arm64-msvc@4.9.6: resolution: {integrity: sha512-VD6qnR99dhmTQ1mJhIzXsRcTBvTjbfbGGwKAHcu+52cVl15AC/kplkhxzW/uT0Xl62Y/meBKDZvoJSJN+vTeGA==} cpu: [arm64] @@ -1155,6 +1503,13 @@ packages: requiresBuild: true optional: true + /@rollup/rollup-win32-ia32-msvc@4.14.3: + resolution: {integrity: sha512-T1l7y/bCeL/kUwh9OD4PQT4aM7Bq43vX05htPJJ46RTI4r5KNt6qJRzAfNfM+OYMNEVBWQzR2Gyk+FXLZfogGw==} + cpu: [ia32] + os: [win32] + requiresBuild: true + optional: true + /@rollup/rollup-win32-ia32-msvc@4.9.6: resolution: {integrity: sha512-J9AFDq/xiRI58eR2NIDfyVmTYGyIZmRcvcAoJ48oDld/NTR8wyiPUu2X/v1navJ+N/FGg68LEbX3Ejd6l8B7MQ==} cpu: [ia32] @@ -1162,6 +1517,13 @@ packages: requiresBuild: true optional: true + /@rollup/rollup-win32-x64-msvc@4.14.3: + resolution: {integrity: sha512-/BypzV0H1y1HzgYpxqRaXGBRqfodgoBBCcsrujT6QRcakDQdfU+Lq9PENPh5jB4I44YWq+0C2eHsHya+nZY1sA==} + cpu: [x64] + os: [win32] + requiresBuild: true + optional: true + /@rollup/rollup-win32-x64-msvc@4.9.6: resolution: {integrity: sha512-jqzNLhNDvIZOrt69Ce4UjGRpXJBzhUBzawMwnaDAwyHriki3XollsewxWzOzz+4yOFDkuJHtTsZFwMxhYJWmLQ==} cpu: [x64] @@ -1186,6 +1548,22 @@ packages: z-schema: 5.0.5 dev: true + /@rushstack/node-core-library@4.0.2: + resolution: {integrity: sha512-hyES82QVpkfQMeBMteQUnrhASL/KHPhd7iJ8euduwNJG4mu2GSOKybf0rOEjOm1Wz7CwJEUm9y0yD7jg2C1bfg==} + peerDependencies: + '@types/node': '*' + peerDependenciesMeta: + '@types/node': + optional: true + dependencies: + fs-extra: 7.0.1 + import-lazy: 4.0.0 + jju: 1.4.0 + resolve: 1.22.8 + semver: 7.5.4 + z-schema: 5.0.5 + dev: true + /@rushstack/rig-package@0.5.1: resolution: {integrity: sha512-pXRYSe29TjRw7rqxD4WS3HN/sRSbfr+tJs4a9uuaSIBAITbUggygdhuG0VrO0EO+QqH91GhYMN4S6KRtOEmGVA==} dependencies: @@ -1193,6 +1571,25 @@ packages: strip-json-comments: 3.1.1 dev: true + /@rushstack/rig-package@0.5.2: + resolution: {integrity: sha512-mUDecIJeH3yYGZs2a48k+pbhM6JYwWlgjs2Ca5f2n1G2/kgdgP9D/07oglEGf6mRyXEnazhEENeYTSNDRCwdqA==} + dependencies: + resolve: 1.22.8 + strip-json-comments: 3.1.1 + dev: true + + /@rushstack/terminal@0.10.0: + resolution: {integrity: sha512-UbELbXnUdc7EKwfH2sb8ChqNgapUOdqcCIdQP4NGxBpTZV2sQyeekuK3zmfQSa/MN+/7b4kBogl2wq0vpkpYGw==} + peerDependencies: + '@types/node': '*' + peerDependenciesMeta: + '@types/node': + optional: true + dependencies: + '@rushstack/node-core-library': 4.0.2 + supports-color: 8.1.1 + dev: true + /@rushstack/ts-command-line@4.17.1: resolution: {integrity: sha512-2jweO1O57BYP5qdBGl6apJLB+aRIn5ccIRTPDyULh0KMwVzFqWtw6IZWt1qtUoZD/pD2RNkIOosH6Cq45rIYeg==} dependencies: @@ -1202,6 +1599,17 @@ packages: string-argv: 0.3.2 dev: true + /@rushstack/ts-command-line@4.19.1: + resolution: {integrity: sha512-J7H768dgcpG60d7skZ5uSSwyCZs/S2HrWP1Ds8d1qYAyaaeJmpmmLr9BVw97RjFzmQPOYnoXcKA4GkqDCkduQg==} + dependencies: + '@rushstack/terminal': 0.10.0 + '@types/argparse': 1.0.38 + argparse: 1.0.10 + string-argv: 0.3.2 + transitivePeerDependencies: + - '@types/node' + dev: true + /@sinclair/typebox@0.27.8: resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} @@ -1211,6 +1619,19 @@ packages: tslib: 2.6.2 dev: false + /@testing-library/dom@10.0.0: + resolution: {integrity: sha512-PmJPnogldqoVFf+EwbHvbBJ98MmqASV8kLrBYgsDNxQcFMeIS7JFL48sfyXvuMtgmWO/wMhh25odr+8VhDmn4g==} + engines: {node: '>=18'} + dependencies: + '@babel/code-frame': 7.23.5 + '@babel/runtime': 7.23.9 + '@types/aria-query': 5.0.4 + aria-query: 5.3.0 + chalk: 4.1.2 + dom-accessibility-api: 0.5.16 + lz-string: 1.5.0 + pretty-format: 27.5.1 + /@testing-library/dom@9.3.4: resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==} engines: {node: '>=14'} @@ -1223,8 +1644,9 @@ packages: dom-accessibility-api: 0.5.16 lz-string: 1.5.0 pretty-format: 27.5.1 + dev: true - /@testing-library/jest-dom@6.4.2(@types/jest@29.5.12)(vitest@1.3.1): + /@testing-library/jest-dom@6.4.2(@types/jest@29.5.12)(vitest@1.5.0): resolution: {integrity: sha512-CzqH0AFymEMG48CpzXFriYYkOjk6ZGPCLMhW9e9jg3KMCn5OfJecF8GtGW7yGfR/IgCe3SX8BSwjdzI6BBbZLw==} engines: {node: '>=14', npm: '>=6', yarn: '>=1'} peerDependencies: @@ -1254,8 +1676,7 @@ packages: dom-accessibility-api: 0.6.3 lodash: 4.17.21 redent: 3.0.0 - vitest: 1.3.1 - dev: false + vitest: 1.5.0 /@testing-library/jest-dom@6.4.2(vitest@1.3.1): resolution: {integrity: sha512-CzqH0AFymEMG48CpzXFriYYkOjk6ZGPCLMhW9e9jg3KMCn5OfJecF8GtGW7yGfR/IgCe3SX8BSwjdzI6BBbZLw==} @@ -1303,13 +1724,27 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: true - /@testing-library/user-event@14.5.2(@testing-library/dom@9.3.4): + /@testing-library/react@15.0.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-5mzIpuytB1ctpyywvyaY2TAAUQVCZIGqwiqFQf6u9lvj/SJQepGUzNV18Xpk+NLCaCE2j7CWrZE0tEf9xLZYiQ==} + engines: {node: '>=18'} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + dependencies: + '@babel/runtime': 7.23.9 + '@testing-library/dom': 10.0.0 + '@types/react-dom': 18.2.7 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: true + + /@testing-library/user-event@14.5.2(@testing-library/dom@10.0.0): resolution: {integrity: sha512-YAh82Wh4TIrxYLmfGcixwD18oIjyC1pFQC2Y01F2lzV2HTMiYrI0nze0FD0ocB//CKS/7jIUgae+adPqxK5yCQ==} engines: {node: '>=12', npm: '>=6'} peerDependencies: '@testing-library/dom': '>=7.21.4' dependencies: - '@testing-library/dom': 9.3.4 + '@testing-library/dom': 10.0.0 /@types/argparse@1.0.38: resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} @@ -1361,20 +1796,17 @@ packages: resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} dependencies: '@types/istanbul-lib-coverage': 2.0.6 - dev: false /@types/istanbul-reports@3.0.4: resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} dependencies: '@types/istanbul-lib-report': 3.0.3 - dev: false /@types/jest@29.5.12: resolution: {integrity: sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==} dependencies: expect: 29.7.0 pretty-format: 29.7.0 - dev: false /@types/json-schema@7.0.15: resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} @@ -1384,11 +1816,23 @@ packages: resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} dev: true + /@types/mute-stream@0.0.4: + resolution: {integrity: sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==} + dependencies: + '@types/node': 20.11.26 + dev: true + /@types/node@20.11.26: resolution: {integrity: sha512-YwOMmyhNnAWijOBQweOJnQPl068Oqd4K3OFbTc6AHJwzweUwwWG3GIFY74OKks2PJUDkQPeddOQES9mLn1CTEQ==} dependencies: undici-types: 5.26.5 + /@types/node@20.12.7: + resolution: {integrity: sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==} + dependencies: + undici-types: 5.26.5 + dev: true + /@types/prop-types@15.7.5: resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} dev: true @@ -1396,22 +1840,21 @@ packages: /@types/react-dom@18.2.7: resolution: {integrity: sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA==} dependencies: - '@types/react': 18.2.65 + '@types/react': 18.2.78 dev: true - /@types/react@18.2.39: - resolution: {integrity: sha512-Oiw+ppED6IremMInLV4HXGbfbG6GyziY3kqAwJYOR0PNbkYDmLWQA3a95EhdSmamsvbkJN96ZNN+YD+fGjzSBA==} + /@types/react@18.2.65: + resolution: {integrity: sha512-98TsY0aW4jqx/3RqsUXwMDZSWR1Z4CUlJNue8ueS2/wcxZOsz4xmW1X8ieaWVRHcmmQM3R8xVA4XWB3dJnWwDQ==} dependencies: '@types/prop-types': 15.7.5 '@types/scheduler': 0.16.3 csstype: 3.1.2 dev: true - /@types/react@18.2.65: - resolution: {integrity: sha512-98TsY0aW4jqx/3RqsUXwMDZSWR1Z4CUlJNue8ueS2/wcxZOsz4xmW1X8ieaWVRHcmmQM3R8xVA4XWB3dJnWwDQ==} + /@types/react@18.2.78: + resolution: {integrity: sha512-qOwdPnnitQY4xKlKayt42q5W5UQrSHjgoXNVEtxeqdITJ99k4VXJOP3vt8Rkm9HmgJpH50UNU+rlqfkfWOqp0A==} dependencies: '@types/prop-types': 15.7.5 - '@types/scheduler': 0.16.3 csstype: 3.1.2 dev: true @@ -1423,70 +1866,75 @@ packages: resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} dev: true + /@types/semver@7.5.8: + resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} + dev: true + /@types/stack-utils@2.0.3: resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} - dev: false /@types/statuses@2.0.4: resolution: {integrity: sha512-eqNDvZsCNY49OAXB0Firg/Sc2BgoWsntsLUdybGFOhAfCD6QJ2n9HXUIHGqt5qjrxmMv4wS8WLAw43ZkKcJ8Pw==} dev: true + /@types/wrap-ansi@3.0.0: + resolution: {integrity: sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==} + dev: true + /@types/yargs-parser@21.0.3: resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} - dev: false /@types/yargs@17.0.32: resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==} dependencies: '@types/yargs-parser': 21.0.3 - dev: false - /@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/eslint-plugin@7.7.0(@typescript-eslint/parser@7.7.0)(eslint@9.0.0)(typescript@5.4.5): + resolution: {integrity: sha512-GJWR0YnfrKnsRoluVO3PRb9r5aMZriiMMM/RHj5nnTrBy1/wIgk76XCtCKcnXGjpZQJQRFtGV9/0JJ6n30uwpQ==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: - '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha - eslint: ^7.0.0 || ^8.0.0 + '@typescript-eslint/parser': ^7.0.0 + eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/type-utils': 6.21.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.21.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.21.0 + '@typescript-eslint/parser': 7.7.0(eslint@9.0.0)(typescript@5.4.5) + '@typescript-eslint/scope-manager': 7.7.0 + '@typescript-eslint/type-utils': 7.7.0(eslint@9.0.0)(typescript@5.4.5) + '@typescript-eslint/utils': 7.7.0(eslint@9.0.0)(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 7.7.0 debug: 4.3.4 - eslint: 8.56.0 + eslint: 9.0.0 graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 semver: 7.6.0 - ts-api-utils: 1.2.0(typescript@5.3.3) - typescript: 5.3.3 + ts-api-utils: 1.3.0(typescript@5.4.5) + typescript: 5.4.5 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/parser@7.7.0(eslint@9.0.0)(typescript@5.4.5): + resolution: {integrity: sha512-fNcDm3wSwVM8QYL4HKVBggdIPAy9Q41vcvC/GtDobw3c4ndVT3K6cqudUmjHPw8EAp4ufax0o58/xvWaP2FmTg==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.21.0 + '@typescript-eslint/scope-manager': 7.7.0 + '@typescript-eslint/types': 7.7.0 + '@typescript-eslint/typescript-estree': 7.7.0(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 7.7.0 debug: 4.3.4 - eslint: 8.56.0 - typescript: 5.3.3 + eslint: 9.0.0 + typescript: 5.4.5 transitivePeerDependencies: - supports-color dev: true @@ -1499,30 +1947,30 @@ packages: '@typescript-eslint/visitor-keys': 5.62.0 dev: true - /@typescript-eslint/scope-manager@6.21.0: - resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/scope-manager@7.7.0: + resolution: {integrity: sha512-/8INDn0YLInbe9Wt7dK4cXLDYp0fNHP5xKLHvZl3mOT5X17rK/YShXaiNmorl+/U4VKCVIjJnx4Ri5b0y+HClw==} + engines: {node: ^18.18.0 || >=20.0.0} dependencies: - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/visitor-keys': 6.21.0 + '@typescript-eslint/types': 7.7.0 + '@typescript-eslint/visitor-keys': 7.7.0 dev: true - /@typescript-eslint/type-utils@6.21.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/type-utils@7.7.0(eslint@9.0.0)(typescript@5.4.5): + resolution: {integrity: sha512-bOp3ejoRYrhAlnT/bozNQi3nio9tIgv3U5C0mVDdZC7cpcQEDZXvq8inrHYghLVwuNABRqrMW5tzAv88Vy77Sg==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) - '@typescript-eslint/utils': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 7.7.0(typescript@5.4.5) + '@typescript-eslint/utils': 7.7.0(eslint@9.0.0)(typescript@5.4.5) debug: 4.3.4 - eslint: 8.56.0 - ts-api-utils: 1.2.0(typescript@5.3.3) - typescript: 5.3.3 + eslint: 9.0.0 + ts-api-utils: 1.3.0(typescript@5.4.5) + typescript: 5.4.5 transitivePeerDependencies: - supports-color dev: true @@ -1532,12 +1980,12 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/types@6.21.0: - resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/types@7.7.0: + resolution: {integrity: sha512-G01YPZ1Bd2hn+KPpIbrAhEWOn5lQBrjxkzHkWvP6NucMXFtfXoevK82hzQdpfuQYuhkvFDeQYbzXCjR1z9Z03w==} + engines: {node: ^18.18.0 || >=20.0.0} dev: true - /@typescript-eslint/typescript-estree@5.62.0(typescript@5.3.3): + /@typescript-eslint/typescript-estree@5.62.0(typescript@5.4.5): resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -1552,47 +2000,47 @@ packages: globby: 11.1.0 is-glob: 4.0.3 semver: 7.6.0 - tsutils: 3.21.0(typescript@5.3.3) - typescript: 5.3.3 + tsutils: 3.21.0(typescript@5.4.5) + typescript: 5.4.5 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/typescript-estree@6.21.0(typescript@5.3.3): - resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/typescript-estree@7.7.0(typescript@5.4.5): + resolution: {integrity: sha512-8p71HQPE6CbxIBy2kWHqM1KGrC07pk6RJn40n0DSc6bMOBBREZxSDJ+BmRzc8B5OdaMh1ty3mkuWRg4sCFiDQQ==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/visitor-keys': 6.21.0 + '@typescript-eslint/types': 7.7.0 + '@typescript-eslint/visitor-keys': 7.7.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 - minimatch: 9.0.3 + minimatch: 9.0.4 semver: 7.6.0 - ts-api-utils: 1.2.0(typescript@5.3.3) - typescript: 5.3.3 + ts-api-utils: 1.3.0(typescript@5.4.5) + typescript: 5.4.5 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@5.62.0(eslint@8.56.0)(typescript@5.3.3): + /@typescript-eslint/utils@5.62.0(eslint@9.0.0)(typescript@5.4.5): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.6 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.3.3) - eslint: 8.56.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.4.5) + eslint: 9.0.0 eslint-scope: 5.1.1 semver: 7.6.0 transitivePeerDependencies: @@ -1600,19 +2048,19 @@ packages: - typescript dev: true - /@typescript-eslint/utils@6.21.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/utils@7.7.0(eslint@9.0.0)(typescript@5.4.5): + resolution: {integrity: sha512-LKGAXMPQs8U/zMRFXDZOzmMKgFv3COlxUQ+2NMPhbqgVm6R1w+nU1i4836Pmxu9jZAuIeyySNrN/6Rc657ggig==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: ^8.56.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0) '@types/json-schema': 7.0.15 - '@types/semver': 7.5.6 - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) - eslint: 8.56.0 + '@types/semver': 7.5.8 + '@typescript-eslint/scope-manager': 7.7.0 + '@typescript-eslint/types': 7.7.0 + '@typescript-eslint/typescript-estree': 7.7.0(typescript@5.4.5) + eslint: 9.0.0 semver: 7.6.0 transitivePeerDependencies: - supports-color @@ -1627,19 +2075,31 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@typescript-eslint/visitor-keys@6.21.0: - resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/visitor-keys@7.7.0: + resolution: {integrity: sha512-h0WHOj8MhdhY8YWkzIF30R379y0NqyOHExI9N9KCzvmu05EgG4FumeYa3ccfKUSphyWkWQE1ybVrgz/Pbam6YA==} + engines: {node: ^18.18.0 || >=20.0.0} dependencies: - '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/types': 7.7.0 eslint-visitor-keys: 3.4.3 dev: true - /@ungap/structured-clone@1.2.0: - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + /@vitejs/plugin-react@4.2.1(vite@5.1.6): + resolution: {integrity: sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.2.0 || ^5.0.0 + dependencies: + '@babel/core': 7.23.9 + '@babel/plugin-transform-react-jsx-self': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.23.9) + '@types/babel__core': 7.20.5 + react-refresh: 0.14.0 + vite: 5.1.6 + transitivePeerDependencies: + - supports-color dev: true - /@vitejs/plugin-react@4.2.1(vite@5.1.6): + /@vitejs/plugin-react@4.2.1(vite@5.2.8): resolution: {integrity: sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -1650,30 +2110,30 @@ packages: '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.23.9) '@types/babel__core': 7.20.5 react-refresh: 0.14.0 - vite: 5.1.6(@types/node@20.11.26) + vite: 5.2.8 transitivePeerDependencies: - supports-color dev: true - /@vitest/coverage-v8@1.3.1(vitest@1.3.1): - resolution: {integrity: sha512-UuBnkSJUNE9rdHjDCPyJ4fYuMkoMtnghes1XohYa4At0MS3OQSAo97FrbwSLRshYsXThMZy1+ybD/byK5llyIg==} + /@vitest/coverage-v8@1.5.0(vitest@1.5.0): + resolution: {integrity: sha512-1igVwlcqw1QUMdfcMlzzY4coikSIBN944pkueGi0pawrX5I5Z+9hxdTR+w3Sg6Q3eZhvdMAs8ZaF9JuTG1uYOQ==} peerDependencies: - vitest: 1.3.1 + vitest: 1.5.0 dependencies: '@ampproject/remapping': 2.2.1 '@bcoe/v8-coverage': 0.2.3 debug: 4.3.4 istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 - istanbul-lib-source-maps: 4.0.1 + istanbul-lib-source-maps: 5.0.4 istanbul-reports: 3.1.6 magic-string: 0.30.7 magicast: 0.3.3 picocolors: 1.0.0 std-env: 3.7.0 + strip-literal: 2.0.0 test-exclude: 6.0.0 - v8-to-istanbul: 9.2.0 - vitest: 1.3.1 + vitest: 1.5.0 transitivePeerDependencies: - supports-color dev: true @@ -1684,6 +2144,14 @@ packages: '@vitest/spy': 1.3.1 '@vitest/utils': 1.3.1 chai: 4.4.1 + dev: true + + /@vitest/expect@1.5.0: + resolution: {integrity: sha512-0pzuCI6KYi2SIC3LQezmxujU9RK/vwC1U9R0rLuGlNGcOuDWxqWKu6nUdFsX9tH1WU0SXtAxToOsEjeUn1s3hA==} + dependencies: + '@vitest/spy': 1.5.0 + '@vitest/utils': 1.5.0 + chai: 4.4.1 /@vitest/runner@1.3.1: resolution: {integrity: sha512-5FzF9c3jG/z5bgCnjr8j9LNq/9OxV2uEBAITOXfoe3rdZJTdO7jzThth7FXv/6b+kdY65tpRQB7WaKhNZwX+Kg==} @@ -1691,11 +2159,27 @@ packages: '@vitest/utils': 1.3.1 p-limit: 5.0.0 pathe: 1.1.2 + dev: true + + /@vitest/runner@1.5.0: + resolution: {integrity: sha512-7HWwdxXP5yDoe7DTpbif9l6ZmDwCzcSIK38kTSIt6CFEpMjX4EpCgT6wUmS0xTXqMI6E/ONmfgRKmaujpabjZQ==} + dependencies: + '@vitest/utils': 1.5.0 + p-limit: 5.0.0 + pathe: 1.1.2 /@vitest/snapshot@1.3.1: resolution: {integrity: sha512-EF++BZbt6RZmOlE3SuTPu/NfwBF6q4ABS37HHXzs2LUVPBLx2QoY/K0fKpRChSo8eLiuxcbCVfqKgx/dplCDuQ==} dependencies: - magic-string: 0.30.7 + magic-string: 0.30.9 + pathe: 1.1.2 + pretty-format: 29.7.0 + dev: true + + /@vitest/snapshot@1.5.0: + resolution: {integrity: sha512-qpv3fSEuNrhAO3FpH6YYRdaECnnRjg9VxbhdtPwPRnzSfHVXnNzzrpX4cJxqiwgRMo7uRMWDFBlsBq4Cr+rO3A==} + dependencies: + magic-string: 0.30.9 pathe: 1.1.2 pretty-format: 29.7.0 @@ -1703,6 +2187,12 @@ packages: resolution: {integrity: sha512-xAcW+S099ylC9VLU7eZfdT9myV67Nor9w9zhf0mGCYJSO+zM2839tOeROTdikOi/8Qeusffvxb/MyBSOja1Uig==} dependencies: tinyspy: 2.2.0 + dev: true + + /@vitest/spy@1.5.0: + resolution: {integrity: sha512-vu6vi6ew5N5MMHJjD5PoakMRKYdmIrNJmyfkhRpQt5d9Ewhw9nZ5Aqynbi3N61bvk9UvZ5UysMT6ayIrZ8GA9w==} + dependencies: + tinyspy: 2.2.0 /@vitest/utils@1.3.1: resolution: {integrity: sha512-d3Waie/299qqRyHTm2DjADeTaNdNSVsnwHPWrs20JMpjh6eiVq7ggggweO8rc4arhf6rRkWuHKwvxGvejUXZZQ==} @@ -1711,6 +2201,15 @@ packages: estree-walker: 3.0.3 loupe: 2.3.7 pretty-format: 29.7.0 + dev: true + + /@vitest/utils@1.5.0: + resolution: {integrity: sha512-BDU0GNL8MWkRkSRdNFvCUCAVOeHaUlVJ9Tx0TYBZyXaaOTmGtUFObzchCivIBrIwKzvZA7A9sCejVhXM2aY98A==} + dependencies: + diff-sequences: 29.6.3 + estree-walker: 3.0.3 + loupe: 2.3.7 + pretty-format: 29.7.0 /@volar/language-core@1.11.1: resolution: {integrity: sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==} @@ -1738,7 +2237,7 @@ packages: '@vue/shared': 3.4.15 entities: 4.5.0 estree-walker: 2.0.2 - source-map-js: 1.0.2 + source-map-js: 1.2.0 dev: true /@vue/compiler-dom@3.4.15: @@ -1761,13 +2260,33 @@ packages: '@vue/compiler-dom': 3.4.15 '@vue/shared': 3.4.15 computeds: 0.0.1 - minimatch: 9.0.3 + minimatch: 9.0.4 muggle-string: 0.3.1 path-browserify: 1.0.1 typescript: 5.4.2 vue-template-compiler: 2.7.16 dev: true + /@vue/language-core@1.8.27(typescript@5.4.5): + resolution: {integrity: sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@volar/language-core': 1.11.1 + '@volar/source-map': 1.11.1 + '@vue/compiler-dom': 3.4.15 + '@vue/shared': 3.4.15 + computeds: 0.0.1 + minimatch: 9.0.4 + muggle-string: 0.3.1 + path-browserify: 1.0.1 + typescript: 5.4.5 + vue-template-compiler: 2.7.16 + dev: true + /@vue/shared@3.4.15: resolution: {integrity: sha512-KzfPTxVaWfB+eGcGdbSf4CWdaXcGDqckoeXUh7SB3fZdEtzPCK2Vq9B/lRRL3yutax/LWITz+SwvgyOxz5V75g==} dev: true @@ -1852,14 +2371,6 @@ packages: engines: {node: '>=12'} dev: true - /anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - dev: true - /argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} dependencies: @@ -1874,6 +2385,7 @@ packages: resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} dependencies: deep-equal: 2.2.2 + dev: true /aria-query@5.3.0: resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} @@ -1884,8 +2396,9 @@ packages: resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 is-array-buffer: 3.0.4 + dev: true /array-includes@3.1.7: resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} @@ -1914,6 +2427,18 @@ packages: is-string: 1.0.7 dev: true + /array.prototype.findlast@1.2.5: + resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-shim-unscopables: 1.0.2 + dev: true + /array.prototype.findlastindex@1.2.3: resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==} engines: {node: '>= 0.4'} @@ -1945,6 +2470,15 @@ packages: es-shim-unscopables: 1.0.2 dev: true + /array.prototype.toreversed@1.1.2: + resolution: {integrity: sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-shim-unscopables: 1.0.2 + dev: true + /array.prototype.tosorted@1.1.3: resolution: {integrity: sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==} dependencies: @@ -1960,13 +2494,13 @@ packages: engines: {node: '>= 0.4'} dependencies: array-buffer-byte-length: 1.0.1 - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 es-errors: 1.3.0 - get-intrinsic: 1.2.3 + get-intrinsic: 1.2.4 is-array-buffer: 3.0.4 - is-shared-array-buffer: 1.0.2 + is-shared-array-buffer: 1.0.3 dev: true /arrify@3.0.0: @@ -1994,6 +2528,14 @@ packages: /available-typed-arrays@1.0.6: resolution: {integrity: sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg==} engines: {node: '>= 0.4'} + dev: true + + /available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} + dependencies: + possible-typed-array-names: 1.0.0 + dev: true /axe-core@4.7.0: resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==} @@ -2010,23 +2552,6 @@ packages: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} dev: true - /base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - dev: true - - /binary-extensions@2.2.0: - resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} - engines: {node: '>=8'} - dev: true - - /bl@4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} - dependencies: - buffer: 5.7.1 - inherits: 2.0.4 - readable-stream: 3.6.2 - dev: true - /bootstrap@4.6.2(jquery@3.7.1)(popper.js@1.16.1): resolution: {integrity: sha512-51Bbp/Uxr9aTuy6ca/8FbFloBUJZLHwnhTcnjIeRn2suQWsWzcuJhGjKDB5eppVte/8oCdOL3VuwxvZDUggwGQ==} peerDependencies: @@ -2067,24 +2592,6 @@ packages: update-browserslist-db: 1.0.13(browserslist@4.22.3) dev: true - /buffer@5.7.1: - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - dev: true - - /builtin-modules@3.3.0: - resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} - engines: {node: '>=6'} - dev: true - - /builtins@5.0.1: - resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} - dependencies: - semver: 7.6.0 - dev: true - /busboy@1.6.0: resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} engines: {node: '>=10.16.0'} @@ -2102,6 +2609,18 @@ packages: function-bind: 1.1.2 get-intrinsic: 1.2.3 set-function-length: 1.2.0 + dev: true + + /call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} + 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.2 + dev: true /callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} @@ -2145,34 +2664,14 @@ packages: ansi-styles: 4.3.0 supports-color: 7.2.0 - /chardet@0.7.0: - resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} - dev: true - /check-error@1.0.3: resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} dependencies: get-func-name: 2.0.2 - /chokidar@3.5.3: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} - engines: {node: '>= 8.10.0'} - dependencies: - anymatch: 3.1.3 - braces: 3.0.2 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.3 - dev: true - /ci-info@3.9.0: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} - dev: false /clean-stack@4.2.0: resolution: {integrity: sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==} @@ -2181,21 +2680,14 @@ packages: escape-string-regexp: 5.0.0 dev: true - /cli-cursor@3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} - dependencies: - restore-cursor: 3.1.0 - dev: true - /cli-spinners@2.9.2: resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} engines: {node: '>=6'} dev: true - /cli-width@3.0.0: - resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} - engines: {node: '>= 10'} + /cli-width@4.1.0: + resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} + engines: {node: '>= 12'} dev: true /client-only@0.0.1: @@ -2219,11 +2711,6 @@ packages: wrap-ansi: 7.0.0 dev: true - /clone@1.0.4: - resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} - engines: {node: '>=0.8'} - dev: true - /color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: @@ -2393,6 +2880,33 @@ packages: whatwg-url: 14.0.0 dev: true + /data-view-buffer@1.0.1: + resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + dev: true + + /data-view-byte-length@1.0.1: + resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + dev: true + + /data-view-byte-offset@1.0.0: + resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + dev: true + /de-indent@1.0.2: resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} dev: true @@ -2450,17 +2964,12 @@ packages: which-boxed-primitive: 1.0.2 which-collection: 1.0.1 which-typed-array: 1.1.14 + dev: true /deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: true - /defaults@1.0.4: - resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} - dependencies: - clone: 1.0.4 - dev: true - /define-data-property@1.1.1: resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} engines: {node: '>= 0.4'} @@ -2468,6 +2977,16 @@ packages: get-intrinsic: 1.2.3 gopd: 1.0.1 has-property-descriptors: 1.0.1 + dev: true + + /define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + gopd: 1.0.1 + dev: true /define-properties@1.2.1: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} @@ -2476,6 +2995,7 @@ packages: define-data-property: 1.1.1 has-property-descriptors: 1.0.1 object-keys: 1.1.1 + dev: true /delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} @@ -2504,13 +3024,6 @@ packages: esutils: 2.0.3 dev: true - /doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - dependencies: - esutils: 2.0.3 - dev: true - /dom-accessibility-api@0.5.16: resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} @@ -2533,6 +3046,14 @@ packages: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} dev: true + /enhanced-resolve@5.16.0: + resolution: {integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==} + engines: {node: '>=10.13.0'} + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + dev: true + /entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} @@ -2556,7 +3077,7 @@ packages: has-property-descriptors: 1.0.1 has-proto: 1.0.1 has-symbols: 1.0.3 - hasown: 2.0.0 + hasown: 2.0.2 internal-slot: 1.0.6 is-array-buffer: 3.0.4 is-callable: 1.2.7 @@ -2583,13 +3104,73 @@ packages: which-typed-array: 1.1.14 dev: true + /es-abstract@1.23.3: + resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.1 + arraybuffer.prototype.slice: 1.0.3 + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + data-view-buffer: 1.0.1 + data-view-byte-length: 1.0.1 + data-view-byte-offset: 1.0.0 + es-define-property: 1.0.0 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-set-tostringtag: 2.0.3 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.4 + get-symbol-description: 1.0.2 + globalthis: 1.0.3 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + internal-slot: 1.0.7 + is-array-buffer: 3.0.4 + is-callable: 1.2.7 + is-data-view: 1.0.1 + is-negative-zero: 2.0.3 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.3 + is-string: 1.0.7 + is-typed-array: 1.1.13 + is-weakref: 1.0.2 + object-inspect: 1.13.1 + object-keys: 1.1.1 + object.assign: 4.1.5 + regexp.prototype.flags: 1.5.2 + safe-array-concat: 1.1.2 + safe-regex-test: 1.0.3 + string.prototype.trim: 1.2.9 + string.prototype.trimend: 1.0.8 + string.prototype.trimstart: 1.0.8 + typed-array-buffer: 1.0.2 + typed-array-byte-length: 1.0.1 + typed-array-byte-offset: 1.0.2 + typed-array-length: 1.0.6 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.15 + dev: true + /es-array-method-boxes-properly@1.0.0: resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==} dev: true + /es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.4 + dev: true + /es-errors@1.3.0: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} + dev: true /es-get-iterator@1.1.3: resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} @@ -2603,6 +3184,7 @@ packages: is-string: 1.0.7 isarray: 2.0.5 stop-iteration-iterator: 1.0.0 + dev: true /es-iterator-helpers@1.0.15: resolution: {integrity: sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==} @@ -2618,9 +3200,36 @@ packages: has-property-descriptors: 1.0.1 has-proto: 1.0.1 has-symbols: 1.0.3 - internal-slot: 1.0.6 + internal-slot: 1.0.6 + iterator.prototype: 1.1.2 + safe-array-concat: 1.1.0 + dev: true + + /es-iterator-helpers@1.0.18: + resolution: {integrity: sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-set-tostringtag: 2.0.3 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + globalthis: 1.0.3 + has-property-descriptors: 1.0.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + internal-slot: 1.0.7 iterator.prototype: 1.1.2 - safe-array-concat: 1.1.0 + safe-array-concat: 1.1.2 + dev: true + + /es-object-atoms@1.0.0: + resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 dev: true /es-set-tostringtag@2.0.2: @@ -2629,13 +3238,22 @@ packages: dependencies: get-intrinsic: 1.2.3 has-tostringtag: 1.0.2 - hasown: 2.0.0 + hasown: 2.0.2 + dev: true + + /es-set-tostringtag@2.0.3: + resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.4 + has-tostringtag: 1.0.2 + hasown: 2.0.2 dev: true /es-shim-unscopables@1.0.2: resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} dependencies: - hasown: 2.0.0 + hasown: 2.0.2 dev: true /es-to-primitive@1.2.1: @@ -2677,6 +3295,36 @@ packages: '@esbuild/win32-ia32': 0.19.12 '@esbuild/win32-x64': 0.19.12 + /esbuild@0.20.2: + resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/aix-ppc64': 0.20.2 + '@esbuild/android-arm': 0.20.2 + '@esbuild/android-arm64': 0.20.2 + '@esbuild/android-x64': 0.20.2 + '@esbuild/darwin-arm64': 0.20.2 + '@esbuild/darwin-x64': 0.20.2 + '@esbuild/freebsd-arm64': 0.20.2 + '@esbuild/freebsd-x64': 0.20.2 + '@esbuild/linux-arm': 0.20.2 + '@esbuild/linux-arm64': 0.20.2 + '@esbuild/linux-ia32': 0.20.2 + '@esbuild/linux-loong64': 0.20.2 + '@esbuild/linux-mips64el': 0.20.2 + '@esbuild/linux-ppc64': 0.20.2 + '@esbuild/linux-riscv64': 0.20.2 + '@esbuild/linux-s390x': 0.20.2 + '@esbuild/linux-x64': 0.20.2 + '@esbuild/netbsd-x64': 0.20.2 + '@esbuild/openbsd-x64': 0.20.2 + '@esbuild/sunos-x64': 0.20.2 + '@esbuild/win32-arm64': 0.20.2 + '@esbuild/win32-ia32': 0.20.2 + '@esbuild/win32-x64': 0.20.2 + /escalade@3.1.2: resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} engines: {node: '>=6'} @@ -2689,7 +3337,6 @@ packages: /escape-string-regexp@2.0.0: resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} engines: {node: '>=8'} - dev: false /escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} @@ -2701,22 +3348,22 @@ packages: engines: {node: '>=12'} dev: true - /eslint-compat-utils@0.1.2(eslint@8.56.0): + /eslint-compat-utils@0.1.2(eslint@9.0.0): resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==} engines: {node: '>=12'} peerDependencies: eslint: '>=6.0.0' dependencies: - eslint: 8.56.0 + eslint: 9.0.0 dev: true - /eslint-config-prettier@9.1.0(eslint@8.56.0): + /eslint-config-prettier@9.1.0(eslint@9.0.0): resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.56.0 + eslint: 9.0.0 dev: true /eslint-define-config@2.1.0: @@ -2734,7 +3381,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@7.7.0)(eslint-import-resolver-node@0.3.9)(eslint@9.0.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -2755,27 +3402,27 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 7.7.0(eslint@9.0.0)(typescript@5.4.5) debug: 3.2.7 - eslint: 8.56.0 + eslint: 9.0.0 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-es-x@7.5.0(eslint@8.56.0): + /eslint-plugin-es-x@7.5.0(eslint@9.0.0): resolution: {integrity: sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '>=8' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0) '@eslint-community/regexpp': 4.10.0 - eslint: 8.56.0 - eslint-compat-utils: 0.1.2(eslint@8.56.0) + eslint: 9.0.0 + eslint-compat-utils: 0.1.2(eslint@9.0.0) dev: true - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.21.0)(eslint@8.56.0): + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.7.0)(eslint@9.0.0): resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} engines: {node: '>=4'} peerDependencies: @@ -2785,16 +3432,16 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 7.7.0(eslint@9.0.0)(typescript@5.4.5) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 array.prototype.flatmap: 1.3.2 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.56.0 + eslint: 9.0.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.7.0)(eslint-import-resolver-node@0.3.9)(eslint@9.0.0) hasown: 2.0.0 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -2810,7 +3457,7 @@ packages: - supports-color dev: true - /eslint-plugin-jsx-a11y@6.8.0(eslint@8.56.0): + /eslint-plugin-jsx-a11y@6.8.0(eslint@9.0.0): resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==} engines: {node: '>=4.0'} peerDependencies: @@ -2826,7 +3473,7 @@ packages: damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 es-iterator-helpers: 1.0.15 - eslint: 8.56.0 + eslint: 9.0.0 hasown: 2.0.0 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 @@ -2835,23 +3482,20 @@ packages: object.fromentries: 2.0.7 dev: true - /eslint-plugin-n@16.6.2(eslint@8.56.0): - resolution: {integrity: sha512-6TyDmZ1HXoFQXnhCTUjVFULReoBPOAjpuiKELMkeP40yffI/1ZRO+d9ug/VC6fqISo2WkuIBk3cvuRPALaWlOQ==} - engines: {node: '>=16.0.0'} + /eslint-plugin-n@17.2.1(eslint@9.0.0): + resolution: {integrity: sha512-uW1+df2bo06kR7ix6nB614RUlvjRPrYxlaX832O6e1MCJp4V7YozEdvMgCYuvn4ltnjPu1FVYhQ2KRrmTNoJfg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: '>=7.0.0' + eslint: '>=8.23.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) - builtins: 5.0.1 - eslint: 8.56.0 - eslint-plugin-es-x: 7.5.0(eslint@8.56.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0) + enhanced-resolve: 5.16.0 + eslint: 9.0.0 + eslint-plugin-es-x: 7.5.0(eslint@9.0.0) get-tsconfig: 4.7.2 - globals: 13.24.0 + globals: 14.0.0 ignore: 5.3.1 - is-builtin-module: 3.2.1 - is-core-module: 2.13.1 - minimatch: 3.1.2 - resolve: 1.22.8 + minimatch: 9.0.3 semver: 7.6.0 dev: true @@ -2860,8 +3504,8 @@ packages: engines: {node: '>=5.0.0'} dev: true - /eslint-plugin-prettier@5.0.1(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.2.5): - resolution: {integrity: sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg==} + /eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0)(eslint@9.0.0)(prettier@3.2.5): + resolution: {integrity: sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: '@types/eslint': '>=8.0.0' @@ -2874,34 +3518,36 @@ packages: eslint-config-prettier: optional: true dependencies: - eslint: 8.56.0 - eslint-config-prettier: 9.1.0(eslint@8.56.0) + eslint: 9.0.0 + eslint-config-prettier: 9.1.0(eslint@9.0.0) prettier: 3.2.5 prettier-linter-helpers: 1.0.0 synckit: 0.8.8 dev: true - /eslint-plugin-react-hooks@4.6.0(eslint@8.56.0): + /eslint-plugin-react-hooks@4.6.0(eslint@9.0.0): resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: - eslint: 8.56.0 + eslint: 9.0.0 dev: true - /eslint-plugin-react@7.33.2(eslint@8.56.0): - resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} + /eslint-plugin-react@7.34.1(eslint@9.0.0): + resolution: {integrity: sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==} engines: {node: '>=4'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: array-includes: 3.1.7 + array.prototype.findlast: 1.2.5 array.prototype.flatmap: 1.3.2 + array.prototype.toreversed: 1.1.2 array.prototype.tosorted: 1.1.3 doctrine: 2.1.0 - es-iterator-helpers: 1.0.15 - eslint: 8.56.0 + es-iterator-helpers: 1.0.18 + eslint: 9.0.0 estraverse: 5.3.0 jsx-ast-utils: 3.3.5 minimatch: 3.1.2 @@ -2915,38 +3561,38 @@ packages: string.prototype.matchall: 4.0.10 dev: true - /eslint-plugin-regexp@2.2.0(eslint@8.56.0): - resolution: {integrity: sha512-0kwpiWiLRVBkVr3oIRQLl196sXP/NF6DQFefv9jtR4ZOgQR+6WID2pIZ0I+wIt54qgBPwBB7Gm2a+ueh8/WsFQ==} + /eslint-plugin-regexp@2.5.0(eslint@9.0.0): + resolution: {integrity: sha512-I7vKcP0o75WS5SHiVNXN+Eshq49sbrweMQIuqSL3AId9AwDe9Dhbfug65vw64LxmOd4v+yf5l5Xt41y9puiq0g==} engines: {node: ^18 || >=20} peerDependencies: eslint: '>=8.44.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0) '@eslint-community/regexpp': 4.10.0 comment-parser: 1.4.1 - eslint: 8.56.0 + eslint: 9.0.0 jsdoc-type-pratt-parser: 4.0.0 refa: 0.12.1 regexp-ast-analysis: 0.7.1 scslre: 0.3.0 dev: true - /eslint-plugin-simple-import-sort@10.0.0(eslint@8.56.0): - resolution: {integrity: sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw==} + /eslint-plugin-simple-import-sort@12.1.0(eslint@9.0.0): + resolution: {integrity: sha512-Y2fqAfC11TcG/WP3TrI1Gi3p3nc8XJyEOJYHyEPEGI/UAgNx6akxxlX74p7SbAQdLcgASKhj8M0GKvH3vq/+ig==} peerDependencies: eslint: '>=5.0.0' dependencies: - eslint: 8.56.0 + eslint: 9.0.0 dev: true - /eslint-plugin-testing-library@6.2.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-+LCYJU81WF2yQ+Xu4A135CgK8IszcFcyMF4sWkbiu6Oj+Nel0TrkZq/HvDw0/1WuO3dhDQsZA/OpEMGd0NfcUw==} + /eslint-plugin-testing-library@6.2.2(eslint@9.0.0)(typescript@5.4.5): + resolution: {integrity: sha512-1E94YOTUDnOjSLyvOwmbVDzQi/WkKm3WVrMXu6SmBr6DN95xTGZmI6HJ/eOkSXh/DlheRsxaPsJvZByDBhWLVQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0, npm: '>=6'} peerDependencies: eslint: ^7.5.0 || ^8.0.0 dependencies: - '@typescript-eslint/utils': 5.62.0(eslint@8.56.0)(typescript@5.3.3) - eslint: 8.56.0 + '@typescript-eslint/utils': 5.62.0(eslint@9.0.0)(typescript@5.4.5) + eslint: 9.0.0 transitivePeerDependencies: - supports-color - typescript @@ -2960,9 +3606,9 @@ packages: estraverse: 4.3.0 dev: true - /eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /eslint-scope@8.0.1: + resolution: {integrity: sha512-pL8XjgP4ZOmmwfFE8mEhSxA7ZY4C+LWyqjQ3o4yWkkmD0qcMT9kkW3zWHOczhWcjTSgqycYAgwSlXvZltv65og==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 @@ -2973,41 +3619,42 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.56.0: - resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /eslint-visitor-keys@4.0.0: + resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + dev: true + + /eslint@9.0.0: + resolution: {integrity: sha512-IMryZ5SudxzQvuod6rUdIUz29qFItWx281VhtFVc2Psy/ZhlCeD/5DT6lBIJ4H3G+iamGJoTln1v+QSuPw0p7Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0) '@eslint-community/regexpp': 4.10.0 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.56.0 - '@humanwhocodes/config-array': 0.11.14 + '@eslint/eslintrc': 3.0.2 + '@eslint/js': 9.0.0 + '@humanwhocodes/config-array': 0.12.3 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.2.0 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 debug: 4.3.4 - doctrine: 3.0.0 escape-string-regexp: 4.0.0 - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 + eslint-scope: 8.0.1 + eslint-visitor-keys: 4.0.0 + espree: 10.0.1 esquery: 1.5.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 + file-entry-cache: 8.0.0 find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.24.0 graphemer: 1.4.0 ignore: 5.3.1 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 - js-yaml: 4.1.0 json-stable-stringify-without-jsonify: 1.0.1 levn: 0.4.1 lodash.merge: 4.6.2 @@ -3020,13 +3667,13 @@ packages: - supports-color dev: true - /espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /espree@10.0.1: + resolution: {integrity: sha512-MWkrWZbJsL2UwnjxTX3gG8FneachS/Mwg7tdGXce011sJd5b0JG54vat5KHnfSBODZ3Wvzd2WnjxyzsRoVv+ww==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dependencies: acorn: 8.11.3 acorn-jsx: 5.3.2(acorn@8.11.3) - eslint-visitor-keys: 3.4.3 + eslint-visitor-keys: 4.0.0 dev: true /esquery@1.5.0: @@ -3090,16 +3737,6 @@ packages: jest-matcher-utils: 29.7.0 jest-message-util: 29.7.0 jest-util: 29.7.0 - dev: false - - /external-editor@3.1.0: - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} - engines: {node: '>=4'} - dependencies: - chardet: 0.7.0 - iconv-lite: 0.4.24 - tmp: 0.0.33 - dev: true /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -3134,18 +3771,11 @@ packages: reusify: 1.0.4 dev: true - /figures@3.2.0: - resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} - engines: {node: '>=8'} - dependencies: - escape-string-regexp: 1.0.5 - dev: true - - /file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} + /file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} dependencies: - flat-cache: 3.2.0 + flat-cache: 4.0.1 dev: true /fill-range@7.0.1: @@ -3162,13 +3792,12 @@ packages: path-exists: 4.0.0 dev: true - /flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} + /flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} dependencies: flatted: 3.2.9 keyv: 4.5.4 - rimraf: 3.0.2 dev: true /flatted@3.2.9: @@ -3179,6 +3808,7 @@ packages: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} dependencies: is-callable: 1.2.7 + dev: true /foreground-child@3.1.1: resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} @@ -3219,19 +3849,21 @@ packages: /function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + dev: true /function.prototype.name@1.1.6: resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 functions-have-names: 1.2.3 dev: true /functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + dev: true /gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} @@ -3254,7 +3886,19 @@ packages: function-bind: 1.1.2 has-proto: 1.0.1 has-symbols: 1.0.3 - hasown: 2.0.0 + hasown: 2.0.2 + dev: true + + /get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + dev: true /get-stream@8.0.1: resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} @@ -3268,6 +3912,15 @@ packages: get-intrinsic: 1.2.3 dev: true + /get-symbol-description@1.0.2: + resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + dev: true + /get-tsconfig@4.7.2: resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==} dependencies: @@ -3295,7 +3948,7 @@ packages: dependencies: foreground-child: 3.1.1 jackspeak: 2.3.6 - minimatch: 9.0.3 + minimatch: 9.0.4 minipass: 7.0.4 path-scurry: 1.10.1 dev: true @@ -3316,11 +3969,9 @@ packages: engines: {node: '>=4'} dev: true - /globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} - dependencies: - type-fest: 0.20.2 + /globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} dev: true /globalthis@1.0.3: @@ -3356,7 +4007,8 @@ packages: /gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} dependencies: - get-intrinsic: 1.2.3 + get-intrinsic: 1.2.4 + dev: true /graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} @@ -3372,6 +4024,7 @@ packages: /has-bigints@1.0.2: resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + dev: true /has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} @@ -3385,26 +4038,49 @@ packages: resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} dependencies: get-intrinsic: 1.2.3 + dev: true + + /has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + dependencies: + es-define-property: 1.0.0 + dev: true /has-proto@1.0.1: resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} engines: {node: '>= 0.4'} + dev: true + + /has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + dev: true /has-symbols@1.0.3: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} + dev: true /has-tostringtag@1.0.2: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} dependencies: has-symbols: 1.0.3 + dev: true /hasown@2.0.0: resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} engines: {node: '>= 0.4'} dependencies: function-bind: 1.1.2 + dev: true + + /hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + dev: true /he@1.2.0: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} @@ -3450,13 +4126,6 @@ packages: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} - /iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} - dependencies: - safer-buffer: 2.1.2 - dev: true - /iconv-lite@0.6.3: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} @@ -3464,10 +4133,6 @@ packages: safer-buffer: 2.1.2 dev: true - /ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - dev: true - /ignore@5.3.1: resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} engines: {node: '>= 4'} @@ -3511,34 +4176,23 @@ packages: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} dev: true - /inquirer@8.2.6: - resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==} - engines: {node: '>=12.0.0'} - dependencies: - ansi-escapes: 4.3.2 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-width: 3.0.0 - external-editor: 3.1.0 - figures: 3.2.0 - lodash: 4.17.21 - mute-stream: 0.0.8 - ora: 5.4.1 - run-async: 2.4.1 - rxjs: 7.8.1 - string-width: 4.2.3 - strip-ansi: 6.0.1 - through: 2.3.8 - wrap-ansi: 6.2.0 - dev: true - /internal-slot@1.0.6: resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==} engines: {node: '>= 0.4'} dependencies: get-intrinsic: 1.2.3 - hasown: 2.0.0 + hasown: 2.0.2 + side-channel: 1.0.4 + dev: true + + /internal-slot@1.0.7: + resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + hasown: 2.0.2 side-channel: 1.0.4 + dev: true /is-arguments@1.1.1: resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} @@ -3546,13 +4200,15 @@ packages: dependencies: call-bind: 1.0.5 has-tostringtag: 1.0.2 + dev: true /is-array-buffer@3.0.4: resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.3 + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + dev: true /is-async-function@2.0.0: resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} @@ -3565,36 +4221,32 @@ packages: resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} dependencies: has-bigints: 1.0.2 - - /is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - dependencies: - binary-extensions: 2.2.0 dev: true /is-boolean-object@1.1.2: resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 has-tostringtag: 1.0.2 - - /is-builtin-module@3.2.1: - resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} - engines: {node: '>=6'} - dependencies: - builtin-modules: 3.3.0 dev: true /is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} + dev: true /is-core-module@2.13.1: resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} dependencies: - hasown: 2.0.0 + hasown: 2.0.2 + dev: true + + /is-data-view@1.0.1: + resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} + engines: {node: '>= 0.4'} + dependencies: + is-typed-array: 1.1.13 dev: true /is-date-object@1.0.5: @@ -3602,6 +4254,7 @@ packages: engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.2 + dev: true /is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} @@ -3633,19 +4286,20 @@ packages: is-extglob: 2.1.1 dev: true - /is-interactive@1.0.0: - resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} - engines: {node: '>=8'} - dev: true - /is-map@2.0.2: resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} + dev: true /is-negative-zero@2.0.2: resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} engines: {node: '>= 0.4'} dev: true + /is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} + engines: {node: '>= 0.4'} + dev: true + /is-node-process@1.2.0: resolution: {integrity: sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==} dev: true @@ -3655,6 +4309,7 @@ packages: engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.2 + dev: true /is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} @@ -3673,16 +4328,26 @@ packages: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 has-tostringtag: 1.0.2 + dev: true /is-set@2.0.2: resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} + dev: true /is-shared-array-buffer@1.0.2: resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} dependencies: call-bind: 1.0.5 + dev: true + + /is-shared-array-buffer@1.0.3: + resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + dev: true /is-stream@3.0.0: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} @@ -3693,32 +4358,30 @@ packages: engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.2 + dev: true /is-symbol@1.0.4: resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} engines: {node: '>= 0.4'} dependencies: has-symbols: 1.0.3 + dev: true /is-typed-array@1.1.13: resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} engines: {node: '>= 0.4'} dependencies: - which-typed-array: 1.1.14 - dev: true - - /is-unicode-supported@0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} - engines: {node: '>=10'} + which-typed-array: 1.1.15 dev: true /is-weakmap@2.0.1: resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} + dev: true /is-weakref@1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 dev: true /is-weakset@2.0.2: @@ -3726,6 +4389,7 @@ packages: dependencies: call-bind: 1.0.5 get-intrinsic: 1.2.3 + dev: true /isarray@0.0.1: resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} @@ -3737,6 +4401,7 @@ packages: /isarray@2.0.5: resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + dev: true /isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} @@ -3755,13 +4420,13 @@ packages: supports-color: 7.2.0 dev: true - /istanbul-lib-source-maps@4.0.1: - resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} + /istanbul-lib-source-maps@5.0.4: + resolution: {integrity: sha512-wHOoEsNJTVltaJp8eVkm8w+GVkVNHT2YDYo53YdzQEL2gWm1hBX5cGFR9hQJtuGLebidVX7et3+dmDZrmclduw==} engines: {node: '>=10'} dependencies: + '@jridgewell/trace-mapping': 0.3.25 debug: 4.3.4 istanbul-lib-coverage: 3.2.2 - source-map: 0.6.1 transitivePeerDependencies: - supports-color dev: true @@ -3801,12 +4466,10 @@ packages: diff-sequences: 29.6.3 jest-get-type: 29.6.3 pretty-format: 29.7.0 - dev: false /jest-get-type@29.6.3: resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dev: false /jest-matcher-utils@29.7.0: resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} @@ -3816,7 +4479,6 @@ packages: jest-diff: 29.7.0 jest-get-type: 29.6.3 pretty-format: 29.7.0 - dev: false /jest-message-util@29.7.0: resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} @@ -3831,7 +4493,6 @@ packages: pretty-format: 29.7.0 slash: 3.0.0 stack-utils: 2.0.6 - dev: false /jest-util@29.7.0: resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} @@ -3843,7 +4504,6 @@ packages: ci-info: 3.9.0 graceful-fs: 4.2.11 picomatch: 2.3.1 - dev: false /jju@1.4.0: resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} @@ -4020,14 +4680,6 @@ packages: /lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - /log-symbols@4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} - engines: {node: '>=10'} - dependencies: - chalk: 4.1.2 - is-unicode-supported: 0.1.0 - dev: true - /loose-envify@1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true @@ -4067,12 +4719,18 @@ packages: dependencies: '@jridgewell/sourcemap-codec': 1.4.15 + /magic-string@0.30.9: + resolution: {integrity: sha512-S1+hd+dIrC8EZqKyT9DstTH/0Z+f76kmmvZnkfQVmOpDEF9iVgdYif3Q/pIWHmCoo59bQVGW0kVL3e2nl+9+Sw==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + /magicast@0.3.3: resolution: {integrity: sha512-ZbrP1Qxnpoes8sz47AM0z08U+jW6TyRgZzcWy3Ma3vDhJttwMwAFDMMQFobwdBxByBD46JYmxRzeF7w2+wJEuw==} dependencies: '@babel/parser': 7.23.9 '@babel/types': 7.23.9 - source-map-js: 1.0.2 + source-map-js: 1.2.0 dev: true /make-dir@4.0.0: @@ -4114,11 +4772,6 @@ packages: mime-db: 1.52.0 dev: true - /mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - dev: true - /mimic-fn@4.0.0: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} engines: {node: '>=12'} @@ -4127,6 +4780,12 @@ packages: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} + /minimatch@3.0.8: + resolution: {integrity: sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==} + dependencies: + brace-expansion: 1.1.11 + dev: true + /minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: @@ -4140,6 +4799,13 @@ packages: brace-expansion: 2.0.1 dev: true + /minimatch@9.0.4: + resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: 2.0.1 + dev: true + /minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} dev: true @@ -4170,35 +4836,34 @@ packages: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} dev: true - /msw@2.1.6(typescript@5.4.2): - resolution: {integrity: sha512-62NX1pdMa1C17U/6+SQjQFxwHx0bcWHzZoDN2mK97FvEttTkX9CyJqx3OcYYBpNykDx+segweaO4yxapjifj4g==} + /msw@2.2.13(typescript@5.4.5): + resolution: {integrity: sha512-ljFf1xZsU0b4zv1l7xzEmC6OZA6yD06hcx0H+dc8V0VypaP3HGYJa1rMLjQbBWl32ptGhcfwcPCWDB1wjmsftw==} engines: {node: '>=18'} hasBin: true requiresBuild: true peerDependencies: - typescript: '>= 4.7.x <= 5.3.x' + typescript: '>= 4.7.x' peerDependenciesMeta: typescript: optional: true dependencies: '@bundled-es-modules/cookie': 2.0.0 '@bundled-es-modules/statuses': 1.0.1 + '@inquirer/confirm': 3.1.4 '@mswjs/cookies': 1.1.0 - '@mswjs/interceptors': 0.25.15 + '@mswjs/interceptors': 0.26.15 '@open-draft/until': 2.1.0 '@types/cookie': 0.6.0 '@types/statuses': 2.0.4 chalk: 4.1.2 - chokidar: 3.5.3 graphql: 16.8.1 headers-polyfill: 4.0.2 - inquirer: 8.2.6 is-node-process: 1.2.0 outvariant: 1.4.2 path-to-regexp: 6.2.1 strict-event-emitter: 0.5.1 type-fest: 4.10.2 - typescript: 5.4.2 + typescript: 5.4.5 yargs: 17.7.2 dev: true @@ -4206,8 +4871,9 @@ packages: resolution: {integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==} dev: true - /mute-stream@0.0.8: - resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} + /mute-stream@1.0.0: + resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dev: true /nanoid@3.3.7: @@ -4273,11 +4939,6 @@ packages: readable-stream: 1.0.34 dev: true - /normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - dev: true - /npm-run-path@5.2.0: resolution: {integrity: sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -4295,6 +4956,7 @@ packages: /object-inspect@1.13.1: resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + dev: true /object-is@1.1.5: resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} @@ -4302,10 +4964,12 @@ packages: dependencies: call-bind: 1.0.5 define-properties: 1.2.1 + dev: true /object-keys@1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} + dev: true /object.assign@4.1.5: resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} @@ -4315,6 +4979,7 @@ packages: define-properties: 1.2.1 has-symbols: 1.0.3 object-keys: 1.1.1 + dev: true /object.entries@1.1.7: resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==} @@ -4366,13 +5031,6 @@ packages: wrappy: 1.0.2 dev: true - /onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - dependencies: - mimic-fn: 2.1.0 - dev: true - /onetime@6.0.0: resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} engines: {node: '>=12'} @@ -4391,26 +5049,6 @@ packages: type-check: 0.4.0 dev: true - /ora@5.4.1: - resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} - engines: {node: '>=10'} - dependencies: - bl: 4.1.0 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-spinners: 2.9.2 - is-interactive: 1.0.0 - is-unicode-supported: 0.1.0 - log-symbols: 4.1.0 - strip-ansi: 6.0.1 - wcwidth: 1.0.1 - dev: true - - /os-tmpdir@1.0.2: - resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} - engines: {node: '>=0.10.0'} - dev: true - /outvariant@1.4.2: resolution: {integrity: sha512-Ou3dJ6bA/UJ5GVHxah4LnqDwZRwAmWxrG3wtrHrbGnP4RnLCtA64A4F+ae7Y8ww660JaddSoArUR5HjipWSHAQ==} dev: true @@ -4559,13 +5197,18 @@ packages: deprecated: You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1 dev: true + /possible-typed-array-names@1.0.0: + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + engines: {node: '>= 0.4'} + dev: true + /postcss@8.4.31: resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.7 picocolors: 1.0.0 - source-map-js: 1.0.2 + source-map-js: 1.2.0 dev: false /postcss@8.4.35: @@ -4574,7 +5217,16 @@ packages: dependencies: nanoid: 3.3.7 picocolors: 1.0.0 - source-map-js: 1.0.2 + source-map-js: 1.2.0 + dev: true + + /postcss@8.4.38: + resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.0 + source-map-js: 1.2.0 /prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} @@ -4713,22 +5365,6 @@ packages: util-deprecate: 1.0.2 dev: true - /readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} - dependencies: - inherits: 2.0.4 - string_decoder: 1.3.0 - util-deprecate: 1.0.2 - dev: true - - /readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - dependencies: - picomatch: 2.3.1 - dev: true - /redent@3.0.0: resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} engines: {node: '>=8'} @@ -4774,6 +5410,17 @@ packages: call-bind: 1.0.5 define-properties: 1.2.1 set-function-name: 2.0.1 + dev: true + + /regexp.prototype.flags@1.5.2: + resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-errors: 1.3.0 + set-function-name: 2.0.1 + dev: true /require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} @@ -4818,26 +5465,11 @@ packages: supports-preserve-symlinks-flag: 1.0.0 dev: true - /restore-cursor@3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} - dependencies: - onetime: 5.1.2 - signal-exit: 3.0.7 - dev: true - /reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} dev: true - /rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - hasBin: true - dependencies: - glob: 7.2.3 - dev: true - /rimraf@5.0.5: resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==} engines: {node: '>=14'} @@ -4846,6 +5478,31 @@ packages: glob: 10.3.10 dev: true + /rollup@4.14.3: + resolution: {integrity: sha512-ag5tTQKYsj1bhrFC9+OEWqb5O6VYgtQDO9hPDBMmIbePwhfSr+ExlcU741t8Dhw5DkPCQf6noz0jb36D6W9/hw==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + dependencies: + '@types/estree': 1.0.5 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.14.3 + '@rollup/rollup-android-arm64': 4.14.3 + '@rollup/rollup-darwin-arm64': 4.14.3 + '@rollup/rollup-darwin-x64': 4.14.3 + '@rollup/rollup-linux-arm-gnueabihf': 4.14.3 + '@rollup/rollup-linux-arm-musleabihf': 4.14.3 + '@rollup/rollup-linux-arm64-gnu': 4.14.3 + '@rollup/rollup-linux-arm64-musl': 4.14.3 + '@rollup/rollup-linux-powerpc64le-gnu': 4.14.3 + '@rollup/rollup-linux-riscv64-gnu': 4.14.3 + '@rollup/rollup-linux-s390x-gnu': 4.14.3 + '@rollup/rollup-linux-x64-gnu': 4.14.3 + '@rollup/rollup-linux-x64-musl': 4.14.3 + '@rollup/rollup-win32-arm64-msvc': 4.14.3 + '@rollup/rollup-win32-ia32-msvc': 4.14.3 + '@rollup/rollup-win32-x64-msvc': 4.14.3 + fsevents: 2.3.3 + /rollup@4.9.6: resolution: {integrity: sha512-05lzkCS2uASX0CiLFybYfVkwNbKZG5NFQ6Go0VWyogFTXXbR039UVsegViTntkk4OglHBdF54ccApXRRuXRbsg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} @@ -4869,12 +5526,7 @@ packages: fsevents: 2.3.3 /rrweb-cssom@0.6.0: - resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} - dev: true - - /run-async@2.4.1: - resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} - engines: {node: '>=0.12.0'} + resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} dev: true /run-parallel@1.2.0: @@ -4883,12 +5535,6 @@ packages: queue-microtask: 1.2.3 dev: true - /rxjs@7.8.1: - resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} - dependencies: - tslib: 2.6.2 - dev: true - /safe-array-concat@1.1.0: resolution: {integrity: sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==} engines: {node: '>=0.4'} @@ -4899,12 +5545,18 @@ packages: isarray: 2.0.5 dev: true - /safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + /safe-array-concat@1.1.2: + resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} + engines: {node: '>=0.4'} + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 + isarray: 2.0.5 dev: true - /safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + /safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} dev: true /safe-regex-test@1.0.2: @@ -4916,6 +5568,15 @@ packages: is-regex: 1.1.4 dev: true + /safe-regex-test@1.0.3: + resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-regex: 1.1.4 + dev: true + /safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} dev: true @@ -4971,6 +5632,19 @@ packages: get-intrinsic: 1.2.3 gopd: 1.0.1 has-property-descriptors: 1.0.1 + dev: true + + /set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + 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 + dev: true /set-function-name@2.0.1: resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} @@ -4979,6 +5653,7 @@ packages: define-data-property: 1.1.1 functions-have-names: 1.2.3 has-property-descriptors: 1.0.1 + dev: true /shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} @@ -4996,14 +5671,11 @@ packages: call-bind: 1.0.5 get-intrinsic: 1.2.3 object-inspect: 1.13.1 + dev: true /siginfo@2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} - /signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - dev: true - /signal-exit@4.1.0: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} @@ -5017,8 +5689,8 @@ packages: engines: {node: '>=12'} dev: true - /source-map-js@1.0.2: - resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + /source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} engines: {node: '>=0.10.0'} /source-map@0.6.1: @@ -5035,7 +5707,6 @@ packages: engines: {node: '>=10'} dependencies: escape-string-regexp: 2.0.0 - dev: false /stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} @@ -5053,6 +5724,7 @@ packages: engines: {node: '>= 0.4'} dependencies: internal-slot: 1.0.6 + dev: true /streamsearch@1.1.0: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} @@ -5109,6 +5781,16 @@ packages: es-abstract: 1.22.3 dev: true + /string.prototype.trim@1.2.9: + resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 + dev: true + /string.prototype.trimend@1.0.7: resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} dependencies: @@ -5117,6 +5799,14 @@ packages: es-abstract: 1.22.3 dev: true + /string.prototype.trimend@1.0.8: + resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + dev: true + /string.prototype.trimstart@1.0.7: resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} dependencies: @@ -5125,6 +5815,15 @@ packages: es-abstract: 1.22.3 dev: true + /string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + dev: true + /string_decoder@0.10.31: resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==} dev: true @@ -5135,12 +5834,6 @@ packages: safe-buffer: 5.1.2 dev: true - /string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - dependencies: - safe-buffer: 5.2.1 - dev: true - /strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} @@ -5209,6 +5902,13 @@ packages: dependencies: has-flag: 4.0.0 + /supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + dependencies: + has-flag: 4.0.0 + dev: true + /supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} @@ -5226,6 +5926,11 @@ packages: tslib: 2.6.2 dev: true + /tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + dev: true + /test-exclude@6.0.0: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} @@ -5246,28 +5951,22 @@ packages: xtend: 4.0.2 dev: true - /through@2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - dev: true - /tinybench@2.6.0: resolution: {integrity: sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==} /tinypool@0.8.2: resolution: {integrity: sha512-SUszKYe5wgsxnNOVlBYO6IC+8VGWdVGZWAqUxp3UErNBtptZvWbwyUOyzNL59zigz2rCA92QiL3wvG+JDSdJdQ==} engines: {node: '>=14.0.0'} + dev: true + + /tinypool@0.8.4: + resolution: {integrity: sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==} + engines: {node: '>=14.0.0'} /tinyspy@2.2.0: resolution: {integrity: sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==} engines: {node: '>=14.0.0'} - /tmp@0.0.33: - resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} - engines: {node: '>=0.6.0'} - dependencies: - os-tmpdir: 1.0.2 - dev: true - /to-fast-properties@2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} @@ -5296,13 +5995,13 @@ packages: punycode: 2.3.1 dev: true - /ts-api-utils@1.2.0(typescript@5.3.3): - resolution: {integrity: sha512-d+3WxW4r8WQy2cZWpNRPPGExX8ffOLGcIhheUANKbL5Sqjbhkneki76fRAWeXkaslV2etTb4tSJBSxOsH5+CJw==} - engines: {node: '>=18'} + /ts-api-utils@1.3.0(typescript@5.4.5): + resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} + engines: {node: '>=16'} peerDependencies: typescript: '>=4.2.0' dependencies: - typescript: 5.3.3 + typescript: 5.4.5 dev: true /tsconfig-paths@3.15.0: @@ -5321,18 +6020,18 @@ packages: /tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - /tsutils@3.21.0(typescript@5.3.3): + /tsutils@3.21.0(typescript@5.4.5): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} 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' dependencies: tslib: 1.14.1 - typescript: 5.3.3 + typescript: 5.4.5 dev: true - /tsx@4.7.0: - resolution: {integrity: sha512-I+t79RYPlEYlHn9a+KzwrvEwhJg35h/1zHsLC2JXvhC2mdynMv6Zxzvhv5EMV6VF5qJlLlkSnMVvdZV3PSIGcg==} + /tsx@4.7.2: + resolution: {integrity: sha512-BCNd4kz6fz12fyrgCTEdZHGJ9fWTGeUzXmQysh0RVocDY3h4frk05ZNCXSy4kIenF7y/QnrdiVpTsyNRn6vlAw==} engines: {node: '>=18.0.0'} hasBin: true dependencies: @@ -5353,11 +6052,6 @@ packages: resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} engines: {node: '>=4'} - /type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - dev: true - /type-fest@0.21.3: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} @@ -5377,6 +6071,15 @@ packages: is-typed-array: 1.1.13 dev: true + /typed-array-buffer@1.0.2: + resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-typed-array: 1.1.13 + dev: true + /typed-array-byte-length@1.0.0: resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} engines: {node: '>= 0.4'} @@ -5387,6 +6090,17 @@ packages: is-typed-array: 1.1.13 dev: true + /typed-array-byte-length@1.0.1: + resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + dev: true + /typed-array-byte-offset@1.0.0: resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} engines: {node: '>= 0.4'} @@ -5398,6 +6112,18 @@ packages: is-typed-array: 1.1.13 dev: true + /typed-array-byte-offset@1.0.2: + resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + dev: true + /typed-array-length@1.0.4: resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} dependencies: @@ -5406,6 +6132,18 @@ packages: is-typed-array: 1.1.13 dev: true + /typed-array-length@1.0.6: + resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + possible-typed-array-names: 1.0.0 + dev: true + /typescript@5.3.3: resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} engines: {node: '>=14.17'} @@ -5417,13 +6155,19 @@ packages: engines: {node: '>=14.17'} hasBin: true + /typescript@5.4.5: + resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} + engines: {node: '>=14.17'} + hasBin: true + dev: true + /ufo@1.3.2: resolution: {integrity: sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==} /unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 has-bigints: 1.0.2 has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 @@ -5475,15 +6219,6 @@ packages: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} dev: true - /v8-to-istanbul@9.2.0: - resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} - engines: {node: '>=10.12.0'} - dependencies: - '@jridgewell/trace-mapping': 0.3.22 - '@types/istanbul-lib-coverage': 2.0.6 - convert-source-map: 2.0.0 - dev: true - /validator@13.9.0: resolution: {integrity: sha512-B+dGG8U3fdtM0/aNK4/X8CXq/EcxU2WPrPEkJGslb47qyHsxmbggTWK0yEA4qnYVNF+nxNlN88o14hIcPmSIEA==} engines: {node: '>= 0.10'} @@ -5498,7 +6233,28 @@ packages: debug: 4.3.4 pathe: 1.1.2 picocolors: 1.0.0 - vite: 5.1.6(@types/node@20.11.26) + vite: 5.2.8 + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + + /vite-node@1.5.0: + resolution: {integrity: sha512-tV8h6gMj6vPzVCa7l+VGq9lwoJjW8Y79vst8QZZGiuRAfijU+EEWuc0kFpmndQrWhMMhet1jdSF+40KSZUqIIw==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + dependencies: + cac: 6.7.14 + debug: 4.3.4 + pathe: 1.1.2 + picocolors: 1.0.0 + vite: 5.2.8 transitivePeerDependencies: - '@types/node' - less @@ -5525,7 +6281,7 @@ packages: debug: 4.3.4 kolorist: 1.8.0 typescript: 5.4.2 - vite: 5.1.6(@types/node@20.11.26) + vite: 5.1.6 vue-tsc: 1.8.27(typescript@5.4.2) transitivePeerDependencies: - '@types/node' @@ -5533,8 +6289,33 @@ packages: - supports-color dev: true - /vite@5.1.5: - resolution: {integrity: sha512-BdN1xh0Of/oQafhU+FvopafUp6WaYenLU/NFoL5WyJL++GxkNfieKzBhM24H3HVsPQrlAqB7iJYTHabzaRed5Q==} + /vite-plugin-dts@3.8.3(typescript@5.4.5)(vite@5.2.8): + resolution: {integrity: sha512-yRHiRosQw7MXdOhmcrVI+kRiB8YEShbSxnADNteK4eZGdEoyOkMHihvO5XOAVlOq8ng9sIqu8vVefDK1zcj3qw==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + typescript: '*' + vite: '*' + peerDependenciesMeta: + vite: + optional: true + dependencies: + '@microsoft/api-extractor': 7.43.0 + '@rollup/pluginutils': 5.1.0 + '@vue/language-core': 1.8.27(typescript@5.4.5) + debug: 4.3.4 + kolorist: 1.8.0 + magic-string: 0.30.9 + typescript: 5.4.5 + vite: 5.2.8 + vue-tsc: 1.8.27(typescript@5.4.5) + transitivePeerDependencies: + - '@types/node' + - rollup + - supports-color + dev: true + + /vite@5.1.6: + resolution: {integrity: sha512-yYIAZs9nVfRJ/AiOLCA91zzhjsHUgMjB+EigzFb6W2XTLO8JixBCKCjvhKZaye+NKYHCrkv3Oh50dH9EdLU2RA==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -5562,7 +6343,7 @@ packages: optional: true dependencies: esbuild: 0.19.12 - postcss: 8.4.35 + postcss: 8.4.38 rollup: 4.9.6 optionalDependencies: fsevents: 2.3.3 @@ -5601,8 +6382,43 @@ packages: rollup: 4.9.6 optionalDependencies: fsevents: 2.3.3 + dev: true + + /vite@5.2.8: + resolution: {integrity: sha512-OyZR+c1CE8yeHw5V5t59aXsUPPVTHMDjEZz8MgguLL/Q7NblxhZUlTu9xSPqlsUO/y+X7dlU05jdhvyycD55DA==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + esbuild: 0.20.2 + postcss: 8.4.38 + rollup: 4.14.3 + optionalDependencies: + fsevents: 2.3.3 - /vitest@1.3.1: + /vitest@1.3.1(jsdom@24.0.0): resolution: {integrity: sha512-/1QJqXs8YbCrfv/GPQ05wAZf2eakUPLPa18vkJAKE7RXOKfVHqMZZ1WlTjiwl6Gcn65M5vpNUB6EFLnEdRdEXQ==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true @@ -5636,6 +6452,7 @@ packages: chai: 4.4.1 debug: 4.3.4 execa: 8.0.1 + jsdom: 24.0.0 local-pkg: 0.5.0 magic-string: 0.30.7 pathe: 1.1.2 @@ -5644,7 +6461,7 @@ packages: strip-literal: 2.0.0 tinybench: 2.6.0 tinypool: 0.8.2 - vite: 5.1.5 + vite: 5.1.6 vite-node: 1.3.1 why-is-node-running: 2.2.2 transitivePeerDependencies: @@ -5655,16 +6472,17 @@ packages: - sugarss - supports-color - terser + dev: true - /vitest@1.3.1(jsdom@24.0.0): - resolution: {integrity: sha512-/1QJqXs8YbCrfv/GPQ05wAZf2eakUPLPa18vkJAKE7RXOKfVHqMZZ1WlTjiwl6Gcn65M5vpNUB6EFLnEdRdEXQ==} + /vitest@1.5.0: + resolution: {integrity: sha512-d8UKgR0m2kjdxDWX6911uwxout6GHS0XaGH1cksSIVVG8kRlE7G7aBw7myKQCvDI5dT4j7ZMa+l706BIORMDLw==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 1.3.1 - '@vitest/ui': 1.3.1 + '@vitest/browser': 1.5.0 + '@vitest/ui': 1.5.0 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -5681,16 +6499,15 @@ packages: jsdom: optional: true dependencies: - '@vitest/expect': 1.3.1 - '@vitest/runner': 1.3.1 - '@vitest/snapshot': 1.3.1 - '@vitest/spy': 1.3.1 - '@vitest/utils': 1.3.1 + '@vitest/expect': 1.5.0 + '@vitest/runner': 1.5.0 + '@vitest/snapshot': 1.5.0 + '@vitest/spy': 1.5.0 + '@vitest/utils': 1.5.0 acorn-walk: 8.3.2 chai: 4.4.1 debug: 4.3.4 execa: 8.0.1 - jsdom: 24.0.0 local-pkg: 0.5.0 magic-string: 0.30.7 pathe: 1.1.2 @@ -5698,9 +6515,64 @@ packages: std-env: 3.7.0 strip-literal: 2.0.0 tinybench: 2.6.0 - tinypool: 0.8.2 - vite: 5.1.6(@types/node@20.11.26) - vite-node: 1.3.1 + tinypool: 0.8.4 + vite: 5.1.6 + vite-node: 1.5.0 + why-is-node-running: 2.2.2 + transitivePeerDependencies: + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + + /vitest@1.5.0(jsdom@24.0.0): + resolution: {integrity: sha512-d8UKgR0m2kjdxDWX6911uwxout6GHS0XaGH1cksSIVVG8kRlE7G7aBw7myKQCvDI5dT4j7ZMa+l706BIORMDLw==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/node': ^18.0.0 || >=20.0.0 + '@vitest/browser': 1.5.0 + '@vitest/ui': 1.5.0 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + dependencies: + '@vitest/expect': 1.5.0 + '@vitest/runner': 1.5.0 + '@vitest/snapshot': 1.5.0 + '@vitest/spy': 1.5.0 + '@vitest/utils': 1.5.0 + acorn-walk: 8.3.2 + chai: 4.4.1 + debug: 4.3.4 + execa: 8.0.1 + jsdom: 24.0.0 + local-pkg: 0.5.0 + magic-string: 0.30.9 + pathe: 1.1.2 + picocolors: 1.0.0 + std-env: 3.7.0 + strip-literal: 2.0.0 + tinybench: 2.6.0 + tinypool: 0.8.4 + vite: 5.2.8 + vite-node: 1.5.0 why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -5731,6 +6603,18 @@ packages: typescript: 5.4.2 dev: true + /vue-tsc@1.8.27(typescript@5.4.5): + resolution: {integrity: sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==} + hasBin: true + peerDependencies: + typescript: '*' + dependencies: + '@volar/typescript': 1.11.1 + '@vue/language-core': 1.8.27(typescript@5.4.5) + semver: 7.6.0 + typescript: 5.4.5 + dev: true + /w3c-xmlserializer@5.0.0: resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} engines: {node: '>=18'} @@ -5738,12 +6622,6 @@ packages: xml-name-validator: 5.0.0 dev: true - /wcwidth@1.0.1: - resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} - dependencies: - defaults: 1.0.4 - dev: true - /web-vitals@3.5.2: resolution: {integrity: sha512-c0rhqNcHXRkY/ogGDJQxZ9Im9D19hDihbzSQJrsioex+KnFgmMzBiy57Z1EjkhX/+OjyBpclDCzz2ITtjokFmg==} dev: false @@ -5781,6 +6659,7 @@ packages: is-number-object: 1.0.7 is-string: 1.0.7 is-symbol: 1.0.4 + dev: true /which-builtin-type@1.1.3: resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} @@ -5807,6 +6686,7 @@ packages: is-set: 2.0.2 is-weakmap: 2.0.1 is-weakset: 2.0.2 + dev: true /which-typed-array@1.1.14: resolution: {integrity: sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==} @@ -5817,6 +6697,18 @@ packages: for-each: 0.3.3 gopd: 1.0.1 has-tostringtag: 1.0.2 + dev: true + + /which-typed-array@1.1.15: + resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.2 + dev: true /which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} From a6225ff347d625440f25982e7ed40c2fcf8d3ed4 Mon Sep 17 00:00:00 2001 From: GitHub Date: Mon, 15 Apr 2024 19:40:46 +0000 Subject: [PATCH 253/440] [skip ci] Update to version 7.22.1 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 4d1fb7b33..1d83d60bc 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.22.0", + "version": "7.22.1", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 595cf8eeb..970cbb81e 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.22.0'; +export default '7.22.1'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 20ed6f814..50496066c 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.22.0", + "version": "7.22.1", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 595cf8eeb..970cbb81e 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.22.0'; +export default '7.22.1'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index e6c0d0353..96101a086 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.22.0", + "version": "7.22.1", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 7fc84b0c7f7b2aaf2942e32486fe326e2620a18d Mon Sep 17 00:00:00 2001 From: GitHub Date: Mon, 15 Apr 2024 19:40:47 +0000 Subject: [PATCH 254/440] [skip ci] Generate changelog to version 7.22.1 --- CHANGELOG.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f44a903c5..a710a8a1d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog -## 7.22.0 +## 7.22.1 + +- [be24658](https://github.com/AxaFrance/oidc-client/commit/be2465852e837b749abd3a86c5c0caa57a2ea8b6) - refactor(all): update libs (release), 2024-04-15 by *Guillaume Chervet* + + +## v7.22.0 - [032a00b](https://github.com/AxaFrance/oidc-client/commit/032a00b501557fe6b5be48e83e4914051ee2c7f0) - feat(oidc): control dpop injection (release) (#1342), 2024-04-10 by *Guillaume Chervet* @@ -313,8 +318,3 @@ - [59a9c46](https://github.com/AxaFrance/oidc-client/commit/59a9c468b4fa9eb9694b1f3921eb545daf1f58f8) - fix(ci): exclude author GitHub from changelog (release), 2023-11-29 by *Guillaume Chervet* -## v7.12.2 - -- [cd575e7](https://github.com/AxaFrance/oidc-client/commit/cd575e716f4fbcb1ba09a76a1530a3ae23f08599) - fix(ci): last clean and test (release), 2023-11-29 by *Guillaume Chervet* - - From b17217d6b829dee3b28f444fda099fce9c94bc41 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Tue, 16 Apr 2024 21:55:08 +0200 Subject: [PATCH 255/440] fix(react-oidc): unused var in User.txs (release) --- packages/react-oidc/src/User.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/react-oidc/src/User.ts b/packages/react-oidc/src/User.ts index d7693f748..a1212fbf0 100644 --- a/packages/react-oidc/src/User.ts +++ b/packages/react-oidc/src/User.ts @@ -34,8 +34,7 @@ export const useOidcUser = (configuration } else { setOidcUser({ user: null, status: OidcUserStatus.Unauthenticated }); } - // eslint-disable-next-line @typescript-eslint/no-unused-vars - const newSubscriptionId = oidc.subscribeEvents((name: string, data: any) => { + const newSubscriptionId = oidc.subscribeEvents((name: string) => { if (name === OidcClient.eventNames.logout_from_another_tab || name === OidcClient.eventNames.logout_from_same_tab) { if (isMounted) { setOidcUser({ user: null, status: OidcUserStatus.Unauthenticated }); From 788e65fdfad056ca04c1ff522177dea948489a63 Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 16 Apr 2024 20:01:20 +0000 Subject: [PATCH 256/440] [skip ci] Update to version 7.22.2 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 1d83d60bc..4a226cd68 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.22.1", + "version": "7.22.2", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 970cbb81e..311400940 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.22.1'; +export default '7.22.2'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 50496066c..5bdaad6c5 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.22.1", + "version": "7.22.2", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 970cbb81e..311400940 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.22.1'; +export default '7.22.2'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 96101a086..6778e8955 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.22.1", + "version": "7.22.2", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From c555370d34f1e3903a0eff19f42b4c6c3d5e2781 Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 16 Apr 2024 20:01:22 +0000 Subject: [PATCH 257/440] [skip ci] Generate changelog to version 7.22.2 --- CHANGELOG.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a710a8a1d..dc1ff4abb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog -## 7.22.1 +## 7.22.2 + +- [b17217d](https://github.com/AxaFrance/oidc-client/commit/b17217d6b829dee3b28f444fda099fce9c94bc41) - fix(react-oidc): unused var in User.txs (release), 2024-04-16 by *Guillaume Chervet* + + +## v7.22.1 - [be24658](https://github.com/AxaFrance/oidc-client/commit/be2465852e837b749abd3a86c5c0caa57a2ea8b6) - refactor(all): update libs (release), 2024-04-15 by *Guillaume Chervet* @@ -313,8 +318,3 @@ - [9373765](https://github.com/AxaFrance/oidc-client/commit/9373765eafb4ef8dcba904772d558ab5bb40f17c) - fix(ci): remove duplicate, 2023-11-29 by *Guillaume Chervet* -## v7.12.3 - -- [59a9c46](https://github.com/AxaFrance/oidc-client/commit/59a9c468b4fa9eb9694b1f3921eb545daf1f58f8) - fix(ci): exclude author GitHub from changelog (release), 2023-11-29 by *Guillaume Chervet* - - From 5af807548e35c64da74fc3547e35c8ec512399ba Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Thu, 18 Apr 2024 21:09:02 +0200 Subject: [PATCH 258/440] fix(all): types import in index.ts for all typescript (release) --- packages/oidc-client/src/index.ts | 4 ++-- packages/react-oidc/src/index.ts | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/oidc-client/src/index.ts b/packages/oidc-client/src/index.ts index 070d2b197..a5f0906b2 100644 --- a/packages/oidc-client/src/index.ts +++ b/packages/oidc-client/src/index.ts @@ -1,4 +1,3 @@ -import {ILOidcLocation} from "./location"; export { getFetchDefault } from './oidc.js'; export { TokenRenewMode } from './parseTokens.js'; @@ -18,4 +17,5 @@ export type { export { OidcLocation } from './location.js'; export type { ILOidcLocation } from './location.js'; export { TokenAutomaticRenewMode } from './types.js'; -export { type OidcUserInfo, OidcClient } from './oidcClient.js'; +export { OidcClient } from './oidcClient.js'; +export type { OidcUserInfo } from './oidcClient.js'; diff --git a/packages/react-oidc/src/index.ts b/packages/react-oidc/src/index.ts index 116041f13..ebfb520e6 100644 --- a/packages/react-oidc/src/index.ts +++ b/packages/react-oidc/src/index.ts @@ -10,4 +10,5 @@ export type { StringMap, ILOidcLocation } from '@axa-fr/oidc-client'; -export { type OidcUserInfo, TokenRenewMode, OidcClient, TokenAutomaticRenewMode, OidcLocation } from '@axa-fr/oidc-client'; +export { TokenRenewMode, OidcClient, TokenAutomaticRenewMode, OidcLocation } from '@axa-fr/oidc-client'; +export type { OidcUserInfo } from '@axa-fr/oidc-client'; From 723491b80b6a0717655fa9ff3bf062e8cef13333 Mon Sep 17 00:00:00 2001 From: GitHub Date: Thu, 18 Apr 2024 19:15:13 +0000 Subject: [PATCH 259/440] [skip ci] Update to version 7.22.3 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 4a226cd68..92f36f9b0 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.22.2", + "version": "7.22.3", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 311400940..dcaa4f9a5 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.22.2'; +export default '7.22.3'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 5bdaad6c5..b73b7434b 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.22.2", + "version": "7.22.3", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 311400940..dcaa4f9a5 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.22.2'; +export default '7.22.3'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 6778e8955..95b3728c9 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.22.2", + "version": "7.22.3", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 5e21bcb7a3a1ec3264efdd6001b40470ad1fb9e4 Mon Sep 17 00:00:00 2001 From: GitHub Date: Thu, 18 Apr 2024 19:15:14 +0000 Subject: [PATCH 260/440] [skip ci] Generate changelog to version 7.22.3 --- CHANGELOG.md | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dc1ff4abb..1ebfe899e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog -## 7.22.2 +## 7.22.3 + +- [5af8075](https://github.com/AxaFrance/oidc-client/commit/5af807548e35c64da74fc3547e35c8ec512399ba) - fix(all): types import in index.ts for all typescript (release), 2024-04-18 by *Guillaume Chervet* + + +## v7.22.2 - [b17217d](https://github.com/AxaFrance/oidc-client/commit/b17217d6b829dee3b28f444fda099fce9c94bc41) - fix(react-oidc): unused var in User.txs (release), 2024-04-16 by *Guillaume Chervet* @@ -311,10 +316,3 @@ - [bf53fa8](https://github.com/AxaFrance/oidc-client/commit/bf53fa803a6414b99e1520154c11d66c4958e62b) - build(npm): bump tslib from 2.6.1 to 2.6.2 (#1218), 2023-11-29 by *dependabot[bot]* -## v7.12.4 - -- [59efae4](https://github.com/AxaFrance/oidc-client/commit/59efae45029593579d2dc377093777f8ef940537) - build(npm): bump eslint from 8.46.0 to 8.54.0 (#1219), 2023-11-29 by *dependabot[bot]* -- [283e7d9](https://github.com/AxaFrance/oidc-client/commit/283e7d9e02dcd0795489c9c4d24b9abcbb0e4b39) - Merge branch 'main' of https://github.com/AxaFrance/oidc-client, 2023-11-29 by *Guillaume Chervet* -- [9373765](https://github.com/AxaFrance/oidc-client/commit/9373765eafb4ef8dcba904772d558ab5bb40f17c) - fix(ci): remove duplicate, 2023-11-29 by *Guillaume Chervet* - - From 64c76e0b1f4fccf1c0ed93269a0307212be9d661 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Tue, 23 Apr 2024 03:28:06 +0200 Subject: [PATCH 261/440] feature(oidc):preload user (release) (#1352) * feature(oidc):preload user (alpha) * fix (alpha) * fix (alpha) --- examples/react-oidc-demo/src/Profile.tsx | 2 ++ examples/react-oidc-demo/src/configurations.ts | 1 + packages/oidc-client/src/keepSession.ts | 6 ++++++ packages/oidc-client/src/login.ts | 3 +++ packages/oidc-client/src/oidc.ts | 1 + packages/oidc-client/src/oidcClient.ts | 6 +++++- packages/oidc-client/src/types.ts | 1 + packages/react-oidc/src/User.ts | 17 ++++++++++++----- 8 files changed, 31 insertions(+), 6 deletions(-) diff --git a/examples/react-oidc-demo/src/Profile.tsx b/examples/react-oidc-demo/src/Profile.tsx index 4a510d6bd..1a767f3a5 100644 --- a/examples/react-oidc-demo/src/Profile.tsx +++ b/examples/react-oidc-demo/src/Profile.tsx @@ -8,6 +8,8 @@ interface OidcUserRoleInfo extends OidcUserInfo{ const DisplayUserInfo = () => { const { oidcUser, oidcUserLoadingState, reloadOidcUser } = useOidcUser(); + console.log('oidcUser', oidcUser); + console.log('oidcUserLoadingState', oidcUserLoadingState); switch (oidcUserLoadingState) { case OidcUserStatus.Loading: return

User Information are loading

; diff --git a/examples/react-oidc-demo/src/configurations.ts b/examples/react-oidc-demo/src/configurations.ts index eb1a58728..16efca83f 100644 --- a/examples/react-oidc-demo/src/configurations.ts +++ b/examples/react-oidc-demo/src/configurations.ts @@ -18,6 +18,7 @@ export const configurationIdentityServer = { token_renew_mode: TokenRenewMode.access_token_invalid, token_automatic_renew_mode: TokenAutomaticRenewMode.AutomaticOnlyWhenFetchExecuted, demonstrating_proof_of_possession: false, + preload_user_info: true }; export const configurationIdentityServer1 = { diff --git a/packages/oidc-client/src/keepSession.ts b/packages/oidc-client/src/keepSession.ts index 881f03320..e863229cd 100644 --- a/packages/oidc-client/src/keepSession.ts +++ b/packages/oidc-client/src/keepSession.ts @@ -28,6 +28,9 @@ export const tryKeepSessionAsync = async (oidc: Oidc) =>{ const sessionState = await serviceWorker.getSessionStateAsync(); // @ts-ignore await oidc.startCheckSessionAsync(oidcServerConfiguration.check_session_iframe, configuration.client_id, sessionState); + if(configuration.preload_user_info){ + await oidc.userInfoAsync(); + } oidc.publishEvent(eventNames.tryKeepExistingSessionAsync_end, { success: true, message: 'tokens inside ServiceWorker are valid', @@ -55,6 +58,9 @@ export const tryKeepSessionAsync = async (oidc: Oidc) =>{ const sessionState = await session.getSessionStateAsync(); // @ts-ignore await oidc.startCheckSessionAsync(oidcServerConfiguration.check_session_iframe, configuration.client_id, sessionState); + if(configuration.preload_user_info){ + await oidc.userInfoAsync(); + } oidc.publishEvent(eventNames.tryKeepExistingSessionAsync_end, { success: true, message: 'tokens inside storage are valid', diff --git a/packages/oidc-client/src/login.ts b/packages/oidc-client/src/login.ts index 95547c304..4614eebb3 100644 --- a/packages/oidc-client/src/login.ts +++ b/packages/oidc-client/src/login.ts @@ -207,6 +207,9 @@ export const loginCallbackAsync = (oidc:Oidc) => async (isSilentSignin = false) } await oidc.startCheckSessionAsync(oidcServerConfiguration.checkSessionIframe, clientId, sessionState, isSilentSignin); + if(configuration.preload_user_info){ + await oidc.userInfoAsync(); + } oidc.publishEvent(eventNames.loginCallbackAsync_end, {}); return { tokens: formattedTokens, diff --git a/packages/oidc-client/src/oidc.ts b/packages/oidc-client/src/oidc.ts index 0398a05f7..36f42bc37 100644 --- a/packages/oidc-client/src/oidc.ts +++ b/packages/oidc-client/src/oidc.ts @@ -121,6 +121,7 @@ export class Oidc { service_worker_update_require_callback, service_worker_activate: configuration.service_worker_activate ?? activateServiceWorker, demonstrating_proof_of_possession_configuration: configuration.demonstrating_proof_of_possession_configuration ?? defaultDemonstratingProofOfPossessionConfiguration, + preload_user_info: configuration.preload_user_info ?? false, }; this.getFetch = getFetch ?? getFetchDefault; diff --git a/packages/oidc-client/src/oidcClient.ts b/packages/oidc-client/src/oidcClient.ts index 7a799e17a..59a293dbe 100644 --- a/packages/oidc-client/src/oidcClient.ts +++ b/packages/oidc-client/src/oidcClient.ts @@ -80,7 +80,11 @@ export class OidcClient { } async userInfoAsync(noCache = false, demonstrating_proof_of_possession:boolean=false):Promise { - return this._oidc.userInfoAsync(noCache); + return this._oidc.userInfoAsync(noCache, demonstrating_proof_of_possession); + } + + userInfo():T { + return this._oidc.userInfo; } } diff --git a/packages/oidc-client/src/types.ts b/packages/oidc-client/src/types.ts index a816c4a31..a2dd29267 100644 --- a/packages/oidc-client/src/types.ts +++ b/packages/oidc-client/src/types.ts @@ -40,6 +40,7 @@ export type OidcConfiguration = { logout_tokens_to_invalidate?:Array; demonstrating_proof_of_possession?:boolean; demonstrating_proof_of_possession_configuration?: DemonstratingProofOfPossessionConfiguration; + preload_user_info?:boolean; }; export interface DemonstratingProofOfPossessionConfiguration { diff --git a/packages/react-oidc/src/User.ts b/packages/react-oidc/src/User.ts index a1212fbf0..53490a08b 100644 --- a/packages/react-oidc/src/User.ts +++ b/packages/react-oidc/src/User.ts @@ -14,16 +14,22 @@ export type OidcUser = { } export const useOidcUser = (configurationName = 'default', demonstrating_proof_of_possession=false) => { - const [oidcUser, setOidcUser] = useState>({ user: null, status: OidcUserStatus.Unauthenticated }); - const [oidcUserId, setOidcUserId] = useState(''); + const oidc = OidcClient.get(configurationName); + const user = oidc.userInfo(); + const [oidcUser, setOidcUser] = useState>({ user: user, status: user ? OidcUserStatus.Loaded : OidcUserStatus.Unauthenticated }); + const [oidcUserId, setOidcUserId] = useState(user ? 1 : 0); + const [oidcPreviousUserId, setPreviousOidcUserId] = useState(user ? 1 : 0); useEffect(() => { const oidc = OidcClient.get(configurationName); let isMounted = true; if (oidc && oidc.tokens) { + const isCache = oidcUserId === oidcPreviousUserId; + if(isCache && oidc.userInfo()) { + return; + } setOidcUser({ ...oidcUser, status: OidcUserStatus.Loading }); - const isNoCache = oidcUserId !== ''; - oidc.userInfoAsync(isNoCache, demonstrating_proof_of_possession) + oidc.userInfoAsync(!isCache, demonstrating_proof_of_possession) .then((info) => { if (isMounted) { // @ts-ignore @@ -31,6 +37,7 @@ export const useOidcUser = (configuration } }) .catch(() => setOidcUser({ ...oidcUser, status: OidcUserStatus.LoadingError })); + setPreviousOidcUserId(oidcUserId); } else { setOidcUser({ user: null, status: OidcUserStatus.Unauthenticated }); } @@ -48,7 +55,7 @@ export const useOidcUser = (configuration }, [oidcUserId]); const reloadOidcUser = () => { - setOidcUserId(oidcUserId + ' '); + setOidcUserId(oidcUserId+1); }; return { oidcUser: oidcUser.user, oidcUserLoadingState: oidcUser.status, reloadOidcUser }; From a942873662cf4c99b4a09d9cdb311a6c269d86df Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 23 Apr 2024 01:30:46 +0000 Subject: [PATCH 262/440] [skip ci] Update to version 7.22.4 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 92f36f9b0..47a1858e8 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.22.3", + "version": "7.22.4", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index dcaa4f9a5..37784eb89 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.22.3'; +export default '7.22.4'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index b73b7434b..3f37e5d7c 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.22.3", + "version": "7.22.4", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index dcaa4f9a5..37784eb89 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.22.3'; +export default '7.22.4'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 95b3728c9..6a1fd1681 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.22.3", + "version": "7.22.4", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 1dd3b419d8678ff67f0c509740bf1d64ae61e045 Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 23 Apr 2024 01:30:48 +0000 Subject: [PATCH 263/440] [skip ci] Generate changelog to version 7.22.4 --- CHANGELOG.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1ebfe899e..e89ca6f8a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog -## 7.22.3 +## 7.22.4 + +- [64c76e0](https://github.com/AxaFrance/oidc-client/commit/64c76e0b1f4fccf1c0ed93269a0307212be9d661) - feature(oidc):preload user (release) (#1352), 2024-04-23 by *Guillaume Chervet* + + +## v7.22.3 - [5af8075](https://github.com/AxaFrance/oidc-client/commit/5af807548e35c64da74fc3547e35c8ec512399ba) - fix(all): types import in index.ts for all typescript (release), 2024-04-18 by *Guillaume Chervet* @@ -311,8 +316,3 @@ - [55b318e](https://github.com/AxaFrance/oidc-client/commit/55b318e1c31fe6a7d1be106e99b14db35e4f4229) - build(npm): bump @types/node from 18.17.1 to 20.10.1 (#1217), 2023-11-29 by *dependabot[bot]* -## v7.12.5 - -- [bf53fa8](https://github.com/AxaFrance/oidc-client/commit/bf53fa803a6414b99e1520154c11d66c4958e62b) - build(npm): bump tslib from 2.6.1 to 2.6.2 (#1218), 2023-11-29 by *dependabot[bot]* - - From d764b2bd7319711c49a393c1fd3496d054661065 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Sat, 18 May 2024 21:50:42 +0200 Subject: [PATCH 264/440] refatcor(all): update librairies --- examples/nextjs-demo/components/layout.js | 5 +- examples/nextjs-demo/pages/index.js | 13 +- examples/react-oidc-demo/src/Home.tsx | 4 +- package.json | 14 +- .../oidc-client-service-worker/package.json | 10 +- packages/oidc-client/package.json | 16 +- packages/react-oidc/package.json | 22 +- pnpm-lock.yaml | 738 +++++++++--------- 8 files changed, 429 insertions(+), 393 deletions(-) diff --git a/examples/nextjs-demo/components/layout.js b/examples/nextjs-demo/components/layout.js index b476e7ddc..911b8090c 100644 --- a/examples/nextjs-demo/components/layout.js +++ b/examples/nextjs-demo/components/layout.js @@ -3,11 +3,12 @@ import { useRouter } from 'next/router'; import React from 'react'; const configuration = { - client_id: 'interactive.public.short', + client_id: 'interactive.public', redirect_uri: 'http://localhost:3001/#authentication/callback', silent_redirect_uri: 'http://localhost:3001/#authentication/silent-callback', // Optional activate silent-signin that use cookies between OIDC server and client javascript to restore the session scope: 'openid profile email api offline_access', - authority: 'https://demo.duendesoftware.com', + authority: 'https://demo.duendesoftware.com', + preload_user_info: 'true', }; const onEvent=(configurationName, eventName, data )=>{ diff --git a/examples/nextjs-demo/pages/index.js b/examples/nextjs-demo/pages/index.js index 679fae649..60f18e231 100644 --- a/examples/nextjs-demo/pages/index.js +++ b/examples/nextjs-demo/pages/index.js @@ -1,8 +1,19 @@ -import { OidcSecure, OidcUserStatus,useOidcAccessToken, useOidcIdToken, useOidcUser} from '@axa-fr/react-oidc'; +import {OidcSecure, OidcUserStatus, useOidc, useOidcAccessToken, useOidcIdToken, useOidcUser} from '@axa-fr/react-oidc'; import Head from 'next/head'; +const isBrowser = () => typeof window !== "undefined"; + const DisplayUserInfo = () => { const{ oidcUser, oidcUserLoadingState } = useOidcUser(); + const { isAuthenticated } = useOidc(); + console.log( + "isBrowser: " + + isBrowser() + + ", isAuthenticated: " + + isAuthenticated + + ", oidcUser: " + ); + console.log(oidcUser); switch (oidcUserLoadingState){ case OidcUserStatus.Loading: diff --git a/examples/react-oidc-demo/src/Home.tsx b/examples/react-oidc-demo/src/Home.tsx index b8c035158..b8b43dd5b 100644 --- a/examples/react-oidc-demo/src/Home.tsx +++ b/examples/react-oidc-demo/src/Home.tsx @@ -1,4 +1,4 @@ -import { useOidc } from '@axa-fr/react-oidc'; +import {useOidc, useOidcUser} from '@axa-fr/react-oidc'; import React, {useEffect} from 'react'; import {useNavigate} from "react-router-dom"; @@ -12,6 +12,8 @@ import {useNavigate} from "react-router-dom"; export const Home = () => { const { login, logout, renewTokens, isAuthenticated } = useOidc(); + const{ oidcUser, oidcUserLoadingState } = useOidcUser(); + console.log(oidcUser, oidcUserLoadingState) const navigate = useNavigate(); const navigateProfile = () => { diff --git a/package.json b/package.json index 5202792e4..e067fd542 100644 --- a/package.json +++ b/package.json @@ -27,26 +27,26 @@ "build": "pnpm -r --filter=./packages/* run build" }, "devDependencies": { - "@typescript-eslint/eslint-plugin": "7.7.0", - "@typescript-eslint/parser": "7.7.0", - "eslint": "^9.0.0", + "@typescript-eslint/eslint-plugin": "7.9.0", + "@typescript-eslint/parser": "7.9.0", + "eslint": "9.3.0", "eslint-config-prettier": "9.1.0", "eslint-define-config": "2.1.0", "eslint-plugin-import": "2.29.1", "eslint-plugin-jsx-a11y": "6.8.0", - "eslint-plugin-n": "17.2.1", + "eslint-plugin-n": "17.7.0", "eslint-plugin-no-only-tests": "^3.1.0", "eslint-plugin-prettier": "5.1.3", "eslint-plugin-react": "7.34.1", - "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-hooks": "4.6.2", "eslint-plugin-regexp": "2.5.0", "eslint-plugin-simple-import-sort": "12.1.0", "eslint-plugin-testing-library": "6.2.2", "prettier": "3.2.5", "tslib": "^2.6.2", - "tsx": "4.7.2", + "tsx": "4.10.5", "typescript": "5.4.5", - "vitest": "1.5.0" + "vitest": "1.6.0" }, "engines": { "node": "16.* || >= 18.0.0" diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 47a1858e8..5f3b16574 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -34,14 +34,14 @@ "lint": "eslint src" }, "devDependencies": { - "@vitest/coverage-v8": "1.5.0", + "@vitest/coverage-v8": "1.6.0", "cpy": "11.0.1", "cpy-cli": "^5.0.0", - "rimraf": "5.0.5", + "rimraf": "5.0.7", "typescript": "5.4.5", - "vite": "5.2.8", - "vite-plugin-dts": "3.8.3", - "vitest": "1.5.0" + "vite": "5.2.11", + "vite-plugin-dts": "3.9.1", + "vitest": "1.6.0" }, "publishConfig": { "access": "public", diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 3f37e5d7c..6df062e78 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -23,17 +23,17 @@ "@axa-fr/oidc-client-service-worker": "workspace:*" }, "devDependencies": { - "@testing-library/dom": "10.0.0", - "@testing-library/jest-dom": "6.4.2", - "@testing-library/react": "15.0.2", - "@vitest/coverage-v8": "1.5.0", + "@testing-library/dom": "10.1.0", + "@testing-library/jest-dom": "6.4.5", + "@testing-library/react": "15.0.7", + "@vitest/coverage-v8": "1.6.0", "cpy": "11.0.1", "cpy-cli": "^5.0.0", - "rimraf": "5.0.5", + "rimraf": "5.0.7", "typescript": "5.4.5", - "vite": "5.2.8", - "vite-plugin-dts": "3.8.3", - "vitest": "1.5.0" + "vite": "5.2.11", + "vite-plugin-dts": "3.9.1", + "vitest": "1.6.0" }, "keywords": [ "oidc", diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 6a1fd1681..28b1015ed 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -47,24 +47,24 @@ "react": "^17.0.0 || ^18.0.0" }, "devDependencies": { - "@testing-library/jest-dom": "6.4.2", - "@testing-library/react": "15.0.2", + "@testing-library/jest-dom": "6.4.5", + "@testing-library/react": "15.0.7", "@testing-library/user-event": "14.5.2", - "@types/react": "^18.2.78", + "@types/react": "18.3.2", "@vitejs/plugin-react": "4.2.1", - "@vitest/coverage-v8": "1.5.0", + "@vitest/coverage-v8": "1.6.0", "cpy": "11.0.1", "cpy-cli": "^5.0.0", "cross-env": "^7.0.3", "jsdom": "24.0.0", - "msw": "2.2.13", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "rimraf": "5.0.5", + "msw": "2.3.0", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "rimraf": "5.0.7", "typescript": "5.4.5", - "vite": "5.2.8", - "vite-plugin-dts": "3.8.3", - "vitest": "1.5.0" + "vite": "5.2.11", + "vite-plugin-dts": "3.9.1", + "vitest": "1.6.0" }, "license": "MIT", "publishConfig": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dc3f5f7a4..361fe0449 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,50 +9,50 @@ importers: .: devDependencies: '@typescript-eslint/eslint-plugin': - specifier: 7.7.0 - version: 7.7.0(@typescript-eslint/parser@7.7.0)(eslint@9.0.0)(typescript@5.4.5) + specifier: 7.9.0 + version: 7.9.0(@typescript-eslint/parser@7.9.0)(eslint@9.3.0)(typescript@5.4.5) '@typescript-eslint/parser': - specifier: 7.7.0 - version: 7.7.0(eslint@9.0.0)(typescript@5.4.5) + specifier: 7.9.0 + version: 7.9.0(eslint@9.3.0)(typescript@5.4.5) eslint: - specifier: ^9.0.0 - version: 9.0.0 + specifier: 9.3.0 + version: 9.3.0 eslint-config-prettier: specifier: 9.1.0 - version: 9.1.0(eslint@9.0.0) + version: 9.1.0(eslint@9.3.0) eslint-define-config: specifier: 2.1.0 version: 2.1.0 eslint-plugin-import: specifier: 2.29.1 - version: 2.29.1(@typescript-eslint/parser@7.7.0)(eslint@9.0.0) + version: 2.29.1(@typescript-eslint/parser@7.9.0)(eslint@9.3.0) eslint-plugin-jsx-a11y: specifier: 6.8.0 - version: 6.8.0(eslint@9.0.0) + version: 6.8.0(eslint@9.3.0) eslint-plugin-n: - specifier: 17.2.1 - version: 17.2.1(eslint@9.0.0) + specifier: 17.7.0 + version: 17.7.0(eslint@9.3.0) eslint-plugin-no-only-tests: specifier: ^3.1.0 version: 3.1.0 eslint-plugin-prettier: specifier: 5.1.3 - version: 5.1.3(eslint-config-prettier@9.1.0)(eslint@9.0.0)(prettier@3.2.5) + version: 5.1.3(eslint-config-prettier@9.1.0)(eslint@9.3.0)(prettier@3.2.5) eslint-plugin-react: specifier: 7.34.1 - version: 7.34.1(eslint@9.0.0) + version: 7.34.1(eslint@9.3.0) eslint-plugin-react-hooks: - specifier: ^4.6.0 - version: 4.6.0(eslint@9.0.0) + specifier: 4.6.2 + version: 4.6.2(eslint@9.3.0) eslint-plugin-regexp: specifier: 2.5.0 - version: 2.5.0(eslint@9.0.0) + version: 2.5.0(eslint@9.3.0) eslint-plugin-simple-import-sort: specifier: 12.1.0 - version: 12.1.0(eslint@9.0.0) + version: 12.1.0(eslint@9.3.0) eslint-plugin-testing-library: specifier: 6.2.2 - version: 6.2.2(eslint@9.0.0)(typescript@5.4.5) + version: 6.2.2(eslint@9.3.0)(typescript@5.4.5) prettier: specifier: 3.2.5 version: 3.2.5 @@ -60,14 +60,14 @@ importers: specifier: ^2.6.2 version: 2.6.2 tsx: - specifier: 4.7.2 - version: 4.7.2 + specifier: 4.10.5 + version: 4.10.5 typescript: specifier: 5.4.5 version: 5.4.5 vitest: - specifier: 1.5.0 - version: 1.5.0 + specifier: 1.6.0 + version: 1.6.0(jsdom@24.0.0) examples/nextjs-demo: dependencies: @@ -76,13 +76,13 @@ importers: version: link:../../packages/react-oidc next: specifier: latest - version: 14.1.0(react-dom@18.2.0)(react@18.2.0) + version: 14.1.0(react-dom@18.3.1)(react@18.3.1) react: specifier: latest - version: 18.2.0 + version: 18.3.1 react-dom: specifier: latest - version: 18.2.0(react@18.2.0) + version: 18.3.1(react@18.3.1) examples/oidc-client-demo: dependencies: @@ -91,10 +91,10 @@ importers: version: link:../../packages/oidc-client '@testing-library/jest-dom': specifier: 6.4.2 - version: 6.4.2(@types/jest@29.5.12)(vitest@1.5.0) + version: 6.4.2(@types/jest@29.5.12)(vitest@1.6.0) '@testing-library/user-event': specifier: 14.5.2 - version: 14.5.2(@testing-library/dom@10.0.0) + version: 14.5.2(@testing-library/dom@10.1.0) '@types/jest': specifier: 29.5.12 version: 29.5.12 @@ -138,7 +138,7 @@ importers: version: 14.2.1(react-dom@18.2.0)(react@18.2.0) '@testing-library/user-event': specifier: 14.5.2 - version: 14.5.2(@testing-library/dom@10.0.0) + version: 14.5.2(@testing-library/dom@10.1.0) '@types/react': specifier: 18.2.65 version: 18.2.65 @@ -177,17 +177,17 @@ importers: version: link:../oidc-client-service-worker devDependencies: '@testing-library/dom': - specifier: 10.0.0 - version: 10.0.0 + specifier: 10.1.0 + version: 10.1.0 '@testing-library/jest-dom': - specifier: 6.4.2 - version: 6.4.2(@types/jest@29.5.12)(vitest@1.5.0) + specifier: 6.4.5 + version: 6.4.5(vitest@1.6.0) '@testing-library/react': - specifier: 15.0.2 - version: 15.0.2(react-dom@18.2.0)(react@18.2.0) + specifier: 15.0.7 + version: 15.0.7(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) '@vitest/coverage-v8': - specifier: 1.5.0 - version: 1.5.0(vitest@1.5.0) + specifier: 1.6.0 + version: 1.6.0(vitest@1.6.0) cpy: specifier: 11.0.1 version: 11.0.1 @@ -195,26 +195,26 @@ importers: specifier: ^5.0.0 version: 5.0.0 rimraf: - specifier: 5.0.5 - version: 5.0.5 + specifier: 5.0.7 + version: 5.0.7 typescript: specifier: 5.4.5 version: 5.4.5 vite: - specifier: 5.2.8 - version: 5.2.8 + specifier: 5.2.11 + version: 5.2.11 vite-plugin-dts: - specifier: 3.8.3 - version: 3.8.3(typescript@5.4.5)(vite@5.2.8) + specifier: 3.9.1 + version: 3.9.1(typescript@5.4.5)(vite@5.2.11) vitest: - specifier: 1.5.0 - version: 1.5.0 + specifier: 1.6.0 + version: 1.6.0(jsdom@24.0.0) packages/oidc-client-service-worker: devDependencies: '@vitest/coverage-v8': - specifier: 1.5.0 - version: 1.5.0(vitest@1.5.0) + specifier: 1.6.0 + version: 1.6.0(vitest@1.6.0) cpy: specifier: 11.0.1 version: 11.0.1 @@ -222,20 +222,20 @@ importers: specifier: ^5.0.0 version: 5.0.0 rimraf: - specifier: 5.0.5 - version: 5.0.5 + specifier: 5.0.7 + version: 5.0.7 typescript: specifier: 5.4.5 version: 5.4.5 vite: - specifier: 5.2.8 - version: 5.2.8 + specifier: 5.2.11 + version: 5.2.11 vite-plugin-dts: - specifier: 3.8.3 - version: 3.8.3(typescript@5.4.5)(vite@5.2.8) + specifier: 3.9.1 + version: 3.9.1(typescript@5.4.5)(vite@5.2.11) vitest: - specifier: 1.5.0 - version: 1.5.0 + specifier: 1.6.0 + version: 1.6.0(jsdom@24.0.0) packages/react-oidc: dependencies: @@ -247,23 +247,23 @@ importers: version: link:../oidc-client-service-worker devDependencies: '@testing-library/jest-dom': - specifier: 6.4.2 - version: 6.4.2(@types/jest@29.5.12)(vitest@1.5.0) + specifier: 6.4.5 + version: 6.4.5(vitest@1.6.0) '@testing-library/react': - specifier: 15.0.2 - version: 15.0.2(react-dom@18.2.0)(react@18.2.0) + specifier: 15.0.7 + version: 15.0.7(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) '@testing-library/user-event': specifier: 14.5.2 - version: 14.5.2(@testing-library/dom@10.0.0) + version: 14.5.2(@testing-library/dom@10.1.0) '@types/react': - specifier: ^18.2.78 - version: 18.2.78 + specifier: 18.3.2 + version: 18.3.2 '@vitejs/plugin-react': specifier: 4.2.1 - version: 4.2.1(vite@5.2.8) + version: 4.2.1(vite@5.2.11) '@vitest/coverage-v8': - specifier: 1.5.0 - version: 1.5.0(vitest@1.5.0) + specifier: 1.6.0 + version: 1.6.0(vitest@1.6.0) cpy: specifier: 11.0.1 version: 11.0.1 @@ -277,29 +277,29 @@ importers: specifier: 24.0.0 version: 24.0.0 msw: - specifier: 2.2.13 - version: 2.2.13(typescript@5.4.5) + specifier: 2.3.0 + version: 2.3.0(typescript@5.4.5) react: - specifier: ^18.2.0 - version: 18.2.0 + specifier: ^18.3.1 + version: 18.3.1 react-dom: - specifier: ^18.2.0 - version: 18.2.0(react@18.2.0) + specifier: ^18.3.1 + version: 18.3.1(react@18.3.1) rimraf: - specifier: 5.0.5 - version: 5.0.5 + specifier: 5.0.7 + version: 5.0.7 typescript: specifier: 5.4.5 version: 5.4.5 vite: - specifier: 5.2.8 - version: 5.2.8 + specifier: 5.2.11 + version: 5.2.11 vite-plugin-dts: - specifier: 3.8.3 - version: 3.8.3(typescript@5.4.5)(vite@5.2.8) + specifier: 3.9.1 + version: 3.9.1(typescript@5.4.5)(vite@5.2.11) vitest: - specifier: 1.5.0 - version: 1.5.0(jsdom@24.0.0) + specifier: 1.6.0 + version: 1.6.0(jsdom@24.0.0) packages: @@ -560,6 +560,7 @@ packages: cpu: [ppc64] os: [aix] requiresBuild: true + dev: true optional: true /@esbuild/aix-ppc64@0.20.2: @@ -576,6 +577,7 @@ packages: cpu: [arm64] os: [android] requiresBuild: true + dev: true optional: true /@esbuild/android-arm64@0.20.2: @@ -592,6 +594,7 @@ packages: cpu: [arm] os: [android] requiresBuild: true + dev: true optional: true /@esbuild/android-arm@0.20.2: @@ -608,6 +611,7 @@ packages: cpu: [x64] os: [android] requiresBuild: true + dev: true optional: true /@esbuild/android-x64@0.20.2: @@ -624,6 +628,7 @@ packages: cpu: [arm64] os: [darwin] requiresBuild: true + dev: true optional: true /@esbuild/darwin-arm64@0.20.2: @@ -640,6 +645,7 @@ packages: cpu: [x64] os: [darwin] requiresBuild: true + dev: true optional: true /@esbuild/darwin-x64@0.20.2: @@ -656,6 +662,7 @@ packages: cpu: [arm64] os: [freebsd] requiresBuild: true + dev: true optional: true /@esbuild/freebsd-arm64@0.20.2: @@ -672,6 +679,7 @@ packages: cpu: [x64] os: [freebsd] requiresBuild: true + dev: true optional: true /@esbuild/freebsd-x64@0.20.2: @@ -688,6 +696,7 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true + dev: true optional: true /@esbuild/linux-arm64@0.20.2: @@ -704,6 +713,7 @@ packages: cpu: [arm] os: [linux] requiresBuild: true + dev: true optional: true /@esbuild/linux-arm@0.20.2: @@ -720,6 +730,7 @@ packages: cpu: [ia32] os: [linux] requiresBuild: true + dev: true optional: true /@esbuild/linux-ia32@0.20.2: @@ -736,6 +747,7 @@ packages: cpu: [loong64] os: [linux] requiresBuild: true + dev: true optional: true /@esbuild/linux-loong64@0.20.2: @@ -752,6 +764,7 @@ packages: cpu: [mips64el] os: [linux] requiresBuild: true + dev: true optional: true /@esbuild/linux-mips64el@0.20.2: @@ -768,6 +781,7 @@ packages: cpu: [ppc64] os: [linux] requiresBuild: true + dev: true optional: true /@esbuild/linux-ppc64@0.20.2: @@ -784,6 +798,7 @@ packages: cpu: [riscv64] os: [linux] requiresBuild: true + dev: true optional: true /@esbuild/linux-riscv64@0.20.2: @@ -800,6 +815,7 @@ packages: cpu: [s390x] os: [linux] requiresBuild: true + dev: true optional: true /@esbuild/linux-s390x@0.20.2: @@ -816,6 +832,7 @@ packages: cpu: [x64] os: [linux] requiresBuild: true + dev: true optional: true /@esbuild/linux-x64@0.20.2: @@ -832,6 +849,7 @@ packages: cpu: [x64] os: [netbsd] requiresBuild: true + dev: true optional: true /@esbuild/netbsd-x64@0.20.2: @@ -848,6 +866,7 @@ packages: cpu: [x64] os: [openbsd] requiresBuild: true + dev: true optional: true /@esbuild/openbsd-x64@0.20.2: @@ -864,6 +883,7 @@ packages: cpu: [x64] os: [sunos] requiresBuild: true + dev: true optional: true /@esbuild/sunos-x64@0.20.2: @@ -880,6 +900,7 @@ packages: cpu: [arm64] os: [win32] requiresBuild: true + dev: true optional: true /@esbuild/win32-arm64@0.20.2: @@ -896,6 +917,7 @@ packages: cpu: [ia32] os: [win32] requiresBuild: true + dev: true optional: true /@esbuild/win32-ia32@0.20.2: @@ -912,6 +934,7 @@ packages: cpu: [x64] os: [win32] requiresBuild: true + dev: true optional: true /@esbuild/win32-x64@0.20.2: @@ -922,13 +945,13 @@ packages: requiresBuild: true optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@9.0.0): + /@eslint-community/eslint-utils@4.4.0(eslint@9.3.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 9.0.0 + eslint: 9.3.0 eslint-visitor-keys: 3.4.3 dev: true @@ -937,8 +960,8 @@ packages: engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true - /@eslint/eslintrc@3.0.2: - resolution: {integrity: sha512-wV19ZEGEMAC1eHgrS7UQPqsdEiCIbTKTasEfcXAigzoXICcqZSjBZEHlZwNVvKg6UBCjSlos84XiLqsRJnIcIg==} + /@eslint/eslintrc@3.1.0: + resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dependencies: ajv: 6.12.6 @@ -954,13 +977,13 @@ packages: - supports-color dev: true - /@eslint/js@9.0.0: - resolution: {integrity: sha512-RThY/MnKrhubF6+s1JflwUjPEsnCEmYCWwqa/aRISKWNXGZ9epUwft4bUMM35SdKF9xvBrLydAM1RDHd1Z//ZQ==} + /@eslint/js@9.3.0: + resolution: {integrity: sha512-niBqk8iwv96+yuTwjM6bWg8ovzAPF9qkICsGtcoa5/dmqcEMfdwNAX7+/OHcJHc7wj7XqPxH98oAHytFYlw6Sw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dev: true - /@humanwhocodes/config-array@0.12.3: - resolution: {integrity: sha512-jsNnTBlMWuTpDkeE3on7+dWJi0D6fdDfeANj/w7MpS8ztROCoLvIO2nG0CcFj+E4k8j4QrSTh4Oryi3i2G669g==} + /@humanwhocodes/config-array@0.13.0: + resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} engines: {node: '>=10.10.0'} dependencies: '@humanwhocodes/object-schema': 2.0.3 @@ -979,6 +1002,11 @@ packages: resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} dev: true + /@humanwhocodes/retry@0.3.0: + resolution: {integrity: sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==} + engines: {node: '>=18.18'} + dev: true + /@inquirer/confirm@3.1.4: resolution: {integrity: sha512-2z2RC0JyQCmggQfRxFnQitGp8YZgdM/AqcOuLaUtL0dZHFByk5jgtzxECX4z5MsH8aq2WzdLPI2AHmHOkh8eRA==} engines: {node: '>=18'} @@ -1038,6 +1066,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: jest-get-type: 29.6.3 + dev: false /@jest/schemas@29.6.3: resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} @@ -1055,6 +1084,7 @@ packages: '@types/node': 20.11.26 '@types/yargs': 17.0.32 chalk: 4.1.2 + dev: false /@jridgewell/gen-mapping@0.3.3: resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} @@ -1164,8 +1194,8 @@ packages: engines: {node: '>=18'} dev: true - /@mswjs/interceptors@0.26.15: - resolution: {integrity: sha512-HM47Lu1YFmnYHKMBynFfjCp0U/yRskHj/8QEJW0CBEPOlw8Gkmjfll+S9b8M7V5CNDw2/ciRxjjnWeaCiblSIQ==} + /@mswjs/interceptors@0.29.1: + resolution: {integrity: sha512-3rDakgJZ77+RiQUuSK69t1F0m8BQKA8Vh5DCS5V0DWvNY67zob2JhhQrhCO0AKLGINTRSFd1tBaHcJTkhefoSw==} engines: {node: '>=18'} dependencies: '@open-draft/deferred-promise': 2.2.0 @@ -1340,6 +1370,7 @@ packages: cpu: [arm] os: [android] requiresBuild: true + dev: true optional: true /@rollup/rollup-android-arm64@4.14.3: @@ -1354,6 +1385,7 @@ packages: cpu: [arm64] os: [android] requiresBuild: true + dev: true optional: true /@rollup/rollup-darwin-arm64@4.14.3: @@ -1368,6 +1400,7 @@ packages: cpu: [arm64] os: [darwin] requiresBuild: true + dev: true optional: true /@rollup/rollup-darwin-x64@4.14.3: @@ -1382,6 +1415,7 @@ packages: cpu: [x64] os: [darwin] requiresBuild: true + dev: true optional: true /@rollup/rollup-linux-arm-gnueabihf@4.14.3: @@ -1396,6 +1430,7 @@ packages: cpu: [arm] os: [linux] requiresBuild: true + dev: true optional: true /@rollup/rollup-linux-arm-musleabihf@4.14.3: @@ -1417,6 +1452,7 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true + dev: true optional: true /@rollup/rollup-linux-arm64-musl@4.14.3: @@ -1431,6 +1467,7 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true + dev: true optional: true /@rollup/rollup-linux-powerpc64le-gnu@4.14.3: @@ -1452,6 +1489,7 @@ packages: cpu: [riscv64] os: [linux] requiresBuild: true + dev: true optional: true /@rollup/rollup-linux-s390x-gnu@4.14.3: @@ -1473,6 +1511,7 @@ packages: cpu: [x64] os: [linux] requiresBuild: true + dev: true optional: true /@rollup/rollup-linux-x64-musl@4.14.3: @@ -1487,6 +1526,7 @@ packages: cpu: [x64] os: [linux] requiresBuild: true + dev: true optional: true /@rollup/rollup-win32-arm64-msvc@4.14.3: @@ -1501,6 +1541,7 @@ packages: cpu: [arm64] os: [win32] requiresBuild: true + dev: true optional: true /@rollup/rollup-win32-ia32-msvc@4.14.3: @@ -1515,6 +1556,7 @@ packages: cpu: [ia32] os: [win32] requiresBuild: true + dev: true optional: true /@rollup/rollup-win32-x64-msvc@4.14.3: @@ -1529,6 +1571,7 @@ packages: cpu: [x64] os: [win32] requiresBuild: true + dev: true optional: true /@rushstack/node-core-library@3.62.0: @@ -1619,8 +1662,8 @@ packages: tslib: 2.6.2 dev: false - /@testing-library/dom@10.0.0: - resolution: {integrity: sha512-PmJPnogldqoVFf+EwbHvbBJ98MmqASV8kLrBYgsDNxQcFMeIS7JFL48sfyXvuMtgmWO/wMhh25odr+8VhDmn4g==} + /@testing-library/dom@10.1.0: + resolution: {integrity: sha512-wdsYKy5zupPyLCW2Je5DLHSxSfbIp6h80WoHOQc+RPtmPGA52O9x5MJEkv92Sjonpq+poOAtUKhh1kBGAXBrNA==} engines: {node: '>=18'} dependencies: '@babel/code-frame': 7.23.5 @@ -1646,7 +1689,7 @@ packages: pretty-format: 27.5.1 dev: true - /@testing-library/jest-dom@6.4.2(@types/jest@29.5.12)(vitest@1.5.0): + /@testing-library/jest-dom@6.4.2(@types/jest@29.5.12)(vitest@1.6.0): resolution: {integrity: sha512-CzqH0AFymEMG48CpzXFriYYkOjk6ZGPCLMhW9e9jg3KMCn5OfJecF8GtGW7yGfR/IgCe3SX8BSwjdzI6BBbZLw==} engines: {node: '>=14', npm: '>=6', yarn: '>=1'} peerDependencies: @@ -1676,7 +1719,8 @@ packages: dom-accessibility-api: 0.6.3 lodash: 4.17.21 redent: 3.0.0 - vitest: 1.5.0 + vitest: 1.6.0(jsdom@24.0.0) + dev: false /@testing-library/jest-dom@6.4.2(vitest@1.3.1): resolution: {integrity: sha512-CzqH0AFymEMG48CpzXFriYYkOjk6ZGPCLMhW9e9jg3KMCn5OfJecF8GtGW7yGfR/IgCe3SX8BSwjdzI6BBbZLw==} @@ -1710,6 +1754,38 @@ packages: vitest: 1.3.1(jsdom@24.0.0) dev: true + /@testing-library/jest-dom@6.4.5(vitest@1.6.0): + resolution: {integrity: sha512-AguB9yvTXmCnySBP1lWjfNNUwpbElsaQ567lt2VdGqAdHtpieLgjmcVyv1q7PMIvLbgpDdkWV5Ydv3FEejyp2A==} + engines: {node: '>=14', npm: '>=6', yarn: '>=1'} + peerDependencies: + '@jest/globals': '>= 28' + '@types/bun': latest + '@types/jest': '>= 28' + jest: '>= 28' + vitest: '>= 0.32' + peerDependenciesMeta: + '@jest/globals': + optional: true + '@types/bun': + optional: true + '@types/jest': + optional: true + jest: + optional: true + vitest: + optional: true + dependencies: + '@adobe/css-tools': 4.3.3 + '@babel/runtime': 7.23.9 + aria-query: 5.3.0 + chalk: 3.0.0 + css.escape: 1.5.1 + dom-accessibility-api: 0.6.3 + lodash: 4.17.21 + redent: 3.0.0 + vitest: 1.6.0(jsdom@24.0.0) + dev: true + /@testing-library/react@14.2.1(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-sGdjws32ai5TLerhvzThYFbpnF9XtL65Cjf+gB0Dhr29BGqK+mAeN7SURSdu+eqgET4ANcWoC7FQpkaiGvBr+A==} engines: {node: '>=14'} @@ -1724,27 +1800,32 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: true - /@testing-library/react@15.0.2(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-5mzIpuytB1ctpyywvyaY2TAAUQVCZIGqwiqFQf6u9lvj/SJQepGUzNV18Xpk+NLCaCE2j7CWrZE0tEf9xLZYiQ==} + /@testing-library/react@15.0.7(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-cg0RvEdD1TIhhkm1IeYMQxrzy0MtUNfa3minv4MjbgcYzJAZ7yD0i0lwoPOTPr+INtiXFezt2o8xMSnyHhEn2Q==} engines: {node: '>=18'} peerDependencies: + '@types/react': ^18.0.0 react: ^18.0.0 react-dom: ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true dependencies: '@babel/runtime': 7.23.9 - '@testing-library/dom': 10.0.0 + '@testing-library/dom': 10.1.0 + '@types/react': 18.3.2 '@types/react-dom': 18.2.7 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) dev: true - /@testing-library/user-event@14.5.2(@testing-library/dom@10.0.0): + /@testing-library/user-event@14.5.2(@testing-library/dom@10.1.0): resolution: {integrity: sha512-YAh82Wh4TIrxYLmfGcixwD18oIjyC1pFQC2Y01F2lzV2HTMiYrI0nze0FD0ocB//CKS/7jIUgae+adPqxK5yCQ==} engines: {node: '>=12', npm: '>=6'} peerDependencies: '@testing-library/dom': '>=7.21.4' dependencies: - '@testing-library/dom': 10.0.0 + '@testing-library/dom': 10.1.0 /@types/argparse@1.0.38: resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} @@ -1791,22 +1872,26 @@ packages: /@types/istanbul-lib-coverage@2.0.6: resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} + dev: false /@types/istanbul-lib-report@3.0.3: resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} dependencies: '@types/istanbul-lib-coverage': 2.0.6 + dev: false /@types/istanbul-reports@3.0.4: resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} dependencies: '@types/istanbul-lib-report': 3.0.3 + dev: false /@types/jest@29.5.12: resolution: {integrity: sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==} dependencies: expect: 29.7.0 pretty-format: 29.7.0 + dev: false /@types/json-schema@7.0.15: resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} @@ -1840,7 +1925,7 @@ packages: /@types/react-dom@18.2.7: resolution: {integrity: sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA==} dependencies: - '@types/react': 18.2.78 + '@types/react': 18.3.2 dev: true /@types/react@18.2.65: @@ -1851,8 +1936,8 @@ packages: csstype: 3.1.2 dev: true - /@types/react@18.2.78: - resolution: {integrity: sha512-qOwdPnnitQY4xKlKayt42q5W5UQrSHjgoXNVEtxeqdITJ99k4VXJOP3vt8Rkm9HmgJpH50UNU+rlqfkfWOqp0A==} + /@types/react@18.3.2: + resolution: {integrity: sha512-Btgg89dAnqD4vV7R3hlwOxgqobUQKgx3MmrQRi0yYbs/P0ym8XozIAlkqVilPqHQwXs4e9Tf63rrCgl58BcO4w==} dependencies: '@types/prop-types': 15.7.5 csstype: 3.1.2 @@ -1866,12 +1951,9 @@ packages: resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} dev: true - /@types/semver@7.5.8: - resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} - dev: true - /@types/stack-utils@2.0.3: resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} + dev: false /@types/statuses@2.0.4: resolution: {integrity: sha512-eqNDvZsCNY49OAXB0Firg/Sc2BgoWsntsLUdybGFOhAfCD6QJ2n9HXUIHGqt5qjrxmMv4wS8WLAw43ZkKcJ8Pw==} @@ -1883,14 +1965,16 @@ packages: /@types/yargs-parser@21.0.3: resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} + dev: false /@types/yargs@17.0.32: resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==} dependencies: '@types/yargs-parser': 21.0.3 + dev: false - /@typescript-eslint/eslint-plugin@7.7.0(@typescript-eslint/parser@7.7.0)(eslint@9.0.0)(typescript@5.4.5): - resolution: {integrity: sha512-GJWR0YnfrKnsRoluVO3PRb9r5aMZriiMMM/RHj5nnTrBy1/wIgk76XCtCKcnXGjpZQJQRFtGV9/0JJ6n30uwpQ==} + /@typescript-eslint/eslint-plugin@7.9.0(@typescript-eslint/parser@7.9.0)(eslint@9.3.0)(typescript@5.4.5): + resolution: {integrity: sha512-6e+X0X3sFe/G/54aC3jt0txuMTURqLyekmEHViqyA2VnxhLMpvA6nqmcjIy+Cr9tLDHPssA74BP5Mx9HQIxBEA==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: '@typescript-eslint/parser': ^7.0.0 @@ -1901,25 +1985,23 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 7.7.0(eslint@9.0.0)(typescript@5.4.5) - '@typescript-eslint/scope-manager': 7.7.0 - '@typescript-eslint/type-utils': 7.7.0(eslint@9.0.0)(typescript@5.4.5) - '@typescript-eslint/utils': 7.7.0(eslint@9.0.0)(typescript@5.4.5) - '@typescript-eslint/visitor-keys': 7.7.0 - debug: 4.3.4 - eslint: 9.0.0 + '@typescript-eslint/parser': 7.9.0(eslint@9.3.0)(typescript@5.4.5) + '@typescript-eslint/scope-manager': 7.9.0 + '@typescript-eslint/type-utils': 7.9.0(eslint@9.3.0)(typescript@5.4.5) + '@typescript-eslint/utils': 7.9.0(eslint@9.3.0)(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 7.9.0 + eslint: 9.3.0 graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 - semver: 7.6.0 ts-api-utils: 1.3.0(typescript@5.4.5) typescript: 5.4.5 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@7.7.0(eslint@9.0.0)(typescript@5.4.5): - resolution: {integrity: sha512-fNcDm3wSwVM8QYL4HKVBggdIPAy9Q41vcvC/GtDobw3c4ndVT3K6cqudUmjHPw8EAp4ufax0o58/xvWaP2FmTg==} + /@typescript-eslint/parser@7.9.0(eslint@9.3.0)(typescript@5.4.5): + resolution: {integrity: sha512-qHMJfkL5qvgQB2aLvhUSXxbK7OLnDkwPzFalg458pxQgfxKDfT1ZDbHQM/I6mDIf/svlMkj21kzKuQ2ixJlatQ==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -1928,12 +2010,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 7.7.0 - '@typescript-eslint/types': 7.7.0 - '@typescript-eslint/typescript-estree': 7.7.0(typescript@5.4.5) - '@typescript-eslint/visitor-keys': 7.7.0 + '@typescript-eslint/scope-manager': 7.9.0 + '@typescript-eslint/types': 7.9.0 + '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 7.9.0 debug: 4.3.4 - eslint: 9.0.0 + eslint: 9.3.0 typescript: 5.4.5 transitivePeerDependencies: - supports-color @@ -1947,16 +2029,16 @@ packages: '@typescript-eslint/visitor-keys': 5.62.0 dev: true - /@typescript-eslint/scope-manager@7.7.0: - resolution: {integrity: sha512-/8INDn0YLInbe9Wt7dK4cXLDYp0fNHP5xKLHvZl3mOT5X17rK/YShXaiNmorl+/U4VKCVIjJnx4Ri5b0y+HClw==} + /@typescript-eslint/scope-manager@7.9.0: + resolution: {integrity: sha512-ZwPK4DeCDxr3GJltRz5iZejPFAAr4Wk3+2WIBaj1L5PYK5RgxExu/Y68FFVclN0y6GGwH8q+KgKRCvaTmFBbgQ==} engines: {node: ^18.18.0 || >=20.0.0} dependencies: - '@typescript-eslint/types': 7.7.0 - '@typescript-eslint/visitor-keys': 7.7.0 + '@typescript-eslint/types': 7.9.0 + '@typescript-eslint/visitor-keys': 7.9.0 dev: true - /@typescript-eslint/type-utils@7.7.0(eslint@9.0.0)(typescript@5.4.5): - resolution: {integrity: sha512-bOp3ejoRYrhAlnT/bozNQi3nio9tIgv3U5C0mVDdZC7cpcQEDZXvq8inrHYghLVwuNABRqrMW5tzAv88Vy77Sg==} + /@typescript-eslint/type-utils@7.9.0(eslint@9.3.0)(typescript@5.4.5): + resolution: {integrity: sha512-6Qy8dfut0PFrFRAZsGzuLoM4hre4gjzWJB6sUvdunCYZsYemTkzZNwF1rnGea326PHPT3zn5Lmg32M/xfJfByA==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -1965,10 +2047,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 7.7.0(typescript@5.4.5) - '@typescript-eslint/utils': 7.7.0(eslint@9.0.0)(typescript@5.4.5) + '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.4.5) + '@typescript-eslint/utils': 7.9.0(eslint@9.3.0)(typescript@5.4.5) debug: 4.3.4 - eslint: 9.0.0 + eslint: 9.3.0 ts-api-utils: 1.3.0(typescript@5.4.5) typescript: 5.4.5 transitivePeerDependencies: @@ -1980,8 +2062,8 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/types@7.7.0: - resolution: {integrity: sha512-G01YPZ1Bd2hn+KPpIbrAhEWOn5lQBrjxkzHkWvP6NucMXFtfXoevK82hzQdpfuQYuhkvFDeQYbzXCjR1z9Z03w==} + /@typescript-eslint/types@7.9.0: + resolution: {integrity: sha512-oZQD9HEWQanl9UfsbGVcZ2cGaR0YT5476xfWE0oE5kQa2sNK2frxOlkeacLOTh9po4AlUT5rtkGyYM5kew0z5w==} engines: {node: ^18.18.0 || >=20.0.0} dev: true @@ -2006,8 +2088,8 @@ packages: - supports-color dev: true - /@typescript-eslint/typescript-estree@7.7.0(typescript@5.4.5): - resolution: {integrity: sha512-8p71HQPE6CbxIBy2kWHqM1KGrC07pk6RJn40n0DSc6bMOBBREZxSDJ+BmRzc8B5OdaMh1ty3mkuWRg4sCFiDQQ==} + /@typescript-eslint/typescript-estree@7.9.0(typescript@5.4.5): + resolution: {integrity: sha512-zBCMCkrb2YjpKV3LA0ZJubtKCDxLttxfdGmwZvTqqWevUPN0FZvSI26FalGFFUZU/9YQK/A4xcQF9o/VVaCKAg==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: typescript: '*' @@ -2015,8 +2097,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 7.7.0 - '@typescript-eslint/visitor-keys': 7.7.0 + '@typescript-eslint/types': 7.9.0 + '@typescript-eslint/visitor-keys': 7.9.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -2028,19 +2110,19 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@5.62.0(eslint@9.0.0)(typescript@5.4.5): + /@typescript-eslint/utils@5.62.0(eslint@9.3.0)(typescript@5.4.5): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.3.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.6 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.4.5) - eslint: 9.0.0 + eslint: 9.3.0 eslint-scope: 5.1.1 semver: 7.6.0 transitivePeerDependencies: @@ -2048,20 +2130,17 @@ packages: - typescript dev: true - /@typescript-eslint/utils@7.7.0(eslint@9.0.0)(typescript@5.4.5): - resolution: {integrity: sha512-LKGAXMPQs8U/zMRFXDZOzmMKgFv3COlxUQ+2NMPhbqgVm6R1w+nU1i4836Pmxu9jZAuIeyySNrN/6Rc657ggig==} + /@typescript-eslint/utils@7.9.0(eslint@9.3.0)(typescript@5.4.5): + resolution: {integrity: sha512-5KVRQCzZajmT4Ep+NEgjXCvjuypVvYHUW7RHlXzNPuak2oWpVoD1jf5xCP0dPAuNIchjC7uQyvbdaSTFaLqSdA==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0) - '@types/json-schema': 7.0.15 - '@types/semver': 7.5.8 - '@typescript-eslint/scope-manager': 7.7.0 - '@typescript-eslint/types': 7.7.0 - '@typescript-eslint/typescript-estree': 7.7.0(typescript@5.4.5) - eslint: 9.0.0 - semver: 7.6.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.3.0) + '@typescript-eslint/scope-manager': 7.9.0 + '@typescript-eslint/types': 7.9.0 + '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.4.5) + eslint: 9.3.0 transitivePeerDependencies: - supports-color - typescript @@ -2075,11 +2154,11 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@typescript-eslint/visitor-keys@7.7.0: - resolution: {integrity: sha512-h0WHOj8MhdhY8YWkzIF30R379y0NqyOHExI9N9KCzvmu05EgG4FumeYa3ccfKUSphyWkWQE1ybVrgz/Pbam6YA==} + /@typescript-eslint/visitor-keys@7.9.0: + resolution: {integrity: sha512-iESPx2TNLDNGQLyjKhUvIKprlP49XNEK+MvIf9nIO7ZZaZdbnfWKHnXAgufpxqfA0YryH8XToi4+CjBgVnFTSQ==} engines: {node: ^18.18.0 || >=20.0.0} dependencies: - '@typescript-eslint/types': 7.7.0 + '@typescript-eslint/types': 7.9.0 eslint-visitor-keys: 3.4.3 dev: true @@ -2099,7 +2178,7 @@ packages: - supports-color dev: true - /@vitejs/plugin-react@4.2.1(vite@5.2.8): + /@vitejs/plugin-react@4.2.1(vite@5.2.11): resolution: {integrity: sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -2110,15 +2189,15 @@ packages: '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.23.9) '@types/babel__core': 7.20.5 react-refresh: 0.14.0 - vite: 5.2.8 + vite: 5.2.11 transitivePeerDependencies: - supports-color dev: true - /@vitest/coverage-v8@1.5.0(vitest@1.5.0): - resolution: {integrity: sha512-1igVwlcqw1QUMdfcMlzzY4coikSIBN944pkueGi0pawrX5I5Z+9hxdTR+w3Sg6Q3eZhvdMAs8ZaF9JuTG1uYOQ==} + /@vitest/coverage-v8@1.6.0(vitest@1.6.0): + resolution: {integrity: sha512-KvapcbMY/8GYIG0rlwwOKCVNRc0OL20rrhFkg/CHNzncV03TE2XWvO5w9uZYoxNiMEBacAJt3unSOiZ7svePew==} peerDependencies: - vitest: 1.5.0 + vitest: 1.6.0 dependencies: '@ampproject/remapping': 2.2.1 '@bcoe/v8-coverage': 0.2.3 @@ -2127,13 +2206,13 @@ packages: istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 5.0.4 istanbul-reports: 3.1.6 - magic-string: 0.30.7 + magic-string: 0.30.9 magicast: 0.3.3 picocolors: 1.0.0 std-env: 3.7.0 strip-literal: 2.0.0 test-exclude: 6.0.0 - vitest: 1.5.0 + vitest: 1.6.0(jsdom@24.0.0) transitivePeerDependencies: - supports-color dev: true @@ -2146,11 +2225,11 @@ packages: chai: 4.4.1 dev: true - /@vitest/expect@1.5.0: - resolution: {integrity: sha512-0pzuCI6KYi2SIC3LQezmxujU9RK/vwC1U9R0rLuGlNGcOuDWxqWKu6nUdFsX9tH1WU0SXtAxToOsEjeUn1s3hA==} + /@vitest/expect@1.6.0: + resolution: {integrity: sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==} dependencies: - '@vitest/spy': 1.5.0 - '@vitest/utils': 1.5.0 + '@vitest/spy': 1.6.0 + '@vitest/utils': 1.6.0 chai: 4.4.1 /@vitest/runner@1.3.1: @@ -2161,10 +2240,10 @@ packages: pathe: 1.1.2 dev: true - /@vitest/runner@1.5.0: - resolution: {integrity: sha512-7HWwdxXP5yDoe7DTpbif9l6ZmDwCzcSIK38kTSIt6CFEpMjX4EpCgT6wUmS0xTXqMI6E/ONmfgRKmaujpabjZQ==} + /@vitest/runner@1.6.0: + resolution: {integrity: sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==} dependencies: - '@vitest/utils': 1.5.0 + '@vitest/utils': 1.6.0 p-limit: 5.0.0 pathe: 1.1.2 @@ -2176,8 +2255,8 @@ packages: pretty-format: 29.7.0 dev: true - /@vitest/snapshot@1.5.0: - resolution: {integrity: sha512-qpv3fSEuNrhAO3FpH6YYRdaECnnRjg9VxbhdtPwPRnzSfHVXnNzzrpX4cJxqiwgRMo7uRMWDFBlsBq4Cr+rO3A==} + /@vitest/snapshot@1.6.0: + resolution: {integrity: sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==} dependencies: magic-string: 0.30.9 pathe: 1.1.2 @@ -2189,8 +2268,8 @@ packages: tinyspy: 2.2.0 dev: true - /@vitest/spy@1.5.0: - resolution: {integrity: sha512-vu6vi6ew5N5MMHJjD5PoakMRKYdmIrNJmyfkhRpQt5d9Ewhw9nZ5Aqynbi3N61bvk9UvZ5UysMT6ayIrZ8GA9w==} + /@vitest/spy@1.6.0: + resolution: {integrity: sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==} dependencies: tinyspy: 2.2.0 @@ -2203,8 +2282,8 @@ packages: pretty-format: 29.7.0 dev: true - /@vitest/utils@1.5.0: - resolution: {integrity: sha512-BDU0GNL8MWkRkSRdNFvCUCAVOeHaUlVJ9Tx0TYBZyXaaOTmGtUFObzchCivIBrIwKzvZA7A9sCejVhXM2aY98A==} + /@vitest/utils@1.6.0: + resolution: {integrity: sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==} dependencies: diff-sequences: 29.6.3 estree-walker: 3.0.3 @@ -2315,7 +2394,6 @@ packages: debug: 4.3.4 transitivePeerDependencies: - supports-color - dev: true /aggregate-error@4.0.1: resolution: {integrity: sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==} @@ -2523,7 +2601,6 @@ packages: /asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - dev: true /available-typed-arrays@1.0.6: resolution: {integrity: sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg==} @@ -2672,6 +2749,7 @@ packages: /ci-info@3.9.0: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} + dev: false /clean-stack@4.2.0: resolution: {integrity: sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==} @@ -2738,7 +2816,6 @@ packages: engines: {node: '>= 0.8'} dependencies: delayed-stream: 1.0.0 - dev: true /commander@9.5.0: resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} @@ -2862,7 +2939,6 @@ packages: engines: {node: '>=18'} dependencies: rrweb-cssom: 0.6.0 - dev: true /csstype@3.1.2: resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} @@ -2878,7 +2954,6 @@ packages: dependencies: whatwg-mimetype: 4.0.0 whatwg-url: 14.0.0 - dev: true /data-view-buffer@1.0.1: resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} @@ -2935,7 +3010,6 @@ packages: /decimal.js@10.4.3: resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} - dev: true /deep-eql@4.1.3: resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} @@ -3000,7 +3074,6 @@ packages: /delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} - dev: true /dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} @@ -3057,7 +3130,6 @@ packages: /entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} - dev: true /es-abstract@1.22.3: resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==} @@ -3294,6 +3366,7 @@ packages: '@esbuild/win32-arm64': 0.19.12 '@esbuild/win32-ia32': 0.19.12 '@esbuild/win32-x64': 0.19.12 + dev: true /esbuild@0.20.2: resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} @@ -3337,6 +3410,7 @@ packages: /escape-string-regexp@2.0.0: resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} engines: {node: '>=8'} + dev: false /escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} @@ -3348,22 +3422,22 @@ packages: engines: {node: '>=12'} dev: true - /eslint-compat-utils@0.1.2(eslint@9.0.0): + /eslint-compat-utils@0.1.2(eslint@9.3.0): resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==} engines: {node: '>=12'} peerDependencies: eslint: '>=6.0.0' dependencies: - eslint: 9.0.0 + eslint: 9.3.0 dev: true - /eslint-config-prettier@9.1.0(eslint@9.0.0): + /eslint-config-prettier@9.1.0(eslint@9.3.0): resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 9.0.0 + eslint: 9.3.0 dev: true /eslint-define-config@2.1.0: @@ -3381,7 +3455,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@7.7.0)(eslint-import-resolver-node@0.3.9)(eslint@9.0.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@7.9.0)(eslint-import-resolver-node@0.3.9)(eslint@9.3.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -3402,27 +3476,27 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 7.7.0(eslint@9.0.0)(typescript@5.4.5) + '@typescript-eslint/parser': 7.9.0(eslint@9.3.0)(typescript@5.4.5) debug: 3.2.7 - eslint: 9.0.0 + eslint: 9.3.0 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-es-x@7.5.0(eslint@9.0.0): + /eslint-plugin-es-x@7.5.0(eslint@9.3.0): resolution: {integrity: sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '>=8' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.3.0) '@eslint-community/regexpp': 4.10.0 - eslint: 9.0.0 - eslint-compat-utils: 0.1.2(eslint@9.0.0) + eslint: 9.3.0 + eslint-compat-utils: 0.1.2(eslint@9.3.0) dev: true - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.7.0)(eslint@9.0.0): + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.9.0)(eslint@9.3.0): resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} engines: {node: '>=4'} peerDependencies: @@ -3432,16 +3506,16 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 7.7.0(eslint@9.0.0)(typescript@5.4.5) + '@typescript-eslint/parser': 7.9.0(eslint@9.3.0)(typescript@5.4.5) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 array.prototype.flatmap: 1.3.2 debug: 3.2.7 doctrine: 2.1.0 - eslint: 9.0.0 + eslint: 9.3.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.7.0)(eslint-import-resolver-node@0.3.9)(eslint@9.0.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.9.0)(eslint-import-resolver-node@0.3.9)(eslint@9.3.0) hasown: 2.0.0 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -3457,7 +3531,7 @@ packages: - supports-color dev: true - /eslint-plugin-jsx-a11y@6.8.0(eslint@9.0.0): + /eslint-plugin-jsx-a11y@6.8.0(eslint@9.3.0): resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==} engines: {node: '>=4.0'} peerDependencies: @@ -3473,7 +3547,7 @@ packages: damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 es-iterator-helpers: 1.0.15 - eslint: 9.0.0 + eslint: 9.3.0 hasown: 2.0.0 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 @@ -3482,20 +3556,20 @@ packages: object.fromentries: 2.0.7 dev: true - /eslint-plugin-n@17.2.1(eslint@9.0.0): - resolution: {integrity: sha512-uW1+df2bo06kR7ix6nB614RUlvjRPrYxlaX832O6e1MCJp4V7YozEdvMgCYuvn4ltnjPu1FVYhQ2KRrmTNoJfg==} + /eslint-plugin-n@17.7.0(eslint@9.3.0): + resolution: {integrity: sha512-4Jg4ZKVE4VjHig2caBqPHYNW5na84RVufUuipFLJbgM/G57O6FdpUKJbHakCDJb/yjQuyqVzYWRtU3HNYaZUwg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: '>=8.23.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.3.0) enhanced-resolve: 5.16.0 - eslint: 9.0.0 - eslint-plugin-es-x: 7.5.0(eslint@9.0.0) + eslint: 9.3.0 + eslint-plugin-es-x: 7.5.0(eslint@9.3.0) get-tsconfig: 4.7.2 - globals: 14.0.0 + globals: 15.2.0 ignore: 5.3.1 - minimatch: 9.0.3 + minimatch: 9.0.4 semver: 7.6.0 dev: true @@ -3504,7 +3578,7 @@ packages: engines: {node: '>=5.0.0'} dev: true - /eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0)(eslint@9.0.0)(prettier@3.2.5): + /eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0)(eslint@9.3.0)(prettier@3.2.5): resolution: {integrity: sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -3518,23 +3592,23 @@ packages: eslint-config-prettier: optional: true dependencies: - eslint: 9.0.0 - eslint-config-prettier: 9.1.0(eslint@9.0.0) + eslint: 9.3.0 + eslint-config-prettier: 9.1.0(eslint@9.3.0) prettier: 3.2.5 prettier-linter-helpers: 1.0.0 synckit: 0.8.8 dev: true - /eslint-plugin-react-hooks@4.6.0(eslint@9.0.0): - resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} + /eslint-plugin-react-hooks@4.6.2(eslint@9.3.0): + resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: - eslint: 9.0.0 + eslint: 9.3.0 dev: true - /eslint-plugin-react@7.34.1(eslint@9.0.0): + /eslint-plugin-react@7.34.1(eslint@9.3.0): resolution: {integrity: sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==} engines: {node: '>=4'} peerDependencies: @@ -3547,7 +3621,7 @@ packages: array.prototype.tosorted: 1.1.3 doctrine: 2.1.0 es-iterator-helpers: 1.0.18 - eslint: 9.0.0 + eslint: 9.3.0 estraverse: 5.3.0 jsx-ast-utils: 3.3.5 minimatch: 3.1.2 @@ -3561,38 +3635,38 @@ packages: string.prototype.matchall: 4.0.10 dev: true - /eslint-plugin-regexp@2.5.0(eslint@9.0.0): + /eslint-plugin-regexp@2.5.0(eslint@9.3.0): resolution: {integrity: sha512-I7vKcP0o75WS5SHiVNXN+Eshq49sbrweMQIuqSL3AId9AwDe9Dhbfug65vw64LxmOd4v+yf5l5Xt41y9puiq0g==} engines: {node: ^18 || >=20} peerDependencies: eslint: '>=8.44.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.3.0) '@eslint-community/regexpp': 4.10.0 comment-parser: 1.4.1 - eslint: 9.0.0 + eslint: 9.3.0 jsdoc-type-pratt-parser: 4.0.0 refa: 0.12.1 regexp-ast-analysis: 0.7.1 scslre: 0.3.0 dev: true - /eslint-plugin-simple-import-sort@12.1.0(eslint@9.0.0): + /eslint-plugin-simple-import-sort@12.1.0(eslint@9.3.0): resolution: {integrity: sha512-Y2fqAfC11TcG/WP3TrI1Gi3p3nc8XJyEOJYHyEPEGI/UAgNx6akxxlX74p7SbAQdLcgASKhj8M0GKvH3vq/+ig==} peerDependencies: eslint: '>=5.0.0' dependencies: - eslint: 9.0.0 + eslint: 9.3.0 dev: true - /eslint-plugin-testing-library@6.2.2(eslint@9.0.0)(typescript@5.4.5): + /eslint-plugin-testing-library@6.2.2(eslint@9.3.0)(typescript@5.4.5): resolution: {integrity: sha512-1E94YOTUDnOjSLyvOwmbVDzQi/WkKm3WVrMXu6SmBr6DN95xTGZmI6HJ/eOkSXh/DlheRsxaPsJvZByDBhWLVQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0, npm: '>=6'} peerDependencies: eslint: ^7.5.0 || ^8.0.0 dependencies: - '@typescript-eslint/utils': 5.62.0(eslint@9.0.0)(typescript@5.4.5) - eslint: 9.0.0 + '@typescript-eslint/utils': 5.62.0(eslint@9.3.0)(typescript@5.4.5) + eslint: 9.3.0 transitivePeerDependencies: - supports-color - typescript @@ -3624,17 +3698,18 @@ packages: engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dev: true - /eslint@9.0.0: - resolution: {integrity: sha512-IMryZ5SudxzQvuod6rUdIUz29qFItWx281VhtFVc2Psy/ZhlCeD/5DT6lBIJ4H3G+iamGJoTln1v+QSuPw0p7Q==} + /eslint@9.3.0: + resolution: {integrity: sha512-5Iv4CsZW030lpUqHBapdPo3MJetAPtejVW8B84GIcIIv8+ohFaddXsrn1Gn8uD9ijDb+kcYKFUVmC8qG8B2ORQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.3.0) '@eslint-community/regexpp': 4.10.0 - '@eslint/eslintrc': 3.0.2 - '@eslint/js': 9.0.0 - '@humanwhocodes/config-array': 0.12.3 + '@eslint/eslintrc': 3.1.0 + '@eslint/js': 9.3.0 + '@humanwhocodes/config-array': 0.13.0 '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.3.0 '@nodelib/fs.walk': 1.2.8 ajv: 6.12.6 chalk: 4.1.2 @@ -3650,7 +3725,6 @@ packages: file-entry-cache: 8.0.0 find-up: 5.0.0 glob-parent: 6.0.2 - graphemer: 1.4.0 ignore: 5.3.1 imurmurhash: 0.1.4 is-glob: 4.0.3 @@ -3737,6 +3811,7 @@ packages: jest-matcher-utils: 29.7.0 jest-message-util: 29.7.0 jest-util: 29.7.0 + dev: false /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -3825,7 +3900,6 @@ packages: asynckit: 0.4.0 combined-stream: 1.0.8 mime-types: 2.1.35 - dev: true /fs-extra@7.0.1: resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} @@ -3927,6 +4001,12 @@ packages: resolve-pkg-maps: 1.0.0 dev: true + /get-tsconfig@4.7.5: + resolution: {integrity: sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==} + dependencies: + resolve-pkg-maps: 1.0.0 + dev: true + /glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -3974,6 +4054,11 @@ packages: engines: {node: '>=18'} dev: true + /globals@15.2.0: + resolution: {integrity: sha512-FQ5YwCHZM3nCmtb5FzEWwdUc9K5d3V/w9mzcz8iGD1gC/aOTHc6PouYu0kkKipNJqHAT7m51sqzQjEjIP+cK0A==} + engines: {node: '>=18'} + dev: true + /globalthis@1.0.3: resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} engines: {node: '>= 0.4'} @@ -4096,7 +4181,6 @@ packages: engines: {node: '>=18'} dependencies: whatwg-encoding: 3.1.1 - dev: true /html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} @@ -4110,7 +4194,6 @@ packages: debug: 4.3.4 transitivePeerDependencies: - supports-color - dev: true /https-proxy-agent@7.0.2: resolution: {integrity: sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==} @@ -4120,7 +4203,6 @@ packages: debug: 4.3.4 transitivePeerDependencies: - supports-color - dev: true /human-signals@5.0.0: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} @@ -4131,7 +4213,6 @@ packages: engines: {node: '>=0.10.0'} dependencies: safer-buffer: 2.1.2 - dev: true /ignore@5.3.1: resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} @@ -4322,7 +4403,6 @@ packages: /is-potential-custom-element-name@1.0.1: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} - dev: true /is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} @@ -4466,10 +4546,12 @@ packages: diff-sequences: 29.6.3 jest-get-type: 29.6.3 pretty-format: 29.7.0 + dev: false /jest-get-type@29.6.3: resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: false /jest-matcher-utils@29.7.0: resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} @@ -4479,6 +4561,7 @@ packages: jest-diff: 29.7.0 jest-get-type: 29.6.3 pretty-format: 29.7.0 + dev: false /jest-message-util@29.7.0: resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} @@ -4493,6 +4576,7 @@ packages: pretty-format: 29.7.0 slash: 3.0.0 stack-utils: 2.0.6 + dev: false /jest-util@29.7.0: resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} @@ -4504,6 +4588,7 @@ packages: ci-info: 3.9.0 graceful-fs: 4.2.11 picomatch: 2.3.1 + dev: false /jju@1.4.0: resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} @@ -4565,7 +4650,6 @@ packages: - bufferutil - supports-color - utf-8-validate - dev: true /jsesc@2.5.2: resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} @@ -4718,6 +4802,7 @@ packages: engines: {node: '>=12'} dependencies: '@jridgewell/sourcemap-codec': 1.4.15 + dev: true /magic-string@0.30.9: resolution: {integrity: sha512-S1+hd+dIrC8EZqKyT9DstTH/0Z+f76kmmvZnkfQVmOpDEF9iVgdYif3Q/pIWHmCoo59bQVGW0kVL3e2nl+9+Sw==} @@ -4763,14 +4848,12 @@ packages: /mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} - dev: true /mime-types@2.1.35: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} dependencies: mime-db: 1.52.0 - dev: true /mimic-fn@4.0.0: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} @@ -4792,13 +4875,6 @@ packages: brace-expansion: 1.1.11 dev: true - /minimatch@9.0.3: - resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} - engines: {node: '>=16 || 14 >=14.17'} - dependencies: - brace-expansion: 2.0.1 - dev: true - /minimatch@9.0.4: resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} engines: {node: '>=16 || 14 >=14.17'} @@ -4836,8 +4912,8 @@ packages: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} dev: true - /msw@2.2.13(typescript@5.4.5): - resolution: {integrity: sha512-ljFf1xZsU0b4zv1l7xzEmC6OZA6yD06hcx0H+dc8V0VypaP3HGYJa1rMLjQbBWl32ptGhcfwcPCWDB1wjmsftw==} + /msw@2.3.0(typescript@5.4.5): + resolution: {integrity: sha512-cDr1q/QTMzaWhY8n9lpGhceY209k29UZtdTgJ3P8Bzne3TSMchX2EM/ldvn4ATLOktpCefCU2gcEgzHc31GTPw==} engines: {node: '>=18'} hasBin: true requiresBuild: true @@ -4851,7 +4927,7 @@ packages: '@bundled-es-modules/statuses': 1.0.1 '@inquirer/confirm': 3.1.4 '@mswjs/cookies': 1.1.0 - '@mswjs/interceptors': 0.26.15 + '@mswjs/interceptors': 0.29.1 '@open-draft/until': 2.1.0 '@types/cookie': 0.6.0 '@types/statuses': 2.0.4 @@ -4889,7 +4965,7 @@ packages: resolution: {integrity: sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==} dev: true - /next@14.1.0(react-dom@18.2.0)(react@18.2.0): + /next@14.1.0(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-wlzrsbfeSU48YQBjZhDzOwhWhGsy+uQycR8bHAOt1LY1bn3zZEcDyHQOEoN3aWzQ8LHCAJ1nqrWCc9XF2+O45Q==} engines: {node: '>=18.17.0'} hasBin: true @@ -4910,9 +4986,9 @@ packages: caniuse-lite: 1.0.30001584 graceful-fs: 4.2.11 postcss: 8.4.31 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - styled-jsx: 5.1.1(react@18.2.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + styled-jsx: 5.1.1(react@18.3.1) optionalDependencies: '@next/swc-darwin-arm64': 14.1.0 '@next/swc-darwin-x64': 14.1.0 @@ -4947,7 +5023,6 @@ packages: /nwsapi@2.2.7: resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==} - dev: true /object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} @@ -5127,7 +5202,6 @@ packages: resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} dependencies: entities: 4.5.0 - dev: true /path-browserify@1.0.1: resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} @@ -5276,16 +5350,13 @@ packages: /psl@1.9.0: resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} - dev: true /punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} - dev: true /querystringify@2.2.0: resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} - dev: true /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -5300,6 +5371,15 @@ packages: react: 18.2.0 scheduler: 0.23.0 + /react-dom@18.3.1(react@18.3.1): + resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} + peerDependencies: + react: ^18.3.1 + dependencies: + loose-envify: 1.4.0 + react: 18.3.1 + scheduler: 0.23.2 + /react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} dev: true @@ -5344,6 +5424,12 @@ packages: dependencies: loose-envify: 1.4.0 + /react@18.3.1: + resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} + engines: {node: '>=0.10.0'} + dependencies: + loose-envify: 1.4.0 + /readable-stream@1.0.34: resolution: {integrity: sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==} dependencies: @@ -5429,7 +5515,6 @@ packages: /requires-port@1.0.0: resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} - dev: true /resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} @@ -5470,9 +5555,9 @@ packages: engines: {iojs: '>=1.0.0', node: '>=0.10.0'} dev: true - /rimraf@5.0.5: - resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==} - engines: {node: '>=14'} + /rimraf@5.0.7: + resolution: {integrity: sha512-nV6YcJo5wbLW77m+8KjH8aB/7/rxQy9SZ0HY5shnwULfS+9nmTtVXAJET5NdZmCzA4fPI/Hm1wo/Po/4mopOdg==} + engines: {node: '>=14.18'} hasBin: true dependencies: glob: 10.3.10 @@ -5524,10 +5609,10 @@ packages: '@rollup/rollup-win32-ia32-msvc': 4.9.6 '@rollup/rollup-win32-x64-msvc': 4.9.6 fsevents: 2.3.3 + dev: true /rrweb-cssom@0.6.0: resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} - dev: true /run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -5579,20 +5664,23 @@ packages: /safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - dev: true /saxes@6.0.0: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} engines: {node: '>=v12.22.7'} dependencies: xmlchars: 2.2.0 - dev: true /scheduler@0.23.0: resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} dependencies: loose-envify: 1.4.0 + /scheduler@0.23.2: + resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + dependencies: + loose-envify: 1.4.0 + /scslre@0.3.0: resolution: {integrity: sha512-3A6sD0WYP7+QrjbfNA2FN3FsOaGGFoekCVgTyypy53gPxhbkCIjtO6YWgdrfM+n/8sI8JeXZOIxsHjMTNxQ4nQ==} engines: {node: ^14.0.0 || >=16.0.0} @@ -5707,6 +5795,7 @@ packages: engines: {node: '>=10'} dependencies: escape-string-regexp: 2.0.0 + dev: false /stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} @@ -5873,7 +5962,7 @@ packages: dependencies: js-tokens: 8.0.3 - /styled-jsx@5.1.1(react@18.2.0): + /styled-jsx@5.1.1(react@18.3.1): resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} engines: {node: '>= 12.0.0'} peerDependencies: @@ -5887,7 +5976,7 @@ packages: optional: true dependencies: client-only: 0.0.1 - react: 18.2.0 + react: 18.3.1 dev: false /supports-color@5.5.0: @@ -5916,7 +6005,6 @@ packages: /symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - dev: true /synckit@0.8.8: resolution: {integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==} @@ -5986,14 +6074,12 @@ packages: punycode: 2.3.1 universalify: 0.2.0 url-parse: 1.5.10 - dev: true /tr46@5.0.0: resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==} engines: {node: '>=18'} dependencies: punycode: 2.3.1 - dev: true /ts-api-utils@1.3.0(typescript@5.4.5): resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} @@ -6030,13 +6116,13 @@ packages: typescript: 5.4.5 dev: true - /tsx@4.7.2: - resolution: {integrity: sha512-BCNd4kz6fz12fyrgCTEdZHGJ9fWTGeUzXmQysh0RVocDY3h4frk05ZNCXSy4kIenF7y/QnrdiVpTsyNRn6vlAw==} + /tsx@4.10.5: + resolution: {integrity: sha512-twDSbf7Gtea4I2copqovUiNTEDrT8XNFXsuHpfGbdpW/z9ZW4fTghzzhAG0WfrCuJmJiOEY1nLIjq4u3oujRWQ==} engines: {node: '>=18.0.0'} hasBin: true dependencies: - esbuild: 0.19.12 - get-tsconfig: 4.7.2 + esbuild: 0.20.2 + get-tsconfig: 4.7.5 optionalDependencies: fsevents: 2.3.3 dev: true @@ -6184,7 +6270,6 @@ packages: /universalify@0.2.0: resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} engines: {node: '>= 4.0.0'} - dev: true /untildify@4.0.0: resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} @@ -6213,7 +6298,6 @@ packages: dependencies: querystringify: 2.2.0 requires-port: 1.0.0 - dev: true /util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} @@ -6233,7 +6317,7 @@ packages: debug: 4.3.4 pathe: 1.1.2 picocolors: 1.0.0 - vite: 5.2.8 + vite: 5.2.11 transitivePeerDependencies: - '@types/node' - less @@ -6245,8 +6329,8 @@ packages: - terser dev: true - /vite-node@1.5.0: - resolution: {integrity: sha512-tV8h6gMj6vPzVCa7l+VGq9lwoJjW8Y79vst8QZZGiuRAfijU+EEWuc0kFpmndQrWhMMhet1jdSF+40KSZUqIIw==} + /vite-node@1.6.0: + resolution: {integrity: sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true dependencies: @@ -6254,7 +6338,7 @@ packages: debug: 4.3.4 pathe: 1.1.2 picocolors: 1.0.0 - vite: 5.2.8 + vite: 5.2.11 transitivePeerDependencies: - '@types/node' - less @@ -6289,8 +6373,8 @@ packages: - supports-color dev: true - /vite-plugin-dts@3.8.3(typescript@5.4.5)(vite@5.2.8): - resolution: {integrity: sha512-yRHiRosQw7MXdOhmcrVI+kRiB8YEShbSxnADNteK4eZGdEoyOkMHihvO5XOAVlOq8ng9sIqu8vVefDK1zcj3qw==} + /vite-plugin-dts@3.9.1(typescript@5.4.5)(vite@5.2.11): + resolution: {integrity: sha512-rVp2KM9Ue22NGWB8dNtWEr+KekN3rIgz1tWD050QnRGlriUCmaDwa7qA5zDEjbXg5lAXhYMSBJtx3q3hQIJZSg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -6306,7 +6390,7 @@ packages: kolorist: 1.8.0 magic-string: 0.30.9 typescript: 5.4.5 - vite: 5.2.8 + vite: 5.2.11 vue-tsc: 1.8.27(typescript@5.4.5) transitivePeerDependencies: - '@types/node' @@ -6347,6 +6431,7 @@ packages: rollup: 4.9.6 optionalDependencies: fsevents: 2.3.3 + dev: true /vite@5.1.6(@types/node@20.11.26): resolution: {integrity: sha512-yYIAZs9nVfRJ/AiOLCA91zzhjsHUgMjB+EigzFb6W2XTLO8JixBCKCjvhKZaye+NKYHCrkv3Oh50dH9EdLU2RA==} @@ -6384,8 +6469,8 @@ packages: fsevents: 2.3.3 dev: true - /vite@5.2.8: - resolution: {integrity: sha512-OyZR+c1CE8yeHw5V5t59aXsUPPVTHMDjEZz8MgguLL/Q7NblxhZUlTu9xSPqlsUO/y+X7dlU05jdhvyycD55DA==} + /vite@5.2.11: + resolution: {integrity: sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -6474,15 +6559,15 @@ packages: - terser dev: true - /vitest@1.5.0: - resolution: {integrity: sha512-d8UKgR0m2kjdxDWX6911uwxout6GHS0XaGH1cksSIVVG8kRlE7G7aBw7myKQCvDI5dT4j7ZMa+l706BIORMDLw==} + /vitest@1.6.0(jsdom@24.0.0): + resolution: {integrity: sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 1.5.0 - '@vitest/ui': 1.5.0 + '@vitest/browser': 1.6.0 + '@vitest/ui': 1.6.0 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -6499,65 +6584,11 @@ packages: jsdom: optional: true dependencies: - '@vitest/expect': 1.5.0 - '@vitest/runner': 1.5.0 - '@vitest/snapshot': 1.5.0 - '@vitest/spy': 1.5.0 - '@vitest/utils': 1.5.0 - acorn-walk: 8.3.2 - chai: 4.4.1 - debug: 4.3.4 - execa: 8.0.1 - local-pkg: 0.5.0 - magic-string: 0.30.7 - pathe: 1.1.2 - picocolors: 1.0.0 - std-env: 3.7.0 - strip-literal: 2.0.0 - tinybench: 2.6.0 - tinypool: 0.8.4 - vite: 5.1.6 - vite-node: 1.5.0 - why-is-node-running: 2.2.2 - transitivePeerDependencies: - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - - /vitest@1.5.0(jsdom@24.0.0): - resolution: {integrity: sha512-d8UKgR0m2kjdxDWX6911uwxout6GHS0XaGH1cksSIVVG8kRlE7G7aBw7myKQCvDI5dT4j7ZMa+l706BIORMDLw==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@edge-runtime/vm': '*' - '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 1.5.0 - '@vitest/ui': 1.5.0 - happy-dom: '*' - jsdom: '*' - peerDependenciesMeta: - '@edge-runtime/vm': - optional: true - '@types/node': - optional: true - '@vitest/browser': - optional: true - '@vitest/ui': - optional: true - happy-dom: - optional: true - jsdom: - optional: true - dependencies: - '@vitest/expect': 1.5.0 - '@vitest/runner': 1.5.0 - '@vitest/snapshot': 1.5.0 - '@vitest/spy': 1.5.0 - '@vitest/utils': 1.5.0 + '@vitest/expect': 1.6.0 + '@vitest/runner': 1.6.0 + '@vitest/snapshot': 1.6.0 + '@vitest/spy': 1.6.0 + '@vitest/utils': 1.6.0 acorn-walk: 8.3.2 chai: 4.4.1 debug: 4.3.4 @@ -6571,8 +6602,8 @@ packages: strip-literal: 2.0.0 tinybench: 2.6.0 tinypool: 0.8.4 - vite: 5.2.8 - vite-node: 1.5.0 + vite: 5.2.11 + vite-node: 1.6.0 why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -6582,7 +6613,6 @@ packages: - sugarss - supports-color - terser - dev: true /vue-template-compiler@2.7.16: resolution: {integrity: sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==} @@ -6620,7 +6650,6 @@ packages: engines: {node: '>=18'} dependencies: xml-name-validator: 5.0.0 - dev: true /web-vitals@3.5.2: resolution: {integrity: sha512-c0rhqNcHXRkY/ogGDJQxZ9Im9D19hDihbzSQJrsioex+KnFgmMzBiy57Z1EjkhX/+OjyBpclDCzz2ITtjokFmg==} @@ -6629,19 +6658,16 @@ packages: /webidl-conversions@7.0.0: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} engines: {node: '>=12'} - dev: true /whatwg-encoding@3.1.1: resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} engines: {node: '>=18'} dependencies: iconv-lite: 0.6.3 - dev: true /whatwg-mimetype@4.0.0: resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} engines: {node: '>=18'} - dev: true /whatwg-url@14.0.0: resolution: {integrity: sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==} @@ -6649,7 +6675,6 @@ packages: dependencies: tr46: 5.0.0 webidl-conversions: 7.0.0 - dev: true /which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} @@ -6767,16 +6792,13 @@ packages: optional: true utf-8-validate: optional: true - dev: true /xml-name-validator@5.0.0: resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} engines: {node: '>=18'} - dev: true /xmlchars@2.2.0: resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} - dev: true /xtend@4.0.2: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} From 8d9fd9550a74a771936f0e686eb31fe271cd912b Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Sun, 19 May 2024 15:24:19 +0200 Subject: [PATCH 265/440] fix(oidc): user loaded 401 when preload true and not serviceworder mode (release) --- examples/react-oidc-demo/src/configurations.ts | 2 +- packages/oidc-client/src/login.ts | 3 --- packages/oidc-client/src/oidc.ts | 3 +++ 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/react-oidc-demo/src/configurations.ts b/examples/react-oidc-demo/src/configurations.ts index 16efca83f..4447f3a8b 100644 --- a/examples/react-oidc-demo/src/configurations.ts +++ b/examples/react-oidc-demo/src/configurations.ts @@ -9,7 +9,7 @@ export const configurationIdentityServer = { authority: 'https://demo.duendesoftware.com', // authority_time_cache_wellknowurl_in_second: 60* 60, refresh_time_before_tokens_expiration_in_second: 40, - service_worker_relative_url: '/OidcServiceWorker.js', + // service_worker_relative_url: '/OidcServiceWorker.js', service_worker_only: false, // storage: localStorage, // silent_login_timeout: 3333000 diff --git a/packages/oidc-client/src/login.ts b/packages/oidc-client/src/login.ts index 4614eebb3..95547c304 100644 --- a/packages/oidc-client/src/login.ts +++ b/packages/oidc-client/src/login.ts @@ -207,9 +207,6 @@ export const loginCallbackAsync = (oidc:Oidc) => async (isSilentSignin = false) } await oidc.startCheckSessionAsync(oidcServerConfiguration.checkSessionIframe, clientId, sessionState, isSilentSignin); - if(configuration.preload_user_info){ - await oidc.userInfoAsync(); - } oidc.publishEvent(eventNames.loginCallbackAsync_end, {}); return { tokens: formattedTokens, diff --git a/packages/oidc-client/src/oidc.ts b/packages/oidc-client/src/oidc.ts index 36f42bc37..b5b8e9079 100644 --- a/packages/oidc-client/src/oidc.ts +++ b/packages/oidc-client/src/oidc.ts @@ -283,6 +283,9 @@ Please checkout that you are using OIDC hook inside a Date: Sun, 19 May 2024 13:27:10 +0000 Subject: [PATCH 266/440] [skip ci] Update to version 7.22.5 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 5f3b16574..ce062d0fe 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.22.4", + "version": "7.22.5", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 37784eb89..5724d3602 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.22.4'; +export default '7.22.5'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 6df062e78..b645e88d7 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.22.4", + "version": "7.22.5", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 37784eb89..5724d3602 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.22.4'; +export default '7.22.5'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 28b1015ed..33db3f1c3 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.22.4", + "version": "7.22.5", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 14fa1410a70b83fd517ce76eec5c94599c082b4f Mon Sep 17 00:00:00 2001 From: GitHub Date: Sun, 19 May 2024 13:27:12 +0000 Subject: [PATCH 267/440] [skip ci] Generate changelog to version 7.22.5 --- CHANGELOG.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e89ca6f8a..b8beee3c3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,12 @@ # Changelog -## 7.22.4 +## 7.22.5 + +- [8d9fd95](https://github.com/AxaFrance/oidc-client/commit/8d9fd9550a74a771936f0e686eb31fe271cd912b) - fix(oidc): user loaded 401 when preload true and not serviceworder mode (release), 2024-05-19 by *Guillaume Chervet* +- [d764b2b](https://github.com/AxaFrance/oidc-client/commit/d764b2bd7319711c49a393c1fd3496d054661065) - refatcor(all): update librairies, 2024-05-18 by *Guillaume Chervet* + + +## v7.22.4 - [64c76e0](https://github.com/AxaFrance/oidc-client/commit/64c76e0b1f4fccf1c0ed93269a0307212be9d661) - feature(oidc):preload user (release) (#1352), 2024-04-23 by *Guillaume Chervet* @@ -311,8 +317,3 @@ - [7a53f73](https://github.com/AxaFrance/oidc-client/commit/7a53f73bf03b85be9248379f21def37ee34bd415) - build(npm): bump @types/react from 18.2.17 to 18.2.39 (#1215), 2023-11-29 by *dependabot[bot]* -## v7.12.6 - -- [55b318e](https://github.com/AxaFrance/oidc-client/commit/55b318e1c31fe6a7d1be106e99b14db35e4f4229) - build(npm): bump @types/node from 18.17.1 to 20.10.1 (#1217), 2023-11-29 by *dependabot[bot]* - - From c49a8572702c485c9a089b0f9aa11eb4bc6e7f1d Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Wed, 22 May 2024 08:42:24 +0200 Subject: [PATCH 268/440] refactor(test): add missing logout test case --- packages/oidc-client/src/logout.spec.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/oidc-client/src/logout.spec.ts b/packages/oidc-client/src/logout.spec.ts index 5d18d8705..c6b9e8ff5 100644 --- a/packages/oidc-client/src/logout.spec.ts +++ b/packages/oidc-client/src/logout.spec.ts @@ -12,6 +12,7 @@ describe('Logout test suite', () => { {logout_tokens_to_invalidate:['refresh_token'],extras:null, expectedResults: ["token=abdc&token_type_hint=refresh_token&client_id=interactive.public.short"], expectedFinalUrl}, {logout_tokens_to_invalidate:['access_token'],extras:null, expectedResults: ["token=abcd&token_type_hint=access_token&client_id=interactive.public.short"], expectedFinalUrl}, {logout_tokens_to_invalidate:[],extras:null, expectedResults: [], expectedFinalUrl}, + {logout_tokens_to_invalidate:[],extras: {"id_token_hint": undefined}, expectedResults: [], expectedFinalUrl: "http://api/connect/endsession?post_logout_redirect_uri=http%3A%2F%2Flocalhost%3A4200%2Flogged_out" }, {logout_tokens_to_invalidate:[],extras: {"no_reload:oidc":"true"}, expectedResults: [], expectedFinalUrl:""}, {logout_tokens_to_invalidate:['refresh_token'],extras:{"client_secret:revoke_refresh_token":"secret"}, expectedResults: ["token=abdc&token_type_hint=refresh_token&client_id=interactive.public.short&client_secret=secret"], expectedFinalUrl}, {logout_tokens_to_invalidate:['access_token'],extras:{"client_secret:revoke_access_token":"secret"}, expectedResults: ["token=abcd&token_type_hint=access_token&client_id=interactive.public.short&client_secret=secret"], expectedFinalUrl}, From bcba15b412063d139c0902de117b0516150c13a2 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Wed, 22 May 2024 22:04:08 +0200 Subject: [PATCH 269/440] fix(react-oidc): compatibility with react 19 (release) (#1372) * fix(react-oidc): compatibility with react 19 --- README.md | 2 +- examples/react-oidc-demo/package.json | 12 +- packages/react-oidc/vite.config.ts | 5 +- pnpm-lock.yaml | 408 ++------------------------ 4 files changed, 39 insertions(+), 388 deletions(-) diff --git a/README.md b/README.md index 038c38352..4b40a3ce1 100644 --- a/README.md +++ b/README.md @@ -103,7 +103,7 @@ node ./node_modules/@axa-fr/react-oidc/bin/copy-service-worker-files.mjs public # ./public/OidcTrustedDomains.js <-- won't be updated if already exist ``` -WARNING : If you use Service Worker mode, the OidcServiceWorker.js file should always be up to date with the version of the library. You may setup a postinstall script in your package.json file to update it at each npm install. For example : +WARNING : If you use Service Worker mode, the OidcServiceWorker.js file should always be up-to-date with the version of the library. You may setup a postinstall script in your package.json file to update it at each npm install. For example : ```sh "scripts": { ... diff --git a/examples/react-oidc-demo/package.json b/examples/react-oidc-demo/package.json index a3ca38b62..ecfece789 100644 --- a/examples/react-oidc-demo/package.json +++ b/examples/react-oidc-demo/package.json @@ -24,19 +24,19 @@ "react-router-dom": "^6.22.3" }, "devDependencies": { - "@testing-library/jest-dom": "6.4.2", - "@testing-library/react": "14.2.1", + "@testing-library/jest-dom": "6.4.5", + "@testing-library/react": "15.0.7", "@testing-library/user-event": "14.5.2", - "@types/react": "18.2.65", + "@types/react": "18.3.2", "@vitejs/plugin-react": "4.2.1", "bootstrap": "^4.6.2", "copyfiles": "2.4.1", "cross-env": "^7.0.3", "jsdom": " 24.0.0", - "typescript": "5.4.2", + "typescript": "5.4.5", "vite": "5.1.6", - "vite-plugin-dts": "3.7.3", - "vitest": "1.3.1" + "vite-plugin-dts": "3.9.1", + "vitest": "1.6.0" }, "license": "MIT", "publishConfig": { diff --git a/packages/react-oidc/vite.config.ts b/packages/react-oidc/vite.config.ts index 04536f12c..7b4ed8c80 100644 --- a/packages/react-oidc/vite.config.ts +++ b/packages/react-oidc/vite.config.ts @@ -17,7 +17,10 @@ export default defineConfig({ fileName: 'index', }, rollupOptions: { - external: [...dependencies], + external: [ + ...dependencies, + 'react/jsx-runtime' + ], output: { globals: { react: 'React', diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 361fe0449..f30bc04c1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -131,17 +131,17 @@ importers: version: 6.22.3(react-dom@18.2.0)(react@18.2.0) devDependencies: '@testing-library/jest-dom': - specifier: 6.4.2 - version: 6.4.2(vitest@1.3.1) + specifier: 6.4.5 + version: 6.4.5(vitest@1.6.0) '@testing-library/react': - specifier: 14.2.1 - version: 14.2.1(react-dom@18.2.0)(react@18.2.0) + specifier: 15.0.7 + version: 15.0.7(@types/react@18.3.2)(react-dom@18.2.0)(react@18.2.0) '@testing-library/user-event': specifier: 14.5.2 version: 14.5.2(@testing-library/dom@10.1.0) '@types/react': - specifier: 18.2.65 - version: 18.2.65 + specifier: 18.3.2 + version: 18.3.2 '@vitejs/plugin-react': specifier: 4.2.1 version: 4.2.1(vite@5.1.6) @@ -158,17 +158,17 @@ importers: specifier: ' 24.0.0' version: 24.0.0 typescript: - specifier: 5.4.2 - version: 5.4.2 + specifier: 5.4.5 + version: 5.4.5 vite: specifier: 5.1.6 version: 5.1.6 vite-plugin-dts: - specifier: 3.7.3 - version: 3.7.3(typescript@5.4.2)(vite@5.1.6) + specifier: 3.9.1 + version: 3.9.1(typescript@5.4.5)(vite@5.1.6) vitest: - specifier: 1.3.1 - version: 1.3.1(jsdom@24.0.0) + specifier: 1.6.0 + version: 1.6.0(jsdom@24.0.0) packages/oidc-client: dependencies: @@ -1125,36 +1125,6 @@ packages: - '@types/node' dev: true - /@microsoft/api-extractor-model@7.28.3: - resolution: {integrity: sha512-wT/kB2oDbdZXITyDh2SQLzaWwTOFbV326fP0pUwNW00WeliARs0qjmXBWmGWardEzp2U3/axkO3Lboqun6vrig==} - dependencies: - '@microsoft/tsdoc': 0.14.2 - '@microsoft/tsdoc-config': 0.16.2 - '@rushstack/node-core-library': 3.62.0 - transitivePeerDependencies: - - '@types/node' - dev: true - - /@microsoft/api-extractor@7.39.0: - resolution: {integrity: sha512-PuXxzadgnvp+wdeZFPonssRAj/EW4Gm4s75TXzPk09h3wJ8RS3x7typf95B4vwZRrPTQBGopdUl+/vHvlPdAcg==} - hasBin: true - dependencies: - '@microsoft/api-extractor-model': 7.28.3 - '@microsoft/tsdoc': 0.14.2 - '@microsoft/tsdoc-config': 0.16.2 - '@rushstack/node-core-library': 3.62.0 - '@rushstack/rig-package': 0.5.1 - '@rushstack/ts-command-line': 4.17.1 - colors: 1.2.5 - lodash: 4.17.21 - resolve: 1.22.8 - semver: 7.5.4 - source-map: 0.6.1 - typescript: 5.3.3 - transitivePeerDependencies: - - '@types/node' - dev: true - /@microsoft/api-extractor@7.43.0: resolution: {integrity: sha512-GFhTcJpB+MI6FhvXEI9b2K0snulNLWHqC/BbcJtyNYcKUiw7l3Lgis5ApsYncJ0leALX7/of4XfmXk+maT111w==} hasBin: true @@ -1574,23 +1544,6 @@ packages: dev: true optional: true - /@rushstack/node-core-library@3.62.0: - resolution: {integrity: sha512-88aJn2h8UpSvdwuDXBv1/v1heM6GnBf3RjEy6ZPP7UnzHNCqOHA2Ut+ScYUbXcqIdfew9JlTAe3g+cnX9xQ/Aw==} - peerDependencies: - '@types/node': '*' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - colors: 1.2.5 - fs-extra: 7.0.1 - import-lazy: 4.0.0 - jju: 1.4.0 - resolve: 1.22.8 - semver: 7.5.4 - z-schema: 5.0.5 - dev: true - /@rushstack/node-core-library@4.0.2: resolution: {integrity: sha512-hyES82QVpkfQMeBMteQUnrhASL/KHPhd7iJ8euduwNJG4mu2GSOKybf0rOEjOm1Wz7CwJEUm9y0yD7jg2C1bfg==} peerDependencies: @@ -1607,13 +1560,6 @@ packages: z-schema: 5.0.5 dev: true - /@rushstack/rig-package@0.5.1: - resolution: {integrity: sha512-pXRYSe29TjRw7rqxD4WS3HN/sRSbfr+tJs4a9uuaSIBAITbUggygdhuG0VrO0EO+QqH91GhYMN4S6KRtOEmGVA==} - dependencies: - resolve: 1.22.8 - strip-json-comments: 3.1.1 - dev: true - /@rushstack/rig-package@0.5.2: resolution: {integrity: sha512-mUDecIJeH3yYGZs2a48k+pbhM6JYwWlgjs2Ca5f2n1G2/kgdgP9D/07oglEGf6mRyXEnazhEENeYTSNDRCwdqA==} dependencies: @@ -1633,15 +1579,6 @@ packages: supports-color: 8.1.1 dev: true - /@rushstack/ts-command-line@4.17.1: - resolution: {integrity: sha512-2jweO1O57BYP5qdBGl6apJLB+aRIn5ccIRTPDyULh0KMwVzFqWtw6IZWt1qtUoZD/pD2RNkIOosH6Cq45rIYeg==} - dependencies: - '@types/argparse': 1.0.38 - argparse: 1.0.10 - colors: 1.2.5 - string-argv: 0.3.2 - dev: true - /@rushstack/ts-command-line@4.19.1: resolution: {integrity: sha512-J7H768dgcpG60d7skZ5uSSwyCZs/S2HrWP1Ds8d1qYAyaaeJmpmmLr9BVw97RjFzmQPOYnoXcKA4GkqDCkduQg==} dependencies: @@ -1675,20 +1612,6 @@ packages: lz-string: 1.5.0 pretty-format: 27.5.1 - /@testing-library/dom@9.3.4: - resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==} - engines: {node: '>=14'} - dependencies: - '@babel/code-frame': 7.23.5 - '@babel/runtime': 7.23.9 - '@types/aria-query': 5.0.4 - aria-query: 5.1.3 - chalk: 4.1.2 - dom-accessibility-api: 0.5.16 - lz-string: 1.5.0 - pretty-format: 27.5.1 - dev: true - /@testing-library/jest-dom@6.4.2(@types/jest@29.5.12)(vitest@1.6.0): resolution: {integrity: sha512-CzqH0AFymEMG48CpzXFriYYkOjk6ZGPCLMhW9e9jg3KMCn5OfJecF8GtGW7yGfR/IgCe3SX8BSwjdzI6BBbZLw==} engines: {node: '>=14', npm: '>=6', yarn: '>=1'} @@ -1722,38 +1645,6 @@ packages: vitest: 1.6.0(jsdom@24.0.0) dev: false - /@testing-library/jest-dom@6.4.2(vitest@1.3.1): - resolution: {integrity: sha512-CzqH0AFymEMG48CpzXFriYYkOjk6ZGPCLMhW9e9jg3KMCn5OfJecF8GtGW7yGfR/IgCe3SX8BSwjdzI6BBbZLw==} - engines: {node: '>=14', npm: '>=6', yarn: '>=1'} - peerDependencies: - '@jest/globals': '>= 28' - '@types/bun': latest - '@types/jest': '>= 28' - jest: '>= 28' - vitest: '>= 0.32' - peerDependenciesMeta: - '@jest/globals': - optional: true - '@types/bun': - optional: true - '@types/jest': - optional: true - jest: - optional: true - vitest: - optional: true - dependencies: - '@adobe/css-tools': 4.3.3 - '@babel/runtime': 7.23.9 - aria-query: 5.3.0 - chalk: 3.0.0 - css.escape: 1.5.1 - dom-accessibility-api: 0.6.3 - lodash: 4.17.21 - redent: 3.0.0 - vitest: 1.3.1(jsdom@24.0.0) - dev: true - /@testing-library/jest-dom@6.4.5(vitest@1.6.0): resolution: {integrity: sha512-AguB9yvTXmCnySBP1lWjfNNUwpbElsaQ567lt2VdGqAdHtpieLgjmcVyv1q7PMIvLbgpDdkWV5Ydv3FEejyp2A==} engines: {node: '>=14', npm: '>=6', yarn: '>=1'} @@ -1786,15 +1677,20 @@ packages: vitest: 1.6.0(jsdom@24.0.0) dev: true - /@testing-library/react@14.2.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-sGdjws32ai5TLerhvzThYFbpnF9XtL65Cjf+gB0Dhr29BGqK+mAeN7SURSdu+eqgET4ANcWoC7FQpkaiGvBr+A==} - engines: {node: '>=14'} + /@testing-library/react@15.0.7(@types/react@18.3.2)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-cg0RvEdD1TIhhkm1IeYMQxrzy0MtUNfa3minv4MjbgcYzJAZ7yD0i0lwoPOTPr+INtiXFezt2o8xMSnyHhEn2Q==} + engines: {node: '>=18'} peerDependencies: + '@types/react': ^18.0.0 react: ^18.0.0 react-dom: ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true dependencies: '@babel/runtime': 7.23.9 - '@testing-library/dom': 9.3.4 + '@testing-library/dom': 10.1.0 + '@types/react': 18.3.2 '@types/react-dom': 18.2.7 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -1928,14 +1824,6 @@ packages: '@types/react': 18.3.2 dev: true - /@types/react@18.2.65: - resolution: {integrity: sha512-98TsY0aW4jqx/3RqsUXwMDZSWR1Z4CUlJNue8ueS2/wcxZOsz4xmW1X8ieaWVRHcmmQM3R8xVA4XWB3dJnWwDQ==} - dependencies: - '@types/prop-types': 15.7.5 - '@types/scheduler': 0.16.3 - csstype: 3.1.2 - dev: true - /@types/react@18.3.2: resolution: {integrity: sha512-Btgg89dAnqD4vV7R3hlwOxgqobUQKgx3MmrQRi0yYbs/P0ym8XozIAlkqVilPqHQwXs4e9Tf63rrCgl58BcO4w==} dependencies: @@ -1943,10 +1831,6 @@ packages: csstype: 3.1.2 dev: true - /@types/scheduler@0.16.3: - resolution: {integrity: sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==} - dev: true - /@types/semver@7.5.6: resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} dev: true @@ -2217,14 +2101,6 @@ packages: - supports-color dev: true - /@vitest/expect@1.3.1: - resolution: {integrity: sha512-xofQFwIzfdmLLlHa6ag0dPV8YsnKOCP1KdAeVVh34vSjN2dcUiXYCD9htu/9eM7t8Xln4v03U9HLxLpPlsXdZw==} - dependencies: - '@vitest/spy': 1.3.1 - '@vitest/utils': 1.3.1 - chai: 4.4.1 - dev: true - /@vitest/expect@1.6.0: resolution: {integrity: sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==} dependencies: @@ -2232,14 +2108,6 @@ packages: '@vitest/utils': 1.6.0 chai: 4.4.1 - /@vitest/runner@1.3.1: - resolution: {integrity: sha512-5FzF9c3jG/z5bgCnjr8j9LNq/9OxV2uEBAITOXfoe3rdZJTdO7jzThth7FXv/6b+kdY65tpRQB7WaKhNZwX+Kg==} - dependencies: - '@vitest/utils': 1.3.1 - p-limit: 5.0.0 - pathe: 1.1.2 - dev: true - /@vitest/runner@1.6.0: resolution: {integrity: sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==} dependencies: @@ -2247,14 +2115,6 @@ packages: p-limit: 5.0.0 pathe: 1.1.2 - /@vitest/snapshot@1.3.1: - resolution: {integrity: sha512-EF++BZbt6RZmOlE3SuTPu/NfwBF6q4ABS37HHXzs2LUVPBLx2QoY/K0fKpRChSo8eLiuxcbCVfqKgx/dplCDuQ==} - dependencies: - magic-string: 0.30.9 - pathe: 1.1.2 - pretty-format: 29.7.0 - dev: true - /@vitest/snapshot@1.6.0: resolution: {integrity: sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==} dependencies: @@ -2262,26 +2122,11 @@ packages: pathe: 1.1.2 pretty-format: 29.7.0 - /@vitest/spy@1.3.1: - resolution: {integrity: sha512-xAcW+S099ylC9VLU7eZfdT9myV67Nor9w9zhf0mGCYJSO+zM2839tOeROTdikOi/8Qeusffvxb/MyBSOja1Uig==} - dependencies: - tinyspy: 2.2.0 - dev: true - /@vitest/spy@1.6.0: resolution: {integrity: sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==} dependencies: tinyspy: 2.2.0 - /@vitest/utils@1.3.1: - resolution: {integrity: sha512-d3Waie/299qqRyHTm2DjADeTaNdNSVsnwHPWrs20JMpjh6eiVq7ggggweO8rc4arhf6rRkWuHKwvxGvejUXZZQ==} - dependencies: - diff-sequences: 29.6.3 - estree-walker: 3.0.3 - loupe: 2.3.7 - pretty-format: 29.7.0 - dev: true - /@vitest/utils@1.6.0: resolution: {integrity: sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==} dependencies: @@ -2326,26 +2171,6 @@ packages: '@vue/shared': 3.4.15 dev: true - /@vue/language-core@1.8.27(typescript@5.4.2): - resolution: {integrity: sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@volar/language-core': 1.11.1 - '@volar/source-map': 1.11.1 - '@vue/compiler-dom': 3.4.15 - '@vue/shared': 3.4.15 - computeds: 0.0.1 - minimatch: 9.0.4 - muggle-string: 0.3.1 - path-browserify: 1.0.1 - typescript: 5.4.2 - vue-template-compiler: 2.7.16 - dev: true - /@vue/language-core@1.8.27(typescript@5.4.5): resolution: {integrity: sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==} peerDependencies: @@ -2459,12 +2284,6 @@ packages: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} dev: true - /aria-query@5.1.3: - resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} - dependencies: - deep-equal: 2.2.2 - dev: true - /aria-query@5.3.0: resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} dependencies: @@ -2806,11 +2625,6 @@ packages: /color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - /colors@1.2.5: - resolution: {integrity: sha512-erNRLao/Y3Fv54qUa0LBB+//Uf3YwMUmdJinN20yMXm9zdKKqH9wt7R9IIVZ+K7ShzfpLV/Zg8+VyrBJYB4lpg==} - engines: {node: '>=0.1.90'} - dev: true - /combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} @@ -3017,29 +2831,6 @@ packages: dependencies: type-detect: 4.0.8 - /deep-equal@2.2.2: - resolution: {integrity: sha512-xjVyBf0w5vH0I42jdAZzOKVldmPgSulmiyPRywoyq7HXC9qdgo17kxJE+rdnif5Tz6+pIrpJI8dCpMNLIGkUiA==} - dependencies: - array-buffer-byte-length: 1.0.1 - call-bind: 1.0.5 - es-get-iterator: 1.1.3 - get-intrinsic: 1.2.3 - is-arguments: 1.1.1 - is-array-buffer: 3.0.4 - is-date-object: 1.0.5 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.2 - isarray: 2.0.5 - object-is: 1.1.5 - object-keys: 1.1.1 - object.assign: 4.1.5 - regexp.prototype.flags: 1.5.1 - side-channel: 1.0.4 - which-boxed-primitive: 1.0.2 - which-collection: 1.0.1 - which-typed-array: 1.1.14 - dev: true - /deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: true @@ -3244,20 +3035,6 @@ packages: engines: {node: '>= 0.4'} dev: true - /es-get-iterator@1.1.3: - resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} - dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.3 - has-symbols: 1.0.3 - is-arguments: 1.1.1 - is-map: 2.0.2 - is-set: 2.0.2 - is-string: 1.0.7 - isarray: 2.0.5 - stop-iteration-iterator: 1.0.0 - dev: true - /es-iterator-helpers@1.0.15: resolution: {integrity: sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==} dependencies: @@ -4275,14 +4052,6 @@ packages: side-channel: 1.0.4 dev: true - /is-arguments@1.1.1: - resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - has-tostringtag: 1.0.2 - dev: true - /is-array-buffer@3.0.4: resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} engines: {node: '>= 0.4'} @@ -4797,13 +4566,6 @@ packages: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true - /magic-string@0.30.7: - resolution: {integrity: sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==} - engines: {node: '>=12'} - dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 - dev: true - /magic-string@0.30.9: resolution: {integrity: sha512-S1+hd+dIrC8EZqKyT9DstTH/0Z+f76kmmvZnkfQVmOpDEF9iVgdYif3Q/pIWHmCoo59bQVGW0kVL3e2nl+9+Sw==} engines: {node: '>=12'} @@ -5033,14 +4795,6 @@ packages: resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} dev: true - /object-is@1.1.5: - resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - dev: true - /object-keys@1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} @@ -5808,13 +5562,6 @@ packages: /std-env@3.7.0: resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} - /stop-iteration-iterator@1.0.0: - resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} - engines: {node: '>= 0.4'} - dependencies: - internal-slot: 1.0.6 - dev: true - /streamsearch@1.1.0: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} engines: {node: '>=10.0.0'} @@ -6042,11 +5789,6 @@ packages: /tinybench@2.6.0: resolution: {integrity: sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==} - /tinypool@0.8.2: - resolution: {integrity: sha512-SUszKYe5wgsxnNOVlBYO6IC+8VGWdVGZWAqUxp3UErNBtptZvWbwyUOyzNL59zigz2rCA92QiL3wvG+JDSdJdQ==} - engines: {node: '>=14.0.0'} - dev: true - /tinypool@0.8.4: resolution: {integrity: sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==} engines: {node: '>=14.0.0'} @@ -6230,12 +5972,6 @@ packages: possible-typed-array-names: 1.0.0 dev: true - /typescript@5.3.3: - resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} - engines: {node: '>=14.17'} - hasBin: true - dev: true - /typescript@5.4.2: resolution: {integrity: sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==} engines: {node: '>=14.17'} @@ -6308,27 +6044,6 @@ packages: engines: {node: '>= 0.10'} dev: true - /vite-node@1.3.1: - resolution: {integrity: sha512-azbRrqRxlWTJEVbzInZCTchx0X69M/XPTCz4H+TLvlTcR/xH/3hkRqhOakT41fMJCMzXTu4UvegkZiEoJAWvng==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - dependencies: - cac: 6.7.14 - debug: 4.3.4 - pathe: 1.1.2 - picocolors: 1.0.0 - vite: 5.2.11 - transitivePeerDependencies: - - '@types/node' - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - dev: true - /vite-node@1.6.0: resolution: {integrity: sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==} engines: {node: ^18.0.0 || >=20.0.0} @@ -6349,8 +6064,8 @@ packages: - supports-color - terser - /vite-plugin-dts@3.7.3(typescript@5.4.2)(vite@5.1.6): - resolution: {integrity: sha512-26eTlBYdpjRLWCsTJebM8vkCieE+p9gP3raf+ecDnzzK5E3FG6VE1wcy55OkRpfWWVlVvKkYFe6uvRHYWx7Nog==} + /vite-plugin-dts@3.9.1(typescript@5.4.5)(vite@5.1.6): + resolution: {integrity: sha512-rVp2KM9Ue22NGWB8dNtWEr+KekN3rIgz1tWD050QnRGlriUCmaDwa7qA5zDEjbXg5lAXhYMSBJtx3q3hQIJZSg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -6359,14 +6074,15 @@ packages: vite: optional: true dependencies: - '@microsoft/api-extractor': 7.39.0 + '@microsoft/api-extractor': 7.43.0 '@rollup/pluginutils': 5.1.0 - '@vue/language-core': 1.8.27(typescript@5.4.2) + '@vue/language-core': 1.8.27(typescript@5.4.5) debug: 4.3.4 kolorist: 1.8.0 - typescript: 5.4.2 + magic-string: 0.30.9 + typescript: 5.4.5 vite: 5.1.6 - vue-tsc: 1.8.27(typescript@5.4.2) + vue-tsc: 1.8.27(typescript@5.4.5) transitivePeerDependencies: - '@types/node' - rollup @@ -6503,62 +6219,6 @@ packages: optionalDependencies: fsevents: 2.3.3 - /vitest@1.3.1(jsdom@24.0.0): - resolution: {integrity: sha512-/1QJqXs8YbCrfv/GPQ05wAZf2eakUPLPa18vkJAKE7RXOKfVHqMZZ1WlTjiwl6Gcn65M5vpNUB6EFLnEdRdEXQ==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@edge-runtime/vm': '*' - '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 1.3.1 - '@vitest/ui': 1.3.1 - happy-dom: '*' - jsdom: '*' - peerDependenciesMeta: - '@edge-runtime/vm': - optional: true - '@types/node': - optional: true - '@vitest/browser': - optional: true - '@vitest/ui': - optional: true - happy-dom: - optional: true - jsdom: - optional: true - dependencies: - '@vitest/expect': 1.3.1 - '@vitest/runner': 1.3.1 - '@vitest/snapshot': 1.3.1 - '@vitest/spy': 1.3.1 - '@vitest/utils': 1.3.1 - acorn-walk: 8.3.2 - chai: 4.4.1 - debug: 4.3.4 - execa: 8.0.1 - jsdom: 24.0.0 - local-pkg: 0.5.0 - magic-string: 0.30.7 - pathe: 1.1.2 - picocolors: 1.0.0 - std-env: 3.7.0 - strip-literal: 2.0.0 - tinybench: 2.6.0 - tinypool: 0.8.2 - vite: 5.1.6 - vite-node: 1.3.1 - why-is-node-running: 2.2.2 - transitivePeerDependencies: - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - dev: true - /vitest@1.6.0(jsdom@24.0.0): resolution: {integrity: sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==} engines: {node: ^18.0.0 || >=20.0.0} @@ -6621,18 +6281,6 @@ packages: he: 1.2.0 dev: true - /vue-tsc@1.8.27(typescript@5.4.2): - resolution: {integrity: sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==} - hasBin: true - peerDependencies: - typescript: '*' - dependencies: - '@volar/typescript': 1.11.1 - '@vue/language-core': 1.8.27(typescript@5.4.2) - semver: 7.6.0 - typescript: 5.4.2 - dev: true - /vue-tsc@1.8.27(typescript@5.4.5): resolution: {integrity: sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==} hasBin: true From e8ad44f823fe89e28c6616ed3f63a1ff28554386 Mon Sep 17 00:00:00 2001 From: GitHub Date: Wed, 22 May 2024 20:06:40 +0000 Subject: [PATCH 270/440] [skip ci] Update to version 7.22.6 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index ce062d0fe..99fd66e4d 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.22.5", + "version": "7.22.6", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 5724d3602..f217ff774 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.22.5'; +export default '7.22.6'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index b645e88d7..845cdf319 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.22.5", + "version": "7.22.6", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 5724d3602..f217ff774 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.22.5'; +export default '7.22.6'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 33db3f1c3..963a95428 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.22.5", + "version": "7.22.6", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 630b4faed4ff275712f2f2ae00be64f8587cfc4b Mon Sep 17 00:00:00 2001 From: GitHub Date: Wed, 22 May 2024 20:06:42 +0000 Subject: [PATCH 271/440] [skip ci] Generate changelog to version 7.22.6 --- CHANGELOG.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b8beee3c3..a4450bf79 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,12 @@ # Changelog -## 7.22.5 +## 7.22.6 + +- [bcba15b](https://github.com/AxaFrance/oidc-client/commit/bcba15b412063d139c0902de117b0516150c13a2) - fix(react-oidc): compatibility with react 19 (release) (#1372), 2024-05-22 by *Guillaume Chervet* +- [c49a857](https://github.com/AxaFrance/oidc-client/commit/c49a8572702c485c9a089b0f9aa11eb4bc6e7f1d) - refactor(test): add missing logout test case, 2024-05-22 by *Guillaume Chervet* + + +## v7.22.5 - [8d9fd95](https://github.com/AxaFrance/oidc-client/commit/8d9fd9550a74a771936f0e686eb31fe271cd912b) - fix(oidc): user loaded 401 when preload true and not serviceworder mode (release), 2024-05-19 by *Guillaume Chervet* - [d764b2b](https://github.com/AxaFrance/oidc-client/commit/d764b2bd7319711c49a393c1fd3496d054661065) - refatcor(all): update librairies, 2024-05-18 by *Guillaume Chervet* @@ -312,8 +318,3 @@ - [53fd1f1](https://github.com/AxaFrance/oidc-client/commit/53fd1f1c093430f7e60eb43bc4a9a4fccebefe73) - build(npm): bump jsdom from 22.1.0 to 23.0.0 (#1220), 2023-11-29 by *dependabot[bot]* -## v7.12.7 - -- [7a53f73](https://github.com/AxaFrance/oidc-client/commit/7a53f73bf03b85be9248379f21def37ee34bd415) - build(npm): bump @types/react from 18.2.17 to 18.2.39 (#1215), 2023-11-29 by *dependabot[bot]* - - From 0bfabd41d67cad57415905b7ce729ee4fe85c8b4 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Fri, 7 Jun 2024 06:53:49 +0200 Subject: [PATCH 272/440] fix(oidc): session lost to quickly (alpha) (#1381) --- packages/oidc-client/src/renewTokens.ts | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/packages/oidc-client/src/renewTokens.ts b/packages/oidc-client/src/renewTokens.ts index 980789650..882eb06cb 100644 --- a/packages/oidc-client/src/renewTokens.ts +++ b/packages/oidc-client/src/renewTokens.ts @@ -150,9 +150,8 @@ export const syncTokensInfoAsync = (oidc: Oidc) => async (configuration:OidcConf const synchroniseTokensAsync = (oidc:Oidc) => async (index = 0, forceRefresh = false, extras:StringMap = null, updateTokens) =>{ - while (!navigator.onLine && document.hidden) { - await sleepAsync({milliseconds: 1000}); - oidc.publishEvent(eventNames.refreshTokensAsync, { message: 'wait because navigator is offline and hidden' }); + if (!navigator.onLine && document.hidden) { + return { tokens: oidc.tokens, status: 'GIVE_UP' }; } let numberTryOnline = 6; while (!navigator.onLine && numberTryOnline > 0) { @@ -206,16 +205,6 @@ const synchroniseTokensAsync = (oidc:Oidc) => async (index = 0, forceRefresh = f return await synchroniseTokensAsync(oidc)(nextIndex, forceRefresh, extras, updateTokens); } }; - - if (index > 4) { - if(isDocumentHidden){ - return { tokens: oidc.tokens, status: 'GIVE_UP' }; - } else{ - updateTokens(null); - oidc.publishEvent(eventNames.refreshTokensAsync_error, { message: 'refresh token' }); - return { tokens: null, status: 'SESSION_LOST' }; - } - } try { const { status, tokens, nonce } = await syncTokensInfoAsync(oidc)(configuration, oidc.configurationName, oidc.tokens, forceRefresh); From 9f4cbf414e1b41f448b2a36d759a035786d26668 Mon Sep 17 00:00:00 2001 From: meesvandongen <35409045+meesvandongen@users.noreply.github.com> Date: Fri, 7 Jun 2024 16:26:50 +0900 Subject: [PATCH 273/440] fix(oidc): 2 readmes with the same name (release) (#1377) * remove all readmes * re-add readme --- readme.md | 181 ------------------------------------------------------ 1 file changed, 181 deletions(-) delete mode 100644 readme.md diff --git a/readme.md b/readme.md deleted file mode 100644 index 038c38352..000000000 --- a/readme.md +++ /dev/null @@ -1,181 +0,0 @@ -# @axa-fr/oidc-client - -[![Continuous Integration](https://github.com/AxaFrance/react-oidc/actions/workflows/npm-publish.yml/badge.svg)](https://github.com/AxaFrance/react-oidc/actions/workflows/npm-publish.yml) -[![Quality Gate](https://sonarcloud.io/api/project_badges/measure?project=AxaGuilDEv_react-oidc&metric=alert_status)](https://sonarcloud.io/dashboard?id=AxaGuilDEv_react-oidc) [![Reliability](https://sonarcloud.io/api/project_badges/measure?project=AxaGuilDEv_react-oidc&metric=reliability_rating)](https://sonarcloud.io/component_measures?id=AxaGuilDEv_react-oidc&metric=reliability_rating) [![Security](https://sonarcloud.io/api/project_badges/measure?project=AxaGuilDEv_react-oidc&metric=security_rating)](https://sonarcloud.io/component_measures?id=AxaGuilDEv_react-oidc&metric=security_rating) [![Code Coverage](https://sonarcloud.io/api/project_badges/measure?project=AxaGuilDEv_react-oidc&metric=coverage)](https://sonarcloud.io/component_measures?id=AxaGuilDEv_react-oidc&metric=Coverage) [![Twitter](https://img.shields.io/twitter/follow/GuildDEvOpen?style=social)](https://twitter.com/intent/follow?screen_name=GuildDEvOpen) - - -

- Sample React Oicd -

- -- [About](#about) -- [Getting Started](#getting-started) -- [Run The Demos](#run-the-demos) -- [How It Works](#how-it-works) -- Packages - - [`@axa-fr/oidc-client`](./packages/oidc-client#readme.md) [![npm version](https://badge.fury.io/js/%40axa-fr%2Foidc-client.svg)](https://badge.fury.io/js/%40axa-fr%2Foidc-client) - - [`@axa-fr/react-oidc`](./packages/react-oidc#readme.md) [![npm version](https://badge.fury.io/js/%40axa-fr%2Freact-oidc.svg)](https://badge.fury.io/js/%40axa-fr%2Freact-oidc) - - `@axa-fr/svelte-oidc` : we are looking for contributor - - `@axa-fr/vue-oidc` : we are looking for contributor - - `@axa-fr/angular-oidc` : we are looking for contributor -- [FAQ](#FAQ) -- [Migrations](#migrations) -- [Contribute](#contribute) - -## About - -**@axa-fr/oidc-client** the lightest and securest library to manage authentication with OpenID Connect (OIDC) and OAuth2 protocol. It is compatible with all OIDC providers. -**@axa-fr/oidc-client** is a pure javascript library. It works with any JavaScript framework or library. -**@axa-fr/react-oidc** is for **React** (compatible next.js, etc.), we expect soon to provide one for **Vue**, **Angular** and **Svelte**. - -Demos: -- Try the react demo at https://black-rock-0dc6b0d03.1.azurestaticapps.net/ (most advanced) -- Try the pure javascript demo at https://icy-glacier-004ab4303.2.azurestaticapps.net/ - - -**@axa-fr/oidc-client** is: - -- **Secure** : - - With Demonstrating Proof of Possession (DPoP), your access_token and refresh_token are not usable outside your browser context (big protection) - - With the use of Service Worker, your tokens (refresh_token and/or access_token) are not accessible to the JavaScript client code (if you follow good practices from [`FAQ`](https://github.com/AxaFrance/oidc-client/blob/main/FAQ.md) section) - - OIDC using client side Code Credential Grant with pkce only -- **Lightweight** : Unpacked Size on npm is **274 kB** -- **Simple** - - refresh_token and access_token are auto refreshed in background - - with the use of the Service Worker, you do not need to inject the access_token in every fetch, you have only to configure OidcTrustedDomains.js file -- **Multiple Authentication** : - - You can authenticate many times to the same provider with different scope (for example you can acquire a new 'payment' scope for a payment) - - You can authenticate to multiple different providers inside the same SPA (single page application) website -- **Flexible** : - - Work with Service Worker (more secure) and without for older browser (less secure). - - You can disable Service Worker if you want (but less secure) and just use SessionStorage or LocalStorage mode. - -Works perfectly well with: - -- [Auth0](https://auth0.com/) -- [Duende Identity Server](https://duendesoftware.com/) -- Azure AD -- Google -- AWS -- [Keycloak](https://www.keycloak.org/) -- etc., all OIDC providers - - -## Getting Started - -### Getting Started with @axa-fr/oidc-client - -```sh -npm install @axa-fr/oidc-client --save - -# To install or update OidcServiceWorker.js file, you can run -node ./node_modules/@axa-fr/oidc-client/bin/copy-service-worker-files.mjs public - -# If you have a "public" folder, the 2 files will be created : -# ./public/OidcServiceWorker.js <-- will be updated at each "npm install" -# ./public/OidcTrustedDomains.js <-- won't be updated if already exist -``` - -WARNING : If you use Service Worker mode, the OidcServiceWorker.js file should always be up to date with the version of the library. You may setup a postinstall script in your package.json file to update it at each npm install. For example : -```sh - "scripts": { - ... - "postinstall": "node ./node_modules/@axa-fr/oidc-client/bin/copy-service-worker-files.mjs public" - }, -``` - -More documentation : - -- [`@axa-fr/oidc-client`](./packages/oidc-client#readme) - -### Getting Started with @axa-fr/react-oidc - -```sh -npm install @axa-fr/react-oidc --save - -# To install or update OidcServiceWorker.js file, you can run -node ./node_modules/@axa-fr/react-oidc/bin/copy-service-worker-files.mjs public - -# If you have a "public" folder, the 2 files will be created : -# ./public/OidcServiceWorker.js <-- will be updated at each "npm install" -# ./public/OidcTrustedDomains.js <-- won't be updated if already exist -``` - -WARNING : If you use Service Worker mode, the OidcServiceWorker.js file should always be up to date with the version of the library. You may setup a postinstall script in your package.json file to update it at each npm install. For example : -```sh - "scripts": { - ... - "postinstall": "node ./node_modules/@axa-fr/react-oidc/bin/copy-service-worker-files.mjs public" - }, -``` - -More documentation : - -- [`@axa-fr/react-oidc`](./packages/react-oidc#readme) - -## Run The Demos - -```sh -git clone https://github.com/AxaFrance/oidc-client.git - -cd oidc-client -pnpm install - -# oidc client demo -cd examples/oidc-client-demo -pnpm install -pnpm start -# then navigate to http://localhost:5174 - -# react vite demo -cd examples/react-oidc-demo -pnpm install -pnpm start -# then navigate to http://localhost:4200 - -# react NextJS demo -cd examples/nextjs-demo -pnpm install -pnpm run dev -# then navigate to http://localhost:3001 -``` - -## How It Works - -

- Schema Authorization Code Grant with pcke flow on the using service worker -
- The service worker catch access_token and refresh_token that will never be accessible to the client. -

- - -These components encapsulate the use of "`@axa-fr/oidc-client`" in order to hide workflow complexity. -Internally for "`@axa-fr/react-oidc`", native History API is used to be router library agnostic. - -More information about OIDC : - -- [French : Augmentez la sécurité et la simplicité de votre Système d’Information OpenID Connect](https://medium.com/just-tech-it-now/augmentez-la-s%C3%A9curit%C3%A9-et-la-simplicit%C3%A9-de-votre-syst%C3%A8me-dinformation-avec-oauth-2-0-cf0732d71284) -- [English : Increase the security and simplicity of your information system with OpenID Connect](https://medium.com/just-tech-it-now/increase-the-security-and-simplicity-of-your-information-system-with-openid-connect-fa8c26b99d6d) -- [English: youtube react-oidc introduction](https://www.youtube.com/watch?v=frIJfavZkUE&list=PL8EMdIH6Mzxy2kHtsVOEWqNz-OaM_D_fB&index=1) -- [French: youtube react-oidc introduction](https://www.youtube.com/watch?v=H-mLMGzQ_y0&list=PL8EMdIH6Mzxy2kHtsVOEWqNz-OaM_D_fB&index=2) - -## FAQ - -- Frequented Asked Question [`FAQ`](./FAQ.md) - -## Migrations - -- Migrating from v3 to v4 [`guide`](./MIGRATION_GUIDE_V3_TO_V4.md) -- Migrating from v3 to v5 [`guide`](./MIGRATION_GUIDE_V3_TO_V5.md) -- Migrating from v4 to v5 [`guide`](./MIGRATION_GUIDE_V4_TO_V5.md) -- Migrating from v5 to v6 [`guide`](./MIGRATION_GUIDE_V5_TO_V6.md) -- Migrating from v6 to v7 [`guide`](./MIGRATION_GUIDE_V6_TO_V7.md) - -## Contribute - -- [How to run the solution and to contribute](./CONTRIBUTING.md) -- [Please respect our code of conduct](./CODE_OF_CONDUCT.md) From 4685d6182d3dadde54d6b5eb28940a11c1b6ba0a Mon Sep 17 00:00:00 2001 From: GitHub Date: Fri, 7 Jun 2024 07:29:30 +0000 Subject: [PATCH 274/440] [skip ci] Update to version 7.22.7 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 99fd66e4d..9c82d11bd 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.22.6", + "version": "7.22.7", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index f217ff774..fbdee0f56 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.22.6'; +export default '7.22.7'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 845cdf319..937dbf858 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.22.6", + "version": "7.22.7", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index f217ff774..fbdee0f56 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.22.6'; +export default '7.22.7'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 963a95428..599cf218e 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.22.6", + "version": "7.22.7", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 4fa4992af022a88ce58a2e31580e93acab8dc3fb Mon Sep 17 00:00:00 2001 From: GitHub Date: Fri, 7 Jun 2024 07:29:31 +0000 Subject: [PATCH 275/440] [skip ci] Generate changelog to version 7.22.7 --- CHANGELOG.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a4450bf79..346a8668e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,12 @@ # Changelog -## 7.22.6 +## 7.22.7 + +- [9f4cbf4](https://github.com/AxaFrance/oidc-client/commit/9f4cbf414e1b41f448b2a36d759a035786d26668) - fix(oidc): 2 readmes with the same name (release) (#1377), 2024-06-07 by *meesvandongen* +- [0bfabd4](https://github.com/AxaFrance/oidc-client/commit/0bfabd41d67cad57415905b7ce729ee4fe85c8b4) - fix(oidc): session lost to quickly (alpha) (#1381), 2024-06-07 by *Guillaume Chervet* + + +## v7.22.6 - [bcba15b](https://github.com/AxaFrance/oidc-client/commit/bcba15b412063d139c0902de117b0516150c13a2) - fix(react-oidc): compatibility with react 19 (release) (#1372), 2024-05-22 by *Guillaume Chervet* - [c49a857](https://github.com/AxaFrance/oidc-client/commit/c49a8572702c485c9a089b0f9aa11eb4bc6e7f1d) - refactor(test): add missing logout test case, 2024-05-22 by *Guillaume Chervet* @@ -313,8 +319,3 @@ - [f8be6ab](https://github.com/AxaFrance/oidc-client/commit/f8be6ab1096143c1a2eb35408669aef6df72d2d9) - doc(redame): fix service worker command to work with oidc-client standalone (#1200), 2023-11-29 by *Felix Roos* -## v7.12.8 - -- [53fd1f1](https://github.com/AxaFrance/oidc-client/commit/53fd1f1c093430f7e60eb43bc4a9a4fccebefe73) - build(npm): bump jsdom from 22.1.0 to 23.0.0 (#1220), 2023-11-29 by *dependabot[bot]* - - From c4cf94b62a7b2c45cf0f94438a02f0cb5f06b9b0 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Tue, 18 Jun 2024 17:47:34 +0200 Subject: [PATCH 276/440] fix(oidc): remove dynamic web worker blocked by policies (release) (#1386) * fix(oidc): renew token (alpha) * test (alpha) * test (alpha) * Update renewTokens.ts --- packages/oidc-client/src/timer.ts | 165 ++---------------------------- 1 file changed, 8 insertions(+), 157 deletions(-) diff --git a/packages/oidc-client/src/timer.ts b/packages/oidc-client/src/timer.ts index cd088f52b..1e540e40a 100644 --- a/packages/oidc-client/src/timer.ts +++ b/packages/oidc-client/src/timer.ts @@ -1,163 +1,14 @@ const timer = (function () { - const workerPort = (function () { - let worker; - let blobURL; - - const workerCode = function () { - const innerIdsByOuterIds = {}; - - const methods = { - setTimeout: function (port, id, timeout) { - innerIdsByOuterIds[id] = setTimeout(function () { - port.postMessage(id); - innerIdsByOuterIds[id] = null; - }, timeout); - }, - - setInterval: function (port, id, timeout) { - innerIdsByOuterIds[id] = setInterval(function () { - port.postMessage(id); - }, timeout); - }, - - clearTimeout: function (port, id) { - clearTimeout(innerIdsByOuterIds[id]); - innerIdsByOuterIds[id] = null; - }, - - clearInterval: function (port, id) { - clearInterval(innerIdsByOuterIds[id]); - innerIdsByOuterIds[id] = null; - }, - }; - - function onMessage(port, event) { - const method = event.data[0]; - const id = event.data[1]; - const option = event.data[2]; - - if (methods[method]) { - methods[method](port, id, option); - } - } - - // For Dedicated Worker - this.onmessage = function (event) { - onMessage(self, event); - }; - - // For Shared Worker - this.onconnect = function (event) { - const port = event.ports[0]; - - port.onmessage = function (event) { - onMessage(port, event); - }; - }; - }.toString(); - - try { - const blob = new Blob(['(', workerCode, ')()'], { type: 'application/javascript' }); - blobURL = URL.createObjectURL(blob); - } catch (error) { - return null; - } - const isInsideBrowser = (typeof process === 'undefined'); - try { - if (SharedWorker) { - worker = new SharedWorker(blobURL); - return worker.port; - } - } catch (error) { - if (isInsideBrowser) { - console.warn('SharedWorker not available'); - } - } - try { - if (Worker) { - worker = new Worker(blobURL); - return worker; - } - } catch (error) { - if (isInsideBrowser) { - console.warn('Worker not available'); - } - } - - return null; - }()); - - if (!workerPort) { - // In NextJS with SSR (Server Side Rendering) during rending in Node JS, the window object is undefined, - // the global object is used instead as it is the closest approximation of a browsers window object. - const bindContext = (typeof window === 'undefined') ? global : window; - - return { - setTimeout: setTimeout.bind(bindContext), - clearTimeout: clearTimeout.bind(bindContext), - setInterval: setInterval.bind(bindContext), - clearInterval: clearInterval.bind(bindContext), - }; - } - - const getId = (function () { - let currentId = 0; - - return function () { - currentId++; - return currentId; - }; - }()); - - const timeoutCallbacksById = {}; - const intervalCallbacksById = {}; - - workerPort.onmessage = function (event) { - const id = event.data; - - const timeoutCallback = timeoutCallbacksById[id]; - if (timeoutCallback) { - timeoutCallback(); - timeoutCallbacksById[id] = null; - return; - } - - const intervalCallback = intervalCallbacksById[id]; - if (intervalCallback) { - intervalCallback(); - } - }; - - function setTimeoutWorker(callback, timeout) { - const id = getId(); - workerPort.postMessage(['setTimeout', id, timeout]); - timeoutCallbacksById[id] = callback; - return id; - } - - function clearTimeoutWorker(id) { - workerPort.postMessage(['clearTimeout', id]); - timeoutCallbacksById[id] = null; - } - - function setIntervalWorker(callback, timeout) { - const id = getId(); - workerPort.postMessage(['setInterval', id, timeout]); - intervalCallbacksById[id] = callback; - return id; - } - - function clearIntervalWorker(id) { - workerPort.postMessage(['clearInterval', id]); - intervalCallbacksById[id] = null; - } - + // In NextJS with SSR (Server Side Rendering) during rending in Node JS, the window object is undefined, + // the global object is used instead as it is the closest approximation of a browsers window object. + const bindContext = (typeof window === 'undefined') ? global : window; return { - setTimeout: setTimeoutWorker, - clearTimeout: clearTimeoutWorker, - setInterval: setIntervalWorker, - clearInterval: clearIntervalWorker, + setTimeout: setTimeout.bind(bindContext), + clearTimeout: clearTimeout.bind(bindContext), + setInterval: setInterval.bind(bindContext), + clearInterval: clearInterval.bind(bindContext), }; + }()); export default timer; From 6b9913f40a189a75549dc4c02e11e2f6ee9a9148 Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 18 Jun 2024 15:50:05 +0000 Subject: [PATCH 277/440] [skip ci] Update to version 7.22.8 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 9c82d11bd..db2e6404f 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.22.7", + "version": "7.22.8", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index fbdee0f56..3d587e19d 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.22.7'; +export default '7.22.8'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 937dbf858..040d00695 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.22.7", + "version": "7.22.8", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index fbdee0f56..3d587e19d 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.22.7'; +export default '7.22.8'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 599cf218e..0ea37ecc5 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.22.7", + "version": "7.22.8", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 0bdbf832df2cdef33a71eae4b704f60b8f36b3d0 Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 18 Jun 2024 15:50:06 +0000 Subject: [PATCH 278/440] [skip ci] Generate changelog to version 7.22.8 --- CHANGELOG.md | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 346a8668e..3736d5082 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog -## 7.22.7 +## 7.22.8 + +- [c4cf94b](https://github.com/AxaFrance/oidc-client/commit/c4cf94b62a7b2c45cf0f94438a02f0cb5f06b9b0) - fix(oidc): remove dynamic web worker blocked by policies (release) (#1386), 2024-06-18 by *Guillaume Chervet* + + +## v7.22.7 - [9f4cbf4](https://github.com/AxaFrance/oidc-client/commit/9f4cbf414e1b41f448b2a36d759a035786d26668) - fix(oidc): 2 readmes with the same name (release) (#1377), 2024-06-07 by *meesvandongen* - [0bfabd4](https://github.com/AxaFrance/oidc-client/commit/0bfabd41d67cad57415905b7ce729ee4fe85c8b4) - fix(oidc): session lost to quickly (alpha) (#1381), 2024-06-07 by *Guillaume Chervet* @@ -313,9 +318,3 @@ - [a9cd4d2](https://github.com/AxaFrance/oidc-client/commit/a9cd4d25ef8d66bd12e5c0e921b9fd1bc4a137ba) - build(npm): bump @testing-library/react from 13.3.0 to 14.1.2 (#1222), 2023-11-29 by *dependabot[bot]* -## v7.12.9 - -- [2975d4e](https://github.com/AxaFrance/oidc-client/commit/2975d4e826c94eb7202ab7bba39687d1a7b6820b) - build(npm): bump eslint-plugin-import from 2.28.0 to 2.29.0 (#1221), 2023-11-29 by *dependabot[bot]* -- [f8be6ab](https://github.com/AxaFrance/oidc-client/commit/f8be6ab1096143c1a2eb35408669aef6df72d2d9) - doc(redame): fix service worker command to work with oidc-client standalone (#1200), 2023-11-29 by *Felix Roos* - - From 77eb9e1841814cfeb6c6672159740dad4c0a9d4d Mon Sep 17 00:00:00 2001 From: radk0s Date: Tue, 2 Jul 2024 08:16:08 +0200 Subject: [PATCH 279/440] fix(oidc): MessageChannel is not closed after message is received (release) (#1396) Co-authored-by: rchamot --- packages/oidc-client/src/initWorker.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/oidc-client/src/initWorker.ts b/packages/oidc-client/src/initWorker.ts index a48ce4011..aa47abf98 100644 --- a/packages/oidc-client/src/initWorker.ts +++ b/packages/oidc-client/src/initWorker.ts @@ -56,6 +56,9 @@ const sendMessageAsync = (registration) => (data) : Promise => { } else { resolve(event.data); } + + messageChannel.port1.close(); + messageChannel.port2.close(); }; registration.active.postMessage(data, [messageChannel.port2]); }); From 14e66ee7ea6a87df8f4a19832892dd032abda6d6 Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 2 Jul 2024 06:18:50 +0000 Subject: [PATCH 280/440] [skip ci] Update to version 7.22.9 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index db2e6404f..a7ecadb2e 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.22.8", + "version": "7.22.9", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 3d587e19d..e9360ead8 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.22.8'; +export default '7.22.9'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 040d00695..b21bce7e9 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.22.8", + "version": "7.22.9", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 3d587e19d..e9360ead8 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.22.8'; +export default '7.22.9'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 0ea37ecc5..e48c8ee48 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.22.8", + "version": "7.22.9", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 388bd33a54c546afeee496b0f7d58f2c4f51da5e Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 2 Jul 2024 06:18:52 +0000 Subject: [PATCH 281/440] [skip ci] Generate changelog to version 7.22.9 --- CHANGELOG.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3736d5082..35904158f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog -## 7.22.8 +## 7.22.9 + +- [77eb9e1](https://github.com/AxaFrance/oidc-client/commit/77eb9e1841814cfeb6c6672159740dad4c0a9d4d) - fix(oidc): MessageChannel is not closed after message is received (release) (#1396), 2024-07-02 by *radk0s* + + +## v7.22.8 - [c4cf94b](https://github.com/AxaFrance/oidc-client/commit/c4cf94b62a7b2c45cf0f94438a02f0cb5f06b9b0) - fix(oidc): remove dynamic web worker blocked by policies (release) (#1386), 2024-06-18 by *Guillaume Chervet* @@ -313,8 +318,3 @@ - [6027511](https://github.com/AxaFrance/oidc-client/commit/6027511a0c8d2112d370d45cf42f144874112f77) - doc(readme) Update README.md, 2023-11-29 by *Guillaume Chervet* -## v7.12.10 - -- [a9cd4d2](https://github.com/AxaFrance/oidc-client/commit/a9cd4d25ef8d66bd12e5c0e921b9fd1bc4a137ba) - build(npm): bump @testing-library/react from 13.3.0 to 14.1.2 (#1222), 2023-11-29 by *dependabot[bot]* - - From 6c80c5cc77750aead50e62136a6594b05f21b42b Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Thu, 4 Jul 2024 16:15:47 +0200 Subject: [PATCH 282/440] fix(oidc): logout trigger login (release) (#1394) * fix(oidc): logout trigger login * fix (alpha) * add use case to demo --- examples/react-oidc-demo/src/Profile.tsx | 14 ++++++++++++-- packages/oidc-client/src/oidc.ts | 4 ++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/examples/react-oidc-demo/src/Profile.tsx b/examples/react-oidc-demo/src/Profile.tsx index 1a767f3a5..25d5584fd 100644 --- a/examples/react-oidc-demo/src/Profile.tsx +++ b/examples/react-oidc-demo/src/Profile.tsx @@ -1,4 +1,12 @@ -import { OidcSecure, type OidcUserInfo, OidcUserStatus, useOidcAccessToken, useOidcIdToken, useOidcUser } from '@axa-fr/react-oidc'; +import { + OidcSecure, + type OidcUserInfo, + OidcUserStatus, + useOidc, + useOidcAccessToken, + useOidcIdToken, + useOidcUser +} from '@axa-fr/react-oidc'; import React from 'react'; interface OidcUserRoleInfo extends OidcUserInfo{ @@ -31,8 +39,10 @@ const DisplayUserInfo = () => { }; export const Profile = () => { + const { logout, isAuthenticated } = useOidc(); return ( -
+
+ {isAuthenticated &&

} diff --git a/packages/oidc-client/src/oidc.ts b/packages/oidc-client/src/oidc.ts index b5b8e9079..cf3e19049 100644 --- a/packages/oidc-client/src/oidc.ts +++ b/packages/oidc-client/src/oidc.ts @@ -252,6 +252,10 @@ Please checkout that you are using OIDC hook inside a = null; async loginAsync(callbackPath:string = undefined, extras:StringMap = null, isSilentSignin = false, scope:string = undefined, silentLoginOnly = false) { + if (this.logoutPromise) { + await this.logoutPromise; + } + if (this.loginPromise !== null) { return this.loginPromise; } From 95c814dd9dd325a3a00c3a0dc049d301d983514e Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Fri, 5 Jul 2024 09:54:16 +0200 Subject: [PATCH 283/440] fix(ci): setup pnpm (release) (#1399) --- .../azure-static-web-apps-black-rock-0dc6b0d03.yml | 4 ++-- .../azure-static-web-apps-icy-glacier-004ab4303.yml | 4 ++-- .github/workflows/ci.yml | 4 ++-- .github/workflows/lint.yml | 4 ++-- .github/workflows/npm-publish.yml | 6 +++--- package.json | 2 +- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/azure-static-web-apps-black-rock-0dc6b0d03.yml b/.github/workflows/azure-static-web-apps-black-rock-0dc6b0d03.yml index 84e09145e..ef1ceae2f 100644 --- a/.github/workflows/azure-static-web-apps-black-rock-0dc6b0d03.yml +++ b/.github/workflows/azure-static-web-apps-black-rock-0dc6b0d03.yml @@ -10,7 +10,7 @@ on: - main env: - PNPM_VERSION: 8.5.1 + PNPM_VERSION: 8.6.11 NODE_VERSION: 18 jobs: skip_ci: @@ -31,7 +31,7 @@ jobs: - uses: actions/setup-node@v2 with: node-version: ${{ env.NODE_VERSION }} - - uses: pnpm/action-setup@v2 + - uses: pnpm/action-setup@v4 name: Install pnpm with: version: ${{ env.PNPM_VERSION }} diff --git a/.github/workflows/azure-static-web-apps-icy-glacier-004ab4303.yml b/.github/workflows/azure-static-web-apps-icy-glacier-004ab4303.yml index b4f7a1d4e..36d7b0f3b 100644 --- a/.github/workflows/azure-static-web-apps-icy-glacier-004ab4303.yml +++ b/.github/workflows/azure-static-web-apps-icy-glacier-004ab4303.yml @@ -10,7 +10,7 @@ on: - main env: - PNPM_VERSION: 8.5.1 + PNPM_VERSION: 8.6.11 NODE_VERSION: 18 jobs: skip_ci: @@ -31,7 +31,7 @@ jobs: - uses: actions/setup-node@v2 with: node-version: ${{ env.NODE_VERSION }} - - uses: pnpm/action-setup@v2 + - uses: pnpm/action-setup@v4 name: Install pnpm with: version: ${{ env.PNPM_VERSION }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e939c8e61..aadcf5860 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,7 +9,7 @@ on: # branches: [ main ] env: - PNPM_VERSION: 8.5.1 + PNPM_VERSION: 8.6.11 NODE_VERSION: 18 jobs: @@ -24,7 +24,7 @@ jobs: with: node-version: ${{ env.NODE_VERSION }} - - uses: pnpm/action-setup@v2 + - uses: pnpm/action-setup@v4 name: Install pnpm with: version: ${{ env.PNPM_VERSION }} diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 5797ce19a..e44f85d5f 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -11,7 +11,7 @@ on: # - main env: - PNPM_VERSION: 8.5.1 + PNPM_VERSION: 8.6.11 NODE_VERSION: 18 jobs: @@ -28,7 +28,7 @@ jobs: with: node-version: ${{ env.NODE_VERSION }} - - uses: pnpm/action-setup@v2 + - uses: pnpm/action-setup@v4 name: Install pnpm with: version: ${{ env.PNPM_VERSION }} diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml index f90b150ff..42c64308b 100644 --- a/.github/workflows/npm-publish.yml +++ b/.github/workflows/npm-publish.yml @@ -10,7 +10,7 @@ on: branches: [ main ] env: - PNPM_VERSION: 8.5.1 + PNPM_VERSION: 8.6.11 NODE_VERSION: 18 jobs: skip_ci: @@ -29,7 +29,7 @@ jobs: with: node-version: ${{ env.NODE_VERSION }} - - uses: pnpm/action-setup@v2 + - uses: pnpm/action-setup@v4 name: Install pnpm with: version: ${{ env.PNPM_VERSION }} @@ -124,7 +124,7 @@ jobs: with: node-version: ${{ env.NODE_VERSION }} - - uses: pnpm/action-setup@v2 + - uses: pnpm/action-setup@v4 name: Install pnpm with: version: ${{ env.PNPM_VERSION }} diff --git a/package.json b/package.json index e067fd542..12901f112 100644 --- a/package.json +++ b/package.json @@ -51,5 +51,5 @@ "engines": { "node": "16.* || >= 18.0.0" }, - "packageManager": "pnpm@8.6.7" + "packageManager": "pnpm@8.6.11" } \ No newline at end of file From bc5fd58773a806400504f84c56d3d6d890c1f7ea Mon Sep 17 00:00:00 2001 From: GitHub Date: Fri, 5 Jul 2024 07:56:39 +0000 Subject: [PATCH 284/440] [skip ci] Update to version 7.22.13 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index a7ecadb2e..9b4f1c20c 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.22.9", + "version": "7.22.13", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index e9360ead8..5c5154488 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.22.9'; +export default '7.22.13'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index b21bce7e9..b212dee77 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.22.9", + "version": "7.22.13", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index e9360ead8..5c5154488 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.22.9'; +export default '7.22.13'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index e48c8ee48..246937cbe 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.22.9", + "version": "7.22.13", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From e07f8492c06b6607128a5e2c8e20e55dc0ef82a6 Mon Sep 17 00:00:00 2001 From: GitHub Date: Fri, 5 Jul 2024 07:56:41 +0000 Subject: [PATCH 285/440] [skip ci] Generate changelog to version 7.22.13 --- CHANGELOG.md | 41 +++++++++++++++++++---------------------- 1 file changed, 19 insertions(+), 22 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 35904158f..fa2bced4d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,24 @@ # Changelog -## 7.22.9 +## 7.22.13 + +- [95c814d](https://github.com/AxaFrance/oidc-client/commit/95c814dd9dd325a3a00c3a0dc049d301d983514e) - fix(ci): setup pnpm (release) (#1399), 2024-07-05 by *Guillaume Chervet* + + +## v7.22.12 + + + +## v7.22.11 + + + +## v7.22.10 + +- [6c80c5c](https://github.com/AxaFrance/oidc-client/commit/6c80c5cc77750aead50e62136a6594b05f21b42b) - fix(oidc): logout trigger login (release) (#1394), 2024-07-04 by *Guillaume Chervet* + + +## v7.22.9 - [77eb9e1](https://github.com/AxaFrance/oidc-client/commit/77eb9e1841814cfeb6c6672159740dad4c0a9d4d) - fix(oidc): MessageChannel is not closed after message is received (release) (#1396), 2024-07-02 by *radk0s* @@ -297,24 +315,3 @@ - [430a06b](https://github.com/AxaFrance/oidc-client/commit/430a06b27b2f7164bc1557a2e55e547b5af3d8d7) - build(npm): bump vite from 4.4.7 to 4.4.12 (#1231), 2023-12-07 by *dependabot[bot]* -## v7.13.1 - -- [96637a7](https://github.com/AxaFrance/oidc-client/commit/96637a73252e9ea34d8687409131f58f09633da6) - fix(oidc): sessions storage renew tokens (release) (#1230), 2023-12-05 by *Guillaume Chervet* - - -## v7.13.0 - -- [49c3d5e](https://github.com/AxaFrance/oidc-client/commit/49c3d5e5487d714ccd97272e37fc34f2a7bd0ff6) - feat(oidc-client): allow to take control on service-worker registration (release) (#1229), 2023-12-04 by *Guillaume Chervet* - - -## v7.12.12 - -- [b070c88](https://github.com/AxaFrance/oidc-client/commit/b070c8848582ac6f52ab7cb00f16b0fe9f702b5f) - fix(oidc-client): Update README.md (release), 2023-11-30 by *Guillaume Chervet* - - -## v7.12.11 - -- [d1480fb](https://github.com/AxaFrance/oidc-client/commit/d1480fbe2c0e275f17775768f83b70d9adf00ee1) - fix(all): dependencies update break the build (release), 2023-11-30 by *Guillaume Chervet* -- [6027511](https://github.com/AxaFrance/oidc-client/commit/6027511a0c8d2112d370d45cf42f144874112f77) - doc(readme) Update README.md, 2023-11-29 by *Guillaume Chervet* - - From 25c55eeb7682356c13987a91d7b8645cca1b0ad5 Mon Sep 17 00:00:00 2001 From: Jason Finch Date: Thu, 11 Jul 2024 01:53:12 +1000 Subject: [PATCH 286/440] refactor(oidc): null coalescing (#1404) (release) --- .../src/OidcServiceWorker.ts | 22 +++++-------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/packages/oidc-client-service-worker/src/OidcServiceWorker.ts b/packages/oidc-client-service-worker/src/OidcServiceWorker.ts index cb3b7ba93..768b5bf9f 100644 --- a/packages/oidc-client-service-worker/src/OidcServiceWorker.ts +++ b/packages/oidc-client-service-worker/src/OidcServiceWorker.ts @@ -97,8 +97,7 @@ const keepAliveAsync = async (event: FetchEvent) => { async function generateDpopAsync(originalRequest: Request, currentDatabase:OidcConfig|null, url: string, extrasClaims={} ) { const headersExtras = serializeHeaders(originalRequest.headers); - if (currentDatabase && - currentDatabase.demonstratingProofOfPossessionConfiguration && + if (currentDatabase?.demonstratingProofOfPossessionConfiguration && currentDatabase.demonstratingProofOfPossessionJwkJson && (!currentDatabase.demonstratingProofOfPossessionOnlyWhenDpopHeaderPresent || currentDatabase.demonstratingProofOfPossessionOnlyWhenDpopHeaderPresent && headersExtras['dpop']) ) { @@ -125,11 +124,7 @@ const handleFetch = async (event: FetchEvent) => { url, trustedDomains, ); - if ( - currentDatabaseForRequestAccessToken && - currentDatabaseForRequestAccessToken.tokens && - currentDatabaseForRequestAccessToken.tokens.access_token - ) { + if (currentDatabaseForRequestAccessToken?.tokens?.access_token) { while ( currentDatabaseForRequestAccessToken.tokens && !isTokensValid(currentDatabaseForRequestAccessToken.tokens) @@ -205,7 +200,7 @@ const handleFetch = async (event: FetchEvent) => { let newBody = actualBody; for (let i = 0; i < numberDatabase; i++) { const currentDb = currentDatabases[i]; - if (currentDb && currentDb.tokens != null) { + if (currentDb?.tokens != null) { const claimsExtras = {ath: await base64urlOfHashOfASCIIEncodingAsync(currentDb.tokens.access_token),}; headers = await generateDpopAsync(originalRequest, currentDb, url, claimsExtras); const keyRefreshToken = @@ -246,10 +241,7 @@ const handleFetch = async (event: FetchEvent) => { integrity: clonedRequest.integrity, }); - if ( - currentDatabase && - currentDatabase.oidcServerConfiguration != null && - currentDatabase.oidcServerConfiguration.revocationEndpoint && + if (currentDatabase?.oidcServerConfiguration?.revocationEndpoint && url.startsWith( normalizeUrl( currentDatabase.oidcServerConfiguration.revocationEndpoint, @@ -272,7 +264,7 @@ const handleFetch = async (event: FetchEvent) => { // @ts-ignore currentDatabase = database[currentLoginCallbackConfigurationName]; let newBody = actualBody; - if (currentDatabase && currentDatabase.codeVerifier != null) { + if (currentDatabase?.codeVerifier != null) { newBody = replaceCodeVerifier( newBody, currentDatabase.codeVerifier, @@ -435,9 +427,7 @@ const handleMessage = async (event: ExtendableMessageEvent) => { if (tokens.refresh_token) { tokens.refresh_token = TOKEN.REFRESH_TOKEN + '_' + configurationName; } - if ( - tokens.idTokenPayload && - tokens.idTokenPayload.nonce && + if (tokens?.idTokenPayload?.nonce && currentDatabase.nonce != null ) { tokens.idTokenPayload.nonce = From ea8d7cd46f047b793afd798069a5935c249bac4b Mon Sep 17 00:00:00 2001 From: GitHub Date: Wed, 10 Jul 2024 15:55:47 +0000 Subject: [PATCH 287/440] [skip ci] Update to version 7.22.14 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 9b4f1c20c..6f17eb793 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.22.13", + "version": "7.22.14", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 5c5154488..03d2f7ab3 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.22.13'; +export default '7.22.14'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index b212dee77..dfabd6d3b 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.22.13", + "version": "7.22.14", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 5c5154488..03d2f7ab3 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.22.13'; +export default '7.22.14'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 246937cbe..0eb33fbaf 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.22.13", + "version": "7.22.14", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 4426d5daeb136417178bb2baaed18a71f9c8370c Mon Sep 17 00:00:00 2001 From: GitHub Date: Wed, 10 Jul 2024 15:55:49 +0000 Subject: [PATCH 288/440] [skip ci] Generate changelog to version 7.22.14 --- CHANGELOG.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fa2bced4d..ac450d052 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog -## 7.22.13 +## 7.22.14 + +- [25c55ee](https://github.com/AxaFrance/oidc-client/commit/25c55eeb7682356c13987a91d7b8645cca1b0ad5) - refactor(oidc): null coalescing (#1404) (release), 2024-07-11 by *Jason Finch* + + +## v7.22.13 - [95c814d](https://github.com/AxaFrance/oidc-client/commit/95c814dd9dd325a3a00c3a0dc049d301d983514e) - fix(ci): setup pnpm (release) (#1399), 2024-07-05 by *Guillaume Chervet* @@ -310,8 +315,3 @@ - [43eac59](https://github.com/AxaFrance/oidc-client/commit/43eac59f1598ab6a5b07dc52deed95297c73f875) - build(npm): bump vite-plugin-dts from 3.4.0 to 3.6.4 (#1227), 2023-12-07 by *dependabot[bot]* -## v7.13.2 - -- [430a06b](https://github.com/AxaFrance/oidc-client/commit/430a06b27b2f7164bc1557a2e55e547b5af3d8d7) - build(npm): bump vite from 4.4.7 to 4.4.12 (#1231), 2023-12-07 by *dependabot[bot]* - - From e51aef268e783259c035e3ba58bf9aa16a111bea Mon Sep 17 00:00:00 2001 From: Jason Finch Date: Thu, 11 Jul 2024 02:05:06 +1000 Subject: [PATCH 289/440] fix (Style): fix 'container' classname in demo. (#1401) --- examples/react-oidc-demo/src/Profile.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/react-oidc-demo/src/Profile.tsx b/examples/react-oidc-demo/src/Profile.tsx index 25d5584fd..73a1028eb 100644 --- a/examples/react-oidc-demo/src/Profile.tsx +++ b/examples/react-oidc-demo/src/Profile.tsx @@ -41,7 +41,7 @@ const DisplayUserInfo = () => { export const Profile = () => { const { logout, isAuthenticated } = useOidc(); return ( -
+
{isAuthenticated &&

} From 73eae7e9d68dea6ebec0ed82ba7873941c0e371e Mon Sep 17 00:00:00 2001 From: Jason Finch Date: Thu, 11 Jul 2024 05:26:19 +1000 Subject: [PATCH 290/440] refactor(oidcServiceWorker): Extract GetCurrentDatabaseTokenEndpoint, add tests. (#1405) (release) --- .../src/OidcServiceWorker.ts | 22 +-- .../src/__tests__/oidcConfig.spec.ts | 152 ++++++++++++++++++ .../src/oidcConfig.ts | 17 ++ 3 files changed, 170 insertions(+), 21 deletions(-) create mode 100644 packages/oidc-client-service-worker/src/__tests__/oidcConfig.spec.ts create mode 100644 packages/oidc-client-service-worker/src/oidcConfig.ts diff --git a/packages/oidc-client-service-worker/src/OidcServiceWorker.ts b/packages/oidc-client-service-worker/src/OidcServiceWorker.ts index 768b5bf9f..1d4466c11 100644 --- a/packages/oidc-client-service-worker/src/OidcServiceWorker.ts +++ b/packages/oidc-client-service-worker/src/OidcServiceWorker.ts @@ -20,6 +20,7 @@ import version from './version'; import {generateJwkAsync, generateJwtDemonstratingProofOfPossessionAsync} from "./jwt"; import {getDpopConfiguration, getDpopOnlyWhenDpopHeaderPresent} from "./dpop"; import {base64urlOfHashOfASCIIEncodingAsync} from "./crypto"; +import { getCurrentDatabasesTokenEndpoint } from './oidcConfig'; // @ts-ignore if (typeof trustedTypes !== 'undefined' && typeof trustedTypes.createPolicy == 'function') { @@ -56,27 +57,6 @@ const handleActivate = (event: ExtendableEvent) => { const database: Database = {}; -const getCurrentDatabasesTokenEndpoint = (database: Database, url: string) => { - const databases: OidcConfig[] = []; - for (const [, value] of Object.entries(database)) { - if ( - value.oidcServerConfiguration != null && - url.startsWith(normalizeUrl(value.oidcServerConfiguration.tokenEndpoint)) - ) { - databases.push(value); - } else if ( - value.oidcServerConfiguration != null && - value.oidcServerConfiguration.revocationEndpoint && - url.startsWith( - normalizeUrl(value.oidcServerConfiguration.revocationEndpoint), - ) - ) { - databases.push(value); - } - } - return databases; -}; - const keepAliveAsync = async (event: FetchEvent) => { const originalRequest = event.request; const isFromVanilla = originalRequest.headers.has('oidc-vanilla'); diff --git a/packages/oidc-client-service-worker/src/__tests__/oidcConfig.spec.ts b/packages/oidc-client-service-worker/src/__tests__/oidcConfig.spec.ts new file mode 100644 index 000000000..186fff848 --- /dev/null +++ b/packages/oidc-client-service-worker/src/__tests__/oidcConfig.spec.ts @@ -0,0 +1,152 @@ +import { describe, expect, it } from 'vitest' +import { getCurrentDatabasesTokenEndpoint } from '../oidcConfig' +import { Database } from '../types' + +const oidcConfigDefaults = { + demonstratingProofOfPossessionConfiguration: null, + configurationName: '', + tokens: null, + status: null, + state: null, + codeVerifier: null, + nonce: null, + hideAccessToken: false, + convertAllRequestsToCorsExceptNavigate: true, + setAccessTokenToNavigateRequests: true, + demonstratingProofOfPossessionNonce: null, + demonstratingProofOfPossessionJwkJson: null, + demonstratingProofOfPossessionOnlyWhenDpopHeaderPresent: false, +} + +const oidcServerConfigDefault = { + revocationEndpoint: '', + tokenEndpoint: '', + issuer: '', + userInfoEndpoint: '', + authorizationEndpoint: '' +} + +describe('getCurrentDatabasesTokenEndpoint', () => { + it('should return configs with matching token endpoint', () => { + const database: Database = { + config1: { + ...oidcConfigDefaults, + oidcServerConfiguration: { + ...oidcServerConfigDefault, + tokenEndpoint: 'https://example.com/token', + }, + }, + config2: { + ...oidcConfigDefaults, + oidcServerConfiguration: { + ...oidcServerConfigDefault, + tokenEndpoint: 'https://example.org/token', + }, + }, + config3: { + ...oidcConfigDefaults, + oidcServerConfiguration: { + ...oidcServerConfigDefault, + revocationEndpoint: 'https://example.net/revoke', + }, + }, + } + + const url = 'https://example.com/token' + const result = getCurrentDatabasesTokenEndpoint(database, url) + + expect(result).toHaveLength(1) + expect(result[0]).toBe(database.config1) + }) + + it('should return configs with matching revocation endpoint', () => { + const database = { + config1: { + ...oidcConfigDefaults, + oidcServerConfiguration: { + ...oidcServerConfigDefault, + revocationEndpoint: 'https://example.com/revoke', + }, + }, + config2: { + ...oidcConfigDefaults, + oidcServerConfiguration: { + ...oidcServerConfigDefault, + revocationEndpoint: 'https://example.org/revoke', + }, + }, + config3: { + ...oidcConfigDefaults, + oidcServerConfiguration: { + ...oidcServerConfigDefault, + tokenEndpoint: 'https://example.net/token', + }, + }, + } + + const url = 'https://example.com/revoke' + const result = getCurrentDatabasesTokenEndpoint(database, url) + + expect(result).toHaveLength(1) + expect(result[0]).toBe(database.config1) + }) + + it('should return multiple matching configs', () => { + const database = { + config1: { + ...oidcConfigDefaults, + oidcServerConfiguration: { + ...oidcServerConfigDefault, + tokenEndpoint: 'https://example.com/token', + revocationEndpoint: 'https://example.com/revoke', + }, + }, + config2: { + ...oidcConfigDefaults, + oidcServerConfiguration: { + ...oidcServerConfigDefault, + tokenEndpoint: 'https://example.org/token', + }, + }, + config3: { + ...oidcConfigDefaults, + oidcServerConfiguration: { + ...oidcServerConfigDefault, + tokenEndpoint: 'https://example.com/token', + revocationEndpoint: 'https://example.com/revoke', + }, + }, + } + + const url = 'https://example.com/token' + const result = getCurrentDatabasesTokenEndpoint(database, url) + + expect(result).toHaveLength(2) + expect(result).toContain(database.config1) + expect(result).toContain(database.config3) + }) + + it('should return empty array for no matching configs', () => { + const database = { + config1: { + ...oidcConfigDefaults, + oidcServerConfiguration: { + ...oidcServerConfigDefault, + tokenEndpoint: 'https://example.com/token', + }, + }, + config2: { + ...oidcConfigDefaults, + oidcServerConfiguration: { + ...oidcServerConfigDefault, + revocationEndpoint: 'https://example.org/revoke', + }, + }, + } + + const url = 'https://example.net/other' + const result = getCurrentDatabasesTokenEndpoint(database, url) + + expect(result).toHaveLength(0) + }) +}) diff --git a/packages/oidc-client-service-worker/src/oidcConfig.ts b/packages/oidc-client-service-worker/src/oidcConfig.ts new file mode 100644 index 000000000..5b6fcf93d --- /dev/null +++ b/packages/oidc-client-service-worker/src/oidcConfig.ts @@ -0,0 +1,17 @@ +import { Database, OidcConfig } from './types'; +import { normalizeUrl } from './utils'; + +const getMatchingOidcConfigurations = (database: Database, url: string): OidcConfig[] => { + return Object.values(database).filter((config) => { + const { oidcServerConfiguration } = config || {}; + const { tokenEndpoint, revocationEndpoint } = oidcServerConfiguration || {}; + + const normalizedUrl = normalizeUrl(url); + return ( + (tokenEndpoint && normalizedUrl.startsWith(normalizeUrl(tokenEndpoint))) || + (revocationEndpoint && normalizedUrl.startsWith(normalizeUrl(revocationEndpoint))) + ); + }); +}; + +export { getMatchingOidcConfigurations as getCurrentDatabasesTokenEndpoint }; From 5ef279f83d0d7c491699f3ae098251e92f8101a0 Mon Sep 17 00:00:00 2001 From: GitHub Date: Wed, 10 Jul 2024 19:28:48 +0000 Subject: [PATCH 291/440] [skip ci] Update to version 7.22.15 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 6f17eb793..f4a1c3605 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.22.14", + "version": "7.22.15", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 03d2f7ab3..81b9c4b57 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.22.14'; +export default '7.22.15'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index dfabd6d3b..8d0ea5a9e 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.22.14", + "version": "7.22.15", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 03d2f7ab3..81b9c4b57 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.22.14'; +export default '7.22.15'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 0eb33fbaf..dcbdc8be4 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.22.14", + "version": "7.22.15", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 4306e3b3e0a6c4a0eeff42d9dba1e7089de2d6cd Mon Sep 17 00:00:00 2001 From: GitHub Date: Wed, 10 Jul 2024 19:28:49 +0000 Subject: [PATCH 292/440] [skip ci] Generate changelog to version 7.22.15 --- CHANGELOG.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ac450d052..cd3ce2ca2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,12 @@ # Changelog -## 7.22.14 +## 7.22.15 + +- [73eae7e](https://github.com/AxaFrance/oidc-client/commit/73eae7e9d68dea6ebec0ed82ba7873941c0e371e) - refactor(oidcServiceWorker): Extract GetCurrentDatabaseTokenEndpoint, add tests. (#1405) (release), 2024-07-11 by *Jason Finch* +- [e51aef2](https://github.com/AxaFrance/oidc-client/commit/e51aef268e783259c035e3ba58bf9aa16a111bea) - fix (Style): fix 'container' classname in demo. (#1401), 2024-07-11 by *Jason Finch* + + +## v7.22.14 - [25c55ee](https://github.com/AxaFrance/oidc-client/commit/25c55eeb7682356c13987a91d7b8645cca1b0ad5) - refactor(oidc): null coalescing (#1404) (release), 2024-07-11 by *Jason Finch* @@ -310,8 +316,3 @@ - [33a9c83](https://github.com/AxaFrance/oidc-client/commit/33a9c8349f23d98960fb4c60f49d7fd19572cca5) - build(npm): bump react-router-dom from 6.14.2 to 6.20.1 (#1234), 2023-12-07 by *dependabot[bot]* -## v7.13.3 - -- [43eac59](https://github.com/AxaFrance/oidc-client/commit/43eac59f1598ab6a5b07dc52deed95297c73f875) - build(npm): bump vite-plugin-dts from 3.4.0 to 3.6.4 (#1227), 2023-12-07 by *dependabot[bot]* - - From c56ceb815b28dd5990fe4a1679a61bcebc7e525a Mon Sep 17 00:00:00 2001 From: Jason Finch Date: Fri, 12 Jul 2024 02:20:53 +1000 Subject: [PATCH 293/440] docs(readme): Update README.md (#1407) * docs: Update README.md Markup warning blocks * docs: Readme Add bundle size minified+gzip --- README.md | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 4b40a3ce1..2b5748b5b 100644 --- a/README.md +++ b/README.md @@ -34,14 +34,13 @@ Demos: - Try the react demo at https://black-rock-0dc6b0d03.1.azurestaticapps.net/ (most advanced) - Try the pure javascript demo at https://icy-glacier-004ab4303.2.azurestaticapps.net/ - **@axa-fr/oidc-client** is: - **Secure** : - With Demonstrating Proof of Possession (DPoP), your access_token and refresh_token are not usable outside your browser context (big protection) - With the use of Service Worker, your tokens (refresh_token and/or access_token) are not accessible to the JavaScript client code (if you follow good practices from [`FAQ`](https://github.com/AxaFrance/oidc-client/blob/main/FAQ.md) section) - OIDC using client side Code Credential Grant with pkce only -- **Lightweight** : Unpacked Size on npm is **274 kB** +- **Lightweight** : Unpacked Size on npm is **274 kB**, Minified `61.1kB`, Minified+GZIPPED `16.8kB` [Pkg stats via Bundlephobia.com](https://bundlephobia.com/package/@axa-fr/react-oidc) - **Simple** - refresh_token and access_token are auto refreshed in background - with the use of the Service Worker, you do not need to inject the access_token in every fetch, you have only to configure OidcTrustedDomains.js file @@ -56,6 +55,7 @@ Works perfectly well with: - [Auth0](https://auth0.com/) - [Duende Identity Server](https://duendesoftware.com/) +- [Identity Server 4](https://github.com/IdentityServer/IdentityServer4) - Azure AD - Google - AWS @@ -78,8 +78,11 @@ node ./node_modules/@axa-fr/oidc-client/bin/copy-service-worker-files.mjs public # ./public/OidcTrustedDomains.js <-- won't be updated if already exist ``` -WARNING : If you use Service Worker mode, the OidcServiceWorker.js file should always be up to date with the version of the library. You may setup a postinstall script in your package.json file to update it at each npm install. For example : -```sh + +> [!WARNING] +> If you use `Service Worker` mode, the `OidcServiceWorker.js` file should always be up to date with the version of the library. You may setup a postinstall script in your `package.json` file to update it at each npm install. For example : + +```json "scripts": { ... "postinstall": "node ./node_modules/@axa-fr/oidc-client/bin/copy-service-worker-files.mjs public" @@ -103,15 +106,17 @@ node ./node_modules/@axa-fr/react-oidc/bin/copy-service-worker-files.mjs public # ./public/OidcTrustedDomains.js <-- won't be updated if already exist ``` -WARNING : If you use Service Worker mode, the OidcServiceWorker.js file should always be up-to-date with the version of the library. You may setup a postinstall script in your package.json file to update it at each npm install. For example : -```sh +> [!WARNING] +> If you use Service Worker mode, the OidcServiceWorker.js file should always be up-to-date with the version of the library. You may setup a postinstall script in your package.json file to update it at each npm install. For example : + +```json "scripts": { ... "postinstall": "node ./node_modules/@axa-fr/react-oidc/bin/copy-service-worker-files.mjs public" }, ``` -More documentation : +More documentation: - [`@axa-fr/react-oidc`](./packages/react-oidc#readme) From 72a6373402a53aaaf01ad7fac22f8ad8c6feaff0 Mon Sep 17 00:00:00 2001 From: Miya <44374710+krzempekk@users.noreply.github.com> Date: Thu, 11 Jul 2024 18:23:05 +0200 Subject: [PATCH 294/440] fix(oidc): improve error handling (release) (#1403) Co-authored-by: mkrzempek --- packages/oidc-client/src/oidc.ts | 7 +++++-- packages/oidc-client/src/renewTokens.ts | 16 ++++++++++++++-- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/packages/oidc-client/src/oidc.ts b/packages/oidc-client/src/oidc.ts index cf3e19049..1c5129b5d 100644 --- a/packages/oidc-client/src/oidc.ts +++ b/packages/oidc-client/src/oidc.ts @@ -228,9 +228,12 @@ Please checkout that you are using OIDC hook inside a { + return this.initPromise.finally(() => { + // in case if anything went wrong with the promise, we should reset the initPromise to null too + // otherwise client can't re-init the OIDC client + // as the promise is already fulfilled with rejected state, so could not ever reach this point again, + // so that leads to infinite loop of calls, when client tries to re-init the OIDC client after error this.initPromise = null; - return result; }); } diff --git a/packages/oidc-client/src/renewTokens.ts b/packages/oidc-client/src/renewTokens.ts index 882eb06cb..1fa25211d 100644 --- a/packages/oidc-client/src/renewTokens.ts +++ b/packages/oidc-client/src/renewTokens.ts @@ -321,7 +321,19 @@ const synchroniseTokensAsync = (oidc:Oidc) => async (index = 0, forceRefresh = f } } catch (exception: any) { console.error(exception); - oidc.publishEvent(eventNames.refreshTokensAsync_silent_error, { message: 'exception', exception: exception.message }); - return synchroniseTokensAsync(oidc)(nextIndex, forceRefresh, extras, updateTokens); + oidc.publishEvent(eventNames.refreshTokensAsync_silent_error, { + message: 'exception', + exception: exception.message, + }); + // we need to break the loop or errors, as direct call of synchroniseTokensAsync + // inside of synchroniseTokensAsync will cause an infinite loop and kill the browser stack + // so we need to brake calls chain and delay next call + return new Promise((resolve, reject) => { + setTimeout(() => { + synchroniseTokensAsync(oidc)(nextIndex, forceRefresh, extras, updateTokens) + .then(resolve) + .catch(reject); + }, 1000); + }); } } \ No newline at end of file From 6f8df2a156fd90ae031328a97ddcf3137c761490 Mon Sep 17 00:00:00 2001 From: GitHub Date: Thu, 11 Jul 2024 16:25:42 +0000 Subject: [PATCH 295/440] [skip ci] Update to version 7.22.16 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index f4a1c3605..3d24cd07b 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.22.15", + "version": "7.22.16", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 81b9c4b57..1097aee35 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.22.15'; +export default '7.22.16'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 8d0ea5a9e..49e1df44f 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.22.15", + "version": "7.22.16", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 81b9c4b57..1097aee35 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.22.15'; +export default '7.22.16'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index dcbdc8be4..f8ba2d4c2 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.22.15", + "version": "7.22.16", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 32c370bfb1536449215e21046e0c9bd8f3135d52 Mon Sep 17 00:00:00 2001 From: GitHub Date: Thu, 11 Jul 2024 16:25:44 +0000 Subject: [PATCH 296/440] [skip ci] Generate changelog to version 7.22.16 --- CHANGELOG.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cd3ce2ca2..a33afeef0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,12 @@ # Changelog -## 7.22.15 +## 7.22.16 + +- [72a6373](https://github.com/AxaFrance/oidc-client/commit/72a6373402a53aaaf01ad7fac22f8ad8c6feaff0) - fix(oidc): improve error handling (release) (#1403), 2024-07-11 by *Miya* +- [c56ceb8](https://github.com/AxaFrance/oidc-client/commit/c56ceb815b28dd5990fe4a1679a61bcebc7e525a) - docs(readme): Update README.md (#1407), 2024-07-12 by *Jason Finch* + + +## v7.22.15 - [73eae7e](https://github.com/AxaFrance/oidc-client/commit/73eae7e9d68dea6ebec0ed82ba7873941c0e371e) - refactor(oidcServiceWorker): Extract GetCurrentDatabaseTokenEndpoint, add tests. (#1405) (release), 2024-07-11 by *Jason Finch* - [e51aef2](https://github.com/AxaFrance/oidc-client/commit/e51aef268e783259c035e3ba58bf9aa16a111bea) - fix (Style): fix 'container' classname in demo. (#1401), 2024-07-11 by *Jason Finch* @@ -311,8 +317,3 @@ - [8f5f888](https://github.com/AxaFrance/oidc-client/commit/8f5f888fe34d739ded51f611e194d77a2e788830) - build(npm): bump eslint-plugin-regexp from 1.15.0 to 2.1.2 (#1233), 2023-12-07 by *dependabot[bot]* -## v7.13.4 - -- [33a9c83](https://github.com/AxaFrance/oidc-client/commit/33a9c8349f23d98960fb4c60f49d7fd19572cca5) - build(npm): bump react-router-dom from 6.14.2 to 6.20.1 (#1234), 2023-12-07 by *dependabot[bot]* - - From a989ed29f46b66483bc2c7c51e73bcc19b2c9736 Mon Sep 17 00:00:00 2001 From: Jason Finch Date: Sat, 13 Jul 2024 06:49:23 +1000 Subject: [PATCH 297/440] build(lint): Update lint step to run. (#1409) - Update eslint job to latest agent versions - Update eslint packages and migrate config to eslint.config format NOTE: - testing-library commented out (not compatbile) - comment out wearerequired/lint-action@v2 action and replace with pnpm run lint, (not compatbile eslint9) --- .eslintignore | 16 - .eslintrc.cjs | 164 ----- .github/workflows/lint.yml | 19 +- eslint.config.mjs | 193 ++++++ package.json | 33 +- pnpm-lock.yaml | 1288 ++++++++++++++++++------------------ 6 files changed, 857 insertions(+), 856 deletions(-) delete mode 100644 .eslintignore delete mode 100644 .eslintrc.cjs create mode 100644 eslint.config.mjs diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index f2c09a0d3..000000000 --- a/.eslintignore +++ /dev/null @@ -1,16 +0,0 @@ -**/*.d.ts -packages/**/dist/**/* -packages/**/public/**/* -packages/**/coverage/**/* -packages/**/fixtures/**/* -node_modules -# TODO Disable examples, we want to include it. -public/**/* -examples/**/static/**/* -examples/**/dist/**/* -examples/**/OidcTrustedDomains.js -examples/**/OidcServiceWorker.js -scripts/**/* -.github -.changeset -vite.config.js \ No newline at end of file diff --git a/.eslintrc.cjs b/.eslintrc.cjs deleted file mode 100644 index 3e459dd52..000000000 --- a/.eslintrc.cjs +++ /dev/null @@ -1,164 +0,0 @@ -module.exports = { - parser: '@typescript-eslint/parser', - root: true, - extends: [ - // 'standard', - 'plugin:react/recommended', - 'plugin:react-hooks/recommended', - 'eslint:recommended', - 'plugin:@typescript-eslint/eslint-recommended', - 'plugin:@typescript-eslint/recommended', - //'plugin:@typescript-eslint/recommended-type-checked', //ideally we want this on - // 'plugin:@typescript-eslint/stylistic-type-checked', - 'plugin:import/typescript', - 'plugin:jsx-a11y/recommended', - 'prettier', // must be last - ], - plugins: ['@typescript-eslint', 'simple-import-sort', 'testing-library', 'react', 'prettier'], - parserOptions: { - project: ['./tsconfig.eslint.json', './packages/*/tsconfig.eslint.json'], - ecmaVersion: 2022, - sourceType: 'module', - ecmaFeatures: { - jsx: true, - }, - warnOnUnsupportedTypeScriptVersion: true, - }, - rules: { - // '@typescript-eslint/naming-convention': [ - // 'error', - // { - // selector: 'variable', - // types: ['boolean'], - // format: ['PascalCase'], - // prefix: ['is', 'with', 'should', 'has', 'can', 'did', 'will'], - // }, - // ], - '@typescript-eslint/interface-name-prefix': 'off', - '@typescript-eslint/no-non-null-assertion': 'off', - '@typescript-eslint/explicit-module-boundary-types': 'off', - '@typescript-eslint/no-explicit-any': 'off', - '@typescript-eslint/ban-ts-comment': 'off', - 'no-unused-vars': 'off', - '@typescript-eslint/no-unused-vars': [ - 'error', - { - argsIgnorePattern: '^_|req|res|next|err|ctx|args|context|info|index|data', - ignoreRestSiblings: true, - }, - ], - 'no-array-constructor': 'off', - '@typescript-eslint/no-array-constructor': 'warn', - 'no-redeclare': 'off', - '@typescript-eslint/no-redeclare': 'warn', - 'no-use-before-define': 'off', - '@typescript-eslint/no-use-before-define': [ - 'warn', - { - functions: false, - classes: false, - variables: false, - typedefs: false, - }, - ], - 'no-unused-expressions': 'off', - '@typescript-eslint/no-unused-expressions': [ - 'error', - { - allowShortCircuit: true, - allowTernary: true, - allowTaggedTemplates: true, - }, - ], - '@typescript-eslint/triple-slash-reference': 'off', - '@typescript-eslint/member-delimiter-style': [ - 'error', - { - multiline: { - delimiter: 'semi', - requireLast: true, - }, - singleline: { - delimiter: 'semi', - requireLast: false, - }, - }, - ], - camelcase: 'off', - 'comma-dangle': [ - 'error', - { - arrays: 'always-multiline', - objects: 'always-multiline', - imports: 'always-multiline', - exports: 'always-multiline', - functions: 'always-multiline', - }, - ], - 'array-callback-return': 'warn', - 'jsx-quotes': ['error', 'prefer-double'], - // 'max-len': ['error', { code: 120 }], - indent: 'off', - // quotes: ['error', 'single'], - semi: ['error', 'always'], - 'space-before-function-paren': 'off', - - 'import/no-named-as-default': 'off', - 'import/no-named-as-default-member': 'off', - 'import/default': 'off', - 'import/named': 'off', - 'import/namespace': 'off', - 'import/no-unresolved': 'off', - 'simple-import-sort/imports': 'error', - 'simple-import-sort/exports': 'error', - 'react/prop-types': 'off', - 'react/jsx-wrap-multilines': 'error', - 'react/react-in-jsx-scope': 'off', - 'react/display-name': 'off', - // https://github.com/facebook/react/tree/master/packages/-react-hooks - 'react-hooks/rules-of-hooks': 'error', - 'react-hooks/exhaustive-deps': 'off', - }, - - overrides: [ - { - files: ['*.js', '*.jsx'], - rules: { - '@typescript-eslint/no-var-requires': 'off', - 'react/no-unknown-property':[ - 2, { - "ignore": [ - "jsx", - "global" - ] - } - ] - }, - }, - { - // 3) Now we enable -testing-library rules or preset only for matching files! - files: ['**/?(*.)+(spec|test).[jt]s?(x)'], - extends: ['plugin:testing-library/react'], - rules: { - 'testing-library/await-async-query': 'error', - 'testing-library/no-await-sync-query': 'error', - 'testing-library/no-debugging-utils': 'warn', - 'testing-library/no-dom-import': 'off', - 'testing-library/no-unnecessary-act': 'off', - }, - }, - ], - settings: { - react: { - version: 'detect', - }, - // 'import/parsers': { - // '@typescript-eslint/parser': ['.ts', '.tsx'], - // }, - 'import/resolver': { - typescript: { - alwaysTryTypes: true, - }, - }, - }, -}; diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index e44f85d5f..869d47247 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -21,10 +21,10 @@ jobs: steps: - name: Check out Git repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Install node.js - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: ${{ env.NODE_VERSION }} @@ -38,8 +38,13 @@ jobs: - name: Install dependencies run: pnpm i - - name: Run linters - uses: wearerequired/lint-action@v2 - with: - eslint: true - prettier: false #runs part of eslint \ No newline at end of file + - name: Run lint + run: pnpm run lint + + # Currently incompatible with ESlint 9 (https://github.com/wearerequired/lint-action/pull/799) + # - name: Run linters + # uses: wearerequired/lint-action@v2 + # with: + # eslint: true + # prettier: false #runs part of eslint + # autofix: false #does not work well with pull requests https://github.com/wearerequired/lint-action?tab=readme-ov-file#limitations \ No newline at end of file diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 000000000..ccf603f77 --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,193 @@ +import { fixupConfigRules, fixupPluginRules } from "@eslint/compat"; +import typescriptEslint from "@typescript-eslint/eslint-plugin"; +import simpleImportSort from "eslint-plugin-simple-import-sort"; +import testingLibrary from "eslint-plugin-testing-library"; +import react from "eslint-plugin-react"; +import prettier from "eslint-plugin-prettier"; +import tsParser from "@typescript-eslint/parser"; +import path from "node:path"; +import { fileURLToPath } from "node:url"; +import js from "@eslint/js"; +import { FlatCompat } from "@eslint/eslintrc"; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); +const compat = new FlatCompat({ + baseDirectory: __dirname, + recommendedConfig: js.configs.recommended, + allConfig: js.configs.all +}); + +export default [{ + ignores: [ + "**/*.d.ts", + "packages/**/dist/**/*", + "packages/**/public/**/*", + "packages/**/coverage/**/*", + "packages/**/fixtures/**/*", + "**/node_modules", + "public/**/*", + "examples/**/static/**/*", + "examples/**/dist/**/*", + "examples/**/OidcTrustedDomains.js", + "examples/**/OidcServiceWorker.js", + "examples/**/nextjs-demo/**", + "scripts/**/*", + "**/.github", + "**/.changeset", + "**/vite.config.js", + "**/webpack-runtime.js", + "**/.prettierrc.cjs", + ], +}, ...fixupConfigRules(compat.extends( + "plugin:react/recommended", + "plugin:react-hooks/recommended", + "eslint:recommended", + "plugin:@typescript-eslint/eslint-recommended", + "plugin:@typescript-eslint/recommended", + "plugin:import/typescript", + "plugin:jsx-a11y/recommended", + "prettier", +)), { + plugins: { + "@typescript-eslint": fixupPluginRules(typescriptEslint), + "simple-import-sort": simpleImportSort, + //"testing-library": testingLibrary, //Not compatible with ESLint9 yet https://github.com/jsx-eslint/eslint-plugin-react/issues/3699 + react: fixupPluginRules(react), + prettier, + }, + + languageOptions: { + parser: tsParser, + ecmaVersion: 2022, + sourceType: "module", + + parserOptions: { + project: ["./tsconfig.eslint.json", "./packages/*/tsconfig.eslint.json"], + + ecmaFeatures: { + jsx: true, + }, + + warnOnUnsupportedTypeScriptVersion: true, + }, + }, + + settings: { + react: { + version: "18", + }, + + "import/resolver": { + typescript: { + alwaysTryTypes: true, + }, + }, + }, + + rules: { + "@typescript-eslint/interface-name-prefix": "off", + "@typescript-eslint/no-non-null-assertion": "off", + "@typescript-eslint/explicit-module-boundary-types": "off", + "@typescript-eslint/no-explicit-any": "off", + "@typescript-eslint/ban-ts-comment": "off", + "no-unused-vars": "off", + + "@typescript-eslint/no-unused-vars": ["error", { + argsIgnorePattern: "^_|req|res|next|err|ctx|args|context|info|index|data", + ignoreRestSiblings: true, + }], + + "no-array-constructor": "off", + "@typescript-eslint/no-array-constructor": "warn", + "no-redeclare": "off", + "@typescript-eslint/no-redeclare": "warn", + "no-use-before-define": "off", + + "@typescript-eslint/no-use-before-define": ["warn", { + functions: false, + classes: false, + variables: false, + typedefs: false, + }], + + "no-unused-expressions": "off", + + "@typescript-eslint/no-unused-expressions": ["error", { + allowShortCircuit: true, + allowTernary: true, + allowTaggedTemplates: true, + }], + + "@typescript-eslint/triple-slash-reference": "off", + + "@typescript-eslint/member-delimiter-style": ["error", { + multiline: { + delimiter: "semi", + requireLast: true, + }, + + singleline: { + delimiter: "semi", + requireLast: false, + }, + }], + + camelcase: "off", + + "comma-dangle": ["error", { + arrays: "always-multiline", + objects: "always-multiline", + imports: "always-multiline", + exports: "always-multiline", + functions: "always-multiline", + }], + + "array-callback-return": "warn", + "jsx-quotes": ["error", "prefer-double"], + indent: "off", + semi: ["error", "always"], + "space-before-function-paren": "off", + "import/no-named-as-default": "off", + "import/no-named-as-default-member": "off", + "import/default": "off", + "import/named": "off", + "import/namespace": "off", + "import/no-unresolved": "off", + "simple-import-sort/imports": "error", + "simple-import-sort/exports": "error", + "react/prop-types": "off", + "react/jsx-wrap-multilines": "error", + "react/react-in-jsx-scope": "off", + "react/display-name": "off", + "react-hooks/rules-of-hooks": "error", + "react-hooks/exhaustive-deps": "off", + }, +}, { + files: ["**/*.js", "**/*.jsx"], + + rules: { + "@typescript-eslint/no-var-requires": "off", + + "react/no-unknown-property": [2, { + ignore: ["jsx", "global"], + }], + }, +}, +//Not compatible with ESLint9 yet https://github.com/jsx-eslint/eslint-plugin-react/issues/3699 +// ...compat.extends("plugin:testing-library/react").map(config => ({ +// ...config, +// files: ["**/?(*.)+(spec|test).[jt]s?(x)"], +// })), { +// files: ["**/?(*.)+(spec|test).[jt]s?(x)"], + +// rules: { +// "testing-library/no-container": "off" +// "testing-library/await-async-query": "error", +// "testing-library/no-await-sync-query": "error", +// testing-library/no-debugging-utils": "off", +// "testing-library/no-dom-import": "off", +// "testing-library/no-unnecessary-act": "off", +// }, +// } +]; \ No newline at end of file diff --git a/package.json b/package.json index 12901f112..8b42615f5 100644 --- a/package.json +++ b/package.json @@ -27,29 +27,30 @@ "build": "pnpm -r --filter=./packages/* run build" }, "devDependencies": { - "@typescript-eslint/eslint-plugin": "7.9.0", - "@typescript-eslint/parser": "7.9.0", - "eslint": "9.3.0", - "eslint-config-prettier": "9.1.0", - "eslint-define-config": "2.1.0", - "eslint-plugin-import": "2.29.1", - "eslint-plugin-jsx-a11y": "6.8.0", - "eslint-plugin-n": "17.7.0", + "@eslint/compat": "^1.1.1", + "@typescript-eslint/eslint-plugin": "^7.16.0", + "@typescript-eslint/parser": "^7.16.0", + "eslint": "^9.6.0", + "eslint-config-prettier": "^9.1.0", + "eslint-define-config": "^2.1.0", + "eslint-plugin-import": "^2.29.1", + "eslint-plugin-jsx-a11y": "^6.9.0", + "eslint-plugin-n": "^17.9.0", "eslint-plugin-no-only-tests": "^3.1.0", - "eslint-plugin-prettier": "5.1.3", - "eslint-plugin-react": "7.34.1", - "eslint-plugin-react-hooks": "4.6.2", - "eslint-plugin-regexp": "2.5.0", - "eslint-plugin-simple-import-sort": "12.1.0", - "eslint-plugin-testing-library": "6.2.2", - "prettier": "3.2.5", + "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-react": "^7.34.3", + "eslint-plugin-react-hooks": "^4.6.2", + "eslint-plugin-regexp": "^2.6.0", + "eslint-plugin-simple-import-sort": "^12.1.1", + "eslint-plugin-testing-library": "^6.2.2", + "prettier": "^3.3.2", "tslib": "^2.6.2", "tsx": "4.10.5", "typescript": "5.4.5", "vitest": "1.6.0" }, "engines": { - "node": "16.* || >= 18.0.0" + "node": ">= 18.0.0" }, "packageManager": "pnpm@8.6.11" } \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f30bc04c1..83edb275f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,54 +8,57 @@ importers: .: devDependencies: + '@eslint/compat': + specifier: ^1.1.1 + version: 1.1.1 '@typescript-eslint/eslint-plugin': - specifier: 7.9.0 - version: 7.9.0(@typescript-eslint/parser@7.9.0)(eslint@9.3.0)(typescript@5.4.5) + specifier: ^7.16.0 + version: 7.16.0(@typescript-eslint/parser@7.16.0)(eslint@9.6.0)(typescript@5.4.5) '@typescript-eslint/parser': - specifier: 7.9.0 - version: 7.9.0(eslint@9.3.0)(typescript@5.4.5) + specifier: ^7.16.0 + version: 7.16.0(eslint@9.6.0)(typescript@5.4.5) eslint: - specifier: 9.3.0 - version: 9.3.0 + specifier: ^9.6.0 + version: 9.6.0 eslint-config-prettier: - specifier: 9.1.0 - version: 9.1.0(eslint@9.3.0) + specifier: ^9.1.0 + version: 9.1.0(eslint@9.6.0) eslint-define-config: - specifier: 2.1.0 + specifier: ^2.1.0 version: 2.1.0 eslint-plugin-import: - specifier: 2.29.1 - version: 2.29.1(@typescript-eslint/parser@7.9.0)(eslint@9.3.0) + specifier: ^2.29.1 + version: 2.29.1(@typescript-eslint/parser@7.16.0)(eslint@9.6.0) eslint-plugin-jsx-a11y: - specifier: 6.8.0 - version: 6.8.0(eslint@9.3.0) + specifier: ^6.9.0 + version: 6.9.0(eslint@9.6.0) eslint-plugin-n: - specifier: 17.7.0 - version: 17.7.0(eslint@9.3.0) + specifier: ^17.9.0 + version: 17.9.0(eslint@9.6.0) eslint-plugin-no-only-tests: specifier: ^3.1.0 version: 3.1.0 eslint-plugin-prettier: - specifier: 5.1.3 - version: 5.1.3(eslint-config-prettier@9.1.0)(eslint@9.3.0)(prettier@3.2.5) + specifier: ^5.1.3 + version: 5.1.3(eslint-config-prettier@9.1.0)(eslint@9.6.0)(prettier@3.3.2) eslint-plugin-react: - specifier: 7.34.1 - version: 7.34.1(eslint@9.3.0) + specifier: ^7.34.3 + version: 7.34.3(eslint@9.6.0) eslint-plugin-react-hooks: - specifier: 4.6.2 - version: 4.6.2(eslint@9.3.0) + specifier: ^4.6.2 + version: 4.6.2(eslint@9.6.0) eslint-plugin-regexp: - specifier: 2.5.0 - version: 2.5.0(eslint@9.3.0) + specifier: ^2.6.0 + version: 2.6.0(eslint@9.6.0) eslint-plugin-simple-import-sort: - specifier: 12.1.0 - version: 12.1.0(eslint@9.3.0) + specifier: ^12.1.1 + version: 12.1.1(eslint@9.6.0) eslint-plugin-testing-library: - specifier: 6.2.2 - version: 6.2.2(eslint@9.3.0)(typescript@5.4.5) + specifier: ^6.2.2 + version: 6.2.2(eslint@9.6.0)(typescript@5.4.5) prettier: - specifier: 3.2.5 - version: 3.2.5 + specifier: ^3.3.2 + version: 3.3.2 tslib: specifier: ^2.6.2 version: 2.6.2 @@ -67,7 +70,7 @@ importers: version: 5.4.5 vitest: specifier: 1.6.0 - version: 1.6.0(jsdom@24.0.0) + version: 1.6.0 examples/nextjs-demo: dependencies: @@ -76,7 +79,7 @@ importers: version: link:../../packages/react-oidc next: specifier: latest - version: 14.1.0(react-dom@18.3.1)(react@18.3.1) + version: 14.2.4(react-dom@18.3.1)(react@18.3.1) react: specifier: latest version: 18.3.1 @@ -208,7 +211,7 @@ importers: version: 3.9.1(typescript@5.4.5)(vite@5.2.11) vitest: specifier: 1.6.0 - version: 1.6.0(jsdom@24.0.0) + version: 1.6.0 packages/oidc-client-service-worker: devDependencies: @@ -235,7 +238,7 @@ importers: version: 3.9.1(typescript@5.4.5)(vite@5.2.11) vitest: specifier: 1.6.0 - version: 1.6.0(jsdom@24.0.0) + version: 1.6.0 packages/react-oidc: dependencies: @@ -319,6 +322,14 @@ packages: '@jridgewell/trace-mapping': 0.3.25 dev: true + /@ampproject/remapping@2.3.0: + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + dev: true + /@babel/code-frame@7.23.5: resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} engines: {node: '>=6.9.0'} @@ -335,7 +346,7 @@ packages: resolution: {integrity: sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==} engines: {node: '>=6.9.0'} dependencies: - '@ampproject/remapping': 2.2.1 + '@ampproject/remapping': 2.3.0 '@babel/code-frame': 7.23.5 '@babel/generator': 7.23.6 '@babel/helper-compilation-targets': 7.23.6 @@ -346,7 +357,7 @@ packages: '@babel/traverse': 7.23.9 '@babel/types': 7.23.9 convert-source-map: 2.0.0 - debug: 4.3.4 + debug: 4.3.5 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -359,7 +370,7 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.23.9 - '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 dev: true @@ -523,7 +534,7 @@ packages: '@babel/helper-split-export-declaration': 7.22.6 '@babel/parser': 7.23.9 '@babel/types': 7.23.9 - debug: 4.3.4 + debug: 4.3.5 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -945,13 +956,13 @@ packages: requiresBuild: true optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@9.3.0): + /@eslint-community/eslint-utils@4.4.0(eslint@9.6.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 9.3.0 + eslint: 9.6.0 eslint-visitor-keys: 3.4.3 dev: true @@ -960,13 +971,29 @@ packages: engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true + /@eslint/compat@1.1.1: + resolution: {integrity: sha512-lpHyRyplhGPL5mGEh6M9O5nnKk0Gz4bFI+Zu6tKlPpDUN7XshWvH9C/px4UVm87IAANE0W81CEsNGbS1KlzXpA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + dev: true + + /@eslint/config-array@0.17.0: + resolution: {integrity: sha512-A68TBu6/1mHHuc5YJL0U0VVeGNiklLAL6rRmhTCP2B5XjWLMnrX+HkO+IAXyHvks5cyyY1jjK5ITPQ1HGS2EVA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + dependencies: + '@eslint/object-schema': 2.1.4 + debug: 4.3.5 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: true + /@eslint/eslintrc@3.1.0: resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dependencies: ajv: 6.12.6 - debug: 4.3.4 - espree: 10.0.1 + debug: 4.3.5 + espree: 10.1.0 globals: 14.0.0 ignore: 5.3.1 import-fresh: 3.3.0 @@ -977,20 +1004,14 @@ packages: - supports-color dev: true - /@eslint/js@9.3.0: - resolution: {integrity: sha512-niBqk8iwv96+yuTwjM6bWg8ovzAPF9qkICsGtcoa5/dmqcEMfdwNAX7+/OHcJHc7wj7XqPxH98oAHytFYlw6Sw==} + /@eslint/js@9.6.0: + resolution: {integrity: sha512-D9B0/3vNg44ZeWbYMpBoXqNP4j6eQD5vNwIlGAuFRRzK/WtT/jvDQW3Bi9kkf3PMDMlM7Yi+73VLUsn5bJcl8A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dev: true - /@humanwhocodes/config-array@0.13.0: - resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} - engines: {node: '>=10.10.0'} - dependencies: - '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.4 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color + /@eslint/object-schema@2.1.4: + resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dev: true /@humanwhocodes/module-importer@1.0.1: @@ -998,10 +1019,6 @@ packages: engines: {node: '>=12.22'} dev: true - /@humanwhocodes/object-schema@2.0.3: - resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} - dev: true - /@humanwhocodes/retry@0.3.0: resolution: {integrity: sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==} engines: {node: '>=18.18'} @@ -1090,29 +1107,38 @@ packages: resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} engines: {node: '>=6.0.0'} dependencies: - '@jridgewell/set-array': 1.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 '@jridgewell/trace-mapping': 0.3.25 dev: true - /@jridgewell/resolve-uri@3.1.1: - resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} + /@jridgewell/gen-mapping@0.3.5: + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 dev: true - /@jridgewell/set-array@1.1.2: - resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + /@jridgewell/resolve-uri@3.1.2: + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} dev: true - /@jridgewell/sourcemap-codec@1.4.15: - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + /@jridgewell/set-array@1.2.1: + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/sourcemap-codec@1.5.0: + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} /@jridgewell/trace-mapping@0.3.25: resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} dependencies: - '@jridgewell/resolve-uri': 3.1.1 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 dev: true /@microsoft/api-extractor-model@7.28.13: @@ -1176,12 +1202,12 @@ packages: strict-event-emitter: 0.5.1 dev: true - /@next/env@14.1.0: - resolution: {integrity: sha512-Py8zIo+02ht82brwwhTg36iogzFqGLPXlRGKQw5s+qP/kMNc4MAyDeEwBKDijk6zTIbegEgu8Qy7C1LboslQAw==} + /@next/env@14.2.4: + resolution: {integrity: sha512-3EtkY5VDkuV2+lNmKlbkibIJxcO4oIHEhBWne6PaAp+76J9KoSsGvNikp6ivzAT8dhhBMYrm6op2pS1ApG0Hzg==} dev: false - /@next/swc-darwin-arm64@14.1.0: - resolution: {integrity: sha512-nUDn7TOGcIeyQni6lZHfzNoo9S0euXnu0jhsbMOmMJUBfgsnESdjN97kM7cBqQxZa8L/bM9om/S5/1dzCrW6wQ==} + /@next/swc-darwin-arm64@14.2.4: + resolution: {integrity: sha512-AH3mO4JlFUqsYcwFUHb1wAKlebHU/Hv2u2kb1pAuRanDZ7pD/A/KPD98RHZmwsJpdHQwfEc/06mgpSzwrJYnNg==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] @@ -1189,8 +1215,8 @@ packages: dev: false optional: true - /@next/swc-darwin-x64@14.1.0: - resolution: {integrity: sha512-1jgudN5haWxiAl3O1ljUS2GfupPmcftu2RYJqZiMJmmbBT5M1XDffjUtRUzP4W3cBHsrvkfOFdQ71hAreNQP6g==} + /@next/swc-darwin-x64@14.2.4: + resolution: {integrity: sha512-QVadW73sWIO6E2VroyUjuAxhWLZWEpiFqHdZdoQ/AMpN9YWGuHV8t2rChr0ahy+irKX5mlDU7OY68k3n4tAZTg==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] @@ -1198,8 +1224,8 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-gnu@14.1.0: - resolution: {integrity: sha512-RHo7Tcj+jllXUbK7xk2NyIDod3YcCPDZxj1WLIYxd709BQ7WuRYl3OWUNG+WUfqeQBds6kvZYlc42NJJTNi4tQ==} + /@next/swc-linux-arm64-gnu@14.2.4: + resolution: {integrity: sha512-KT6GUrb3oyCfcfJ+WliXuJnD6pCpZiosx2X3k66HLR+DMoilRb76LpWPGb4tZprawTtcnyrv75ElD6VncVamUQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -1207,8 +1233,8 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-musl@14.1.0: - resolution: {integrity: sha512-v6kP8sHYxjO8RwHmWMJSq7VZP2nYCkRVQ0qolh2l6xroe9QjbgV8siTbduED4u0hlk0+tjS6/Tuy4n5XCp+l6g==} + /@next/swc-linux-arm64-musl@14.2.4: + resolution: {integrity: sha512-Alv8/XGSs/ytwQcbCHwze1HmiIkIVhDHYLjczSVrf0Wi2MvKn/blt7+S6FJitj3yTlMwMxII1gIJ9WepI4aZ/A==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -1216,8 +1242,8 @@ packages: dev: false optional: true - /@next/swc-linux-x64-gnu@14.1.0: - resolution: {integrity: sha512-zJ2pnoFYB1F4vmEVlb/eSe+VH679zT1VdXlZKX+pE66grOgjmKJHKacf82g/sWE4MQ4Rk2FMBCRnX+l6/TVYzQ==} + /@next/swc-linux-x64-gnu@14.2.4: + resolution: {integrity: sha512-ze0ShQDBPCqxLImzw4sCdfnB3lRmN3qGMB2GWDRlq5Wqy4G36pxtNOo2usu/Nm9+V2Rh/QQnrRc2l94kYFXO6Q==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -1225,8 +1251,8 @@ packages: dev: false optional: true - /@next/swc-linux-x64-musl@14.1.0: - resolution: {integrity: sha512-rbaIYFt2X9YZBSbH/CwGAjbBG2/MrACCVu2X0+kSykHzHnYH5FjHxwXLkcoJ10cX0aWCEynpu+rP76x0914atg==} + /@next/swc-linux-x64-musl@14.2.4: + resolution: {integrity: sha512-8dwC0UJoc6fC7PX70csdaznVMNr16hQrTDAMPvLPloazlcaWfdPogq+UpZX6Drqb1OBlwowz8iG7WR0Tzk/diQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -1234,8 +1260,8 @@ packages: dev: false optional: true - /@next/swc-win32-arm64-msvc@14.1.0: - resolution: {integrity: sha512-o1N5TsYc8f/HpGt39OUQpQ9AKIGApd3QLueu7hXk//2xq5Z9OxmV6sQfNp8C7qYmiOlHYODOGqNNa0e9jvchGQ==} + /@next/swc-win32-arm64-msvc@14.2.4: + resolution: {integrity: sha512-jxyg67NbEWkDyvM+O8UDbPAyYRZqGLQDTPwvrBBeOSyVWW/jFQkQKQ70JDqDSYg1ZDdl+E3nkbFbq8xM8E9x8A==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] @@ -1243,8 +1269,8 @@ packages: dev: false optional: true - /@next/swc-win32-ia32-msvc@14.1.0: - resolution: {integrity: sha512-XXIuB1DBRCFwNO6EEzCTMHT5pauwaSj4SWs7CYnME57eaReAKBXCnkUE80p/pAZcewm7hs+vGvNqDPacEXHVkw==} + /@next/swc-win32-ia32-msvc@14.2.4: + resolution: {integrity: sha512-twrmN753hjXRdcrZmZttb/m5xaCBFa48Dt3FbeEItpJArxriYDunWxJn+QFXdJ3hPkm4u7CKxncVvnmgQMY1ag==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] @@ -1252,8 +1278,8 @@ packages: dev: false optional: true - /@next/swc-win32-x64-msvc@14.1.0: - resolution: {integrity: sha512-9WEbVRRAqJ3YFVqEZIxUqkiO8l1nool1LmNxygr5HWF8AcSYsEpneUDhmjUVJEzO2A04+oPtZdombzzPPkTtgg==} + /@next/swc-win32-x64-msvc@14.2.4: + resolution: {integrity: sha512-tkLrjBzqFTP8DVrAAQmZelEahfR9OxWpFR++vAI9FBhCiIxtwHwBHC23SBHCTURBtwB4kc/x44imVOnkKGNVGg==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -1593,10 +1619,15 @@ packages: /@sinclair/typebox@0.27.8: resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - /@swc/helpers@0.5.2: - resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==} + /@swc/counter@0.1.3: + resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + dev: false + + /@swc/helpers@0.5.5: + resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==} dependencies: - tslib: 2.6.2 + '@swc/counter': 0.1.3 + tslib: 2.6.3 dev: false /@testing-library/dom@10.1.0: @@ -1642,7 +1673,7 @@ packages: dom-accessibility-api: 0.6.3 lodash: 4.17.21 redent: 3.0.0 - vitest: 1.6.0(jsdom@24.0.0) + vitest: 1.6.0 dev: false /@testing-library/jest-dom@6.4.5(vitest@1.6.0): @@ -1857,8 +1888,8 @@ packages: '@types/yargs-parser': 21.0.3 dev: false - /@typescript-eslint/eslint-plugin@7.9.0(@typescript-eslint/parser@7.9.0)(eslint@9.3.0)(typescript@5.4.5): - resolution: {integrity: sha512-6e+X0X3sFe/G/54aC3jt0txuMTURqLyekmEHViqyA2VnxhLMpvA6nqmcjIy+Cr9tLDHPssA74BP5Mx9HQIxBEA==} + /@typescript-eslint/eslint-plugin@7.16.0(@typescript-eslint/parser@7.16.0)(eslint@9.6.0)(typescript@5.4.5): + resolution: {integrity: sha512-py1miT6iQpJcs1BiJjm54AMzeuMPBSPuKPlnT8HlfudbcS5rYeX5jajpLf3mrdRh9dA/Ec2FVUY0ifeVNDIhZw==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: '@typescript-eslint/parser': ^7.0.0 @@ -1869,12 +1900,12 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 7.9.0(eslint@9.3.0)(typescript@5.4.5) - '@typescript-eslint/scope-manager': 7.9.0 - '@typescript-eslint/type-utils': 7.9.0(eslint@9.3.0)(typescript@5.4.5) - '@typescript-eslint/utils': 7.9.0(eslint@9.3.0)(typescript@5.4.5) - '@typescript-eslint/visitor-keys': 7.9.0 - eslint: 9.3.0 + '@typescript-eslint/parser': 7.16.0(eslint@9.6.0)(typescript@5.4.5) + '@typescript-eslint/scope-manager': 7.16.0 + '@typescript-eslint/type-utils': 7.16.0(eslint@9.6.0)(typescript@5.4.5) + '@typescript-eslint/utils': 7.16.0(eslint@9.6.0)(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 7.16.0 + eslint: 9.6.0 graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 @@ -1884,8 +1915,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@7.9.0(eslint@9.3.0)(typescript@5.4.5): - resolution: {integrity: sha512-qHMJfkL5qvgQB2aLvhUSXxbK7OLnDkwPzFalg458pxQgfxKDfT1ZDbHQM/I6mDIf/svlMkj21kzKuQ2ixJlatQ==} + /@typescript-eslint/parser@7.16.0(eslint@9.6.0)(typescript@5.4.5): + resolution: {integrity: sha512-ar9E+k7CU8rWi2e5ErzQiC93KKEFAXA2Kky0scAlPcxYblLt8+XZuHUZwlyfXILyQa95P6lQg+eZgh/dDs3+Vw==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -1894,12 +1925,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 7.9.0 - '@typescript-eslint/types': 7.9.0 - '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.4.5) - '@typescript-eslint/visitor-keys': 7.9.0 - debug: 4.3.4 - eslint: 9.3.0 + '@typescript-eslint/scope-manager': 7.16.0 + '@typescript-eslint/types': 7.16.0 + '@typescript-eslint/typescript-estree': 7.16.0(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 7.16.0 + debug: 4.3.5 + eslint: 9.6.0 typescript: 5.4.5 transitivePeerDependencies: - supports-color @@ -1913,16 +1944,16 @@ packages: '@typescript-eslint/visitor-keys': 5.62.0 dev: true - /@typescript-eslint/scope-manager@7.9.0: - resolution: {integrity: sha512-ZwPK4DeCDxr3GJltRz5iZejPFAAr4Wk3+2WIBaj1L5PYK5RgxExu/Y68FFVclN0y6GGwH8q+KgKRCvaTmFBbgQ==} + /@typescript-eslint/scope-manager@7.16.0: + resolution: {integrity: sha512-8gVv3kW6n01Q6TrI1cmTZ9YMFi3ucDT7i7aI5lEikk2ebk1AEjrwX8MDTdaX5D7fPXMBLvnsaa0IFTAu+jcfOw==} engines: {node: ^18.18.0 || >=20.0.0} dependencies: - '@typescript-eslint/types': 7.9.0 - '@typescript-eslint/visitor-keys': 7.9.0 + '@typescript-eslint/types': 7.16.0 + '@typescript-eslint/visitor-keys': 7.16.0 dev: true - /@typescript-eslint/type-utils@7.9.0(eslint@9.3.0)(typescript@5.4.5): - resolution: {integrity: sha512-6Qy8dfut0PFrFRAZsGzuLoM4hre4gjzWJB6sUvdunCYZsYemTkzZNwF1rnGea326PHPT3zn5Lmg32M/xfJfByA==} + /@typescript-eslint/type-utils@7.16.0(eslint@9.6.0)(typescript@5.4.5): + resolution: {integrity: sha512-j0fuUswUjDHfqV/UdW6mLtOQQseORqfdmoBNDFOqs9rvNVR2e+cmu6zJu/Ku4SDuqiJko6YnhwcL8x45r8Oqxg==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -1931,10 +1962,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.4.5) - '@typescript-eslint/utils': 7.9.0(eslint@9.3.0)(typescript@5.4.5) - debug: 4.3.4 - eslint: 9.3.0 + '@typescript-eslint/typescript-estree': 7.16.0(typescript@5.4.5) + '@typescript-eslint/utils': 7.16.0(eslint@9.6.0)(typescript@5.4.5) + debug: 4.3.5 + eslint: 9.6.0 ts-api-utils: 1.3.0(typescript@5.4.5) typescript: 5.4.5 transitivePeerDependencies: @@ -1946,8 +1977,8 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/types@7.9.0: - resolution: {integrity: sha512-oZQD9HEWQanl9UfsbGVcZ2cGaR0YT5476xfWE0oE5kQa2sNK2frxOlkeacLOTh9po4AlUT5rtkGyYM5kew0z5w==} + /@typescript-eslint/types@7.16.0: + resolution: {integrity: sha512-fecuH15Y+TzlUutvUl9Cc2XJxqdLr7+93SQIbcZfd4XRGGKoxyljK27b+kxKamjRkU7FYC6RrbSCg0ALcZn/xw==} engines: {node: ^18.18.0 || >=20.0.0} dev: true @@ -1962,18 +1993,18 @@ packages: dependencies: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 - debug: 4.3.4 + debug: 4.3.5 globby: 11.1.0 is-glob: 4.0.3 - semver: 7.6.0 + semver: 7.6.2 tsutils: 3.21.0(typescript@5.4.5) typescript: 5.4.5 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/typescript-estree@7.9.0(typescript@5.4.5): - resolution: {integrity: sha512-zBCMCkrb2YjpKV3LA0ZJubtKCDxLttxfdGmwZvTqqWevUPN0FZvSI26FalGFFUZU/9YQK/A4xcQF9o/VVaCKAg==} + /@typescript-eslint/typescript-estree@7.16.0(typescript@5.4.5): + resolution: {integrity: sha512-a5NTvk51ZndFuOLCh5OaJBELYc2O3Zqxfl3Js78VFE1zE46J2AaVuW+rEbVkQznjkmlzWsUI15BG5tQMixzZLw==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: typescript: '*' @@ -1981,50 +2012,50 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 7.9.0 - '@typescript-eslint/visitor-keys': 7.9.0 - debug: 4.3.4 + '@typescript-eslint/types': 7.16.0 + '@typescript-eslint/visitor-keys': 7.16.0 + debug: 4.3.5 globby: 11.1.0 is-glob: 4.0.3 - minimatch: 9.0.4 - semver: 7.6.0 + minimatch: 9.0.5 + semver: 7.6.2 ts-api-utils: 1.3.0(typescript@5.4.5) typescript: 5.4.5 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@5.62.0(eslint@9.3.0)(typescript@5.4.5): + /@typescript-eslint/utils@5.62.0(eslint@9.6.0)(typescript@5.4.5): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.3.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.6 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.4.5) - eslint: 9.3.0 + eslint: 9.6.0 eslint-scope: 5.1.1 - semver: 7.6.0 + semver: 7.6.2 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/utils@7.9.0(eslint@9.3.0)(typescript@5.4.5): - resolution: {integrity: sha512-5KVRQCzZajmT4Ep+NEgjXCvjuypVvYHUW7RHlXzNPuak2oWpVoD1jf5xCP0dPAuNIchjC7uQyvbdaSTFaLqSdA==} + /@typescript-eslint/utils@7.16.0(eslint@9.6.0)(typescript@5.4.5): + resolution: {integrity: sha512-PqP4kP3hb4r7Jav+NiRCntlVzhxBNWq6ZQ+zQwII1y/G/1gdIPeYDCKr2+dH6049yJQsWZiHU6RlwvIFBXXGNA==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.3.0) - '@typescript-eslint/scope-manager': 7.9.0 - '@typescript-eslint/types': 7.9.0 - '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.4.5) - eslint: 9.3.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) + '@typescript-eslint/scope-manager': 7.16.0 + '@typescript-eslint/types': 7.16.0 + '@typescript-eslint/typescript-estree': 7.16.0(typescript@5.4.5) + eslint: 9.6.0 transitivePeerDependencies: - supports-color - typescript @@ -2038,11 +2069,11 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@typescript-eslint/visitor-keys@7.9.0: - resolution: {integrity: sha512-iESPx2TNLDNGQLyjKhUvIKprlP49XNEK+MvIf9nIO7ZZaZdbnfWKHnXAgufpxqfA0YryH8XToi4+CjBgVnFTSQ==} + /@typescript-eslint/visitor-keys@7.16.0: + resolution: {integrity: sha512-rMo01uPy9C7XxG7AFsxa8zLnWXTF8N3PYclekWSrurvhwiw1eW88mrKiAYe6s53AUY57nTRz8dJsuuXdkAhzCg==} engines: {node: ^18.18.0 || >=20.0.0} dependencies: - '@typescript-eslint/types': 7.9.0 + '@typescript-eslint/types': 7.16.0 eslint-visitor-keys: 3.4.3 dev: true @@ -2096,7 +2127,7 @@ packages: std-env: 3.7.0 strip-literal: 2.0.0 test-exclude: 6.0.0 - vitest: 1.6.0(jsdom@24.0.0) + vitest: 1.6.0 transitivePeerDependencies: - supports-color dev: true @@ -2118,14 +2149,14 @@ packages: /@vitest/snapshot@1.6.0: resolution: {integrity: sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==} dependencies: - magic-string: 0.30.9 + magic-string: 0.30.10 pathe: 1.1.2 pretty-format: 29.7.0 /@vitest/spy@1.6.0: resolution: {integrity: sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==} dependencies: - tinyspy: 2.2.0 + tinyspy: 2.2.1 /@vitest/utils@1.6.0: resolution: {integrity: sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==} @@ -2184,7 +2215,7 @@ packages: '@vue/compiler-dom': 3.4.15 '@vue/shared': 3.4.15 computeds: 0.0.1 - minimatch: 9.0.4 + minimatch: 9.0.5 muggle-string: 0.3.1 path-browserify: 1.0.1 typescript: 5.4.5 @@ -2195,20 +2226,20 @@ packages: resolution: {integrity: sha512-KzfPTxVaWfB+eGcGdbSf4CWdaXcGDqckoeXUh7SB3fZdEtzPCK2Vq9B/lRRL3yutax/LWITz+SwvgyOxz5V75g==} dev: true - /acorn-jsx@5.3.2(acorn@8.11.3): + /acorn-jsx@5.3.2(acorn@8.12.1): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 8.11.3 + acorn: 8.12.1 dev: true /acorn-walk@8.3.2: resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} engines: {node: '>=0.4.0'} - /acorn@8.11.3: - resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} + /acorn@8.12.1: + resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} engines: {node: '>=0.4.0'} hasBin: true @@ -2216,9 +2247,10 @@ packages: resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==} engines: {node: '>= 14'} dependencies: - debug: 4.3.4 + debug: 4.3.5 transitivePeerDependencies: - supports-color + dev: true /aggregate-error@4.0.1: resolution: {integrity: sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==} @@ -2284,6 +2316,12 @@ packages: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} dev: true + /aria-query@5.1.3: + resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} + dependencies: + deep-equal: 2.2.3 + dev: true + /aria-query@5.3.0: resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} dependencies: @@ -2297,14 +2335,15 @@ packages: is-array-buffer: 3.0.4 dev: true - /array-includes@3.1.7: - resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} + /array-includes@3.1.8: + resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.3 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 + get-intrinsic: 1.2.4 is-string: 1.0.7 dev: true @@ -2317,9 +2356,9 @@ packages: resolution: {integrity: sha512-VizNcj/RGJiUyQBgzwxzE5oHdeuXY5hSbbmKMlphj1cy1Vl7Pn2asCGbSrru6hSQjmCzqTBPVWAF/whmEOVHbw==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 es-array-method-boxes-properly: 1.0.0 is-string: 1.0.7 dev: true @@ -2340,20 +2379,20 @@ packages: resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 es-shim-unscopables: 1.0.2 - get-intrinsic: 1.2.3 + get-intrinsic: 1.2.4 dev: true /array.prototype.flat@1.3.2: resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 es-shim-unscopables: 1.0.2 dev: true @@ -2361,27 +2400,28 @@ packages: resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 es-shim-unscopables: 1.0.2 dev: true /array.prototype.toreversed@1.1.2: resolution: {integrity: sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 es-shim-unscopables: 1.0.2 dev: true - /array.prototype.tosorted@1.1.3: - resolution: {integrity: sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==} + /array.prototype.tosorted@1.1.4: + resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 es-errors: 1.3.0 es-shim-unscopables: 1.0.2 dev: true @@ -2412,18 +2452,8 @@ packages: resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} dev: true - /asynciterator.prototype@1.0.0: - resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==} - dependencies: - has-symbols: 1.0.3 - dev: true - /asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - - /available-typed-arrays@1.0.6: - resolution: {integrity: sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg==} - engines: {node: '>= 0.4'} dev: true /available-typed-arrays@1.0.7: @@ -2433,15 +2463,15 @@ packages: possible-typed-array-names: 1.0.0 dev: true - /axe-core@4.7.0: - resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==} + /axe-core@4.9.1: + resolution: {integrity: sha512-QbUdXJVTpvUTHU7871ppZkdOLBeGUKBQWHkHrvN2V9IQWGMt61zf3B45BtzjxEJzYuj0JBjBZP/hmYS/R9pmAw==} engines: {node: '>=4'} dev: true - /axobject-query@3.2.1: - resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} + /axobject-query@3.1.1: + resolution: {integrity: sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==} dependencies: - dequal: 2.0.3 + deep-equal: 2.2.3 dev: true /balanced-match@1.0.2: @@ -2482,7 +2512,7 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001584 + caniuse-lite: 1.0.30001641 electron-to-chromium: 1.4.657 node-releases: 2.0.14 update-browserslist-db: 1.0.13(browserslist@4.22.3) @@ -2499,14 +2529,6 @@ packages: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} - /call-bind@1.0.5: - resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} - dependencies: - function-bind: 1.1.2 - get-intrinsic: 1.2.3 - set-function-length: 1.2.0 - dev: true - /call-bind@1.0.7: resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} engines: {node: '>= 0.4'} @@ -2523,8 +2545,8 @@ packages: engines: {node: '>=6'} dev: true - /caniuse-lite@1.0.30001584: - resolution: {integrity: sha512-LOz7CCQ9M1G7OjJOF9/mzmqmj3jE/7VOmrfw6Mgs0E8cjOsbRXQJHsPBfmBOXDskXKrHLyyW3n7kpDW/4BsfpQ==} + /caniuse-lite@1.0.30001641: + resolution: {integrity: sha512-Phv5thgl67bHYo1TtMY/MurjkHhV4EDaCosezRXgZ8jzA/Ub+wjxAvbGvjoFENStinwi5kCyOYV3mi5tOGykwA==} /chai@4.4.1: resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} @@ -2532,7 +2554,7 @@ packages: dependencies: assertion-error: 1.1.0 check-error: 1.0.3 - deep-eql: 4.1.3 + deep-eql: 4.1.4 get-func-name: 2.0.2 loupe: 2.3.7 pathval: 1.1.1 @@ -2630,6 +2652,7 @@ packages: engines: {node: '>= 0.8'} dependencies: delayed-stream: 1.0.0 + dev: true /commander@9.5.0: resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} @@ -2753,6 +2776,7 @@ packages: engines: {node: '>=18'} dependencies: rrweb-cssom: 0.6.0 + dev: true /csstype@3.1.2: resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} @@ -2768,6 +2792,7 @@ packages: dependencies: whatwg-mimetype: 4.0.0 whatwg-url: 14.0.0 + dev: true /data-view-buffer@1.0.1: resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} @@ -2821,27 +2846,55 @@ packages: optional: true dependencies: ms: 2.1.2 + dev: true + + /debug@4.3.5: + resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 /decimal.js@10.4.3: resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + dev: true - /deep-eql@4.1.3: - resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} + /deep-eql@4.1.4: + resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==} engines: {node: '>=6'} dependencies: type-detect: 4.0.8 - /deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - dev: true - - /define-data-property@1.1.1: - resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} + /deep-equal@2.2.3: + resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.2.3 - gopd: 1.0.1 - has-property-descriptors: 1.0.1 + array-buffer-byte-length: 1.0.1 + call-bind: 1.0.7 + es-get-iterator: 1.1.3 + get-intrinsic: 1.2.4 + is-arguments: 1.1.1 + is-array-buffer: 3.0.4 + is-date-object: 1.0.5 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.3 + isarray: 2.0.5 + object-is: 1.1.6 + object-keys: 1.1.1 + object.assign: 4.1.5 + regexp.prototype.flags: 1.5.2 + side-channel: 1.0.6 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.2 + which-typed-array: 1.1.15 + dev: true + + /deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: true /define-data-property@1.1.4: @@ -2857,14 +2910,15 @@ packages: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} dependencies: - define-data-property: 1.1.1 - has-property-descriptors: 1.0.1 + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 object-keys: 1.1.1 dev: true /delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} + dev: true /dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} @@ -2910,8 +2964,8 @@ packages: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} dev: true - /enhanced-resolve@5.16.0: - resolution: {integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==} + /enhanced-resolve@5.17.0: + resolution: {integrity: sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==} engines: {node: '>=10.13.0'} dependencies: graceful-fs: 4.2.11 @@ -2921,50 +2975,6 @@ packages: /entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} - - /es-abstract@1.22.3: - resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==} - engines: {node: '>= 0.4'} - dependencies: - array-buffer-byte-length: 1.0.1 - arraybuffer.prototype.slice: 1.0.3 - available-typed-arrays: 1.0.6 - call-bind: 1.0.5 - es-set-tostringtag: 2.0.2 - es-to-primitive: 1.2.1 - function.prototype.name: 1.1.6 - get-intrinsic: 1.2.3 - get-symbol-description: 1.0.0 - globalthis: 1.0.3 - gopd: 1.0.1 - has-property-descriptors: 1.0.1 - has-proto: 1.0.1 - has-symbols: 1.0.3 - hasown: 2.0.2 - internal-slot: 1.0.6 - is-array-buffer: 3.0.4 - is-callable: 1.2.7 - is-negative-zero: 2.0.2 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.2 - is-string: 1.0.7 - is-typed-array: 1.1.13 - is-weakref: 1.0.2 - object-inspect: 1.13.1 - object-keys: 1.1.1 - object.assign: 4.1.5 - regexp.prototype.flags: 1.5.1 - safe-array-concat: 1.1.0 - safe-regex-test: 1.0.2 - string.prototype.trim: 1.2.8 - string.prototype.trimend: 1.0.7 - string.prototype.trimstart: 1.0.7 - typed-array-buffer: 1.0.0 - typed-array-byte-length: 1.0.0 - typed-array-byte-offset: 1.0.0 - typed-array-length: 1.0.4 - unbox-primitive: 1.0.2 - which-typed-array: 1.1.14 dev: true /es-abstract@1.23.3: @@ -2986,7 +2996,7 @@ packages: function.prototype.name: 1.1.6 get-intrinsic: 1.2.4 get-symbol-description: 1.0.2 - globalthis: 1.0.3 + globalthis: 1.0.4 gopd: 1.0.1 has-property-descriptors: 1.0.2 has-proto: 1.0.3 @@ -3002,7 +3012,7 @@ packages: is-string: 1.0.7 is-typed-array: 1.1.13 is-weakref: 1.0.2 - object-inspect: 1.13.1 + object-inspect: 1.13.2 object-keys: 1.1.1 object.assign: 4.1.5 regexp.prototype.flags: 1.5.2 @@ -3035,27 +3045,22 @@ packages: engines: {node: '>= 0.4'} dev: true - /es-iterator-helpers@1.0.15: - resolution: {integrity: sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==} + /es-get-iterator@1.1.3: + resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} dependencies: - asynciterator.prototype: 1.0.0 - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - es-set-tostringtag: 2.0.2 - function-bind: 1.1.2 - get-intrinsic: 1.2.3 - globalthis: 1.0.3 - has-property-descriptors: 1.0.1 - has-proto: 1.0.1 + call-bind: 1.0.7 + get-intrinsic: 1.2.4 has-symbols: 1.0.3 - internal-slot: 1.0.6 - iterator.prototype: 1.1.2 - safe-array-concat: 1.1.0 + is-arguments: 1.1.1 + is-map: 2.0.3 + is-set: 2.0.3 + is-string: 1.0.7 + isarray: 2.0.5 + stop-iteration-iterator: 1.0.0 dev: true - /es-iterator-helpers@1.0.18: - resolution: {integrity: sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==} + /es-iterator-helpers@1.0.19: + resolution: {integrity: sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 @@ -3065,7 +3070,7 @@ packages: es-set-tostringtag: 2.0.3 function-bind: 1.1.2 get-intrinsic: 1.2.4 - globalthis: 1.0.3 + globalthis: 1.0.4 has-property-descriptors: 1.0.2 has-proto: 1.0.3 has-symbols: 1.0.3 @@ -3081,15 +3086,6 @@ packages: es-errors: 1.3.0 dev: true - /es-set-tostringtag@2.0.2: - resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==} - engines: {node: '>= 0.4'} - dependencies: - get-intrinsic: 1.2.3 - has-tostringtag: 1.0.2 - hasown: 2.0.2 - dev: true - /es-set-tostringtag@2.0.3: resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} engines: {node: '>= 0.4'} @@ -3199,22 +3195,22 @@ packages: engines: {node: '>=12'} dev: true - /eslint-compat-utils@0.1.2(eslint@9.3.0): + /eslint-compat-utils@0.1.2(eslint@9.6.0): resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==} engines: {node: '>=12'} peerDependencies: eslint: '>=6.0.0' dependencies: - eslint: 9.3.0 + eslint: 9.6.0 dev: true - /eslint-config-prettier@9.1.0(eslint@9.3.0): + /eslint-config-prettier@9.1.0(eslint@9.6.0): resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 9.3.0 + eslint: 9.6.0 dev: true /eslint-define-config@2.1.0: @@ -3226,13 +3222,13 @@ packages: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} dependencies: debug: 3.2.7 - is-core-module: 2.13.1 + is-core-module: 2.14.0 resolve: 1.22.8 transitivePeerDependencies: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@7.9.0)(eslint-import-resolver-node@0.3.9)(eslint@9.3.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@7.16.0)(eslint-import-resolver-node@0.3.9)(eslint@9.6.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -3253,27 +3249,27 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 7.9.0(eslint@9.3.0)(typescript@5.4.5) + '@typescript-eslint/parser': 7.16.0(eslint@9.6.0)(typescript@5.4.5) debug: 3.2.7 - eslint: 9.3.0 + eslint: 9.6.0 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-es-x@7.5.0(eslint@9.3.0): + /eslint-plugin-es-x@7.5.0(eslint@9.6.0): resolution: {integrity: sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '>=8' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.3.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) '@eslint-community/regexpp': 4.10.0 - eslint: 9.3.0 - eslint-compat-utils: 0.1.2(eslint@9.3.0) + eslint: 9.6.0 + eslint-compat-utils: 0.1.2(eslint@9.6.0) dev: true - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.9.0)(eslint@9.3.0): + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.16.0)(eslint@9.6.0): resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} engines: {node: '>=4'} peerDependencies: @@ -3283,23 +3279,23 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 7.9.0(eslint@9.3.0)(typescript@5.4.5) - array-includes: 3.1.7 + '@typescript-eslint/parser': 7.16.0(eslint@9.6.0)(typescript@5.4.5) + array-includes: 3.1.8 array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 array.prototype.flatmap: 1.3.2 debug: 3.2.7 doctrine: 2.1.0 - eslint: 9.3.0 + eslint: 9.6.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.9.0)(eslint-import-resolver-node@0.3.9)(eslint@9.3.0) - hasown: 2.0.0 - is-core-module: 2.13.1 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.16.0)(eslint-import-resolver-node@0.3.9)(eslint@9.6.0) + hasown: 2.0.2 + is-core-module: 2.14.0 is-glob: 4.0.3 minimatch: 3.1.2 - object.fromentries: 2.0.7 + object.fromentries: 2.0.8 object.groupby: 1.0.2 - object.values: 1.1.7 + object.values: 1.2.0 semver: 6.3.1 tsconfig-paths: 3.15.0 transitivePeerDependencies: @@ -3308,46 +3304,46 @@ packages: - supports-color dev: true - /eslint-plugin-jsx-a11y@6.8.0(eslint@9.3.0): - resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==} + /eslint-plugin-jsx-a11y@6.9.0(eslint@9.6.0): + resolution: {integrity: sha512-nOFOCaJG2pYqORjK19lqPqxMO/JpvdCZdPtNdxY3kvom3jTvkAbOvQvD8wuD0G8BYR0IGAGYDlzqWJOh/ybn2g==} engines: {node: '>=4.0'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: - '@babel/runtime': 7.23.9 - aria-query: 5.3.0 - array-includes: 3.1.7 + aria-query: 5.1.3 + array-includes: 3.1.8 array.prototype.flatmap: 1.3.2 ast-types-flow: 0.0.8 - axe-core: 4.7.0 - axobject-query: 3.2.1 + axe-core: 4.9.1 + axobject-query: 3.1.1 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - es-iterator-helpers: 1.0.15 - eslint: 9.3.0 - hasown: 2.0.0 + es-iterator-helpers: 1.0.19 + eslint: 9.6.0 + hasown: 2.0.2 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 minimatch: 3.1.2 - object.entries: 1.1.7 - object.fromentries: 2.0.7 + object.fromentries: 2.0.8 + safe-regex-test: 1.0.3 + string.prototype.includes: 2.0.0 dev: true - /eslint-plugin-n@17.7.0(eslint@9.3.0): - resolution: {integrity: sha512-4Jg4ZKVE4VjHig2caBqPHYNW5na84RVufUuipFLJbgM/G57O6FdpUKJbHakCDJb/yjQuyqVzYWRtU3HNYaZUwg==} + /eslint-plugin-n@17.9.0(eslint@9.6.0): + resolution: {integrity: sha512-CPSaXDXdrT4nsrOrO4mT4VB6FMUkoySRkHWuuJJHVqsIEjIeZgMY1H7AzSwPbDScikBmLN82KeM1u7ixV7PzGg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: '>=8.23.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.3.0) - enhanced-resolve: 5.16.0 - eslint: 9.3.0 - eslint-plugin-es-x: 7.5.0(eslint@9.3.0) - get-tsconfig: 4.7.2 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) + enhanced-resolve: 5.17.0 + eslint: 9.6.0 + eslint-plugin-es-x: 7.5.0(eslint@9.6.0) + get-tsconfig: 4.7.5 globals: 15.2.0 ignore: 5.3.1 - minimatch: 9.0.4 - semver: 7.6.0 + minimatch: 9.0.5 + semver: 7.6.2 dev: true /eslint-plugin-no-only-tests@3.1.0: @@ -3355,7 +3351,7 @@ packages: engines: {node: '>=5.0.0'} dev: true - /eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0)(eslint@9.3.0)(prettier@3.2.5): + /eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0)(eslint@9.6.0)(prettier@3.3.2): resolution: {integrity: sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -3369,81 +3365,81 @@ packages: eslint-config-prettier: optional: true dependencies: - eslint: 9.3.0 - eslint-config-prettier: 9.1.0(eslint@9.3.0) - prettier: 3.2.5 + eslint: 9.6.0 + eslint-config-prettier: 9.1.0(eslint@9.6.0) + prettier: 3.3.2 prettier-linter-helpers: 1.0.0 synckit: 0.8.8 dev: true - /eslint-plugin-react-hooks@4.6.2(eslint@9.3.0): + /eslint-plugin-react-hooks@4.6.2(eslint@9.6.0): resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: - eslint: 9.3.0 + eslint: 9.6.0 dev: true - /eslint-plugin-react@7.34.1(eslint@9.3.0): - resolution: {integrity: sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==} + /eslint-plugin-react@7.34.3(eslint@9.6.0): + resolution: {integrity: sha512-aoW4MV891jkUulwDApQbPYTVZmeuSyFrudpbTAQuj5Fv8VL+o6df2xIGpw8B0hPjAaih1/Fb0om9grCdyFYemA==} engines: {node: '>=4'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: - array-includes: 3.1.7 + array-includes: 3.1.8 array.prototype.findlast: 1.2.5 array.prototype.flatmap: 1.3.2 array.prototype.toreversed: 1.1.2 - array.prototype.tosorted: 1.1.3 + array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 - es-iterator-helpers: 1.0.18 - eslint: 9.3.0 + es-iterator-helpers: 1.0.19 + eslint: 9.6.0 estraverse: 5.3.0 jsx-ast-utils: 3.3.5 minimatch: 3.1.2 - object.entries: 1.1.7 - object.fromentries: 2.0.7 - object.hasown: 1.1.3 - object.values: 1.1.7 + object.entries: 1.1.8 + object.fromentries: 2.0.8 + object.hasown: 1.1.4 + object.values: 1.2.0 prop-types: 15.8.1 resolve: 2.0.0-next.5 semver: 6.3.1 - string.prototype.matchall: 4.0.10 + string.prototype.matchall: 4.0.11 dev: true - /eslint-plugin-regexp@2.5.0(eslint@9.3.0): - resolution: {integrity: sha512-I7vKcP0o75WS5SHiVNXN+Eshq49sbrweMQIuqSL3AId9AwDe9Dhbfug65vw64LxmOd4v+yf5l5Xt41y9puiq0g==} + /eslint-plugin-regexp@2.6.0(eslint@9.6.0): + resolution: {integrity: sha512-FCL851+kislsTEQEMioAlpDuK5+E5vs0hi1bF8cFlPlHcEjeRhuAzEsGikXRreE+0j4WhW2uO54MqTjXtYOi3A==} engines: {node: ^18 || >=20} peerDependencies: eslint: '>=8.44.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.3.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) '@eslint-community/regexpp': 4.10.0 comment-parser: 1.4.1 - eslint: 9.3.0 + eslint: 9.6.0 jsdoc-type-pratt-parser: 4.0.0 refa: 0.12.1 regexp-ast-analysis: 0.7.1 scslre: 0.3.0 dev: true - /eslint-plugin-simple-import-sort@12.1.0(eslint@9.3.0): - resolution: {integrity: sha512-Y2fqAfC11TcG/WP3TrI1Gi3p3nc8XJyEOJYHyEPEGI/UAgNx6akxxlX74p7SbAQdLcgASKhj8M0GKvH3vq/+ig==} + /eslint-plugin-simple-import-sort@12.1.1(eslint@9.6.0): + resolution: {integrity: sha512-6nuzu4xwQtE3332Uz0to+TxDQYRLTKRESSc2hefVT48Zc8JthmN23Gx9lnYhu0FtkRSL1oxny3kJ2aveVhmOVA==} peerDependencies: eslint: '>=5.0.0' dependencies: - eslint: 9.3.0 + eslint: 9.6.0 dev: true - /eslint-plugin-testing-library@6.2.2(eslint@9.3.0)(typescript@5.4.5): + /eslint-plugin-testing-library@6.2.2(eslint@9.6.0)(typescript@5.4.5): resolution: {integrity: sha512-1E94YOTUDnOjSLyvOwmbVDzQi/WkKm3WVrMXu6SmBr6DN95xTGZmI6HJ/eOkSXh/DlheRsxaPsJvZByDBhWLVQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0, npm: '>=6'} peerDependencies: eslint: ^7.5.0 || ^8.0.0 dependencies: - '@typescript-eslint/utils': 5.62.0(eslint@9.3.0)(typescript@5.4.5) - eslint: 9.3.0 + '@typescript-eslint/utils': 5.62.0(eslint@9.6.0)(typescript@5.4.5) + eslint: 9.6.0 transitivePeerDependencies: - supports-color - typescript @@ -3475,27 +3471,27 @@ packages: engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dev: true - /eslint@9.3.0: - resolution: {integrity: sha512-5Iv4CsZW030lpUqHBapdPo3MJetAPtejVW8B84GIcIIv8+ohFaddXsrn1Gn8uD9ijDb+kcYKFUVmC8qG8B2ORQ==} + /eslint@9.6.0: + resolution: {integrity: sha512-ElQkdLMEEqQNM9Njff+2Y4q2afHk7JpkPvrd7Xh7xefwgQynqPxwf55J7di9+MEibWUGdNjFF9ITG9Pck5M84w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.3.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) '@eslint-community/regexpp': 4.10.0 + '@eslint/config-array': 0.17.0 '@eslint/eslintrc': 3.1.0 - '@eslint/js': 9.3.0 - '@humanwhocodes/config-array': 0.13.0 + '@eslint/js': 9.6.0 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.3.0 '@nodelib/fs.walk': 1.2.8 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.4 + debug: 4.3.5 escape-string-regexp: 4.0.0 eslint-scope: 8.0.1 eslint-visitor-keys: 4.0.0 - espree: 10.0.1 + espree: 10.1.0 esquery: 1.5.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 @@ -3518,12 +3514,12 @@ packages: - supports-color dev: true - /espree@10.0.1: - resolution: {integrity: sha512-MWkrWZbJsL2UwnjxTX3gG8FneachS/Mwg7tdGXce011sJd5b0JG54vat5KHnfSBODZ3Wvzd2WnjxyzsRoVv+ww==} + /espree@10.1.0: + resolution: {integrity: sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dependencies: - acorn: 8.11.3 - acorn-jsx: 5.3.2(acorn@8.11.3) + acorn: 8.12.1 + acorn-jsx: 5.3.2(acorn@8.12.1) eslint-visitor-keys: 4.0.0 dev: true @@ -3574,7 +3570,7 @@ packages: human-signals: 5.0.0 is-stream: 3.0.0 merge-stream: 2.0.0 - npm-run-path: 5.2.0 + npm-run-path: 5.3.0 onetime: 6.0.0 signal-exit: 4.1.0 strip-final-newline: 3.0.0 @@ -3677,6 +3673,7 @@ packages: asynckit: 0.4.0 combined-stream: 1.0.8 mime-types: 2.1.35 + dev: true /fs-extra@7.0.1: resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} @@ -3729,17 +3726,6 @@ packages: /get-func-name@2.0.2: resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} - /get-intrinsic@1.2.3: - resolution: {integrity: sha512-JIcZczvcMVE7AUOP+X72bh8HqHBRxFdz5PDHYtNG/lE3yk9b3KZBJlwFcTyPYjg3L4RLLmZJzvjxhaZVapxFrQ==} - engines: {node: '>= 0.4'} - dependencies: - es-errors: 1.3.0 - function-bind: 1.1.2 - has-proto: 1.0.1 - has-symbols: 1.0.3 - hasown: 2.0.2 - dev: true - /get-intrinsic@1.2.4: resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} engines: {node: '>= 0.4'} @@ -3755,14 +3741,6 @@ packages: resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} engines: {node: '>=16'} - /get-symbol-description@1.0.0: - resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.3 - dev: true - /get-symbol-description@1.0.2: resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} engines: {node: '>= 0.4'} @@ -3772,12 +3750,6 @@ packages: get-intrinsic: 1.2.4 dev: true - /get-tsconfig@4.7.2: - resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==} - dependencies: - resolve-pkg-maps: 1.0.0 - dev: true - /get-tsconfig@4.7.5: resolution: {integrity: sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==} dependencies: @@ -3805,7 +3777,7 @@ packages: dependencies: foreground-child: 3.1.1 jackspeak: 2.3.6 - minimatch: 9.0.4 + minimatch: 9.0.5 minipass: 7.0.4 path-scurry: 1.10.1 dev: true @@ -3836,11 +3808,12 @@ packages: engines: {node: '>=18'} dev: true - /globalthis@1.0.3: - resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + /globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} dependencies: define-properties: 1.2.1 + gopd: 1.0.1 dev: true /globby@11.1.0: @@ -3896,23 +3869,12 @@ packages: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - /has-property-descriptors@1.0.1: - resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} - dependencies: - get-intrinsic: 1.2.3 - dev: true - /has-property-descriptors@1.0.2: resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} dependencies: es-define-property: 1.0.0 dev: true - /has-proto@1.0.1: - resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} - engines: {node: '>= 0.4'} - dev: true - /has-proto@1.0.3: resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} engines: {node: '>= 0.4'} @@ -3930,13 +3892,6 @@ packages: has-symbols: 1.0.3 dev: true - /hasown@2.0.0: - resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} - engines: {node: '>= 0.4'} - dependencies: - function-bind: 1.1.2 - dev: true - /hasown@2.0.2: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} @@ -3958,6 +3913,7 @@ packages: engines: {node: '>=18'} dependencies: whatwg-encoding: 3.1.1 + dev: true /html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} @@ -3968,18 +3924,20 @@ packages: engines: {node: '>= 14'} dependencies: agent-base: 7.1.0 - debug: 4.3.4 + debug: 4.3.5 transitivePeerDependencies: - supports-color + dev: true /https-proxy-agent@7.0.2: resolution: {integrity: sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==} engines: {node: '>= 14'} dependencies: agent-base: 7.1.0 - debug: 4.3.4 + debug: 4.3.5 transitivePeerDependencies: - supports-color + dev: true /human-signals@5.0.0: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} @@ -3990,6 +3948,7 @@ packages: engines: {node: '>=0.10.0'} dependencies: safer-buffer: 2.1.2 + dev: true /ignore@5.3.1: resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} @@ -4034,22 +3993,21 @@ packages: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} dev: true - /internal-slot@1.0.6: - resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==} + /internal-slot@1.0.7: + resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.2.3 + es-errors: 1.3.0 hasown: 2.0.2 - side-channel: 1.0.4 + side-channel: 1.0.6 dev: true - /internal-slot@1.0.7: - resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} + /is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} engines: {node: '>= 0.4'} dependencies: - es-errors: 1.3.0 - hasown: 2.0.2 - side-channel: 1.0.4 + call-bind: 1.0.7 + has-tostringtag: 1.0.2 dev: true /is-array-buffer@3.0.4: @@ -4086,8 +4044,9 @@ packages: engines: {node: '>= 0.4'} dev: true - /is-core-module@2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + /is-core-module@2.14.0: + resolution: {integrity: sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==} + engines: {node: '>= 0.4'} dependencies: hasown: 2.0.2 dev: true @@ -4114,7 +4073,7 @@ packages: /is-finalizationregistry@1.0.2: resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 dev: true /is-fullwidth-code-point@3.0.0: @@ -4136,12 +4095,8 @@ packages: is-extglob: 2.1.1 dev: true - /is-map@2.0.2: - resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} - dev: true - - /is-negative-zero@2.0.2: - resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + /is-map@2.0.3: + resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} engines: {node: '>= 0.4'} dev: true @@ -4172,6 +4127,7 @@ packages: /is-potential-custom-element-name@1.0.1: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + dev: true /is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} @@ -4181,14 +4137,9 @@ packages: has-tostringtag: 1.0.2 dev: true - /is-set@2.0.2: - resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} - dev: true - - /is-shared-array-buffer@1.0.2: - resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} - dependencies: - call-bind: 1.0.5 + /is-set@2.0.3: + resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} + engines: {node: '>= 0.4'} dev: true /is-shared-array-buffer@1.0.3: @@ -4223,8 +4174,9 @@ packages: which-typed-array: 1.1.15 dev: true - /is-weakmap@2.0.1: - resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} + /is-weakmap@2.0.2: + resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} + engines: {node: '>= 0.4'} dev: true /is-weakref@1.0.2: @@ -4233,11 +4185,12 @@ packages: call-bind: 1.0.7 dev: true - /is-weakset@2.0.2: - resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} + /is-weakset@2.0.3: + resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.3 + call-bind: 1.0.7 + get-intrinsic: 1.2.4 dev: true /isarray@0.0.1: @@ -4274,7 +4227,7 @@ packages: engines: {node: '>=10'} dependencies: '@jridgewell/trace-mapping': 0.3.25 - debug: 4.3.4 + debug: 4.3.5 istanbul-lib-coverage: 3.2.2 transitivePeerDependencies: - supports-color @@ -4292,10 +4245,10 @@ packages: resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} dependencies: define-properties: 1.2.1 - get-intrinsic: 1.2.3 + get-intrinsic: 1.2.4 has-symbols: 1.0.3 - reflect.getprototypeof: 1.0.5 - set-function-name: 2.0.1 + reflect.getprototypeof: 1.0.6 + set-function-name: 2.0.2 dev: true /jackspeak@2.3.6: @@ -4419,6 +4372,7 @@ packages: - bufferutil - supports-color - utf-8-validate + dev: true /jsesc@2.5.2: resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} @@ -4464,10 +4418,10 @@ packages: resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} engines: {node: '>=4.0'} dependencies: - array-includes: 3.1.7 + array-includes: 3.1.8 array.prototype.flat: 1.3.2 object.assign: 4.1.5 - object.values: 1.1.7 + object.values: 1.2.0 dev: true /junk@4.0.1: @@ -4566,11 +4520,17 @@ packages: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true + /magic-string@0.30.10: + resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + /magic-string@0.30.9: resolution: {integrity: sha512-S1+hd+dIrC8EZqKyT9DstTH/0Z+f76kmmvZnkfQVmOpDEF9iVgdYif3Q/pIWHmCoo59bQVGW0kVL3e2nl+9+Sw==} engines: {node: '>=12'} dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 + dev: true /magicast@0.3.3: resolution: {integrity: sha512-ZbrP1Qxnpoes8sz47AM0z08U+jW6TyRgZzcWy3Ma3vDhJttwMwAFDMMQFobwdBxByBD46JYmxRzeF7w2+wJEuw==} @@ -4584,7 +4544,7 @@ packages: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} dependencies: - semver: 7.6.0 + semver: 7.6.2 dev: true /meow@12.1.1: @@ -4610,12 +4570,14 @@ packages: /mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} + dev: true /mime-types@2.1.35: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} dependencies: mime-db: 1.52.0 + dev: true /mimic-fn@4.0.0: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} @@ -4637,8 +4599,8 @@ packages: brace-expansion: 1.1.11 dev: true - /minimatch@9.0.4: - resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} + /minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 @@ -4662,7 +4624,7 @@ packages: /mlly@1.5.0: resolution: {integrity: sha512-NPVQvAY1xr1QoVeG0cy8yUYC7FQcOx6evl/RjT1wL5FvzPnzOysoqB/jmx/DhssT2dYa8nxECLAaFI/+gVLhDQ==} dependencies: - acorn: 8.11.3 + acorn: 8.12.1 pathe: 1.1.2 pkg-types: 1.0.3 ufo: 1.3.2 @@ -4727,40 +4689,43 @@ packages: resolution: {integrity: sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==} dev: true - /next@14.1.0(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-wlzrsbfeSU48YQBjZhDzOwhWhGsy+uQycR8bHAOt1LY1bn3zZEcDyHQOEoN3aWzQ8LHCAJ1nqrWCc9XF2+O45Q==} + /next@14.2.4(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-R8/V7vugY+822rsQGQCjoLhMuC9oFj9SOi4Cl4b2wjDrseD0LRZ10W7R6Czo4w9ZznVSshKjuIomsRjvm9EKJQ==} engines: {node: '>=18.17.0'} hasBin: true peerDependencies: '@opentelemetry/api': ^1.1.0 + '@playwright/test': ^1.41.2 react: ^18.2.0 react-dom: ^18.2.0 sass: ^1.3.0 peerDependenciesMeta: '@opentelemetry/api': optional: true + '@playwright/test': + optional: true sass: optional: true dependencies: - '@next/env': 14.1.0 - '@swc/helpers': 0.5.2 + '@next/env': 14.2.4 + '@swc/helpers': 0.5.5 busboy: 1.6.0 - caniuse-lite: 1.0.30001584 + caniuse-lite: 1.0.30001641 graceful-fs: 4.2.11 postcss: 8.4.31 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) styled-jsx: 5.1.1(react@18.3.1) optionalDependencies: - '@next/swc-darwin-arm64': 14.1.0 - '@next/swc-darwin-x64': 14.1.0 - '@next/swc-linux-arm64-gnu': 14.1.0 - '@next/swc-linux-arm64-musl': 14.1.0 - '@next/swc-linux-x64-gnu': 14.1.0 - '@next/swc-linux-x64-musl': 14.1.0 - '@next/swc-win32-arm64-msvc': 14.1.0 - '@next/swc-win32-ia32-msvc': 14.1.0 - '@next/swc-win32-x64-msvc': 14.1.0 + '@next/swc-darwin-arm64': 14.2.4 + '@next/swc-darwin-x64': 14.2.4 + '@next/swc-linux-arm64-gnu': 14.2.4 + '@next/swc-linux-arm64-musl': 14.2.4 + '@next/swc-linux-x64-gnu': 14.2.4 + '@next/swc-linux-x64-musl': 14.2.4 + '@next/swc-win32-arm64-msvc': 14.2.4 + '@next/swc-win32-ia32-msvc': 14.2.4 + '@next/swc-win32-x64-msvc': 14.2.4 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros @@ -4777,22 +4742,32 @@ packages: readable-stream: 1.0.34 dev: true - /npm-run-path@5.2.0: - resolution: {integrity: sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==} + /npm-run-path@5.3.0: + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: path-key: 4.0.0 /nwsapi@2.2.7: resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==} + dev: true /object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} dev: true - /object-inspect@1.13.1: - resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + /object-inspect@1.13.2: + resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} + engines: {node: '>= 0.4'} + dev: true + + /object-is@1.1.6: + resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 dev: true /object-keys@1.1.1: @@ -4804,54 +4779,57 @@ packages: resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 has-symbols: 1.0.3 object-keys: 1.1.1 dev: true - /object.entries@1.1.7: - resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==} + /object.entries@1.1.8: + resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-object-atoms: 1.0.0 dev: true - /object.fromentries@2.0.7: - resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} + /object.fromentries@2.0.8: + resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 dev: true /object.groupby@1.0.2: resolution: {integrity: sha512-bzBq58S+x+uo0VjurFT0UktpKHOZmv4/xePiOA1nbB9pMqpGK7rUPNgf+1YC+7mE+0HzhTMqNUuCqvKhj6FnBw==} dependencies: array.prototype.filter: 1.0.3 - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 es-errors: 1.3.0 dev: true - /object.hasown@1.1.3: - resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==} + /object.hasown@1.1.4: + resolution: {integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==} + engines: {node: '>= 0.4'} dependencies: define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 dev: true - /object.values@1.1.7: - resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} + /object.values@1.2.0: + resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-object-atoms: 1.0.0 dev: true /once@1.4.0: @@ -4956,6 +4934,7 @@ packages: resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} dependencies: entities: 4.5.0 + dev: true /path-browserify@1.0.1: resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} @@ -5008,6 +4987,10 @@ packages: /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + dev: true + + /picocolors@1.0.1: + resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} /picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} @@ -5035,7 +5018,7 @@ packages: engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.7 - picocolors: 1.0.0 + picocolors: 1.0.1 source-map-js: 1.2.0 dev: false @@ -5044,7 +5027,7 @@ packages: engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.7 - picocolors: 1.0.0 + picocolors: 1.0.1 source-map-js: 1.2.0 dev: true @@ -5053,7 +5036,7 @@ packages: engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.7 - picocolors: 1.0.0 + picocolors: 1.0.1 source-map-js: 1.2.0 /prelude-ls@1.2.1: @@ -5068,8 +5051,8 @@ packages: fast-diff: 1.3.0 dev: true - /prettier@3.2.5: - resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} + /prettier@3.3.2: + resolution: {integrity: sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==} engines: {node: '>=14'} hasBin: true dev: true @@ -5104,13 +5087,16 @@ packages: /psl@1.9.0: resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} + dev: true /punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} + dev: true /querystringify@2.2.0: resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + dev: true /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -5219,16 +5205,16 @@ packages: '@eslint-community/regexpp': 4.10.0 dev: true - /reflect.getprototypeof@1.0.5: - resolution: {integrity: sha512-62wgfC8dJWrmxv44CA36pLDnP6KKl3Vhxb7PL+8+qrrFMMoJij4vgiMP8zV4O8+CBMXY1mHxI5fITGHXFHVmQQ==} + /reflect.getprototypeof@1.0.6: + resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 es-errors: 1.3.0 - get-intrinsic: 1.2.3 - globalthis: 1.0.3 + get-intrinsic: 1.2.4 + globalthis: 1.0.4 which-builtin-type: 1.1.3 dev: true @@ -5243,15 +5229,6 @@ packages: refa: 0.12.1 dev: true - /regexp.prototype.flags@1.5.1: - resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - set-function-name: 2.0.1 - dev: true - /regexp.prototype.flags@1.5.2: resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} engines: {node: '>= 0.4'} @@ -5259,7 +5236,7 @@ packages: call-bind: 1.0.7 define-properties: 1.2.1 es-errors: 1.3.0 - set-function-name: 2.0.1 + set-function-name: 2.0.2 dev: true /require-directory@2.1.1: @@ -5269,6 +5246,7 @@ packages: /requires-port@1.0.0: resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + dev: true /resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} @@ -5282,7 +5260,7 @@ packages: /resolve@1.19.0: resolution: {integrity: sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==} dependencies: - is-core-module: 2.13.1 + is-core-module: 2.14.0 path-parse: 1.0.7 dev: true @@ -5290,7 +5268,7 @@ packages: resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true dependencies: - is-core-module: 2.13.1 + is-core-module: 2.14.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 dev: true @@ -5299,7 +5277,7 @@ packages: resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} hasBin: true dependencies: - is-core-module: 2.13.1 + is-core-module: 2.14.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 dev: true @@ -5367,6 +5345,7 @@ packages: /rrweb-cssom@0.6.0: resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} + dev: true /run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -5374,16 +5353,6 @@ packages: queue-microtask: 1.2.3 dev: true - /safe-array-concat@1.1.0: - resolution: {integrity: sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==} - engines: {node: '>=0.4'} - dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.3 - has-symbols: 1.0.3 - isarray: 2.0.5 - dev: true - /safe-array-concat@1.1.2: resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} engines: {node: '>=0.4'} @@ -5398,15 +5367,6 @@ packages: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} dev: true - /safe-regex-test@1.0.2: - resolution: {integrity: sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.3 - is-regex: 1.1.4 - dev: true - /safe-regex-test@1.0.3: resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} engines: {node: '>= 0.4'} @@ -5418,12 +5378,14 @@ packages: /safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + dev: true /saxes@6.0.0: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} engines: {node: '>=v12.22.7'} dependencies: xmlchars: 2.2.0 + dev: true /scheduler@0.23.0: resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} @@ -5457,23 +5419,10 @@ packages: lru-cache: 6.0.0 dev: true - /semver@7.6.0: - resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} + /semver@7.6.2: + resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} engines: {node: '>=10'} hasBin: true - dependencies: - lru-cache: 6.0.0 - dev: true - - /set-function-length@1.2.0: - resolution: {integrity: sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==} - engines: {node: '>= 0.4'} - dependencies: - define-data-property: 1.1.1 - function-bind: 1.1.2 - get-intrinsic: 1.2.3 - gopd: 1.0.1 - has-property-descriptors: 1.0.1 dev: true /set-function-length@1.2.2: @@ -5488,13 +5437,14 @@ packages: has-property-descriptors: 1.0.2 dev: true - /set-function-name@2.0.1: - resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} + /set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} engines: {node: '>= 0.4'} dependencies: - define-data-property: 1.1.1 + define-data-property: 1.1.4 + es-errors: 1.3.0 functions-have-names: 1.2.3 - has-property-descriptors: 1.0.1 + has-property-descriptors: 1.0.2 dev: true /shebang-command@2.0.0: @@ -5507,12 +5457,14 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - /side-channel@1.0.4: - resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + /side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.3 - object-inspect: 1.13.1 + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + object-inspect: 1.13.2 dev: true /siginfo@2.0.0: @@ -5562,6 +5514,13 @@ packages: /std-env@3.7.0: resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} + /stop-iteration-iterator@1.0.0: + resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} + engines: {node: '>= 0.4'} + dependencies: + internal-slot: 1.0.7 + dev: true + /streamsearch@1.1.0: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} engines: {node: '>=10.0.0'} @@ -5594,27 +5553,29 @@ packages: strip-ansi: 7.1.0 dev: true - /string.prototype.matchall@4.0.10: - resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==} + /string.prototype.includes@2.0.0: + resolution: {integrity: sha512-E34CkBgyeqNDcrbU76cDjL5JLcVrtSdYq0MEh/B10r17pRP4ciHLwTgnuLV8Ay6cgEMLkcBkFCKyFZ43YldYzg==} dependencies: - call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.3 - has-symbols: 1.0.3 - internal-slot: 1.0.6 - regexp.prototype.flags: 1.5.1 - set-function-name: 2.0.1 - side-channel: 1.0.4 + es-abstract: 1.23.3 dev: true - /string.prototype.trim@1.2.8: - resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} + /string.prototype.matchall@4.0.11: + resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.7 + regexp.prototype.flags: 1.5.2 + set-function-name: 2.0.2 + side-channel: 1.0.6 dev: true /string.prototype.trim@1.2.9: @@ -5627,14 +5588,6 @@ packages: es-object-atoms: 1.0.0 dev: true - /string.prototype.trimend@1.0.7: - resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - dev: true - /string.prototype.trimend@1.0.8: resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} dependencies: @@ -5643,14 +5596,6 @@ packages: es-object-atoms: 1.0.0 dev: true - /string.prototype.trimstart@1.0.7: - resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - dev: true - /string.prototype.trimstart@1.0.8: resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} engines: {node: '>= 0.4'} @@ -5752,13 +5697,14 @@ packages: /symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + dev: true /synckit@0.8.8: resolution: {integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==} engines: {node: ^14.18.0 || >=16.0.0} dependencies: '@pkgr/core': 0.1.1 - tslib: 2.6.2 + tslib: 2.6.3 dev: true /tapable@2.2.1: @@ -5788,13 +5734,17 @@ packages: /tinybench@2.6.0: resolution: {integrity: sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==} + dev: true + + /tinybench@2.8.0: + resolution: {integrity: sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==} /tinypool@0.8.4: resolution: {integrity: sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==} engines: {node: '>=14.0.0'} - /tinyspy@2.2.0: - resolution: {integrity: sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==} + /tinyspy@2.2.1: + resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==} engines: {node: '>=14.0.0'} /to-fast-properties@2.0.0: @@ -5816,12 +5766,14 @@ packages: punycode: 2.3.1 universalify: 0.2.0 url-parse: 1.5.10 + dev: true /tr46@5.0.0: resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==} engines: {node: '>=18'} dependencies: punycode: 2.3.1 + dev: true /ts-api-utils@1.3.0(typescript@5.4.5): resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} @@ -5847,6 +5799,10 @@ packages: /tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + dev: true + + /tslib@2.6.3: + resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} /tsutils@3.21.0(typescript@5.4.5): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} @@ -5890,15 +5846,6 @@ packages: engines: {node: '>=16'} dev: true - /typed-array-buffer@1.0.0: - resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.3 - is-typed-array: 1.1.13 - dev: true - /typed-array-buffer@1.0.2: resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} engines: {node: '>= 0.4'} @@ -5908,16 +5855,6 @@ packages: is-typed-array: 1.1.13 dev: true - /typed-array-byte-length@1.0.0: - resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - for-each: 0.3.3 - has-proto: 1.0.1 - is-typed-array: 1.1.13 - dev: true - /typed-array-byte-length@1.0.1: resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} engines: {node: '>= 0.4'} @@ -5929,17 +5866,6 @@ packages: is-typed-array: 1.1.13 dev: true - /typed-array-byte-offset@1.0.0: - resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} - engines: {node: '>= 0.4'} - dependencies: - available-typed-arrays: 1.0.6 - call-bind: 1.0.5 - for-each: 0.3.3 - has-proto: 1.0.1 - is-typed-array: 1.1.13 - dev: true - /typed-array-byte-offset@1.0.2: resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} engines: {node: '>= 0.4'} @@ -5952,14 +5878,6 @@ packages: is-typed-array: 1.1.13 dev: true - /typed-array-length@1.0.4: - resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} - dependencies: - call-bind: 1.0.5 - for-each: 0.3.3 - is-typed-array: 1.1.13 - dev: true - /typed-array-length@1.0.6: resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} engines: {node: '>= 0.4'} @@ -6006,6 +5924,7 @@ packages: /universalify@0.2.0: resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} engines: {node: '>= 4.0.0'} + dev: true /untildify@4.0.0: resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} @@ -6020,7 +5939,7 @@ packages: dependencies: browserslist: 4.22.3 escalade: 3.1.2 - picocolors: 1.0.0 + picocolors: 1.0.1 dev: true /uri-js@4.4.1: @@ -6034,6 +5953,7 @@ packages: dependencies: querystringify: 2.2.0 requires-port: 1.0.0 + dev: true /util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} @@ -6050,9 +5970,9 @@ packages: hasBin: true dependencies: cac: 6.7.14 - debug: 4.3.4 + debug: 4.3.5 pathe: 1.1.2 - picocolors: 1.0.0 + picocolors: 1.0.1 vite: 5.2.11 transitivePeerDependencies: - '@types/node' @@ -6219,6 +6139,60 @@ packages: optionalDependencies: fsevents: 2.3.3 + /vitest@1.6.0: + resolution: {integrity: sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/node': ^18.0.0 || >=20.0.0 + '@vitest/browser': 1.6.0 + '@vitest/ui': 1.6.0 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + dependencies: + '@vitest/expect': 1.6.0 + '@vitest/runner': 1.6.0 + '@vitest/snapshot': 1.6.0 + '@vitest/spy': 1.6.0 + '@vitest/utils': 1.6.0 + acorn-walk: 8.3.2 + chai: 4.4.1 + debug: 4.3.5 + execa: 8.0.1 + local-pkg: 0.5.0 + magic-string: 0.30.10 + pathe: 1.1.2 + picocolors: 1.0.1 + std-env: 3.7.0 + strip-literal: 2.0.0 + tinybench: 2.8.0 + tinypool: 0.8.4 + vite: 5.2.11 + vite-node: 1.6.0 + why-is-node-running: 2.3.0 + transitivePeerDependencies: + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + /vitest@1.6.0(jsdom@24.0.0): resolution: {integrity: sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==} engines: {node: ^18.0.0 || >=20.0.0} @@ -6273,6 +6247,7 @@ packages: - sugarss - supports-color - terser + dev: true /vue-template-compiler@2.7.16: resolution: {integrity: sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==} @@ -6289,7 +6264,7 @@ packages: dependencies: '@volar/typescript': 1.11.1 '@vue/language-core': 1.8.27(typescript@5.4.5) - semver: 7.6.0 + semver: 7.6.2 typescript: 5.4.5 dev: true @@ -6298,6 +6273,7 @@ packages: engines: {node: '>=18'} dependencies: xml-name-validator: 5.0.0 + dev: true /web-vitals@3.5.2: resolution: {integrity: sha512-c0rhqNcHXRkY/ogGDJQxZ9Im9D19hDihbzSQJrsioex+KnFgmMzBiy57Z1EjkhX/+OjyBpclDCzz2ITtjokFmg==} @@ -6306,16 +6282,19 @@ packages: /webidl-conversions@7.0.0: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} engines: {node: '>=12'} + dev: true /whatwg-encoding@3.1.1: resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} engines: {node: '>=18'} dependencies: iconv-lite: 0.6.3 + dev: true /whatwg-mimetype@4.0.0: resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} engines: {node: '>=18'} + dev: true /whatwg-url@14.0.0: resolution: {integrity: sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==} @@ -6323,6 +6302,7 @@ packages: dependencies: tr46: 5.0.0 webidl-conversions: 7.0.0 + dev: true /which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} @@ -6348,28 +6328,18 @@ packages: is-weakref: 1.0.2 isarray: 2.0.5 which-boxed-primitive: 1.0.2 - which-collection: 1.0.1 - which-typed-array: 1.1.14 - dev: true - - /which-collection@1.0.1: - resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} - dependencies: - is-map: 2.0.2 - is-set: 2.0.2 - is-weakmap: 2.0.1 - is-weakset: 2.0.2 + which-collection: 1.0.2 + which-typed-array: 1.1.15 dev: true - /which-typed-array@1.1.14: - resolution: {integrity: sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==} + /which-collection@1.0.2: + resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} engines: {node: '>= 0.4'} dependencies: - available-typed-arrays: 1.0.6 - call-bind: 1.0.5 - for-each: 0.3.3 - gopd: 1.0.1 - has-tostringtag: 1.0.2 + is-map: 2.0.3 + is-set: 2.0.3 + is-weakmap: 2.0.2 + is-weakset: 2.0.3 dev: true /which-typed-array@1.1.15: @@ -6397,6 +6367,15 @@ packages: dependencies: siginfo: 2.0.0 stackback: 0.0.2 + dev: true + + /why-is-node-running@2.3.0: + resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} + engines: {node: '>=8'} + hasBin: true + dependencies: + siginfo: 2.0.0 + stackback: 0.0.2 /wrap-ansi@6.2.0: resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} @@ -6440,13 +6419,16 @@ packages: optional: true utf-8-validate: optional: true + dev: true /xml-name-validator@5.0.0: resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} engines: {node: '>=18'} + dev: true /xmlchars@2.2.0: resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + dev: true /xtend@4.0.2: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} From a46b1aabe19db70beac342c557ae2c986d16eae7 Mon Sep 17 00:00:00 2001 From: Jason Finch Date: Mon, 15 Jul 2024 06:25:08 +1000 Subject: [PATCH 298/440] fix (FetchToken): Fix FetchToken param to be boolean (#1414) Resolves: ```text packages/react-oidc prepare: src/FetchToken.tsx:12:48 - error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'false'. packages/react-oidc prepare: 12 const newFetch = oidc.fetchWithTokens(fetch, demonstrating_proof_of_possession); ``` --- packages/oidc-client/src/oidcClient.ts | 2 +- packages/react-oidc/src/FetchToken.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/oidc-client/src/oidcClient.ts b/packages/oidc-client/src/oidcClient.ts index 59a293dbe..5cd3cfabb 100644 --- a/packages/oidc-client/src/oidcClient.ts +++ b/packages/oidc-client/src/oidcClient.ts @@ -75,7 +75,7 @@ export class OidcClient { return getValidTokenAsync(this._oidc, waitMs, numberWait); } - fetchWithTokens(fetch: Fetch, demonstrating_proof_of_possession:false): Fetch { + fetchWithTokens(fetch: Fetch, demonstrating_proof_of_possession:boolean = false): Fetch { return fetchWithTokens(fetch, this, demonstrating_proof_of_possession); } diff --git a/packages/react-oidc/src/FetchToken.tsx b/packages/react-oidc/src/FetchToken.tsx index e311778e0..27d1808b9 100644 --- a/packages/react-oidc/src/FetchToken.tsx +++ b/packages/react-oidc/src/FetchToken.tsx @@ -7,7 +7,7 @@ export interface ComponentWithOidcFetchProps { const defaultConfigurationName = 'default'; -const fetchWithToken = (fetch: Fetch, getOidcWithConfigurationName: () => OidcClient | null, demonstrating_proof_of_possession=false) => async (...params: Parameters) => { +const fetchWithToken = (fetch: Fetch, getOidcWithConfigurationName: () => OidcClient | null, demonstrating_proof_of_possession: boolean = false) => async (...params: Parameters) => { const oidc = getOidcWithConfigurationName(); const newFetch = oidc.fetchWithTokens(fetch, demonstrating_proof_of_possession); return await newFetch(...params); From 7caee919b4854526dad83203216965746baecabe Mon Sep 17 00:00:00 2001 From: Jason Finch Date: Mon, 15 Jul 2024 06:26:19 +1000 Subject: [PATCH 299/440] build(job): Update job scripts to v4. (earlier versions are marked deprecated) (#1411) --- .../azure-static-web-apps-black-rock-0dc6b0d03.yml | 4 ++-- .../azure-static-web-apps-icy-glacier-004ab4303.yml | 4 ++-- .github/workflows/ci.yml | 4 ++-- .github/workflows/npm-publish.yml | 8 ++++---- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/azure-static-web-apps-black-rock-0dc6b0d03.yml b/.github/workflows/azure-static-web-apps-black-rock-0dc6b0d03.yml index ef1ceae2f..0e0c6d22e 100644 --- a/.github/workflows/azure-static-web-apps-black-rock-0dc6b0d03.yml +++ b/.github/workflows/azure-static-web-apps-black-rock-0dc6b0d03.yml @@ -25,10 +25,10 @@ jobs: runs-on: ubuntu-latest name: Build and Deploy Job steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 with: submodules: true - - uses: actions/setup-node@v2 + - uses: actions/setup-node@v4 with: node-version: ${{ env.NODE_VERSION }} - uses: pnpm/action-setup@v4 diff --git a/.github/workflows/azure-static-web-apps-icy-glacier-004ab4303.yml b/.github/workflows/azure-static-web-apps-icy-glacier-004ab4303.yml index 36d7b0f3b..f7bf9eb68 100644 --- a/.github/workflows/azure-static-web-apps-icy-glacier-004ab4303.yml +++ b/.github/workflows/azure-static-web-apps-icy-glacier-004ab4303.yml @@ -25,10 +25,10 @@ jobs: runs-on: ubuntu-latest name: Build and Deploy Job steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 with: submodules: true - - uses: actions/setup-node@v2 + - uses: actions/setup-node@v4 with: node-version: ${{ env.NODE_VERSION }} - uses: pnpm/action-setup@v4 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index aadcf5860..b47788da8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,10 +17,10 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Install node.js - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: ${{ env.NODE_VERSION }} diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml index 42c64308b..85dcd2fe6 100644 --- a/.github/workflows/npm-publish.yml +++ b/.github/workflows/npm-publish.yml @@ -24,8 +24,8 @@ jobs: runs-on: ubuntu-latest if: needs.skip_ci.outputs.canSkip != 'true' && github.event.pull_request.head.repo.fork steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v2 + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 with: node-version: ${{ env.NODE_VERSION }} @@ -62,7 +62,7 @@ jobs: runs-on: ubuntu-latest if: needs.skip_ci.outputs.canSkip != 'true' && !github.event.pull_request.head.repo.fork steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: token: ${{ secrets.GIT_TOKEN }} fetch-depth: 0 @@ -120,7 +120,7 @@ jobs: echo "new_version=$version-beta.${{ github.run_number }}" >> $GITHUB_OUTPUT fi - - uses: actions/setup-node@v2 + - uses: actions/setup-node@v4 with: node-version: ${{ env.NODE_VERSION }} From b94fa5ca90bd366c4f59a870c428f42872bfacaa Mon Sep 17 00:00:00 2001 From: Jason Finch Date: Mon, 15 Jul 2024 06:28:21 +1000 Subject: [PATCH 300/440] docs: Minor language change. (#1412) --- SECURITY.md | 2 +- packages/react-oidc/README.md | 33 +++++++++++++++------------------ 2 files changed, 16 insertions(+), 19 deletions(-) diff --git a/SECURITY.md b/SECURITY.md index 74720879a..a9c26f5e4 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -6,7 +6,7 @@ Use this section to tell people about which versions of your project are currently being supported with security updates. | Version | Supported | -| ------- | ------------------ | +|---------|--------------------| | 5.1.x | :white_check_mark: | | 5.0.x | :x: | | 4.0.x | :white_check_mark: | diff --git a/packages/react-oidc/README.md b/packages/react-oidc/README.md index 5a02047ff..2a35493fb 100644 --- a/packages/react-oidc/README.md +++ b/packages/react-oidc/README.md @@ -8,14 +8,11 @@ We provide a wrapper **@axa-fr/react-oidc** for **React** (compatible next.js) and we expect soon to provide one for **Vue**, **Angular** and **Svelte**. -- Try the react demo at https://black-rock-0dc6b0d03.1.azurestaticapps.net/ (most advanced) +- Try the React demo at https://black-rock-0dc6b0d03.1.azurestaticapps.net/ (most advanced) - Try the pure javascript demo at https://icy-glacier-004ab4303.2.azurestaticapps.net/ -

- Sample React Oicd -

+ +Sample React Oicd - [About](#about) - [Getting Started](#getting-started) @@ -139,7 +136,7 @@ pnpm start ### Application startup -The library is router agnostic and use native History API. +The library is router agnostic and will use native History API. The default routes used internally : @@ -238,8 +235,8 @@ const configuration = { demonstrating_proof_of_possession_configuration: DemonstratingProofOfPossessionConfiguration // Optional, more details bellow }; - -interface DemonstratingProofOfPossessionConfiguration { +interface DemonstratingProofOfPossessionConfiguration +{ generateKeyAlgorithm: RsaHashedKeyGenParams | EcKeyGenParams, digestAlgorithm: AlgorithmIdentifier, importKeyAlgorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, @@ -336,7 +333,7 @@ import { OidcSecure } from "@axa-fr/react-oidc"; const AdminSecure = () => ( -

My sub component

} +

My sub component

); @@ -344,9 +341,9 @@ const AdminSecure = () => ( export default AdminSecure; ``` -## How to secure a component : HOC method +## How to secure a component: HOC method -"withOidcSecure" act the same as "OidcSecure" it also trigger authentication in case user is not authenticated. +`withOidcSecure` will act the same as `OidcSecure`,it will also trigger authentication in case the user is not authenticated. ```javascript import React from "react"; @@ -368,7 +365,7 @@ const Routes = () => ( export default Routes; ``` -## How to get "Access Token" : Hook method +## How to get "Access Token": Hook method ```javascript import { useOidcAccessToken } from "@axa-fr/react-oidc"; @@ -399,7 +396,7 @@ const DisplayAccessToken = () => { }; ``` -## How to get IDToken : Hook method +## How to get IDToken: Hook method ```javascript import { useOidcIdToken } from "@axa-fr/react-oidc"; @@ -425,7 +422,7 @@ const DisplayIdToken = () => { }; ``` -## How to get User Information : Hook method +## How to get User Information: Hook method ```javascript import { useOidcUser, UserStatus } from "@axa-fr/react-oidc"; @@ -453,10 +450,10 @@ const DisplayUserInfo = () => { }; ``` -## How to get a fetch that inject Access_Token : Hook method +## How to get a fetch that inject Access_Token: Hook method -If your are not using the service worker. Fetch function need to send AccessToken. -This Hook give you a wrapped fetch that add the access token for you. +If you are not using the service worker. The Fetch function needs to send AccessToken. +This hook will give you a wrapped fetch that adds the access token for you. ```javascript import React, { useEffect, useState } from "react"; From 01f0714241e6442e6b58fcba8b86804ed75cec09 Mon Sep 17 00:00:00 2001 From: Jason Finch Date: Mon, 15 Jul 2024 06:32:02 +1000 Subject: [PATCH 301/440] tests(domain): Be more explicit about intent of test, is to not throw, not return undefined. (#1413) --- .../src/utils/__tests__/domains.spec.ts | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/packages/oidc-client-service-worker/src/utils/__tests__/domains.spec.ts b/packages/oidc-client-service-worker/src/utils/__tests__/domains.spec.ts index eea8e1a46..b4531819a 100644 --- a/packages/oidc-client-service-worker/src/utils/__tests__/domains.spec.ts +++ b/packages/oidc-client-service-worker/src/utils/__tests__/domains.spec.ts @@ -1,21 +1,21 @@ import { beforeEach, describe, expect, it } from 'vitest'; import { openidWellknownUrlEndWith } from '../../constants'; +import { Database, Tokens, TrustedDomains } from '../../types'; import { checkDomain, getCurrentDatabaseDomain } from '..'; -import { Database, Tokens, TrustedDomains } from './../../types'; describe('domains', () => { describe('can check domain matches', () => { - it('can check string domains and return void', () => { - const result = () => + it('can check string domains without throwing an exception', () => { + expect(() => { checkDomain(['https://securesite.com:3000'], 'https://securesite.com:3000'); - expect(result()).toBeUndefined(); + }).not.toThrow(); }); - it('can check regExp domains and return void when valid', () => { - const result = () => + it('can check regExp domains without throwing an exception when valid', () => { + expect(() => { checkDomain([/^https:\/\/securesite\.com/], 'https://securesite.com:3000'); - expect(result()).toBeUndefined(); + }).not.toThrow(); }); it('will throw error when domain is not trusted', () => { @@ -24,9 +24,10 @@ describe('domains', () => { expect(result).toThrowError(); }); - it('will return void when endpoint is falsy', () => { - const result = () => checkDomain(['https://securesite.com:3000'], ''); - expect(result()).toBeUndefined(); + it('will not throw an exception when endpoint is falsy', () => { + expect(() => { + checkDomain(['https://securesite.com:3000'], ''); + }).not.toThrow(); }); }); describe('getCurrentDatabaseDomain', () => { From b099078f9d4b61dffd03034f511a4f32e80977a8 Mon Sep 17 00:00:00 2001 From: wermanoid Date: Mon, 15 Jul 2024 17:07:37 +0200 Subject: [PATCH 302/440] fix(oidc): clenup client internal promises when requests are finished (release) (#1417) --- packages/oidc-client/src/oidc.ts | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/packages/oidc-client/src/oidc.ts b/packages/oidc-client/src/oidc.ts index 1c5129b5d..59f6d2532 100644 --- a/packages/oidc-client/src/oidc.ts +++ b/packages/oidc-client/src/oidc.ts @@ -243,9 +243,8 @@ Please checkout that you are using OIDC hook inside a { + return this.tryKeepExistingSessionPromise.finally(() => { this.tryKeepExistingSessionPromise = null; - return result; }); } @@ -266,9 +265,8 @@ Please checkout that you are using OIDC hook inside a { + return this.loginPromise.finally(() => { this.loginPromise = null; - return result; }); } @@ -297,9 +295,8 @@ Please checkout that you are using OIDC hook inside a { + return this.loginCallbackPromise.finally(() => { this.loginCallbackPromise = null; - return result; }); } @@ -336,9 +333,8 @@ Please checkout that you are using OIDC hook inside a { + return this.loginCallbackWithAutoTokensRenewPromise.finally(() => { this.loginCallbackWithAutoTokensRenewPromise = null; - return result; }); } @@ -348,9 +344,8 @@ Please checkout that you are using OIDC hook inside a { + return this.userInfoPromise.finally(() => { this.userInfoPromise = null; - return result; }); } @@ -366,9 +361,8 @@ Please checkout that you are using OIDC hook inside a { + return this.renewTokensPromise.finally(() => { this.renewTokensPromise = null; - return result; }); } @@ -398,9 +392,8 @@ Please checkout that you are using OIDC hook inside a { + return this.logoutPromise.finally(() => { this.logoutPromise = null; - return result; }); } } From 5749d0d9316f1e0a0f6a6485b029b9564bfb1d70 Mon Sep 17 00:00:00 2001 From: GitHub Date: Mon, 15 Jul 2024 15:10:10 +0000 Subject: [PATCH 303/440] [skip ci] Update to version 7.22.17 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index 3d24cd07b..d31aad534 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.22.16", + "version": "7.22.17", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 1097aee35..34018eb9a 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.22.16'; +export default '7.22.17'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 49e1df44f..82bd15624 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.22.16", + "version": "7.22.17", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 1097aee35..34018eb9a 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.22.16'; +export default '7.22.17'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index f8ba2d4c2..4b3593fd0 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.22.16", + "version": "7.22.17", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 58c7d1a30099a5936813f993213377124d34944e Mon Sep 17 00:00:00 2001 From: GitHub Date: Mon, 15 Jul 2024 15:10:12 +0000 Subject: [PATCH 304/440] [skip ci] Generate changelog to version 7.22.17 --- CHANGELOG.md | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a33afeef0..373e36d4e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,16 @@ # Changelog -## 7.22.16 +## 7.22.17 + +- [b099078](https://github.com/AxaFrance/oidc-client/commit/b099078f9d4b61dffd03034f511a4f32e80977a8) - fix(oidc): clenup client internal promises when requests are finished (release) (#1417), 2024-07-15 by *wermanoid* +- [01f0714](https://github.com/AxaFrance/oidc-client/commit/01f0714241e6442e6b58fcba8b86804ed75cec09) - tests(domain): Be more explicit about intent of test, is to not throw, not return undefined. (#1413), 2024-07-15 by *Jason Finch* +- [b94fa5c](https://github.com/AxaFrance/oidc-client/commit/b94fa5ca90bd366c4f59a870c428f42872bfacaa) - docs: Minor language change. (#1412), 2024-07-15 by *Jason Finch* +- [7caee91](https://github.com/AxaFrance/oidc-client/commit/7caee919b4854526dad83203216965746baecabe) - build(job): Update job scripts to v4. (earlier versions are marked deprecated) (#1411), 2024-07-15 by *Jason Finch* +- [a46b1aa](https://github.com/AxaFrance/oidc-client/commit/a46b1aabe19db70beac342c557ae2c986d16eae7) - fix (FetchToken): Fix FetchToken param to be boolean (#1414), 2024-07-15 by *Jason Finch* +- [a989ed2](https://github.com/AxaFrance/oidc-client/commit/a989ed29f46b66483bc2c7c51e73bcc19b2c9736) - build(lint): Update lint step to run. (#1409), 2024-07-13 by *Jason Finch* + + +## v7.22.16 - [72a6373](https://github.com/AxaFrance/oidc-client/commit/72a6373402a53aaaf01ad7fac22f8ad8c6feaff0) - fix(oidc): improve error handling (release) (#1403), 2024-07-11 by *Miya* - [c56ceb8](https://github.com/AxaFrance/oidc-client/commit/c56ceb815b28dd5990fe4a1679a61bcebc7e525a) - docs(readme): Update README.md (#1407), 2024-07-12 by *Jason Finch* @@ -312,8 +322,3 @@ - [da77bb9](https://github.com/AxaFrance/oidc-client/commit/da77bb912b61e5aad93c53e84ce4fbea2a503fb2) - build(npm): bump typescript from 5.1.6 to 5.3.3 (#1232), 2023-12-07 by *dependabot[bot]* -## v7.13.5 - -- [8f5f888](https://github.com/AxaFrance/oidc-client/commit/8f5f888fe34d739ded51f611e194d77a2e788830) - build(npm): bump eslint-plugin-regexp from 1.15.0 to 2.1.2 (#1233), 2023-12-07 by *dependabot[bot]* - - From 5ee0cc8f6d823056da221ad081c3821ba9fac343 Mon Sep 17 00:00:00 2001 From: Miya <44374710+krzempekk@users.noreply.github.com> Date: Tue, 16 Jul 2024 21:33:18 +0200 Subject: [PATCH 305/440] fix(oidc): separate state, nonce and codeVerifier for each tab (release) (#1402) * fix(oidc): separate state, nonce and codeVerifier for each tab (release) * fix(oidc): add allowMultiTabLogin flag for configuring multi tab login behaviour (release) --------- Co-authored-by: mkrzempek --- examples/react-oidc-demo/README.md | 3 + .../public/OidcTrustedDomains.js | 5 + examples/react-oidc-demo/src/MultiAuth.tsx | 10 +- .../src/OidcServiceWorker.ts | 101 +++++++++++------- .../src/__tests__/oidcConfig.spec.ts | 7 +- .../oidc-client-service-worker/src/types.ts | 9 +- .../src/utils/__tests__/codeVerifier.spec.ts | 4 +- .../src/utils/__tests__/domains.spec.ts | 7 +- .../src/utils/__tests__/testHelper.ts | 19 ++-- .../src/utils/__tests__/tokens.spec.ts | 6 +- .../src/utils/codeVerifier.ts | 8 +- .../src/utils/tokens.ts | 18 ++-- packages/oidc-client/README.md | 6 ++ packages/oidc-client/src/initWorker.ts | 34 ++++-- packages/react-oidc/README.md | 6 ++ 15 files changed, 157 insertions(+), 86 deletions(-) diff --git a/examples/react-oidc-demo/README.md b/examples/react-oidc-demo/README.md index b61a546b4..04bf0c5bb 100644 --- a/examples/react-oidc-demo/README.md +++ b/examples/react-oidc-demo/README.md @@ -71,6 +71,9 @@ const trustedDomains = { // scenarios which require it. For example, to send it via websocket connection. trustedDomains.config_show_access_token = { domains : ["https://demo.duendesoftware.com"], showAccessToken: true }; +// Setting allowMultiTabLogin to true will enable storing login-specific parameters (state, nonce, code verifier) +// separately for each tab. This will prevent errors when logins are initiated from multiple tabs. +trustedDomains.config_multi_tab_login = { domains : ["https://demo.duendesoftware.com"], allowMultiTabLogin: true }; ``` ## Run The Demo diff --git a/examples/react-oidc-demo/public/OidcTrustedDomains.js b/examples/react-oidc-demo/public/OidcTrustedDomains.js index 933b0f2bc..f8872e5ec 100644 --- a/examples/react-oidc-demo/public/OidcTrustedDomains.js +++ b/examples/react-oidc-demo/public/OidcTrustedDomains.js @@ -27,4 +27,9 @@ trustedDomains.config_with_dpop = { demonstratingProofOfPossession: true, demonstratingProofOfPossessionOnlyWhenDpopHeaderPresent: true }; + +trustedDomains.config_multi_tab_login = { + domains: ["https://demo.duendesoftware.com"], + allowMultiTabLogin: true +} //# sourceMappingURL=OidcTrustedDomains.js.map \ No newline at end of file diff --git a/examples/react-oidc-demo/src/MultiAuth.tsx b/examples/react-oidc-demo/src/MultiAuth.tsx index 66eff1d7f..c10070f44 100644 --- a/examples/react-oidc-demo/src/MultiAuth.tsx +++ b/examples/react-oidc-demo/src/MultiAuth.tsx @@ -47,6 +47,7 @@ const MultiAuth = ({ configurationName, handleConfigurationChange }) => {; + {!isAuthenticated && } {isAuthenticatedDefault && } @@ -140,7 +141,14 @@ export const MultiAuthContainer = () => { digestAlgorithm: { name: "SHA-256" }, jwtHeaderAlgorithm: "RS256", },*/ - } + }, + config_multi_tab_login: { + ...configurationIdentityServer, + redirect_uri: callBack, + silent_redirect_uri, + scope: 'openid profile email api offline_access', + client_id: 'interactive.public.short', + }, }; const handleConfigurationChange = (event) => { const configurationName = event.target.value; diff --git a/packages/oidc-client-service-worker/src/OidcServiceWorker.ts b/packages/oidc-client-service-worker/src/OidcServiceWorker.ts index 1d4466c11..abca232f5 100644 --- a/packages/oidc-client-service-worker/src/OidcServiceWorker.ts +++ b/packages/oidc-client-service-worker/src/OidcServiceWorker.ts @@ -77,7 +77,7 @@ const keepAliveAsync = async (event: FetchEvent) => { async function generateDpopAsync(originalRequest: Request, currentDatabase:OidcConfig|null, url: string, extrasClaims={} ) { const headersExtras = serializeHeaders(originalRequest.headers); - if (currentDatabase?.demonstratingProofOfPossessionConfiguration && + if (currentDatabase?.demonstratingProofOfPossessionConfiguration && currentDatabase.demonstratingProofOfPossessionJwkJson && (!currentDatabase.demonstratingProofOfPossessionOnlyWhenDpopHeaderPresent || currentDatabase.demonstratingProofOfPossessionOnlyWhenDpopHeaderPresent && headersExtras['dpop']) ) { @@ -166,6 +166,7 @@ const handleFetch = async (event: FetchEvent) => { } let currentDatabase: OidcConfig | null = null; + let currentTabId: string | null = null; const currentDatabases = getCurrentDatabasesTokenEndpoint(database, url); const numberDatabase = currentDatabases.length; if (numberDatabase > 0) { @@ -180,28 +181,41 @@ const handleFetch = async (event: FetchEvent) => { let newBody = actualBody; for (let i = 0; i < numberDatabase; i++) { const currentDb = currentDatabases[i]; + const currentDbTabs = Object.keys(currentDb.state); + if (currentDb?.tokens != null) { const claimsExtras = {ath: await base64urlOfHashOfASCIIEncodingAsync(currentDb.tokens.access_token),}; headers = await generateDpopAsync(originalRequest, currentDb, url, claimsExtras); - const keyRefreshToken = - TOKEN.REFRESH_TOKEN + '_' + currentDb.configurationName; - if (actualBody.includes(keyRefreshToken)) { - newBody = newBody.replace( - keyRefreshToken, - encodeURIComponent(currentDb.tokens.refresh_token as string), - ); - currentDatabase = currentDb; - - break; + + for(let j = 0; j < currentDbTabs.length; j++) { + const keyRefreshToken = + TOKEN.REFRESH_TOKEN + '_' + currentDb.configurationName + '_' + currentDbTabs[j]; + if (actualBody.includes(keyRefreshToken)) { + newBody = newBody.replace( + keyRefreshToken, + encodeURIComponent(currentDb.tokens.refresh_token as string), + ); + currentDatabase = currentDb; + currentTabId = currentDbTabs[j]; + + break; + } + + const keyAccessToken = + TOKEN.ACCESS_TOKEN + '_' + currentDb.configurationName + '_' + currentDbTabs[j]; + if (actualBody.includes(keyAccessToken)) { + newBody = newBody.replace( + keyAccessToken, + encodeURIComponent(currentDb.tokens.access_token), + ); + currentDatabase = currentDb; + currentTabId = currentDbTabs[j]; + + break; + } } - const keyAccessToken = - TOKEN.ACCESS_TOKEN + '_' + currentDb.configurationName; - if (actualBody.includes(keyAccessToken)) { - newBody = newBody.replace( - keyAccessToken, - encodeURIComponent(currentDb.tokens.access_token), - ); - currentDatabase = currentDb; + + if(currentTabId) { break; } } @@ -233,21 +247,21 @@ const handleFetch = async (event: FetchEvent) => { return new Response(text, response); }); } - return fetchPromise.then(hideTokens(currentDatabase as OidcConfig)); + return fetchPromise.then(hideTokens(currentDatabase as OidcConfig, currentTabId as string)); } else if ( actualBody.includes('code_verifier=') && extractConfigurationNameFromCodeVerifier(actualBody) != null ) { - const currentLoginCallbackConfigurationName = extractConfigurationNameFromCodeVerifier( + const [currentLoginCallbackConfigurationName, currentLoginCallbackTabId] = extractConfigurationNameFromCodeVerifier( actualBody, - ); - // @ts-ignore + ) ?? []; currentDatabase = database[currentLoginCallbackConfigurationName]; let newBody = actualBody; - if (currentDatabase?.codeVerifier != null) { + const codeVerifier = currentDatabase.codeVerifier[currentLoginCallbackTabId]; + if (codeVerifier != null) { newBody = replaceCodeVerifier( newBody, - currentDatabase.codeVerifier, + codeVerifier, ); } @@ -265,8 +279,7 @@ const handleFetch = async (event: FetchEvent) => { referrer: clonedRequest.referrer, credentials: clonedRequest.credentials, integrity: clonedRequest.integrity, - // @ts-ignore - }).then(hideTokens(currentDatabase)); + }).then(hideTokens(currentDatabase, currentLoginCallbackTabId)); } // if showAccessToken=true, the token is already in the body @@ -322,13 +335,16 @@ const handleMessage = async (event: ExtendableMessageEvent) => { const convertAllRequestsToCorsExceptNavigate = Array.isArray(trustedDomain) ? false : trustedDomain.convertAllRequestsToCorsExceptNavigate; + const allowMultiTabLogin = Array.isArray(trustedDomain) + ? false + : trustedDomain.allowMultiTabLogin; database[configurationName] = { tokens: null, - state: null, - codeVerifier: null, + state: {}, + codeVerifier: {}, oidcServerConfiguration: null, oidcConfiguration: undefined, - nonce: null, + nonce: {}, status: null, configurationName, hideAccessToken: !showAccessToken, @@ -340,6 +356,7 @@ const handleMessage = async (event: ExtendableMessageEvent) => { demonstratingProofOfPossessionJwkJson: null, demonstratingProofOfPossessionConfiguration: null, demonstratingProofOfPossessionOnlyWhenDpopHeaderPresent: false, + allowMultiTabLogin: allowMultiTabLogin ?? false }; currentDatabase = database[configurationName]; @@ -347,12 +364,14 @@ const handleMessage = async (event: ExtendableMessageEvent) => { trustedDomains[configurationName] = []; } } + + const tabId = currentDatabase.allowMultiTabLogin ? data.tabId : 'default'; switch (data.type) { case 'clear': currentDatabase.tokens = null; - currentDatabase.state = null; - currentDatabase.codeVerifier = null; + currentDatabase.state = {}; + currentDatabase.codeVerifier = {}; currentDatabase.demonstratingProofOfPossessionNonce = null; currentDatabase.demonstratingProofOfPossessionJwkJson = null; currentDatabase.demonstratingProofOfPossessionConfiguration = null; @@ -402,16 +421,16 @@ const handleMessage = async (event: ExtendableMessageEvent) => { ...currentDatabase.tokens, }; if (currentDatabase.hideAccessToken) { - tokens.access_token = TOKEN.ACCESS_TOKEN + '_' + configurationName; + tokens.access_token = TOKEN.ACCESS_TOKEN + '_' + configurationName + '_' + tabId; } if (tokens.refresh_token) { - tokens.refresh_token = TOKEN.REFRESH_TOKEN + '_' + configurationName; + tokens.refresh_token = TOKEN.REFRESH_TOKEN + '_' + configurationName + '_' + tabId; } if (tokens?.idTokenPayload?.nonce && currentDatabase.nonce != null ) { tokens.idTokenPayload.nonce = - TOKEN.NONCE_TOKEN + '_' + configurationName; + TOKEN.NONCE_TOKEN + '_' + configurationName + '_' + tabId; } port.postMessage({ tokens, @@ -438,17 +457,17 @@ const handleMessage = async (event: ExtendableMessageEvent) => { return; } case 'setState': { - currentDatabase.state = data.data.state; + currentDatabase.state[tabId] = data.data.state; port.postMessage({ configurationName }); return; } case 'getState': { - const state = currentDatabase.state; + const state = currentDatabase.state[tabId]; port.postMessage({ configurationName, state }); return; } case 'setCodeVerifier': { - currentDatabase.codeVerifier = data.data.codeVerifier; + currentDatabase.codeVerifier[tabId] = data.data.codeVerifier; port.postMessage({ configurationName }); return; } @@ -457,7 +476,7 @@ const handleMessage = async (event: ExtendableMessageEvent) => { configurationName, codeVerifier: currentDatabase.codeVerifier != null - ? TOKEN.CODE_VERIFIER + '_' + configurationName + ? TOKEN.CODE_VERIFIER + '_' + configurationName + '_' + tabId : null, }); return; @@ -475,13 +494,13 @@ const handleMessage = async (event: ExtendableMessageEvent) => { case 'setNonce': { const nonce = data.data.nonce; if (nonce) { - currentDatabase.nonce = nonce; + currentDatabase.nonce[tabId] = nonce; } port.postMessage({ configurationName }); return; } case 'getNonce': { - const keyNonce = TOKEN.NONCE_TOKEN + '_' + configurationName; + const keyNonce = TOKEN.NONCE_TOKEN + '_' + configurationName + '_' + tabId const nonce = currentDatabase.nonce ? keyNonce : null; port.postMessage({ configurationName, nonce }); return; diff --git a/packages/oidc-client-service-worker/src/__tests__/oidcConfig.spec.ts b/packages/oidc-client-service-worker/src/__tests__/oidcConfig.spec.ts index 186fff848..6480daaf0 100644 --- a/packages/oidc-client-service-worker/src/__tests__/oidcConfig.spec.ts +++ b/packages/oidc-client-service-worker/src/__tests__/oidcConfig.spec.ts @@ -7,15 +7,16 @@ const oidcConfigDefaults = { configurationName: '', tokens: null, status: null, - state: null, - codeVerifier: null, - nonce: null, + state: {}, + codeVerifier: {}, + nonce: {}, hideAccessToken: false, convertAllRequestsToCorsExceptNavigate: true, setAccessTokenToNavigateRequests: true, demonstratingProofOfPossessionNonce: null, demonstratingProofOfPossessionJwkJson: null, demonstratingProofOfPossessionOnlyWhenDpopHeaderPresent: false, + allowMultiTabLogin: true } const oidcServerConfigDefault = { diff --git a/packages/oidc-client-service-worker/src/types.ts b/packages/oidc-client-service-worker/src/types.ts index dd687f4a1..0b755f467 100644 --- a/packages/oidc-client-service-worker/src/types.ts +++ b/packages/oidc-client-service-worker/src/types.ts @@ -8,6 +8,7 @@ export type DomainDetails = { demonstratingProofOfPossession?:boolean; demonstratingProofOfPossessionOnlyWhenDpopHeaderPresent?:boolean; demonstratingProofOfPossessionConfiguration?: DemonstratingProofOfPossessionConfiguration; + allowMultiTabLogin?: boolean; } export interface DemonstratingProofOfPossessionConfiguration { @@ -60,6 +61,7 @@ export type MessageData = { export type MessageEventData = { configurationName: string; + tabId: string; type: MessageEventType; data: MessageData; } @@ -73,9 +75,9 @@ export type OidcConfig = { configurationName: string; tokens: Tokens | null; status: Status; - state: string | null; - codeVerifier: string | null; - nonce: Nonce; + state: Record; + codeVerifier: Record; + nonce: Record; oidcServerConfiguration: OidcServerConfiguration | null; oidcConfiguration?: OidcConfiguration; sessionState?: string | null; @@ -86,6 +88,7 @@ export type OidcConfig = { demonstratingProofOfPossessionNonce: string | null; demonstratingProofOfPossessionJwkJson: string | null; demonstratingProofOfPossessionOnlyWhenDpopHeaderPresent: boolean; + allowMultiTabLogin: boolean; } export type IdTokenPayload = { diff --git a/packages/oidc-client-service-worker/src/utils/__tests__/codeVerifier.spec.ts b/packages/oidc-client-service-worker/src/utils/__tests__/codeVerifier.spec.ts index d976b355f..262e10ff4 100644 --- a/packages/oidc-client-service-worker/src/utils/__tests__/codeVerifier.spec.ts +++ b/packages/oidc-client-service-worker/src/utils/__tests__/codeVerifier.spec.ts @@ -15,8 +15,8 @@ describe('replaceCodeVerifier should', () => { describe('extractConfigurationNameFromCodeVerifier should', () => { it.each([ - { body: "code=56DB8E3592FBD48DCF6F65B38B12845FF0186ECF6D66ECB5425C0F7E658B7951-1&grant_type=authorization_code&client_id=interactive.public.short&redirect_uri=https%3A%2F%2Fblack-rock-0dc6b0d03.1.azurestaticapps.net%2Fauthentication%2Fcallback&code_verifier=CODE_VERIFIER_SECURED_BY_OIDC_SERVICE_WORKER_default", expected: 'default' }, - { body: "code=56DB8E3592FBD48DCF6F65B38B12845FF0186ECF6D66ECB5425C0F7E658B7951-1&code_verifier=CODE_VERIFIER_SECURED_BY_OIDC_SERVICE_WORKER_youhou&grant_type=authorization_code&client_id=interactive.public.short&redirect_uri=https%3A%2F%2Fblack-rock-0dc6b0d03.1.azurestaticapps.net%2Fauthentication%2Fcallback", expected: 'youhou' }, + { body: "code=56DB8E3592FBD48DCF6F65B38B12845FF0186ECF6D66ECB5425C0F7E658B7951-1&grant_type=authorization_code&client_id=interactive.public.short&redirect_uri=https%3A%2F%2Fblack-rock-0dc6b0d03.1.azurestaticapps.net%2Fauthentication%2Fcallback&code_verifier=CODE_VERIFIER_SECURED_BY_OIDC_SERVICE_WORKER_default_tab1", expected: ['default', 'tab1'] }, + { body: "code=56DB8E3592FBD48DCF6F65B38B12845FF0186ECF6D66ECB5425C0F7E658B7951-1&code_verifier=CODE_VERIFIER_SECURED_BY_OIDC_SERVICE_WORKER_youhou_tab2&grant_type=authorization_code&client_id=interactive.public.short&redirect_uri=https%3A%2F%2Fblack-rock-0dc6b0d03.1.azurestaticapps.net%2Fauthentication%2Fcallback", expected: ['youhou', 'tab2'] }, ])('inject new codeVerifier', async ({ body, expected }) => { const configurationName = extractConfigurationNameFromCodeVerifier(body); diff --git a/packages/oidc-client-service-worker/src/utils/__tests__/domains.spec.ts b/packages/oidc-client-service-worker/src/utils/__tests__/domains.spec.ts index b4531819a..1b64601db 100644 --- a/packages/oidc-client-service-worker/src/utils/__tests__/domains.spec.ts +++ b/packages/oidc-client-service-worker/src/utils/__tests__/domains.spec.ts @@ -39,9 +39,9 @@ describe('domains', () => { configurationName: 'config', tokens: {} as Tokens, status: 'NOT_CONNECTED', - state: null, - codeVerifier: null, - nonce: null, + state: {}, + codeVerifier: {}, + nonce: {}, oidcServerConfiguration: { authorizationEndpoint: 'https://demo.duendesoftware.com/connect/authorize', issuer: 'https://demo.duendesoftware.com', @@ -56,6 +56,7 @@ describe('domains', () => { demonstratingProofOfPossessionJwkJson: null, demonstratingProofOfPossessionConfiguration: null, demonstratingProofOfPossessionOnlyWhenDpopHeaderPresent: false, + allowMultiTabLogin: true }, }; }); diff --git a/packages/oidc-client-service-worker/src/utils/__tests__/testHelper.ts b/packages/oidc-client-service-worker/src/utils/__tests__/testHelper.ts index fd960ba65..7d68ff316 100644 --- a/packages/oidc-client-service-worker/src/utils/__tests__/testHelper.ts +++ b/packages/oidc-client-service-worker/src/utils/__tests__/testHelper.ts @@ -116,9 +116,9 @@ class OidcConfigBuilder { configurationName: '', tokens: null, status: 'NOT_CONNECTED', - state: '', - codeVerifier: '', - nonce: null, + state: { tab1: '' }, + codeVerifier: { tab1: '' }, + nonce: { tab1: null }, oidcServerConfiguration: null, oidcConfiguration: undefined, sessionState: null, @@ -130,15 +130,16 @@ class OidcConfigBuilder { demonstratingProofOfPossessionJwkJson: null, demonstratingProofOfPossessionConfiguration: null, demonstratingProofOfPossessionOnlyWhenDpopHeaderPresent: false, + allowMultiTabLogin: true }; public withTestingDefault(): OidcConfigBuilder { this.oidcConfig.configurationName = 'test'; this.oidcConfig.tokens = new TokenBuilder().withNonExpiredToken().build(); this.oidcConfig.status = 'NOT_CONNECTED'; - this.oidcConfig.state = 'state'; - this.oidcConfig.codeVerifier = 'codeVerifier'; - this.oidcConfig.nonce = null; + this.oidcConfig.state = { tab1: 'state' }; + this.oidcConfig.codeVerifier = { tab1: 'codeVerifier' }; + this.oidcConfig.nonce = { tab1: null }; this.oidcConfig.oidcConfiguration = new OidcConfigurationBuilder().build(); this.oidcConfig.oidcServerConfiguration = new OidcServerConfigBuilder() .withTestingDefault() @@ -170,17 +171,17 @@ class OidcConfigBuilder { } public withState(state: string): OidcConfigBuilder { - this.oidcConfig.state = state; + this.oidcConfig.state = { tab1: state }; return this; } public withCodeVerifier(codeVerifier: string): OidcConfigBuilder { - this.oidcConfig.codeVerifier = codeVerifier; + this.oidcConfig.codeVerifier = { tab1: codeVerifier }; return this; } public withNonce(nonce: Nonce): OidcConfigBuilder { - this.oidcConfig.nonce = nonce; + this.oidcConfig.nonce = { tab1: nonce }; return this; } diff --git a/packages/oidc-client-service-worker/src/utils/__tests__/tokens.spec.ts b/packages/oidc-client-service-worker/src/utils/__tests__/tokens.spec.ts index 72bf460a9..725609b77 100644 --- a/packages/oidc-client-service-worker/src/utils/__tests__/tokens.spec.ts +++ b/packages/oidc-client-service-worker/src/utils/__tests__/tokens.spec.ts @@ -97,7 +97,7 @@ describe('tokens', () => { describe('_hideTokens', () => { it.each([ - { hideAccessToken: true, expectedAccessToken: 'ACCESS_TOKEN_SECURED_BY_OIDC_SERVICE_WORKER_test', issued_at: "0", expires_in: "2" }, + { hideAccessToken: true, expectedAccessToken: 'ACCESS_TOKEN_SECURED_BY_OIDC_SERVICE_WORKER_test_tab1', issued_at: "0", expires_in: "2" }, { hideAccessToken: false, expectedAccessToken: 'test_access_token', issued_at: 0, expires_in: 2 }, ])('accesstoken will be hide $hideAccessToken result should be $expectedAccessToken', ({ hideAccessToken, expectedAccessToken, issued_at, expires_in }) => { const token = new TokenBuilder() @@ -113,7 +113,7 @@ describe('tokens', () => { .withIssuedAt(issued_at) .build(); const oidcConfiguration = new OidcConfigBuilder().withTestingDefault().withHideAccessToken(hideAccessToken).build(); - const secureTokens = _hideTokens(token, oidcConfiguration, 'test'); + const secureTokens = _hideTokens(token, oidcConfiguration, 'test', 'tab1'); expect(secureTokens.access_token).toBe(expectedAccessToken); expect(typeof secureTokens.expiresAt).toBe("number"); }); @@ -141,7 +141,7 @@ describe('tokens', () => { nonce: null, }) .build()).build(); - _hideTokens(token, oidcConfiguration, 'test'); + _hideTokens(token, oidcConfiguration, 'test', 'tab1'); expect(token.id_token).toBe("old_id_token"); }); diff --git a/packages/oidc-client-service-worker/src/utils/codeVerifier.ts b/packages/oidc-client-service-worker/src/utils/codeVerifier.ts index e84f47c19..f0f175c19 100644 --- a/packages/oidc-client-service-worker/src/utils/codeVerifier.ts +++ b/packages/oidc-client-service-worker/src/utils/codeVerifier.ts @@ -3,12 +3,12 @@ export function replaceCodeVerifier(codeVerifier:string, newCodeVerifier:string) return codeVerifier.replace(regex, `code_verifier=${newCodeVerifier}`); } -export const extractConfigurationNameFromCodeVerifier = (chaine:string):string | null => { - const regex = /CODE_VERIFIER_SECURED_BY_OIDC_SERVICE_WORKER_([^&\s]+)/; +export const extractConfigurationNameFromCodeVerifier = (chaine:string):string[] | null => { + const regex = /CODE_VERIFIER_SECURED_BY_OIDC_SERVICE_WORKER_([^&\s]+)_([^&\s]+)/; const result = chaine.match(regex); - if (result && result.length > 1) { - return result[1]; + if (result && result.length > 2) { + return [result[1], result[2]]; } else { return null; } diff --git a/packages/oidc-client-service-worker/src/utils/tokens.ts b/packages/oidc-client-service-worker/src/utils/tokens.ts index 67c7296c5..0ea1561d3 100644 --- a/packages/oidc-client-service-worker/src/utils/tokens.ts +++ b/packages/oidc-client-service-worker/src/utils/tokens.ts @@ -115,7 +115,7 @@ function extractedIssueAt(tokens: Tokens, accessTokenPayload: AccessTokenPayload return tokens.issued_at; } -function _hideTokens(tokens: Tokens, currentDatabaseElement: OidcConfig, configurationName: string) { +function _hideTokens(tokens: Tokens, currentDatabaseElement: OidcConfig, configurationName: string, currentTabId: string) { if (!tokens.issued_at) { const currentTimeUnixSecond = new Date().getTime() / 1000; tokens.issued_at = currentTimeUnixSecond; @@ -129,7 +129,7 @@ function _hideTokens(tokens: Tokens, currentDatabaseElement: OidcConfig, configu accessTokenPayload, }; if (currentDatabaseElement.hideAccessToken) { - secureTokens.access_token = TOKEN.ACCESS_TOKEN + '_' + configurationName; + secureTokens.access_token = TOKEN.ACCESS_TOKEN + '_' + configurationName + '_' + currentTabId; } tokens.accessTokenPayload = accessTokenPayload; @@ -149,14 +149,14 @@ function _hideTokens(tokens: Tokens, currentDatabaseElement: OidcConfig, configu tokens.idTokenPayload = _idTokenPayload !=null ? { ..._idTokenPayload }: null; if (_idTokenPayload && _idTokenPayload.nonce && currentDatabaseElement.nonce != null) { const keyNonce = - TOKEN.NONCE_TOKEN + '_' + currentDatabaseElement.configurationName; + TOKEN.NONCE_TOKEN + '_' + currentDatabaseElement.configurationName + '_' + currentTabId; _idTokenPayload.nonce = keyNonce; } secureTokens.idTokenPayload = _idTokenPayload; } if (tokens.refresh_token) { secureTokens.refresh_token = - TOKEN.REFRESH_TOKEN + '_' + configurationName; + TOKEN.REFRESH_TOKEN + '_' + configurationName + '_' + currentTabId; } tokens.issued_at = extractedIssueAt(tokens, accessTokenPayload, _idTokenPayload); @@ -189,12 +189,12 @@ function _hideTokens(tokens: Tokens, currentDatabaseElement: OidcConfig, configu secureTokens.expiresAt = expiresAt; tokens.expiresAt = expiresAt; - const nonce = currentDatabaseElement.nonce - ? currentDatabaseElement.nonce.nonce + const nonce = currentDatabaseElement.nonce[currentTabId] + ? currentDatabaseElement.nonce[currentTabId]?.nonce : null; const { isValid, reason } = isTokensOidcValid( tokens, - nonce, + nonce as string, currentDatabaseElement.oidcServerConfiguration as OidcServerConfiguration, ); // TODO: Type assertion, could be null. if (!isValid) { @@ -222,7 +222,7 @@ function _hideTokens(tokens: Tokens, currentDatabaseElement: OidcConfig, configu } const demonstratingProofOfPossessionNonceResponseHeader = "DPoP-Nonce"; -function hideTokens(currentDatabaseElement: OidcConfig) { +function hideTokens(currentDatabaseElement: OidcConfig, currentTabId: string) { const configurationName = currentDatabaseElement.configurationName; return (response: Response) => { if (response.status !== 200) { @@ -235,7 +235,7 @@ function hideTokens(currentDatabaseElement: OidcConfig) { } return response.json().then((tokens: Tokens) => { - const secureTokens = _hideTokens(tokens, currentDatabaseElement, configurationName); + const secureTokens = _hideTokens(tokens, currentDatabaseElement, configurationName, currentTabId); const body = JSON.stringify(secureTokens); return new Response(body, { status: response.status, diff --git a/packages/oidc-client/README.md b/packages/oidc-client/README.md index 576aadcbc..73d9fa3ab 100644 --- a/packages/oidc-client/README.md +++ b/packages/oidc-client/README.md @@ -121,6 +121,12 @@ trustedDomains.config_with_dpop = { }*/ }; +// Setting allowMultiTabLogin to true will enable storing login-specific parameters (state, nonce, code verifier) +// separately for each tab. This will prevent errors when logins are initiated from multiple tabs. +trustedDomains.config_multi_tab_login = { + domains: ["https://demo.duendesoftware.com"], + allowMultiTabLogin: true +}; ``` The code of the demo : diff --git a/packages/oidc-client/src/initWorker.ts b/packages/oidc-client/src/initWorker.ts index aa47abf98..19ae12b25 100644 --- a/packages/oidc-client/src/initWorker.ts +++ b/packages/oidc-client/src/initWorker.ts @@ -65,7 +65,18 @@ const sendMessageAsync = (registration) => (data) : Promise => { }; export const initWorkerAsync = async(configuration, configurationName) => { - + const getTabId = () => { + const tabId = sessionStorage.getItem(`oidc.tabId.${configurationName}`); + + if (tabId) { + return tabId; + } + + const newTabId = globalThis.crypto.randomUUID(); + sessionStorage.setItem(`oidc.tabId.${configurationName}`, newTabId); + return newTabId; + } + const serviceWorkerRelativeUrl = configuration.service_worker_relative_url; if (typeof window === 'undefined' || typeof navigator === 'undefined' || !navigator.serviceWorker || !serviceWorkerRelativeUrl) { return null; @@ -89,7 +100,7 @@ export const initWorkerAsync = async(configuration, configurationName) => { } catch (err) { return null; } - + const clearAsync = async (status) => { return sendMessageAsync(registration)({ type: 'clear', data: { status }, configurationName }); }; @@ -105,6 +116,7 @@ export const initWorkerAsync = async(configuration, configurationName) => { }, }, configurationName, + tabId: getTabId() }); // @ts-ignore @@ -136,12 +148,14 @@ export const initWorkerAsync = async(configuration, configurationName) => { }; const setNonceAsync = (nonce) => { + const tabId = getTabId(); sessionStorage[`oidc.nonce.${configurationName}`] = nonce.nonce; - return sendMessageAsync(registration)({ type: 'setNonce', data: { nonce }, configurationName }); + return sendMessageAsync(registration)({ type: 'setNonce', data: { nonce }, configurationName, tabId }); }; const getNonceAsync = async () => { + const tabId = getTabId(); // @ts-ignore - const result = await sendMessageAsync(registration)({ type: 'getNonce', data: null, configurationName }); + const result = await sendMessageAsync(registration)({ type: 'getNonce', data: null, configurationName, tabId }); // @ts-ignore let nonce = result.nonce; if (!nonce) { @@ -188,7 +202,8 @@ export const initWorkerAsync = async(configuration, configurationName) => { }; const getStateAsync = async () => { - const result = await sendMessageAsync(registration)({ type: 'getState', data: null, configurationName }); + const tabId = getTabId(); + const result = await sendMessageAsync(registration)({ type: 'getState', data: null, configurationName, tabId }); // @ts-ignore let state = result.state; if (!state) { @@ -199,12 +214,14 @@ export const initWorkerAsync = async(configuration, configurationName) => { }; const setStateAsync = async (state:string) => { + const tabId = getTabId(); sessionStorage[`oidc.state.${configurationName}`] = state; - return sendMessageAsync(registration)({ type: 'setState', data: { state }, configurationName }); + return sendMessageAsync(registration)({ type: 'setState', data: { state }, configurationName, tabId }); }; const getCodeVerifierAsync = async () => { - const result = await sendMessageAsync(registration)({ type: 'getCodeVerifier', data: null, configurationName }); + const tabId = getTabId(); + const result = await sendMessageAsync(registration)({ type: 'getCodeVerifier', data: null, configurationName, tabId }); // @ts-ignore let codeVerifier = result.codeVerifier; if (!codeVerifier) { @@ -215,8 +232,9 @@ export const initWorkerAsync = async(configuration, configurationName) => { }; const setCodeVerifierAsync = async (codeVerifier:string) => { + const tabId = getTabId(); sessionStorage[`oidc.code_verifier.${configurationName}`] = codeVerifier; - return sendMessageAsync(registration)({ type: 'setCodeVerifier', data: { codeVerifier }, configurationName }); + return sendMessageAsync(registration)({ type: 'setCodeVerifier', data: { codeVerifier }, configurationName, tabId }); }; return { diff --git a/packages/react-oidc/README.md b/packages/react-oidc/README.md index 2a35493fb..daed92708 100644 --- a/packages/react-oidc/README.md +++ b/packages/react-oidc/README.md @@ -117,6 +117,12 @@ trustedDomains.config_with_dpop = { }*/ }; +// Setting allowMultiTabLogin to true will enable storing login-specific parameters (state, nonce, code verifier) +// separately for each tab. This will prevent errors when logins are initiated from multiple tabs. +trustedDomains.config_multi_tab_login = { + domains: ["https://demo.duendesoftware.com"], + allowMultiTabLogin: true +}; ``` From ddc37868dae1b3c1642651aa4b919e391bed63bb Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 16 Jul 2024 19:35:48 +0000 Subject: [PATCH 306/440] [skip ci] Update to version 7.22.18 in package.json --- packages/oidc-client-service-worker/package.json | 2 +- packages/oidc-client-service-worker/src/version.ts | 2 +- packages/oidc-client/package.json | 2 +- packages/oidc-client/src/version.ts | 2 +- packages/react-oidc/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/oidc-client-service-worker/package.json b/packages/oidc-client-service-worker/package.json index d31aad534..82f6a762d 100644 --- a/packages/oidc-client-service-worker/package.json +++ b/packages/oidc-client-service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client-service-worker", - "version": "7.22.17", + "version": "7.22.18", "type": "module", "private": false, "main": "dist/OidcServiceWorker.js", diff --git a/packages/oidc-client-service-worker/src/version.ts b/packages/oidc-client-service-worker/src/version.ts index 34018eb9a..85f099e5b 100644 --- a/packages/oidc-client-service-worker/src/version.ts +++ b/packages/oidc-client-service-worker/src/version.ts @@ -1 +1 @@ -export default '7.22.17'; +export default '7.22.18'; diff --git a/packages/oidc-client/package.json b/packages/oidc-client/package.json index 82bd15624..fdc2866a0 100644 --- a/packages/oidc-client/package.json +++ b/packages/oidc-client/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/oidc-client", - "version": "7.22.17", + "version": "7.22.18", "private": false, "type": "module", "main": "./dist/index.umd.cjs", diff --git a/packages/oidc-client/src/version.ts b/packages/oidc-client/src/version.ts index 34018eb9a..85f099e5b 100644 --- a/packages/oidc-client/src/version.ts +++ b/packages/oidc-client/src/version.ts @@ -1 +1 @@ -export default '7.22.17'; +export default '7.22.18'; diff --git a/packages/react-oidc/package.json b/packages/react-oidc/package.json index 4b3593fd0..d72d01592 100644 --- a/packages/react-oidc/package.json +++ b/packages/react-oidc/package.json @@ -1,6 +1,6 @@ { "name": "@axa-fr/react-oidc", - "version": "7.22.17", + "version": "7.22.18", "private": false, "type": "module", "main": "./dist/index.umd.cjs", From 4ca142efe9d32cc0900cbb618f2106df8922b1bb Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 16 Jul 2024 19:35:50 +0000 Subject: [PATCH 307/440] [skip ci] Generate changelog to version 7.22.18 --- CHANGELOG.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 373e36d4e..b887dbf34 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog -## 7.22.17 +## 7.22.18 + +- [5ee0cc8](https://github.com/AxaFrance/oidc-client/commit/5ee0cc8f6d823056da221ad081c3821ba9fac343) - fix(oidc): separate state, nonce and codeVerifier for each tab (release) (#1402), 2024-07-16 by *Miya* + + +## v7.22.17 - [b099078](https://github.com/AxaFrance/oidc-client/commit/b099078f9d4b61dffd03034f511a4f32e80977a8) - fix(oidc): clenup client internal promises when requests are finished (release) (#1417), 2024-07-15 by *wermanoid* - [01f0714](https://github.com/AxaFrance/oidc-client/commit/01f0714241e6442e6b58fcba8b86804ed75cec09) - tests(domain): Be more explicit about intent of test, is to not throw, not return undefined. (#1413), 2024-07-15 by *Jason Finch* @@ -317,8 +322,3 @@ - [64a8df3](https://github.com/AxaFrance/oidc-client/commit/64a8df3281f95159a60e5f9ec61db315a8d20c7d) - fix(oidc-client): make locks work only ifAvailable (#1237)(alpha), 2023-12-09 by *abhilashlr* -## v7.13.6 - -- [da77bb9](https://github.com/AxaFrance/oidc-client/commit/da77bb912b61e5aad93c53e84ce4fbea2a503fb2) - build(npm): bump typescript from 5.1.6 to 5.3.3 (#1232), 2023-12-07 by *dependabot[bot]* - - From cd2f57edb99e04495b9884723cd05277a45aad43 Mon Sep 17 00:00:00 2001 From: Guillaume Chervet Date: Tue, 16 Jul 2024 21:38:55 +0200 Subject: [PATCH 308/440] fix(demo): Update configurations.ts --- examples/react-oidc-demo/src/configurations.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/react-oidc-demo/src/configurations.ts b/examples/react-oidc-demo/src/configurations.ts index 4447f3a8b..16efca83f 100644 --- a/examples/react-oidc-demo/src/configurations.ts +++ b/examples/react-oidc-demo/src/configurations.ts @@ -9,7 +9,7 @@ export const configurationIdentityServer = { authority: 'https://demo.duendesoftware.com', // authority_time_cache_wellknowurl_in_second: 60* 60, refresh_time_before_tokens_expiration_in_second: 40, - // service_worker_relative_url: '/OidcServiceWorker.js', + service_worker_relative_url: '/OidcServiceWorker.js', service_worker_only: false, // storage: localStorage, // silent_login_timeout: 3333000 From bb7bc929f7a1bc4f1d210216d89fad881056990f Mon Sep 17 00:00:00 2001 From: Jason Finch Date: Fri, 12 Jul 2024 23:01:14 +1000 Subject: [PATCH 309/440] fix (lint): Fix all lint errors reporting by eslint. --- eslint.config.mjs | 23 ++++--- examples/oidc-client-demo/src/index.tsx | 4 +- examples/react-oidc-demo/src/App.tsx | 2 +- examples/react-oidc-demo/src/FetchUser.tsx | 2 +- examples/react-oidc-demo/src/Home.tsx | 4 +- examples/react-oidc-demo/src/MultiAuth.tsx | 2 +- examples/react-oidc-demo/src/Profile.tsx | 2 +- .../react-oidc-demo/src/configurations.ts | 4 +- .../src/override/SessionLost.component.tsx | 2 +- .../src/OidcServiceWorker.ts | 14 ++-- .../src/OidcTrustedDomains.js | 2 +- .../src/__tests__/oidcConfig.spec.ts | 65 ++++++++++--------- .../oidc-client-service-worker/src/dpop.ts | 10 +-- .../oidc-client-service-worker/src/jwt.ts | 27 ++++---- .../oidc-client-service-worker/src/types.ts | 18 ++--- .../src/utils/__tests__/codeVerifier.spec.ts | 2 +- .../src/utils/__tests__/tokens.spec.ts | 6 +- .../src/utils/codeVerifier.ts | 2 +- .../src/utils/tokens.ts | 6 +- .../bin/copy-service-worker-files.mjs | 10 +-- packages/oidc-client/src/checkSession.ts | 6 +- packages/oidc-client/src/fetch.ts | 5 +- packages/oidc-client/src/index.ts | 19 +++--- packages/oidc-client/src/initSession.ts | 4 +- packages/oidc-client/src/initWorker.ts | 10 +-- packages/oidc-client/src/initWorkerOption.ts | 2 +- packages/oidc-client/src/jwt.ts | 27 ++++---- packages/oidc-client/src/keepSession.ts | 10 +-- packages/oidc-client/src/login.ts | 8 +-- packages/oidc-client/src/logout.spec.ts | 2 +- packages/oidc-client/src/logout.ts | 20 +++--- packages/oidc-client/src/oidc.ts | 30 ++++----- packages/oidc-client/src/oidcClient.ts | 4 +- packages/oidc-client/src/parseTokens.spec.ts | 39 +++++------ packages/oidc-client/src/parseTokens.ts | 4 +- packages/oidc-client/src/renewTokens.ts | 19 +++--- packages/oidc-client/src/requests.ts | 6 +- packages/oidc-client/src/silentLogin.ts | 2 +- packages/oidc-client/src/types.ts | 12 ++-- packages/oidc-client/src/user.ts | 2 +- packages/oidc-client/tests/setup.js | 8 +-- .../bin/copy-service-worker-files.mjs | 10 +-- packages/react-oidc/src/OidcProvider.tsx | 10 +-- packages/react-oidc/src/OidcSecure.tsx | 2 +- packages/react-oidc/src/ReactOidc.tsx | 14 ++-- packages/react-oidc/src/User.ts | 2 +- .../react-oidc/src/core/routes/OidcRoutes.tsx | 1 - packages/react-oidc/src/index.ts | 7 +- packages/react-oidc/vite.config.ts | 2 +- 49 files changed, 245 insertions(+), 249 deletions(-) diff --git a/eslint.config.mjs b/eslint.config.mjs index ccf603f77..e86569eb0 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -1,21 +1,22 @@ -import { fixupConfigRules, fixupPluginRules } from "@eslint/compat"; -import typescriptEslint from "@typescript-eslint/eslint-plugin"; -import simpleImportSort from "eslint-plugin-simple-import-sort"; -import testingLibrary from "eslint-plugin-testing-library"; -import react from "eslint-plugin-react"; -import prettier from "eslint-plugin-prettier"; -import tsParser from "@typescript-eslint/parser"; import path from "node:path"; import { fileURLToPath } from "node:url"; -import js from "@eslint/js"; + +import { fixupConfigRules, fixupPluginRules } from "@eslint/compat"; import { FlatCompat } from "@eslint/eslintrc"; +import js from "@eslint/js"; +import typescriptEslint from "@typescript-eslint/eslint-plugin"; +import tsParser from "@typescript-eslint/parser"; +import prettier from "eslint-plugin-prettier"; +import react from "eslint-plugin-react"; +import simpleImportSort from "eslint-plugin-simple-import-sort"; +//import testingLibrary from "eslint-plugin-testing-library"; const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); const compat = new FlatCompat({ baseDirectory: __dirname, recommendedConfig: js.configs.recommended, - allConfig: js.configs.all + allConfig: js.configs.all, }); export default [{ @@ -74,6 +75,10 @@ export default [{ }, settings: { + env: { + browser: true, + node: true, + }, react: { version: "18", }, diff --git a/examples/oidc-client-demo/src/index.tsx b/examples/oidc-client-demo/src/index.tsx index b81c4f853..50f237b0a 100644 --- a/examples/oidc-client-demo/src/index.tsx +++ b/examples/oidc-client-demo/src/index.tsx @@ -105,9 +105,9 @@ const display = (element:any) => { // @ts-ignore window.document.getElementById('buttonxsshack').addEventListener('click',()=> { // @ts-ignore - eval(document.getElementById('xsshack').value) + eval(document.getElementById('xsshack').value); }); -} +}; // @ts-ignore export const execute = () => { diff --git a/examples/react-oidc-demo/src/App.tsx b/examples/react-oidc-demo/src/App.tsx index f80c9250f..fe54fb012 100644 --- a/examples/react-oidc-demo/src/App.tsx +++ b/examples/react-oidc-demo/src/App.tsx @@ -28,7 +28,7 @@ function reducer(state, action) { function App() { - // eslint-disable-next-line @typescript-eslint/naming-convention + const [show, setShow] = React.useState(false); const [events, dispatch] = useReducer(reducer, []); diff --git a/examples/react-oidc-demo/src/FetchUser.tsx b/examples/react-oidc-demo/src/FetchUser.tsx index e9c5206fb..ea86a2a98 100644 --- a/examples/react-oidc-demo/src/FetchUser.tsx +++ b/examples/react-oidc-demo/src/FetchUser.tsx @@ -23,7 +23,7 @@ const DisplayUserInfo = ({ fetch }) => { return () => { isMounted = false; }; - // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); if (isLoading) { diff --git a/examples/react-oidc-demo/src/Home.tsx b/examples/react-oidc-demo/src/Home.tsx index b8b43dd5b..54398b3de 100644 --- a/examples/react-oidc-demo/src/Home.tsx +++ b/examples/react-oidc-demo/src/Home.tsx @@ -8,12 +8,12 @@ import {useNavigate} from "react-router-dom"; const html = 'Foo'; iframe.srcdoc = html; document.body.appendChild(iframe); -} +}; export const Home = () => { const { login, logout, renewTokens, isAuthenticated } = useOidc(); const{ oidcUser, oidcUserLoadingState } = useOidcUser(); - console.log(oidcUser, oidcUserLoadingState) + console.log(oidcUser, oidcUserLoadingState); const navigate = useNavigate(); const navigateProfile = () => { diff --git a/examples/react-oidc-demo/src/MultiAuth.tsx b/examples/react-oidc-demo/src/MultiAuth.tsx index c10070f44..94546178e 100644 --- a/examples/react-oidc-demo/src/MultiAuth.tsx +++ b/examples/react-oidc-demo/src/MultiAuth.tsx @@ -2,13 +2,13 @@ import { Fetch, OidcProvider, useOidc, useOidcAccessToken, useOidcIdToken } from import React, { useReducer, useState } from 'react'; import { configurationGoogle, configurationIdentityServer, configurationIdentityServerWithHash } from './configurations'; +import {FetchUserHook} from "./FetchUser"; import AuthenticatingError from './override/AuthenticateError.component'; import Authenticating from './override/Authenticating.component'; import { CallBackSuccess } from './override/Callback.component'; import Loading from './override/Loading.component'; import ServiceWorkerNotSupported from './override/ServiceWorkerNotSupported.component'; import SessionLost from './override/SessionLost.component'; -import {FetchUserHook} from "./FetchUser"; const fetchWithLogs = (fetch: Fetch) => async (...params: Parameters) => { const [url, options, ...rest] = params; diff --git a/examples/react-oidc-demo/src/Profile.tsx b/examples/react-oidc-demo/src/Profile.tsx index 73a1028eb..260030839 100644 --- a/examples/react-oidc-demo/src/Profile.tsx +++ b/examples/react-oidc-demo/src/Profile.tsx @@ -5,7 +5,7 @@ import { useOidc, useOidcAccessToken, useOidcIdToken, - useOidcUser + useOidcUser, } from '@axa-fr/react-oidc'; import React from 'react'; diff --git a/examples/react-oidc-demo/src/configurations.ts b/examples/react-oidc-demo/src/configurations.ts index 16efca83f..1a8f095d3 100644 --- a/examples/react-oidc-demo/src/configurations.ts +++ b/examples/react-oidc-demo/src/configurations.ts @@ -1,4 +1,4 @@ -import { TokenRenewMode, TokenAutomaticRenewMode } from '@axa-fr/react-oidc'; +import { TokenAutomaticRenewMode,TokenRenewMode } from '@axa-fr/react-oidc'; export const configurationIdentityServer = { client_id: 'interactive.public.short', @@ -18,7 +18,7 @@ export const configurationIdentityServer = { token_renew_mode: TokenRenewMode.access_token_invalid, token_automatic_renew_mode: TokenAutomaticRenewMode.AutomaticOnlyWhenFetchExecuted, demonstrating_proof_of_possession: false, - preload_user_info: true + preload_user_info: true, }; export const configurationIdentityServer1 = { diff --git a/examples/react-oidc-demo/src/override/SessionLost.component.tsx b/examples/react-oidc-demo/src/override/SessionLost.component.tsx index 080e599dc..19d137da5 100644 --- a/examples/react-oidc-demo/src/override/SessionLost.component.tsx +++ b/examples/react-oidc-demo/src/override/SessionLost.component.tsx @@ -1,8 +1,8 @@ import { useOidc } from '@axa-fr/react-oidc'; import { ComponentType } from 'react'; +import {useNavigate} from "react-router-dom"; import { style } from './style.js'; -import {useNavigate} from "react-router-dom"; export const SessionLost: ComponentType = ({ configurationName }) => { const { login } = useOidc(configurationName); diff --git a/packages/oidc-client-service-worker/src/OidcServiceWorker.ts b/packages/oidc-client-service-worker/src/OidcServiceWorker.ts index abca232f5..4cc166946 100644 --- a/packages/oidc-client-service-worker/src/OidcServiceWorker.ts +++ b/packages/oidc-client-service-worker/src/OidcServiceWorker.ts @@ -1,4 +1,8 @@ import { acceptAnyDomainToken, scriptFilename, TOKEN } from './constants'; +import {base64urlOfHashOfASCIIEncodingAsync} from "./crypto"; +import {getDpopConfiguration, getDpopOnlyWhenDpopHeaderPresent} from "./dpop"; +import {generateJwkAsync, generateJwtDemonstratingProofOfPossessionAsync} from "./jwt"; +import { getCurrentDatabasesTokenEndpoint } from './oidcConfig'; import { Database, MessageEventData, @@ -17,10 +21,6 @@ import { import {extractConfigurationNameFromCodeVerifier, replaceCodeVerifier} from './utils/codeVerifier'; import { normalizeUrl } from './utils/normalizeUrl'; import version from './version'; -import {generateJwkAsync, generateJwtDemonstratingProofOfPossessionAsync} from "./jwt"; -import {getDpopConfiguration, getDpopOnlyWhenDpopHeaderPresent} from "./dpop"; -import {base64urlOfHashOfASCIIEncodingAsync} from "./crypto"; -import { getCurrentDatabasesTokenEndpoint } from './oidcConfig'; // @ts-ignore if (typeof trustedTypes !== 'undefined' && typeof trustedTypes.createPolicy == 'function') { @@ -132,7 +132,7 @@ const handleFetch = async (event: FetchEvent) => { } else { const authorization = originalRequest.headers.get('authorization'); - let authenticationMode = "Bearer" + let authenticationMode = "Bearer"; if (authorization ) { authenticationMode = authorization.split(" ")[0]; } @@ -184,7 +184,7 @@ const handleFetch = async (event: FetchEvent) => { const currentDbTabs = Object.keys(currentDb.state); if (currentDb?.tokens != null) { - const claimsExtras = {ath: await base64urlOfHashOfASCIIEncodingAsync(currentDb.tokens.access_token),}; + const claimsExtras = {ath: await base64urlOfHashOfASCIIEncodingAsync(currentDb.tokens.access_token)}; headers = await generateDpopAsync(originalRequest, currentDb, url, claimsExtras); for(let j = 0; j < currentDbTabs.length; j++) { @@ -401,7 +401,7 @@ const handleMessage = async (event: ExtendableMessageEvent) => { const demonstratingProofOfPossessionConfiguration = getDpopConfiguration(trustedDomains[configurationName]); if(demonstratingProofOfPossessionConfiguration != null){ if(currentDatabase.oidcConfiguration.demonstrating_proof_of_possession){ - console.warn("In service worker, demonstrating_proof_of_possession must be configured from trustedDomains file") + console.warn("In service worker, demonstrating_proof_of_possession must be configured from trustedDomains file"); } currentDatabase.demonstratingProofOfPossessionConfiguration = demonstratingProofOfPossessionConfiguration; currentDatabase.demonstratingProofOfPossessionJwkJson = await generateJwkAsync(self)(demonstratingProofOfPossessionConfiguration.generateKeyAlgorithm); diff --git a/packages/oidc-client-service-worker/src/OidcTrustedDomains.js b/packages/oidc-client-service-worker/src/OidcTrustedDomains.js index 9a31a5bbd..cc23305c5 100644 --- a/packages/oidc-client-service-worker/src/OidcTrustedDomains.js +++ b/packages/oidc-client-service-worker/src/OidcTrustedDomains.js @@ -3,7 +3,7 @@ // then all subroute like https://www.myapi.com/useers/1 will be authorized to send access_token to. // Domains used by OIDC server must be also declared here -// eslint-disable-next-line @typescript-eslint/no-unused-vars + const trustedDomains = { default: ['https://demo.duendesoftware.com', 'https://kdhttps.auth0.com'], config_classic: ['https://demo.duendesoftware.com'], diff --git a/packages/oidc-client-service-worker/src/__tests__/oidcConfig.spec.ts b/packages/oidc-client-service-worker/src/__tests__/oidcConfig.spec.ts index 6480daaf0..5ebd29eb3 100644 --- a/packages/oidc-client-service-worker/src/__tests__/oidcConfig.spec.ts +++ b/packages/oidc-client-service-worker/src/__tests__/oidcConfig.spec.ts @@ -1,6 +1,7 @@ -import { describe, expect, it } from 'vitest' -import { getCurrentDatabasesTokenEndpoint } from '../oidcConfig' -import { Database } from '../types' +import { describe, expect, it } from 'vitest'; + +import { getCurrentDatabasesTokenEndpoint } from '../oidcConfig'; +import { Database } from '../types'; const oidcConfigDefaults = { demonstratingProofOfPossessionConfiguration: null, @@ -16,16 +17,16 @@ const oidcConfigDefaults = { demonstratingProofOfPossessionNonce: null, demonstratingProofOfPossessionJwkJson: null, demonstratingProofOfPossessionOnlyWhenDpopHeaderPresent: false, - allowMultiTabLogin: true -} + allowMultiTabLogin: true, +}; const oidcServerConfigDefault = { revocationEndpoint: '', tokenEndpoint: '', issuer: '', userInfoEndpoint: '', - authorizationEndpoint: '' -} + authorizationEndpoint: '', +}; describe('getCurrentDatabasesTokenEndpoint', () => { it('should return configs with matching token endpoint', () => { @@ -51,14 +52,14 @@ describe('getCurrentDatabasesTokenEndpoint', () => { revocationEndpoint: 'https://example.net/revoke', }, }, - } + }; - const url = 'https://example.com/token' - const result = getCurrentDatabasesTokenEndpoint(database, url) + const url = 'https://example.com/token'; + const result = getCurrentDatabasesTokenEndpoint(database, url); - expect(result).toHaveLength(1) - expect(result[0]).toBe(database.config1) - }) + expect(result).toHaveLength(1); + expect(result[0]).toBe(database.config1); + }); it('should return configs with matching revocation endpoint', () => { const database = { @@ -83,14 +84,14 @@ describe('getCurrentDatabasesTokenEndpoint', () => { tokenEndpoint: 'https://example.net/token', }, }, - } + }; - const url = 'https://example.com/revoke' - const result = getCurrentDatabasesTokenEndpoint(database, url) + const url = 'https://example.com/revoke'; + const result = getCurrentDatabasesTokenEndpoint(database, url); - expect(result).toHaveLength(1) - expect(result[0]).toBe(database.config1) - }) + expect(result).toHaveLength(1); + expect(result[0]).toBe(database.config1); + }); it('should return multiple matching configs', () => { const database = { @@ -117,15 +118,15 @@ describe('getCurrentDatabasesTokenEndpoint', () => { revocationEndpoint: 'https://example.com/revoke', }, }, - } + }; - const url = 'https://example.com/token' - const result = getCurrentDatabasesTokenEndpoint(database, url) + const url = 'https://example.com/token'; + const result = getCurrentDatabasesTokenEndpoint(database, url); - expect(result).toHaveLength(2) - expect(result).toContain(database.config1) - expect(result).toContain(database.config3) - }) + expect(result).toHaveLength(2); + expect(result).toContain(database.config1); + expect(result).toContain(database.config3); + }); it('should return empty array for no matching configs', () => { const database = { @@ -143,11 +144,11 @@ describe('getCurrentDatabasesTokenEndpoint', () => { revocationEndpoint: 'https://example.org/revoke', }, }, - } + }; - const url = 'https://example.net/other' - const result = getCurrentDatabasesTokenEndpoint(database, url) + const url = 'https://example.net/other'; + const result = getCurrentDatabasesTokenEndpoint(database, url); - expect(result).toHaveLength(0) - }) -}) + expect(result).toHaveLength(0); + }); +}); diff --git a/packages/oidc-client-service-worker/src/dpop.ts b/packages/oidc-client-service-worker/src/dpop.ts index 921c9f9ad..ebebc6a05 100644 --- a/packages/oidc-client-service-worker/src/dpop.ts +++ b/packages/oidc-client-service-worker/src/dpop.ts @@ -1,12 +1,12 @@ -import {Domain, DomainDetails} from "./types.js"; -import {defaultDemonstratingProofOfPossessionConfiguration} from "./jwt"; +import {defaultDemonstratingProofOfPossessionConfiguration} from "./jwt"; +import {Domain, DomainDetails} from "./types.js"; const isDpop= (trustedDomain: Domain[] | DomainDetails) : boolean => { if (Array.isArray(trustedDomain)) { return false; } return trustedDomain.demonstratingProofOfPossession ?? false; -} +}; export const getDpopConfiguration = (trustedDomain: Domain[] | DomainDetails) => { @@ -19,7 +19,7 @@ export const getDpopConfiguration = (trustedDomain: Domain[] | DomainDetails) => } return trustedDomain.demonstratingProofOfPossessionConfiguration ?? defaultDemonstratingProofOfPossessionConfiguration; -} +}; export const getDpopOnlyWhenDpopHeaderPresent = (trustedDomain: Domain[] | DomainDetails) => { @@ -32,4 +32,4 @@ export const getDpopOnlyWhenDpopHeaderPresent = (trustedDomain: Domain[] | Domai } return trustedDomain.demonstratingProofOfPossessionOnlyWhenDpopHeaderPresent ?? true; -} \ No newline at end of file +}; \ No newline at end of file diff --git a/packages/oidc-client-service-worker/src/jwt.ts b/packages/oidc-client-service-worker/src/jwt.ts index ef7665f19..43c356591 100644 --- a/packages/oidc-client-service-worker/src/jwt.ts +++ b/packages/oidc-client-service-worker/src/jwt.ts @@ -47,7 +47,7 @@ export const uint8ToUrlBase64 =(uint8: Uint8Array) => { bin += String.fromCharCode(code); }); return binToUrlBase64(bin); -} +}; // UCS-2 String to URL-Safe Base64 // @@ -61,16 +61,16 @@ export const defaultDemonstratingProofOfPossessionConfiguration: DemonstratingPr importKeyAlgorithm: { name: 'ECDSA', namedCurve: 'P-256', - hash: {name: 'ES256'} + hash: {name: 'ES256'}, }, signAlgorithm: {name: 'ECDSA', hash: {name: 'SHA-256'}}, generateKeyAlgorithm: { name: 'ECDSA', - namedCurve: 'P-256' + namedCurve: 'P-256', }, digestAlgorithm: { name: 'SHA-256' }, - jwtHeaderAlgorithm : 'ES256' -} + jwtHeaderAlgorithm : 'ES256', +}; // @ts-ignore @@ -101,7 +101,7 @@ const sign = (w:any) => async (jwk, headers, claims, demonstratingProofOfPossess protected: strToUrlBase64(JSON.stringify(headers)), // @ts-ignore // JWT "claims" are really a JSON-defined JWS "payload" - payload: strToUrlBase64(JSON.stringify(claims)) + payload: strToUrlBase64(JSON.stringify(claims)), }; // To import as EC (ECDSA, P-256, SHA-256, ES256) @@ -134,8 +134,7 @@ const sign = (w:any) => async (jwk, headers, claims, demonstratingProofOfPossess return `${jws.protected}.${jws.payload}.${jws.signature}`; }; -export var JWT = {sign}; - +export const JWT = {sign}; // @ts-ignore const generate = (w:any) => async (generateKeyAlgorithm: RsaHashedKeyGenParams | EcKeyGenParams) => { @@ -162,7 +161,7 @@ const neuter = jwk => { const EC = { generate, - neuter + neuter, }; // @ts-ignore const thumbprint = (w:any) => async (jwk, digestAlgorithm: AlgorithmIdentifier) => { @@ -187,9 +186,9 @@ const thumbprint = (w:any) => async (jwk, digestAlgorithm: AlgorithmIdentifier) // but we're only dealing with P-256 const hash = await w.crypto.subtle.digest(digestAlgorithm, strToUint8(sortedPub)); return uint8ToUrlBase64(new Uint8Array(hash)); -} +}; -export var JWK = {thumbprint}; +export const JWK = {thumbprint}; export const generateJwkAsync = (w:any) => async (generateKeyAlgorithm: RsaHashedKeyGenParams | EcKeyGenParams) => { // @ts-ignore @@ -198,7 +197,7 @@ export const generateJwkAsync = (w:any) => async (generateKeyAlgorithm: RsaHashe // @ts-ignore // console.info('Public Key:', JSON.stringify(EC.neuter(jwk))); return jwk; -} +}; export const generateJwtDemonstratingProofOfPossessionAsync = (w:any) => (demonstratingProofOfPossessionConfiguration: DemonstratingProofOfPossessionConfiguration) => async (jwk:any, method = 'POST', url: string, extrasClaims={}) => { @@ -213,10 +212,10 @@ export const generateJwtDemonstratingProofOfPossessionAsync = (w:any) => (demons // @ts-ignore const kid = await JWK.thumbprint(w)(jwk, demonstratingProofOfPossessionConfiguration.digestAlgorithm); // @ts-ignore - const jwt = await JWT.sign(w)(jwk, { kid: kid }, claims, demonstratingProofOfPossessionConfiguration) + const jwt = await JWT.sign(w)(jwk, { kid: kid }, claims, demonstratingProofOfPossessionConfiguration); // console.info('JWT:', jwt); return jwt; -} +}; const guid = () => { // RFC4122: The version 4 UUID is meant for generating UUIDs from truly-random or diff --git a/packages/oidc-client-service-worker/src/types.ts b/packages/oidc-client-service-worker/src/types.ts index 0b755f467..319d34113 100644 --- a/packages/oidc-client-service-worker/src/types.ts +++ b/packages/oidc-client-service-worker/src/types.ts @@ -3,8 +3,8 @@ export type DomainDetails = { oidcDomains?: Domain[]; accessTokenDomains?: Domain[]; showAccessToken: boolean; - convertAllRequestsToCorsExceptNavigate?: boolean, - setAccessTokenToNavigateRequests?: boolean, + convertAllRequestsToCorsExceptNavigate?: boolean; + setAccessTokenToNavigateRequests?: boolean; demonstratingProofOfPossession?:boolean; demonstratingProofOfPossessionOnlyWhenDpopHeaderPresent?:boolean; demonstratingProofOfPossessionConfiguration?: DemonstratingProofOfPossessionConfiguration; @@ -12,11 +12,11 @@ export type DomainDetails = { } export interface DemonstratingProofOfPossessionConfiguration { - generateKeyAlgorithm: RsaHashedKeyGenParams | EcKeyGenParams, - digestAlgorithm: AlgorithmIdentifier, - importKeyAlgorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, - signAlgorithm: AlgorithmIdentifier | RsaPssParams | EcdsaParams, - jwtHeaderAlgorithm: string + generateKeyAlgorithm: RsaHashedKeyGenParams | EcKeyGenParams; + digestAlgorithm: AlgorithmIdentifier; + importKeyAlgorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm; + signAlgorithm: AlgorithmIdentifier | RsaPssParams | EcdsaParams; + jwtHeaderAlgorithm: string; } export type Domain = string | RegExp; @@ -83,8 +83,8 @@ export type OidcConfig = { sessionState?: string | null; items?: MessageData; hideAccessToken: boolean; - convertAllRequestsToCorsExceptNavigate: boolean, - setAccessTokenToNavigateRequests: boolean, + convertAllRequestsToCorsExceptNavigate: boolean; + setAccessTokenToNavigateRequests: boolean; demonstratingProofOfPossessionNonce: string | null; demonstratingProofOfPossessionJwkJson: string | null; demonstratingProofOfPossessionOnlyWhenDpopHeaderPresent: boolean; diff --git a/packages/oidc-client-service-worker/src/utils/__tests__/codeVerifier.spec.ts b/packages/oidc-client-service-worker/src/utils/__tests__/codeVerifier.spec.ts index 262e10ff4..c46ba60db 100644 --- a/packages/oidc-client-service-worker/src/utils/__tests__/codeVerifier.spec.ts +++ b/packages/oidc-client-service-worker/src/utils/__tests__/codeVerifier.spec.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest'; -import { replaceCodeVerifier, extractConfigurationNameFromCodeVerifier } from '../codeVerifier'; +import { extractConfigurationNameFromCodeVerifier,replaceCodeVerifier } from '../codeVerifier'; describe('replaceCodeVerifier should', () => { it.each([ diff --git a/packages/oidc-client-service-worker/src/utils/__tests__/tokens.spec.ts b/packages/oidc-client-service-worker/src/utils/__tests__/tokens.spec.ts index 725609b77..f62911e58 100644 --- a/packages/oidc-client-service-worker/src/utils/__tests__/tokens.spec.ts +++ b/packages/oidc-client-service-worker/src/utils/__tests__/tokens.spec.ts @@ -39,7 +39,7 @@ describe('tokens', () => { "name": "ƴǢÁìÇ 小名-ホルヘ", "preferred_username": "testingcharacters@inventedmail.com", "given_name": "ƴǢÁìÇ", - "family_name": "小名-ホルヘ" + "family_name": "小名-ホルヘ", }], [ "eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyLCI_IjoiYWE_In0", @@ -48,8 +48,8 @@ describe('tokens', () => { "iat": 1516239022, "name": "John Doe", "sub": "1234567890", - } - ] + }, + ], ])('parseJwtShouldExtractData', (claimsPart, expectedResult) => { it('should parseJwtShouldExtractData ', async () => { const result = parseJwt(claimsPart); diff --git a/packages/oidc-client-service-worker/src/utils/codeVerifier.ts b/packages/oidc-client-service-worker/src/utils/codeVerifier.ts index f0f175c19..d71749c9e 100644 --- a/packages/oidc-client-service-worker/src/utils/codeVerifier.ts +++ b/packages/oidc-client-service-worker/src/utils/codeVerifier.ts @@ -12,4 +12,4 @@ export const extractConfigurationNameFromCodeVerifier = (chaine:string):string[] } else { return null; } -} +}; diff --git a/packages/oidc-client-service-worker/src/utils/tokens.ts b/packages/oidc-client-service-worker/src/utils/tokens.ts index 0ea1561d3..a489bb812 100644 --- a/packages/oidc-client-service-worker/src/utils/tokens.ts +++ b/packages/oidc-client-service-worker/src/utils/tokens.ts @@ -6,7 +6,7 @@ import { OidcConfig, OidcConfiguration, OidcServerConfiguration, - Tokens + Tokens, } from '../types'; import {countLetter} from './strings'; @@ -14,7 +14,7 @@ export const parseJwt = (payload: string) => { return JSON.parse( b64DecodeUnicode(payload.replaceAll(/-/g, '+').replaceAll(/_/g, '/')), ); -} +}; function b64DecodeUnicode(str: string) { return decodeURIComponent( Array.prototype.map @@ -240,7 +240,7 @@ function hideTokens(currentDatabaseElement: OidcConfig, currentTabId: string) { return new Response(body, { status: response.status, statusText: response.statusText, - headers: newHeaders + headers: newHeaders, }); }); }; diff --git a/packages/oidc-client/bin/copy-service-worker-files.mjs b/packages/oidc-client/bin/copy-service-worker-files.mjs index 599985339..9553fbb25 100644 --- a/packages/oidc-client/bin/copy-service-worker-files.mjs +++ b/packages/oidc-client/bin/copy-service-worker-files.mjs @@ -1,5 +1,7 @@ -import path from 'path'; +/* global console, process */ +/* eslint no-console: "off" */ import fs from 'fs'; +import path from 'path'; import { fileURLToPath } from 'url'; try { @@ -24,7 +26,7 @@ try { } await fs.promises.copyFile(src, dest); console.log(`[${script_prefix}:copy] ${dest}`); - return true + return true; }; const fileExists = (path) => { @@ -53,13 +55,13 @@ try { const success = await copyFile( path.join(srcDir, file.fileName), path.join(destinationDir, file.fileName), - file.overwrite + file.overwrite, ); if(!success){ await copyFile( path.join(srcDirFallback, file.fileName), path.join(destinationDir, file.fileName), - file.overwrite + file.overwrite, ); } } diff --git a/packages/oidc-client/src/checkSession.ts b/packages/oidc-client/src/checkSession.ts index c313c8c99..496b9cc67 100644 --- a/packages/oidc-client/src/checkSession.ts +++ b/packages/oidc-client/src/checkSession.ts @@ -1,9 +1,9 @@ import { CheckSessionIFrame } from './checkSessionIFrame.js'; +import Oidc from "./oidc"; import { _silentLoginAsync, SilentLoginResponse } from './silentLogin.js'; import { OidcConfiguration } from './types.js'; -import Oidc from "./oidc"; -// eslint-disable-next-line @typescript-eslint/ban-types + export const startCheckSessionAsync = (oidc:Oidc, oidcDatabase:any, configuration :OidcConfiguration) => (checkSessionIFrameUri, clientId, sessionState, isSilentSignin = false) => { const silentLoginAsync = (extras, state = undefined, scope = undefined):Promise => { return _silentLoginAsync(oidc.configurationName, configuration, oidc.publishEvent.bind(oidc))(extras, state, scope); @@ -39,7 +39,7 @@ export const startCheckSessionAsync = (oidc:Oidc, oidcDatabase:any, configuratio } else { console.debug('SessionMonitor._callback: Different subject signed into OP:', iFrameIdTokenPayload.sub); } - // eslint-disable-next-line @typescript-eslint/no-unused-vars + }).catch(async (e) => { console.warn('SessionMonitor._callback: Silent login failed, logging out other tabs:', e); // eslint-disable-next-line @typescript-eslint/no-unused-vars diff --git a/packages/oidc-client/src/fetch.ts b/packages/oidc-client/src/fetch.ts index 1d33fc86d..e93ee2a99 100644 --- a/packages/oidc-client/src/fetch.ts +++ b/packages/oidc-client/src/fetch.ts @@ -1,6 +1,5 @@ -import {Fetch} from "./types"; -import {OidcClient} from "./oidcClient"; -import {getValidTokenAsync} from "./parseTokens"; +import {getValidTokenAsync} from "./parseTokens"; +import {Fetch} from "./types"; // @ts-ignore export const fetchWithTokens = (fetch: Fetch, oidcClient: Oidc | null, demonstrating_proof_of_possession:boolean=false) : Fetch => async (...params: Parameters) :Promise => { diff --git a/packages/oidc-client/src/index.ts b/packages/oidc-client/src/index.ts index a5f0906b2..b95075424 100644 --- a/packages/oidc-client/src/index.ts +++ b/packages/oidc-client/src/index.ts @@ -1,21 +1,18 @@ +export type { ILOidcLocation } from './location.js'; +export { OidcLocation } from './location.js'; export { getFetchDefault } from './oidc.js'; -export { TokenRenewMode } from './parseTokens.js'; -export { getParseQueryStringFromLocation, getPath } from './route-utils'; - +export type { OidcUserInfo } from './oidcClient.js'; +export { OidcClient } from './oidcClient.js'; export type { - Tokens + Tokens, } from './parseTokens.js'; - +export { TokenRenewMode } from './parseTokens.js'; +export { getParseQueryStringFromLocation, getPath } from './route-utils'; export type { AuthorityConfiguration, Fetch, OidcConfiguration, - StringMap + StringMap, } from './types.js'; - -export { OidcLocation } from './location.js'; -export type { ILOidcLocation } from './location.js'; export { TokenAutomaticRenewMode } from './types.js'; -export { OidcClient } from './oidcClient.js'; -export type { OidcUserInfo } from './oidcClient.js'; diff --git a/packages/oidc-client/src/initSession.ts b/packages/oidc-client/src/initSession.ts index e01b591ae..46d5219a1 100644 --- a/packages/oidc-client/src/initSession.ts +++ b/packages/oidc-client/src/initSession.ts @@ -46,7 +46,7 @@ export const initSession = (configurationName, storage = sessionStorage) => { storage[`oidc.dpop_nonce.${configurationName}`] = dpopNonce; }; - const getDemonstratingProofOfPossessionNonce = () => { + const getDemonstratingProofOfPossessionNonce = (): string => { return storage[`oidc.dpop_nonce.${configurationName}`]; }; @@ -57,7 +57,7 @@ export const initSession = (configurationName, storage = sessionStorage) => { return JSON.stringify({ tokens: JSON.parse(storage[`oidc.${configurationName}`]).tokens }); }; - let getLoginParamsCache = {}; + const getLoginParamsCache = {}; const setLoginParams = (data) => { getLoginParamsCache[configurationName] = data; storage[`oidc.login.${configurationName}`] = JSON.stringify(data); diff --git a/packages/oidc-client/src/initWorker.ts b/packages/oidc-client/src/initWorker.ts index 19ae12b25..80999d2b5 100644 --- a/packages/oidc-client/src/initWorker.ts +++ b/packages/oidc-client/src/initWorker.ts @@ -1,8 +1,8 @@ +import {ILOidcLocation} from "./location"; import { parseOriginalTokens } from './parseTokens.js'; import timer from './timer.js'; import { OidcConfiguration } from './types.js'; import codeVersion from './version.js'; -import {ILOidcLocation} from "./location"; let keepAliveServiceWorkerTimeoutId = null; let keepAliveController; @@ -36,14 +36,14 @@ const isServiceWorkerProxyActiveAsync = (service_worker_keep_alive_path='/') => }).catch(error => { console.log(error); }); }; -export const defaultServiceWorkerUpdateRequireCallback = (location:ILOidcLocation) => async (registration: any, stopKeepAlive: Function) => { +export const defaultServiceWorkerUpdateRequireCallback = (location:ILOidcLocation) => async (registration: any, stopKeepAlive: ()=>void) => { stopKeepAlive(); await registration.update(); const isSuccess = await registration.unregister(); - console.log(`Service worker unregistering ${isSuccess}`) + console.log(`Service worker unregistration ${isSuccess ? 'successful' : 'failed'}`); await sleepAsync({milliseconds: 2000}); location.reload(); -} +}; @@ -165,7 +165,7 @@ export const initWorkerAsync = async(configuration, configurationName) => { return { nonce }; }; - let getLoginParamsCache = {}; + const getLoginParamsCache = {}; const setLoginParams = (data) => { getLoginParamsCache[configurationName] = data; localStorage[`oidc.login.${configurationName}`] = JSON.stringify(data); diff --git a/packages/oidc-client/src/initWorkerOption.ts b/packages/oidc-client/src/initWorkerOption.ts index dc1ddabed..0307b696a 100644 --- a/packages/oidc-client/src/initWorkerOption.ts +++ b/packages/oidc-client/src/initWorkerOption.ts @@ -130,4 +130,4 @@ export const activateServiceWorker : ServiceWorkerActivate = () : boolean =>{ const operatingSystem = getOperatingSystem(navigator); return !excludeOs(operatingSystem); -} \ No newline at end of file +}; \ No newline at end of file diff --git a/packages/oidc-client/src/jwt.ts b/packages/oidc-client/src/jwt.ts index 4aadb41fe..fcb1b8f4d 100644 --- a/packages/oidc-client/src/jwt.ts +++ b/packages/oidc-client/src/jwt.ts @@ -46,7 +46,7 @@ export const uint8ToUrlBase64 =(uint8: Uint8Array) => { bin += String.fromCharCode(code); }); return binToUrlBase64(bin); -} +}; // UCS-2 String to URL-Safe Base64 // @@ -60,16 +60,16 @@ export const defaultDemonstratingProofOfPossessionConfiguration: DemonstratingPr importKeyAlgorithm: { name: 'ECDSA', namedCurve: 'P-256', - hash: {name: 'ES256'} + hash: {name: 'ES256'}, }, signAlgorithm: {name: 'ECDSA', hash: {name: 'SHA-256'}}, generateKeyAlgorithm: { name: 'ECDSA', - namedCurve: 'P-256' + namedCurve: 'P-256', }, digestAlgorithm: { name: 'SHA-256' }, - jwtHeaderAlgorithm : 'ES256' -} + jwtHeaderAlgorithm : 'ES256', +}; // @ts-ignore @@ -100,7 +100,7 @@ const sign = (w:any) => async (jwk, headers, claims, demonstratingProofOfPossess protected: strToUrlBase64(JSON.stringify(headers)), // @ts-ignore // JWT "claims" are really a JSON-defined JWS "payload" - payload: strToUrlBase64(JSON.stringify(claims)) + payload: strToUrlBase64(JSON.stringify(claims)), }; // To import as EC (ECDSA, P-256, SHA-256, ES256) @@ -133,8 +133,7 @@ const sign = (w:any) => async (jwk, headers, claims, demonstratingProofOfPossess return `${jws.protected}.${jws.payload}.${jws.signature}`; }; -export var JWT = {sign}; - +export const JWT = {sign}; // @ts-ignore const generate = (w:any) => async (generateKeyAlgorithm: RsaHashedKeyGenParams | EcKeyGenParams) => { @@ -161,7 +160,7 @@ const neuter = jwk => { const EC = { generate, - neuter + neuter, }; // @ts-ignore const thumbprint = (w:any) => async (jwk, digestAlgorithm: AlgorithmIdentifier) => { @@ -186,9 +185,9 @@ const thumbprint = (w:any) => async (jwk, digestAlgorithm: AlgorithmIdentifier) // but we're only dealing with P-256 const hash = await w.crypto.subtle.digest(digestAlgorithm, strToUint8(sortedPub)); return uint8ToUrlBase64(new Uint8Array(hash)); -} +}; -export var JWK = {thumbprint}; +export const JWK = {thumbprint}; export const generateJwkAsync = (w:any) => async (generateKeyAlgorithm: RsaHashedKeyGenParams | EcKeyGenParams) => { // @ts-ignore @@ -197,7 +196,7 @@ export const generateJwkAsync = (w:any) => async (generateKeyAlgorithm: RsaHashe // @ts-ignore // console.info('Public Key:', JSON.stringify(EC.neuter(jwk))); return jwk; -} +}; export const generateJwtDemonstratingProofOfPossessionAsync = (w:any) => (demonstratingProofOfPossessionConfiguration: DemonstratingProofOfPossessionConfiguration) => async (jwk, method = 'POST', url: string, extrasClaims={}) => { @@ -212,10 +211,10 @@ export const generateJwtDemonstratingProofOfPossessionAsync = (w:any) => (demons // @ts-ignore const kid = await JWK.thumbprint(w)(jwk, demonstratingProofOfPossessionConfiguration.digestAlgorithm); // @ts-ignore - const jwt = await JWT.sign(w)(jwk, { kid: kid }, claims, demonstratingProofOfPossessionConfiguration) + const jwt = await JWT.sign(w)(jwk, { kid: kid }, claims, demonstratingProofOfPossessionConfiguration); // console.info('JWT:', jwt); return jwt; -} +}; const guid = () => { // RFC4122: The version 4 UUID is meant for generating UUIDs from truly-random or diff --git a/packages/oidc-client/src/keepSession.ts b/packages/oidc-client/src/keepSession.ts index e863229cd..4f18b36ea 100644 --- a/packages/oidc-client/src/keepSession.ts +++ b/packages/oidc-client/src/keepSession.ts @@ -1,9 +1,9 @@ -import {initWorkerAsync} from "./initWorker"; -import {autoRenewTokens} from "./renewTokens"; +import {eventNames} from "./events"; import {initSession} from "./initSession"; -import {setTokens} from "./parseTokens"; -import {eventNames} from "./events"; +import {initWorkerAsync} from "./initWorker"; import Oidc from "./oidc"; +import {setTokens} from "./parseTokens"; +import {autoRenewTokens} from "./renewTokens"; export const tryKeepSessionAsync = async (oidc: Oidc) =>{ @@ -81,4 +81,4 @@ export const tryKeepSessionAsync = async (oidc: Oidc) =>{ oidc.publishEvent(eventNames.tryKeepExistingSessionAsync_error, 'tokens inside ServiceWorker are invalid'); return false; } -} \ No newline at end of file +}; \ No newline at end of file diff --git a/packages/oidc-client/src/login.ts b/packages/oidc-client/src/login.ts index 95547c304..54d3ab234 100644 --- a/packages/oidc-client/src/login.ts +++ b/packages/oidc-client/src/login.ts @@ -2,16 +2,16 @@ import {generateRandom} from './crypto.js'; import {eventNames} from './events.js'; import {initSession} from './initSession.js'; import {initWorkerAsync} from './initWorker.js'; +import {generateJwkAsync, generateJwtDemonstratingProofOfPossessionAsync} from "./jwt"; +import {ILOidcLocation} from "./location"; +import Oidc from "./oidc"; import {isTokensOidcValid} from './parseTokens.js'; import { performAuthorizationRequestAsync, - performFirstTokenRequestAsync + performFirstTokenRequestAsync, } from './requests.js'; import {getParseQueryStringFromLocation} from './route-utils.js'; import {OidcConfiguration, StringMap} from './types.js'; -import {generateJwkAsync, generateJwtDemonstratingProofOfPossessionAsync} from "./jwt"; -import {ILOidcLocation} from "./location"; -import Oidc from "./oidc"; // eslint-disable-next-line @typescript-eslint/ban-types export const defaultLoginAsync = (configurationName:string, configuration:OidcConfiguration, publishEvent :(string, any)=>void, initAsync:Function, oidcLocation: ILOidcLocation) => (callbackPath:string = undefined, extras:StringMap = null, isSilentSignin = false, scope:string = undefined) => { diff --git a/packages/oidc-client/src/logout.spec.ts b/packages/oidc-client/src/logout.spec.ts index c6b9e8ff5..06e9317bd 100644 --- a/packages/oidc-client/src/logout.spec.ts +++ b/packages/oidc-client/src/logout.spec.ts @@ -2,8 +2,8 @@ import { describe, expect, it, vi } from 'vitest'; +import { ILOidcLocation } from "./location"; import { logoutAsync } from "./logout"; -import {ILOidcLocation, OidcLocation} from "./location"; describe('Logout test suite', () => { const expectedFinalUrl = "http://api/connect/endsession?id_token_hint=abcd&post_logout_redirect_uri=http%3A%2F%2Flocalhost%3A4200%2Flogged_out"; diff --git a/packages/oidc-client/src/logout.ts b/packages/oidc-client/src/logout.ts index d422a9a8d..8c1c838be 100644 --- a/packages/oidc-client/src/logout.ts +++ b/packages/oidc-client/src/logout.ts @@ -1,10 +1,10 @@ +import {eventNames} from "./events"; import { initSession } from './initSession.js'; import { initWorkerAsync } from './initWorker.js'; +import {ILOidcLocation} from "./location"; import { performRevocationRequestAsync, TOKEN_TYPE } from './requests.js'; import timer from './timer.js'; import { StringMap } from './types.js'; -import {ILOidcLocation} from "./location"; -import {eventNames} from "./events"; export const oidcLogoutTokens = { access_token: 'access_token', @@ -23,7 +23,7 @@ const extractExtras = (extras: StringMap, postKey: string):StringMap => { return postExtras; } return postExtras; -} +}; const keepExtras = (extras: StringMap):StringMap => { const postExtras : StringMap = {}; @@ -36,7 +36,7 @@ const keepExtras = (extras: StringMap):StringMap => { return postExtras; } return postExtras; -} +}; export const destroyAsync = (oidc) => async (status) => { timer.clearTimeout(oidc.timeoutId); @@ -70,7 +70,7 @@ export const logoutAsync = (oidc, if (callbackPathOrUrl) { isUri = callbackPathOrUrl.includes('https://') || callbackPathOrUrl.includes('http://'); } - const url = isUri ? callbackPathOrUrl : oicLocation.getOrigin() + path + const url = isUri ? callbackPathOrUrl : oicLocation.getOrigin() + path; // @ts-ignore const idToken = oidc.tokens ? oidc.tokens.idToken : ''; try { @@ -105,12 +105,10 @@ export const logoutAsync = (oidc, console.warn('logoutAsync: error when revoking tokens, if the error persist, you ay configure property logout_tokens_to_invalidate from configuration to avoid this error'); console.warn(exception); } - // @ts-ignore - const sub = oidc.tokens && oidc.tokens.idTokenPayload ? oidc.tokens.idTokenPayload.sub : null; - - // eslint-disable-next-line @typescript-eslint/no-unused-vars + const sub = oidc.tokens?.idTokenPayload?.sub ?? null; + await oidc.destroyAsync('LOGGED_OUT'); - for (const [key, itemOidc] of Object.entries(oidcDatabase)) { + for (const [, itemOidc] of Object.entries(oidcDatabase)) { if (itemOidc !== oidc) { // @ts-ignore await oidc.logoutSameTabAsync(oidc.configuration.client_id, sub); @@ -120,7 +118,7 @@ export const logoutAsync = (oidc, } const oidcExtras = extractExtras(extras, ':oidc'); - let noReload = oidcExtras && oidcExtras['no_reload'] === 'true'; + const noReload = oidcExtras && oidcExtras['no_reload'] === 'true'; if(noReload) { return; diff --git a/packages/oidc-client/src/oidc.ts b/packages/oidc-client/src/oidc.ts index 59f6d2532..184257824 100644 --- a/packages/oidc-client/src/oidc.ts +++ b/packages/oidc-client/src/oidc.ts @@ -1,14 +1,22 @@ import {startCheckSessionAsync as defaultStartCheckSessionAsync} from './checkSession.js'; import {CheckSessionIFrame} from './checkSessionIFrame.js'; +import {base64urlOfHashOfASCIIEncodingAsync} from "./crypto"; import {eventNames} from './events.js'; import {initSession} from './initSession.js'; -import {defaultServiceWorkerUpdateRequireCallback, initWorkerAsync, sleepAsync} from './initWorker.js'; +import {defaultServiceWorkerUpdateRequireCallback, initWorkerAsync } from './initWorker.js'; +import {activateServiceWorker} from "./initWorkerOption"; +import { + defaultDemonstratingProofOfPossessionConfiguration, + generateJwtDemonstratingProofOfPossessionAsync, +} from "./jwt"; +import {tryKeepSessionAsync} from "./keepSession"; +import {ILOidcLocation, OidcLocation} from "./location"; import {defaultLoginAsync, loginCallbackAsync} from './login.js'; import {destroyAsync, logoutAsync} from './logout.js'; -import {TokenRenewMode, Tokens,} from './parseTokens.js'; +import {TokenRenewMode, Tokens} from './parseTokens.js'; import { autoRenewTokens, - renewTokensAndStartTimerAsync + renewTokensAndStartTimerAsync, } from './renewTokens.js'; import {fetchFromIssuer} from './requests.js'; import {getParseQueryStringFromLocation} from './route-utils.js'; @@ -16,14 +24,6 @@ import defaultSilentLoginAsync from './silentLogin.js'; import timer from './timer.js'; import {AuthorityConfiguration, Fetch, OidcConfiguration, StringMap, TokenAutomaticRenewMode} from './types.js'; import {userInfoAsync} from './user.js'; -import {base64urlOfHashOfASCIIEncodingAsync} from "./crypto"; -import { - defaultDemonstratingProofOfPossessionConfiguration, - generateJwtDemonstratingProofOfPossessionAsync -} from "./jwt"; -import {ILOidcLocation, OidcLocation} from "./location"; -import {activateServiceWorker} from "./initWorkerOption"; -import {tryKeepSessionAsync} from "./keepSession"; @@ -305,20 +305,18 @@ Please checkout that you are using OIDC hook inside a { const currentTimeUnixSecond = new Date().getTime() / 1000; @@ -29,9 +29,9 @@ describe('ParseTokens test Suite', () => { issuedAt, }, configuration: { token_automatic_renew_mode: TokenAutomaticRenewMode.AutomaticBeforeTokenExpiration}, - renewTokensAsync: async (extras: StringMap) => { + renewTokensAsync: async (_extras: StringMap) => { await sleepAsync({milliseconds:10}); - } + }, }; const result = await getValidTokenAsync(oidc, 1, 1); expect(result.isTokensValid).toEqual(expectIsValidToken); @@ -47,7 +47,7 @@ describe('ParseTokens test Suite', () => { "name": "ƴǢÁìÇ 小名-ホルヘ", "preferred_username": "testingcharacters@inventedmail.com", "given_name": "ƴǢÁìÇ", - "family_name": "小名-ホルヘ" + "family_name": "小名-ホルヘ", }], [ "eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyLCI_IjoiYWE_In0", @@ -56,8 +56,8 @@ describe('ParseTokens test Suite', () => { "iat": 1516239022, "name": "John Doe", "sub": "1234567890", - } - ] + }, + ], ])('parseJwtShouldExtractData', (claimsPart, expectedResult) => { it('should parseJwtShouldExtractData ', async () => { const result = parseJwt(claimsPart); @@ -74,14 +74,14 @@ describe('ParseTokens test Suite', () => { "token_type": "Bearer", "expires_in": "900", // Here a string instead of a number "refresh_token": refresh_token, - "id_token": id_token + "id_token": id_token, }], [{ "access_token": access_token, "token_type": "Bearer", "expires_in": 900, "refresh_token": refresh_token, - "id_token": id_token + "id_token": id_token, }], [{ "access_token": access_token, @@ -89,7 +89,7 @@ describe('ParseTokens test Suite', () => { "expires_in": 900, "expiresAt": 1609987454, // Here expiresAt that come from Service Worker "refresh_token": refresh_token, - "id_token": id_token + "id_token": id_token, }], ])('getValidTokenAsync', (tokens) => { it('should parseOriginalTokens', async () => { @@ -141,10 +141,10 @@ describe('ParseTokens test Suite', () => { "profile", "email", "api", - "offline_access" + "offline_access", ], "amr": [ - "pwd" + "pwd", ], "client_id": "interactive.public.short", "sub": "2", @@ -153,7 +153,7 @@ describe('ParseTokens test Suite', () => { "name": "Bob Smith", "email": "BobSmith@email.com", "sid": "345ABC88E6E50AF1273ED415A7FD6A23", - "jti": "E3CF3853D77AC90ABC774266CD381C43" + "jti": "E3CF3853D77AC90ABC774266CD381C43", }, "idTokenPayload": { "iss": "https://demo.duendesoftware.com", @@ -162,17 +162,17 @@ describe('ParseTokens test Suite', () => { "exp": 1706540558, "aud": "interactive.public.short", "amr": [ - "pwd" + "pwd", ], "nonce": "NONCE_SECURED_BY_OIDC_SERVICE_WORKER_default", "at_hash": "NZvaGGYbXhzTMZUqR9MbNg", "sid": "345ABC88E6E50AF1273ED415A7FD6A23", "sub": "2", "auth_time": 1706531665, - "idp": "local" + "idp": "local", }, - "expiresAt": 1706540333 - } + "expiresAt": 1706540333, + }; describe.each([ [testTokens, null, TokenRenewMode.access_token_invalid, () => {}], @@ -182,11 +182,8 @@ describe('ParseTokens test Suite', () => { }], ])('setTokens', (tokens, oldTokens, tokenRenewMode, validationFunction) => { it('should setTokens return updatedTokens' , async () => { - const oidc = { - idTokenPayload, - }; const newTokens = setTokens(tokens, oldTokens, tokenRenewMode); - validationFunction(newTokens) + validationFunction(newTokens); }); }); diff --git a/packages/oidc-client/src/parseTokens.ts b/packages/oidc-client/src/parseTokens.ts index 82d2bfeff..1823418b7 100644 --- a/packages/oidc-client/src/parseTokens.ts +++ b/packages/oidc-client/src/parseTokens.ts @@ -1,5 +1,5 @@ import {sleepAsync} from './initWorker.js'; -import {OidcConfiguration, StringMap, TokenAutomaticRenewMode} from "./types"; +import {StringMap, TokenAutomaticRenewMode} from "./types"; const b64DecodeUnicode = (str) => decodeURIComponent(Array.prototype.map.call(atob(str), (c) => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)).join('')); @@ -175,7 +175,7 @@ export type ValidToken = { export interface OidcToken{ tokens?: Tokens; - configuration: { token_automatic_renew_mode?: TokenAutomaticRenewMode; }, + configuration: { token_automatic_renew_mode?: TokenAutomaticRenewMode }; renewTokensAsync: (extras: StringMap) => Promise; } diff --git a/packages/oidc-client/src/renewTokens.ts b/packages/oidc-client/src/renewTokens.ts index 1fa25211d..f4d2edbb8 100644 --- a/packages/oidc-client/src/renewTokens.ts +++ b/packages/oidc-client/src/renewTokens.ts @@ -1,12 +1,12 @@ +import {eventNames} from "./events"; import {initSession} from './initSession.js'; import {initWorkerAsync, sleepAsync} from './initWorker.js'; import Oidc from './oidc.js'; import {computeTimeLeft, isTokensOidcValid, setTokens, Tokens} from './parseTokens.js'; +import {performTokenRequestAsync} from "./requests"; +import {_silentLoginAsync} from "./silentLogin"; import timer from './timer.js'; import {OidcConfiguration, StringMap, TokenAutomaticRenewMode} from './types.js'; -import {_silentLoginAsync} from "./silentLogin"; -import {performTokenRequestAsync} from "./requests"; -import {eventNames} from "./events"; async function syncTokens(oidc:Oidc, forceRefresh: boolean, extras: StringMap) { const updateTokens = (tokens) => { @@ -40,7 +40,7 @@ const loadLatestTokensAsync = async (oidc:Oidc, configuration:OidcConfiguration) tokens = setTokens(tokens, oidc.tokens, configuration.token_renew_mode); return tokens; } -} +}; export async function renewTokensAndStartTimerAsync(oidc, forceRefresh = false, extras:StringMap = null) { @@ -92,7 +92,7 @@ export const synchroniseTokensStatus ={ TOKENS_VALID:'TOKENS_VALID', TOKEN_UPDATED_BY_ANOTHER_TAB_TOKENS_VALID: 'TOKEN_UPDATED_BY_ANOTHER_TAB_TOKENS_VALID', LOGOUT_FROM_ANOTHER_TAB: 'LOGOUT_FROM_ANOTHER_TAB', - REQUIRE_SYNC_TOKENS: 'REQUIRE_SYNC_TOKENS' + REQUIRE_SYNC_TOKENS: 'REQUIRE_SYNC_TOKENS', }; export const syncTokensInfoAsync = (oidc: Oidc) => async (configuration:OidcConfiguration, configurationName: string, currentTokens: Tokens, forceRefresh = false) => { @@ -122,7 +122,9 @@ export const syncTokensInfoAsync = (oidc: Oidc) => async (configuration:OidcConf nonce = await serviceWorker.getNonceAsync(); } else { const session = initSession(configurationName, configuration.storage ?? sessionStorage); - let { tokens, status } = await session.initAsync(); + const initAsyncResponse = await session.initAsync(); + let { tokens } = initAsyncResponse; + const { status } = initAsyncResponse; if(tokens){ tokens = setTokens(tokens, oidc.tokens, configuration.token_renew_mode); } @@ -145,7 +147,7 @@ export const syncTokensInfoAsync = (oidc: Oidc) => async (configuration:OidcConf return { tokens: currentTokens, status: 'FORCE_REFRESH', nonce }; } return { tokens: currentTokens, status, nonce }; -} +}; const synchroniseTokensAsync = (oidc:Oidc) => async (index = 0, forceRefresh = false, extras:StringMap = null, updateTokens) =>{ @@ -159,7 +161,6 @@ const synchroniseTokensAsync = (oidc:Oidc) => async (index = 0, forceRefresh = f numberTryOnline--; oidc.publishEvent(eventNames.refreshTokensAsync, { message: `wait because navigator is offline try ${numberTryOnline}` }); } - const isDocumentHidden = document.hidden; const nextIndex = index + 1; if (!extras) { extras = {}; @@ -336,4 +337,4 @@ const synchroniseTokensAsync = (oidc:Oidc) => async (index = 0, forceRefresh = f }, 1000); }); } -} \ No newline at end of file +}; \ No newline at end of file diff --git a/packages/oidc-client/src/requests.ts b/packages/oidc-client/src/requests.ts index 5321210f0..ff1d49780 100644 --- a/packages/oidc-client/src/requests.ts +++ b/packages/oidc-client/src/requests.ts @@ -1,9 +1,9 @@ import { getFromCache, setCache } from './cache.js'; import { deriveChallengeAsync, generateRandom } from './crypto.js'; +import {ILOidcLocation} from "./location"; import { OidcAuthorizationServiceConfiguration } from './oidc.js'; import { parseOriginalTokens } from './parseTokens.js'; import { Fetch, StringMap } from './types.js'; -import {ILOidcLocation} from "./location"; const oneHourSecond = 60 * 60; export const fetchFromIssuer = (fetch) => async (openIdIssuerUrl: string, timeCacheSecond = oneHourSecond, storage = window.sessionStorage, timeoutMs = 10000): @@ -128,7 +128,7 @@ export const performTokenRequestAsync = (fetch:Fetch) => async (url:string, method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8', - ...headersExtras + ...headersExtras, }, body: formBodyString, }, timeoutMs); @@ -136,7 +136,7 @@ export const performTokenRequestAsync = (fetch:Fetch) => async (url:string, return { success: false, status: response.status, - demonstratingProofOfPossessionNonce:null + demonstratingProofOfPossessionNonce:null, }; } const tokens = await response.json(); diff --git a/packages/oidc-client/src/silentLogin.ts b/packages/oidc-client/src/silentLogin.ts index e5b2c1174..4f14a7c36 100644 --- a/packages/oidc-client/src/silentLogin.ts +++ b/packages/oidc-client/src/silentLogin.ts @@ -117,7 +117,7 @@ export const _silentLoginAsync = (configurationName:string, configuration:OidcCo } }; -// eslint-disable-next-line @typescript-eslint/ban-types + export const defaultSilentLoginAsync = (window, configurationName, configuration:OidcConfiguration, publishEvent :(string, any)=>void, oidc:any) => (extras:StringMap = null, scope:string = undefined) => { extras = { ...extras }; diff --git a/packages/oidc-client/src/types.ts b/packages/oidc-client/src/types.ts index a2dd29267..0aa4faf75 100644 --- a/packages/oidc-client/src/types.ts +++ b/packages/oidc-client/src/types.ts @@ -2,7 +2,7 @@ export type Fetch = typeof window.fetch; export type LogoutToken = 'access_token' | 'refresh_token'; -export type ServiceWorkerUpdateRequireCallback = (registration:any, stopKeepAlive:Function) => Promise; +export type ServiceWorkerUpdateRequireCallback = (registration:any, stopKeepAlive:()=>void) => Promise; export type ServiceWorkerRegister = (serviceWorkerRelativeUrl:string) => Promise; export type ServiceWorkerActivate = () => boolean; @@ -44,11 +44,11 @@ export type OidcConfiguration = { }; export interface DemonstratingProofOfPossessionConfiguration { - generateKeyAlgorithm: RsaHashedKeyGenParams | EcKeyGenParams, - digestAlgorithm: AlgorithmIdentifier, - importKeyAlgorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, - signAlgorithm: AlgorithmIdentifier | RsaPssParams | EcdsaParams, - jwtHeaderAlgorithm: string + generateKeyAlgorithm: RsaHashedKeyGenParams | EcKeyGenParams; + digestAlgorithm: AlgorithmIdentifier; + importKeyAlgorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm; + signAlgorithm: AlgorithmIdentifier | RsaPssParams | EcdsaParams; + jwtHeaderAlgorithm: string; } export interface StringMap { diff --git a/packages/oidc-client/src/user.ts b/packages/oidc-client/src/user.ts index 361b59c9b..44156795f 100644 --- a/packages/oidc-client/src/user.ts +++ b/packages/oidc-client/src/user.ts @@ -1,5 +1,5 @@ -import Oidc from "./oidc"; import {fetchWithTokens} from "./fetch"; +import Oidc from "./oidc"; export const userInfoAsync = (oidc:Oidc) => async (noCache = false, demonstrating_proof_of_possession=false) => { if (oidc.userInfo != null && !noCache) { diff --git a/packages/oidc-client/tests/setup.js b/packages/oidc-client/tests/setup.js index aece2885f..5c4174199 100644 --- a/packages/oidc-client/tests/setup.js +++ b/packages/oidc-client/tests/setup.js @@ -1,11 +1,11 @@ -import { configDefaults } from 'vitest/config' -import {defineConfig} from "vite"; +import {defineConfig} from "vite"; +import { configDefaults } from 'vitest/config'; export default defineConfig({ test: { exclude:[ ...configDefaults.exclude, - 'public/*' - ] + 'public/*', + ], }, }); \ No newline at end of file diff --git a/packages/react-oidc/bin/copy-service-worker-files.mjs b/packages/react-oidc/bin/copy-service-worker-files.mjs index 3fe82d871..3625811ee 100644 --- a/packages/react-oidc/bin/copy-service-worker-files.mjs +++ b/packages/react-oidc/bin/copy-service-worker-files.mjs @@ -1,5 +1,7 @@ -import path from 'path'; +/* global console, process */ +/* eslint no-console: "off" */ import fs from 'fs'; +import path from 'path'; import { fileURLToPath } from 'url'; try { @@ -24,7 +26,7 @@ try { } await fs.promises.copyFile(src, dest); console.log(`[${script_prefix}:copy] ${dest}`); - return true + return true; }; const fileExists = (path) => { @@ -53,13 +55,13 @@ try { const success = await copyFile( path.join(srcDir, file.fileName), path.join(destinationDir, file.fileName), - file.overwrite + file.overwrite, ); if(!success){ await copyFile( path.join(srcDirFallback, file.fileName), path.join(destinationDir, file.fileName), - file.overwrite + file.overwrite, ); } } diff --git a/packages/react-oidc/src/OidcProvider.tsx b/packages/react-oidc/src/OidcProvider.tsx index 41cd2625c..d51c70f9b 100644 --- a/packages/react-oidc/src/OidcProvider.tsx +++ b/packages/react-oidc/src/OidcProvider.tsx @@ -1,4 +1,4 @@ -import {Fetch, getFetchDefault, OidcConfiguration, OidcClient, ILOidcLocation, OidcLocation} from '@axa-fr/oidc-client'; +import {Fetch, getFetchDefault, ILOidcLocation, OidcClient, OidcConfiguration, OidcLocation} from '@axa-fr/oidc-client'; import { ComponentType, FC, PropsWithChildren, useEffect, useState } from 'react'; import AuthenticatingError from './core/default-component/AuthenticateError.component.js'; @@ -29,7 +29,7 @@ export type OidcProviderProps = { withCustomHistory?: () => CustomHistory; onEvent?: (configuration: string, name: string, data: any) => void; getFetch?: () => Fetch; - location?: ILOidcLocation + location?: ILOidcLocation; }; export type OidcSessionProps = { @@ -53,7 +53,7 @@ const OidcSession: FC> = ({ loadingComponent return () => { isMounted = false; }; - // eslint-disable-next-line react-hooks/exhaustive-deps + }, [configurationName]); const LoadingComponent = loadingComponent; return ( @@ -98,7 +98,7 @@ export const OidcProvider: FC> = ({ const getOidc = (configurationName = 'default') => { return OidcClient.getOrCreate(getFetch ?? getFetchDefault, location ?? new OidcLocation())(configuration, configurationName); }; - // eslint-disable-next-line @typescript-eslint/naming-convention + const [loading, setLoading] = useState(true); const [event, setEvent] = useState(defaultEventState); const [currentConfigurationName, setConfigurationName] = useState('default'); @@ -154,7 +154,7 @@ export const OidcProvider: FC> = ({ previousOidc.removeEventSubscription(newSubscriptionId); setEvent(defaultEventState); }; - // eslint-disable-next-line react-hooks/exhaustive-deps + }, [configuration, configurationName]); const SessionLostComponent = sessionLostComponent; diff --git a/packages/react-oidc/src/OidcSecure.tsx b/packages/react-oidc/src/OidcSecure.tsx index 0a44df84e..65de58fc5 100644 --- a/packages/react-oidc/src/OidcSecure.tsx +++ b/packages/react-oidc/src/OidcSecure.tsx @@ -1,4 +1,4 @@ -import { StringMap, OidcClient } from '@axa-fr/oidc-client'; +import { OidcClient,StringMap } from '@axa-fr/oidc-client'; import { FC, PropsWithChildren, useEffect } from 'react'; export type OidcSecureProps = { diff --git a/packages/react-oidc/src/ReactOidc.tsx b/packages/react-oidc/src/ReactOidc.tsx index 9a2aef457..1e0339d23 100644 --- a/packages/react-oidc/src/ReactOidc.tsx +++ b/packages/react-oidc/src/ReactOidc.tsx @@ -1,4 +1,4 @@ -import { StringMap, OidcClient, Tokens } from '@axa-fr/oidc-client'; +import { OidcClient, StringMap, Tokens } from '@axa-fr/oidc-client'; import { useEffect, useState } from 'react'; const defaultConfigurationName = 'default'; @@ -24,7 +24,7 @@ export const useOidc = (configurationName = defaultConfigurationName) => { let isMounted = true; const oidc = getOidc(configurationName); setIsAuthenticated(defaultIsAuthenticated(getOidc, configurationName)); - // eslint-disable-next-line @typescript-eslint/no-unused-vars + const newSubscriptionId = oidc.subscribeEvents((name: string, data: any) => { if (name === OidcClient.eventNames.logout_from_another_tab || name === OidcClient.eventNames.logout_from_same_tab || name === OidcClient.eventNames.token_aquired) { if (isMounted) { @@ -36,7 +36,7 @@ export const useOidc = (configurationName = defaultConfigurationName) => { isMounted = false; oidc.removeEventSubscription(newSubscriptionId); }; - // eslint-disable-next-line react-hooks/exhaustive-deps + }, [configurationName]); const login = (callbackPath:string | undefined = undefined, extras:StringMap = null, silentLoginOnly = false) => { @@ -99,7 +99,7 @@ export const useOidcAccessToken = (configurationName = defaultConfigurationName) const tokens = oidc.tokens; setAccessToken({ accessToken: tokens.accessToken, accessTokenPayload: tokens.accessTokenPayload }); } - // eslint-disable-next-line @typescript-eslint/no-unused-vars + const newSubscriptionId = oidc.subscribeEvents((name: string, data: any) => { if (name === OidcClient.eventNames.token_renewed || name === OidcClient.eventNames.token_aquired || @@ -121,7 +121,7 @@ export const useOidcAccessToken = (configurationName = defaultConfigurationName) isMounted = false; oidc.removeEventSubscription(newSubscriptionId); }; - // eslint-disable-next-line react-hooks/exhaustive-deps + }, [configurationName]); return state; }; @@ -155,7 +155,7 @@ export const useOidcIdToken = (configurationName = defaultConfigurationName) => const tokens = oidc.tokens; setIDToken({ idToken: tokens.idToken, idTokenPayload: tokens.idTokenPayload }); } - // eslint-disable-next-line @typescript-eslint/no-unused-vars + const newSubscriptionId = oidc.subscribeEvents((name: string, data: any) => { if (name === OidcClient.eventNames.token_renewed || name === OidcClient.eventNames.token_aquired || @@ -173,7 +173,7 @@ export const useOidcIdToken = (configurationName = defaultConfigurationName) => isMounted = false; oidc.removeEventSubscription(newSubscriptionId); }; - // eslint-disable-next-line react-hooks/exhaustive-deps + }, [configurationName]); return state; }; diff --git a/packages/react-oidc/src/User.ts b/packages/react-oidc/src/User.ts index 53490a08b..0145cf68d 100644 --- a/packages/react-oidc/src/User.ts +++ b/packages/react-oidc/src/User.ts @@ -1,4 +1,4 @@ -import { type OidcUserInfo, OidcClient } from '@axa-fr/oidc-client'; +import { OidcClient,type OidcUserInfo } from '@axa-fr/oidc-client'; import { useEffect, useState } from 'react'; export enum OidcUserStatus { diff --git a/packages/react-oidc/src/core/routes/OidcRoutes.tsx b/packages/react-oidc/src/core/routes/OidcRoutes.tsx index 836211f7c..ab77f8ce6 100644 --- a/packages/react-oidc/src/core/routes/OidcRoutes.tsx +++ b/packages/react-oidc/src/core/routes/OidcRoutes.tsx @@ -26,7 +26,6 @@ const OidcRoutes: FC> = ({ silent_login_uri, children, configurationName, withCustomHistory = null, - location, }) => { // This exist because in next.js window outside useEffect is null const pathname = window ? getPath(window.location.href) : ''; diff --git a/packages/react-oidc/src/index.ts b/packages/react-oidc/src/index.ts index ebfb520e6..e891b1c5d 100644 --- a/packages/react-oidc/src/index.ts +++ b/packages/react-oidc/src/index.ts @@ -6,9 +6,8 @@ export { OidcUserStatus, useOidcUser } from './User.js'; export type { AuthorityConfiguration, Fetch, + ILOidcLocation, OidcConfiguration, - StringMap, - ILOidcLocation -} from '@axa-fr/oidc-client'; -export { TokenRenewMode, OidcClient, TokenAutomaticRenewMode, OidcLocation } from '@axa-fr/oidc-client'; + StringMap} from '@axa-fr/oidc-client'; export type { OidcUserInfo } from '@axa-fr/oidc-client'; +export { OidcClient, OidcLocation,TokenAutomaticRenewMode, TokenRenewMode } from '@axa-fr/oidc-client'; diff --git a/packages/react-oidc/vite.config.ts b/packages/react-oidc/vite.config.ts index 7b4ed8c80..d5e468c07 100644 --- a/packages/react-oidc/vite.config.ts +++ b/packages/react-oidc/vite.config.ts @@ -19,7 +19,7 @@ export default defineConfig({ rollupOptions: { external: [ ...dependencies, - 'react/jsx-runtime' + 'react/jsx-runtime', ], output: { globals: { From 8797330ea5060a77b8d10a352ff166a33210f6aa Mon Sep 17 00:00:00 2001 From: Jason Finch Date: Sat, 13 Jul 2024 13:21:51 +1000 Subject: [PATCH 310/440] refactor(lint): Fix minor lint issues - Imports, unused variables, - deprecated use of substr replaced with slice. - remove await on non awaitable code. --- examples/react-oidc-demo/src/MultiAuth.tsx | 2 +- packages/oidc-client-service-worker/src/OidcServiceWorker.ts | 2 +- packages/oidc-client/src/checkSession.ts | 3 +-- packages/oidc-client/src/checkSessionIFrame.ts | 2 +- packages/oidc-client/src/oidc.ts | 2 +- packages/oidc-client/src/oidcClient.ts | 2 +- packages/oidc-client/src/silentLogin.ts | 2 +- packages/react-oidc/src/core/routes/withRouter.tsx | 2 +- 8 files changed, 8 insertions(+), 9 deletions(-) diff --git a/examples/react-oidc-demo/src/MultiAuth.tsx b/examples/react-oidc-demo/src/MultiAuth.tsx index 94546178e..31abce013 100644 --- a/examples/react-oidc-demo/src/MultiAuth.tsx +++ b/examples/react-oidc-demo/src/MultiAuth.tsx @@ -16,7 +16,7 @@ const fetchWithLogs = (fetch: Fetch) => async (...params: Parameters) => return await fetch(url, options, ...rest); }; -const MultiAuth = ({ configurationName, handleConfigurationChange }) => {; +const MultiAuth = ({ configurationName, handleConfigurationChange }) => { const { login, logout, isAuthenticated } = useOidc(configurationName); const { isAuthenticated: isAuthenticatedDefault } = useOidc('default'); const [fname, setFname] = useState(''); diff --git a/packages/oidc-client-service-worker/src/OidcServiceWorker.ts b/packages/oidc-client-service-worker/src/OidcServiceWorker.ts index 4cc166946..6e3ce4f71 100644 --- a/packages/oidc-client-service-worker/src/OidcServiceWorker.ts +++ b/packages/oidc-client-service-worker/src/OidcServiceWorker.ts @@ -15,11 +15,11 @@ import { getDomains, hideTokens, isTokensValid, + normalizeUrl, serializeHeaders, sleep, } from './utils'; import {extractConfigurationNameFromCodeVerifier, replaceCodeVerifier} from './utils/codeVerifier'; -import { normalizeUrl } from './utils/normalizeUrl'; import version from './version'; // @ts-ignore diff --git a/packages/oidc-client/src/checkSession.ts b/packages/oidc-client/src/checkSession.ts index 496b9cc67..3a399e8be 100644 --- a/packages/oidc-client/src/checkSession.ts +++ b/packages/oidc-client/src/checkSession.ts @@ -42,8 +42,7 @@ export const startCheckSessionAsync = (oidc:Oidc, oidcDatabase:any, configuratio }).catch(async (e) => { console.warn('SessionMonitor._callback: Silent login failed, logging out other tabs:', e); - // eslint-disable-next-line @typescript-eslint/no-unused-vars - for (const [key, oidc] of Object.entries(oidcDatabase)) { + for (const [, oidc] of Object.entries(oidcDatabase)) { // @ts-ignore await oidc.logoutOtherTabAsync(configuration.client_id, idTokenPayload.sub); } diff --git a/packages/oidc-client/src/checkSessionIFrame.ts b/packages/oidc-client/src/checkSessionIFrame.ts index 247cbb24e..60cac1e6c 100644 --- a/packages/oidc-client/src/checkSessionIFrame.ts +++ b/packages/oidc-client/src/checkSessionIFrame.ts @@ -19,7 +19,7 @@ export class CheckSessionIFrame { this._interval = interval || DefaultInterval; this._stopOnError = stopOnError; const idx = url.indexOf('/', url.indexOf('//') + 2); - this._frame_origin = url.substr(0, idx); + this._frame_origin = url.substring(0, idx); this._frame = window.document.createElement('iframe'); this._frame.style.visibility = 'hidden'; this._frame.style.position = 'absolute'; diff --git a/packages/oidc-client/src/oidc.ts b/packages/oidc-client/src/oidc.ts index 184257824..a9a98c644 100644 --- a/packages/oidc-client/src/oidc.ts +++ b/packages/oidc-client/src/oidc.ts @@ -316,7 +316,7 @@ Please checkout that you are using OIDC hook inside a ) => { + const listener = (e: MessageEvent) => { if (e.origin === iFrameOrigin && e.source === iframe.contentWindow ) { diff --git a/packages/react-oidc/src/core/routes/withRouter.tsx b/packages/react-oidc/src/core/routes/withRouter.tsx index dd87edb1c..0a9769320 100644 --- a/packages/react-oidc/src/core/routes/withRouter.tsx +++ b/packages/react-oidc/src/core/routes/withRouter.tsx @@ -1,7 +1,7 @@ const generateKey = () => Math.random() .toString(36) - .substr(2, 6); + .slice(2, 8); // Exported only for test export type WindowInternal = Window & { From f6cf194d9c14d7eba20f23a89e215bb9cc6cacd1 Mon Sep 17 00:00:00 2001 From: Jason Finch Date: Sat, 13 Jul 2024 13:30:08 +1000 Subject: [PATCH 311/440] refactor(silentcallback): Catch any errors in async playCallbackAsync --- .../SilentCallback.component.tsx | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/packages/react-oidc/src/core/default-component/SilentCallback.component.tsx b/packages/react-oidc/src/core/default-component/SilentCallback.component.tsx index 019110e6e..56709c298 100644 --- a/packages/react-oidc/src/core/default-component/SilentCallback.component.tsx +++ b/packages/react-oidc/src/core/default-component/SilentCallback.component.tsx @@ -1,17 +1,24 @@ import { OidcClient } from '@axa-fr/oidc-client'; -import { ComponentType, useEffect } from 'react'; +import { FC, useEffect } from 'react'; -const SilentCallbackManager: ComponentType = ({ configurationName }) => { +export interface SilentCallbackProps { + configurationName: string; + } + +const SilentCallbackManager: FC = ({ configurationName }) => { useEffect(() => { const playCallbackAsync = async () => { - const getOidc = OidcClient.get; - const oidc = getOidc(configurationName); + const oidc = OidcClient.get(configurationName); oidc.silentLoginCallbackAsync(); }; - playCallbackAsync(); - }, []); - return <>; + playCallbackAsync().catch(error => { + console.error('Error during silent login callback:', error); + }); + + }, [configurationName]); + + return null; }; export default SilentCallbackManager; From a082b20a943ab6322e69c00770d8ba86c9b8eaa2 Mon Sep 17 00:00:00 2001 From: Jason Finch Date: Wed, 17 Jul 2024 09:27:31 +1000 Subject: [PATCH 312/440] fix (Lint): Fix lint errors after rebase. --- packages/oidc-client-service-worker/src/OidcServiceWorker.ts | 4 ++-- .../src/utils/__tests__/domains.spec.ts | 2 +- .../src/utils/__tests__/testHelper.ts | 2 +- packages/oidc-client/src/initWorker.ts | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/oidc-client-service-worker/src/OidcServiceWorker.ts b/packages/oidc-client-service-worker/src/OidcServiceWorker.ts index 6e3ce4f71..b4ed59238 100644 --- a/packages/oidc-client-service-worker/src/OidcServiceWorker.ts +++ b/packages/oidc-client-service-worker/src/OidcServiceWorker.ts @@ -356,7 +356,7 @@ const handleMessage = async (event: ExtendableMessageEvent) => { demonstratingProofOfPossessionJwkJson: null, demonstratingProofOfPossessionConfiguration: null, demonstratingProofOfPossessionOnlyWhenDpopHeaderPresent: false, - allowMultiTabLogin: allowMultiTabLogin ?? false + allowMultiTabLogin: allowMultiTabLogin ?? false, }; currentDatabase = database[configurationName]; @@ -500,7 +500,7 @@ const handleMessage = async (event: ExtendableMessageEvent) => { return; } case 'getNonce': { - const keyNonce = TOKEN.NONCE_TOKEN + '_' + configurationName + '_' + tabId + const keyNonce = TOKEN.NONCE_TOKEN + '_' + configurationName + '_' + tabId; const nonce = currentDatabase.nonce ? keyNonce : null; port.postMessage({ configurationName, nonce }); return; diff --git a/packages/oidc-client-service-worker/src/utils/__tests__/domains.spec.ts b/packages/oidc-client-service-worker/src/utils/__tests__/domains.spec.ts index 1b64601db..f265f69f3 100644 --- a/packages/oidc-client-service-worker/src/utils/__tests__/domains.spec.ts +++ b/packages/oidc-client-service-worker/src/utils/__tests__/domains.spec.ts @@ -56,7 +56,7 @@ describe('domains', () => { demonstratingProofOfPossessionJwkJson: null, demonstratingProofOfPossessionConfiguration: null, demonstratingProofOfPossessionOnlyWhenDpopHeaderPresent: false, - allowMultiTabLogin: true + allowMultiTabLogin: true, }, }; }); diff --git a/packages/oidc-client-service-worker/src/utils/__tests__/testHelper.ts b/packages/oidc-client-service-worker/src/utils/__tests__/testHelper.ts index 7d68ff316..4029eb6ab 100644 --- a/packages/oidc-client-service-worker/src/utils/__tests__/testHelper.ts +++ b/packages/oidc-client-service-worker/src/utils/__tests__/testHelper.ts @@ -130,7 +130,7 @@ class OidcConfigBuilder { demonstratingProofOfPossessionJwkJson: null, demonstratingProofOfPossessionConfiguration: null, demonstratingProofOfPossessionOnlyWhenDpopHeaderPresent: false, - allowMultiTabLogin: true + allowMultiTabLogin: true, }; public withTestingDefault(): OidcConfigBuilder { diff --git a/packages/oidc-client/src/initWorker.ts b/packages/oidc-client/src/initWorker.ts index 80999d2b5..79b5f325b 100644 --- a/packages/oidc-client/src/initWorker.ts +++ b/packages/oidc-client/src/initWorker.ts @@ -75,7 +75,7 @@ export const initWorkerAsync = async(configuration, configurationName) => { const newTabId = globalThis.crypto.randomUUID(); sessionStorage.setItem(`oidc.tabId.${configurationName}`, newTabId); return newTabId; - } + }; const serviceWorkerRelativeUrl = configuration.service_worker_relative_url; if (typeof window === 'undefined' || typeof navigator === 'undefined' || !navigator.serviceWorker || !serviceWorkerRelativeUrl) { @@ -116,7 +116,7 @@ export const initWorkerAsync = async(configuration, configurationName) => { }, }, configurationName, - tabId: getTabId() + tabId: getTabId(), }); // @ts-ignore From 9191b0c2f95491fd12cf93673bb468d9b6d61774 Mon Sep 17 00:00:00 2001 From: Jason Finch Date: Wed, 17 Jul 2024 11:07:47 +1000 Subject: [PATCH 313/440] chore(packages): Bump packages for eslint/prettier --- package.json | 12 +- pnpm-lock.yaml | 364 ++++++++++++++++++++++++++++--------------------- 2 files changed, 215 insertions(+), 161 deletions(-) diff --git a/package.json b/package.json index 8b42615f5..4a9e52dc3 100644 --- a/package.json +++ b/package.json @@ -28,9 +28,9 @@ }, "devDependencies": { "@eslint/compat": "^1.1.1", - "@typescript-eslint/eslint-plugin": "^7.16.0", - "@typescript-eslint/parser": "^7.16.0", - "eslint": "^9.6.0", + "@typescript-eslint/eslint-plugin": "^7.16.1", + "@typescript-eslint/parser": "^7.16.1", + "eslint": "^9.7.0", "eslint-config-prettier": "^9.1.0", "eslint-define-config": "^2.1.0", "eslint-plugin-import": "^2.29.1", @@ -38,13 +38,13 @@ "eslint-plugin-n": "^17.9.0", "eslint-plugin-no-only-tests": "^3.1.0", "eslint-plugin-prettier": "^5.1.3", - "eslint-plugin-react": "^7.34.3", + "eslint-plugin-react": "^7.34.4", "eslint-plugin-react-hooks": "^4.6.2", "eslint-plugin-regexp": "^2.6.0", "eslint-plugin-simple-import-sort": "^12.1.1", "eslint-plugin-testing-library": "^6.2.2", - "prettier": "^3.3.2", - "tslib": "^2.6.2", + "prettier": "^3.3.3", + "tslib": "^2.6.3", "tsx": "4.10.5", "typescript": "5.4.5", "vitest": "1.6.0" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 83edb275f..d83a5560a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,56 +12,56 @@ importers: specifier: ^1.1.1 version: 1.1.1 '@typescript-eslint/eslint-plugin': - specifier: ^7.16.0 - version: 7.16.0(@typescript-eslint/parser@7.16.0)(eslint@9.6.0)(typescript@5.4.5) + specifier: ^7.16.1 + version: 7.16.1(@typescript-eslint/parser@7.16.1)(eslint@9.7.0)(typescript@5.4.5) '@typescript-eslint/parser': - specifier: ^7.16.0 - version: 7.16.0(eslint@9.6.0)(typescript@5.4.5) + specifier: ^7.16.1 + version: 7.16.1(eslint@9.7.0)(typescript@5.4.5) eslint: - specifier: ^9.6.0 - version: 9.6.0 + specifier: ^9.7.0 + version: 9.7.0 eslint-config-prettier: specifier: ^9.1.0 - version: 9.1.0(eslint@9.6.0) + version: 9.1.0(eslint@9.7.0) eslint-define-config: specifier: ^2.1.0 version: 2.1.0 eslint-plugin-import: specifier: ^2.29.1 - version: 2.29.1(@typescript-eslint/parser@7.16.0)(eslint@9.6.0) + version: 2.29.1(@typescript-eslint/parser@7.16.1)(eslint@9.7.0) eslint-plugin-jsx-a11y: specifier: ^6.9.0 - version: 6.9.0(eslint@9.6.0) + version: 6.9.0(eslint@9.7.0) eslint-plugin-n: specifier: ^17.9.0 - version: 17.9.0(eslint@9.6.0) + version: 17.9.0(eslint@9.7.0) eslint-plugin-no-only-tests: specifier: ^3.1.0 version: 3.1.0 eslint-plugin-prettier: specifier: ^5.1.3 - version: 5.1.3(eslint-config-prettier@9.1.0)(eslint@9.6.0)(prettier@3.3.2) + version: 5.1.3(eslint-config-prettier@9.1.0)(eslint@9.7.0)(prettier@3.3.3) eslint-plugin-react: - specifier: ^7.34.3 - version: 7.34.3(eslint@9.6.0) + specifier: ^7.34.4 + version: 7.34.4(eslint@9.7.0) eslint-plugin-react-hooks: specifier: ^4.6.2 - version: 4.6.2(eslint@9.6.0) + version: 4.6.2(eslint@9.7.0) eslint-plugin-regexp: specifier: ^2.6.0 - version: 2.6.0(eslint@9.6.0) + version: 2.6.0(eslint@9.7.0) eslint-plugin-simple-import-sort: specifier: ^12.1.1 - version: 12.1.1(eslint@9.6.0) + version: 12.1.1(eslint@9.7.0) eslint-plugin-testing-library: specifier: ^6.2.2 - version: 6.2.2(eslint@9.6.0)(typescript@5.4.5) + version: 6.2.2(eslint@9.7.0)(typescript@5.4.5) prettier: - specifier: ^3.3.2 - version: 3.3.2 + specifier: ^3.3.3 + version: 3.3.3 tslib: - specifier: ^2.6.2 - version: 2.6.2 + specifier: ^2.6.3 + version: 2.6.3 tsx: specifier: 4.10.5 version: 4.10.5 @@ -97,7 +97,7 @@ importers: version: 6.4.2(@types/jest@29.5.12)(vitest@1.6.0) '@testing-library/user-event': specifier: 14.5.2 - version: 14.5.2(@testing-library/dom@10.1.0) + version: 14.5.2(@testing-library/dom@10.3.2) '@types/jest': specifier: 29.5.12 version: 29.5.12 @@ -141,7 +141,7 @@ importers: version: 15.0.7(@types/react@18.3.2)(react-dom@18.2.0)(react@18.2.0) '@testing-library/user-event': specifier: 14.5.2 - version: 14.5.2(@testing-library/dom@10.1.0) + version: 14.5.2(@testing-library/dom@10.3.2) '@types/react': specifier: 18.3.2 version: 18.3.2 @@ -257,7 +257,7 @@ importers: version: 15.0.7(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) '@testing-library/user-event': specifier: 14.5.2 - version: 14.5.2(@testing-library/dom@10.1.0) + version: 14.5.2(@testing-library/dom@10.3.2) '@types/react': specifier: 18.3.2 version: 18.3.2 @@ -337,6 +337,13 @@ packages: '@babel/highlight': 7.23.4 chalk: 2.4.2 + /@babel/code-frame@7.24.7: + resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.24.7 + picocolors: 1.0.1 + /@babel/compat-data@7.23.5: resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==} engines: {node: '>=6.9.0'} @@ -455,6 +462,10 @@ packages: resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} engines: {node: '>=6.9.0'} + /@babel/helper-validator-identifier@7.24.7: + resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} + engines: {node: '>=6.9.0'} + /@babel/helper-validator-option@7.23.5: resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} engines: {node: '>=6.9.0'} @@ -479,6 +490,15 @@ packages: chalk: 2.4.2 js-tokens: 4.0.0 + /@babel/highlight@7.24.7: + resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.24.7 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.0.1 + /@babel/parser@7.23.9: resolution: {integrity: sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==} engines: {node: '>=6.0.0'} @@ -513,6 +533,12 @@ packages: dependencies: regenerator-runtime: 0.14.1 + /@babel/runtime@7.24.8: + resolution: {integrity: sha512-5F7SDGs1T72ZczbRwbGO9lQi0NLjQxzl6i4lJxLxfW9U5UluCSyEJeniWvnhl3/euNiqQVbo8zruhsDfid0esA==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.14.1 + /@babel/template@7.23.9: resolution: {integrity: sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==} engines: {node: '>=6.9.0'} @@ -956,13 +982,13 @@ packages: requiresBuild: true optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@9.6.0): + /@eslint-community/eslint-utils@4.4.0(eslint@9.7.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 9.6.0 + eslint: 9.7.0 eslint-visitor-keys: 3.4.3 dev: true @@ -971,6 +997,11 @@ packages: engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true + /@eslint-community/regexpp@4.11.0: + resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: true + /@eslint/compat@1.1.1: resolution: {integrity: sha512-lpHyRyplhGPL5mGEh6M9O5nnKk0Gz4bFI+Zu6tKlPpDUN7XshWvH9C/px4UVm87IAANE0W81CEsNGbS1KlzXpA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1004,8 +1035,8 @@ packages: - supports-color dev: true - /@eslint/js@9.6.0: - resolution: {integrity: sha512-D9B0/3vNg44ZeWbYMpBoXqNP4j6eQD5vNwIlGAuFRRzK/WtT/jvDQW3Bi9kkf3PMDMlM7Yi+73VLUsn5bJcl8A==} + /@eslint/js@9.7.0: + resolution: {integrity: sha512-ChuWDQenef8OSFnvuxv0TCVxEwmu3+hPNKvM9B34qpM0rDRbjL8t5QkQeHHeAfsKQjuH9wS82WeCi1J/owatng==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dev: true @@ -1642,6 +1673,20 @@ packages: dom-accessibility-api: 0.5.16 lz-string: 1.5.0 pretty-format: 27.5.1 + dev: true + + /@testing-library/dom@10.3.2: + resolution: {integrity: sha512-0bxIdP9mmPiOJ6wHLj8bdJRq+51oddObeCGdEf6PNEhYd93ZYAN+lPRnEOVFtheVwDM7+p+tza3LAQgp0PTudg==} + engines: {node: '>=18'} + dependencies: + '@babel/code-frame': 7.24.7 + '@babel/runtime': 7.24.8 + '@types/aria-query': 5.0.4 + aria-query: 5.3.0 + chalk: 4.1.2 + dom-accessibility-api: 0.5.16 + lz-string: 1.5.0 + pretty-format: 27.5.1 /@testing-library/jest-dom@6.4.2(@types/jest@29.5.12)(vitest@1.6.0): resolution: {integrity: sha512-CzqH0AFymEMG48CpzXFriYYkOjk6ZGPCLMhW9e9jg3KMCn5OfJecF8GtGW7yGfR/IgCe3SX8BSwjdzI6BBbZLw==} @@ -1746,13 +1791,13 @@ packages: react-dom: 18.3.1(react@18.3.1) dev: true - /@testing-library/user-event@14.5.2(@testing-library/dom@10.1.0): + /@testing-library/user-event@14.5.2(@testing-library/dom@10.3.2): resolution: {integrity: sha512-YAh82Wh4TIrxYLmfGcixwD18oIjyC1pFQC2Y01F2lzV2HTMiYrI0nze0FD0ocB//CKS/7jIUgae+adPqxK5yCQ==} engines: {node: '>=12', npm: '>=6'} peerDependencies: '@testing-library/dom': '>=7.21.4' dependencies: - '@testing-library/dom': 10.1.0 + '@testing-library/dom': 10.3.2 /@types/argparse@1.0.38: resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} @@ -1888,8 +1933,8 @@ packages: '@types/yargs-parser': 21.0.3 dev: false - /@typescript-eslint/eslint-plugin@7.16.0(@typescript-eslint/parser@7.16.0)(eslint@9.6.0)(typescript@5.4.5): - resolution: {integrity: sha512-py1miT6iQpJcs1BiJjm54AMzeuMPBSPuKPlnT8HlfudbcS5rYeX5jajpLf3mrdRh9dA/Ec2FVUY0ifeVNDIhZw==} + /@typescript-eslint/eslint-plugin@7.16.1(@typescript-eslint/parser@7.16.1)(eslint@9.7.0)(typescript@5.4.5): + resolution: {integrity: sha512-SxdPak/5bO0EnGktV05+Hq8oatjAYVY3Zh2bye9pGZy6+jwyR3LG3YKkV4YatlsgqXP28BTeVm9pqwJM96vf2A==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: '@typescript-eslint/parser': ^7.0.0 @@ -1900,12 +1945,12 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 7.16.0(eslint@9.6.0)(typescript@5.4.5) - '@typescript-eslint/scope-manager': 7.16.0 - '@typescript-eslint/type-utils': 7.16.0(eslint@9.6.0)(typescript@5.4.5) - '@typescript-eslint/utils': 7.16.0(eslint@9.6.0)(typescript@5.4.5) - '@typescript-eslint/visitor-keys': 7.16.0 - eslint: 9.6.0 + '@typescript-eslint/parser': 7.16.1(eslint@9.7.0)(typescript@5.4.5) + '@typescript-eslint/scope-manager': 7.16.1 + '@typescript-eslint/type-utils': 7.16.1(eslint@9.7.0)(typescript@5.4.5) + '@typescript-eslint/utils': 7.16.1(eslint@9.7.0)(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 7.16.1 + eslint: 9.7.0 graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 @@ -1915,8 +1960,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@7.16.0(eslint@9.6.0)(typescript@5.4.5): - resolution: {integrity: sha512-ar9E+k7CU8rWi2e5ErzQiC93KKEFAXA2Kky0scAlPcxYblLt8+XZuHUZwlyfXILyQa95P6lQg+eZgh/dDs3+Vw==} + /@typescript-eslint/parser@7.16.1(eslint@9.7.0)(typescript@5.4.5): + resolution: {integrity: sha512-u+1Qx86jfGQ5i4JjK33/FnawZRpsLxRnKzGE6EABZ40KxVT/vWsiZFEBBHjFOljmmV3MBYOHEKi0Jm9hbAOClA==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -1925,12 +1970,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 7.16.0 - '@typescript-eslint/types': 7.16.0 - '@typescript-eslint/typescript-estree': 7.16.0(typescript@5.4.5) - '@typescript-eslint/visitor-keys': 7.16.0 + '@typescript-eslint/scope-manager': 7.16.1 + '@typescript-eslint/types': 7.16.1 + '@typescript-eslint/typescript-estree': 7.16.1(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 7.16.1 debug: 4.3.5 - eslint: 9.6.0 + eslint: 9.7.0 typescript: 5.4.5 transitivePeerDependencies: - supports-color @@ -1944,16 +1989,16 @@ packages: '@typescript-eslint/visitor-keys': 5.62.0 dev: true - /@typescript-eslint/scope-manager@7.16.0: - resolution: {integrity: sha512-8gVv3kW6n01Q6TrI1cmTZ9YMFi3ucDT7i7aI5lEikk2ebk1AEjrwX8MDTdaX5D7fPXMBLvnsaa0IFTAu+jcfOw==} + /@typescript-eslint/scope-manager@7.16.1: + resolution: {integrity: sha512-nYpyv6ALte18gbMz323RM+vpFpTjfNdyakbf3nsLvF43uF9KeNC289SUEW3QLZ1xPtyINJ1dIsZOuWuSRIWygw==} engines: {node: ^18.18.0 || >=20.0.0} dependencies: - '@typescript-eslint/types': 7.16.0 - '@typescript-eslint/visitor-keys': 7.16.0 + '@typescript-eslint/types': 7.16.1 + '@typescript-eslint/visitor-keys': 7.16.1 dev: true - /@typescript-eslint/type-utils@7.16.0(eslint@9.6.0)(typescript@5.4.5): - resolution: {integrity: sha512-j0fuUswUjDHfqV/UdW6mLtOQQseORqfdmoBNDFOqs9rvNVR2e+cmu6zJu/Ku4SDuqiJko6YnhwcL8x45r8Oqxg==} + /@typescript-eslint/type-utils@7.16.1(eslint@9.7.0)(typescript@5.4.5): + resolution: {integrity: sha512-rbu/H2MWXN4SkjIIyWcmYBjlp55VT+1G3duFOIukTNFxr9PI35pLc2ydwAfejCEitCv4uztA07q0QWanOHC7dA==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -1962,10 +2007,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 7.16.0(typescript@5.4.5) - '@typescript-eslint/utils': 7.16.0(eslint@9.6.0)(typescript@5.4.5) + '@typescript-eslint/typescript-estree': 7.16.1(typescript@5.4.5) + '@typescript-eslint/utils': 7.16.1(eslint@9.7.0)(typescript@5.4.5) debug: 4.3.5 - eslint: 9.6.0 + eslint: 9.7.0 ts-api-utils: 1.3.0(typescript@5.4.5) typescript: 5.4.5 transitivePeerDependencies: @@ -1977,8 +2022,8 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/types@7.16.0: - resolution: {integrity: sha512-fecuH15Y+TzlUutvUl9Cc2XJxqdLr7+93SQIbcZfd4XRGGKoxyljK27b+kxKamjRkU7FYC6RrbSCg0ALcZn/xw==} + /@typescript-eslint/types@7.16.1: + resolution: {integrity: sha512-AQn9XqCzUXd4bAVEsAXM/Izk11Wx2u4H3BAfQVhSfzfDOm/wAON9nP7J5rpkCxts7E5TELmN845xTUCQrD1xIQ==} engines: {node: ^18.18.0 || >=20.0.0} dev: true @@ -1996,15 +2041,15 @@ packages: debug: 4.3.5 globby: 11.1.0 is-glob: 4.0.3 - semver: 7.6.2 + semver: 7.6.3 tsutils: 3.21.0(typescript@5.4.5) typescript: 5.4.5 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/typescript-estree@7.16.0(typescript@5.4.5): - resolution: {integrity: sha512-a5NTvk51ZndFuOLCh5OaJBELYc2O3Zqxfl3Js78VFE1zE46J2AaVuW+rEbVkQznjkmlzWsUI15BG5tQMixzZLw==} + /@typescript-eslint/typescript-estree@7.16.1(typescript@5.4.5): + resolution: {integrity: sha512-0vFPk8tMjj6apaAZ1HlwM8w7jbghC8jc1aRNJG5vN8Ym5miyhTQGMqU++kuBFDNKe9NcPeZ6x0zfSzV8xC1UlQ==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: typescript: '*' @@ -2012,50 +2057,50 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 7.16.0 - '@typescript-eslint/visitor-keys': 7.16.0 + '@typescript-eslint/types': 7.16.1 + '@typescript-eslint/visitor-keys': 7.16.1 debug: 4.3.5 globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.5 - semver: 7.6.2 + semver: 7.6.3 ts-api-utils: 1.3.0(typescript@5.4.5) typescript: 5.4.5 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@5.62.0(eslint@9.6.0)(typescript@5.4.5): + /@typescript-eslint/utils@5.62.0(eslint@9.7.0)(typescript@5.4.5): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.6 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.4.5) - eslint: 9.6.0 + eslint: 9.7.0 eslint-scope: 5.1.1 - semver: 7.6.2 + semver: 7.6.3 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/utils@7.16.0(eslint@9.6.0)(typescript@5.4.5): - resolution: {integrity: sha512-PqP4kP3hb4r7Jav+NiRCntlVzhxBNWq6ZQ+zQwII1y/G/1gdIPeYDCKr2+dH6049yJQsWZiHU6RlwvIFBXXGNA==} + /@typescript-eslint/utils@7.16.1(eslint@9.7.0)(typescript@5.4.5): + resolution: {integrity: sha512-WrFM8nzCowV0he0RlkotGDujx78xudsxnGMBHI88l5J8wEhED6yBwaSLP99ygfrzAjsQvcYQ94quDwI0d7E1fA==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) - '@typescript-eslint/scope-manager': 7.16.0 - '@typescript-eslint/types': 7.16.0 - '@typescript-eslint/typescript-estree': 7.16.0(typescript@5.4.5) - eslint: 9.6.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.0) + '@typescript-eslint/scope-manager': 7.16.1 + '@typescript-eslint/types': 7.16.1 + '@typescript-eslint/typescript-estree': 7.16.1(typescript@5.4.5) + eslint: 9.7.0 transitivePeerDependencies: - supports-color - typescript @@ -2069,11 +2114,11 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@typescript-eslint/visitor-keys@7.16.0: - resolution: {integrity: sha512-rMo01uPy9C7XxG7AFsxa8zLnWXTF8N3PYclekWSrurvhwiw1eW88mrKiAYe6s53AUY57nTRz8dJsuuXdkAhzCg==} + /@typescript-eslint/visitor-keys@7.16.1: + resolution: {integrity: sha512-Qlzzx4sE4u3FsHTPQAAQFJFNOuqtuY0LFrZHwQ8IHK705XxBiWOFkfKRWu6niB7hwfgnwIpO4jTC75ozW1PHWg==} engines: {node: ^18.18.0 || >=20.0.0} dependencies: - '@typescript-eslint/types': 7.16.0 + '@typescript-eslint/types': 7.16.1 eslint-visitor-keys: 3.4.3 dev: true @@ -2501,18 +2546,18 @@ packages: balanced-match: 1.0.2 dev: true - /braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + /braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} dependencies: - fill-range: 7.0.1 + fill-range: 7.1.1 /browserslist@4.22.3: resolution: {integrity: sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001641 + caniuse-lite: 1.0.30001642 electron-to-chromium: 1.4.657 node-releases: 2.0.14 update-browserslist-db: 1.0.13(browserslist@4.22.3) @@ -2545,8 +2590,8 @@ packages: engines: {node: '>=6'} dev: true - /caniuse-lite@1.0.30001641: - resolution: {integrity: sha512-Phv5thgl67bHYo1TtMY/MurjkHhV4EDaCosezRXgZ8jzA/Ub+wjxAvbGvjoFENStinwi5kCyOYV3mi5tOGykwA==} + /caniuse-lite@1.0.30001642: + resolution: {integrity: sha512-3XQ0DoRgLijXJErLSl+bLnJ+Et4KqV1PY6JJBGAFlsNsz31zeAIncyeZfLCabHK/jtSh+671RM9YMldxjUPZtA==} /chai@4.4.1: resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} @@ -2734,7 +2779,7 @@ packages: cp-file: 10.0.0 globby: 13.2.2 junk: 4.0.1 - micromatch: 4.0.5 + micromatch: 4.0.7 nested-error-stacks: 2.1.1 p-filter: 3.0.0 p-map: 6.0.0 @@ -3195,22 +3240,22 @@ packages: engines: {node: '>=12'} dev: true - /eslint-compat-utils@0.1.2(eslint@9.6.0): + /eslint-compat-utils@0.1.2(eslint@9.7.0): resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==} engines: {node: '>=12'} peerDependencies: eslint: '>=6.0.0' dependencies: - eslint: 9.6.0 + eslint: 9.7.0 dev: true - /eslint-config-prettier@9.1.0(eslint@9.6.0): + /eslint-config-prettier@9.1.0(eslint@9.7.0): resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 9.6.0 + eslint: 9.7.0 dev: true /eslint-define-config@2.1.0: @@ -3228,7 +3273,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@7.16.0)(eslint-import-resolver-node@0.3.9)(eslint@9.6.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@7.16.1)(eslint-import-resolver-node@0.3.9)(eslint@9.7.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -3249,27 +3294,27 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 7.16.0(eslint@9.6.0)(typescript@5.4.5) + '@typescript-eslint/parser': 7.16.1(eslint@9.7.0)(typescript@5.4.5) debug: 3.2.7 - eslint: 9.6.0 + eslint: 9.7.0 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-es-x@7.5.0(eslint@9.6.0): + /eslint-plugin-es-x@7.5.0(eslint@9.7.0): resolution: {integrity: sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '>=8' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) - '@eslint-community/regexpp': 4.10.0 - eslint: 9.6.0 - eslint-compat-utils: 0.1.2(eslint@9.6.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.0) + '@eslint-community/regexpp': 4.11.0 + eslint: 9.7.0 + eslint-compat-utils: 0.1.2(eslint@9.7.0) dev: true - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.16.0)(eslint@9.6.0): + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.16.1)(eslint@9.7.0): resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} engines: {node: '>=4'} peerDependencies: @@ -3279,16 +3324,16 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 7.16.0(eslint@9.6.0)(typescript@5.4.5) + '@typescript-eslint/parser': 7.16.1(eslint@9.7.0)(typescript@5.4.5) array-includes: 3.1.8 array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 array.prototype.flatmap: 1.3.2 debug: 3.2.7 doctrine: 2.1.0 - eslint: 9.6.0 + eslint: 9.7.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.16.0)(eslint-import-resolver-node@0.3.9)(eslint@9.6.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.16.1)(eslint-import-resolver-node@0.3.9)(eslint@9.7.0) hasown: 2.0.2 is-core-module: 2.14.0 is-glob: 4.0.3 @@ -3304,7 +3349,7 @@ packages: - supports-color dev: true - /eslint-plugin-jsx-a11y@6.9.0(eslint@9.6.0): + /eslint-plugin-jsx-a11y@6.9.0(eslint@9.7.0): resolution: {integrity: sha512-nOFOCaJG2pYqORjK19lqPqxMO/JpvdCZdPtNdxY3kvom3jTvkAbOvQvD8wuD0G8BYR0IGAGYDlzqWJOh/ybn2g==} engines: {node: '>=4.0'} peerDependencies: @@ -3319,7 +3364,7 @@ packages: damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 es-iterator-helpers: 1.0.19 - eslint: 9.6.0 + eslint: 9.7.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 @@ -3329,16 +3374,16 @@ packages: string.prototype.includes: 2.0.0 dev: true - /eslint-plugin-n@17.9.0(eslint@9.6.0): + /eslint-plugin-n@17.9.0(eslint@9.7.0): resolution: {integrity: sha512-CPSaXDXdrT4nsrOrO4mT4VB6FMUkoySRkHWuuJJHVqsIEjIeZgMY1H7AzSwPbDScikBmLN82KeM1u7ixV7PzGg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: '>=8.23.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.0) enhanced-resolve: 5.17.0 - eslint: 9.6.0 - eslint-plugin-es-x: 7.5.0(eslint@9.6.0) + eslint: 9.7.0 + eslint-plugin-es-x: 7.5.0(eslint@9.7.0) get-tsconfig: 4.7.5 globals: 15.2.0 ignore: 5.3.1 @@ -3351,7 +3396,7 @@ packages: engines: {node: '>=5.0.0'} dev: true - /eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0)(eslint@9.6.0)(prettier@3.3.2): + /eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0)(eslint@9.7.0)(prettier@3.3.3): resolution: {integrity: sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -3365,24 +3410,24 @@ packages: eslint-config-prettier: optional: true dependencies: - eslint: 9.6.0 - eslint-config-prettier: 9.1.0(eslint@9.6.0) - prettier: 3.3.2 + eslint: 9.7.0 + eslint-config-prettier: 9.1.0(eslint@9.7.0) + prettier: 3.3.3 prettier-linter-helpers: 1.0.0 synckit: 0.8.8 dev: true - /eslint-plugin-react-hooks@4.6.2(eslint@9.6.0): + /eslint-plugin-react-hooks@4.6.2(eslint@9.7.0): resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: - eslint: 9.6.0 + eslint: 9.7.0 dev: true - /eslint-plugin-react@7.34.3(eslint@9.6.0): - resolution: {integrity: sha512-aoW4MV891jkUulwDApQbPYTVZmeuSyFrudpbTAQuj5Fv8VL+o6df2xIGpw8B0hPjAaih1/Fb0om9grCdyFYemA==} + /eslint-plugin-react@7.34.4(eslint@9.7.0): + resolution: {integrity: sha512-Np+jo9bUwJNxCsT12pXtrGhJgT3T44T1sHhn1Ssr42XFn8TES0267wPGo5nNrMHi8qkyimDAX2BUmkf9pSaVzA==} engines: {node: '>=4'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 @@ -3394,52 +3439,53 @@ packages: array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 es-iterator-helpers: 1.0.19 - eslint: 9.6.0 + eslint: 9.7.0 estraverse: 5.3.0 + hasown: 2.0.2 jsx-ast-utils: 3.3.5 minimatch: 3.1.2 object.entries: 1.1.8 object.fromentries: 2.0.8 - object.hasown: 1.1.4 object.values: 1.2.0 prop-types: 15.8.1 resolve: 2.0.0-next.5 semver: 6.3.1 string.prototype.matchall: 4.0.11 + string.prototype.repeat: 1.0.0 dev: true - /eslint-plugin-regexp@2.6.0(eslint@9.6.0): + /eslint-plugin-regexp@2.6.0(eslint@9.7.0): resolution: {integrity: sha512-FCL851+kislsTEQEMioAlpDuK5+E5vs0hi1bF8cFlPlHcEjeRhuAzEsGikXRreE+0j4WhW2uO54MqTjXtYOi3A==} engines: {node: ^18 || >=20} peerDependencies: eslint: '>=8.44.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.0) '@eslint-community/regexpp': 4.10.0 comment-parser: 1.4.1 - eslint: 9.6.0 + eslint: 9.7.0 jsdoc-type-pratt-parser: 4.0.0 refa: 0.12.1 regexp-ast-analysis: 0.7.1 scslre: 0.3.0 dev: true - /eslint-plugin-simple-import-sort@12.1.1(eslint@9.6.0): + /eslint-plugin-simple-import-sort@12.1.1(eslint@9.7.0): resolution: {integrity: sha512-6nuzu4xwQtE3332Uz0to+TxDQYRLTKRESSc2hefVT48Zc8JthmN23Gx9lnYhu0FtkRSL1oxny3kJ2aveVhmOVA==} peerDependencies: eslint: '>=5.0.0' dependencies: - eslint: 9.6.0 + eslint: 9.7.0 dev: true - /eslint-plugin-testing-library@6.2.2(eslint@9.6.0)(typescript@5.4.5): + /eslint-plugin-testing-library@6.2.2(eslint@9.7.0)(typescript@5.4.5): resolution: {integrity: sha512-1E94YOTUDnOjSLyvOwmbVDzQi/WkKm3WVrMXu6SmBr6DN95xTGZmI6HJ/eOkSXh/DlheRsxaPsJvZByDBhWLVQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0, npm: '>=6'} peerDependencies: eslint: ^7.5.0 || ^8.0.0 dependencies: - '@typescript-eslint/utils': 5.62.0(eslint@9.6.0)(typescript@5.4.5) - eslint: 9.6.0 + '@typescript-eslint/utils': 5.62.0(eslint@9.7.0)(typescript@5.4.5) + eslint: 9.7.0 transitivePeerDependencies: - supports-color - typescript @@ -3453,8 +3499,8 @@ packages: estraverse: 4.3.0 dev: true - /eslint-scope@8.0.1: - resolution: {integrity: sha512-pL8XjgP4ZOmmwfFE8mEhSxA7ZY4C+LWyqjQ3o4yWkkmD0qcMT9kkW3zWHOczhWcjTSgqycYAgwSlXvZltv65og==} + /eslint-scope@8.0.2: + resolution: {integrity: sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dependencies: esrecurse: 4.3.0 @@ -3471,16 +3517,16 @@ packages: engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dev: true - /eslint@9.6.0: - resolution: {integrity: sha512-ElQkdLMEEqQNM9Njff+2Y4q2afHk7JpkPvrd7Xh7xefwgQynqPxwf55J7di9+MEibWUGdNjFF9ITG9Pck5M84w==} + /eslint@9.7.0: + resolution: {integrity: sha512-FzJ9D/0nGiCGBf8UXO/IGLTgLVzIxze1zpfA8Ton2mjLovXdAPlYDv+MQDcqj3TmrhAGYfOpz9RfR+ent0AgAw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) - '@eslint-community/regexpp': 4.10.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.0) + '@eslint-community/regexpp': 4.11.0 '@eslint/config-array': 0.17.0 '@eslint/eslintrc': 3.1.0 - '@eslint/js': 9.6.0 + '@eslint/js': 9.7.0 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.3.0 '@nodelib/fs.walk': 1.2.8 @@ -3489,7 +3535,7 @@ packages: cross-spawn: 7.0.3 debug: 4.3.5 escape-string-regexp: 4.0.0 - eslint-scope: 8.0.1 + eslint-scope: 8.0.2 eslint-visitor-keys: 4.0.0 espree: 10.1.0 esquery: 1.5.0 @@ -3602,7 +3648,7 @@ packages: '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 - micromatch: 4.0.5 + micromatch: 4.0.7 dev: true /fast-json-stable-stringify@2.1.0: @@ -3626,8 +3672,8 @@ packages: flat-cache: 4.0.1 dev: true - /fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + /fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} dependencies: to-regex-range: 5.0.1 @@ -4227,7 +4273,7 @@ packages: engines: {node: '>=10'} dependencies: '@jridgewell/trace-mapping': 0.3.25 - debug: 4.3.5 + debug: 4.3.4 istanbul-lib-coverage: 3.2.2 transitivePeerDependencies: - supports-color @@ -4294,7 +4340,7 @@ packages: '@types/stack-utils': 2.0.3 chalk: 4.1.2 graceful-fs: 4.2.11 - micromatch: 4.0.5 + micromatch: 4.0.7 pretty-format: 29.7.0 slash: 3.0.0 stack-utils: 2.0.6 @@ -4544,7 +4590,7 @@ packages: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} dependencies: - semver: 7.6.2 + semver: 7.6.3 dev: true /meow@12.1.1: @@ -4564,7 +4610,15 @@ packages: resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} engines: {node: '>=8.6'} dependencies: - braces: 3.0.2 + braces: 3.0.3 + picomatch: 2.3.1 + dev: true + + /micromatch@4.0.7: + resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.3 picomatch: 2.3.1 /mime-db@1.52.0: @@ -4710,7 +4764,7 @@ packages: '@next/env': 14.2.4 '@swc/helpers': 0.5.5 busboy: 1.6.0 - caniuse-lite: 1.0.30001641 + caniuse-lite: 1.0.30001642 graceful-fs: 4.2.11 postcss: 8.4.31 react: 18.3.1 @@ -4814,15 +4868,6 @@ packages: es-errors: 1.3.0 dev: true - /object.hasown@1.1.4: - resolution: {integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==} - engines: {node: '>= 0.4'} - dependencies: - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-object-atoms: 1.0.0 - dev: true - /object.values@1.2.0: resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} engines: {node: '>= 0.4'} @@ -5051,8 +5096,8 @@ packages: fast-diff: 1.3.0 dev: true - /prettier@3.3.2: - resolution: {integrity: sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==} + /prettier@3.3.3: + resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} engines: {node: '>=14'} hasBin: true dev: true @@ -5425,6 +5470,12 @@ packages: hasBin: true dev: true + /semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + engines: {node: '>=10'} + hasBin: true + dev: true + /set-function-length@1.2.2: resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} engines: {node: '>= 0.4'} @@ -5578,6 +5629,13 @@ packages: side-channel: 1.0.6 dev: true + /string.prototype.repeat@1.0.0: + resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} + dependencies: + define-properties: 1.2.1 + es-abstract: 1.23.3 + dev: true + /string.prototype.trim@1.2.9: resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} engines: {node: '>= 0.4'} @@ -5797,10 +5855,6 @@ packages: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true - /tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - dev: true - /tslib@2.6.3: resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} @@ -6264,7 +6318,7 @@ packages: dependencies: '@volar/typescript': 1.11.1 '@vue/language-core': 1.8.27(typescript@5.4.5) - semver: 7.6.2 + semver: 7.6.3 typescript: 5.4.5 dev: true From 02b00e075aeb8a291e1fc72b28ffe4eab1787db4 Mon Sep 17 00:00:00 2001 From: Jason Finch Date: Wed, 17 Jul 2024 10:41:56 +1000 Subject: [PATCH 314/440] fix(eslint): Fix ESLint to run prettier --- eslint.config.mjs | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/eslint.config.mjs b/eslint.config.mjs index e86569eb0..990582939 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -6,7 +6,7 @@ import { FlatCompat } from "@eslint/eslintrc"; import js from "@eslint/js"; import typescriptEslint from "@typescript-eslint/eslint-plugin"; import tsParser from "@typescript-eslint/parser"; -import prettier from "eslint-plugin-prettier"; +import prettier from "eslint-plugin-prettier/recommended"; import react from "eslint-plugin-react"; import simpleImportSort from "eslint-plugin-simple-import-sort"; //import testingLibrary from "eslint-plugin-testing-library"; @@ -38,7 +38,6 @@ export default [{ "**/.changeset", "**/vite.config.js", "**/webpack-runtime.js", - "**/.prettierrc.cjs", ], }, ...fixupConfigRules(compat.extends( "plugin:react/recommended", @@ -48,16 +47,13 @@ export default [{ "plugin:@typescript-eslint/recommended", "plugin:import/typescript", "plugin:jsx-a11y/recommended", - "prettier", )), { plugins: { "@typescript-eslint": fixupPluginRules(typescriptEslint), "simple-import-sort": simpleImportSort, //"testing-library": testingLibrary, //Not compatible with ESLint9 yet https://github.com/jsx-eslint/eslint-plugin-react/issues/3699 react: fixupPluginRules(react), - prettier, }, - languageOptions: { parser: tsParser, ecmaVersion: 2022, @@ -179,6 +175,7 @@ export default [{ }], }, }, +prettier, //Not compatible with ESLint9 yet https://github.com/jsx-eslint/eslint-plugin-react/issues/3699 // ...compat.extends("plugin:testing-library/react").map(config => ({ // ...config, From e4f4d9774acb94f968b566b69cb8f11581a76830 Mon Sep 17 00:00:00 2001 From: Alex Werman Date: Thu, 18 Jul 2024 11:34:32 +0200 Subject: [PATCH 315/440] chore: apply prettier in repo --- .prettierrc.cjs | 14 +- CHANGELOG.md | 234 ++--- CONTRIBUTING.md | 5 +- FAQ.md | 31 +- MIGRATION_GUIDE_V3_TO_V4.md | 35 +- MIGRATION_GUIDE_V3_TO_V5.md | 36 +- MIGRATION_GUIDE_V6_TO_V7.md | 14 +- README.md | 13 +- SECURITY.md | 2 +- eslint.config.mjs | 360 +++---- examples/nextjs-demo/README.md | 58 +- examples/nextjs-demo/components/layout.js | 47 +- examples/nextjs-demo/pages/_app.js | 2 +- examples/nextjs-demo/pages/index.js | 169 ++-- .../nextjs-demo/public/OidcTrustedDomains.js | 23 +- examples/oidc-client-demo/index.html | 7 +- .../public/OidcTrustedDomains.js | 29 +- .../public/staticwebapp.config.json | 28 +- examples/oidc-client-demo/src/index.tsx | 213 ++-- examples/oidc-client-demo/tsconfig.json | 10 +- examples/oidc-client-demo/vite.config.js | 2 +- examples/react-oidc-demo/README.md | 185 ++-- examples/react-oidc-demo/index.html | 7 +- examples/react-oidc-demo/package.json | 2 +- .../public/OidcTrustedDomains.js | 43 +- examples/react-oidc-demo/public/package.json | 2 +- .../public/staticwebapp.config.json | 28 +- .../public/tsconfig.eslint.json | 2 +- .../react-oidc-demo/public/vite.config.js | 15 +- examples/react-oidc-demo/src/App.spec.tsx | 162 ++- examples/react-oidc-demo/src/App.tsx | 152 +-- examples/react-oidc-demo/src/FetchUser.tsx | 83 +- examples/react-oidc-demo/src/Home.tsx | 121 ++- examples/react-oidc-demo/src/MultiAuth.tsx | 412 ++++---- examples/react-oidc-demo/src/Profile.tsx | 156 +-- .../react-oidc-demo/src/configurations.ts | 154 +-- examples/react-oidc-demo/src/index.css | 8 +- examples/react-oidc-demo/src/index.tsx | 6 +- .../override/AuthenticateError.component.tsx | 12 +- .../src/override/Authenticating.component.tsx | 8 +- .../src/override/Callback.component.tsx | 19 +- .../src/override/Loading.component.tsx | 4 +- .../ServiceWorkerNotSupported.component.tsx | 11 +- .../src/override/SessionLost.component.tsx | 38 +- examples/react-oidc-demo/src/utils/sleep.ts | 4 +- examples/react-oidc-demo/src/utils/timer.ts | 284 +++--- examples/react-oidc-demo/tsconfig.eslint.json | 2 +- examples/react-oidc-demo/tsconfig.json | 6 +- package.json | 2 +- .../src/OidcServiceWorker.ts | 950 +++++++++--------- .../src/OidcTrustedDomains.js | 30 +- .../src/__tests__/oidcConfig.spec.ts | 4 +- .../oidc-client-service-worker/src/crypto.ts | 14 +- .../oidc-client-service-worker/src/dpop.ts | 51 +- .../oidc-client-service-worker/src/jwt.ts | 287 +++--- .../src/oidcConfig.ts | 18 +- .../oidc-client-service-worker/src/types.ts | 208 ++-- .../src/utils/__tests__/codeVerifier.spec.ts | 51 +- .../src/utils/__tests__/domains.spec.ts | 262 ++--- .../src/utils/__tests__/normalizeUrl.spec.ts | 42 +- .../utils/__tests__/serializeHeaders.spec.ts | 4 +- .../src/utils/__tests__/testHelper.ts | 34 +- .../src/utils/__tests__/tokens.spec.ts | 118 ++- .../src/utils/codeVerifier.ts | 22 +- .../src/utils/domains.ts | 148 +-- .../src/utils/normalizeUrl.ts | 13 +- .../src/utils/sleep.ts | 2 +- .../src/utils/tokens.ts | 127 +-- .../tsconfig.eslint.json | 2 +- .../oidc-client-service-worker/vite.config.js | 11 +- packages/oidc-client/README.md | 70 +- .../bin/copy-service-worker-files.mjs | 35 +- .../oidc-client/public/OidcTrustedDomains.js | 26 +- packages/oidc-client/src/cache.ts | 39 +- packages/oidc-client/src/checkSession.ts | 142 ++- .../oidc-client/src/checkSessionIFrame.ts | 139 +-- packages/oidc-client/src/crypto.ts | 52 +- packages/oidc-client/src/events.ts | 56 +- packages/oidc-client/src/fetch.ts | 50 +- packages/oidc-client/src/index.ts | 12 +- packages/oidc-client/src/iniWorker.spec.ts | 42 +- packages/oidc-client/src/initSession.ts | 228 ++--- packages/oidc-client/src/initWorker.ts | 509 ++++++---- packages/oidc-client/src/initWorkerOption.ts | 235 ++--- packages/oidc-client/src/jwt.ts | 281 +++--- packages/oidc-client/src/keepSession.ts | 181 ++-- packages/oidc-client/src/location.ts | 50 +- packages/oidc-client/src/login.ts | 435 ++++---- packages/oidc-client/src/logout.spec.ts | 207 ++-- packages/oidc-client/src/logout.ts | 231 +++-- packages/oidc-client/src/oidc.ts | 763 +++++++------- packages/oidc-client/src/oidcClient.ts | 234 +++-- packages/oidc-client/src/parseTokens.spec.ts | 374 +++---- packages/oidc-client/src/parseTokens.ts | 407 ++++---- packages/oidc-client/src/renewTokens.ts | 680 +++++++------ packages/oidc-client/src/requests.spec.ts | 12 +- packages/oidc-client/src/requests.ts | 256 ++--- packages/oidc-client/src/route-utils.spec.ts | 36 +- packages/oidc-client/src/route-utils.ts | 55 +- packages/oidc-client/src/silentLogin.ts | 272 ++--- packages/oidc-client/src/timer.ts | 21 +- packages/oidc-client/src/types.ts | 102 +- packages/oidc-client/src/user.ts | 29 +- packages/oidc-client/tests/setup.js | 13 +- packages/oidc-client/tsconfig.eslint.json | 2 +- packages/oidc-client/tsconfig.json | 9 +- packages/oidc-client/vite.config.ts | 2 - packages/react-oidc/README.md | 201 ++-- .../bin/copy-service-worker-files.mjs | 35 +- .../react-oidc/public/OidcTrustedDomains.js | 23 +- packages/react-oidc/src/FetchToken.tsx | 49 +- packages/react-oidc/src/OidcProvider.tsx | 398 ++++---- packages/react-oidc/src/OidcSecure.tsx | 57 +- packages/react-oidc/src/ReactOidc.tsx | 321 +++--- packages/react-oidc/src/User.ts | 110 +- .../Authenticating.component.tsx | 2 +- .../default-component/Callback.component.tsx | 29 +- .../default-component/Loading.component.tsx | 6 +- .../ServiceWorkerNotSupported.component.tsx | 7 +- .../SessionLost.component.tsx | 2 +- .../SilentCallback.component.tsx | 25 +- .../SilentLogin.component.tsx | 36 +- .../src/core/routes/OidcRoutes.spec.tsx | 4 +- .../react-oidc/src/core/routes/OidcRoutes.tsx | 16 +- .../src/core/routes/withRouter.spec.tsx | 11 +- .../react-oidc/src/core/routes/withRouter.tsx | 40 +- packages/react-oidc/src/index.ts | 12 +- packages/react-oidc/tests/setup.js | 4 +- packages/react-oidc/tsconfig.eslint.json | 2 +- packages/react-oidc/tsconfig.json | 13 +- packages/react-oidc/vite.config.ts | 5 +- 131 files changed, 7213 insertions(+), 6140 deletions(-) diff --git a/.prettierrc.cjs b/.prettierrc.cjs index dbb27c237..6fb26d080 100644 --- a/.prettierrc.cjs +++ b/.prettierrc.cjs @@ -1,12 +1,14 @@ module.exports = { printWidth: 100, - semi: true, - singleQuote: true, - jsxSingleQuote: true, tabWidth: 2, - trailingComma: 'es5', - useTabs: true, - plugins: [], + trailingComma: 'all', + arrowParens: 'avoid', + endOfLine: 'auto', + bracketSameLine: false, + bracketSpacing: true, + singleQuote: true, + useTabs: false, + semi: true, overrides: [ { files: ['.*', '*.json', '*.md', '*.toml', '*.yml'], diff --git a/CHANGELOG.md b/CHANGELOG.md index b887dbf34..d1fd352e0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,323 +2,261 @@ ## 7.22.18 -- [5ee0cc8](https://github.com/AxaFrance/oidc-client/commit/5ee0cc8f6d823056da221ad081c3821ba9fac343) - fix(oidc): separate state, nonce and codeVerifier for each tab (release) (#1402), 2024-07-16 by *Miya* - +- [5ee0cc8](https://github.com/AxaFrance/oidc-client/commit/5ee0cc8f6d823056da221ad081c3821ba9fac343) - fix(oidc): separate state, nonce and codeVerifier for each tab (release) (#1402), 2024-07-16 by _Miya_ ## v7.22.17 -- [b099078](https://github.com/AxaFrance/oidc-client/commit/b099078f9d4b61dffd03034f511a4f32e80977a8) - fix(oidc): clenup client internal promises when requests are finished (release) (#1417), 2024-07-15 by *wermanoid* -- [01f0714](https://github.com/AxaFrance/oidc-client/commit/01f0714241e6442e6b58fcba8b86804ed75cec09) - tests(domain): Be more explicit about intent of test, is to not throw, not return undefined. (#1413), 2024-07-15 by *Jason Finch* -- [b94fa5c](https://github.com/AxaFrance/oidc-client/commit/b94fa5ca90bd366c4f59a870c428f42872bfacaa) - docs: Minor language change. (#1412), 2024-07-15 by *Jason Finch* -- [7caee91](https://github.com/AxaFrance/oidc-client/commit/7caee919b4854526dad83203216965746baecabe) - build(job): Update job scripts to v4. (earlier versions are marked deprecated) (#1411), 2024-07-15 by *Jason Finch* -- [a46b1aa](https://github.com/AxaFrance/oidc-client/commit/a46b1aabe19db70beac342c557ae2c986d16eae7) - fix (FetchToken): Fix FetchToken param to be boolean (#1414), 2024-07-15 by *Jason Finch* -- [a989ed2](https://github.com/AxaFrance/oidc-client/commit/a989ed29f46b66483bc2c7c51e73bcc19b2c9736) - build(lint): Update lint step to run. (#1409), 2024-07-13 by *Jason Finch* - +- [b099078](https://github.com/AxaFrance/oidc-client/commit/b099078f9d4b61dffd03034f511a4f32e80977a8) - fix(oidc): clenup client internal promises when requests are finished (release) (#1417), 2024-07-15 by _wermanoid_ +- [01f0714](https://github.com/AxaFrance/oidc-client/commit/01f0714241e6442e6b58fcba8b86804ed75cec09) - tests(domain): Be more explicit about intent of test, is to not throw, not return undefined. (#1413), 2024-07-15 by _Jason Finch_ +- [b94fa5c](https://github.com/AxaFrance/oidc-client/commit/b94fa5ca90bd366c4f59a870c428f42872bfacaa) - docs: Minor language change. (#1412), 2024-07-15 by _Jason Finch_ +- [7caee91](https://github.com/AxaFrance/oidc-client/commit/7caee919b4854526dad83203216965746baecabe) - build(job): Update job scripts to v4. (earlier versions are marked deprecated) (#1411), 2024-07-15 by _Jason Finch_ +- [a46b1aa](https://github.com/AxaFrance/oidc-client/commit/a46b1aabe19db70beac342c557ae2c986d16eae7) - fix (FetchToken): Fix FetchToken param to be boolean (#1414), 2024-07-15 by _Jason Finch_ +- [a989ed2](https://github.com/AxaFrance/oidc-client/commit/a989ed29f46b66483bc2c7c51e73bcc19b2c9736) - build(lint): Update lint step to run. (#1409), 2024-07-13 by _Jason Finch_ ## v7.22.16 -- [72a6373](https://github.com/AxaFrance/oidc-client/commit/72a6373402a53aaaf01ad7fac22f8ad8c6feaff0) - fix(oidc): improve error handling (release) (#1403), 2024-07-11 by *Miya* -- [c56ceb8](https://github.com/AxaFrance/oidc-client/commit/c56ceb815b28dd5990fe4a1679a61bcebc7e525a) - docs(readme): Update README.md (#1407), 2024-07-12 by *Jason Finch* - +- [72a6373](https://github.com/AxaFrance/oidc-client/commit/72a6373402a53aaaf01ad7fac22f8ad8c6feaff0) - fix(oidc): improve error handling (release) (#1403), 2024-07-11 by _Miya_ +- [c56ceb8](https://github.com/AxaFrance/oidc-client/commit/c56ceb815b28dd5990fe4a1679a61bcebc7e525a) - docs(readme): Update README.md (#1407), 2024-07-12 by _Jason Finch_ ## v7.22.15 -- [73eae7e](https://github.com/AxaFrance/oidc-client/commit/73eae7e9d68dea6ebec0ed82ba7873941c0e371e) - refactor(oidcServiceWorker): Extract GetCurrentDatabaseTokenEndpoint, add tests. (#1405) (release), 2024-07-11 by *Jason Finch* -- [e51aef2](https://github.com/AxaFrance/oidc-client/commit/e51aef268e783259c035e3ba58bf9aa16a111bea) - fix (Style): fix 'container' classname in demo. (#1401), 2024-07-11 by *Jason Finch* - +- [73eae7e](https://github.com/AxaFrance/oidc-client/commit/73eae7e9d68dea6ebec0ed82ba7873941c0e371e) - refactor(oidcServiceWorker): Extract GetCurrentDatabaseTokenEndpoint, add tests. (#1405) (release), 2024-07-11 by _Jason Finch_ +- [e51aef2](https://github.com/AxaFrance/oidc-client/commit/e51aef268e783259c035e3ba58bf9aa16a111bea) - fix (Style): fix 'container' classname in demo. (#1401), 2024-07-11 by _Jason Finch_ ## v7.22.14 -- [25c55ee](https://github.com/AxaFrance/oidc-client/commit/25c55eeb7682356c13987a91d7b8645cca1b0ad5) - refactor(oidc): null coalescing (#1404) (release), 2024-07-11 by *Jason Finch* - +- [25c55ee](https://github.com/AxaFrance/oidc-client/commit/25c55eeb7682356c13987a91d7b8645cca1b0ad5) - refactor(oidc): null coalescing (#1404) (release), 2024-07-11 by _Jason Finch_ ## v7.22.13 -- [95c814d](https://github.com/AxaFrance/oidc-client/commit/95c814dd9dd325a3a00c3a0dc049d301d983514e) - fix(ci): setup pnpm (release) (#1399), 2024-07-05 by *Guillaume Chervet* - +- [95c814d](https://github.com/AxaFrance/oidc-client/commit/95c814dd9dd325a3a00c3a0dc049d301d983514e) - fix(ci): setup pnpm (release) (#1399), 2024-07-05 by _Guillaume Chervet_ ## v7.22.12 - - ## v7.22.11 - - ## v7.22.10 -- [6c80c5c](https://github.com/AxaFrance/oidc-client/commit/6c80c5cc77750aead50e62136a6594b05f21b42b) - fix(oidc): logout trigger login (release) (#1394), 2024-07-04 by *Guillaume Chervet* - +- [6c80c5c](https://github.com/AxaFrance/oidc-client/commit/6c80c5cc77750aead50e62136a6594b05f21b42b) - fix(oidc): logout trigger login (release) (#1394), 2024-07-04 by _Guillaume Chervet_ ## v7.22.9 -- [77eb9e1](https://github.com/AxaFrance/oidc-client/commit/77eb9e1841814cfeb6c6672159740dad4c0a9d4d) - fix(oidc): MessageChannel is not closed after message is received (release) (#1396), 2024-07-02 by *radk0s* - +- [77eb9e1](https://github.com/AxaFrance/oidc-client/commit/77eb9e1841814cfeb6c6672159740dad4c0a9d4d) - fix(oidc): MessageChannel is not closed after message is received (release) (#1396), 2024-07-02 by _radk0s_ ## v7.22.8 -- [c4cf94b](https://github.com/AxaFrance/oidc-client/commit/c4cf94b62a7b2c45cf0f94438a02f0cb5f06b9b0) - fix(oidc): remove dynamic web worker blocked by policies (release) (#1386), 2024-06-18 by *Guillaume Chervet* - +- [c4cf94b](https://github.com/AxaFrance/oidc-client/commit/c4cf94b62a7b2c45cf0f94438a02f0cb5f06b9b0) - fix(oidc): remove dynamic web worker blocked by policies (release) (#1386), 2024-06-18 by _Guillaume Chervet_ ## v7.22.7 -- [9f4cbf4](https://github.com/AxaFrance/oidc-client/commit/9f4cbf414e1b41f448b2a36d759a035786d26668) - fix(oidc): 2 readmes with the same name (release) (#1377), 2024-06-07 by *meesvandongen* -- [0bfabd4](https://github.com/AxaFrance/oidc-client/commit/0bfabd41d67cad57415905b7ce729ee4fe85c8b4) - fix(oidc): session lost to quickly (alpha) (#1381), 2024-06-07 by *Guillaume Chervet* - +- [9f4cbf4](https://github.com/AxaFrance/oidc-client/commit/9f4cbf414e1b41f448b2a36d759a035786d26668) - fix(oidc): 2 readmes with the same name (release) (#1377), 2024-06-07 by _meesvandongen_ +- [0bfabd4](https://github.com/AxaFrance/oidc-client/commit/0bfabd41d67cad57415905b7ce729ee4fe85c8b4) - fix(oidc): session lost to quickly (alpha) (#1381), 2024-06-07 by _Guillaume Chervet_ ## v7.22.6 -- [bcba15b](https://github.com/AxaFrance/oidc-client/commit/bcba15b412063d139c0902de117b0516150c13a2) - fix(react-oidc): compatibility with react 19 (release) (#1372), 2024-05-22 by *Guillaume Chervet* -- [c49a857](https://github.com/AxaFrance/oidc-client/commit/c49a8572702c485c9a089b0f9aa11eb4bc6e7f1d) - refactor(test): add missing logout test case, 2024-05-22 by *Guillaume Chervet* - +- [bcba15b](https://github.com/AxaFrance/oidc-client/commit/bcba15b412063d139c0902de117b0516150c13a2) - fix(react-oidc): compatibility with react 19 (release) (#1372), 2024-05-22 by _Guillaume Chervet_ +- [c49a857](https://github.com/AxaFrance/oidc-client/commit/c49a8572702c485c9a089b0f9aa11eb4bc6e7f1d) - refactor(test): add missing logout test case, 2024-05-22 by _Guillaume Chervet_ ## v7.22.5 -- [8d9fd95](https://github.com/AxaFrance/oidc-client/commit/8d9fd9550a74a771936f0e686eb31fe271cd912b) - fix(oidc): user loaded 401 when preload true and not serviceworder mode (release), 2024-05-19 by *Guillaume Chervet* -- [d764b2b](https://github.com/AxaFrance/oidc-client/commit/d764b2bd7319711c49a393c1fd3496d054661065) - refatcor(all): update librairies, 2024-05-18 by *Guillaume Chervet* - +- [8d9fd95](https://github.com/AxaFrance/oidc-client/commit/8d9fd9550a74a771936f0e686eb31fe271cd912b) - fix(oidc): user loaded 401 when preload true and not serviceworder mode (release), 2024-05-19 by _Guillaume Chervet_ +- [d764b2b](https://github.com/AxaFrance/oidc-client/commit/d764b2bd7319711c49a393c1fd3496d054661065) - refatcor(all): update librairies, 2024-05-18 by _Guillaume Chervet_ ## v7.22.4 -- [64c76e0](https://github.com/AxaFrance/oidc-client/commit/64c76e0b1f4fccf1c0ed93269a0307212be9d661) - feature(oidc):preload user (release) (#1352), 2024-04-23 by *Guillaume Chervet* - +- [64c76e0](https://github.com/AxaFrance/oidc-client/commit/64c76e0b1f4fccf1c0ed93269a0307212be9d661) - feature(oidc):preload user (release) (#1352), 2024-04-23 by _Guillaume Chervet_ ## v7.22.3 -- [5af8075](https://github.com/AxaFrance/oidc-client/commit/5af807548e35c64da74fc3547e35c8ec512399ba) - fix(all): types import in index.ts for all typescript (release), 2024-04-18 by *Guillaume Chervet* - +- [5af8075](https://github.com/AxaFrance/oidc-client/commit/5af807548e35c64da74fc3547e35c8ec512399ba) - fix(all): types import in index.ts for all typescript (release), 2024-04-18 by _Guillaume Chervet_ ## v7.22.2 -- [b17217d](https://github.com/AxaFrance/oidc-client/commit/b17217d6b829dee3b28f444fda099fce9c94bc41) - fix(react-oidc): unused var in User.txs (release), 2024-04-16 by *Guillaume Chervet* - +- [b17217d](https://github.com/AxaFrance/oidc-client/commit/b17217d6b829dee3b28f444fda099fce9c94bc41) - fix(react-oidc): unused var in User.txs (release), 2024-04-16 by _Guillaume Chervet_ ## v7.22.1 -- [be24658](https://github.com/AxaFrance/oidc-client/commit/be2465852e837b749abd3a86c5c0caa57a2ea8b6) - refactor(all): update libs (release), 2024-04-15 by *Guillaume Chervet* - +- [be24658](https://github.com/AxaFrance/oidc-client/commit/be2465852e837b749abd3a86c5c0caa57a2ea8b6) - refactor(all): update libs (release), 2024-04-15 by _Guillaume Chervet_ ## v7.22.0 -- [032a00b](https://github.com/AxaFrance/oidc-client/commit/032a00b501557fe6b5be48e83e4914051ee2c7f0) - feat(oidc): control dpop injection (release) (#1342), 2024-04-10 by *Guillaume Chervet* - +- [032a00b](https://github.com/AxaFrance/oidc-client/commit/032a00b501557fe6b5be48e83e4914051ee2c7f0) - feat(oidc): control dpop injection (release) (#1342), 2024-04-10 by _Guillaume Chervet_ ## v7.21.0 -- [8335b5a](https://github.com/AxaFrance/oidc-client/commit/8335b5a6f5c02d320d642a022ff3828513f5a43e) - feat(dpop): add extras (alpha) (#1325) (release), 2024-03-28 by *Guillaume Chervet* - +- [8335b5a](https://github.com/AxaFrance/oidc-client/commit/8335b5a6f5c02d320d642a022ff3828513f5a43e) - feat(dpop): add extras (alpha) (#1325) (release), 2024-03-28 by _Guillaume Chervet_ ## v7.20.1 -- [9a3ad3a](https://github.com/AxaFrance/oidc-client/commit/9a3ad3a474a66cc77fa2c3eb3eafa42f167f1e45) - feature(oidc): token renew only when required (release) (#1327), 2024-03-24 by *Guillaume Chervet* - +- [9a3ad3a](https://github.com/AxaFrance/oidc-client/commit/9a3ad3a474a66cc77fa2c3eb3eafa42f167f1e45) - feature(oidc): token renew only when required (release) (#1327), 2024-03-24 by _Guillaume Chervet_ ## v7.20.0 -- [44d15be](https://github.com/AxaFrance/oidc-client/commit/44d15be1c4d8f5069f15ddc5351e546fc5eb7730) - fix(oidc): userInfo 401 on first login (release), 2024-03-22 by *Guillaume Chervet* -- [c7793c9](https://github.com/AxaFrance/oidc-client/commit/c7793c9913128dbb82a60dff11261ca5b4749f0c) - feat(oidc-client): add dpop extras to claims (alpha), 2024-03-19 by *Guillaume Chervet* - +- [44d15be](https://github.com/AxaFrance/oidc-client/commit/44d15be1c4d8f5069f15ddc5351e546fc5eb7730) - fix(oidc): userInfo 401 on first login (release), 2024-03-22 by _Guillaume Chervet_ +- [c7793c9](https://github.com/AxaFrance/oidc-client/commit/c7793c9913128dbb82a60dff11261ca5b4749f0c) - feat(oidc-client): add dpop extras to claims (alpha), 2024-03-19 by _Guillaume Chervet_ ## v7.19.6 -- [b7568f8](https://github.com/AxaFrance/oidc-client/commit/b7568f8d73d21ba1b7cd4890bff2ad30941696e2) - fix(oidc-service-worker): normalize userinfo endpoint in service worker (#1320) (release), 2024-03-13 by *meesvandongen* - +- [b7568f8](https://github.com/AxaFrance/oidc-client/commit/b7568f8d73d21ba1b7cd4890bff2ad30941696e2) - fix(oidc-service-worker): normalize userinfo endpoint in service worker (#1320) (release), 2024-03-13 by _meesvandongen_ ## v7.19.5 -- [be24bba](https://github.com/AxaFrance/oidc-client/commit/be24bbab3d699ff003cb14302dedc3463b1f3a1b) - refactor(all): update build libraries (release), 2024-03-12 by *Guillaume Chervet* - +- [be24bba](https://github.com/AxaFrance/oidc-client/commit/be24bbab3d699ff003cb14302dedc3463b1f3a1b) - refactor(all): update build libraries (release), 2024-03-12 by _Guillaume Chervet_ ## v7.19.4 -- [7df257c](https://github.com/AxaFrance/oidc-client/commit/7df257ca7ba32a2605cd5d76881ea3aa50aba208) - refactor(all): update build libraries (release), 2024-03-12 by *Guillaume Chervet* - +- [7df257c](https://github.com/AxaFrance/oidc-client/commit/7df257ca7ba32a2605cd5d76881ea3aa50aba208) - refactor(all): update build libraries (release), 2024-03-12 by _Guillaume Chervet_ ## v7.19.3 -- [397629d](https://github.com/AxaFrance/oidc-client/commit/397629d2c9e1d58efab96c000247382cfc94ce24) - build(npm): bump vite from 5.0.12 to 5.1.5 (#1319), 2024-03-07 by *dependabot[bot]* - +- [397629d](https://github.com/AxaFrance/oidc-client/commit/397629d2c9e1d58efab96c000247382cfc94ce24) - build(npm): bump vite from 5.0.12 to 5.1.5 (#1319), 2024-03-07 by _dependabot[bot]_ ## v7.19.2 -- [95be8f7](https://github.com/AxaFrance/oidc-client/commit/95be8f79a3fc399b05322d0197ab674cf272326a) - build(npm): bump vitest from 1.2.2 to 1.3.1 (#1315), 2024-03-07 by *dependabot[bot]* - +- [95be8f7](https://github.com/AxaFrance/oidc-client/commit/95be8f79a3fc399b05322d0197ab674cf272326a) - build(npm): bump vitest from 1.2.2 to 1.3.1 (#1315), 2024-03-07 by _dependabot[bot]_ ## v7.19.1 -- [7b2b21a](https://github.com/AxaFrance/oidc-client/commit/7b2b21a9837210d0caaea9e16cfea9e9daeb8364) - build(npm): bump rimraf from 5.0.1 to 5.0.5 (#1313) (release), 2024-03-04 by *dependabot[bot]* -- [d4c9ec6](https://github.com/AxaFrance/oidc-client/commit/d4c9ec6b8a4760c81f4d88bc72563cc810b52b00) - fix(oidc): when having multiple iframes, only the last one gets resolved (#1311) (alpha), 2024-02-28 by *Jean-Marc Rakotoarisoa* -- [db13d8b](https://github.com/AxaFrance/oidc-client/commit/db13d8bdfbd49e564452461aeefc6e3024ce4435) - doc(oidc-client-demo): fix workflow, 2024-02-23 by *Guillaume Chervet* -- [322c1f1](https://github.com/AxaFrance/oidc-client/commit/322c1f1fbd3563b27b01a6ca98c8d95eeef12038) - doc(oidc-client-demo): update content and CSP, 2024-02-23 by *Guillaume Chervet* -- [cf92792](https://github.com/AxaFrance/oidc-client/commit/cf92792db7ede5f35c3e2883f4353376e73ff7e3) - doc(oidc-client-demo): repair demo, 2024-02-23 by *Guillaume Chervet* -- [fa33e72](https://github.com/AxaFrance/oidc-client/commit/fa33e7250cd5d46c98940c999b8f701116f78446) - doc(oidc-client): update vanilla to add Hack game, 2024-02-23 by *Guillaume Chervet* - +- [7b2b21a](https://github.com/AxaFrance/oidc-client/commit/7b2b21a9837210d0caaea9e16cfea9e9daeb8364) - build(npm): bump rimraf from 5.0.1 to 5.0.5 (#1313) (release), 2024-03-04 by _dependabot[bot]_ +- [d4c9ec6](https://github.com/AxaFrance/oidc-client/commit/d4c9ec6b8a4760c81f4d88bc72563cc810b52b00) - fix(oidc): when having multiple iframes, only the last one gets resolved (#1311) (alpha), 2024-02-28 by _Jean-Marc Rakotoarisoa_ +- [db13d8b](https://github.com/AxaFrance/oidc-client/commit/db13d8bdfbd49e564452461aeefc6e3024ce4435) - doc(oidc-client-demo): fix workflow, 2024-02-23 by _Guillaume Chervet_ +- [322c1f1](https://github.com/AxaFrance/oidc-client/commit/322c1f1fbd3563b27b01a6ca98c8d95eeef12038) - doc(oidc-client-demo): update content and CSP, 2024-02-23 by _Guillaume Chervet_ +- [cf92792](https://github.com/AxaFrance/oidc-client/commit/cf92792db7ede5f35c3e2883f4353376e73ff7e3) - doc(oidc-client-demo): repair demo, 2024-02-23 by _Guillaume Chervet_ +- [fa33e72](https://github.com/AxaFrance/oidc-client/commit/fa33e7250cd5d46c98940c999b8f701116f78446) - doc(oidc-client): update vanilla to add Hack game, 2024-02-23 by _Guillaume Chervet_ ## v7.19.0 -- [8f3940c](https://github.com/AxaFrance/oidc-client/commit/8f3940c42ad62264abfd61690777b602e0bdc31a) - feat(oidc): dpop inside serviceworker (#1306) (release), 2024-02-22 by *Guillaume Chervet* -- [4a5887f](https://github.com/AxaFrance/oidc-client/commit/4a5887f5e7b3d739d709c7bb4fb7a007ccb051a1) - fix(oidc-service-worker): remove sw unecessary log, 2024-02-19 by *Guillaume Chervet* - +- [8f3940c](https://github.com/AxaFrance/oidc-client/commit/8f3940c42ad62264abfd61690777b602e0bdc31a) - feat(oidc): dpop inside serviceworker (#1306) (release), 2024-02-22 by _Guillaume Chervet_ +- [4a5887f](https://github.com/AxaFrance/oidc-client/commit/4a5887f5e7b3d739d709c7bb4fb7a007ccb051a1) - fix(oidc-service-worker): remove sw unecessary log, 2024-02-19 by _Guillaume Chervet_ ## v7.18.5 -- [7a38d96](https://github.com/AxaFrance/oidc-client/commit/7a38d962b0e08837989a1d2affeb5e557dc09444) - fix(oidc): parse token with many _ or - (#1302) (release), 2024-02-18 by *Guillaume Chervet* - +- [7a38d96](https://github.com/AxaFrance/oidc-client/commit/7a38d962b0e08837989a1d2affeb5e557dc09444) - fix(oidc): parse token with many \_ or - (#1302) (release), 2024-02-18 by _Guillaume Chervet_ ## v7.18.4 -- [b4e5ec8](https://github.com/AxaFrance/oidc-client/commit/b4e5ec834bdfedf8975b79086c2c0144f4e6e9b1) - fix(oidc-service-worker): set Bearer as default (release), 2024-02-17 by *Guillaume Chervet* - +- [b4e5ec8](https://github.com/AxaFrance/oidc-client/commit/b4e5ec834bdfedf8975b79086c2c0144f4e6e9b1) - fix(oidc-service-worker): set Bearer as default (release), 2024-02-17 by _Guillaume Chervet_ ## v7.18.3 -- [8eb75d3](https://github.com/AxaFrance/oidc-client/commit/8eb75d3f2036708d9c3067a2973a4d685d8b4923) - fix(oidc): logout continue to run before redirecting (#1301) (release), 2024-02-15 by *Guillaume Chervet* - +- [8eb75d3](https://github.com/AxaFrance/oidc-client/commit/8eb75d3f2036708d9c3067a2973a4d685d8b4923) - fix(oidc): logout continue to run before redirecting (#1301) (release), 2024-02-15 by _Guillaume Chervet_ ## v7.18.2 -- [77329ce](https://github.com/AxaFrance/oidc-client/commit/77329ce52a5fc7278ff35ccd13ca572ff7ebbf4d) - fix(oidc-service-worker): bad request on many token request at the same time (#1300) (release), 2024-02-15 by *Guillaume Chervet* - +- [77329ce](https://github.com/AxaFrance/oidc-client/commit/77329ce52a5fc7278ff35ccd13ca572ff7ebbf4d) - fix(oidc-service-worker): bad request on many token request at the same time (#1300) (release), 2024-02-15 by _Guillaume Chervet_ ## v7.18.1 -- [0d13cc2](https://github.com/AxaFrance/oidc-client/commit/0d13cc28a8cc40c610d3943d33fe8a7d4e28c32f) - fix(oidc): unload user on logout (#1296) (release), 2024-02-13 by *Guillaume Chervet* - +- [0d13cc2](https://github.com/AxaFrance/oidc-client/commit/0d13cc28a8cc40c610d3943d33fe8a7d4e28c32f) - fix(oidc): unload user on logout (#1296) (release), 2024-02-13 by _Guillaume Chervet_ ## v7.18.0 -- [5e35346](https://github.com/AxaFrance/oidc-client/commit/5e35346bfa477b560f5bde1afb2125a2c5f6e9c4) - feat(oidc): add extras to revoke access_token and refresh_tokens (#1295) (release), 2024-02-13 by *Guillaume Chervet* - +- [5e35346](https://github.com/AxaFrance/oidc-client/commit/5e35346bfa477b560f5bde1afb2125a2c5f6e9c4) - feat(oidc): add extras to revoke access_token and refresh_tokens (#1295) (release), 2024-02-13 by _Guillaume Chervet_ ## v7.17.4 -- [91b11af](https://github.com/AxaFrance/oidc-client/commit/91b11afa983bf4bee8def95c4ee101ede5447dc9) - fix(oidc): resfreshTokenError not triggered when silentsignin disabled (release), 2024-02-11 by *Guillaume Chervet* - +- [91b11af](https://github.com/AxaFrance/oidc-client/commit/91b11afa983bf4bee8def95c4ee101ede5447dc9) - fix(oidc): resfreshTokenError not triggered when silentsignin disabled (release), 2024-02-11 by _Guillaume Chervet_ ## v7.17.3 -- [dbaf602](https://github.com/AxaFrance/oidc-client/commit/dbaf602d31e0b437285496e2711ff7cce5d8d3f7) - fix(react-oidc): typings user can be null (release), 2024-02-11 by *Guillaume Chervet* - +- [dbaf602](https://github.com/AxaFrance/oidc-client/commit/dbaf602d31e0b437285496e2711ff7cce5d8d3f7) - fix(react-oidc): typings user can be null (release), 2024-02-11 by _Guillaume Chervet_ ## v7.17.2 -- [c3d5c6b](https://github.com/AxaFrance/oidc-client/commit/c3d5c6b1a6a2a82450d134134513634031c1c338) - refactor(react-oidc): remove base64js dependencies (release), 2024-02-11 by *Guillaume Chervet* -- [2a7031b](https://github.com/AxaFrance/oidc-client/commit/2a7031bfdd5a7c638940ece97778988ead73cbdc) - Merge branch 'main' of https://github.com/AxaFrance/oidc-client, 2024-02-11 by *Guillaume Chervet* -- [3973497](https://github.com/AxaFrance/oidc-client/commit/397349749e9abb75a6910b3824786f3c688447fe) - Merge branch 'main' of https://github.com/AxaFrance/oidc-client, 2024-02-10 by *Guillaume Chervet* -- [d20953a](https://github.com/AxaFrance/oidc-client/commit/d20953a0180bdf3b8b6dd3247a025e3b4fc389f8) - refactor(oidc): remove base64.js dependencies (alpha), 2024-02-10 by *Guillaume Chervet* - +- [c3d5c6b](https://github.com/AxaFrance/oidc-client/commit/c3d5c6b1a6a2a82450d134134513634031c1c338) - refactor(react-oidc): remove base64js dependencies (release), 2024-02-11 by _Guillaume Chervet_ +- [2a7031b](https://github.com/AxaFrance/oidc-client/commit/2a7031bfdd5a7c638940ece97778988ead73cbdc) - Merge branch 'main' of https://github.com/AxaFrance/oidc-client, 2024-02-11 by _Guillaume Chervet_ +- [3973497](https://github.com/AxaFrance/oidc-client/commit/397349749e9abb75a6910b3824786f3c688447fe) - Merge branch 'main' of https://github.com/AxaFrance/oidc-client, 2024-02-10 by _Guillaume Chervet_ +- [d20953a](https://github.com/AxaFrance/oidc-client/commit/d20953a0180bdf3b8b6dd3247a025e3b4fc389f8) - refactor(oidc): remove base64.js dependencies (alpha), 2024-02-10 by _Guillaume Chervet_ ## v7.17.1 -- [2511648](https://github.com/AxaFrance/oidc-client/commit/251164830a9a1b976e8d6c743490795a028afa16) - refactor(oidc): remove base64.js dependency (#1292) (release), 2024-02-10 by *Guillaume Chervet* - +- [2511648](https://github.com/AxaFrance/oidc-client/commit/251164830a9a1b976e8d6c743490795a028afa16) - refactor(oidc): remove base64.js dependency (#1292) (release), 2024-02-10 by _Guillaume Chervet_ ## v7.17.0 -- [a09e6fd](https://github.com/AxaFrance/oidc-client/commit/a09e6fda64aa210fe7f63d70b6c64af559012640) - feat(oidc): logout add extras parameter to avoid the page reload (release) (#1290), 2024-02-10 by *Guillaume Chervet* - +- [a09e6fd](https://github.com/AxaFrance/oidc-client/commit/a09e6fda64aa210fe7f63d70b6c64af559012640) - feat(oidc): logout add extras parameter to avoid the page reload (release) (#1290), 2024-02-10 by _Guillaume Chervet_ ## v7.16.0 -- [6b9b524](https://github.com/AxaFrance/oidc-client/commit/6b9b524c54a18dca9cc5bab34f0d058716e9d116) - feat(react): expose dpop method generation (#1291) (release), 2024-02-10 by *Guillaume Chervet* - +- [6b9b524](https://github.com/AxaFrance/oidc-client/commit/6b9b524c54a18dca9cc5bab34f0d058716e9d116) - feat(react): expose dpop method generation (#1291) (release), 2024-02-10 by _Guillaume Chervet_ ## v7.15.5 -- [d79af9a](https://github.com/AxaFrance/oidc-client/commit/d79af9aba023faf78e9816c4d681413618bdd843) - refactor(all): updates dev libraries (release) (#1284), 2024-02-09 by *Guillaume Chervet* - +- [d79af9a](https://github.com/AxaFrance/oidc-client/commit/d79af9aba023faf78e9816c4d681413618bdd843) - refactor(all): updates dev libraries (release) (#1284), 2024-02-09 by _Guillaume Chervet_ ## v7.15.4 -- [f2d74fb](https://github.com/AxaFrance/oidc-client/commit/f2d74fba6d2e48e6d478aa69d261fe9cceb69bfa) - fix(oidc): eternal lock when refresh_token invalid and multiple tabs (#1281) (release), 2024-02-03 by *Guillaume Chervet* - +- [f2d74fb](https://github.com/AxaFrance/oidc-client/commit/f2d74fba6d2e48e6d478aa69d261fe9cceb69bfa) - fix(oidc): eternal lock when refresh_token invalid and multiple tabs (#1281) (release), 2024-02-03 by _Guillaume Chervet_ ## v7.15.3 -- [7a5d32c](https://github.com/AxaFrance/oidc-client/commit/7a5d32cf650870a5b1c2910ceb0a3e6db4cec0b7) - fix(oidc): storage empty update message (release), 2024-02-03 by *Guillaume Chervet* - +- [7a5d32c](https://github.com/AxaFrance/oidc-client/commit/7a5d32cf650870a5b1c2910ceb0a3e6db4cec0b7) - fix(oidc): storage empty update message (release), 2024-02-03 by _Guillaume Chervet_ ## v7.15.2 -- [940ffac](https://github.com/AxaFrance/oidc-client/commit/940ffac724894460af13e4e4a0de5e691e487c74) - fix(oidc): json not valid add warning message (release) (#1258), 2024-02-03 by *Guillaume Chervet* -- [31f295c](https://github.com/AxaFrance/oidc-client/commit/31f295cb549bf55dfd5db1e1c71178363c7f2dae) - fix(logout): add event when same config name (alpha), 2024-02-02 by *Guillaume Chervet* -- [0a15e60](https://github.com/AxaFrance/oidc-client/commit/0a15e60f0e5c167a0418a972c6726eec72add447) - refactor(renew): clean an debug (alpha) (#1273), 2024-02-01 by *Guillaume Chervet* - +- [940ffac](https://github.com/AxaFrance/oidc-client/commit/940ffac724894460af13e4e4a0de5e691e487c74) - fix(oidc): json not valid add warning message (release) (#1258), 2024-02-03 by _Guillaume Chervet_ +- [31f295c](https://github.com/AxaFrance/oidc-client/commit/31f295cb549bf55dfd5db1e1c71178363c7f2dae) - fix(logout): add event when same config name (alpha), 2024-02-02 by _Guillaume Chervet_ +- [0a15e60](https://github.com/AxaFrance/oidc-client/commit/0a15e60f0e5c167a0418a972c6726eec72add447) - refactor(renew): clean an debug (alpha) (#1273), 2024-02-01 by _Guillaume Chervet_ ## v7.15.1 -- [5094e36](https://github.com/AxaFrance/oidc-client/commit/5094e36c1435684c5863e8d27eca59093aaec7b7) - fix(service-worker): unit test broken (release), 2024-01-30 by *Guillaume Chervet* - +- [5094e36](https://github.com/AxaFrance/oidc-client/commit/5094e36c1435684c5863e8d27eca59093aaec7b7) - fix(service-worker): unit test broken (release), 2024-01-30 by _Guillaume Chervet_ ## v7.15.0 -- [1676881](https://github.com/AxaFrance/oidc-client/commit/1676881f1db53cff6652ee7fe9658a437682231f) - feat(oidc): idToken can be null on a refresh (release) (#1271), 2024-01-29 by *Guillaume Chervet* - +- [1676881](https://github.com/AxaFrance/oidc-client/commit/1676881f1db53cff6652ee7fe9658a437682231f) - feat(oidc): idToken can be null on a refresh (release) (#1271), 2024-01-29 by _Guillaume Chervet_ ## v7.14.1 -- [0fe53a6](https://github.com/AxaFrance/oidc-client/commit/0fe53a6b870c13c71330806a045896ea1e0a57e2) - fix(oidc): remove console.log (release), 2024-01-28 by *Guillaume Chervet* -- [b23d6a7](https://github.com/AxaFrance/oidc-client/commit/b23d6a7e1fc04ce43f489ac8977de9fe5affff73) - Merge branch 'main' of https://github.com/AxaFrance/oidc-client, 2024-01-28 by *Guillaume Chervet* -- [14ccbeb](https://github.com/AxaFrance/oidc-client/commit/14ccbeb83f1d7e790b496e571d424f615a39b43f) - fix(oidc): demo and remove console.log, 2024-01-28 by *Guillaume Chervet* -- [15eb259](https://github.com/AxaFrance/oidc-client/commit/15eb2592d9582cb43798a5d7fc988b3c349e5b43) - doc(oidc): Update README.md, 2024-01-26 by *Guillaume Chervet* - +- [0fe53a6](https://github.com/AxaFrance/oidc-client/commit/0fe53a6b870c13c71330806a045896ea1e0a57e2) - fix(oidc): remove console.log (release), 2024-01-28 by _Guillaume Chervet_ +- [b23d6a7](https://github.com/AxaFrance/oidc-client/commit/b23d6a7e1fc04ce43f489ac8977de9fe5affff73) - Merge branch 'main' of https://github.com/AxaFrance/oidc-client, 2024-01-28 by _Guillaume Chervet_ +- [14ccbeb](https://github.com/AxaFrance/oidc-client/commit/14ccbeb83f1d7e790b496e571d424f615a39b43f) - fix(oidc): demo and remove console.log, 2024-01-28 by _Guillaume Chervet_ +- [15eb259](https://github.com/AxaFrance/oidc-client/commit/15eb2592d9582cb43798a5d7fc988b3c349e5b43) - doc(oidc): Update README.md, 2024-01-26 by _Guillaume Chervet_ ## v7.14.0 -- [b0510eb](https://github.com/AxaFrance/oidc-client/commit/b0510eb8d7170e8e142cb2d9bec01f41f610ed51) - feat(oidc): add DPOP configuration (#1259) (release), 2024-01-26 by *Guillaume Chervet* - +- [b0510eb](https://github.com/AxaFrance/oidc-client/commit/b0510eb8d7170e8e142cb2d9bec01f41f610ed51) - feat(oidc): add DPOP configuration (#1259) (release), 2024-01-26 by _Guillaume Chervet_ ## v7.13.16 -- [f2310bc](https://github.com/AxaFrance/oidc-client/commit/f2310bc917898b779a40edecf3dd73c21ec32b47) - fix(oidc): parseJwt fails for some JWT because of wrong use of replace (release) (#1269), 2024-01-25 by *Guillaume Chervet* - +- [f2310bc](https://github.com/AxaFrance/oidc-client/commit/f2310bc917898b779a40edecf3dd73c21ec32b47) - fix(oidc): parseJwt fails for some JWT because of wrong use of replace (release) (#1269), 2024-01-25 by _Guillaume Chervet_ ## v7.13.15 -- [c56cc84](https://github.com/AxaFrance/oidc-client/commit/c56cc842d8da427b2aa88eb71f7d63937ea3c363) - fix(react-oidc): missing console.log in useOidcFetch (release), 2024-01-16 by *Guillaume Chervet* - +- [c56cc84](https://github.com/AxaFrance/oidc-client/commit/c56cc842d8da427b2aa88eb71f7d63937ea3c363) - fix(react-oidc): missing console.log in useOidcFetch (release), 2024-01-16 by _Guillaume Chervet_ ## v7.13.14 -- [3a1883c](https://github.com/AxaFrance/oidc-client/commit/3a1883c343c55637aa1ce5d118cc2841c76d8752) - build(npm): bump react-router-dom from 6.20.1 to 6.21.1 (#1252), 2024-01-02 by *dependabot[bot]* - +- [3a1883c](https://github.com/AxaFrance/oidc-client/commit/3a1883c343c55637aa1ce5d118cc2841c76d8752) - build(npm): bump react-router-dom from 6.20.1 to 6.21.1 (#1252), 2024-01-02 by _dependabot[bot]_ ## v7.13.13 -- [1faaab4](https://github.com/AxaFrance/oidc-client/commit/1faaab4ecb86144ed6f3c1ed68b938804854bd36) - build(npm): bump next from 14.0.3 to 14.0.4 (#1255), 2024-01-02 by *dependabot[bot]* -- [d009de8](https://github.com/AxaFrance/oidc-client/commit/d009de8091ac256d1384466df9b3fe7de75a5629) - chore(ci): Update npm-publish.yml, 2023-12-28 by *Guillaume Chervet* - +- [1faaab4](https://github.com/AxaFrance/oidc-client/commit/1faaab4ecb86144ed6f3c1ed68b938804854bd36) - build(npm): bump next from 14.0.3 to 14.0.4 (#1255), 2024-01-02 by _dependabot[bot]_ +- [d009de8](https://github.com/AxaFrance/oidc-client/commit/d009de8091ac256d1384466df9b3fe7de75a5629) - chore(ci): Update npm-publish.yml, 2023-12-28 by _Guillaume Chervet_ ## v7.13.12 -- [9ef56f1](https://github.com/AxaFrance/oidc-client/commit/9ef56f17793e1bfbd668d6f001125a8f773c2370) - fix(oidc): Handling of errors returned from authorize endpoint (#1250) (release), 2023-12-28 by *Guillaume Chervet* - +- [9ef56f1](https://github.com/AxaFrance/oidc-client/commit/9ef56f17793e1bfbd668d6f001125a8f773c2370) - fix(oidc): Handling of errors returned from authorize endpoint (#1250) (release), 2023-12-28 by _Guillaume Chervet_ ## v7.13.11 -- [529cabf](https://github.com/AxaFrance/oidc-client/commit/529cabfbe7ee602325ba0f70844c969176371746) - fix(oidc): DPOP type jit instead of jti (#1249) (release), 2023-12-20 by *Guillaume Chervet* - +- [529cabf](https://github.com/AxaFrance/oidc-client/commit/529cabfbe7ee602325ba0f70844c969176371746) - fix(oidc): DPOP type jit instead of jti (#1249) (release), 2023-12-20 by _Guillaume Chervet_ ## v7.13.10 -- [4b1a9a2](https://github.com/AxaFrance/oidc-client/commit/4b1a9a26eba51e24dd1c9c9fd0087ef0b3b1ce8b) - fix(oidc): crash when regex on userAgent empty result iOS (#1248) (release), 2023-12-20 by *Guillaume Chervet* - +- [4b1a9a2](https://github.com/AxaFrance/oidc-client/commit/4b1a9a26eba51e24dd1c9c9fd0087ef0b3b1ce8b) - fix(oidc): crash when regex on userAgent empty result iOS (#1248) (release), 2023-12-20 by _Guillaume Chervet_ ## v7.13.9 -- [819962b](https://github.com/AxaFrance/oidc-client/commit/819962bae1d7c1e7fd997ede7bb42cce27ba76f3) - fix(oidc): renew with simple storage (#1246) (release), 2023-12-19 by *Guillaume Chervet* - +- [819962b](https://github.com/AxaFrance/oidc-client/commit/819962bae1d7c1e7fd997ede7bb42cce27ba76f3) - fix(oidc): renew with simple storage (#1246) (release), 2023-12-19 by _Guillaume Chervet_ ## v7.13.8 -- [b0cf4ad](https://github.com/AxaFrance/oidc-client/commit/b0cf4ad52df9c16c130cce791b05ceea7c4370c4) - fix(oidc): temp renew token fix (#1245) (release), 2023-12-18 by *Guillaume Chervet* - +- [b0cf4ad](https://github.com/AxaFrance/oidc-client/commit/b0cf4ad52df9c16c130cce791b05ceea7c4370c4) - fix(oidc): temp renew token fix (#1245) (release), 2023-12-18 by _Guillaume Chervet_ ## v7.13.7 -- [6667eab](https://github.com/AxaFrance/oidc-client/commit/6667eabc8c5cb0ff5874b6583b2223721bd18525) - fix(oidc): temporary fix on lock need to be continued but require refactor (release), 2023-12-15 by *Guillaume Chervet* -- [23c8715](https://github.com/AxaFrance/oidc-client/commit/23c87152e55c8d7f1c51a33032d48c751b15c4c5) - fix(ci): clean changelog generation, 2023-12-15 by *Guillaume Chervet* -- [9f1f7f6](https://github.com/AxaFrance/oidc-client/commit/9f1f7f684a6b344f59221caf3e3a14faef73a6bc) - fix(oidc): session storage for next (#1240) (alpha), 2023-12-12 by *Guillaume Chervet* -- [64a8df3](https://github.com/AxaFrance/oidc-client/commit/64a8df3281f95159a60e5f9ec61db315a8d20c7d) - fix(oidc-client): make locks work only ifAvailable (#1237)(alpha), 2023-12-09 by *abhilashlr* - - +- [6667eab](https://github.com/AxaFrance/oidc-client/commit/6667eabc8c5cb0ff5874b6583b2223721bd18525) - fix(oidc): temporary fix on lock need to be continued but require refactor (release), 2023-12-15 by _Guillaume Chervet_ +- [23c8715](https://github.com/AxaFrance/oidc-client/commit/23c87152e55c8d7f1c51a33032d48c751b15c4c5) - fix(ci): clean changelog generation, 2023-12-15 by _Guillaume Chervet_ +- [9f1f7f6](https://github.com/AxaFrance/oidc-client/commit/9f1f7f684a6b344f59221caf3e3a14faef73a6bc) - fix(oidc): session storage for next (#1240) (alpha), 2023-12-12 by _Guillaume Chervet_ +- [64a8df3](https://github.com/AxaFrance/oidc-client/commit/64a8df3281f95159a60e5f9ec61db315a8d20c7d) - fix(oidc-client): make locks work only ifAvailable (#1237)(alpha), 2023-12-09 by _abhilashlr_ diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 346f0293e..4cf779635 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -28,6 +28,7 @@ pnpm install pnpm run dev # then navigate to http://localhost:3001 ``` + You are now ready to contribute! ## Pull Request @@ -39,21 +40,23 @@ Packages are automatically published on npm when a PR is merged on main. Example of commit messages : To publish a patch version (0.0.x) : + - fix(oidc): my message (alpha) => will publish next patch as an alpha - chore(oidc): my message (beta) => will publish next patch as an beta - refactor(oidc): my message (release) => will publish next patch release (with automatic git tag and release) To publish a minor version (0.x.0) : + - feat(oidc): my message (alpha) => will publish next minor as an alpha - feat(oidc): my message (beta) => will publish next minor as an beta - feat(oidc): my message (release) => will publish next minor release (with automatic git tag and release) To publish a major version (x.0.0) : + - fix(oidc): my message containing BREACKING word (alpha) => will publish next major as an alpha - fix(oidc): my message containing BREACKING word (beta) => will publish next major as an beta - fix(oidc): my message containing BREACKING word (release) => will publish next major release (with automatic git tag and release) - ## Issue Please respect the following [ISSUE_TEMPLATE.md](./ISSUE_TEMPLATE.md) diff --git a/FAQ.md b/FAQ.md index a39a5af41..cb3904add 100644 --- a/FAQ.md +++ b/FAQ.md @@ -1,6 +1,6 @@ # FAQ (Frequently Asked Questions) -## Condition to make silent signing work +## Condition to make silent signing work Third-party cookies are blocked by default on Safari and will be blocked on all browsers soon. Today, silent signing works on Safari only if the OIDC provider and the client application are on the same domain. @@ -17,24 +17,24 @@ It opens an IFrame in the background, directed to a specific page on your OIDC p ## Condition to make Single Logout to work -The same domain constraint for "silent signing" applies to Single Logout. +The same domain constraint for "silent signing" applies to Single Logout. Single Logout allows you to disconnect from multiple OIDC Client sessions in one action, even if you are connected to different applications. ## Condition to make Monitor Session to work -Same domain constraint for "silent signing" applies to "monitorSession". +Same domain constraint for "silent signing" applies to "monitorSession". Monitor session notifies you when your session expires or when you are disconnected from your OIDC provider. ## Does Service Worker is mandatory ? -Service Worker can be disable. +Service Worker can be disable. You can use classic mode without Service Worker. Just comment "service_worker_relative_url" like bellow: -````javascript +```javascript export const configuration = { client_id: 'interactive.public.short', redirect_uri: window.location.origin + '/#/authentication/callback', @@ -44,24 +44,24 @@ export const configuration = { // service_worker_relative_url: '/OidcServiceWorker.js', service_worker_only: false, }; -```` +``` -If your Service Worker file is already registered on your browser, your need to unregister it. For example from chrome dev tool. +If your Service Worker file is already registered on your browser, your need to unregister it. For example from chrome dev tool. ## Tokens are always refreshed in background every seconds The @axa-fr/oidc-client automatically refreshes tokens in the background. -It refreshes tokens before expiration to maintain valid tokens at all times. +It refreshes tokens before expiration to maintain valid tokens at all times. If your token session lifetime is too short, frequent refreshes will occur. -Token refreshing starts 120 seconds before expiration. +Token refreshing starts 120 seconds before expiration. -Setting a session validity longer than 3 minutes is advisable. +Setting a session validity longer than 3 minutes is advisable. By default, @axa-fr/oidc-client chooses the shorter lifetime between access_token and id_token. Use the "token_renew_mode" option to change this behavior. - - **token_renew_mode**: String, // Optional, update tokens based on the selected token(s) lifetime: "access_token_or_id_token_invalid" (default), "access_token_invalid", "id_token_invalid" +- **token_renew_mode**: String, // Optional, update tokens based on the selected token(s) lifetime: "access_token_or_id_token_invalid" (default), "access_token_invalid", "id_token_invalid" ## window.crypto.subtle is unavailable over HTTP @@ -103,23 +103,22 @@ Quick time-to-market: Start with client-side OIDC, migrate to server-side if nee @axa-fr/oidc-client is the simplest and cheapest.

- ## Good Security Practices : does a Hacker can unregister the Service Worker and retrieve tokens via an Iframe ? To block token retrieval via an Iframe call and prevent Service Worker unregistration, comply with these practices: 1 - Correctly configure the CSP (Content Security Policy) on the server side. -Example: +Example: -````bash +```bash server: { headers: { "Content-Security-Policy": "script-src 'self';", }, } -```` +``` -This blocks dynamic script injection into an iframe. +This blocks dynamic script injection into an iframe. 2 - Initialize `` for **React** or the redirect callback for **oidc-client** at the start of your application script. Configure it before making any fetch calls to services. diff --git a/MIGRATION_GUIDE_V3_TO_V4.md b/MIGRATION_GUIDE_V3_TO_V4.md index dbf072330..91ecb47d7 100644 --- a/MIGRATION_GUIDE_V3_TO_V4.md +++ b/MIGRATION_GUIDE_V3_TO_V4.md @@ -18,24 +18,25 @@ Main provider component have been renamed ```javascript import { AuthenticationProvider } from '@axa-fr/react-oidc-context'; -// old v3 +// old v3 - - +; // in v4 becomes import { OidcProvider } from '@axa-fr/react-oidc-context'; // loggerLevel : Logger property has been removed in v4 - - +; ``` Provider properties have changed, you need to keep only required properties for v4 else it won't work. ```javascript -// old v3 +// old v3 const propTypes = { notAuthenticated: PropTypes.elementType, // react component displayed during authentication notAuthorized: PropTypes.elementType, // react component displayed in case user is not Authorised @@ -75,7 +76,7 @@ const propTypes = { UserStore: PropTypes.func, }; -// new v4 +// new v4 const propTypes = { loadingComponent: PropTypes.elementType, // you can inject your own loading component sessionLostComponent: PropTypes.elementType, // you can inject your own session lost component @@ -100,25 +101,27 @@ const propTypes = { Manage Oidc actions and information ```javascript - -// old v3 +// old v3 import { useReactOidc } from '@axa-fr/react-oidc-context'; -const { isEnabled, login, logout, oidcUser, events } = useReactOidc(); +const { isEnabled, login, logout, oidcUser, events } = useReactOidc(); - -// new v4 -import { useOidc, useOidcAccessToken, useOidcIdToken, useOidcUser } from '@axa-fr/react-oidc-context'; +// new v4 +import { + useOidc, + useOidcAccessToken, + useOidcIdToken, + useOidcUser, +} from '@axa-fr/react-oidc-context'; const { login, logout, isAuthenticated } = useOidc(); // login and logout return a Promise const { oidcUser, isOidcUserLoading } = useOidcUser(); // Return user_info endpoint data const { accessToken, accessTokenPayload } = useOidcAccessToken(); // Contain access_token metadata acess_token is a JWK const { idToken, idTokenPayload } = useOidcIdToken(); // contain IDToken metadata - ``` ```javascript -// old v3 +// old v3 import { withFetchRedirectionOn401, withFetchSilentAuthenticateAndRetryOn401, withFetchRedirectionOn403, @@ -160,7 +163,7 @@ Then edit `OidcTrustedDomains.js` in "public" folder for your need // OidcTrustedDomains.js // Add here trusted domains, access tokens will be send to const trustedDomains = { - default:["http://localhost:4200"], + default: ['http://localhost:4200'], }; ``` diff --git a/MIGRATION_GUIDE_V3_TO_V5.md b/MIGRATION_GUIDE_V3_TO_V5.md index f67cae5de..2e68c48bc 100644 --- a/MIGRATION_GUIDE_V3_TO_V5.md +++ b/MIGRATION_GUIDE_V3_TO_V5.md @@ -20,24 +20,25 @@ Main provider component have been renamed ```javascript import { AuthenticationProvider } from '@axa-fr/react-oidc-context'; -// old v3 +// old v3 - - +; // in v5 becomes import { OidcProvider } from '@axa-fr/react-oidc-context'; // loggerLevel : Logger property has been removed in v4 - - +; ``` Provider properties have changed, you need to keep only required properties for v4 else it won't work. ```javascript -// old v3 +// old v3 const propTypes = { notAuthenticated: PropTypes.elementType, // react component displayed during authentication notAuthorized: PropTypes.elementType, // react component displayed in case user is not Authorised @@ -103,16 +104,19 @@ const propTypes = { Manage Oidc actions and information ```javascript - -// old v3 +// old v3 import { useReactOidc } from '@axa-fr/react-oidc-context'; -const { isEnabled, login, logout, oidcUser, events } = useReactOidc(); - +const { isEnabled, login, logout, oidcUser, events } = useReactOidc(); // new v5 -import { useOidc, useOidcAccessToken, useOidcIdToken, useOidcUser } from '@axa-fr/react-oidc-context'; - -const { login, logout, isAuthenticated} = useOidc(); // login and logout return a Promise +import { + useOidc, + useOidcAccessToken, + useOidcIdToken, + useOidcUser, +} from '@axa-fr/react-oidc-context'; + +const { login, logout, isAuthenticated } = useOidc(); // login and logout return a Promise const { oidcUser, oidcUserLoadingState } = useOidcUser(); // Return user_info endpoint data const { accessToken, accessTokenPayload } = useOidcAccessToken(); // Contain access_token metadata acess_token is a JWK const { idToken, idTokenPayload } = useOidcIdToken(); // contain IDToken metadata @@ -120,7 +124,7 @@ const { idToken, idTokenPayload } = useOidcIdToken(); // contain IDToken metadat ```javascript -// old v3 +// old v3 import { withFetchRedirectionOn401, withFetchSilentAuthenticateAndRetryOn401, withFetchRedirectionOn403, @@ -136,7 +140,7 @@ import { withOidcFetch } from '@axa-fr/react-oidc-context'; // withFetchToken in v3 have been rename to withOidcFetch and set inside '@axa-fr/react-oidc-context' package withOidcFetch() - + ``` If you need a very secure mode where refresh_token and access_token will be hide behind a service worker that will proxify requests. @@ -162,7 +166,7 @@ Then edit `OidcTrustedDomains.js` in "public" folder for your need // OidcTrustedDomains.js // Add here trusted domains, access tokens will be send to const trustedDomains = { - default:["http://localhost:4200"], + default: ['http://localhost:4200'], }; ``` diff --git a/MIGRATION_GUIDE_V6_TO_V7.md b/MIGRATION_GUIDE_V6_TO_V7.md index 51cb01b41..e3b5838fb 100644 --- a/MIGRATION_GUIDE_V6_TO_V7.md +++ b/MIGRATION_GUIDE_V6_TO_V7.md @@ -5,15 +5,13 @@ - On version 7.3.0 configuration.service_worker_convert_all_requests_to_cors as been moved to TrustedDomains.js ```javascript - // Service worker will continue to give access token to the JavaScript client // Ideal to hide refresh token from client JavaScript, but to retrieve access_token for some // scenarios which require it. For example, to send it via websocket connection. -trustedDomains.config_show_access_token = { - domains: ['https://demo.duendesoftware.com'], - showAccessToken: true, - // convertAllRequestsToCorsExceptNavigate: false, // default value is false - // setAccessTokenToNavigateRequests: true, // default value is true +trustedDomains.config_show_access_token = { + domains: ['https://demo.duendesoftware.com'], + showAccessToken: true, + // convertAllRequestsToCorsExceptNavigate: false, // default value is false + // setAccessTokenToNavigateRequests: true, // default value is true }; - -``` \ No newline at end of file +``` diff --git a/README.md b/README.md index 2b5748b5b..823aad7ee 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,6 @@ [![Continuous Integration](https://github.com/AxaFrance/react-oidc/actions/workflows/npm-publish.yml/badge.svg)](https://github.com/AxaFrance/react-oidc/actions/workflows/npm-publish.yml) [![Quality Gate](https://sonarcloud.io/api/project_badges/measure?project=AxaGuilDEv_react-oidc&metric=alert_status)](https://sonarcloud.io/dashboard?id=AxaGuilDEv_react-oidc) [![Reliability](https://sonarcloud.io/api/project_badges/measure?project=AxaGuilDEv_react-oidc&metric=reliability_rating)](https://sonarcloud.io/component_measures?id=AxaGuilDEv_react-oidc&metric=reliability_rating) [![Security](https://sonarcloud.io/api/project_badges/measure?project=AxaGuilDEv_react-oidc&metric=security_rating)](https://sonarcloud.io/component_measures?id=AxaGuilDEv_react-oidc&metric=security_rating) [![Code Coverage](https://sonarcloud.io/api/project_badges/measure?project=AxaGuilDEv_react-oidc&metric=coverage)](https://sonarcloud.io/component_measures?id=AxaGuilDEv_react-oidc&metric=Coverage) [![Twitter](https://img.shields.io/twitter/follow/GuildDEvOpen?style=social)](https://twitter.com/intent/follow?screen_name=GuildDEvOpen) -

Sample React Oicd [!WARNING] > If you use `Service Worker` mode, the `OidcServiceWorker.js` file should always be up to date with the version of the library. You may setup a postinstall script in your `package.json` file to update it at each npm install. For example : @@ -157,7 +155,6 @@ pnpm run dev The service worker catch access_token and refresh_token that will never be accessible to the client.

- These components encapsulate the use of "`@axa-fr/oidc-client`" in order to hide workflow complexity. Internally for "`@axa-fr/react-oidc`", native History API is used to be router library agnostic. @@ -170,7 +167,7 @@ More information about OIDC : ## FAQ -- Frequented Asked Question [`FAQ`](./FAQ.md) +- Frequented Asked Question [`FAQ`](./FAQ.md) ## Migrations diff --git a/SECURITY.md b/SECURITY.md index a9c26f5e4..74720879a 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -6,7 +6,7 @@ Use this section to tell people about which versions of your project are currently being supported with security updates. | Version | Supported | -|---------|--------------------| +| ------- | ------------------ | | 5.1.x | :white_check_mark: | | 5.0.x | :x: | | 4.0.x | :white_check_mark: | diff --git a/eslint.config.mjs b/eslint.config.mjs index 990582939..2d46ef43c 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -1,195 +1,219 @@ -import path from "node:path"; -import { fileURLToPath } from "node:url"; - -import { fixupConfigRules, fixupPluginRules } from "@eslint/compat"; -import { FlatCompat } from "@eslint/eslintrc"; -import js from "@eslint/js"; -import typescriptEslint from "@typescript-eslint/eslint-plugin"; -import tsParser from "@typescript-eslint/parser"; -import prettier from "eslint-plugin-prettier/recommended"; -import react from "eslint-plugin-react"; -import simpleImportSort from "eslint-plugin-simple-import-sort"; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; + +import { fixupConfigRules, fixupPluginRules } from '@eslint/compat'; +import { FlatCompat } from '@eslint/eslintrc'; +import js from '@eslint/js'; +import typescriptEslint from '@typescript-eslint/eslint-plugin'; +import tsParser from '@typescript-eslint/parser'; +import prettier from 'eslint-plugin-prettier/recommended'; +import react from 'eslint-plugin-react'; +import simpleImportSort from 'eslint-plugin-simple-import-sort'; //import testingLibrary from "eslint-plugin-testing-library"; const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); const compat = new FlatCompat({ - baseDirectory: __dirname, - recommendedConfig: js.configs.recommended, - allConfig: js.configs.all, + baseDirectory: __dirname, + recommendedConfig: js.configs.recommended, + allConfig: js.configs.all, }); -export default [{ +export default [ + { ignores: [ - "**/*.d.ts", - "packages/**/dist/**/*", - "packages/**/public/**/*", - "packages/**/coverage/**/*", - "packages/**/fixtures/**/*", - "**/node_modules", - "public/**/*", - "examples/**/static/**/*", - "examples/**/dist/**/*", - "examples/**/OidcTrustedDomains.js", - "examples/**/OidcServiceWorker.js", - "examples/**/nextjs-demo/**", - "scripts/**/*", - "**/.github", - "**/.changeset", - "**/vite.config.js", - "**/webpack-runtime.js", + '**/*.d.ts', + 'packages/**/dist/**/*', + 'packages/**/public/**/*', + 'packages/**/coverage/**/*', + 'packages/**/fixtures/**/*', + '**/node_modules', + 'public/**/*', + 'examples/**/static/**/*', + 'examples/**/dist/**/*', + 'examples/**/OidcTrustedDomains.js', + 'examples/**/OidcServiceWorker.js', + 'examples/**/nextjs-demo/**', + 'scripts/**/*', + '**/.github', + '**/.changeset', + '**/vite.config.js', + '**/webpack-runtime.js', ], -}, ...fixupConfigRules(compat.extends( - "plugin:react/recommended", - "plugin:react-hooks/recommended", - "eslint:recommended", - "plugin:@typescript-eslint/eslint-recommended", - "plugin:@typescript-eslint/recommended", - "plugin:import/typescript", - "plugin:jsx-a11y/recommended", -)), { + }, + ...fixupConfigRules( + compat.extends( + 'plugin:react/recommended', + 'plugin:react-hooks/recommended', + 'eslint:recommended', + 'plugin:@typescript-eslint/eslint-recommended', + 'plugin:@typescript-eslint/recommended', + 'plugin:import/typescript', + 'plugin:jsx-a11y/recommended', + ), + ), + { plugins: { - "@typescript-eslint": fixupPluginRules(typescriptEslint), - "simple-import-sort": simpleImportSort, - //"testing-library": testingLibrary, //Not compatible with ESLint9 yet https://github.com/jsx-eslint/eslint-plugin-react/issues/3699 - react: fixupPluginRules(react), + '@typescript-eslint': fixupPluginRules(typescriptEslint), + 'simple-import-sort': simpleImportSort, + //"testing-library": testingLibrary, //Not compatible with ESLint9 yet https://github.com/jsx-eslint/eslint-plugin-react/issues/3699 + react: fixupPluginRules(react), }, languageOptions: { - parser: tsParser, - ecmaVersion: 2022, - sourceType: "module", + parser: tsParser, + ecmaVersion: 2022, + sourceType: 'module', - parserOptions: { - project: ["./tsconfig.eslint.json", "./packages/*/tsconfig.eslint.json"], + parserOptions: { + project: ['./tsconfig.eslint.json', './packages/*/tsconfig.eslint.json'], - ecmaFeatures: { - jsx: true, - }, - - warnOnUnsupportedTypeScriptVersion: true, + ecmaFeatures: { + jsx: true, }, + + warnOnUnsupportedTypeScriptVersion: true, + }, }, settings: { - env: { - browser: true, - node: true, - }, - react: { - version: "18", - }, - - "import/resolver": { - typescript: { - alwaysTryTypes: true, - }, + env: { + browser: true, + node: true, + }, + react: { + version: '18', + }, + + 'import/resolver': { + typescript: { + alwaysTryTypes: true, }, + }, }, rules: { - "@typescript-eslint/interface-name-prefix": "off", - "@typescript-eslint/no-non-null-assertion": "off", - "@typescript-eslint/explicit-module-boundary-types": "off", - "@typescript-eslint/no-explicit-any": "off", - "@typescript-eslint/ban-ts-comment": "off", - "no-unused-vars": "off", - - "@typescript-eslint/no-unused-vars": ["error", { - argsIgnorePattern: "^_|req|res|next|err|ctx|args|context|info|index|data", - ignoreRestSiblings: true, - }], - - "no-array-constructor": "off", - "@typescript-eslint/no-array-constructor": "warn", - "no-redeclare": "off", - "@typescript-eslint/no-redeclare": "warn", - "no-use-before-define": "off", - - "@typescript-eslint/no-use-before-define": ["warn", { - functions: false, - classes: false, - variables: false, - typedefs: false, - }], - - "no-unused-expressions": "off", - - "@typescript-eslint/no-unused-expressions": ["error", { - allowShortCircuit: true, - allowTernary: true, - allowTaggedTemplates: true, - }], - - "@typescript-eslint/triple-slash-reference": "off", - - "@typescript-eslint/member-delimiter-style": ["error", { - multiline: { - delimiter: "semi", - requireLast: true, - }, - - singleline: { - delimiter: "semi", - requireLast: false, - }, - }], - - camelcase: "off", - - "comma-dangle": ["error", { - arrays: "always-multiline", - objects: "always-multiline", - imports: "always-multiline", - exports: "always-multiline", - functions: "always-multiline", - }], - - "array-callback-return": "warn", - "jsx-quotes": ["error", "prefer-double"], - indent: "off", - semi: ["error", "always"], - "space-before-function-paren": "off", - "import/no-named-as-default": "off", - "import/no-named-as-default-member": "off", - "import/default": "off", - "import/named": "off", - "import/namespace": "off", - "import/no-unresolved": "off", - "simple-import-sort/imports": "error", - "simple-import-sort/exports": "error", - "react/prop-types": "off", - "react/jsx-wrap-multilines": "error", - "react/react-in-jsx-scope": "off", - "react/display-name": "off", - "react-hooks/rules-of-hooks": "error", - "react-hooks/exhaustive-deps": "off", + '@typescript-eslint/interface-name-prefix': 'off', + '@typescript-eslint/no-non-null-assertion': 'off', + '@typescript-eslint/explicit-module-boundary-types': 'off', + '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/ban-ts-comment': 'off', + 'no-unused-vars': 'off', + + '@typescript-eslint/no-unused-vars': [ + 'error', + { + argsIgnorePattern: '^_|req|res|next|err|ctx|args|context|info|index|data', + ignoreRestSiblings: true, + }, + ], + + 'no-array-constructor': 'off', + '@typescript-eslint/no-array-constructor': 'warn', + 'no-redeclare': 'off', + '@typescript-eslint/no-redeclare': 'warn', + 'no-use-before-define': 'off', + + '@typescript-eslint/no-use-before-define': [ + 'warn', + { + functions: false, + classes: false, + variables: false, + typedefs: false, + }, + ], + + 'no-unused-expressions': 'off', + + '@typescript-eslint/no-unused-expressions': [ + 'error', + { + allowShortCircuit: true, + allowTernary: true, + allowTaggedTemplates: true, + }, + ], + + '@typescript-eslint/triple-slash-reference': 'off', + + '@typescript-eslint/member-delimiter-style': [ + 'error', + { + multiline: { + delimiter: 'semi', + requireLast: true, + }, + + singleline: { + delimiter: 'semi', + requireLast: false, + }, + }, + ], + + camelcase: 'off', + + 'comma-dangle': [ + 'error', + { + arrays: 'always-multiline', + objects: 'always-multiline', + imports: 'always-multiline', + exports: 'always-multiline', + functions: 'always-multiline', + }, + ], + + 'array-callback-return': 'warn', + 'jsx-quotes': ['error', 'prefer-double'], + indent: 'off', + semi: ['error', 'always'], + 'space-before-function-paren': 'off', + 'import/no-named-as-default': 'off', + 'import/no-named-as-default-member': 'off', + 'import/default': 'off', + 'import/named': 'off', + 'import/namespace': 'off', + 'import/no-unresolved': 'off', + 'simple-import-sort/imports': 'error', + 'simple-import-sort/exports': 'error', + 'react/prop-types': 'off', + 'react/jsx-wrap-multilines': 'error', + 'react/react-in-jsx-scope': 'off', + 'react/display-name': 'off', + 'react-hooks/rules-of-hooks': 'error', + 'react-hooks/exhaustive-deps': 'off', }, -}, { - files: ["**/*.js", "**/*.jsx"], + }, + { + files: ['**/*.js', '**/*.jsx'], rules: { - "@typescript-eslint/no-var-requires": "off", + '@typescript-eslint/no-var-requires': 'off', - "react/no-unknown-property": [2, { - ignore: ["jsx", "global"], - }], + 'react/no-unknown-property': [ + 2, + { + ignore: ['jsx', 'global'], + }, + ], }, -}, -prettier, -//Not compatible with ESLint9 yet https://github.com/jsx-eslint/eslint-plugin-react/issues/3699 -// ...compat.extends("plugin:testing-library/react").map(config => ({ -// ...config, -// files: ["**/?(*.)+(spec|test).[jt]s?(x)"], -// })), { -// files: ["**/?(*.)+(spec|test).[jt]s?(x)"], - -// rules: { -// "testing-library/no-container": "off" -// "testing-library/await-async-query": "error", -// "testing-library/no-await-sync-query": "error", -// testing-library/no-debugging-utils": "off", -// "testing-library/no-dom-import": "off", -// "testing-library/no-unnecessary-act": "off", -// }, -// } -]; \ No newline at end of file + }, + prettier, + //Not compatible with ESLint9 yet https://github.com/jsx-eslint/eslint-plugin-react/issues/3699 + // ...compat.extends("plugin:testing-library/react").map(config => ({ + // ...config, + // files: ["**/?(*.)+(spec|test).[jt]s?(x)"], + // })), { + // files: ["**/?(*.)+(spec|test).[jt]s?(x)"], + + // rules: { + // "testing-library/no-container": "off" + // "testing-library/await-async-query": "error", + // "testing-library/no-await-sync-query": "error", + // testing-library/no-debugging-utils": "off", + // "testing-library/no-dom-import": "off", + // "testing-library/no-unnecessary-act": "off", + // }, + // } +]; diff --git a/examples/nextjs-demo/README.md b/examples/nextjs-demo/README.md index ee14292a3..763bd368f 100644 --- a/examples/nextjs-demo/README.md +++ b/examples/nextjs-demo/README.md @@ -1,6 +1,7 @@ # Nextjs @axa-fr/react-oidc demo ## Getting Started + ```sh git clone https://github.com/AxaGuilDEv/react-oidc.git cd react-oidc/packages/nextjs-demo @@ -11,44 +12,49 @@ npm run dev To work with NextJS you need to inject your own history surcharge like the sample below. component/layout.js + ```javascript import { OidcProvider } from '@axa-fr/react-oidc'; -import { useRouter } from 'next/router' +import { useRouter } from 'next/router'; const configuration = { - client_id: 'interactive.public.short', - redirect_uri: 'http://localhost:3001/#authentication/callback', - silent_redirect_uri: 'http://localhost:3001/#authentication/silent-callback', // Optional activate silent-signin that use cookies between OIDC server and client javascript to restore the session - scope: 'openid profile email api offline_access', - authority: 'https://demo.duendesoftware.com' + client_id: 'interactive.public.short', + redirect_uri: 'http://localhost:3001/#authentication/callback', + silent_redirect_uri: 'http://localhost:3001/#authentication/silent-callback', // Optional activate silent-signin that use cookies between OIDC server and client javascript to restore the session + scope: 'openid profile email api offline_access', + authority: 'https://demo.duendesoftware.com', }; -const onEvent=(configurationName, eventName, data )=>{ +const onEvent = (configurationName, eventName, data) => { console.log(`oidc:${configurationName}:${eventName}`, data); -} +}; export default function Layout({ children }) { - const router = useRouter() - const withCustomHistory= () => { + const router = useRouter(); + const withCustomHistory = () => { return { - replaceState: (url) => { - router.replace({ - pathname: url, - }).then(() => { + replaceState: url => { + router + .replace({ + pathname: url, + }) + .then(() => { window.dispatchEvent(new Event('popstate')); - }); - } + }); + }, }; }; - + return ( - <> - -
{children}
-
- - ) + <> + +
{children}
+
+ + ); } - - -``` \ No newline at end of file +``` diff --git a/examples/nextjs-demo/components/layout.js b/examples/nextjs-demo/components/layout.js index 911b8090c..fa8a54e09 100644 --- a/examples/nextjs-demo/components/layout.js +++ b/examples/nextjs-demo/components/layout.js @@ -7,35 +7,40 @@ const configuration = { redirect_uri: 'http://localhost:3001/#authentication/callback', silent_redirect_uri: 'http://localhost:3001/#authentication/silent-callback', // Optional activate silent-signin that use cookies between OIDC server and client javascript to restore the session scope: 'openid profile email api offline_access', - authority: 'https://demo.duendesoftware.com', + authority: 'https://demo.duendesoftware.com', preload_user_info: 'true', }; -const onEvent=(configurationName, eventName, data )=>{ - // eslint-disable-next-line no-undef - console.log(`oidc:${configurationName}:${eventName}`, data); - }; +const onEvent = (configurationName, eventName, data) => { + // eslint-disable-next-line no-undef + console.log(`oidc:${configurationName}:${eventName}`, data); +}; export default function Layout({ children }) { - const router = useRouter(); - const withCustomHistory= () => { - return { - replaceState: (url) => { - router.replace({ - pathname: url, - }).then(() => { - // eslint-disable-next-line no-undef - window.dispatchEvent(new Event('popstate')); - }, - ); - }, - }; + const router = useRouter(); + const withCustomHistory = () => { + return { + replaceState: url => { + router + .replace({ + pathname: url, + }) + .then(() => { + // eslint-disable-next-line no-undef + window.dispatchEvent(new Event('popstate')); + }); + }, }; + }; return ( <> - -
{children}
+ +
{children}
); -} \ No newline at end of file +} diff --git a/examples/nextjs-demo/pages/_app.js b/examples/nextjs-demo/pages/_app.js index 829aeaaca..95cf06fe0 100644 --- a/examples/nextjs-demo/pages/_app.js +++ b/examples/nextjs-demo/pages/_app.js @@ -6,4 +6,4 @@ export default function MyApp({ Component, pageProps }) { ); -} \ No newline at end of file +} diff --git a/examples/nextjs-demo/pages/index.js b/examples/nextjs-demo/pages/index.js index 60f18e231..59d6a5f0c 100644 --- a/examples/nextjs-demo/pages/index.js +++ b/examples/nextjs-demo/pages/index.js @@ -1,90 +1,97 @@ -import {OidcSecure, OidcUserStatus, useOidc, useOidcAccessToken, useOidcIdToken, useOidcUser} from '@axa-fr/react-oidc'; +import { + OidcSecure, + OidcUserStatus, + useOidc, + useOidcAccessToken, + useOidcIdToken, + useOidcUser, +} from '@axa-fr/react-oidc'; import Head from 'next/head'; -const isBrowser = () => typeof window !== "undefined"; +const isBrowser = () => typeof window !== 'undefined'; const DisplayUserInfo = () => { - const{ oidcUser, oidcUserLoadingState } = useOidcUser(); - const { isAuthenticated } = useOidc(); - console.log( - "isBrowser: " + - isBrowser() + - ", isAuthenticated: " + - isAuthenticated + - ", oidcUser: " - ); - console.log(oidcUser); - - switch (oidcUserLoadingState){ - case OidcUserStatus.Loading: - return

User Information are loading

; - case OidcUserStatus.Unauthenticated: - return

you are not authenticated

; - case OidcUserStatus.LoadingError: - return

Fail to load user information

; - default: - return ( -
-
-
User information
-

{JSON.stringify(oidcUser)}

-
-
- ); + const { oidcUser, oidcUserLoadingState } = useOidcUser(); + const { isAuthenticated } = useOidc(); + console.log( + 'isBrowser: ' + isBrowser() + ', isAuthenticated: ' + isAuthenticated + ', oidcUser: ', + ); + console.log(oidcUser); + + switch (oidcUserLoadingState) { + case OidcUserStatus.Loading: + return

User Information are loading

; + case OidcUserStatus.Unauthenticated: + return

you are not authenticated

; + case OidcUserStatus.LoadingError: + return

Fail to load user information

; + default: + return ( +
+
+
User information
+

{JSON.stringify(oidcUser)}

+
+
+ ); } }; export const Profile = () => { - return ( -
- - - -
+
+ + + +
); }; const DisplayAccessToken = () => { - const{ accessToken, accessTokenPayload } = useOidcAccessToken(); + const { accessToken, accessTokenPayload } = useOidcAccessToken(); - if(!accessToken){ - return

you are not authenticated

; + if (!accessToken) { + return

you are not authenticated

; } return ( -
-
-
Access Token
-

- Please consider to configure the ServiceWorker in order to protect your application from XSRF attacks. "access_token" and "refresh_token" will never be accessible from your client side javascript.

- {

Access Token: {JSON.stringify(accessToken)}

} - {accessTokenPayload != null &&

Access Token Payload: {JSON.stringify(accessTokenPayload)}

} -
+
+
+
Access Token
+

+ Please consider to configure the ServiceWorker in order to protect your application from + XSRF attacks. "access_token" and "refresh_token" will never be + accessible from your client side javascript. +

+ {

Access Token: {JSON.stringify(accessToken)}

} + {accessTokenPayload != null && ( +

Access Token Payload: {JSON.stringify(accessTokenPayload)}

+ )}
+
); }; +const DisplayIdToken = () => { + const { idToken, idTokenPayload } = useOidcIdToken(); -const DisplayIdToken =() => { - const{ idToken, idTokenPayload } = useOidcIdToken(); - - if(!idToken){ - return

you are not authenticated

; + if (!idToken) { + return

you are not authenticated

; } return ( -
-
-
ID Token
- {

IdToken: {JSON.stringify(idToken)}

} - {idTokenPayload != null &&

IdToken Payload: {JSON.stringify(idTokenPayload)}

} -
+
+
+
ID Token
+ {

IdToken: {JSON.stringify(idToken)}

} + {idTokenPayload != null && ( +

IdToken Payload: {JSON.stringify(idTokenPayload)}

+ )}
+
); }; export default function Home() { - return (
@@ -93,18 +100,16 @@ export default function Home() {
-

- Welcome to Next.js @axa-fr/react-oidc demo! + Welcome to{' '} + Next.js @axa-fr/react-oidc demo!

- +
- -
-
+