diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8e0cc2acf..d62707aac 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -71,7 +71,7 @@ jobs: echo "NEXT_VERSION=$nextStrict" >> $GITHUB_ENV - name: Create Draft Release - uses: ncipollo/release-action@v1.12.0 + uses: ncipollo/release-action@v1.13.0 if: ${{ github.ref_name == 'release' }} with: prerelease: true @@ -137,9 +137,9 @@ jobs: echo "Running tests..." if [[ "x${{ github.event.inputs.ignoreLowerCoverage }}" == "xtrue" ]]; then echo "Lower coverage failures will be ignored." - ./ietf/manage.py test --validate-html-harder --settings=settings_postgrestest --ignore-lower-coverage + ./ietf/manage.py test --validate-html-harder --settings=settings_test --ignore-lower-coverage else - ./ietf/manage.py test --validate-html-harder --settings=settings_postgrestest + ./ietf/manage.py test --validate-html-harder --settings=settings_test fi coverage xml @@ -352,7 +352,7 @@ jobs: histCoveragePath: historical-coverage.json - name: Create Release - uses: ncipollo/release-action@v1.12.0 + uses: ncipollo/release-action@v1.13.0 if: ${{ env.SHOULD_DEPLOY == 'true' }} with: allowUpdates: true @@ -365,7 +365,7 @@ jobs: token: ${{ secrets.GITHUB_TOKEN }} - name: Update Baseline Coverage - uses: ncipollo/release-action@v1.12.0 + uses: ncipollo/release-action@v1.13.0 if: ${{ github.event.inputs.updateCoverage == 'true' }} with: allowUpdates: true diff --git a/.github/workflows/ci-run-tests.yml b/.github/workflows/ci-run-tests.yml index 15bb3ab97..4f601734b 100644 --- a/.github/workflows/ci-run-tests.yml +++ b/.github/workflows/ci-run-tests.yml @@ -46,7 +46,7 @@ jobs: exit 1 fi echo "Running tests..." - ./ietf/manage.py test --validate-html-harder --settings=settings_postgrestest + ./ietf/manage.py test --validate-html-harder --settings=settings_test coverage xml - name: Upload Coverage Results to Codecov diff --git a/.pnp.cjs b/.pnp.cjs index bb809ceb1..66bfbf894 100644 --- a/.pnp.cjs +++ b/.pnp.cjs @@ -42,31 +42,31 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["@fullcalendar/luxon3", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:6.1.8"],\ ["@fullcalendar/timegrid", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:6.1.8"],\ ["@fullcalendar/vue3", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:6.1.8"],\ - ["@parcel/optimizer-data-url", "npm:2.9.2"],\ - ["@parcel/transformer-inline-string", "npm:2.9.2"],\ - ["@parcel/transformer-sass", "npm:2.9.2"],\ + ["@parcel/optimizer-data-url", "npm:2.9.3"],\ + ["@parcel/transformer-inline-string", "npm:2.9.3"],\ + ["@parcel/transformer-sass", "npm:2.9.3"],\ ["@popperjs/core", "npm:2.11.8"],\ - ["@rollup/pluginutils", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:5.0.2"],\ + ["@rollup/pluginutils", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:5.0.3"],\ ["@twuni/emojify", "npm:1.0.2"],\ - ["@vitejs/plugin-vue", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:4.2.3"],\ - ["bootstrap", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:5.2.3"],\ + ["@vitejs/plugin-vue", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:4.3.3"],\ + ["bootstrap", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:5.3.0"],\ ["bootstrap-icons", "npm:1.10.5"],\ ["browser-fs-access", "npm:0.34.1"],\ ["browserlist", "npm:1.0.1"],\ - ["c8", "npm:8.0.0"],\ - ["caniuse-lite", "npm:1.0.30001495"],\ + ["c8", "npm:8.0.1"],\ + ["caniuse-lite", "npm:1.0.30001519"],\ ["d3", "npm:7.8.5"],\ - ["eslint", "npm:8.43.0"],\ + ["eslint", "npm:8.47.0"],\ ["eslint-config-standard", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:17.1.0"],\ - ["eslint-plugin-cypress", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.13.3"],\ - ["eslint-plugin-import", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.27.5"],\ + ["eslint-plugin-cypress", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.14.0"],\ + ["eslint-plugin-import", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.28.1"],\ ["eslint-plugin-n", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:16.0.1"],\ ["eslint-plugin-node", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:11.1.0"],\ ["eslint-plugin-promise", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:6.1.1"],\ - ["eslint-plugin-vue", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:9.15.1"],\ + ["eslint-plugin-vue", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:9.17.0"],\ ["file-saver", "npm:2.0.5"],\ ["highcharts", "npm:11.1.0"],\ - ["html-validate", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:8.0.5"],\ + ["html-validate", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:8.2.0"],\ ["ical.js", "npm:1.5.0"],\ ["jquery", "npm:3.7.0"],\ ["jquery-migrate", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:3.4.1"],\ @@ -74,17 +74,17 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["list.js", "npm:2.3.1"],\ ["lodash", "npm:4.17.21"],\ ["lodash-es", "npm:4.17.21"],\ - ["luxon", "npm:3.3.0"],\ + ["luxon", "npm:3.4.0"],\ ["moment", "npm:2.29.4"],\ ["moment-timezone", "npm:0.5.43"],\ ["ms", "npm:2.1.3"],\ ["murmurhash-js", "npm:1.0.0"],\ ["naive-ui", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.34.4"],\ - ["parcel", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.9.2"],\ - ["pinia", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.1.4"],\ + ["parcel", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.9.3"],\ + ["pinia", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.1.6"],\ ["pinia-plugin-persist", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:1.0.0"],\ ["pug", "npm:3.0.2"],\ - ["sass", "npm:1.63.4"],\ + ["sass", "npm:1.66.1"],\ ["seedrandom", "npm:3.0.5"],\ ["select2", "npm:4.1.0-rc.0"],\ ["select2-bootstrap-5-theme", "npm:1.3.0"],\ @@ -92,15 +92,24 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["shepherd.js", "npm:11.1.1"],\ ["slugify", "npm:1.6.6"],\ ["sortablejs", "npm:1.15.0"],\ - ["vanillajs-datepicker", "npm:1.3.3"],\ - ["vite", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:4.3.9"],\ + ["vanillajs-datepicker", "npm:1.3.4"],\ + ["vite", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:4.4.9"],\ ["vue", "npm:3.3.4"],\ - ["vue-router", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:4.2.2"],\ + ["vue-router", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:4.2.4"],\ ["zxcvbn", "npm:4.4.2"]\ ],\ "linkType": "SOFT"\ }]\ ]],\ + ["@aashutoshrathi/word-wrap", [\ + ["npm:1.2.6", {\ + "packageLocation": "./.yarn/cache/@aashutoshrathi-word-wrap-npm-1.2.6-5b1d95e487-ada901b9e7.zip/node_modules/@aashutoshrathi/word-wrap/",\ + "packageDependencies": [\ + ["@aashutoshrathi/word-wrap", "npm:1.2.6"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["@babel/code-frame", [\ ["npm:7.16.7", {\ "packageLocation": "./.yarn/cache/@babel-code-frame-npm-7.16.7-093eb9e124-db2f7faa31.zip/node_modules/@babel/code-frame/",\ @@ -224,199 +233,199 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["@esbuild/android-arm", [\ - ["npm:0.17.13", {\ - "packageLocation": "./.yarn/unplugged/@esbuild-android-arm-npm-0.17.13-235368b68b/node_modules/@esbuild/android-arm/",\ + ["npm:0.18.20", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-android-arm-npm-0.18.20-a30c33e9ed/node_modules/@esbuild/android-arm/",\ "packageDependencies": [\ - ["@esbuild/android-arm", "npm:0.17.13"]\ + ["@esbuild/android-arm", "npm:0.18.20"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@esbuild/android-arm64", [\ - ["npm:0.17.13", {\ - "packageLocation": "./.yarn/unplugged/@esbuild-android-arm64-npm-0.17.13-7d21726b95/node_modules/@esbuild/android-arm64/",\ + ["npm:0.18.20", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-android-arm64-npm-0.18.20-fd4fb45ae7/node_modules/@esbuild/android-arm64/",\ "packageDependencies": [\ - ["@esbuild/android-arm64", "npm:0.17.13"]\ + ["@esbuild/android-arm64", "npm:0.18.20"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@esbuild/android-x64", [\ - ["npm:0.17.13", {\ - "packageLocation": "./.yarn/unplugged/@esbuild-android-x64-npm-0.17.13-dd7977b0ba/node_modules/@esbuild/android-x64/",\ + ["npm:0.18.20", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-android-x64-npm-0.18.20-22b610e3f4/node_modules/@esbuild/android-x64/",\ "packageDependencies": [\ - ["@esbuild/android-x64", "npm:0.17.13"]\ + ["@esbuild/android-x64", "npm:0.18.20"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@esbuild/darwin-arm64", [\ - ["npm:0.17.13", {\ - "packageLocation": "./.yarn/unplugged/@esbuild-darwin-arm64-npm-0.17.13-3c31ee9bef/node_modules/@esbuild/darwin-arm64/",\ + ["npm:0.18.20", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-darwin-arm64-npm-0.18.20-00b3504077/node_modules/@esbuild/darwin-arm64/",\ "packageDependencies": [\ - ["@esbuild/darwin-arm64", "npm:0.17.13"]\ + ["@esbuild/darwin-arm64", "npm:0.18.20"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@esbuild/darwin-x64", [\ - ["npm:0.17.13", {\ - "packageLocation": "./.yarn/unplugged/@esbuild-darwin-x64-npm-0.17.13-2af4bfbe4a/node_modules/@esbuild/darwin-x64/",\ + ["npm:0.18.20", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-darwin-x64-npm-0.18.20-767fe27d1b/node_modules/@esbuild/darwin-x64/",\ "packageDependencies": [\ - ["@esbuild/darwin-x64", "npm:0.17.13"]\ + ["@esbuild/darwin-x64", "npm:0.18.20"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@esbuild/freebsd-arm64", [\ - ["npm:0.17.13", {\ - "packageLocation": "./.yarn/unplugged/@esbuild-freebsd-arm64-npm-0.17.13-aee39a763e/node_modules/@esbuild/freebsd-arm64/",\ + ["npm:0.18.20", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-freebsd-arm64-npm-0.18.20-797e8c8987/node_modules/@esbuild/freebsd-arm64/",\ "packageDependencies": [\ - ["@esbuild/freebsd-arm64", "npm:0.17.13"]\ + ["@esbuild/freebsd-arm64", "npm:0.18.20"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@esbuild/freebsd-x64", [\ - ["npm:0.17.13", {\ - "packageLocation": "./.yarn/unplugged/@esbuild-freebsd-x64-npm-0.17.13-279fb33dbc/node_modules/@esbuild/freebsd-x64/",\ + ["npm:0.18.20", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-freebsd-x64-npm-0.18.20-f7563ff3dd/node_modules/@esbuild/freebsd-x64/",\ "packageDependencies": [\ - ["@esbuild/freebsd-x64", "npm:0.17.13"]\ + ["@esbuild/freebsd-x64", "npm:0.18.20"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@esbuild/linux-arm", [\ - ["npm:0.17.13", {\ - "packageLocation": "./.yarn/unplugged/@esbuild-linux-arm-npm-0.17.13-520e292c25/node_modules/@esbuild/linux-arm/",\ + ["npm:0.18.20", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-arm-npm-0.18.20-06b400b09e/node_modules/@esbuild/linux-arm/",\ "packageDependencies": [\ - ["@esbuild/linux-arm", "npm:0.17.13"]\ + ["@esbuild/linux-arm", "npm:0.18.20"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@esbuild/linux-arm64", [\ - ["npm:0.17.13", {\ - "packageLocation": "./.yarn/unplugged/@esbuild-linux-arm64-npm-0.17.13-533eb0e4eb/node_modules/@esbuild/linux-arm64/",\ + ["npm:0.18.20", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-arm64-npm-0.18.20-7b48b328fe/node_modules/@esbuild/linux-arm64/",\ "packageDependencies": [\ - ["@esbuild/linux-arm64", "npm:0.17.13"]\ + ["@esbuild/linux-arm64", "npm:0.18.20"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@esbuild/linux-ia32", [\ - ["npm:0.17.13", {\ - "packageLocation": "./.yarn/unplugged/@esbuild-linux-ia32-npm-0.17.13-46f5ce8b93/node_modules/@esbuild/linux-ia32/",\ + ["npm:0.18.20", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-ia32-npm-0.18.20-2f5a035f9e/node_modules/@esbuild/linux-ia32/",\ "packageDependencies": [\ - ["@esbuild/linux-ia32", "npm:0.17.13"]\ + ["@esbuild/linux-ia32", "npm:0.18.20"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@esbuild/linux-loong64", [\ - ["npm:0.17.13", {\ - "packageLocation": "./.yarn/unplugged/@esbuild-linux-loong64-npm-0.17.13-ef4c0fa326/node_modules/@esbuild/linux-loong64/",\ + ["npm:0.18.20", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-loong64-npm-0.18.20-e91b93ee90/node_modules/@esbuild/linux-loong64/",\ "packageDependencies": [\ - ["@esbuild/linux-loong64", "npm:0.17.13"]\ + ["@esbuild/linux-loong64", "npm:0.18.20"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@esbuild/linux-mips64el", [\ - ["npm:0.17.13", {\ - "packageLocation": "./.yarn/unplugged/@esbuild-linux-mips64el-npm-0.17.13-5b1f2c5c01/node_modules/@esbuild/linux-mips64el/",\ + ["npm:0.18.20", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-mips64el-npm-0.18.20-a5e9429f2a/node_modules/@esbuild/linux-mips64el/",\ "packageDependencies": [\ - ["@esbuild/linux-mips64el", "npm:0.17.13"]\ + ["@esbuild/linux-mips64el", "npm:0.18.20"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@esbuild/linux-ppc64", [\ - ["npm:0.17.13", {\ - "packageLocation": "./.yarn/unplugged/@esbuild-linux-ppc64-npm-0.17.13-e41e2e492f/node_modules/@esbuild/linux-ppc64/",\ + ["npm:0.18.20", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-ppc64-npm-0.18.20-218f398134/node_modules/@esbuild/linux-ppc64/",\ "packageDependencies": [\ - ["@esbuild/linux-ppc64", "npm:0.17.13"]\ + ["@esbuild/linux-ppc64", "npm:0.18.20"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@esbuild/linux-riscv64", [\ - ["npm:0.17.13", {\ - "packageLocation": "./.yarn/unplugged/@esbuild-linux-riscv64-npm-0.17.13-b222bf3e73/node_modules/@esbuild/linux-riscv64/",\ + ["npm:0.18.20", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-riscv64-npm-0.18.20-6a2972f753/node_modules/@esbuild/linux-riscv64/",\ "packageDependencies": [\ - ["@esbuild/linux-riscv64", "npm:0.17.13"]\ + ["@esbuild/linux-riscv64", "npm:0.18.20"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@esbuild/linux-s390x", [\ - ["npm:0.17.13", {\ - "packageLocation": "./.yarn/unplugged/@esbuild-linux-s390x-npm-0.17.13-5a91ba0bd2/node_modules/@esbuild/linux-s390x/",\ + ["npm:0.18.20", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-s390x-npm-0.18.20-ff9d596142/node_modules/@esbuild/linux-s390x/",\ "packageDependencies": [\ - ["@esbuild/linux-s390x", "npm:0.17.13"]\ + ["@esbuild/linux-s390x", "npm:0.18.20"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@esbuild/linux-x64", [\ - ["npm:0.17.13", {\ - "packageLocation": "./.yarn/unplugged/@esbuild-linux-x64-npm-0.17.13-01575597b4/node_modules/@esbuild/linux-x64/",\ + ["npm:0.18.20", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-x64-npm-0.18.20-de8e99b449/node_modules/@esbuild/linux-x64/",\ "packageDependencies": [\ - ["@esbuild/linux-x64", "npm:0.17.13"]\ + ["@esbuild/linux-x64", "npm:0.18.20"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@esbuild/netbsd-x64", [\ - ["npm:0.17.13", {\ - "packageLocation": "./.yarn/unplugged/@esbuild-netbsd-x64-npm-0.17.13-8e49ac13ef/node_modules/@esbuild/netbsd-x64/",\ + ["npm:0.18.20", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-netbsd-x64-npm-0.18.20-39b460150f/node_modules/@esbuild/netbsd-x64/",\ "packageDependencies": [\ - ["@esbuild/netbsd-x64", "npm:0.17.13"]\ + ["@esbuild/netbsd-x64", "npm:0.18.20"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@esbuild/openbsd-x64", [\ - ["npm:0.17.13", {\ - "packageLocation": "./.yarn/unplugged/@esbuild-openbsd-x64-npm-0.17.13-f1857ad246/node_modules/@esbuild/openbsd-x64/",\ + ["npm:0.18.20", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-openbsd-x64-npm-0.18.20-90ab921595/node_modules/@esbuild/openbsd-x64/",\ "packageDependencies": [\ - ["@esbuild/openbsd-x64", "npm:0.17.13"]\ + ["@esbuild/openbsd-x64", "npm:0.18.20"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@esbuild/sunos-x64", [\ - ["npm:0.17.13", {\ - "packageLocation": "./.yarn/unplugged/@esbuild-sunos-x64-npm-0.17.13-d366ada0a9/node_modules/@esbuild/sunos-x64/",\ + ["npm:0.18.20", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-sunos-x64-npm-0.18.20-d18b46b343/node_modules/@esbuild/sunos-x64/",\ "packageDependencies": [\ - ["@esbuild/sunos-x64", "npm:0.17.13"]\ + ["@esbuild/sunos-x64", "npm:0.18.20"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@esbuild/win32-arm64", [\ - ["npm:0.17.13", {\ - "packageLocation": "./.yarn/unplugged/@esbuild-win32-arm64-npm-0.17.13-cd496c2d1d/node_modules/@esbuild/win32-arm64/",\ + ["npm:0.18.20", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-win32-arm64-npm-0.18.20-a58fe6c6a3/node_modules/@esbuild/win32-arm64/",\ "packageDependencies": [\ - ["@esbuild/win32-arm64", "npm:0.17.13"]\ + ["@esbuild/win32-arm64", "npm:0.18.20"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@esbuild/win32-ia32", [\ - ["npm:0.17.13", {\ - "packageLocation": "./.yarn/unplugged/@esbuild-win32-ia32-npm-0.17.13-8a813564f3/node_modules/@esbuild/win32-ia32/",\ + ["npm:0.18.20", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-win32-ia32-npm-0.18.20-d7ee926338/node_modules/@esbuild/win32-ia32/",\ "packageDependencies": [\ - ["@esbuild/win32-ia32", "npm:0.17.13"]\ + ["@esbuild/win32-ia32", "npm:0.18.20"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@esbuild/win32-x64", [\ - ["npm:0.17.13", {\ - "packageLocation": "./.yarn/unplugged/@esbuild-win32-x64-npm-0.17.13-29882f65f7/node_modules/@esbuild/win32-x64/",\ + ["npm:0.18.20", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-win32-x64-npm-0.18.20-37a9ab2bda/node_modules/@esbuild/win32-x64/",\ "packageDependencies": [\ - ["@esbuild/win32-x64", "npm:0.17.13"]\ + ["@esbuild/win32-x64", "npm:0.18.20"]\ ],\ "linkType": "HARD"\ }]\ @@ -429,12 +438,12 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "SOFT"\ }],\ - ["virtual:5757109ac88221e94a852cc9f73e2f55465a7102fffadd66cbbc453ec0085a59a55391bf490e79144c3026a10d76b992734f4e89f8c9b0e26d0c979c648afdd9#npm:4.4.0", {\ - "packageLocation": "./.yarn/__virtual__/@eslint-community-eslint-utils-virtual-944437d78e/0/cache/@eslint-community-eslint-utils-npm-4.4.0-d1791bd5a3-cdfe3ae42b.zip/node_modules/@eslint-community/eslint-utils/",\ + ["virtual:84c6b60ea80c2e474ae2eb1949a4b42a725b5ad125a348fd9ccd31d528ef15de82d28192a86b98baf21067fd8c90bd02753cac42e9ee96bf5f8084788455b3e4#npm:4.4.0", {\ + "packageLocation": "./.yarn/__virtual__/@eslint-community-eslint-utils-virtual-5ceedd2a81/0/cache/@eslint-community-eslint-utils-npm-4.4.0-d1791bd5a3-cdfe3ae42b.zip/node_modules/@eslint-community/eslint-utils/",\ "packageDependencies": [\ - ["@eslint-community/eslint-utils", "virtual:5757109ac88221e94a852cc9f73e2f55465a7102fffadd66cbbc453ec0085a59a55391bf490e79144c3026a10d76b992734f4e89f8c9b0e26d0c979c648afdd9#npm:4.4.0"],\ + ["@eslint-community/eslint-utils", "virtual:84c6b60ea80c2e474ae2eb1949a4b42a725b5ad125a348fd9ccd31d528ef15de82d28192a86b98baf21067fd8c90bd02753cac42e9ee96bf5f8084788455b3e4#npm:4.4.0"],\ ["@types/eslint", null],\ - ["eslint", "npm:8.43.0"],\ + ["eslint", "npm:8.47.0"],\ ["eslint-visitor-keys", "npm:3.3.0"]\ ],\ "packagePeers": [\ @@ -445,29 +454,29 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["@eslint-community/regexpp", [\ - ["npm:4.4.1", {\ - "packageLocation": "./.yarn/cache/@eslint-community-regexpp-npm-4.4.1-44c7391499-db97d8d08e.zip/node_modules/@eslint-community/regexpp/",\ - "packageDependencies": [\ - ["@eslint-community/regexpp", "npm:4.4.1"]\ - ],\ - "linkType": "HARD"\ - }],\ ["npm:4.5.1", {\ "packageLocation": "./.yarn/cache/@eslint-community-regexpp-npm-4.5.1-bf72922237-6d901166d6.zip/node_modules/@eslint-community/regexpp/",\ "packageDependencies": [\ ["@eslint-community/regexpp", "npm:4.5.1"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:4.8.0", {\ + "packageLocation": "./.yarn/cache/@eslint-community-regexpp-npm-4.8.0-92ece47e3d-601e6d033d.zip/node_modules/@eslint-community/regexpp/",\ + "packageDependencies": [\ + ["@eslint-community/regexpp", "npm:4.8.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@eslint/eslintrc", [\ - ["npm:2.0.3", {\ - "packageLocation": "./.yarn/cache/@eslint-eslintrc-npm-2.0.3-531b6e79f7-ddc51f25f8.zip/node_modules/@eslint/eslintrc/",\ + ["npm:2.1.2", {\ + "packageLocation": "./.yarn/cache/@eslint-eslintrc-npm-2.1.2-feb0771c9f-bc742a1e3b.zip/node_modules/@eslint/eslintrc/",\ "packageDependencies": [\ - ["@eslint/eslintrc", "npm:2.0.3"],\ + ["@eslint/eslintrc", "npm:2.1.2"],\ ["ajv", "npm:6.12.6"],\ ["debug", "virtual:b86a9fb34323a98c6519528ed55faa0d9b44ca8879307c0b29aa384bde47ff59a7d0c9051b31246f14521dfb71ba3c5d6d0b35c29fffc17bf875aa6ad977d9e8#npm:4.3.4"],\ - ["espree", "npm:9.5.2"],\ + ["espree", "npm:9.6.1"],\ ["globals", "npm:13.19.0"],\ ["ignore", "npm:5.2.0"],\ ["import-fresh", "npm:3.3.0"],\ @@ -479,10 +488,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["@eslint/js", [\ - ["npm:8.43.0", {\ - "packageLocation": "./.yarn/cache/@eslint-js-npm-8.43.0-60a60994b7-580487a09c.zip/node_modules/@eslint/js/",\ + ["npm:8.48.0", {\ + "packageLocation": "./.yarn/cache/@eslint-js-npm-8.48.0-cee42a7097-b2755f9c0e.zip/node_modules/@eslint/js/",\ "packageDependencies": [\ - ["@eslint/js", "npm:8.43.0"]\ + ["@eslint/js", "npm:8.48.0"]\ ],\ "linkType": "HARD"\ }]\ @@ -645,7 +654,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["@fullcalendar/core", "npm:6.1.8"],\ ["@types/fullcalendar__core", null],\ ["@types/luxon", null],\ - ["luxon", "npm:3.3.0"]\ + ["luxon", "npm:3.4.0"]\ ],\ "packagePeers": [\ "@fullcalendar/core",\ @@ -1109,15 +1118,15 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["@parcel/bundler-default", [\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/cache/@parcel-bundler-default-npm-2.9.2-cd927ae646-acd5045aae.zip/node_modules/@parcel/bundler-default/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/cache/@parcel-bundler-default-npm-2.9.3-da108dccec-271f354e61.zip/node_modules/@parcel/bundler-default/",\ "packageDependencies": [\ - ["@parcel/bundler-default", "npm:2.9.2"],\ - ["@parcel/diagnostic", "npm:2.9.2"],\ - ["@parcel/graph", "npm:2.9.2"],\ - ["@parcel/hash", "npm:2.9.2"],\ - ["@parcel/plugin", "npm:2.9.2"],\ - ["@parcel/utils", "npm:2.9.2"],\ + ["@parcel/bundler-default", "npm:2.9.3"],\ + ["@parcel/diagnostic", "npm:2.9.3"],\ + ["@parcel/graph", "npm:2.9.3"],\ + ["@parcel/hash", "npm:2.9.3"],\ + ["@parcel/plugin", "npm:2.9.3"],\ + ["@parcel/utils", "npm:2.9.3"],\ ["nullthrows", "npm:1.1.1"]\ ],\ "linkType": "HARD"\ @@ -1131,30 +1140,13 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "SOFT"\ }],\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/cache/@parcel-cache-npm-2.9.2-5aee286b54-7968be08b0.zip/node_modules/@parcel/cache/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/cache/@parcel-cache-npm-2.9.3-1875c3a53a-31bb356d2e.zip/node_modules/@parcel/cache/",\ "packageDependencies": [\ - ["@parcel/cache", "npm:2.9.2"]\ + ["@parcel/cache", "npm:2.9.3"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:43efe8c40140be76b32499653f543b18393eb1de2ef0e88117e3f2cada1597e4a2a0c0d655c705adbf72ebea2ed1fa9151fd162dc048cb763ed04af898c30a12#npm:2.9.2", {\ - "packageLocation": "./.yarn/__virtual__/@parcel-cache-virtual-b519507b52/0/cache/@parcel-cache-npm-2.9.2-5aee286b54-7968be08b0.zip/node_modules/@parcel/cache/",\ - "packageDependencies": [\ - ["@parcel/cache", "virtual:43efe8c40140be76b32499653f543b18393eb1de2ef0e88117e3f2cada1597e4a2a0c0d655c705adbf72ebea2ed1fa9151fd162dc048cb763ed04af898c30a12#npm:2.9.2"],\ - ["@parcel/core", "npm:2.9.2"],\ - ["@parcel/fs", "virtual:43efe8c40140be76b32499653f543b18393eb1de2ef0e88117e3f2cada1597e4a2a0c0d655c705adbf72ebea2ed1fa9151fd162dc048cb763ed04af898c30a12#npm:2.9.2"],\ - ["@parcel/logger", "npm:2.9.2"],\ - ["@parcel/utils", "npm:2.9.2"],\ - ["@types/parcel__core", null],\ - ["lmdb", "npm:2.7.11"]\ - ],\ - "packagePeers": [\ - "@parcel/core",\ - "@types/parcel__core"\ - ],\ - "linkType": "HARD"\ - }],\ ["virtual:aa1797faca4a934b86d07dfa52e0db4db288b85fed415e745782ef9bd4bd39771970f9017a79cb7ed092d23d2539cea12a1cec949dfa0bb86e0fda2290caa70e#npm:2.6.2", {\ "packageLocation": "./.yarn/__virtual__/@parcel-cache-virtual-f3b3d44508/0/cache/@parcel-cache-npm-2.6.2-7c97030a45-e7b540fe10.zip/node_modules/@parcel/cache/",\ "packageDependencies": [\ @@ -1171,14 +1163,31 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "HARD"\ }],\ - ["virtual:da147a7755225862ebff1a307c66ffdb006466b8c3f2a3348fb4fd53cdf79b74a130f888a5e17f97eb991209008bfec72070985f78090e5c5229070de92b61e0#npm:2.9.2", {\ - "packageLocation": "./.yarn/__virtual__/@parcel-cache-virtual-d5cc0ae154/0/cache/@parcel-cache-npm-2.9.2-5aee286b54-7968be08b0.zip/node_modules/@parcel/cache/",\ + ["virtual:b343ad5e82ae43a5371ef526d26f5282ba433795366dfabc05f623d5d686c21c439265330c2a02c006fc56a66deb59f0ca81d8c6e1639d3af2ebf54dd304f27f#npm:2.9.3", {\ + "packageLocation": "./.yarn/__virtual__/@parcel-cache-virtual-9c22134e5d/0/cache/@parcel-cache-npm-2.9.3-1875c3a53a-31bb356d2e.zip/node_modules/@parcel/cache/",\ "packageDependencies": [\ - ["@parcel/cache", "virtual:da147a7755225862ebff1a307c66ffdb006466b8c3f2a3348fb4fd53cdf79b74a130f888a5e17f97eb991209008bfec72070985f78090e5c5229070de92b61e0#npm:2.9.2"],\ + ["@parcel/cache", "virtual:b343ad5e82ae43a5371ef526d26f5282ba433795366dfabc05f623d5d686c21c439265330c2a02c006fc56a66deb59f0ca81d8c6e1639d3af2ebf54dd304f27f#npm:2.9.3"],\ + ["@parcel/core", "npm:2.9.3"],\ + ["@parcel/fs", "virtual:b343ad5e82ae43a5371ef526d26f5282ba433795366dfabc05f623d5d686c21c439265330c2a02c006fc56a66deb59f0ca81d8c6e1639d3af2ebf54dd304f27f#npm:2.9.3"],\ + ["@parcel/logger", "npm:2.9.3"],\ + ["@parcel/utils", "npm:2.9.3"],\ + ["@types/parcel__core", null],\ + ["lmdb", "npm:2.7.11"]\ + ],\ + "packagePeers": [\ + "@parcel/core",\ + "@types/parcel__core"\ + ],\ + "linkType": "HARD"\ + }],\ + ["virtual:eef76f9fa9a588b8c892c493e6d851511aea6315c558ec074869cea35c69731f4489ed7c976fb55873d3f05e6ad5a0ad010792d1d87f51f47b52fc5dc26251b7#npm:2.9.3", {\ + "packageLocation": "./.yarn/__virtual__/@parcel-cache-virtual-fff02f4fd8/0/cache/@parcel-cache-npm-2.9.3-1875c3a53a-31bb356d2e.zip/node_modules/@parcel/cache/",\ + "packageDependencies": [\ + ["@parcel/cache", "virtual:eef76f9fa9a588b8c892c493e6d851511aea6315c558ec074869cea35c69731f4489ed7c976fb55873d3f05e6ad5a0ad010792d1d87f51f47b52fc5dc26251b7#npm:2.9.3"],\ ["@parcel/core", "npm:2.6.2"],\ - ["@parcel/fs", "virtual:da147a7755225862ebff1a307c66ffdb006466b8c3f2a3348fb4fd53cdf79b74a130f888a5e17f97eb991209008bfec72070985f78090e5c5229070de92b61e0#npm:2.9.2"],\ - ["@parcel/logger", "npm:2.9.2"],\ - ["@parcel/utils", "npm:2.9.2"],\ + ["@parcel/fs", "virtual:eef76f9fa9a588b8c892c493e6d851511aea6315c558ec074869cea35c69731f4489ed7c976fb55873d3f05e6ad5a0ad010792d1d87f51f47b52fc5dc26251b7#npm:2.9.3"],\ + ["@parcel/logger", "npm:2.9.3"],\ + ["@parcel/utils", "npm:2.9.3"],\ ["@types/parcel__core", null],\ ["lmdb", "npm:2.7.11"]\ ],\ @@ -1197,68 +1206,68 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "HARD"\ }],\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/cache/@parcel-codeframe-npm-2.9.2-964de9e20f-6a9cc23994.zip/node_modules/@parcel/codeframe/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/cache/@parcel-codeframe-npm-2.9.3-2580057b7a-f86a4d90eb.zip/node_modules/@parcel/codeframe/",\ "packageDependencies": [\ - ["@parcel/codeframe", "npm:2.9.2"],\ + ["@parcel/codeframe", "npm:2.9.3"],\ ["chalk", "npm:4.1.2"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@parcel/compressor-raw", [\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/cache/@parcel-compressor-raw-npm-2.9.2-7dfbfadaf9-263005e4bc.zip/node_modules/@parcel/compressor-raw/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/cache/@parcel-compressor-raw-npm-2.9.3-be5ba2acf4-2124c347a5.zip/node_modules/@parcel/compressor-raw/",\ "packageDependencies": [\ - ["@parcel/compressor-raw", "npm:2.9.2"],\ - ["@parcel/plugin", "npm:2.9.2"]\ + ["@parcel/compressor-raw", "npm:2.9.3"],\ + ["@parcel/plugin", "npm:2.9.3"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@parcel/config-default", [\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/cache/@parcel-config-default-npm-2.9.2-7a372f4a8e-b07a1c93d7.zip/node_modules/@parcel/config-default/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/cache/@parcel-config-default-npm-2.9.3-a459e67e01-61ef21351e.zip/node_modules/@parcel/config-default/",\ "packageDependencies": [\ - ["@parcel/config-default", "npm:2.9.2"]\ + ["@parcel/config-default", "npm:2.9.3"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:c28611412c955a1fda20639657c96ff2be961c906ace258361995235bacf8e4a907ad524e4fb9fb5a0aaae51e5563719e1d95f46bcfadadbe883a4a6942a7afb#npm:2.9.2", {\ - "packageLocation": "./.yarn/__virtual__/@parcel-config-default-virtual-9c28b5e2d3/0/cache/@parcel-config-default-npm-2.9.2-7a372f4a8e-b07a1c93d7.zip/node_modules/@parcel/config-default/",\ + ["virtual:8b9ffb5b471d92e43ed44d9d4b3997be1cadcb1d0802b72e4feeb1d8632c82ed490c0f9ad36e4817250e971bef57542a4c559c6969b21f3656e8c43773148c7f#npm:2.9.3", {\ + "packageLocation": "./.yarn/__virtual__/@parcel-config-default-virtual-76a38aa321/0/cache/@parcel-config-default-npm-2.9.3-a459e67e01-61ef21351e.zip/node_modules/@parcel/config-default/",\ "packageDependencies": [\ - ["@parcel/config-default", "virtual:c28611412c955a1fda20639657c96ff2be961c906ace258361995235bacf8e4a907ad524e4fb9fb5a0aaae51e5563719e1d95f46bcfadadbe883a4a6942a7afb#npm:2.9.2"],\ - ["@parcel/bundler-default", "npm:2.9.2"],\ - ["@parcel/compressor-raw", "npm:2.9.2"],\ - ["@parcel/core", "npm:2.9.2"],\ - ["@parcel/namer-default", "npm:2.9.2"],\ - ["@parcel/optimizer-css", "npm:2.9.2"],\ - ["@parcel/optimizer-htmlnano", "npm:2.9.2"],\ - ["@parcel/optimizer-image", "virtual:9c28b5e2d3761cbe1edde136d8abe87fb1a09925c11d4787a7ad5a932c042af89b2331a8b19e0fb31247f148ca4027a411870484a93be509fe332049741011f4#npm:2.9.2"],\ - ["@parcel/optimizer-svgo", "npm:2.9.2"],\ - ["@parcel/optimizer-swc", "npm:2.9.2"],\ - ["@parcel/packager-css", "npm:2.9.2"],\ - ["@parcel/packager-html", "npm:2.9.2"],\ - ["@parcel/packager-js", "npm:2.9.2"],\ - ["@parcel/packager-raw", "npm:2.9.2"],\ - ["@parcel/packager-svg", "npm:2.9.2"],\ - ["@parcel/reporter-dev-server", "npm:2.9.2"],\ - ["@parcel/resolver-default", "npm:2.9.2"],\ - ["@parcel/runtime-browser-hmr", "npm:2.9.2"],\ - ["@parcel/runtime-js", "npm:2.9.2"],\ - ["@parcel/runtime-react-refresh", "npm:2.9.2"],\ - ["@parcel/runtime-service-worker", "npm:2.9.2"],\ - ["@parcel/transformer-babel", "npm:2.9.2"],\ - ["@parcel/transformer-css", "npm:2.9.2"],\ - ["@parcel/transformer-html", "npm:2.9.2"],\ - ["@parcel/transformer-image", "virtual:9c28b5e2d3761cbe1edde136d8abe87fb1a09925c11d4787a7ad5a932c042af89b2331a8b19e0fb31247f148ca4027a411870484a93be509fe332049741011f4#npm:2.9.2"],\ - ["@parcel/transformer-js", "virtual:9c28b5e2d3761cbe1edde136d8abe87fb1a09925c11d4787a7ad5a932c042af89b2331a8b19e0fb31247f148ca4027a411870484a93be509fe332049741011f4#npm:2.9.2"],\ - ["@parcel/transformer-json", "npm:2.9.2"],\ - ["@parcel/transformer-postcss", "npm:2.9.2"],\ - ["@parcel/transformer-posthtml", "npm:2.9.2"],\ - ["@parcel/transformer-raw", "npm:2.9.2"],\ - ["@parcel/transformer-react-refresh-wrap", "npm:2.9.2"],\ - ["@parcel/transformer-svg", "npm:2.9.2"],\ + ["@parcel/config-default", "virtual:8b9ffb5b471d92e43ed44d9d4b3997be1cadcb1d0802b72e4feeb1d8632c82ed490c0f9ad36e4817250e971bef57542a4c559c6969b21f3656e8c43773148c7f#npm:2.9.3"],\ + ["@parcel/bundler-default", "npm:2.9.3"],\ + ["@parcel/compressor-raw", "npm:2.9.3"],\ + ["@parcel/core", "npm:2.9.3"],\ + ["@parcel/namer-default", "npm:2.9.3"],\ + ["@parcel/optimizer-css", "npm:2.9.3"],\ + ["@parcel/optimizer-htmlnano", "npm:2.9.3"],\ + ["@parcel/optimizer-image", "virtual:76a38aa32174e798f595b16e349f8d7791ba252c603d614d166b4ccf040cf4a0393363e9f8b4fd0b3281908dbb4cfa399d1168ffe4ea014ce5d564c1d4649c1b#npm:2.9.3"],\ + ["@parcel/optimizer-svgo", "npm:2.9.3"],\ + ["@parcel/optimizer-swc", "npm:2.9.3"],\ + ["@parcel/packager-css", "npm:2.9.3"],\ + ["@parcel/packager-html", "npm:2.9.3"],\ + ["@parcel/packager-js", "npm:2.9.3"],\ + ["@parcel/packager-raw", "npm:2.9.3"],\ + ["@parcel/packager-svg", "npm:2.9.3"],\ + ["@parcel/reporter-dev-server", "npm:2.9.3"],\ + ["@parcel/resolver-default", "npm:2.9.3"],\ + ["@parcel/runtime-browser-hmr", "npm:2.9.3"],\ + ["@parcel/runtime-js", "npm:2.9.3"],\ + ["@parcel/runtime-react-refresh", "npm:2.9.3"],\ + ["@parcel/runtime-service-worker", "npm:2.9.3"],\ + ["@parcel/transformer-babel", "npm:2.9.3"],\ + ["@parcel/transformer-css", "npm:2.9.3"],\ + ["@parcel/transformer-html", "npm:2.9.3"],\ + ["@parcel/transformer-image", "virtual:76a38aa32174e798f595b16e349f8d7791ba252c603d614d166b4ccf040cf4a0393363e9f8b4fd0b3281908dbb4cfa399d1168ffe4ea014ce5d564c1d4649c1b#npm:2.9.3"],\ + ["@parcel/transformer-js", "virtual:76a38aa32174e798f595b16e349f8d7791ba252c603d614d166b4ccf040cf4a0393363e9f8b4fd0b3281908dbb4cfa399d1168ffe4ea014ce5d564c1d4649c1b#npm:2.9.3"],\ + ["@parcel/transformer-json", "npm:2.9.3"],\ + ["@parcel/transformer-postcss", "npm:2.9.3"],\ + ["@parcel/transformer-posthtml", "npm:2.9.3"],\ + ["@parcel/transformer-raw", "npm:2.9.3"],\ + ["@parcel/transformer-react-refresh-wrap", "npm:2.9.3"],\ + ["@parcel/transformer-svg", "npm:2.9.3"],\ ["@types/parcel__core", null]\ ],\ "packagePeers": [\ @@ -1300,25 +1309,25 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "HARD"\ }],\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/cache/@parcel-core-npm-2.9.2-43efe8c401-34fdd57791.zip/node_modules/@parcel/core/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/cache/@parcel-core-npm-2.9.3-b343ad5e82-e4ba4e0909.zip/node_modules/@parcel/core/",\ "packageDependencies": [\ - ["@parcel/core", "npm:2.9.2"],\ + ["@parcel/core", "npm:2.9.3"],\ ["@mischnic/json-sourcemap", "npm:0.1.0"],\ - ["@parcel/cache", "virtual:43efe8c40140be76b32499653f543b18393eb1de2ef0e88117e3f2cada1597e4a2a0c0d655c705adbf72ebea2ed1fa9151fd162dc048cb763ed04af898c30a12#npm:2.9.2"],\ - ["@parcel/diagnostic", "npm:2.9.2"],\ - ["@parcel/events", "npm:2.9.2"],\ - ["@parcel/fs", "virtual:43efe8c40140be76b32499653f543b18393eb1de2ef0e88117e3f2cada1597e4a2a0c0d655c705adbf72ebea2ed1fa9151fd162dc048cb763ed04af898c30a12#npm:2.9.2"],\ - ["@parcel/graph", "npm:2.9.2"],\ - ["@parcel/hash", "npm:2.9.2"],\ - ["@parcel/logger", "npm:2.9.2"],\ - ["@parcel/package-manager", "virtual:43efe8c40140be76b32499653f543b18393eb1de2ef0e88117e3f2cada1597e4a2a0c0d655c705adbf72ebea2ed1fa9151fd162dc048cb763ed04af898c30a12#npm:2.9.2"],\ - ["@parcel/plugin", "npm:2.9.2"],\ - ["@parcel/profiler", "npm:2.9.2"],\ + ["@parcel/cache", "virtual:b343ad5e82ae43a5371ef526d26f5282ba433795366dfabc05f623d5d686c21c439265330c2a02c006fc56a66deb59f0ca81d8c6e1639d3af2ebf54dd304f27f#npm:2.9.3"],\ + ["@parcel/diagnostic", "npm:2.9.3"],\ + ["@parcel/events", "npm:2.9.3"],\ + ["@parcel/fs", "virtual:b343ad5e82ae43a5371ef526d26f5282ba433795366dfabc05f623d5d686c21c439265330c2a02c006fc56a66deb59f0ca81d8c6e1639d3af2ebf54dd304f27f#npm:2.9.3"],\ + ["@parcel/graph", "npm:2.9.3"],\ + ["@parcel/hash", "npm:2.9.3"],\ + ["@parcel/logger", "npm:2.9.3"],\ + ["@parcel/package-manager", "virtual:b343ad5e82ae43a5371ef526d26f5282ba433795366dfabc05f623d5d686c21c439265330c2a02c006fc56a66deb59f0ca81d8c6e1639d3af2ebf54dd304f27f#npm:2.9.3"],\ + ["@parcel/plugin", "npm:2.9.3"],\ + ["@parcel/profiler", "npm:2.9.3"],\ ["@parcel/source-map", "npm:2.1.1"],\ - ["@parcel/types", "npm:2.9.2"],\ - ["@parcel/utils", "npm:2.9.2"],\ - ["@parcel/workers", "virtual:43efe8c40140be76b32499653f543b18393eb1de2ef0e88117e3f2cada1597e4a2a0c0d655c705adbf72ebea2ed1fa9151fd162dc048cb763ed04af898c30a12#npm:2.9.2"],\ + ["@parcel/types", "npm:2.9.3"],\ + ["@parcel/utils", "npm:2.9.3"],\ + ["@parcel/workers", "virtual:b343ad5e82ae43a5371ef526d26f5282ba433795366dfabc05f623d5d686c21c439265330c2a02c006fc56a66deb59f0ca81d8c6e1639d3af2ebf54dd304f27f#npm:2.9.3"],\ ["abortcontroller-polyfill", "npm:1.7.3"],\ ["base-x", "npm:3.0.9"],\ ["browserslist", "npm:4.20.3"],\ @@ -1328,7 +1337,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["json5", "npm:2.2.1"],\ ["msgpackr", "npm:1.6.0"],\ ["nullthrows", "npm:1.1.1"],\ - ["semver", "npm:5.7.1"]\ + ["semver", "npm:7.5.4"]\ ],\ "linkType": "HARD"\ }]\ @@ -1343,10 +1352,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "HARD"\ }],\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/cache/@parcel-diagnostic-npm-2.9.2-b8228983c3-b27c14d711.zip/node_modules/@parcel/diagnostic/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/cache/@parcel-diagnostic-npm-2.9.3-76e1419611-5897500e3b.zip/node_modules/@parcel/diagnostic/",\ "packageDependencies": [\ - ["@parcel/diagnostic", "npm:2.9.2"],\ + ["@parcel/diagnostic", "npm:2.9.3"],\ ["@mischnic/json-sourcemap", "npm:0.1.0"],\ ["nullthrows", "npm:1.1.1"]\ ],\ @@ -1361,10 +1370,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "HARD"\ }],\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/cache/@parcel-events-npm-2.9.2-24de4cd1a4-4bc905a5e3.zip/node_modules/@parcel/events/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/cache/@parcel-events-npm-2.9.3-3d50908dd1-c61ac95ce2.zip/node_modules/@parcel/events/",\ "packageDependencies": [\ - ["@parcel/events", "npm:2.9.2"]\ + ["@parcel/events", "npm:2.9.3"]\ ],\ "linkType": "HARD"\ }]\ @@ -1377,31 +1386,13 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "SOFT"\ }],\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/cache/@parcel-fs-npm-2.9.2-44cca43adc-410c63e0dc.zip/node_modules/@parcel/fs/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/cache/@parcel-fs-npm-2.9.3-f6cd93298b-c9bf9ca9e6.zip/node_modules/@parcel/fs/",\ "packageDependencies": [\ - ["@parcel/fs", "npm:2.9.2"]\ + ["@parcel/fs", "npm:2.9.3"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:43efe8c40140be76b32499653f543b18393eb1de2ef0e88117e3f2cada1597e4a2a0c0d655c705adbf72ebea2ed1fa9151fd162dc048cb763ed04af898c30a12#npm:2.9.2", {\ - "packageLocation": "./.yarn/__virtual__/@parcel-fs-virtual-81ff228a03/0/cache/@parcel-fs-npm-2.9.2-44cca43adc-410c63e0dc.zip/node_modules/@parcel/fs/",\ - "packageDependencies": [\ - ["@parcel/fs", "virtual:43efe8c40140be76b32499653f543b18393eb1de2ef0e88117e3f2cada1597e4a2a0c0d655c705adbf72ebea2ed1fa9151fd162dc048cb763ed04af898c30a12#npm:2.9.2"],\ - ["@parcel/core", "npm:2.9.2"],\ - ["@parcel/fs-search", "npm:2.9.2"],\ - ["@parcel/types", "npm:2.9.2"],\ - ["@parcel/utils", "npm:2.9.2"],\ - ["@parcel/watcher", "npm:2.0.7"],\ - ["@parcel/workers", "virtual:43efe8c40140be76b32499653f543b18393eb1de2ef0e88117e3f2cada1597e4a2a0c0d655c705adbf72ebea2ed1fa9151fd162dc048cb763ed04af898c30a12#npm:2.9.2"],\ - ["@types/parcel__core", null]\ - ],\ - "packagePeers": [\ - "@parcel/core",\ - "@types/parcel__core"\ - ],\ - "linkType": "HARD"\ - }],\ ["virtual:aa1797faca4a934b86d07dfa52e0db4db288b85fed415e745782ef9bd4bd39771970f9017a79cb7ed092d23d2539cea12a1cec949dfa0bb86e0fda2290caa70e#npm:2.6.2", {\ "packageLocation": "./.yarn/__virtual__/@parcel-fs-virtual-cfea854226/0/cache/@parcel-fs-npm-2.6.2-1670f601e3-b5e324d93b.zip/node_modules/@parcel/fs/",\ "packageDependencies": [\ @@ -1419,16 +1410,34 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "HARD"\ }],\ - ["virtual:da147a7755225862ebff1a307c66ffdb006466b8c3f2a3348fb4fd53cdf79b74a130f888a5e17f97eb991209008bfec72070985f78090e5c5229070de92b61e0#npm:2.9.2", {\ - "packageLocation": "./.yarn/__virtual__/@parcel-fs-virtual-9e8ffc1486/0/cache/@parcel-fs-npm-2.9.2-44cca43adc-410c63e0dc.zip/node_modules/@parcel/fs/",\ + ["virtual:b343ad5e82ae43a5371ef526d26f5282ba433795366dfabc05f623d5d686c21c439265330c2a02c006fc56a66deb59f0ca81d8c6e1639d3af2ebf54dd304f27f#npm:2.9.3", {\ + "packageLocation": "./.yarn/__virtual__/@parcel-fs-virtual-a74ea62351/0/cache/@parcel-fs-npm-2.9.3-f6cd93298b-c9bf9ca9e6.zip/node_modules/@parcel/fs/",\ "packageDependencies": [\ - ["@parcel/fs", "virtual:da147a7755225862ebff1a307c66ffdb006466b8c3f2a3348fb4fd53cdf79b74a130f888a5e17f97eb991209008bfec72070985f78090e5c5229070de92b61e0#npm:2.9.2"],\ - ["@parcel/core", "npm:2.6.2"],\ - ["@parcel/fs-search", "npm:2.9.2"],\ - ["@parcel/types", "npm:2.9.2"],\ - ["@parcel/utils", "npm:2.9.2"],\ + ["@parcel/fs", "virtual:b343ad5e82ae43a5371ef526d26f5282ba433795366dfabc05f623d5d686c21c439265330c2a02c006fc56a66deb59f0ca81d8c6e1639d3af2ebf54dd304f27f#npm:2.9.3"],\ + ["@parcel/core", "npm:2.9.3"],\ + ["@parcel/fs-search", "npm:2.9.3"],\ + ["@parcel/types", "npm:2.9.3"],\ + ["@parcel/utils", "npm:2.9.3"],\ ["@parcel/watcher", "npm:2.0.7"],\ - ["@parcel/workers", "virtual:da147a7755225862ebff1a307c66ffdb006466b8c3f2a3348fb4fd53cdf79b74a130f888a5e17f97eb991209008bfec72070985f78090e5c5229070de92b61e0#npm:2.9.2"],\ + ["@parcel/workers", "virtual:b343ad5e82ae43a5371ef526d26f5282ba433795366dfabc05f623d5d686c21c439265330c2a02c006fc56a66deb59f0ca81d8c6e1639d3af2ebf54dd304f27f#npm:2.9.3"],\ + ["@types/parcel__core", null]\ + ],\ + "packagePeers": [\ + "@parcel/core",\ + "@types/parcel__core"\ + ],\ + "linkType": "HARD"\ + }],\ + ["virtual:eef76f9fa9a588b8c892c493e6d851511aea6315c558ec074869cea35c69731f4489ed7c976fb55873d3f05e6ad5a0ad010792d1d87f51f47b52fc5dc26251b7#npm:2.9.3", {\ + "packageLocation": "./.yarn/__virtual__/@parcel-fs-virtual-e623c8b450/0/cache/@parcel-fs-npm-2.9.3-f6cd93298b-c9bf9ca9e6.zip/node_modules/@parcel/fs/",\ + "packageDependencies": [\ + ["@parcel/fs", "virtual:eef76f9fa9a588b8c892c493e6d851511aea6315c558ec074869cea35c69731f4489ed7c976fb55873d3f05e6ad5a0ad010792d1d87f51f47b52fc5dc26251b7#npm:2.9.3"],\ + ["@parcel/core", "npm:2.6.2"],\ + ["@parcel/fs-search", "npm:2.9.3"],\ + ["@parcel/types", "npm:2.9.3"],\ + ["@parcel/utils", "npm:2.9.3"],\ + ["@parcel/watcher", "npm:2.0.7"],\ + ["@parcel/workers", "virtual:eef76f9fa9a588b8c892c493e6d851511aea6315c558ec074869cea35c69731f4489ed7c976fb55873d3f05e6ad5a0ad010792d1d87f51f47b52fc5dc26251b7#npm:2.9.3"],\ ["@types/parcel__core", null]\ ],\ "packagePeers": [\ @@ -1446,10 +1455,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "HARD"\ }],\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/unplugged/@parcel-fs-search-npm-2.9.2-0251af50fa/node_modules/@parcel/fs-search/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/unplugged/@parcel-fs-search-npm-2.9.3-59171084fe/node_modules/@parcel/fs-search/",\ "packageDependencies": [\ - ["@parcel/fs-search", "npm:2.9.2"]\ + ["@parcel/fs-search", "npm:2.9.3"]\ ],\ "linkType": "HARD"\ }]\ @@ -1464,10 +1473,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "HARD"\ }],\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/cache/@parcel-graph-npm-2.9.2-cb6ed79dfc-9943396a21.zip/node_modules/@parcel/graph/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/cache/@parcel-graph-npm-2.9.3-206e15e603-7fdd830928.zip/node_modules/@parcel/graph/",\ "packageDependencies": [\ - ["@parcel/graph", "npm:2.9.2"],\ + ["@parcel/graph", "npm:2.9.3"],\ ["nullthrows", "npm:1.1.1"]\ ],\ "linkType": "HARD"\ @@ -1483,10 +1492,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "HARD"\ }],\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/unplugged/@parcel-hash-npm-2.9.2-f26f4ce463/node_modules/@parcel/hash/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/unplugged/@parcel-hash-npm-2.9.3-a485b7951b/node_modules/@parcel/hash/",\ "packageDependencies": [\ - ["@parcel/hash", "npm:2.9.2"],\ + ["@parcel/hash", "npm:2.9.3"],\ ["xxhash-wasm", "npm:0.4.2"]\ ],\ "linkType": "HARD"\ @@ -1502,12 +1511,12 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "HARD"\ }],\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/cache/@parcel-logger-npm-2.9.2-3241bcb0e5-072052724a.zip/node_modules/@parcel/logger/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/cache/@parcel-logger-npm-2.9.3-2a18b6c370-eb68996b7b.zip/node_modules/@parcel/logger/",\ "packageDependencies": [\ - ["@parcel/logger", "npm:2.9.2"],\ - ["@parcel/diagnostic", "npm:2.9.2"],\ - ["@parcel/events", "npm:2.9.2"]\ + ["@parcel/logger", "npm:2.9.3"],\ + ["@parcel/diagnostic", "npm:2.9.3"],\ + ["@parcel/events", "npm:2.9.3"]\ ],\ "linkType": "HARD"\ }]\ @@ -1521,51 +1530,51 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "HARD"\ }],\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/cache/@parcel-markdown-ansi-npm-2.9.2-2985c646b4-171d62a761.zip/node_modules/@parcel/markdown-ansi/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/cache/@parcel-markdown-ansi-npm-2.9.3-98f72ce8d0-da1fed88dd.zip/node_modules/@parcel/markdown-ansi/",\ "packageDependencies": [\ - ["@parcel/markdown-ansi", "npm:2.9.2"],\ + ["@parcel/markdown-ansi", "npm:2.9.3"],\ ["chalk", "npm:4.1.2"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@parcel/namer-default", [\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/cache/@parcel-namer-default-npm-2.9.2-f84d8c75d8-903da6aada.zip/node_modules/@parcel/namer-default/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/cache/@parcel-namer-default-npm-2.9.3-2a2acb717f-23a588ee0f.zip/node_modules/@parcel/namer-default/",\ "packageDependencies": [\ - ["@parcel/namer-default", "npm:2.9.2"],\ - ["@parcel/diagnostic", "npm:2.9.2"],\ - ["@parcel/plugin", "npm:2.9.2"],\ + ["@parcel/namer-default", "npm:2.9.3"],\ + ["@parcel/diagnostic", "npm:2.9.3"],\ + ["@parcel/plugin", "npm:2.9.3"],\ ["nullthrows", "npm:1.1.1"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@parcel/node-resolver-core", [\ - ["npm:3.0.2", {\ - "packageLocation": "./.yarn/unplugged/@parcel-node-resolver-core-npm-3.0.2-e5591710a1/node_modules/@parcel/node-resolver-core/",\ + ["npm:3.0.3", {\ + "packageLocation": "./.yarn/unplugged/@parcel-node-resolver-core-npm-3.0.3-e85849af08/node_modules/@parcel/node-resolver-core/",\ "packageDependencies": [\ - ["@parcel/node-resolver-core", "npm:3.0.2"],\ + ["@parcel/node-resolver-core", "npm:3.0.3"],\ ["@mischnic/json-sourcemap", "npm:0.1.0"],\ - ["@parcel/diagnostic", "npm:2.9.2"],\ - ["@parcel/fs", "virtual:da147a7755225862ebff1a307c66ffdb006466b8c3f2a3348fb4fd53cdf79b74a130f888a5e17f97eb991209008bfec72070985f78090e5c5229070de92b61e0#npm:2.9.2"],\ - ["@parcel/utils", "npm:2.9.2"],\ + ["@parcel/diagnostic", "npm:2.9.3"],\ + ["@parcel/fs", "virtual:eef76f9fa9a588b8c892c493e6d851511aea6315c558ec074869cea35c69731f4489ed7c976fb55873d3f05e6ad5a0ad010792d1d87f51f47b52fc5dc26251b7#npm:2.9.3"],\ + ["@parcel/utils", "npm:2.9.3"],\ ["nullthrows", "npm:1.1.1"],\ - ["semver", "npm:5.7.1"]\ + ["semver", "npm:7.5.4"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@parcel/optimizer-css", [\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/cache/@parcel-optimizer-css-npm-2.9.2-f17b6fe3fc-2ba9bd6eea.zip/node_modules/@parcel/optimizer-css/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/cache/@parcel-optimizer-css-npm-2.9.3-dab14ff100-09cdfb8191.zip/node_modules/@parcel/optimizer-css/",\ "packageDependencies": [\ - ["@parcel/optimizer-css", "npm:2.9.2"],\ - ["@parcel/diagnostic", "npm:2.9.2"],\ - ["@parcel/plugin", "npm:2.9.2"],\ + ["@parcel/optimizer-css", "npm:2.9.3"],\ + ["@parcel/diagnostic", "npm:2.9.3"],\ + ["@parcel/plugin", "npm:2.9.3"],\ ["@parcel/source-map", "npm:2.1.1"],\ - ["@parcel/utils", "npm:2.9.2"],\ + ["@parcel/utils", "npm:2.9.3"],\ ["browserslist", "npm:4.20.3"],\ ["lightningcss", "npm:1.17.1"],\ ["nullthrows", "npm:1.1.1"]\ @@ -1574,12 +1583,12 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["@parcel/optimizer-data-url", [\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/cache/@parcel-optimizer-data-url-npm-2.9.2-c7dded7731-fed10fad94.zip/node_modules/@parcel/optimizer-data-url/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/cache/@parcel-optimizer-data-url-npm-2.9.3-2bb13f2a2f-38823e2aa5.zip/node_modules/@parcel/optimizer-data-url/",\ "packageDependencies": [\ - ["@parcel/optimizer-data-url", "npm:2.9.2"],\ - ["@parcel/plugin", "npm:2.9.2"],\ - ["@parcel/utils", "npm:2.9.2"],\ + ["@parcel/optimizer-data-url", "npm:2.9.3"],\ + ["@parcel/plugin", "npm:2.9.3"],\ + ["@parcel/utils", "npm:2.9.3"],\ ["isbinaryfile", "npm:4.0.10"],\ ["mime", "npm:2.6.0"]\ ],\ @@ -1587,12 +1596,12 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["@parcel/optimizer-htmlnano", [\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/cache/@parcel-optimizer-htmlnano-npm-2.9.2-01a9d51f22-9a5f1caf59.zip/node_modules/@parcel/optimizer-htmlnano/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/cache/@parcel-optimizer-htmlnano-npm-2.9.3-682b0538d3-32658dd81c.zip/node_modules/@parcel/optimizer-htmlnano/",\ "packageDependencies": [\ - ["@parcel/optimizer-htmlnano", "npm:2.9.2"],\ - ["@parcel/plugin", "npm:2.9.2"],\ - ["htmlnano", "virtual:01a9d51f22d57b32a48466b80fd9ec3455d6f5a526a80bd51fe8eaa7bbd3f389fe1e0b22c1b463c7e24fb30d65e4e5dcf6cb0772821469c3384f7df764814f0f#npm:2.0.2"],\ + ["@parcel/optimizer-htmlnano", "npm:2.9.3"],\ + ["@parcel/plugin", "npm:2.9.3"],\ + ["htmlnano", "virtual:682b0538d3ef39b15922534816375f8fc9e61152acb2141851060b4f57fd8fce2e1ba748144a96d0ea51c5172e3701c211adb5d242aa55cd0ea2e483080b55c3#npm:2.0.2"],\ ["nullthrows", "npm:1.1.1"],\ ["posthtml", "npm:0.16.6"],\ ["svgo", "npm:2.8.0"]\ @@ -1601,22 +1610,22 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["@parcel/optimizer-image", [\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/unplugged/@parcel-optimizer-image-virtual-dc1490c63d/node_modules/@parcel/optimizer-image/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/unplugged/@parcel-optimizer-image-virtual-4140667861/node_modules/@parcel/optimizer-image/",\ "packageDependencies": [\ - ["@parcel/optimizer-image", "npm:2.9.2"]\ + ["@parcel/optimizer-image", "npm:2.9.3"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:9c28b5e2d3761cbe1edde136d8abe87fb1a09925c11d4787a7ad5a932c042af89b2331a8b19e0fb31247f148ca4027a411870484a93be509fe332049741011f4#npm:2.9.2", {\ - "packageLocation": "./.yarn/unplugged/@parcel-optimizer-image-virtual-dc1490c63d/node_modules/@parcel/optimizer-image/",\ + ["virtual:76a38aa32174e798f595b16e349f8d7791ba252c603d614d166b4ccf040cf4a0393363e9f8b4fd0b3281908dbb4cfa399d1168ffe4ea014ce5d564c1d4649c1b#npm:2.9.3", {\ + "packageLocation": "./.yarn/unplugged/@parcel-optimizer-image-virtual-4140667861/node_modules/@parcel/optimizer-image/",\ "packageDependencies": [\ - ["@parcel/optimizer-image", "virtual:9c28b5e2d3761cbe1edde136d8abe87fb1a09925c11d4787a7ad5a932c042af89b2331a8b19e0fb31247f148ca4027a411870484a93be509fe332049741011f4#npm:2.9.2"],\ - ["@parcel/core", "npm:2.9.2"],\ - ["@parcel/diagnostic", "npm:2.9.2"],\ - ["@parcel/plugin", "npm:2.9.2"],\ - ["@parcel/utils", "npm:2.9.2"],\ - ["@parcel/workers", "virtual:43efe8c40140be76b32499653f543b18393eb1de2ef0e88117e3f2cada1597e4a2a0c0d655c705adbf72ebea2ed1fa9151fd162dc048cb763ed04af898c30a12#npm:2.9.2"],\ + ["@parcel/optimizer-image", "virtual:76a38aa32174e798f595b16e349f8d7791ba252c603d614d166b4ccf040cf4a0393363e9f8b4fd0b3281908dbb4cfa399d1168ffe4ea014ce5d564c1d4649c1b#npm:2.9.3"],\ + ["@parcel/core", "npm:2.9.3"],\ + ["@parcel/diagnostic", "npm:2.9.3"],\ + ["@parcel/plugin", "npm:2.9.3"],\ + ["@parcel/utils", "npm:2.9.3"],\ + ["@parcel/workers", "virtual:b343ad5e82ae43a5371ef526d26f5282ba433795366dfabc05f623d5d686c21c439265330c2a02c006fc56a66deb59f0ca81d8c6e1639d3af2ebf54dd304f27f#npm:2.9.3"],\ ["@types/parcel__core", null]\ ],\ "packagePeers": [\ @@ -1627,28 +1636,28 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["@parcel/optimizer-svgo", [\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/cache/@parcel-optimizer-svgo-npm-2.9.2-4519e191ce-67ed4bd0db.zip/node_modules/@parcel/optimizer-svgo/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/cache/@parcel-optimizer-svgo-npm-2.9.3-e6bd39a7c6-fd2f1a9fc6.zip/node_modules/@parcel/optimizer-svgo/",\ "packageDependencies": [\ - ["@parcel/optimizer-svgo", "npm:2.9.2"],\ - ["@parcel/diagnostic", "npm:2.9.2"],\ - ["@parcel/plugin", "npm:2.9.2"],\ - ["@parcel/utils", "npm:2.9.2"],\ + ["@parcel/optimizer-svgo", "npm:2.9.3"],\ + ["@parcel/diagnostic", "npm:2.9.3"],\ + ["@parcel/plugin", "npm:2.9.3"],\ + ["@parcel/utils", "npm:2.9.3"],\ ["svgo", "npm:2.8.0"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@parcel/optimizer-swc", [\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/cache/@parcel-optimizer-swc-npm-2.9.2-ccab80a9cc-e21d0bee33.zip/node_modules/@parcel/optimizer-swc/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/cache/@parcel-optimizer-swc-npm-2.9.3-9920b222d4-087012a418.zip/node_modules/@parcel/optimizer-swc/",\ "packageDependencies": [\ - ["@parcel/optimizer-swc", "npm:2.9.2"],\ - ["@parcel/diagnostic", "npm:2.9.2"],\ - ["@parcel/plugin", "npm:2.9.2"],\ + ["@parcel/optimizer-swc", "npm:2.9.3"],\ + ["@parcel/diagnostic", "npm:2.9.3"],\ + ["@parcel/plugin", "npm:2.9.3"],\ ["@parcel/source-map", "npm:2.1.1"],\ - ["@parcel/utils", "npm:2.9.2"],\ - ["@swc/core", "virtual:ccab80a9cc843832c4d60aa9658e3eed08e8ca8addd7d02f4754dbfb1970464df5a914f21ae6cc00acfc9ee0e4f39386e87f438e11e3ab36b045551ade5188b6#npm:1.3.62"],\ + ["@parcel/utils", "npm:2.9.3"],\ + ["@swc/core", "virtual:9920b222d44a029b78dcdc0d8ca35581261d404e5aed3bc50e557a4aad11b071a29f50ce720e44fd147d81b34d288eff368e92cedb94a7944f8ce730ba1f9759#npm:1.3.62"],\ ["nullthrows", "npm:1.1.1"]\ ],\ "linkType": "HARD"\ @@ -1662,34 +1671,13 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "SOFT"\ }],\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/cache/@parcel-package-manager-npm-2.9.2-ce78c9a74b-f7f1913f7f.zip/node_modules/@parcel/package-manager/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/cache/@parcel-package-manager-npm-2.9.3-c065cee1b5-46acc905b8.zip/node_modules/@parcel/package-manager/",\ "packageDependencies": [\ - ["@parcel/package-manager", "npm:2.9.2"]\ + ["@parcel/package-manager", "npm:2.9.3"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:43efe8c40140be76b32499653f543b18393eb1de2ef0e88117e3f2cada1597e4a2a0c0d655c705adbf72ebea2ed1fa9151fd162dc048cb763ed04af898c30a12#npm:2.9.2", {\ - "packageLocation": "./.yarn/__virtual__/@parcel-package-manager-virtual-25c00264cd/0/cache/@parcel-package-manager-npm-2.9.2-ce78c9a74b-f7f1913f7f.zip/node_modules/@parcel/package-manager/",\ - "packageDependencies": [\ - ["@parcel/package-manager", "virtual:43efe8c40140be76b32499653f543b18393eb1de2ef0e88117e3f2cada1597e4a2a0c0d655c705adbf72ebea2ed1fa9151fd162dc048cb763ed04af898c30a12#npm:2.9.2"],\ - ["@parcel/core", "npm:2.9.2"],\ - ["@parcel/diagnostic", "npm:2.9.2"],\ - ["@parcel/fs", "virtual:43efe8c40140be76b32499653f543b18393eb1de2ef0e88117e3f2cada1597e4a2a0c0d655c705adbf72ebea2ed1fa9151fd162dc048cb763ed04af898c30a12#npm:2.9.2"],\ - ["@parcel/logger", "npm:2.9.2"],\ - ["@parcel/node-resolver-core", "npm:3.0.2"],\ - ["@parcel/types", "npm:2.9.2"],\ - ["@parcel/utils", "npm:2.9.2"],\ - ["@parcel/workers", "virtual:43efe8c40140be76b32499653f543b18393eb1de2ef0e88117e3f2cada1597e4a2a0c0d655c705adbf72ebea2ed1fa9151fd162dc048cb763ed04af898c30a12#npm:2.9.2"],\ - ["@types/parcel__core", null],\ - ["semver", "npm:5.7.1"]\ - ],\ - "packagePeers": [\ - "@parcel/core",\ - "@types/parcel__core"\ - ],\ - "linkType": "HARD"\ - }],\ ["virtual:aa1797faca4a934b86d07dfa52e0db4db288b85fed415e745782ef9bd4bd39771970f9017a79cb7ed092d23d2539cea12a1cec949dfa0bb86e0fda2290caa70e#npm:2.6.2", {\ "packageLocation": "./.yarn/__virtual__/@parcel-package-manager-virtual-423c759aca/0/cache/@parcel-package-manager-npm-2.6.2-41edbfb7da-0c7dfce953.zip/node_modules/@parcel/package-manager/",\ "packageDependencies": [\ @@ -1709,20 +1697,41 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "HARD"\ }],\ - ["virtual:da147a7755225862ebff1a307c66ffdb006466b8c3f2a3348fb4fd53cdf79b74a130f888a5e17f97eb991209008bfec72070985f78090e5c5229070de92b61e0#npm:2.9.2", {\ - "packageLocation": "./.yarn/__virtual__/@parcel-package-manager-virtual-553b256f73/0/cache/@parcel-package-manager-npm-2.9.2-ce78c9a74b-f7f1913f7f.zip/node_modules/@parcel/package-manager/",\ + ["virtual:b343ad5e82ae43a5371ef526d26f5282ba433795366dfabc05f623d5d686c21c439265330c2a02c006fc56a66deb59f0ca81d8c6e1639d3af2ebf54dd304f27f#npm:2.9.3", {\ + "packageLocation": "./.yarn/__virtual__/@parcel-package-manager-virtual-bbad0025e5/0/cache/@parcel-package-manager-npm-2.9.3-c065cee1b5-46acc905b8.zip/node_modules/@parcel/package-manager/",\ "packageDependencies": [\ - ["@parcel/package-manager", "virtual:da147a7755225862ebff1a307c66ffdb006466b8c3f2a3348fb4fd53cdf79b74a130f888a5e17f97eb991209008bfec72070985f78090e5c5229070de92b61e0#npm:2.9.2"],\ - ["@parcel/core", "npm:2.6.2"],\ - ["@parcel/diagnostic", "npm:2.9.2"],\ - ["@parcel/fs", "virtual:da147a7755225862ebff1a307c66ffdb006466b8c3f2a3348fb4fd53cdf79b74a130f888a5e17f97eb991209008bfec72070985f78090e5c5229070de92b61e0#npm:2.9.2"],\ - ["@parcel/logger", "npm:2.9.2"],\ - ["@parcel/node-resolver-core", "npm:3.0.2"],\ - ["@parcel/types", "npm:2.9.2"],\ - ["@parcel/utils", "npm:2.9.2"],\ - ["@parcel/workers", "virtual:da147a7755225862ebff1a307c66ffdb006466b8c3f2a3348fb4fd53cdf79b74a130f888a5e17f97eb991209008bfec72070985f78090e5c5229070de92b61e0#npm:2.9.2"],\ + ["@parcel/package-manager", "virtual:b343ad5e82ae43a5371ef526d26f5282ba433795366dfabc05f623d5d686c21c439265330c2a02c006fc56a66deb59f0ca81d8c6e1639d3af2ebf54dd304f27f#npm:2.9.3"],\ + ["@parcel/core", "npm:2.9.3"],\ + ["@parcel/diagnostic", "npm:2.9.3"],\ + ["@parcel/fs", "virtual:b343ad5e82ae43a5371ef526d26f5282ba433795366dfabc05f623d5d686c21c439265330c2a02c006fc56a66deb59f0ca81d8c6e1639d3af2ebf54dd304f27f#npm:2.9.3"],\ + ["@parcel/logger", "npm:2.9.3"],\ + ["@parcel/node-resolver-core", "npm:3.0.3"],\ + ["@parcel/types", "npm:2.9.3"],\ + ["@parcel/utils", "npm:2.9.3"],\ + ["@parcel/workers", "virtual:b343ad5e82ae43a5371ef526d26f5282ba433795366dfabc05f623d5d686c21c439265330c2a02c006fc56a66deb59f0ca81d8c6e1639d3af2ebf54dd304f27f#npm:2.9.3"],\ ["@types/parcel__core", null],\ - ["semver", "npm:5.7.1"]\ + ["semver", "npm:7.5.4"]\ + ],\ + "packagePeers": [\ + "@parcel/core",\ + "@types/parcel__core"\ + ],\ + "linkType": "HARD"\ + }],\ + ["virtual:eef76f9fa9a588b8c892c493e6d851511aea6315c558ec074869cea35c69731f4489ed7c976fb55873d3f05e6ad5a0ad010792d1d87f51f47b52fc5dc26251b7#npm:2.9.3", {\ + "packageLocation": "./.yarn/__virtual__/@parcel-package-manager-virtual-214a6d4bec/0/cache/@parcel-package-manager-npm-2.9.3-c065cee1b5-46acc905b8.zip/node_modules/@parcel/package-manager/",\ + "packageDependencies": [\ + ["@parcel/package-manager", "virtual:eef76f9fa9a588b8c892c493e6d851511aea6315c558ec074869cea35c69731f4489ed7c976fb55873d3f05e6ad5a0ad010792d1d87f51f47b52fc5dc26251b7#npm:2.9.3"],\ + ["@parcel/core", "npm:2.6.2"],\ + ["@parcel/diagnostic", "npm:2.9.3"],\ + ["@parcel/fs", "virtual:eef76f9fa9a588b8c892c493e6d851511aea6315c558ec074869cea35c69731f4489ed7c976fb55873d3f05e6ad5a0ad010792d1d87f51f47b52fc5dc26251b7#npm:2.9.3"],\ + ["@parcel/logger", "npm:2.9.3"],\ + ["@parcel/node-resolver-core", "npm:3.0.3"],\ + ["@parcel/types", "npm:2.9.3"],\ + ["@parcel/utils", "npm:2.9.3"],\ + ["@parcel/workers", "virtual:eef76f9fa9a588b8c892c493e6d851511aea6315c558ec074869cea35c69731f4489ed7c976fb55873d3f05e6ad5a0ad010792d1d87f51f47b52fc5dc26251b7#npm:2.9.3"],\ + ["@types/parcel__core", null],\ + ["semver", "npm:7.5.4"]\ ],\ "packagePeers": [\ "@types/parcel__core"\ @@ -1731,27 +1740,27 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["@parcel/packager-css", [\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/cache/@parcel-packager-css-npm-2.9.2-6a69ae150c-835894034e.zip/node_modules/@parcel/packager-css/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/cache/@parcel-packager-css-npm-2.9.3-c966dca775-725245c5d6.zip/node_modules/@parcel/packager-css/",\ "packageDependencies": [\ - ["@parcel/packager-css", "npm:2.9.2"],\ - ["@parcel/diagnostic", "npm:2.9.2"],\ - ["@parcel/plugin", "npm:2.9.2"],\ + ["@parcel/packager-css", "npm:2.9.3"],\ + ["@parcel/diagnostic", "npm:2.9.3"],\ + ["@parcel/plugin", "npm:2.9.3"],\ ["@parcel/source-map", "npm:2.1.1"],\ - ["@parcel/utils", "npm:2.9.2"],\ + ["@parcel/utils", "npm:2.9.3"],\ ["nullthrows", "npm:1.1.1"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@parcel/packager-html", [\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/cache/@parcel-packager-html-npm-2.9.2-7468873086-8551a11ea2.zip/node_modules/@parcel/packager-html/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/cache/@parcel-packager-html-npm-2.9.3-eb1e5ba8d3-163217c86a.zip/node_modules/@parcel/packager-html/",\ "packageDependencies": [\ - ["@parcel/packager-html", "npm:2.9.2"],\ - ["@parcel/plugin", "npm:2.9.2"],\ - ["@parcel/types", "npm:2.9.2"],\ - ["@parcel/utils", "npm:2.9.2"],\ + ["@parcel/packager-html", "npm:2.9.3"],\ + ["@parcel/plugin", "npm:2.9.3"],\ + ["@parcel/types", "npm:2.9.3"],\ + ["@parcel/utils", "npm:2.9.3"],\ ["nullthrows", "npm:1.1.1"],\ ["posthtml", "npm:0.16.6"]\ ],\ @@ -1759,15 +1768,15 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["@parcel/packager-js", [\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/cache/@parcel-packager-js-npm-2.9.2-dd0cd199e4-49fef23dc6.zip/node_modules/@parcel/packager-js/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/cache/@parcel-packager-js-npm-2.9.3-27b52dc79e-db8c74ec80.zip/node_modules/@parcel/packager-js/",\ "packageDependencies": [\ - ["@parcel/packager-js", "npm:2.9.2"],\ - ["@parcel/diagnostic", "npm:2.9.2"],\ - ["@parcel/hash", "npm:2.9.2"],\ - ["@parcel/plugin", "npm:2.9.2"],\ + ["@parcel/packager-js", "npm:2.9.3"],\ + ["@parcel/diagnostic", "npm:2.9.3"],\ + ["@parcel/hash", "npm:2.9.3"],\ + ["@parcel/plugin", "npm:2.9.3"],\ ["@parcel/source-map", "npm:2.1.1"],\ - ["@parcel/utils", "npm:2.9.2"],\ + ["@parcel/utils", "npm:2.9.3"],\ ["globals", "npm:13.15.0"],\ ["nullthrows", "npm:1.1.1"]\ ],\ @@ -1775,23 +1784,23 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["@parcel/packager-raw", [\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/cache/@parcel-packager-raw-npm-2.9.2-1a5961f4f5-b56412fc29.zip/node_modules/@parcel/packager-raw/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/cache/@parcel-packager-raw-npm-2.9.3-1adbe4f9b6-840ddac49c.zip/node_modules/@parcel/packager-raw/",\ "packageDependencies": [\ - ["@parcel/packager-raw", "npm:2.9.2"],\ - ["@parcel/plugin", "npm:2.9.2"]\ + ["@parcel/packager-raw", "npm:2.9.3"],\ + ["@parcel/plugin", "npm:2.9.3"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@parcel/packager-svg", [\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/cache/@parcel-packager-svg-npm-2.9.2-1d3bdae8e7-ef38f501fb.zip/node_modules/@parcel/packager-svg/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/cache/@parcel-packager-svg-npm-2.9.3-1e484acb3f-ff09cfdbc5.zip/node_modules/@parcel/packager-svg/",\ "packageDependencies": [\ - ["@parcel/packager-svg", "npm:2.9.2"],\ - ["@parcel/plugin", "npm:2.9.2"],\ - ["@parcel/types", "npm:2.9.2"],\ - ["@parcel/utils", "npm:2.9.2"],\ + ["@parcel/packager-svg", "npm:2.9.3"],\ + ["@parcel/plugin", "npm:2.9.3"],\ + ["@parcel/types", "npm:2.9.3"],\ + ["@parcel/utils", "npm:2.9.3"],\ ["posthtml", "npm:0.16.6"]\ ],\ "linkType": "HARD"\ @@ -1806,35 +1815,35 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "HARD"\ }],\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/cache/@parcel-plugin-npm-2.9.2-a6fcdfe690-3104b076ec.zip/node_modules/@parcel/plugin/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/cache/@parcel-plugin-npm-2.9.3-361c994700-e9d775a4fd.zip/node_modules/@parcel/plugin/",\ "packageDependencies": [\ - ["@parcel/plugin", "npm:2.9.2"],\ - ["@parcel/types", "npm:2.9.2"]\ + ["@parcel/plugin", "npm:2.9.3"],\ + ["@parcel/types", "npm:2.9.3"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@parcel/profiler", [\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/cache/@parcel-profiler-npm-2.9.2-f86abba7d6-390faeb1a0.zip/node_modules/@parcel/profiler/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/cache/@parcel-profiler-npm-2.9.3-d11664e14b-30e988b99e.zip/node_modules/@parcel/profiler/",\ "packageDependencies": [\ - ["@parcel/profiler", "npm:2.9.2"],\ - ["@parcel/diagnostic", "npm:2.9.2"],\ - ["@parcel/events", "npm:2.9.2"],\ + ["@parcel/profiler", "npm:2.9.3"],\ + ["@parcel/diagnostic", "npm:2.9.3"],\ + ["@parcel/events", "npm:2.9.3"],\ ["chrome-trace-event", "npm:1.0.3"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@parcel/reporter-cli", [\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/cache/@parcel-reporter-cli-npm-2.9.2-04a53602ed-d9b5ca577f.zip/node_modules/@parcel/reporter-cli/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/cache/@parcel-reporter-cli-npm-2.9.3-d81ba5564f-f274aa2959.zip/node_modules/@parcel/reporter-cli/",\ "packageDependencies": [\ - ["@parcel/reporter-cli", "npm:2.9.2"],\ - ["@parcel/plugin", "npm:2.9.2"],\ - ["@parcel/types", "npm:2.9.2"],\ - ["@parcel/utils", "npm:2.9.2"],\ + ["@parcel/reporter-cli", "npm:2.9.3"],\ + ["@parcel/plugin", "npm:2.9.3"],\ + ["@parcel/types", "npm:2.9.3"],\ + ["@parcel/utils", "npm:2.9.3"],\ ["chalk", "npm:4.1.2"],\ ["term-size", "npm:2.2.1"]\ ],\ @@ -1842,23 +1851,23 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["@parcel/reporter-dev-server", [\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/cache/@parcel-reporter-dev-server-npm-2.9.2-a9675da842-1fdc8d48fd.zip/node_modules/@parcel/reporter-dev-server/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/cache/@parcel-reporter-dev-server-npm-2.9.3-60ff1088fd-e8beff5f94.zip/node_modules/@parcel/reporter-dev-server/",\ "packageDependencies": [\ - ["@parcel/reporter-dev-server", "npm:2.9.2"],\ - ["@parcel/plugin", "npm:2.9.2"],\ - ["@parcel/utils", "npm:2.9.2"]\ + ["@parcel/reporter-dev-server", "npm:2.9.3"],\ + ["@parcel/plugin", "npm:2.9.3"],\ + ["@parcel/utils", "npm:2.9.3"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@parcel/reporter-tracer", [\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/cache/@parcel-reporter-tracer-npm-2.9.2-ad4deef524-e08623e902.zip/node_modules/@parcel/reporter-tracer/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/cache/@parcel-reporter-tracer-npm-2.9.3-80736d1c81-7922b19760.zip/node_modules/@parcel/reporter-tracer/",\ "packageDependencies": [\ - ["@parcel/reporter-tracer", "npm:2.9.2"],\ - ["@parcel/plugin", "npm:2.9.2"],\ - ["@parcel/utils", "npm:2.9.2"],\ + ["@parcel/reporter-tracer", "npm:2.9.3"],\ + ["@parcel/plugin", "npm:2.9.3"],\ + ["@parcel/utils", "npm:2.9.3"],\ ["chrome-trace-event", "npm:1.0.3"],\ ["nullthrows", "npm:1.1.1"]\ ],\ @@ -1866,47 +1875,47 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["@parcel/resolver-default", [\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/cache/@parcel-resolver-default-npm-2.9.2-130b2b9fc6-dc502cd62f.zip/node_modules/@parcel/resolver-default/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/cache/@parcel-resolver-default-npm-2.9.3-f1c2ca1c12-9e14d5b9bc.zip/node_modules/@parcel/resolver-default/",\ "packageDependencies": [\ - ["@parcel/resolver-default", "npm:2.9.2"],\ - ["@parcel/node-resolver-core", "npm:3.0.2"],\ - ["@parcel/plugin", "npm:2.9.2"]\ + ["@parcel/resolver-default", "npm:2.9.3"],\ + ["@parcel/node-resolver-core", "npm:3.0.3"],\ + ["@parcel/plugin", "npm:2.9.3"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@parcel/runtime-browser-hmr", [\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/cache/@parcel-runtime-browser-hmr-npm-2.9.2-c5978cbee9-4d08afa026.zip/node_modules/@parcel/runtime-browser-hmr/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/cache/@parcel-runtime-browser-hmr-npm-2.9.3-24c44db571-e79e827598.zip/node_modules/@parcel/runtime-browser-hmr/",\ "packageDependencies": [\ - ["@parcel/runtime-browser-hmr", "npm:2.9.2"],\ - ["@parcel/plugin", "npm:2.9.2"],\ - ["@parcel/utils", "npm:2.9.2"]\ + ["@parcel/runtime-browser-hmr", "npm:2.9.3"],\ + ["@parcel/plugin", "npm:2.9.3"],\ + ["@parcel/utils", "npm:2.9.3"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@parcel/runtime-js", [\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/cache/@parcel-runtime-js-npm-2.9.2-617b40156f-8dada6fecf.zip/node_modules/@parcel/runtime-js/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/cache/@parcel-runtime-js-npm-2.9.3-95e94e0d1e-143c3a9d9b.zip/node_modules/@parcel/runtime-js/",\ "packageDependencies": [\ - ["@parcel/runtime-js", "npm:2.9.2"],\ - ["@parcel/diagnostic", "npm:2.9.2"],\ - ["@parcel/plugin", "npm:2.9.2"],\ - ["@parcel/utils", "npm:2.9.2"],\ + ["@parcel/runtime-js", "npm:2.9.3"],\ + ["@parcel/diagnostic", "npm:2.9.3"],\ + ["@parcel/plugin", "npm:2.9.3"],\ + ["@parcel/utils", "npm:2.9.3"],\ ["nullthrows", "npm:1.1.1"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@parcel/runtime-react-refresh", [\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/cache/@parcel-runtime-react-refresh-npm-2.9.2-dc674a15e8-16631bc020.zip/node_modules/@parcel/runtime-react-refresh/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/cache/@parcel-runtime-react-refresh-npm-2.9.3-2b78158a03-8fb9f8165e.zip/node_modules/@parcel/runtime-react-refresh/",\ "packageDependencies": [\ - ["@parcel/runtime-react-refresh", "npm:2.9.2"],\ - ["@parcel/plugin", "npm:2.9.2"],\ - ["@parcel/utils", "npm:2.9.2"],\ + ["@parcel/runtime-react-refresh", "npm:2.9.3"],\ + ["@parcel/plugin", "npm:2.9.3"],\ + ["@parcel/utils", "npm:2.9.3"],\ ["react-error-overlay", "npm:6.0.9"],\ ["react-refresh", "npm:0.9.0"]\ ],\ @@ -1914,12 +1923,12 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["@parcel/runtime-service-worker", [\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/cache/@parcel-runtime-service-worker-npm-2.9.2-c099b0c8ba-21180ba472.zip/node_modules/@parcel/runtime-service-worker/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/cache/@parcel-runtime-service-worker-npm-2.9.3-74438ce430-e296a42e3e.zip/node_modules/@parcel/runtime-service-worker/",\ "packageDependencies": [\ - ["@parcel/runtime-service-worker", "npm:2.9.2"],\ - ["@parcel/plugin", "npm:2.9.2"],\ - ["@parcel/utils", "npm:2.9.2"],\ + ["@parcel/runtime-service-worker", "npm:2.9.3"],\ + ["@parcel/plugin", "npm:2.9.3"],\ + ["@parcel/utils", "npm:2.9.3"],\ ["nullthrows", "npm:1.1.1"]\ ],\ "linkType": "HARD"\ @@ -1944,31 +1953,31 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["@parcel/transformer-babel", [\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/cache/@parcel-transformer-babel-npm-2.9.2-ff6950ff1f-4177b0f176.zip/node_modules/@parcel/transformer-babel/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/cache/@parcel-transformer-babel-npm-2.9.3-dbdeb9d470-4d0246290e.zip/node_modules/@parcel/transformer-babel/",\ "packageDependencies": [\ - ["@parcel/transformer-babel", "npm:2.9.2"],\ - ["@parcel/diagnostic", "npm:2.9.2"],\ - ["@parcel/plugin", "npm:2.9.2"],\ + ["@parcel/transformer-babel", "npm:2.9.3"],\ + ["@parcel/diagnostic", "npm:2.9.3"],\ + ["@parcel/plugin", "npm:2.9.3"],\ ["@parcel/source-map", "npm:2.1.1"],\ - ["@parcel/utils", "npm:2.9.2"],\ + ["@parcel/utils", "npm:2.9.3"],\ ["browserslist", "npm:4.20.3"],\ ["json5", "npm:2.2.1"],\ ["nullthrows", "npm:1.1.1"],\ - ["semver", "npm:5.7.1"]\ + ["semver", "npm:7.5.4"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@parcel/transformer-css", [\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/cache/@parcel-transformer-css-npm-2.9.2-87b7d1818d-4aacbe62fa.zip/node_modules/@parcel/transformer-css/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/cache/@parcel-transformer-css-npm-2.9.3-ba3985d114-aad8e32439.zip/node_modules/@parcel/transformer-css/",\ "packageDependencies": [\ - ["@parcel/transformer-css", "npm:2.9.2"],\ - ["@parcel/diagnostic", "npm:2.9.2"],\ - ["@parcel/plugin", "npm:2.9.2"],\ + ["@parcel/transformer-css", "npm:2.9.3"],\ + ["@parcel/diagnostic", "npm:2.9.3"],\ + ["@parcel/plugin", "npm:2.9.3"],\ ["@parcel/source-map", "npm:2.1.1"],\ - ["@parcel/utils", "npm:2.9.2"],\ + ["@parcel/utils", "npm:2.9.3"],\ ["browserslist", "npm:4.20.3"],\ ["lightningcss", "npm:1.17.1"],\ ["nullthrows", "npm:1.1.1"]\ @@ -1977,39 +1986,39 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["@parcel/transformer-html", [\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/cache/@parcel-transformer-html-npm-2.9.2-1265e03787-baf4047c55.zip/node_modules/@parcel/transformer-html/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/cache/@parcel-transformer-html-npm-2.9.3-3ce9db1e20-77f150b568.zip/node_modules/@parcel/transformer-html/",\ "packageDependencies": [\ - ["@parcel/transformer-html", "npm:2.9.2"],\ - ["@parcel/diagnostic", "npm:2.9.2"],\ - ["@parcel/hash", "npm:2.9.2"],\ - ["@parcel/plugin", "npm:2.9.2"],\ + ["@parcel/transformer-html", "npm:2.9.3"],\ + ["@parcel/diagnostic", "npm:2.9.3"],\ + ["@parcel/hash", "npm:2.9.3"],\ + ["@parcel/plugin", "npm:2.9.3"],\ ["nullthrows", "npm:1.1.1"],\ ["posthtml", "npm:0.16.6"],\ ["posthtml-parser", "npm:0.10.2"],\ ["posthtml-render", "npm:3.0.0"],\ - ["semver", "npm:5.7.1"],\ + ["semver", "npm:7.5.4"],\ ["srcset", "npm:4.0.0"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@parcel/transformer-image", [\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/cache/@parcel-transformer-image-npm-2.9.2-9c204c156c-197ffd8245.zip/node_modules/@parcel/transformer-image/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/cache/@parcel-transformer-image-npm-2.9.3-a6b435f582-554ff7c6c2.zip/node_modules/@parcel/transformer-image/",\ "packageDependencies": [\ - ["@parcel/transformer-image", "npm:2.9.2"]\ + ["@parcel/transformer-image", "npm:2.9.3"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:9c28b5e2d3761cbe1edde136d8abe87fb1a09925c11d4787a7ad5a932c042af89b2331a8b19e0fb31247f148ca4027a411870484a93be509fe332049741011f4#npm:2.9.2", {\ - "packageLocation": "./.yarn/__virtual__/@parcel-transformer-image-virtual-0ffd0249d4/0/cache/@parcel-transformer-image-npm-2.9.2-9c204c156c-197ffd8245.zip/node_modules/@parcel/transformer-image/",\ + ["virtual:76a38aa32174e798f595b16e349f8d7791ba252c603d614d166b4ccf040cf4a0393363e9f8b4fd0b3281908dbb4cfa399d1168ffe4ea014ce5d564c1d4649c1b#npm:2.9.3", {\ + "packageLocation": "./.yarn/__virtual__/@parcel-transformer-image-virtual-beaf1f6783/0/cache/@parcel-transformer-image-npm-2.9.3-a6b435f582-554ff7c6c2.zip/node_modules/@parcel/transformer-image/",\ "packageDependencies": [\ - ["@parcel/transformer-image", "virtual:9c28b5e2d3761cbe1edde136d8abe87fb1a09925c11d4787a7ad5a932c042af89b2331a8b19e0fb31247f148ca4027a411870484a93be509fe332049741011f4#npm:2.9.2"],\ - ["@parcel/core", "npm:2.9.2"],\ - ["@parcel/plugin", "npm:2.9.2"],\ - ["@parcel/utils", "npm:2.9.2"],\ - ["@parcel/workers", "virtual:43efe8c40140be76b32499653f543b18393eb1de2ef0e88117e3f2cada1597e4a2a0c0d655c705adbf72ebea2ed1fa9151fd162dc048cb763ed04af898c30a12#npm:2.9.2"],\ + ["@parcel/transformer-image", "virtual:76a38aa32174e798f595b16e349f8d7791ba252c603d614d166b4ccf040cf4a0393363e9f8b4fd0b3281908dbb4cfa399d1168ffe4ea014ce5d564c1d4649c1b#npm:2.9.3"],\ + ["@parcel/core", "npm:2.9.3"],\ + ["@parcel/plugin", "npm:2.9.3"],\ + ["@parcel/utils", "npm:2.9.3"],\ + ["@parcel/workers", "virtual:b343ad5e82ae43a5371ef526d26f5282ba433795366dfabc05f623d5d686c21c439265330c2a02c006fc56a66deb59f0ca81d8c6e1639d3af2ebf54dd304f27f#npm:2.9.3"],\ ["@types/parcel__core", null],\ ["nullthrows", "npm:1.1.1"]\ ],\ @@ -2021,39 +2030,39 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["@parcel/transformer-inline-string", [\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/cache/@parcel-transformer-inline-string-npm-2.9.2-fd24e64c5c-d9146597b4.zip/node_modules/@parcel/transformer-inline-string/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/cache/@parcel-transformer-inline-string-npm-2.9.3-4322e85564-e93463e7bb.zip/node_modules/@parcel/transformer-inline-string/",\ "packageDependencies": [\ - ["@parcel/transformer-inline-string", "npm:2.9.2"],\ - ["@parcel/plugin", "npm:2.9.2"]\ + ["@parcel/transformer-inline-string", "npm:2.9.3"],\ + ["@parcel/plugin", "npm:2.9.3"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@parcel/transformer-js", [\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/unplugged/@parcel-transformer-js-virtual-05c1f1c900/node_modules/@parcel/transformer-js/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/unplugged/@parcel-transformer-js-virtual-a14db8f6ae/node_modules/@parcel/transformer-js/",\ "packageDependencies": [\ - ["@parcel/transformer-js", "npm:2.9.2"]\ + ["@parcel/transformer-js", "npm:2.9.3"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:9c28b5e2d3761cbe1edde136d8abe87fb1a09925c11d4787a7ad5a932c042af89b2331a8b19e0fb31247f148ca4027a411870484a93be509fe332049741011f4#npm:2.9.2", {\ - "packageLocation": "./.yarn/unplugged/@parcel-transformer-js-virtual-05c1f1c900/node_modules/@parcel/transformer-js/",\ + ["virtual:76a38aa32174e798f595b16e349f8d7791ba252c603d614d166b4ccf040cf4a0393363e9f8b4fd0b3281908dbb4cfa399d1168ffe4ea014ce5d564c1d4649c1b#npm:2.9.3", {\ + "packageLocation": "./.yarn/unplugged/@parcel-transformer-js-virtual-a14db8f6ae/node_modules/@parcel/transformer-js/",\ "packageDependencies": [\ - ["@parcel/transformer-js", "virtual:9c28b5e2d3761cbe1edde136d8abe87fb1a09925c11d4787a7ad5a932c042af89b2331a8b19e0fb31247f148ca4027a411870484a93be509fe332049741011f4#npm:2.9.2"],\ - ["@parcel/core", "npm:2.9.2"],\ - ["@parcel/diagnostic", "npm:2.9.2"],\ - ["@parcel/plugin", "npm:2.9.2"],\ + ["@parcel/transformer-js", "virtual:76a38aa32174e798f595b16e349f8d7791ba252c603d614d166b4ccf040cf4a0393363e9f8b4fd0b3281908dbb4cfa399d1168ffe4ea014ce5d564c1d4649c1b#npm:2.9.3"],\ + ["@parcel/core", "npm:2.9.3"],\ + ["@parcel/diagnostic", "npm:2.9.3"],\ + ["@parcel/plugin", "npm:2.9.3"],\ ["@parcel/source-map", "npm:2.1.1"],\ - ["@parcel/utils", "npm:2.9.2"],\ - ["@parcel/workers", "virtual:43efe8c40140be76b32499653f543b18393eb1de2ef0e88117e3f2cada1597e4a2a0c0d655c705adbf72ebea2ed1fa9151fd162dc048cb763ed04af898c30a12#npm:2.9.2"],\ + ["@parcel/utils", "npm:2.9.3"],\ + ["@parcel/workers", "virtual:b343ad5e82ae43a5371ef526d26f5282ba433795366dfabc05f623d5d686c21c439265330c2a02c006fc56a66deb59f0ca81d8c6e1639d3af2ebf54dd304f27f#npm:2.9.3"],\ ["@swc/helpers", "npm:0.5.1"],\ ["@types/parcel__core", null],\ ["browserslist", "npm:4.20.3"],\ ["nullthrows", "npm:1.1.1"],\ ["regenerator-runtime", "npm:0.13.9"],\ - ["semver", "npm:5.7.1"]\ + ["semver", "npm:7.5.4"]\ ],\ "packagePeers": [\ "@parcel/core",\ @@ -2063,77 +2072,77 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["@parcel/transformer-json", [\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/cache/@parcel-transformer-json-npm-2.9.2-6294f04574-656c01128e.zip/node_modules/@parcel/transformer-json/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/cache/@parcel-transformer-json-npm-2.9.3-8b93a2737f-96e2157cfd.zip/node_modules/@parcel/transformer-json/",\ "packageDependencies": [\ - ["@parcel/transformer-json", "npm:2.9.2"],\ - ["@parcel/plugin", "npm:2.9.2"],\ + ["@parcel/transformer-json", "npm:2.9.3"],\ + ["@parcel/plugin", "npm:2.9.3"],\ ["json5", "npm:2.2.1"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@parcel/transformer-postcss", [\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/cache/@parcel-transformer-postcss-npm-2.9.2-66e7b1728c-4c514e8098.zip/node_modules/@parcel/transformer-postcss/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/cache/@parcel-transformer-postcss-npm-2.9.3-0bc0ad23cc-c396c25c5a.zip/node_modules/@parcel/transformer-postcss/",\ "packageDependencies": [\ - ["@parcel/transformer-postcss", "npm:2.9.2"],\ - ["@parcel/diagnostic", "npm:2.9.2"],\ - ["@parcel/hash", "npm:2.9.2"],\ - ["@parcel/plugin", "npm:2.9.2"],\ - ["@parcel/utils", "npm:2.9.2"],\ + ["@parcel/transformer-postcss", "npm:2.9.3"],\ + ["@parcel/diagnostic", "npm:2.9.3"],\ + ["@parcel/hash", "npm:2.9.3"],\ + ["@parcel/plugin", "npm:2.9.3"],\ + ["@parcel/utils", "npm:2.9.3"],\ ["clone", "npm:2.1.2"],\ ["nullthrows", "npm:1.1.1"],\ ["postcss-value-parser", "npm:4.2.0"],\ - ["semver", "npm:5.7.1"]\ + ["semver", "npm:7.5.4"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@parcel/transformer-posthtml", [\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/cache/@parcel-transformer-posthtml-npm-2.9.2-e6929cf94c-a88988f714.zip/node_modules/@parcel/transformer-posthtml/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/cache/@parcel-transformer-posthtml-npm-2.9.3-e8c88a24c3-58d4836900.zip/node_modules/@parcel/transformer-posthtml/",\ "packageDependencies": [\ - ["@parcel/transformer-posthtml", "npm:2.9.2"],\ - ["@parcel/plugin", "npm:2.9.2"],\ - ["@parcel/utils", "npm:2.9.2"],\ + ["@parcel/transformer-posthtml", "npm:2.9.3"],\ + ["@parcel/plugin", "npm:2.9.3"],\ + ["@parcel/utils", "npm:2.9.3"],\ ["nullthrows", "npm:1.1.1"],\ ["posthtml", "npm:0.16.6"],\ ["posthtml-parser", "npm:0.10.2"],\ ["posthtml-render", "npm:3.0.0"],\ - ["semver", "npm:5.7.1"]\ + ["semver", "npm:7.5.4"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@parcel/transformer-raw", [\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/cache/@parcel-transformer-raw-npm-2.9.2-77f972073e-1603569c73.zip/node_modules/@parcel/transformer-raw/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/cache/@parcel-transformer-raw-npm-2.9.3-77466dc855-b639e2f5fd.zip/node_modules/@parcel/transformer-raw/",\ "packageDependencies": [\ - ["@parcel/transformer-raw", "npm:2.9.2"],\ - ["@parcel/plugin", "npm:2.9.2"]\ + ["@parcel/transformer-raw", "npm:2.9.3"],\ + ["@parcel/plugin", "npm:2.9.3"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@parcel/transformer-react-refresh-wrap", [\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/cache/@parcel-transformer-react-refresh-wrap-npm-2.9.2-9ece2e6944-9de36a5fa4.zip/node_modules/@parcel/transformer-react-refresh-wrap/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/cache/@parcel-transformer-react-refresh-wrap-npm-2.9.3-fba22031ec-aede3d82af.zip/node_modules/@parcel/transformer-react-refresh-wrap/",\ "packageDependencies": [\ - ["@parcel/transformer-react-refresh-wrap", "npm:2.9.2"],\ - ["@parcel/plugin", "npm:2.9.2"],\ - ["@parcel/utils", "npm:2.9.2"],\ + ["@parcel/transformer-react-refresh-wrap", "npm:2.9.3"],\ + ["@parcel/plugin", "npm:2.9.3"],\ + ["@parcel/utils", "npm:2.9.3"],\ ["react-refresh", "npm:0.9.0"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@parcel/transformer-sass", [\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/cache/@parcel-transformer-sass-npm-2.9.2-29ff1924b6-928b8767f3.zip/node_modules/@parcel/transformer-sass/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/cache/@parcel-transformer-sass-npm-2.9.3-234c526ad6-534eb9239f.zip/node_modules/@parcel/transformer-sass/",\ "packageDependencies": [\ - ["@parcel/transformer-sass", "npm:2.9.2"],\ - ["@parcel/plugin", "npm:2.9.2"],\ + ["@parcel/transformer-sass", "npm:2.9.3"],\ + ["@parcel/plugin", "npm:2.9.3"],\ ["@parcel/source-map", "npm:2.1.1"],\ ["sass", "npm:1.52.1"]\ ],\ @@ -2141,18 +2150,18 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["@parcel/transformer-svg", [\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/cache/@parcel-transformer-svg-npm-2.9.2-f5135ba1d5-1b8b2c60ee.zip/node_modules/@parcel/transformer-svg/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/cache/@parcel-transformer-svg-npm-2.9.3-6316a1b4cc-19cec37f9c.zip/node_modules/@parcel/transformer-svg/",\ "packageDependencies": [\ - ["@parcel/transformer-svg", "npm:2.9.2"],\ - ["@parcel/diagnostic", "npm:2.9.2"],\ - ["@parcel/hash", "npm:2.9.2"],\ - ["@parcel/plugin", "npm:2.9.2"],\ + ["@parcel/transformer-svg", "npm:2.9.3"],\ + ["@parcel/diagnostic", "npm:2.9.3"],\ + ["@parcel/hash", "npm:2.9.3"],\ + ["@parcel/plugin", "npm:2.9.3"],\ ["nullthrows", "npm:1.1.1"],\ ["posthtml", "npm:0.16.6"],\ ["posthtml-parser", "npm:0.10.2"],\ ["posthtml-render", "npm:3.0.0"],\ - ["semver", "npm:5.7.1"]\ + ["semver", "npm:7.5.4"]\ ],\ "linkType": "HARD"\ }]\ @@ -2172,16 +2181,16 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "HARD"\ }],\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/cache/@parcel-types-npm-2.9.2-da147a7755-976fb44534.zip/node_modules/@parcel/types/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/cache/@parcel-types-npm-2.9.3-eef76f9fa9-2a21622772.zip/node_modules/@parcel/types/",\ "packageDependencies": [\ - ["@parcel/types", "npm:2.9.2"],\ - ["@parcel/cache", "virtual:da147a7755225862ebff1a307c66ffdb006466b8c3f2a3348fb4fd53cdf79b74a130f888a5e17f97eb991209008bfec72070985f78090e5c5229070de92b61e0#npm:2.9.2"],\ - ["@parcel/diagnostic", "npm:2.9.2"],\ - ["@parcel/fs", "virtual:da147a7755225862ebff1a307c66ffdb006466b8c3f2a3348fb4fd53cdf79b74a130f888a5e17f97eb991209008bfec72070985f78090e5c5229070de92b61e0#npm:2.9.2"],\ - ["@parcel/package-manager", "virtual:da147a7755225862ebff1a307c66ffdb006466b8c3f2a3348fb4fd53cdf79b74a130f888a5e17f97eb991209008bfec72070985f78090e5c5229070de92b61e0#npm:2.9.2"],\ + ["@parcel/types", "npm:2.9.3"],\ + ["@parcel/cache", "virtual:eef76f9fa9a588b8c892c493e6d851511aea6315c558ec074869cea35c69731f4489ed7c976fb55873d3f05e6ad5a0ad010792d1d87f51f47b52fc5dc26251b7#npm:2.9.3"],\ + ["@parcel/diagnostic", "npm:2.9.3"],\ + ["@parcel/fs", "virtual:eef76f9fa9a588b8c892c493e6d851511aea6315c558ec074869cea35c69731f4489ed7c976fb55873d3f05e6ad5a0ad010792d1d87f51f47b52fc5dc26251b7#npm:2.9.3"],\ + ["@parcel/package-manager", "virtual:eef76f9fa9a588b8c892c493e6d851511aea6315c558ec074869cea35c69731f4489ed7c976fb55873d3f05e6ad5a0ad010792d1d87f51f47b52fc5dc26251b7#npm:2.9.3"],\ ["@parcel/source-map", "npm:2.1.1"],\ - ["@parcel/workers", "virtual:da147a7755225862ebff1a307c66ffdb006466b8c3f2a3348fb4fd53cdf79b74a130f888a5e17f97eb991209008bfec72070985f78090e5c5229070de92b61e0#npm:2.9.2"],\ + ["@parcel/workers", "virtual:eef76f9fa9a588b8c892c493e6d851511aea6315c558ec074869cea35c69731f4489ed7c976fb55873d3f05e6ad5a0ad010792d1d87f51f47b52fc5dc26251b7#npm:2.9.3"],\ ["utility-types", "npm:3.10.0"]\ ],\ "linkType": "HARD"\ @@ -2202,15 +2211,15 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "HARD"\ }],\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/cache/@parcel-utils-npm-2.9.2-267a2360a2-130cf1a6cb.zip/node_modules/@parcel/utils/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/cache/@parcel-utils-npm-2.9.3-6666fec42c-4c1df52754.zip/node_modules/@parcel/utils/",\ "packageDependencies": [\ - ["@parcel/utils", "npm:2.9.2"],\ - ["@parcel/codeframe", "npm:2.9.2"],\ - ["@parcel/diagnostic", "npm:2.9.2"],\ - ["@parcel/hash", "npm:2.9.2"],\ - ["@parcel/logger", "npm:2.9.2"],\ - ["@parcel/markdown-ansi", "npm:2.9.2"],\ + ["@parcel/utils", "npm:2.9.3"],\ + ["@parcel/codeframe", "npm:2.9.3"],\ + ["@parcel/diagnostic", "npm:2.9.3"],\ + ["@parcel/hash", "npm:2.9.3"],\ + ["@parcel/logger", "npm:2.9.3"],\ + ["@parcel/markdown-ansi", "npm:2.9.3"],\ ["@parcel/source-map", "npm:2.1.1"],\ ["chalk", "npm:4.1.2"],\ ["nullthrows", "npm:1.1.1"]\ @@ -2248,32 +2257,13 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "SOFT"\ }],\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/cache/@parcel-workers-npm-2.9.2-9acb007028-7e980749c1.zip/node_modules/@parcel/workers/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/cache/@parcel-workers-npm-2.9.3-b0559c8ccb-d6ac6e2abf.zip/node_modules/@parcel/workers/",\ "packageDependencies": [\ - ["@parcel/workers", "npm:2.9.2"]\ + ["@parcel/workers", "npm:2.9.3"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:43efe8c40140be76b32499653f543b18393eb1de2ef0e88117e3f2cada1597e4a2a0c0d655c705adbf72ebea2ed1fa9151fd162dc048cb763ed04af898c30a12#npm:2.9.2", {\ - "packageLocation": "./.yarn/__virtual__/@parcel-workers-virtual-929d2fc5a6/0/cache/@parcel-workers-npm-2.9.2-9acb007028-7e980749c1.zip/node_modules/@parcel/workers/",\ - "packageDependencies": [\ - ["@parcel/workers", "virtual:43efe8c40140be76b32499653f543b18393eb1de2ef0e88117e3f2cada1597e4a2a0c0d655c705adbf72ebea2ed1fa9151fd162dc048cb763ed04af898c30a12#npm:2.9.2"],\ - ["@parcel/core", "npm:2.9.2"],\ - ["@parcel/diagnostic", "npm:2.9.2"],\ - ["@parcel/logger", "npm:2.9.2"],\ - ["@parcel/profiler", "npm:2.9.2"],\ - ["@parcel/types", "npm:2.9.2"],\ - ["@parcel/utils", "npm:2.9.2"],\ - ["@types/parcel__core", null],\ - ["nullthrows", "npm:1.1.1"]\ - ],\ - "packagePeers": [\ - "@parcel/core",\ - "@types/parcel__core"\ - ],\ - "linkType": "HARD"\ - }],\ ["virtual:aa1797faca4a934b86d07dfa52e0db4db288b85fed415e745782ef9bd4bd39771970f9017a79cb7ed092d23d2539cea12a1cec949dfa0bb86e0fda2290caa70e#npm:2.6.2", {\ "packageLocation": "./.yarn/__virtual__/@parcel-workers-virtual-fa9718ade0/0/cache/@parcel-workers-npm-2.6.2-a30e38db52-92b65cd3fd.zip/node_modules/@parcel/workers/",\ "packageDependencies": [\ @@ -2292,16 +2282,35 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "HARD"\ }],\ - ["virtual:da147a7755225862ebff1a307c66ffdb006466b8c3f2a3348fb4fd53cdf79b74a130f888a5e17f97eb991209008bfec72070985f78090e5c5229070de92b61e0#npm:2.9.2", {\ - "packageLocation": "./.yarn/__virtual__/@parcel-workers-virtual-f37dc26423/0/cache/@parcel-workers-npm-2.9.2-9acb007028-7e980749c1.zip/node_modules/@parcel/workers/",\ + ["virtual:b343ad5e82ae43a5371ef526d26f5282ba433795366dfabc05f623d5d686c21c439265330c2a02c006fc56a66deb59f0ca81d8c6e1639d3af2ebf54dd304f27f#npm:2.9.3", {\ + "packageLocation": "./.yarn/__virtual__/@parcel-workers-virtual-a726b8dab9/0/cache/@parcel-workers-npm-2.9.3-b0559c8ccb-d6ac6e2abf.zip/node_modules/@parcel/workers/",\ "packageDependencies": [\ - ["@parcel/workers", "virtual:da147a7755225862ebff1a307c66ffdb006466b8c3f2a3348fb4fd53cdf79b74a130f888a5e17f97eb991209008bfec72070985f78090e5c5229070de92b61e0#npm:2.9.2"],\ + ["@parcel/workers", "virtual:b343ad5e82ae43a5371ef526d26f5282ba433795366dfabc05f623d5d686c21c439265330c2a02c006fc56a66deb59f0ca81d8c6e1639d3af2ebf54dd304f27f#npm:2.9.3"],\ + ["@parcel/core", "npm:2.9.3"],\ + ["@parcel/diagnostic", "npm:2.9.3"],\ + ["@parcel/logger", "npm:2.9.3"],\ + ["@parcel/profiler", "npm:2.9.3"],\ + ["@parcel/types", "npm:2.9.3"],\ + ["@parcel/utils", "npm:2.9.3"],\ + ["@types/parcel__core", null],\ + ["nullthrows", "npm:1.1.1"]\ + ],\ + "packagePeers": [\ + "@parcel/core",\ + "@types/parcel__core"\ + ],\ + "linkType": "HARD"\ + }],\ + ["virtual:eef76f9fa9a588b8c892c493e6d851511aea6315c558ec074869cea35c69731f4489ed7c976fb55873d3f05e6ad5a0ad010792d1d87f51f47b52fc5dc26251b7#npm:2.9.3", {\ + "packageLocation": "./.yarn/__virtual__/@parcel-workers-virtual-00b61ac0d5/0/cache/@parcel-workers-npm-2.9.3-b0559c8ccb-d6ac6e2abf.zip/node_modules/@parcel/workers/",\ + "packageDependencies": [\ + ["@parcel/workers", "virtual:eef76f9fa9a588b8c892c493e6d851511aea6315c558ec074869cea35c69731f4489ed7c976fb55873d3f05e6ad5a0ad010792d1d87f51f47b52fc5dc26251b7#npm:2.9.3"],\ ["@parcel/core", "npm:2.6.2"],\ - ["@parcel/diagnostic", "npm:2.9.2"],\ - ["@parcel/logger", "npm:2.9.2"],\ - ["@parcel/profiler", "npm:2.9.2"],\ - ["@parcel/types", "npm:2.9.2"],\ - ["@parcel/utils", "npm:2.9.2"],\ + ["@parcel/diagnostic", "npm:2.9.3"],\ + ["@parcel/logger", "npm:2.9.3"],\ + ["@parcel/profiler", "npm:2.9.3"],\ + ["@parcel/types", "npm:2.9.3"],\ + ["@parcel/utils", "npm:2.9.3"],\ ["@types/parcel__core", null],\ ["nullthrows", "npm:1.1.1"]\ ],\ @@ -2337,17 +2346,17 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["@rollup/pluginutils", [\ - ["npm:5.0.2", {\ - "packageLocation": "./.yarn/cache/@rollup-pluginutils-npm-5.0.2-6aa9d0ddd4-edea15e543.zip/node_modules/@rollup/pluginutils/",\ + ["npm:5.0.3", {\ + "packageLocation": "./.yarn/cache/@rollup-pluginutils-npm-5.0.3-33f9e7f020-8efbdeac53.zip/node_modules/@rollup/pluginutils/",\ "packageDependencies": [\ - ["@rollup/pluginutils", "npm:5.0.2"]\ + ["@rollup/pluginutils", "npm:5.0.3"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:5.0.2", {\ - "packageLocation": "./.yarn/__virtual__/@rollup-pluginutils-virtual-ca58d3a074/0/cache/@rollup-pluginutils-npm-5.0.2-6aa9d0ddd4-edea15e543.zip/node_modules/@rollup/pluginutils/",\ + ["virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:5.0.3", {\ + "packageLocation": "./.yarn/__virtual__/@rollup-pluginutils-virtual-e8c80fae3a/0/cache/@rollup-pluginutils-npm-5.0.3-33f9e7f020-8efbdeac53.zip/node_modules/@rollup/pluginutils/",\ "packageDependencies": [\ - ["@rollup/pluginutils", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:5.0.2"],\ + ["@rollup/pluginutils", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:5.0.3"],\ ["@types/estree", "npm:1.0.0"],\ ["@types/rollup", null],\ ["estree-walker", "npm:2.0.2"],\ @@ -2369,10 +2378,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "SOFT"\ }],\ - ["virtual:5b253c7fe6920728e3c9c52a5bc1311d65d2e0c4fed3ef146b86c5f66caee15cd0369525e4dcd3e32e97a7168db12a74c5dd0ba006e6fd26f77cbbe68415a9f7#npm:2.0.0", {\ - "packageLocation": "./.yarn/__virtual__/@sidvind-better-ajv-errors-virtual-422cb59e65/0/cache/@sidvind-better-ajv-errors-npm-2.0.0-3531bddef9-12b0d87855.zip/node_modules/@sidvind/better-ajv-errors/",\ + ["virtual:d54cf140bc899b791890b50d03f9737577eb8c2e0b480e2b1bc40b168f05a300b97a0338d73f013a8f7410236526aba6ee56a063db404e7ae64ba5f1e4e85cb8#npm:2.0.0", {\ + "packageLocation": "./.yarn/__virtual__/@sidvind-better-ajv-errors-virtual-23ff750c09/0/cache/@sidvind-better-ajv-errors-npm-2.0.0-3531bddef9-12b0d87855.zip/node_modules/@sidvind/better-ajv-errors/",\ "packageDependencies": [\ - ["@sidvind/better-ajv-errors", "virtual:5b253c7fe6920728e3c9c52a5bc1311d65d2e0c4fed3ef146b86c5f66caee15cd0369525e4dcd3e32e97a7168db12a74c5dd0ba006e6fd26f77cbbe68415a9f7#npm:2.0.0"],\ + ["@sidvind/better-ajv-errors", "virtual:d54cf140bc899b791890b50d03f9737577eb8c2e0b480e2b1bc40b168f05a300b97a0338d73f013a8f7410236526aba6ee56a063db404e7ae64ba5f1e4e85cb8#npm:2.0.0"],\ ["@babel/code-frame", "npm:7.16.7"],\ ["@types/ajv", null],\ ["ajv", "npm:8.11.0"],\ @@ -2387,16 +2396,16 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ]],\ ["@swc/core", [\ ["npm:1.3.62", {\ - "packageLocation": "./.yarn/unplugged/@swc-core-virtual-bfd11bbc53/node_modules/@swc/core/",\ + "packageLocation": "./.yarn/unplugged/@swc-core-virtual-099ac47628/node_modules/@swc/core/",\ "packageDependencies": [\ ["@swc/core", "npm:1.3.62"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:ccab80a9cc843832c4d60aa9658e3eed08e8ca8addd7d02f4754dbfb1970464df5a914f21ae6cc00acfc9ee0e4f39386e87f438e11e3ab36b045551ade5188b6#npm:1.3.62", {\ - "packageLocation": "./.yarn/unplugged/@swc-core-virtual-bfd11bbc53/node_modules/@swc/core/",\ + ["virtual:9920b222d44a029b78dcdc0d8ca35581261d404e5aed3bc50e557a4aad11b071a29f50ce720e44fd147d81b34d288eff368e92cedb94a7944f8ce730ba1f9759#npm:1.3.62", {\ + "packageLocation": "./.yarn/unplugged/@swc-core-virtual-099ac47628/node_modules/@swc/core/",\ "packageDependencies": [\ - ["@swc/core", "virtual:ccab80a9cc843832c4d60aa9658e3eed08e8ca8addd7d02f4754dbfb1970464df5a914f21ae6cc00acfc9ee0e4f39386e87f438e11e3ab36b045551ade5188b6#npm:1.3.62"],\ + ["@swc/core", "virtual:9920b222d44a029b78dcdc0d8ca35581261d404e5aed3bc50e557a4aad11b071a29f50ce720e44fd147d81b34d288eff368e92cedb94a7944f8ce730ba1f9759#npm:1.3.62"],\ ["@swc/core-darwin-arm64", "npm:1.3.62"],\ ["@swc/core-darwin-x64", "npm:1.3.62"],\ ["@swc/core-linux-arm-gnueabihf", "npm:1.3.62"],\ @@ -2618,20 +2627,20 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["@vitejs/plugin-vue", [\ - ["npm:4.2.3", {\ - "packageLocation": "./.yarn/cache/@vitejs-plugin-vue-npm-4.2.3-f2af5ce2fe-1c70c1cd18.zip/node_modules/@vitejs/plugin-vue/",\ + ["npm:4.3.3", {\ + "packageLocation": "./.yarn/cache/@vitejs-plugin-vue-npm-4.3.3-ffc8f9f2ac-17f8d73708.zip/node_modules/@vitejs/plugin-vue/",\ "packageDependencies": [\ - ["@vitejs/plugin-vue", "npm:4.2.3"]\ + ["@vitejs/plugin-vue", "npm:4.3.3"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:4.2.3", {\ - "packageLocation": "./.yarn/__virtual__/@vitejs-plugin-vue-virtual-ad1e69b525/0/cache/@vitejs-plugin-vue-npm-4.2.3-f2af5ce2fe-1c70c1cd18.zip/node_modules/@vitejs/plugin-vue/",\ + ["virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:4.3.3", {\ + "packageLocation": "./.yarn/__virtual__/@vitejs-plugin-vue-virtual-c26a0d639a/0/cache/@vitejs-plugin-vue-npm-4.3.3-ffc8f9f2ac-17f8d73708.zip/node_modules/@vitejs/plugin-vue/",\ "packageDependencies": [\ - ["@vitejs/plugin-vue", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:4.2.3"],\ + ["@vitejs/plugin-vue", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:4.3.3"],\ ["@types/vite", null],\ ["@types/vue", null],\ - ["vite", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:4.3.9"],\ + ["vite", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:4.4.9"],\ ["vue", "npm:3.3.4"]\ ],\ "packagePeers": [\ @@ -2812,19 +2821,19 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "HARD"\ }],\ + ["npm:8.10.0", {\ + "packageLocation": "./.yarn/cache/acorn-npm-8.10.0-2230c9e83e-538ba38af0.zip/node_modules/acorn/",\ + "packageDependencies": [\ + ["acorn", "npm:8.10.0"]\ + ],\ + "linkType": "HARD"\ + }],\ ["npm:8.7.1", {\ "packageLocation": "./.yarn/cache/acorn-npm-8.7.1-7c7a019990-aca0aabf98.zip/node_modules/acorn/",\ "packageDependencies": [\ ["acorn", "npm:8.7.1"]\ ],\ "linkType": "HARD"\ - }],\ - ["npm:8.8.0", {\ - "packageLocation": "./.yarn/cache/acorn-npm-8.8.0-9ef399ab45-7270ca82b2.zip/node_modules/acorn/",\ - "packageDependencies": [\ - ["acorn", "npm:8.8.0"]\ - ],\ - "linkType": "HARD"\ }]\ ]],\ ["acorn-jsx", [\ @@ -2835,12 +2844,12 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "SOFT"\ }],\ - ["virtual:5fc9506cdac3b623f10b3f7adb0b64c62d2c6059855d74020d649d3c7df60271229590b28e7061203e031c21cd88cfd7344e13902ceb1f7776b1da6a18ef4ad8#npm:5.3.2", {\ - "packageLocation": "./.yarn/__virtual__/acorn-jsx-virtual-b5f3bb1aa9/0/cache/acorn-jsx-npm-5.3.2-d7594599ea-c3d3b2a89c.zip/node_modules/acorn-jsx/",\ + ["virtual:a50722a5a9326b6a5f12350c494c4db3aa0f4caeac45e3e9e5fe071da20014ecfe738fe2ebe2c9c98abae81a4ea86b42f56d776b3bd5ec37f9ad3670c242b242#npm:5.3.2", {\ + "packageLocation": "./.yarn/__virtual__/acorn-jsx-virtual-834321b202/0/cache/acorn-jsx-npm-5.3.2-d7594599ea-c3d3b2a89c.zip/node_modules/acorn-jsx/",\ "packageDependencies": [\ - ["acorn-jsx", "virtual:5fc9506cdac3b623f10b3f7adb0b64c62d2c6059855d74020d649d3c7df60271229590b28e7061203e031c21cd88cfd7344e13902ceb1f7776b1da6a18ef4ad8#npm:5.3.2"],\ + ["acorn-jsx", "virtual:a50722a5a9326b6a5f12350c494c4db3aa0f4caeac45e3e9e5fe071da20014ecfe738fe2ebe2c9c98abae81a4ea86b42f56d776b3bd5ec37f9ad3670c242b242#npm:5.3.2"],\ ["@types/acorn", null],\ - ["acorn", "npm:8.8.0"]\ + ["acorn", "npm:8.10.0"]\ ],\ "packagePeers": [\ "@types/acorn",\ @@ -3000,6 +3009,17 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "linkType": "HARD"\ }]\ ]],\ + ["array-buffer-byte-length", [\ + ["npm:1.0.0", {\ + "packageLocation": "./.yarn/cache/array-buffer-byte-length-npm-1.0.0-331671f28a-044e101ce1.zip/node_modules/array-buffer-byte-length/",\ + "packageDependencies": [\ + ["array-buffer-byte-length", "npm:1.0.0"],\ + ["call-bind", "npm:1.0.2"],\ + ["is-array-buffer", "npm:3.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["array-includes", [\ ["npm:3.1.6", {\ "packageLocation": "./.yarn/cache/array-includes-npm-3.1.6-d0ff9d248b-f22f8cd8ba.zip/node_modules/array-includes/",\ @@ -3014,6 +3034,20 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "linkType": "HARD"\ }]\ ]],\ + ["array.prototype.findlastindex", [\ + ["npm:1.2.2", {\ + "packageLocation": "./.yarn/cache/array.prototype.findlastindex-npm-1.2.2-dc5ee7bf67-8a166359f6.zip/node_modules/array.prototype.findlastindex/",\ + "packageDependencies": [\ + ["array.prototype.findlastindex", "npm:1.2.2"],\ + ["call-bind", "npm:1.0.2"],\ + ["define-properties", "npm:1.1.4"],\ + ["es-abstract", "npm:1.21.1"],\ + ["es-shim-unscopables", "npm:1.0.0"],\ + ["get-intrinsic", "npm:1.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["array.prototype.flat", [\ ["npm:1.3.1", {\ "packageLocation": "./.yarn/cache/array.prototype.flat-npm-1.3.1-e9a9e389c0-5a8415949d.zip/node_modules/array.prototype.flat/",\ @@ -3040,6 +3074,21 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "linkType": "HARD"\ }]\ ]],\ + ["arraybuffer.prototype.slice", [\ + ["npm:1.0.1", {\ + "packageLocation": "./.yarn/cache/arraybuffer.prototype.slice-npm-1.0.1-d44cb5acc0-e3e9b2a3e9.zip/node_modules/arraybuffer.prototype.slice/",\ + "packageDependencies": [\ + ["arraybuffer.prototype.slice", "npm:1.0.1"],\ + ["array-buffer-byte-length", "npm:1.0.0"],\ + ["call-bind", "npm:1.0.2"],\ + ["define-properties", "npm:1.2.0"],\ + ["get-intrinsic", "npm:1.2.1"],\ + ["is-array-buffer", "npm:3.0.2"],\ + ["is-shared-array-buffer", "npm:1.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["asap", [\ ["npm:2.0.6", {\ "packageLocation": "./.yarn/cache/asap-npm-2.0.6-36714d439d-b296c92c4b.zip/node_modules/asap/",\ @@ -3131,10 +3180,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "SOFT"\ }],\ - ["npm:5.2.3", {\ - "packageLocation": "./.yarn/cache/bootstrap-npm-5.2.3-7458283a23-0211805dec.zip/node_modules/bootstrap/",\ + ["npm:5.3.0", {\ + "packageLocation": "./.yarn/cache/bootstrap-npm-5.3.0-240c38a3b2-29a83cc8ca.zip/node_modules/bootstrap/",\ "packageDependencies": [\ - ["bootstrap", "npm:5.2.3"]\ + ["bootstrap", "npm:5.3.0"]\ ],\ "linkType": "SOFT"\ }],\ @@ -3151,10 +3200,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "HARD"\ }],\ - ["virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:5.2.3", {\ - "packageLocation": "./.yarn/__virtual__/bootstrap-virtual-c4952ffff0/0/cache/bootstrap-npm-5.2.3-7458283a23-0211805dec.zip/node_modules/bootstrap/",\ + ["virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:5.3.0", {\ + "packageLocation": "./.yarn/__virtual__/bootstrap-virtual-3c63ba6f80/0/cache/bootstrap-npm-5.3.0-240c38a3b2-29a83cc8ca.zip/node_modules/bootstrap/",\ "packageDependencies": [\ - ["bootstrap", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:5.2.3"],\ + ["bootstrap", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:5.3.0"],\ ["@popperjs/core", "npm:2.11.8"],\ ["@types/popperjs__core", null]\ ],\ @@ -3247,22 +3296,22 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["c8", [\ - ["npm:8.0.0", {\ - "packageLocation": "./.yarn/cache/c8-npm-8.0.0-905b9370f4-9b107e412a.zip/node_modules/c8/",\ + ["npm:8.0.1", {\ + "packageLocation": "./.yarn/cache/c8-npm-8.0.1-6462c8130b-2c47531d21.zip/node_modules/c8/",\ "packageDependencies": [\ - ["c8", "npm:8.0.0"],\ + ["c8", "npm:8.0.1"],\ ["@bcoe/v8-coverage", "npm:0.2.3"],\ ["@istanbuljs/schema", "npm:0.1.3"],\ ["find-up", "npm:5.0.0"],\ ["foreground-child", "npm:2.0.0"],\ ["istanbul-lib-coverage", "npm:3.2.0"],\ - ["istanbul-lib-report", "npm:3.0.0"],\ - ["istanbul-reports", "npm:3.1.4"],\ + ["istanbul-lib-report", "npm:3.0.1"],\ + ["istanbul-reports", "npm:3.1.6"],\ ["rimraf", "npm:3.0.2"],\ ["test-exclude", "npm:6.0.0"],\ ["v8-to-istanbul", "npm:9.0.1"],\ - ["yargs", "npm:16.2.0"],\ - ["yargs-parser", "npm:20.2.9"]\ + ["yargs", "npm:17.7.2"],\ + ["yargs-parser", "npm:21.1.1"]\ ],\ "linkType": "HARD"\ }]\ @@ -3322,10 +3371,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "HARD"\ }],\ - ["npm:1.0.30001495", {\ - "packageLocation": "./.yarn/cache/caniuse-lite-npm-1.0.30001495-4b9e0263f7-c0a139a2e6.zip/node_modules/caniuse-lite/",\ + ["npm:1.0.30001519", {\ + "packageLocation": "./.yarn/cache/caniuse-lite-npm-1.0.30001519-1d6b5bc825-66085133ed.zip/node_modules/caniuse-lite/",\ "packageDependencies": [\ - ["caniuse-lite", "npm:1.0.30001495"]\ + ["caniuse-lite", "npm:1.0.30001519"]\ ],\ "linkType": "HARD"\ }]\ @@ -3406,10 +3455,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["cliui", [\ - ["npm:7.0.4", {\ - "packageLocation": "./.yarn/cache/cliui-npm-7.0.4-d6b8a9edb6-ce2e8f578a.zip/node_modules/cliui/",\ + ["npm:8.0.1", {\ + "packageLocation": "./.yarn/cache/cliui-npm-8.0.1-3b029092cf-79648b3b00.zip/node_modules/cliui/",\ "packageDependencies": [\ - ["cliui", "npm:7.0.4"],\ + ["cliui", "npm:8.0.1"],\ ["string-width", "npm:4.2.3"],\ ["strip-ansi", "npm:6.0.1"],\ ["wrap-ansi", "npm:7.0.0"]\ @@ -4124,6 +4173,15 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["object-keys", "npm:1.1.1"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:1.2.0", {\ + "packageLocation": "./.yarn/cache/define-properties-npm-1.2.0-3547cd0fd2-e60aee6a19.zip/node_modules/define-properties/",\ + "packageDependencies": [\ + ["define-properties", "npm:1.2.0"],\ + ["has-property-descriptors", "npm:1.0.0"],\ + ["object-keys", "npm:1.1.1"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["delaunator", [\ @@ -4413,6 +4471,52 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["which-typed-array", "npm:1.1.9"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:1.22.1", {\ + "packageLocation": "./.yarn/cache/es-abstract-npm-1.22.1-bfe4c9a3e1-614e2c1c37.zip/node_modules/es-abstract/",\ + "packageDependencies": [\ + ["es-abstract", "npm:1.22.1"],\ + ["array-buffer-byte-length", "npm:1.0.0"],\ + ["arraybuffer.prototype.slice", "npm:1.0.1"],\ + ["available-typed-arrays", "npm:1.0.5"],\ + ["call-bind", "npm:1.0.2"],\ + ["es-set-tostringtag", "npm:2.0.1"],\ + ["es-to-primitive", "npm:1.2.1"],\ + ["function.prototype.name", "npm:1.1.5"],\ + ["get-intrinsic", "npm:1.2.1"],\ + ["get-symbol-description", "npm:1.0.0"],\ + ["globalthis", "npm:1.0.3"],\ + ["gopd", "npm:1.0.1"],\ + ["has", "npm:1.0.3"],\ + ["has-property-descriptors", "npm:1.0.0"],\ + ["has-proto", "npm:1.0.1"],\ + ["has-symbols", "npm:1.0.3"],\ + ["internal-slot", "npm:1.0.5"],\ + ["is-array-buffer", "npm:3.0.2"],\ + ["is-callable", "npm:1.2.7"],\ + ["is-negative-zero", "npm:2.0.2"],\ + ["is-regex", "npm:1.1.4"],\ + ["is-shared-array-buffer", "npm:1.0.2"],\ + ["is-string", "npm:1.0.7"],\ + ["is-typed-array", "npm:1.1.10"],\ + ["is-weakref", "npm:1.0.2"],\ + ["object-inspect", "npm:1.12.3"],\ + ["object-keys", "npm:1.1.1"],\ + ["object.assign", "npm:4.1.4"],\ + ["regexp.prototype.flags", "npm:1.5.0"],\ + ["safe-array-concat", "npm:1.0.0"],\ + ["safe-regex-test", "npm:1.0.0"],\ + ["string.prototype.trim", "npm:1.2.7"],\ + ["string.prototype.trimend", "npm:1.0.6"],\ + ["string.prototype.trimstart", "npm:1.0.6"],\ + ["typed-array-buffer", "npm:1.0.0"],\ + ["typed-array-byte-length", "npm:1.0.0"],\ + ["typed-array-byte-offset", "npm:1.0.0"],\ + ["typed-array-length", "npm:1.0.4"],\ + ["unbox-primitive", "npm:1.0.2"],\ + ["which-typed-array", "npm:1.1.11"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["es-set-tostringtag", [\ @@ -4450,32 +4554,32 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["esbuild", [\ - ["npm:0.17.13", {\ - "packageLocation": "./.yarn/unplugged/esbuild-npm-0.17.13-538abc913d/node_modules/esbuild/",\ + ["npm:0.18.20", {\ + "packageLocation": "./.yarn/unplugged/esbuild-npm-0.18.20-004a76d281/node_modules/esbuild/",\ "packageDependencies": [\ - ["esbuild", "npm:0.17.13"],\ - ["@esbuild/android-arm", "npm:0.17.13"],\ - ["@esbuild/android-arm64", "npm:0.17.13"],\ - ["@esbuild/android-x64", "npm:0.17.13"],\ - ["@esbuild/darwin-arm64", "npm:0.17.13"],\ - ["@esbuild/darwin-x64", "npm:0.17.13"],\ - ["@esbuild/freebsd-arm64", "npm:0.17.13"],\ - ["@esbuild/freebsd-x64", "npm:0.17.13"],\ - ["@esbuild/linux-arm", "npm:0.17.13"],\ - ["@esbuild/linux-arm64", "npm:0.17.13"],\ - ["@esbuild/linux-ia32", "npm:0.17.13"],\ - ["@esbuild/linux-loong64", "npm:0.17.13"],\ - ["@esbuild/linux-mips64el", "npm:0.17.13"],\ - ["@esbuild/linux-ppc64", "npm:0.17.13"],\ - ["@esbuild/linux-riscv64", "npm:0.17.13"],\ - ["@esbuild/linux-s390x", "npm:0.17.13"],\ - ["@esbuild/linux-x64", "npm:0.17.13"],\ - ["@esbuild/netbsd-x64", "npm:0.17.13"],\ - ["@esbuild/openbsd-x64", "npm:0.17.13"],\ - ["@esbuild/sunos-x64", "npm:0.17.13"],\ - ["@esbuild/win32-arm64", "npm:0.17.13"],\ - ["@esbuild/win32-ia32", "npm:0.17.13"],\ - ["@esbuild/win32-x64", "npm:0.17.13"]\ + ["esbuild", "npm:0.18.20"],\ + ["@esbuild/android-arm", "npm:0.18.20"],\ + ["@esbuild/android-arm64", "npm:0.18.20"],\ + ["@esbuild/android-x64", "npm:0.18.20"],\ + ["@esbuild/darwin-arm64", "npm:0.18.20"],\ + ["@esbuild/darwin-x64", "npm:0.18.20"],\ + ["@esbuild/freebsd-arm64", "npm:0.18.20"],\ + ["@esbuild/freebsd-x64", "npm:0.18.20"],\ + ["@esbuild/linux-arm", "npm:0.18.20"],\ + ["@esbuild/linux-arm64", "npm:0.18.20"],\ + ["@esbuild/linux-ia32", "npm:0.18.20"],\ + ["@esbuild/linux-loong64", "npm:0.18.20"],\ + ["@esbuild/linux-mips64el", "npm:0.18.20"],\ + ["@esbuild/linux-ppc64", "npm:0.18.20"],\ + ["@esbuild/linux-riscv64", "npm:0.18.20"],\ + ["@esbuild/linux-s390x", "npm:0.18.20"],\ + ["@esbuild/linux-x64", "npm:0.18.20"],\ + ["@esbuild/netbsd-x64", "npm:0.18.20"],\ + ["@esbuild/openbsd-x64", "npm:0.18.20"],\ + ["@esbuild/sunos-x64", "npm:0.18.20"],\ + ["@esbuild/win32-arm64", "npm:0.18.20"],\ + ["@esbuild/win32-ia32", "npm:0.18.20"],\ + ["@esbuild/win32-x64", "npm:0.18.20"]\ ],\ "linkType": "HARD"\ }]\ @@ -4515,14 +4619,14 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["eslint", [\ - ["npm:8.43.0", {\ - "packageLocation": "./.yarn/cache/eslint-npm-8.43.0-5757109ac8-55654ce00b.zip/node_modules/eslint/",\ + ["npm:8.47.0", {\ + "packageLocation": "./.yarn/cache/eslint-npm-8.47.0-84c6b60ea8-1988617f70.zip/node_modules/eslint/",\ "packageDependencies": [\ - ["eslint", "npm:8.43.0"],\ - ["@eslint-community/eslint-utils", "virtual:5757109ac88221e94a852cc9f73e2f55465a7102fffadd66cbbc453ec0085a59a55391bf490e79144c3026a10d76b992734f4e89f8c9b0e26d0c979c648afdd9#npm:4.4.0"],\ - ["@eslint-community/regexpp", "npm:4.4.1"],\ - ["@eslint/eslintrc", "npm:2.0.3"],\ - ["@eslint/js", "npm:8.43.0"],\ + ["eslint", "npm:8.47.0"],\ + ["@eslint-community/eslint-utils", "virtual:84c6b60ea80c2e474ae2eb1949a4b42a725b5ad125a348fd9ccd31d528ef15de82d28192a86b98baf21067fd8c90bd02753cac42e9ee96bf5f8084788455b3e4#npm:4.4.0"],\ + ["@eslint-community/regexpp", "npm:4.8.0"],\ + ["@eslint/eslintrc", "npm:2.1.2"],\ + ["@eslint/js", "npm:8.48.0"],\ ["@humanwhocodes/config-array", "npm:0.11.10"],\ ["@humanwhocodes/module-importer", "npm:1.0.1"],\ ["@nodelib/fs.walk", "npm:1.2.8"],\ @@ -4532,9 +4636,9 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["debug", "virtual:b86a9fb34323a98c6519528ed55faa0d9b44ca8879307c0b29aa384bde47ff59a7d0c9051b31246f14521dfb71ba3c5d6d0b35c29fffc17bf875aa6ad977d9e8#npm:4.3.4"],\ ["doctrine", "npm:3.0.0"],\ ["escape-string-regexp", "npm:4.0.0"],\ - ["eslint-scope", "npm:7.2.0"],\ - ["eslint-visitor-keys", "npm:3.4.1"],\ - ["espree", "npm:9.5.2"],\ + ["eslint-scope", "npm:7.2.2"],\ + ["eslint-visitor-keys", "npm:3.4.3"],\ + ["espree", "npm:9.6.1"],\ ["esquery", "npm:1.5.0"],\ ["esutils", "npm:2.0.3"],\ ["fast-deep-equal", "npm:3.1.3"],\ @@ -4544,7 +4648,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["globals", "npm:13.19.0"],\ ["graphemer", "npm:1.4.0"],\ ["ignore", "npm:5.2.0"],\ - ["import-fresh", "npm:3.3.0"],\ ["imurmurhash", "npm:0.1.4"],\ ["is-glob", "npm:4.0.3"],\ ["is-path-inside", "npm:3.0.3"],\ @@ -4554,9 +4657,8 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["lodash.merge", "npm:4.6.2"],\ ["minimatch", "npm:3.1.2"],\ ["natural-compare", "npm:1.4.0"],\ - ["optionator", "npm:0.9.1"],\ + ["optionator", "npm:0.9.3"],\ ["strip-ansi", "npm:6.0.1"],\ - ["strip-json-comments", "npm:3.1.1"],\ ["text-table", "npm:0.2.0"]\ ],\ "linkType": "HARD"\ @@ -4578,8 +4680,8 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["@types/eslint-plugin-import", null],\ ["@types/eslint-plugin-n", null],\ ["@types/eslint-plugin-promise", null],\ - ["eslint", "npm:8.43.0"],\ - ["eslint-plugin-import", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.27.5"],\ + ["eslint", "npm:8.47.0"],\ + ["eslint-plugin-import", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.28.1"],\ ["eslint-plugin-n", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:16.0.1"],\ ["eslint-plugin-promise", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:6.1.1"]\ ],\ @@ -4609,17 +4711,17 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["eslint-module-utils", [\ - ["npm:2.7.4", {\ - "packageLocation": "./.yarn/cache/eslint-module-utils-npm-2.7.4-a1640084cb-5da13645da.zip/node_modules/eslint-module-utils/",\ + ["npm:2.8.0", {\ + "packageLocation": "./.yarn/cache/eslint-module-utils-npm-2.8.0-05e42bcab0-74c6dfea76.zip/node_modules/eslint-module-utils/",\ "packageDependencies": [\ - ["eslint-module-utils", "npm:2.7.4"]\ + ["eslint-module-utils", "npm:2.8.0"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:bd6906041f26404b69936f019863470d6b0f75b1c61c4157b266eb36d096227fb0d250c76d47e694906c4d352d0c4c1a1a71e1f575fbbb05fe72b26198a32c57#npm:2.7.4", {\ - "packageLocation": "./.yarn/__virtual__/eslint-module-utils-virtual-5ee98b4501/0/cache/eslint-module-utils-npm-2.7.4-a1640084cb-5da13645da.zip/node_modules/eslint-module-utils/",\ + ["virtual:ef2ff17f0affe5aeeb05f2e27f2212e975bb78d898c026b74cc62e05a17de36abb35a54f0831f2ff5fced26e6128bfc2c0cf332f7c60149823619b008d0ea480#npm:2.8.0", {\ + "packageLocation": "./.yarn/__virtual__/eslint-module-utils-virtual-0e305f99a7/0/cache/eslint-module-utils-npm-2.8.0-05e42bcab0-74c6dfea76.zip/node_modules/eslint-module-utils/",\ "packageDependencies": [\ - ["eslint-module-utils", "virtual:bd6906041f26404b69936f019863470d6b0f75b1c61c4157b266eb36d096227fb0d250c76d47e694906c4d352d0c4c1a1a71e1f575fbbb05fe72b26198a32c57#npm:2.7.4"],\ + ["eslint-module-utils", "virtual:ef2ff17f0affe5aeeb05f2e27f2212e975bb78d898c026b74cc62e05a17de36abb35a54f0831f2ff5fced26e6128bfc2c0cf332f7c60149823619b008d0ea480#npm:2.8.0"],\ ["@types/eslint", null],\ ["@types/eslint-import-resolver-node", null],\ ["@types/eslint-import-resolver-typescript", null],\ @@ -4627,7 +4729,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["@types/typescript-eslint__parser", null],\ ["@typescript-eslint/parser", null],\ ["debug", "virtual:65bed195431eadffc59e2238eb20cc12d9a1665bc7458ce780a9320ff795091b03cb5c4c2094938315ddd967b5b02c0f1df67b3ed435c69b7457092b7cc06ed8#npm:3.2.7"],\ - ["eslint", "npm:8.43.0"],\ + ["eslint", "npm:8.47.0"],\ ["eslint-import-resolver-node", "npm:0.3.7"],\ ["eslint-import-resolver-typescript", null],\ ["eslint-import-resolver-webpack", null]\ @@ -4648,20 +4750,20 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["eslint-plugin-cypress", [\ - ["npm:2.13.3", {\ - "packageLocation": "./.yarn/cache/eslint-plugin-cypress-npm-2.13.3-0ad3bff9c9-9affbcee29.zip/node_modules/eslint-plugin-cypress/",\ + ["npm:2.14.0", {\ + "packageLocation": "./.yarn/cache/eslint-plugin-cypress-npm-2.14.0-4d90862e1d-3fa118a757.zip/node_modules/eslint-plugin-cypress/",\ "packageDependencies": [\ - ["eslint-plugin-cypress", "npm:2.13.3"]\ + ["eslint-plugin-cypress", "npm:2.14.0"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.13.3", {\ - "packageLocation": "./.yarn/__virtual__/eslint-plugin-cypress-virtual-2dc00cb202/0/cache/eslint-plugin-cypress-npm-2.13.3-0ad3bff9c9-9affbcee29.zip/node_modules/eslint-plugin-cypress/",\ + ["virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.14.0", {\ + "packageLocation": "./.yarn/__virtual__/eslint-plugin-cypress-virtual-57ccfb2b3e/0/cache/eslint-plugin-cypress-npm-2.14.0-4d90862e1d-3fa118a757.zip/node_modules/eslint-plugin-cypress/",\ "packageDependencies": [\ - ["eslint-plugin-cypress", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.13.3"],\ + ["eslint-plugin-cypress", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.14.0"],\ ["@types/eslint", null],\ - ["eslint", "npm:8.43.0"],\ - ["globals", "npm:11.12.0"]\ + ["eslint", "npm:8.47.0"],\ + ["globals", "npm:13.21.0"]\ ],\ "packagePeers": [\ "@types/eslint",\ @@ -4683,7 +4785,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "packageDependencies": [\ ["eslint-plugin-es", "virtual:5cccaf00e87dfff96dbbb5eaf7a3055373358b8114d6a1adfb32f54ed6b40ba06068d3aa1fdd8062899a0cad040f68c17cc6b72bac2cdbe9700f3d6330d112f3#npm:3.0.1"],\ ["@types/eslint", null],\ - ["eslint", "npm:8.43.0"],\ + ["eslint", "npm:8.47.0"],\ ["eslint-utils", "npm:2.1.0"],\ ["regexpp", "npm:3.2.0"]\ ],\ @@ -4706,10 +4808,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "packageLocation": "./.yarn/__virtual__/eslint-plugin-es-x-virtual-7882922717/0/cache/eslint-plugin-es-x-npm-7.1.0-35735e8bbc-a19924313c.zip/node_modules/eslint-plugin-es-x/",\ "packageDependencies": [\ ["eslint-plugin-es-x", "virtual:adc54309e8e54b60324bd0d3562e4cdf4588bb7e8e9bf0e8567ae0b912e220b364ab900a1f69ea824481e4ed94aa6d687c737b8f554fa53b86231581c20d170a#npm:7.1.0"],\ - ["@eslint-community/eslint-utils", "virtual:5757109ac88221e94a852cc9f73e2f55465a7102fffadd66cbbc453ec0085a59a55391bf490e79144c3026a10d76b992734f4e89f8c9b0e26d0c979c648afdd9#npm:4.4.0"],\ + ["@eslint-community/eslint-utils", "virtual:84c6b60ea80c2e474ae2eb1949a4b42a725b5ad125a348fd9ccd31d528ef15de82d28192a86b98baf21067fd8c90bd02753cac42e9ee96bf5f8084788455b3e4#npm:4.4.0"],\ ["@eslint-community/regexpp", "npm:4.5.1"],\ ["@types/eslint", null],\ - ["eslint", "npm:8.43.0"]\ + ["eslint", "npm:8.47.0"]\ ],\ "packagePeers": [\ "@types/eslint",\ @@ -4719,36 +4821,38 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["eslint-plugin-import", [\ - ["npm:2.27.5", {\ - "packageLocation": "./.yarn/cache/eslint-plugin-import-npm-2.27.5-35b044b26f-f500571a38.zip/node_modules/eslint-plugin-import/",\ + ["npm:2.28.1", {\ + "packageLocation": "./.yarn/cache/eslint-plugin-import-npm-2.28.1-2056ddf35c-e8ae6dd8f0.zip/node_modules/eslint-plugin-import/",\ "packageDependencies": [\ - ["eslint-plugin-import", "npm:2.27.5"]\ + ["eslint-plugin-import", "npm:2.28.1"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.27.5", {\ - "packageLocation": "./.yarn/__virtual__/eslint-plugin-import-virtual-bd6906041f/0/cache/eslint-plugin-import-npm-2.27.5-35b044b26f-f500571a38.zip/node_modules/eslint-plugin-import/",\ + ["virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.28.1", {\ + "packageLocation": "./.yarn/__virtual__/eslint-plugin-import-virtual-ef2ff17f0a/0/cache/eslint-plugin-import-npm-2.28.1-2056ddf35c-e8ae6dd8f0.zip/node_modules/eslint-plugin-import/",\ "packageDependencies": [\ - ["eslint-plugin-import", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.27.5"],\ + ["eslint-plugin-import", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.28.1"],\ ["@types/eslint", null],\ ["@types/typescript-eslint__parser", null],\ ["@typescript-eslint/parser", null],\ ["array-includes", "npm:3.1.6"],\ + ["array.prototype.findlastindex", "npm:1.2.2"],\ ["array.prototype.flat", "npm:1.3.1"],\ ["array.prototype.flatmap", "npm:1.3.1"],\ ["debug", "virtual:65bed195431eadffc59e2238eb20cc12d9a1665bc7458ce780a9320ff795091b03cb5c4c2094938315ddd967b5b02c0f1df67b3ed435c69b7457092b7cc06ed8#npm:3.2.7"],\ ["doctrine", "npm:2.1.0"],\ - ["eslint", "npm:8.43.0"],\ + ["eslint", "npm:8.47.0"],\ ["eslint-import-resolver-node", "npm:0.3.7"],\ - ["eslint-module-utils", "virtual:bd6906041f26404b69936f019863470d6b0f75b1c61c4157b266eb36d096227fb0d250c76d47e694906c4d352d0c4c1a1a71e1f575fbbb05fe72b26198a32c57#npm:2.7.4"],\ + ["eslint-module-utils", "virtual:ef2ff17f0affe5aeeb05f2e27f2212e975bb78d898c026b74cc62e05a17de36abb35a54f0831f2ff5fced26e6128bfc2c0cf332f7c60149823619b008d0ea480#npm:2.8.0"],\ ["has", "npm:1.0.3"],\ - ["is-core-module", "npm:2.11.0"],\ + ["is-core-module", "npm:2.13.0"],\ ["is-glob", "npm:4.0.3"],\ ["minimatch", "npm:3.1.2"],\ + ["object.fromentries", "npm:2.0.6"],\ + ["object.groupby", "npm:1.0.0"],\ ["object.values", "npm:1.1.6"],\ - ["resolve", "patch:resolve@npm%3A1.22.1#~builtin<compat/resolve>::version=1.22.1&hash=07638b"],\ - ["semver", "npm:6.3.0"],\ - ["tsconfig-paths", "npm:3.14.1"]\ + ["semver", "npm:6.3.1"],\ + ["tsconfig-paths", "npm:3.14.2"]\ ],\ "packagePeers": [\ "@types/eslint",\ @@ -4771,10 +4875,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "packageLocation": "./.yarn/__virtual__/eslint-plugin-n-virtual-adc54309e8/0/cache/eslint-plugin-n-npm-16.0.1-6a07bf1b46-407002bb06.zip/node_modules/eslint-plugin-n/",\ "packageDependencies": [\ ["eslint-plugin-n", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:16.0.1"],\ - ["@eslint-community/eslint-utils", "virtual:5757109ac88221e94a852cc9f73e2f55465a7102fffadd66cbbc453ec0085a59a55391bf490e79144c3026a10d76b992734f4e89f8c9b0e26d0c979c648afdd9#npm:4.4.0"],\ + ["@eslint-community/eslint-utils", "virtual:84c6b60ea80c2e474ae2eb1949a4b42a725b5ad125a348fd9ccd31d528ef15de82d28192a86b98baf21067fd8c90bd02753cac42e9ee96bf5f8084788455b3e4#npm:4.4.0"],\ ["@types/eslint", null],\ ["builtins", "npm:5.0.1"],\ - ["eslint", "npm:8.43.0"],\ + ["eslint", "npm:8.47.0"],\ ["eslint-plugin-es-x", "virtual:adc54309e8e54b60324bd0d3562e4cdf4588bb7e8e9bf0e8567ae0b912e220b364ab900a1f69ea824481e4ed94aa6d687c737b8f554fa53b86231581c20d170a#npm:7.1.0"],\ ["ignore", "npm:5.2.4"],\ ["is-core-module", "npm:2.12.1"],\ @@ -4802,7 +4906,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "packageDependencies": [\ ["eslint-plugin-node", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:11.1.0"],\ ["@types/eslint", null],\ - ["eslint", "npm:8.43.0"],\ + ["eslint", "npm:8.47.0"],\ ["eslint-plugin-es", "virtual:5cccaf00e87dfff96dbbb5eaf7a3055373358b8114d6a1adfb32f54ed6b40ba06068d3aa1fdd8062899a0cad040f68c17cc6b72bac2cdbe9700f3d6330d112f3#npm:3.0.1"],\ ["eslint-utils", "npm:2.1.0"],\ ["ignore", "npm:5.2.0"],\ @@ -4830,7 +4934,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "packageDependencies": [\ ["eslint-plugin-promise", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:6.1.1"],\ ["@types/eslint", null],\ - ["eslint", "npm:8.43.0"]\ + ["eslint", "npm:8.47.0"]\ ],\ "packagePeers": [\ "@types/eslint",\ @@ -4840,25 +4944,25 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["eslint-plugin-vue", [\ - ["npm:9.15.1", {\ - "packageLocation": "./.yarn/cache/eslint-plugin-vue-npm-9.15.1-9577f26965-b1cdb16e43.zip/node_modules/eslint-plugin-vue/",\ + ["npm:9.17.0", {\ + "packageLocation": "./.yarn/cache/eslint-plugin-vue-npm-9.17.0-c32115eab8-2ef53a0387.zip/node_modules/eslint-plugin-vue/",\ "packageDependencies": [\ - ["eslint-plugin-vue", "npm:9.15.1"]\ + ["eslint-plugin-vue", "npm:9.17.0"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:9.15.1", {\ - "packageLocation": "./.yarn/__virtual__/eslint-plugin-vue-virtual-a8bbfcc6af/0/cache/eslint-plugin-vue-npm-9.15.1-9577f26965-b1cdb16e43.zip/node_modules/eslint-plugin-vue/",\ + ["virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:9.17.0", {\ + "packageLocation": "./.yarn/__virtual__/eslint-plugin-vue-virtual-e39e5d6bef/0/cache/eslint-plugin-vue-npm-9.17.0-c32115eab8-2ef53a0387.zip/node_modules/eslint-plugin-vue/",\ "packageDependencies": [\ - ["eslint-plugin-vue", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:9.15.1"],\ - ["@eslint-community/eslint-utils", "virtual:5757109ac88221e94a852cc9f73e2f55465a7102fffadd66cbbc453ec0085a59a55391bf490e79144c3026a10d76b992734f4e89f8c9b0e26d0c979c648afdd9#npm:4.4.0"],\ + ["eslint-plugin-vue", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:9.17.0"],\ + ["@eslint-community/eslint-utils", "virtual:84c6b60ea80c2e474ae2eb1949a4b42a725b5ad125a348fd9ccd31d528ef15de82d28192a86b98baf21067fd8c90bd02753cac42e9ee96bf5f8084788455b3e4#npm:4.4.0"],\ ["@types/eslint", null],\ - ["eslint", "npm:8.43.0"],\ + ["eslint", "npm:8.47.0"],\ ["natural-compare", "npm:1.4.0"],\ ["nth-check", "npm:2.1.1"],\ - ["postcss-selector-parser", "npm:6.0.10"],\ - ["semver", "npm:7.3.7"],\ - ["vue-eslint-parser", "virtual:a8bbfcc6afa85eb44874f97c133694affff1c591fe1b49dc91c6f1460a3171f7ff9fc2b8fb54fbfa07a880d0e032b8ea8822bda13d1bad3b005c3cf6f77986c0#npm:9.3.0"],\ + ["postcss-selector-parser", "npm:6.0.13"],\ + ["semver", "npm:7.5.4"],\ + ["vue-eslint-parser", "virtual:e39e5d6bef7a93bd3b21c5c9ba6ef825c92fc73c8d9c9e01699e1dc11e40fd3bc150ba16509e2cf59495cb098c32b2e4a85c0c21802fddeffc3208b01f4f5a16#npm:9.3.1"],\ ["xml-name-validator", "npm:4.0.0"]\ ],\ "packagePeers": [\ @@ -4878,10 +4982,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "HARD"\ }],\ - ["npm:7.2.0", {\ - "packageLocation": "./.yarn/cache/eslint-scope-npm-7.2.0-88784f5a38-64591a2d8b.zip/node_modules/eslint-scope/",\ + ["npm:7.2.2", {\ + "packageLocation": "./.yarn/cache/eslint-scope-npm-7.2.2-53cb0df8e8-ec97dbf5fb.zip/node_modules/eslint-scope/",\ "packageDependencies": [\ - ["eslint-scope", "npm:7.2.0"],\ + ["eslint-scope", "npm:7.2.2"],\ ["esrecurse", "npm:4.3.0"],\ ["estraverse", "npm:5.3.0"]\ ],\ @@ -4919,6 +5023,13 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["eslint-visitor-keys", "npm:3.4.1"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:3.4.3", {\ + "packageLocation": "./.yarn/cache/eslint-visitor-keys-npm-3.4.3-a356ac7e46-36e9ef87fc.zip/node_modules/eslint-visitor-keys/",\ + "packageDependencies": [\ + ["eslint-visitor-keys", "npm:3.4.3"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["espree", [\ @@ -4932,12 +5043,12 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "HARD"\ }],\ - ["npm:9.5.2", {\ - "packageLocation": "./.yarn/cache/espree-npm-9.5.2-5fc9506cda-6506289d6e.zip/node_modules/espree/",\ + ["npm:9.6.1", {\ + "packageLocation": "./.yarn/cache/espree-npm-9.6.1-a50722a5a9-eb8c149c7a.zip/node_modules/espree/",\ "packageDependencies": [\ - ["espree", "npm:9.5.2"],\ - ["acorn", "npm:8.8.0"],\ - ["acorn-jsx", "virtual:5fc9506cdac3b623f10b3f7adb0b64c62d2c6059855d74020d649d3c7df60271229590b28e7061203e031c21cd88cfd7344e13902ceb1f7776b1da6a18ef4ad8#npm:5.3.2"],\ + ["espree", "npm:9.6.1"],\ + ["acorn", "npm:8.10.0"],\ + ["acorn-jsx", "virtual:a50722a5a9326b6a5f12350c494c4db3aa0f4caeac45e3e9e5fe071da20014ecfe738fe2ebe2c9c98abae81a4ea86b42f56d776b3bd5ec37f9ad3670c242b242#npm:5.3.2"],\ ["eslint-visitor-keys", "npm:3.4.1"]\ ],\ "linkType": "HARD"\ @@ -5265,6 +5376,17 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["has-symbols", "npm:1.0.3"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:1.2.1", {\ + "packageLocation": "./.yarn/cache/get-intrinsic-npm-1.2.1-ae857fd610-5b61d88552.zip/node_modules/get-intrinsic/",\ + "packageDependencies": [\ + ["get-intrinsic", "npm:1.2.1"],\ + ["function-bind", "npm:1.1.1"],\ + ["has", "npm:1.0.3"],\ + ["has-proto", "npm:1.0.1"],\ + ["has-symbols", "npm:1.0.3"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["get-port", [\ @@ -5345,13 +5467,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["globals", [\ - ["npm:11.12.0", {\ - "packageLocation": "./.yarn/cache/globals-npm-11.12.0-1fa7f41a6c-67051a45ec.zip/node_modules/globals/",\ - "packageDependencies": [\ - ["globals", "npm:11.12.0"]\ - ],\ - "linkType": "HARD"\ - }],\ ["npm:13.15.0", {\ "packageLocation": "./.yarn/cache/globals-npm-13.15.0-c0b0c83a7a-383ade0873.zip/node_modules/globals/",\ "packageDependencies": [\ @@ -5367,6 +5482,14 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["type-fest", "npm:0.20.2"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:13.21.0", {\ + "packageLocation": "./.yarn/cache/globals-npm-13.21.0-c0829ce1cb-86c92ca8a0.zip/node_modules/globals/",\ + "packageDependencies": [\ + ["globals", "npm:13.21.0"],\ + ["type-fest", "npm:0.20.2"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["globalthis", [\ @@ -5517,20 +5640,20 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["html-validate", [\ - ["npm:8.0.5", {\ - "packageLocation": "./.yarn/cache/html-validate-npm-8.0.5-b9c8df9b15-05c5255032.zip/node_modules/html-validate/",\ + ["npm:8.2.0", {\ + "packageLocation": "./.yarn/cache/html-validate-npm-8.2.0-51da0ed7e6-793287a454.zip/node_modules/html-validate/",\ "packageDependencies": [\ - ["html-validate", "npm:8.0.5"]\ + ["html-validate", "npm:8.2.0"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:8.0.5", {\ - "packageLocation": "./.yarn/__virtual__/html-validate-virtual-5b253c7fe6/0/cache/html-validate-npm-8.0.5-b9c8df9b15-05c5255032.zip/node_modules/html-validate/",\ + ["virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:8.2.0", {\ + "packageLocation": "./.yarn/__virtual__/html-validate-virtual-d54cf140bc/0/cache/html-validate-npm-8.2.0-51da0ed7e6-793287a454.zip/node_modules/html-validate/",\ "packageDependencies": [\ - ["html-validate", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:8.0.5"],\ + ["html-validate", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:8.2.0"],\ ["@babel/code-frame", "npm:7.16.7"],\ ["@html-validate/stylish", "npm:4.1.0"],\ - ["@sidvind/better-ajv-errors", "virtual:5b253c7fe6920728e3c9c52a5bc1311d65d2e0c4fed3ef146b86c5f66caee15cd0369525e4dcd3e32e97a7168db12a74c5dd0ba006e6fd26f77cbbe68415a9f7#npm:2.0.0"],\ + ["@sidvind/better-ajv-errors", "virtual:d54cf140bc899b791890b50d03f9737577eb8c2e0b480e2b1bc40b168f05a300b97a0338d73f013a8f7410236526aba6ee56a063db404e7ae64ba5f1e4e85cb8#npm:2.0.0"],\ ["@types/jest", null],\ ["@types/jest-diff", null],\ ["@types/jest-snapshot", null],\ @@ -5565,10 +5688,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "SOFT"\ }],\ - ["virtual:01a9d51f22d57b32a48466b80fd9ec3455d6f5a526a80bd51fe8eaa7bbd3f389fe1e0b22c1b463c7e24fb30d65e4e5dcf6cb0772821469c3384f7df764814f0f#npm:2.0.2", {\ - "packageLocation": "./.yarn/__virtual__/htmlnano-virtual-e628782d5e/0/cache/htmlnano-npm-2.0.2-a89803bfeb-41f9e0c0e5.zip/node_modules/htmlnano/",\ + ["virtual:682b0538d3ef39b15922534816375f8fc9e61152acb2141851060b4f57fd8fce2e1ba748144a96d0ea51c5172e3701c211adb5d242aa55cd0ea2e483080b55c3#npm:2.0.2", {\ + "packageLocation": "./.yarn/__virtual__/htmlnano-virtual-3ab33bcaef/0/cache/htmlnano-npm-2.0.2-a89803bfeb-41f9e0c0e5.zip/node_modules/htmlnano/",\ "packageDependencies": [\ - ["htmlnano", "virtual:01a9d51f22d57b32a48466b80fd9ec3455d6f5a526a80bd51fe8eaa7bbd3f389fe1e0b22c1b463c7e24fb30d65e4e5dcf6cb0772821469c3384f7df764814f0f#npm:2.0.2"],\ + ["htmlnano", "virtual:682b0538d3ef39b15922534816375f8fc9e61152acb2141851060b4f57fd8fce2e1ba748144a96d0ea51c5172e3701c211adb5d242aa55cd0ea2e483080b55c3#npm:2.0.2"],\ ["@types/cssnano", null],\ ["@types/postcss", null],\ ["@types/purgecss", null],\ @@ -5791,6 +5914,16 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["side-channel", "npm:1.0.4"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:1.0.5", {\ + "packageLocation": "./.yarn/cache/internal-slot-npm-1.0.5-a2241f3e66-97e84046bf.zip/node_modules/internal-slot/",\ + "packageDependencies": [\ + ["internal-slot", "npm:1.0.5"],\ + ["get-intrinsic", "npm:1.2.1"],\ + ["has", "npm:1.0.3"],\ + ["side-channel", "npm:1.0.4"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["internmap", [\ @@ -5821,6 +5954,16 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["is-typed-array", "npm:1.1.10"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:3.0.2", {\ + "packageLocation": "./.yarn/cache/is-array-buffer-npm-3.0.2-0dec897785-dcac9dda66.zip/node_modules/is-array-buffer/",\ + "packageDependencies": [\ + ["is-array-buffer", "npm:3.0.2"],\ + ["call-bind", "npm:1.0.2"],\ + ["get-intrinsic", "npm:1.2.1"],\ + ["is-typed-array", "npm:1.1.10"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["is-arrayish", [\ @@ -5904,6 +6047,14 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "HARD"\ }],\ + ["npm:2.13.0", {\ + "packageLocation": "./.yarn/cache/is-core-module-npm-2.13.0-e444c50225-053ab101fb.zip/node_modules/is-core-module/",\ + "packageDependencies": [\ + ["is-core-module", "npm:2.13.0"],\ + ["has", "npm:1.0.3"]\ + ],\ + "linkType": "HARD"\ + }],\ ["npm:2.9.0", {\ "packageLocation": "./.yarn/cache/is-core-module-npm-2.9.0-5ba77c35ae-b27034318b.zip/node_modules/is-core-module/",\ "packageDependencies": [\ @@ -6091,6 +6242,15 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "linkType": "HARD"\ }]\ ]],\ + ["isarray", [\ + ["npm:2.0.5", {\ + "packageLocation": "./.yarn/cache/isarray-npm-2.0.5-4ba522212d-bd5bbe4104.zip/node_modules/isarray/",\ + "packageDependencies": [\ + ["isarray", "npm:2.0.5"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["isbinaryfile", [\ ["npm:4.0.10", {\ "packageLocation": "./.yarn/cache/isbinaryfile-npm-4.0.10-91d1251522-a6b28db7e2.zip/node_modules/isbinaryfile/",\ @@ -6128,13 +6288,23 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["supports-color", "npm:7.2.0"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:3.0.1", {\ + "packageLocation": "./.yarn/cache/istanbul-lib-report-npm-3.0.1-b17446ab24-fd17a1b879.zip/node_modules/istanbul-lib-report/",\ + "packageDependencies": [\ + ["istanbul-lib-report", "npm:3.0.1"],\ + ["istanbul-lib-coverage", "npm:3.2.0"],\ + ["make-dir", "npm:4.0.0"],\ + ["supports-color", "npm:7.2.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["istanbul-reports", [\ - ["npm:3.1.4", {\ - "packageLocation": "./.yarn/cache/istanbul-reports-npm-3.1.4-5faaa9636c-2132983355.zip/node_modules/istanbul-reports/",\ + ["npm:3.1.6", {\ + "packageLocation": "./.yarn/cache/istanbul-reports-npm-3.1.6-66918eb97f-44c4c0582f.zip/node_modules/istanbul-reports/",\ "packageDependencies": [\ - ["istanbul-reports", "npm:3.1.4"],\ + ["istanbul-reports", "npm:3.1.6"],\ ["html-escaper", "npm:2.0.2"],\ ["istanbul-lib-report", "npm:3.0.0"]\ ],\ @@ -6520,10 +6690,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["luxon", [\ - ["npm:3.3.0", {\ - "packageLocation": "./.yarn/cache/luxon-npm-3.3.0-bdbae9bfd5-50cf17a0dc.zip/node_modules/luxon/",\ + ["npm:3.4.0", {\ + "packageLocation": "./.yarn/cache/luxon-npm-3.4.0-8e0b97226e-ca9b6d0e0a.zip/node_modules/luxon/",\ "packageDependencies": [\ - ["luxon", "npm:3.3.0"]\ + ["luxon", "npm:3.4.0"]\ ],\ "linkType": "HARD"\ }]\ @@ -6546,6 +6716,14 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["semver", "npm:6.3.0"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:4.0.0", {\ + "packageLocation": "./.yarn/cache/make-dir-npm-4.0.0-ec3cd921cc-bf0731a2dd.zip/node_modules/make-dir/",\ + "packageDependencies": [\ + ["make-dir", "npm:4.0.0"],\ + ["semver", "npm:7.5.3"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["make-fetch-happen", [\ @@ -7081,6 +7259,31 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "linkType": "HARD"\ }]\ ]],\ + ["object.fromentries", [\ + ["npm:2.0.6", {\ + "packageLocation": "./.yarn/cache/object.fromentries-npm-2.0.6-424cf4cd3c-453c6d6941.zip/node_modules/object.fromentries/",\ + "packageDependencies": [\ + ["object.fromentries", "npm:2.0.6"],\ + ["call-bind", "npm:1.0.2"],\ + ["define-properties", "npm:1.1.4"],\ + ["es-abstract", "npm:1.21.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["object.groupby", [\ + ["npm:1.0.0", {\ + "packageLocation": "./.yarn/cache/object.groupby-npm-1.0.0-b360bea3aa-64b00b287d.zip/node_modules/object.groupby/",\ + "packageDependencies": [\ + ["object.groupby", "npm:1.0.0"],\ + ["call-bind", "npm:1.0.2"],\ + ["define-properties", "npm:1.2.0"],\ + ["es-abstract", "npm:1.22.1"],\ + ["get-intrinsic", "npm:1.2.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["object.values", [\ ["npm:1.1.6", {\ "packageLocation": "./.yarn/cache/object.values-npm-1.1.6-ab9b67ccd3-f6fff9fd81.zip/node_modules/object.values/",\ @@ -7114,16 +7317,16 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["optionator", [\ - ["npm:0.9.1", {\ - "packageLocation": "./.yarn/cache/optionator-npm-0.9.1-577e397aae-dbc6fa0656.zip/node_modules/optionator/",\ + ["npm:0.9.3", {\ + "packageLocation": "./.yarn/cache/optionator-npm-0.9.3-56c3a4bf80-0928199944.zip/node_modules/optionator/",\ "packageDependencies": [\ - ["optionator", "npm:0.9.1"],\ + ["optionator", "npm:0.9.3"],\ + ["@aashutoshrathi/word-wrap", "npm:1.2.6"],\ ["deep-is", "npm:0.1.4"],\ ["fast-levenshtein", "npm:2.0.6"],\ ["levn", "npm:0.4.1"],\ ["prelude-ls", "npm:1.2.1"],\ - ["type-check", "npm:0.4.0"],\ - ["word-wrap", "npm:1.2.3"]\ + ["type-check", "npm:0.4.0"]\ ],\ "linkType": "HARD"\ }]\ @@ -7175,28 +7378,28 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["parcel", [\ - ["npm:2.9.2", {\ - "packageLocation": "./.yarn/cache/parcel-npm-2.9.2-a28e47b190-bd16d67104.zip/node_modules/parcel/",\ + ["npm:2.9.3", {\ + "packageLocation": "./.yarn/cache/parcel-npm-2.9.3-33db24662f-d9b9c0083f.zip/node_modules/parcel/",\ "packageDependencies": [\ - ["parcel", "npm:2.9.2"]\ + ["parcel", "npm:2.9.3"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.9.2", {\ - "packageLocation": "./.yarn/__virtual__/parcel-virtual-c28611412c/0/cache/parcel-npm-2.9.2-a28e47b190-bd16d67104.zip/node_modules/parcel/",\ + ["virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.9.3", {\ + "packageLocation": "./.yarn/__virtual__/parcel-virtual-8b9ffb5b47/0/cache/parcel-npm-2.9.3-33db24662f-d9b9c0083f.zip/node_modules/parcel/",\ "packageDependencies": [\ - ["parcel", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.9.2"],\ - ["@parcel/config-default", "virtual:c28611412c955a1fda20639657c96ff2be961c906ace258361995235bacf8e4a907ad524e4fb9fb5a0aaae51e5563719e1d95f46bcfadadbe883a4a6942a7afb#npm:2.9.2"],\ - ["@parcel/core", "npm:2.9.2"],\ - ["@parcel/diagnostic", "npm:2.9.2"],\ - ["@parcel/events", "npm:2.9.2"],\ - ["@parcel/fs", "virtual:43efe8c40140be76b32499653f543b18393eb1de2ef0e88117e3f2cada1597e4a2a0c0d655c705adbf72ebea2ed1fa9151fd162dc048cb763ed04af898c30a12#npm:2.9.2"],\ - ["@parcel/logger", "npm:2.9.2"],\ - ["@parcel/package-manager", "virtual:43efe8c40140be76b32499653f543b18393eb1de2ef0e88117e3f2cada1597e4a2a0c0d655c705adbf72ebea2ed1fa9151fd162dc048cb763ed04af898c30a12#npm:2.9.2"],\ - ["@parcel/reporter-cli", "npm:2.9.2"],\ - ["@parcel/reporter-dev-server", "npm:2.9.2"],\ - ["@parcel/reporter-tracer", "npm:2.9.2"],\ - ["@parcel/utils", "npm:2.9.2"],\ + ["parcel", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.9.3"],\ + ["@parcel/config-default", "virtual:8b9ffb5b471d92e43ed44d9d4b3997be1cadcb1d0802b72e4feeb1d8632c82ed490c0f9ad36e4817250e971bef57542a4c559c6969b21f3656e8c43773148c7f#npm:2.9.3"],\ + ["@parcel/core", "npm:2.9.3"],\ + ["@parcel/diagnostic", "npm:2.9.3"],\ + ["@parcel/events", "npm:2.9.3"],\ + ["@parcel/fs", "virtual:b343ad5e82ae43a5371ef526d26f5282ba433795366dfabc05f623d5d686c21c439265330c2a02c006fc56a66deb59f0ca81d8c6e1639d3af2ebf54dd304f27f#npm:2.9.3"],\ + ["@parcel/logger", "npm:2.9.3"],\ + ["@parcel/package-manager", "virtual:b343ad5e82ae43a5371ef526d26f5282ba433795366dfabc05f623d5d686c21c439265330c2a02c006fc56a66deb59f0ca81d8c6e1639d3af2ebf54dd304f27f#npm:2.9.3"],\ + ["@parcel/reporter-cli", "npm:2.9.3"],\ + ["@parcel/reporter-dev-server", "npm:2.9.3"],\ + ["@parcel/reporter-tracer", "npm:2.9.3"],\ + ["@parcel/utils", "npm:2.9.3"],\ ["@types/parcel__core", null],\ ["chalk", "npm:4.1.2"],\ ["commander", "npm:7.2.0"],\ @@ -7306,17 +7509,17 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["pinia", [\ - ["npm:2.1.4", {\ - "packageLocation": "./.yarn/cache/pinia-npm-2.1.4-8c3fdb8813-5285b1415e.zip/node_modules/pinia/",\ + ["npm:2.1.6", {\ + "packageLocation": "./.yarn/cache/pinia-npm-2.1.6-e0a07396ee-4e881e590c.zip/node_modules/pinia/",\ "packageDependencies": [\ - ["pinia", "npm:2.1.4"]\ + ["pinia", "npm:2.1.6"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.1.4", {\ - "packageLocation": "./.yarn/__virtual__/pinia-virtual-bb260f937b/0/cache/pinia-npm-2.1.4-8c3fdb8813-5285b1415e.zip/node_modules/pinia/",\ + ["virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.1.6", {\ + "packageLocation": "./.yarn/__virtual__/pinia-virtual-de554bf1d1/0/cache/pinia-npm-2.1.6-e0a07396ee-4e881e590c.zip/node_modules/pinia/",\ "packageDependencies": [\ - ["pinia", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.1.4"],\ + ["pinia", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.1.6"],\ ["@types/typescript", null],\ ["@types/vue", null],\ ["@types/vue__composition-api", null],\ @@ -7324,7 +7527,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["@vue/devtools-api", "npm:6.5.0"],\ ["typescript", null],\ ["vue", "npm:3.3.4"],\ - ["vue-demi", "virtual:bb260f937b7a21d0bf1a237b49b5f5bb70768133cd2135f9b6e87b722c443cbd2bff06d78c2b68972426bd729bb048f00831bc4a0d6a7b18a7319117ceec672d#npm:0.14.5"]\ + ["vue-demi", "virtual:de554bf1d104f9221148406424834a12640f5b745a790aaa466b8628aa7cb6ad88fd12f5887cbd44a0f77b628866ed0931b52ee1d324804f909f07ccba45e09d#npm:0.14.5"]\ ],\ "packagePeers": [\ "@types/typescript",\ @@ -7353,7 +7556,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["@types/vue", null],\ ["@types/vue__composition-api", null],\ ["@vue/composition-api", null],\ - ["pinia", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.1.4"],\ + ["pinia", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.1.6"],\ ["vue", "npm:3.3.4"],\ ["vue-demi", "virtual:f56fcf19bbebc2ada1b28955da8cc216b1e9a569a1a7337d2d1926c1ebd1bc7a5bd91aedae1d05c15c8562f33caf7c59bd3020a667340f6bdc6a7b13fc2ba847#npm:0.12.5"]\ ],\ @@ -7379,10 +7582,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "HARD"\ }],\ - ["npm:8.4.23", {\ - "packageLocation": "./.yarn/cache/postcss-npm-8.4.23-d4a02a832d-8bb9d1b2ea.zip/node_modules/postcss/",\ + ["npm:8.4.27", {\ + "packageLocation": "./.yarn/cache/postcss-npm-8.4.27-2a9f5f8f40-1cdd0c2988.zip/node_modules/postcss/",\ "packageDependencies": [\ - ["postcss", "npm:8.4.23"],\ + ["postcss", "npm:8.4.27"],\ ["nanoid", "npm:3.3.6"],\ ["picocolors", "npm:1.0.0"],\ ["source-map-js", "npm:1.0.2"]\ @@ -7391,10 +7594,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["postcss-selector-parser", [\ - ["npm:6.0.10", {\ - "packageLocation": "./.yarn/cache/postcss-selector-parser-npm-6.0.10-a4d7aaa270-46afaa60e3.zip/node_modules/postcss-selector-parser/",\ + ["npm:6.0.13", {\ + "packageLocation": "./.yarn/cache/postcss-selector-parser-npm-6.0.13-f732d92326-f89163338a.zip/node_modules/postcss-selector-parser/",\ "packageDependencies": [\ - ["postcss-selector-parser", "npm:6.0.10"],\ + ["postcss-selector-parser", "npm:6.0.13"],\ ["cssesc", "npm:3.0.0"],\ ["util-deprecate", "npm:1.0.2"]\ ],\ @@ -7749,6 +7952,16 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["functions-have-names", "npm:1.2.3"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:1.5.0", {\ + "packageLocation": "./.yarn/cache/regexp.prototype.flags-npm-1.5.0-5623b9e07f-c541687cdb.zip/node_modules/regexp.prototype.flags/",\ + "packageDependencies": [\ + ["regexp.prototype.flags", "npm:1.5.0"],\ + ["call-bind", "npm:1.0.2"],\ + ["define-properties", "npm:1.2.0"],\ + ["functions-have-names", "npm:1.2.3"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["regexpp", [\ @@ -7857,10 +8070,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["rollup", [\ - ["npm:3.21.6", {\ - "packageLocation": "./.yarn/cache/rollup-npm-3.21.6-ae95b73a21-bb6786ee0d.zip/node_modules/rollup/",\ + ["npm:3.28.0", {\ + "packageLocation": "./.yarn/cache/rollup-npm-3.28.0-4ab1b4022e-6ded4a0d3c.zip/node_modules/rollup/",\ "packageDependencies": [\ - ["rollup", "npm:3.21.6"],\ + ["rollup", "npm:3.28.0"],\ ["fsevents", "patch:fsevents@npm%3A2.3.2#~builtin<compat/fsevents>::version=2.3.2&hash=18f3a7"]\ ],\ "linkType": "HARD"\ @@ -7880,31 +8093,31 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["@fullcalendar/luxon3", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:6.1.8"],\ ["@fullcalendar/timegrid", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:6.1.8"],\ ["@fullcalendar/vue3", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:6.1.8"],\ - ["@parcel/optimizer-data-url", "npm:2.9.2"],\ - ["@parcel/transformer-inline-string", "npm:2.9.2"],\ - ["@parcel/transformer-sass", "npm:2.9.2"],\ + ["@parcel/optimizer-data-url", "npm:2.9.3"],\ + ["@parcel/transformer-inline-string", "npm:2.9.3"],\ + ["@parcel/transformer-sass", "npm:2.9.3"],\ ["@popperjs/core", "npm:2.11.8"],\ - ["@rollup/pluginutils", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:5.0.2"],\ + ["@rollup/pluginutils", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:5.0.3"],\ ["@twuni/emojify", "npm:1.0.2"],\ - ["@vitejs/plugin-vue", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:4.2.3"],\ - ["bootstrap", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:5.2.3"],\ + ["@vitejs/plugin-vue", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:4.3.3"],\ + ["bootstrap", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:5.3.0"],\ ["bootstrap-icons", "npm:1.10.5"],\ ["browser-fs-access", "npm:0.34.1"],\ ["browserlist", "npm:1.0.1"],\ - ["c8", "npm:8.0.0"],\ - ["caniuse-lite", "npm:1.0.30001495"],\ + ["c8", "npm:8.0.1"],\ + ["caniuse-lite", "npm:1.0.30001519"],\ ["d3", "npm:7.8.5"],\ - ["eslint", "npm:8.43.0"],\ + ["eslint", "npm:8.47.0"],\ ["eslint-config-standard", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:17.1.0"],\ - ["eslint-plugin-cypress", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.13.3"],\ - ["eslint-plugin-import", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.27.5"],\ + ["eslint-plugin-cypress", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.14.0"],\ + ["eslint-plugin-import", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.28.1"],\ ["eslint-plugin-n", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:16.0.1"],\ ["eslint-plugin-node", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:11.1.0"],\ ["eslint-plugin-promise", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:6.1.1"],\ - ["eslint-plugin-vue", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:9.15.1"],\ + ["eslint-plugin-vue", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:9.17.0"],\ ["file-saver", "npm:2.0.5"],\ ["highcharts", "npm:11.1.0"],\ - ["html-validate", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:8.0.5"],\ + ["html-validate", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:8.2.0"],\ ["ical.js", "npm:1.5.0"],\ ["jquery", "npm:3.7.0"],\ ["jquery-migrate", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:3.4.1"],\ @@ -7912,17 +8125,17 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["list.js", "npm:2.3.1"],\ ["lodash", "npm:4.17.21"],\ ["lodash-es", "npm:4.17.21"],\ - ["luxon", "npm:3.3.0"],\ + ["luxon", "npm:3.4.0"],\ ["moment", "npm:2.29.4"],\ ["moment-timezone", "npm:0.5.43"],\ ["ms", "npm:2.1.3"],\ ["murmurhash-js", "npm:1.0.0"],\ ["naive-ui", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.34.4"],\ - ["parcel", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.9.2"],\ - ["pinia", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.1.4"],\ + ["parcel", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.9.3"],\ + ["pinia", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.1.6"],\ ["pinia-plugin-persist", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:1.0.0"],\ ["pug", "npm:3.0.2"],\ - ["sass", "npm:1.63.4"],\ + ["sass", "npm:1.66.1"],\ ["seedrandom", "npm:3.0.5"],\ ["select2", "npm:4.1.0-rc.0"],\ ["select2-bootstrap-5-theme", "npm:1.3.0"],\ @@ -7930,10 +8143,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["shepherd.js", "npm:11.1.1"],\ ["slugify", "npm:1.6.6"],\ ["sortablejs", "npm:1.15.0"],\ - ["vanillajs-datepicker", "npm:1.3.3"],\ - ["vite", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:4.3.9"],\ + ["vanillajs-datepicker", "npm:1.3.4"],\ + ["vite", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:4.4.9"],\ ["vue", "npm:3.3.4"],\ - ["vue-router", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:4.2.2"],\ + ["vue-router", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:4.2.4"],\ ["zxcvbn", "npm:4.4.2"]\ ],\ "linkType": "SOFT"\ @@ -7958,6 +8171,19 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "linkType": "HARD"\ }]\ ]],\ + ["safe-array-concat", [\ + ["npm:1.0.0", {\ + "packageLocation": "./.yarn/cache/safe-array-concat-npm-1.0.0-897b2c630a-f43cb98fe3.zip/node_modules/safe-array-concat/",\ + "packageDependencies": [\ + ["safe-array-concat", "npm:1.0.0"],\ + ["call-bind", "npm:1.0.2"],\ + ["get-intrinsic", "npm:1.2.1"],\ + ["has-symbols", "npm:1.0.3"],\ + ["isarray", "npm:2.0.5"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["safe-buffer", [\ ["npm:5.1.2", {\ "packageLocation": "./.yarn/cache/safe-buffer-npm-5.1.2-c27fedf6c4-f2f1f7943c.zip/node_modules/safe-buffer/",\ @@ -8006,10 +8232,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "HARD"\ }],\ - ["npm:1.63.4", {\ - "packageLocation": "./.yarn/cache/sass-npm-1.63.4-bf5f3496c2-12bde5beff.zip/node_modules/sass/",\ + ["npm:1.66.1", {\ + "packageLocation": "./.yarn/cache/sass-npm-1.66.1-563acb4a8f-74fc11d0fc.zip/node_modules/sass/",\ "packageDependencies": [\ - ["sass", "npm:1.63.4"],\ + ["sass", "npm:1.66.1"],\ ["chokidar", "npm:3.5.3"],\ ["immutable", "npm:4.0.0"],\ ["source-map-js", "npm:1.0.2"]\ @@ -8070,6 +8296,13 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "HARD"\ }],\ + ["npm:6.3.1", {\ + "packageLocation": "./.yarn/cache/semver-npm-6.3.1-bcba31fdbe-ae47d06de2.zip/node_modules/semver/",\ + "packageDependencies": [\ + ["semver", "npm:6.3.1"]\ + ],\ + "linkType": "HARD"\ + }],\ ["npm:7.3.7", {\ "packageLocation": "./.yarn/cache/semver-npm-7.3.7-3bfe704194-2fa3e87756.zip/node_modules/semver/",\ "packageDependencies": [\ @@ -8085,6 +8318,14 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["lru-cache", "npm:6.0.0"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:7.5.4", {\ + "packageLocation": "./.yarn/cache/semver-npm-7.5.4-c4ad957fcd-12d8ad952f.zip/node_modules/semver/",\ + "packageDependencies": [\ + ["semver", "npm:7.5.4"],\ + ["lru-cache", "npm:6.0.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["send", [\ @@ -8330,6 +8571,18 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "linkType": "HARD"\ }]\ ]],\ + ["string.prototype.trim", [\ + ["npm:1.2.7", {\ + "packageLocation": "./.yarn/cache/string.prototype.trim-npm-1.2.7-3fbaf3b9d2-05b7b2d6af.zip/node_modules/string.prototype.trim/",\ + "packageDependencies": [\ + ["string.prototype.trim", "npm:1.2.7"],\ + ["call-bind", "npm:1.0.2"],\ + ["define-properties", "npm:1.1.4"],\ + ["es-abstract", "npm:1.21.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["string.prototype.trimend", [\ ["npm:1.0.6", {\ "packageLocation": "./.yarn/cache/string.prototype.trimend-npm-1.0.6-304246ecc1-0fdc34645a.zip/node_modules/string.prototype.trimend/",\ @@ -8544,10 +8797,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["tsconfig-paths", [\ - ["npm:3.14.1", {\ - "packageLocation": "./.yarn/cache/tsconfig-paths-npm-3.14.1-17a815b5c5-8afa01c673.zip/node_modules/tsconfig-paths/",\ + ["npm:3.14.2", {\ + "packageLocation": "./.yarn/cache/tsconfig-paths-npm-3.14.2-90ce75420d-a6162eaa1a.zip/node_modules/tsconfig-paths/",\ "packageDependencies": [\ - ["tsconfig-paths", "npm:3.14.1"],\ + ["tsconfig-paths", "npm:3.14.2"],\ ["@types/json5", "npm:0.0.29"],\ ["json5", "npm:1.0.2"],\ ["minimist", "npm:1.2.6"],\ @@ -8584,6 +8837,45 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "linkType": "HARD"\ }]\ ]],\ + ["typed-array-buffer", [\ + ["npm:1.0.0", {\ + "packageLocation": "./.yarn/cache/typed-array-buffer-npm-1.0.0-95cb610310-3e0281c79b.zip/node_modules/typed-array-buffer/",\ + "packageDependencies": [\ + ["typed-array-buffer", "npm:1.0.0"],\ + ["call-bind", "npm:1.0.2"],\ + ["get-intrinsic", "npm:1.2.1"],\ + ["is-typed-array", "npm:1.1.10"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["typed-array-byte-length", [\ + ["npm:1.0.0", {\ + "packageLocation": "./.yarn/cache/typed-array-byte-length-npm-1.0.0-94d79975ca-b03db16458.zip/node_modules/typed-array-byte-length/",\ + "packageDependencies": [\ + ["typed-array-byte-length", "npm:1.0.0"],\ + ["call-bind", "npm:1.0.2"],\ + ["for-each", "npm:0.3.3"],\ + ["has-proto", "npm:1.0.1"],\ + ["is-typed-array", "npm:1.1.10"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["typed-array-byte-offset", [\ + ["npm:1.0.0", {\ + "packageLocation": "./.yarn/cache/typed-array-byte-offset-npm-1.0.0-8cbb911cf5-04f6f02d0e.zip/node_modules/typed-array-byte-offset/",\ + "packageDependencies": [\ + ["typed-array-byte-offset", "npm:1.0.0"],\ + ["available-typed-arrays", "npm:1.0.5"],\ + ["call-bind", "npm:1.0.2"],\ + ["for-each", "npm:0.3.3"],\ + ["has-proto", "npm:1.0.1"],\ + ["is-typed-array", "npm:1.1.10"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["typed-array-length", [\ ["npm:1.0.4", {\ "packageLocation": "./.yarn/cache/typed-array-length-npm-1.0.4-92771b81fc-2228febc93.zip/node_modules/typed-array-length/",\ @@ -8670,10 +8962,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["vanillajs-datepicker", [\ - ["npm:1.3.3", {\ - "packageLocation": "./.yarn/cache/vanillajs-datepicker-npm-1.3.3-c1fde0e681-be830750a5.zip/node_modules/vanillajs-datepicker/",\ + ["npm:1.3.4", {\ + "packageLocation": "./.yarn/cache/vanillajs-datepicker-npm-1.3.4-bc86e15a9c-830958f8af.zip/node_modules/vanillajs-datepicker/",\ "packageDependencies": [\ - ["vanillajs-datepicker", "npm:1.3.3"]\ + ["vanillajs-datepicker", "npm:1.3.4"]\ ],\ "linkType": "HARD"\ }]\ @@ -8702,41 +8994,45 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["vite", [\ - ["npm:4.3.9", {\ - "packageLocation": "./.yarn/cache/vite-npm-4.3.9-24f3552941-8c45a51627.zip/node_modules/vite/",\ + ["npm:4.4.9", {\ + "packageLocation": "./.yarn/cache/vite-npm-4.4.9-e845c1bbf8-c511024cea.zip/node_modules/vite/",\ "packageDependencies": [\ - ["vite", "npm:4.3.9"]\ + ["vite", "npm:4.4.9"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:4.3.9", {\ - "packageLocation": "./.yarn/__virtual__/vite-virtual-cc49cbe155/0/cache/vite-npm-4.3.9-24f3552941-8c45a51627.zip/node_modules/vite/",\ + ["virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:4.4.9", {\ + "packageLocation": "./.yarn/__virtual__/vite-virtual-81c46be283/0/cache/vite-npm-4.4.9-e845c1bbf8-c511024cea.zip/node_modules/vite/",\ "packageDependencies": [\ - ["vite", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:4.3.9"],\ + ["vite", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:4.4.9"],\ ["@types/less", null],\ + ["@types/lightningcss", null],\ ["@types/node", null],\ ["@types/sass", null],\ ["@types/stylus", null],\ ["@types/sugarss", null],\ ["@types/terser", null],\ - ["esbuild", "npm:0.17.13"],\ + ["esbuild", "npm:0.18.20"],\ ["fsevents", "patch:fsevents@npm%3A2.3.2#~builtin<compat/fsevents>::version=2.3.2&hash=18f3a7"],\ ["less", null],\ - ["postcss", "npm:8.4.23"],\ - ["rollup", "npm:3.21.6"],\ - ["sass", "npm:1.63.4"],\ + ["lightningcss", null],\ + ["postcss", "npm:8.4.27"],\ + ["rollup", "npm:3.28.0"],\ + ["sass", "npm:1.66.1"],\ ["stylus", null],\ ["sugarss", null],\ ["terser", null]\ ],\ "packagePeers": [\ "@types/less",\ + "@types/lightningcss",\ "@types/node",\ "@types/sass",\ "@types/stylus",\ "@types/sugarss",\ "@types/terser",\ "less",\ + "lightningcss",\ "sass",\ "stylus",\ "sugarss",\ @@ -8800,16 +9096,16 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "linkType": "SOFT"\ }],\ ["npm:0.14.5", {\ - "packageLocation": "./.yarn/unplugged/vue-demi-virtual-f86975c946/node_modules/vue-demi/",\ + "packageLocation": "./.yarn/unplugged/vue-demi-virtual-da71df09c0/node_modules/vue-demi/",\ "packageDependencies": [\ ["vue-demi", "npm:0.14.5"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:bb260f937b7a21d0bf1a237b49b5f5bb70768133cd2135f9b6e87b722c443cbd2bff06d78c2b68972426bd729bb048f00831bc4a0d6a7b18a7319117ceec672d#npm:0.14.5", {\ - "packageLocation": "./.yarn/unplugged/vue-demi-virtual-f86975c946/node_modules/vue-demi/",\ + ["virtual:de554bf1d104f9221148406424834a12640f5b745a790aaa466b8628aa7cb6ad88fd12f5887cbd44a0f77b628866ed0931b52ee1d324804f909f07ccba45e09d#npm:0.14.5", {\ + "packageLocation": "./.yarn/unplugged/vue-demi-virtual-da71df09c0/node_modules/vue-demi/",\ "packageDependencies": [\ - ["vue-demi", "virtual:bb260f937b7a21d0bf1a237b49b5f5bb70768133cd2135f9b6e87b722c443cbd2bff06d78c2b68972426bd729bb048f00831bc4a0d6a7b18a7319117ceec672d#npm:0.14.5"],\ + ["vue-demi", "virtual:de554bf1d104f9221148406424834a12640f5b745a790aaa466b8628aa7cb6ad88fd12f5887cbd44a0f77b628866ed0931b52ee1d324804f909f07ccba45e09d#npm:0.14.5"],\ ["@types/vue", null],\ ["@types/vue__composition-api", null],\ ["@vue/composition-api", null],\ @@ -8842,20 +9138,20 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["vue-eslint-parser", [\ - ["npm:9.3.0", {\ - "packageLocation": "./.yarn/cache/vue-eslint-parser-npm-9.3.0-f1933c0f13-9bdf375655.zip/node_modules/vue-eslint-parser/",\ + ["npm:9.3.1", {\ + "packageLocation": "./.yarn/cache/vue-eslint-parser-npm-9.3.1-a0feb51670-6d1476b45f.zip/node_modules/vue-eslint-parser/",\ "packageDependencies": [\ - ["vue-eslint-parser", "npm:9.3.0"]\ + ["vue-eslint-parser", "npm:9.3.1"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:a8bbfcc6afa85eb44874f97c133694affff1c591fe1b49dc91c6f1460a3171f7ff9fc2b8fb54fbfa07a880d0e032b8ea8822bda13d1bad3b005c3cf6f77986c0#npm:9.3.0", {\ - "packageLocation": "./.yarn/__virtual__/vue-eslint-parser-virtual-adc51c636d/0/cache/vue-eslint-parser-npm-9.3.0-f1933c0f13-9bdf375655.zip/node_modules/vue-eslint-parser/",\ + ["virtual:e39e5d6bef7a93bd3b21c5c9ba6ef825c92fc73c8d9c9e01699e1dc11e40fd3bc150ba16509e2cf59495cb098c32b2e4a85c0c21802fddeffc3208b01f4f5a16#npm:9.3.1", {\ + "packageLocation": "./.yarn/__virtual__/vue-eslint-parser-virtual-a1cfa0fa2e/0/cache/vue-eslint-parser-npm-9.3.1-a0feb51670-6d1476b45f.zip/node_modules/vue-eslint-parser/",\ "packageDependencies": [\ - ["vue-eslint-parser", "virtual:a8bbfcc6afa85eb44874f97c133694affff1c591fe1b49dc91c6f1460a3171f7ff9fc2b8fb54fbfa07a880d0e032b8ea8822bda13d1bad3b005c3cf6f77986c0#npm:9.3.0"],\ + ["vue-eslint-parser", "virtual:e39e5d6bef7a93bd3b21c5c9ba6ef825c92fc73c8d9c9e01699e1dc11e40fd3bc150ba16509e2cf59495cb098c32b2e4a85c0c21802fddeffc3208b01f4f5a16#npm:9.3.1"],\ ["@types/eslint", null],\ ["debug", "virtual:b86a9fb34323a98c6519528ed55faa0d9b44ca8879307c0b29aa384bde47ff59a7d0c9051b31246f14521dfb71ba3c5d6d0b35c29fffc17bf875aa6ad977d9e8#npm:4.3.4"],\ - ["eslint", "npm:8.43.0"],\ + ["eslint", "npm:8.47.0"],\ ["eslint-scope", "npm:7.1.1"],\ ["eslint-visitor-keys", "npm:3.3.0"],\ ["espree", "npm:9.3.2"],\ @@ -8871,17 +9167,17 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["vue-router", [\ - ["npm:4.2.2", {\ - "packageLocation": "./.yarn/cache/vue-router-npm-4.2.2-56d5f442c5-4181b3776a.zip/node_modules/vue-router/",\ + ["npm:4.2.4", {\ + "packageLocation": "./.yarn/cache/vue-router-npm-4.2.4-59b21f5c05-9fe1fc11b6.zip/node_modules/vue-router/",\ "packageDependencies": [\ - ["vue-router", "npm:4.2.2"]\ + ["vue-router", "npm:4.2.4"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:4.2.2", {\ - "packageLocation": "./.yarn/__virtual__/vue-router-virtual-6a1a182bbf/0/cache/vue-router-npm-4.2.2-56d5f442c5-4181b3776a.zip/node_modules/vue-router/",\ + ["virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:4.2.4", {\ + "packageLocation": "./.yarn/__virtual__/vue-router-virtual-0b2b7d54bc/0/cache/vue-router-npm-4.2.4-59b21f5c05-9fe1fc11b6.zip/node_modules/vue-router/",\ "packageDependencies": [\ - ["vue-router", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:4.2.2"],\ + ["vue-router", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:4.2.4"],\ ["@types/vue", null],\ ["@vue/devtools-api", "npm:6.5.0"],\ ["vue", "npm:3.3.4"]\ @@ -8956,6 +9252,18 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["which-typed-array", [\ + ["npm:1.1.11", {\ + "packageLocation": "./.yarn/cache/which-typed-array-npm-1.1.11-f37f0cefe2-711ffc8ef8.zip/node_modules/which-typed-array/",\ + "packageDependencies": [\ + ["which-typed-array", "npm:1.1.11"],\ + ["available-typed-arrays", "npm:1.0.5"],\ + ["call-bind", "npm:1.0.2"],\ + ["for-each", "npm:0.3.3"],\ + ["gopd", "npm:1.0.1"],\ + ["has-tostringtag", "npm:1.0.0"]\ + ],\ + "linkType": "HARD"\ + }],\ ["npm:1.1.9", {\ "packageLocation": "./.yarn/cache/which-typed-array-npm-1.1.9-9559c95dfc-fe0178ca44.zip/node_modules/which-typed-array/",\ "packageDependencies": [\ @@ -8993,15 +9301,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "linkType": "HARD"\ }]\ ]],\ - ["word-wrap", [\ - ["npm:1.2.3", {\ - "packageLocation": "./.yarn/cache/word-wrap-npm-1.2.3-7fb15ab002-30b48f91fc.zip/node_modules/word-wrap/",\ - "packageDependencies": [\ - ["word-wrap", "npm:1.2.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ ["wrap-ansi", [\ ["npm:7.0.0", {\ "packageLocation": "./.yarn/cache/wrap-ansi-npm-7.0.0-ad6e1a0554-a790b846fd.zip/node_modules/wrap-ansi/",\ @@ -9079,26 +9378,26 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["yargs", [\ - ["npm:16.2.0", {\ - "packageLocation": "./.yarn/cache/yargs-npm-16.2.0-547873d425-b14afbb51e.zip/node_modules/yargs/",\ + ["npm:17.7.2", {\ + "packageLocation": "./.yarn/cache/yargs-npm-17.7.2-80b62638e1-73b572e863.zip/node_modules/yargs/",\ "packageDependencies": [\ - ["yargs", "npm:16.2.0"],\ - ["cliui", "npm:7.0.4"],\ + ["yargs", "npm:17.7.2"],\ + ["cliui", "npm:8.0.1"],\ ["escalade", "npm:3.1.1"],\ ["get-caller-file", "npm:2.0.5"],\ ["require-directory", "npm:2.1.1"],\ ["string-width", "npm:4.2.3"],\ ["y18n", "npm:5.0.8"],\ - ["yargs-parser", "npm:20.2.9"]\ + ["yargs-parser", "npm:21.1.1"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["yargs-parser", [\ - ["npm:20.2.9", {\ - "packageLocation": "./.yarn/cache/yargs-parser-npm-20.2.9-a1d19e598d-8bb69015f2.zip/node_modules/yargs-parser/",\ + ["npm:21.1.1", {\ + "packageLocation": "./.yarn/cache/yargs-parser-npm-21.1.1-8fdc003314-ed2d96a616.zip/node_modules/yargs-parser/",\ "packageDependencies": [\ - ["yargs-parser", "npm:20.2.9"]\ + ["yargs-parser", "npm:21.1.1"]\ ],\ "linkType": "HARD"\ }]\ diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 7e43a30f8..4bd0b9936 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -48,7 +48,7 @@ "args": [ "${workspaceFolder}/ietf/manage.py", "test", - "--settings=settings_postgrestest" + "--settings=settings_test" ], "group": "test", "presentation": { @@ -68,7 +68,7 @@ "args": [ "${workspaceFolder}/ietf/manage.py", "test", - "--settings=settings_postgrestest", + "--settings=settings_test", "--pattern=tests_js.py" ], "group": "test", diff --git a/.yarn/cache/@aashutoshrathi-word-wrap-npm-1.2.6-5b1d95e487-ada901b9e7.zip b/.yarn/cache/@aashutoshrathi-word-wrap-npm-1.2.6-5b1d95e487-ada901b9e7.zip new file mode 100644 index 000000000..9334304c2 Binary files /dev/null and b/.yarn/cache/@aashutoshrathi-word-wrap-npm-1.2.6-5b1d95e487-ada901b9e7.zip differ diff --git a/.yarn/cache/@esbuild-darwin-arm64-npm-0.17.13-3c31ee9bef-8.zip b/.yarn/cache/@esbuild-darwin-arm64-npm-0.17.13-3c31ee9bef-8.zip deleted file mode 100644 index 90c4b9139..000000000 Binary files a/.yarn/cache/@esbuild-darwin-arm64-npm-0.17.13-3c31ee9bef-8.zip and /dev/null differ diff --git a/.yarn/cache/@esbuild-darwin-arm64-npm-0.18.20-00b3504077-8.zip b/.yarn/cache/@esbuild-darwin-arm64-npm-0.18.20-00b3504077-8.zip new file mode 100644 index 000000000..dfd7b7655 Binary files /dev/null and b/.yarn/cache/@esbuild-darwin-arm64-npm-0.18.20-00b3504077-8.zip differ diff --git a/.yarn/cache/@esbuild-darwin-x64-npm-0.17.13-2af4bfbe4a-8.zip b/.yarn/cache/@esbuild-darwin-x64-npm-0.17.13-2af4bfbe4a-8.zip deleted file mode 100644 index 13d316951..000000000 Binary files a/.yarn/cache/@esbuild-darwin-x64-npm-0.17.13-2af4bfbe4a-8.zip and /dev/null differ diff --git a/.yarn/cache/@esbuild-darwin-x64-npm-0.18.20-767fe27d1b-8.zip b/.yarn/cache/@esbuild-darwin-x64-npm-0.18.20-767fe27d1b-8.zip new file mode 100644 index 000000000..432802b69 Binary files /dev/null and b/.yarn/cache/@esbuild-darwin-x64-npm-0.18.20-767fe27d1b-8.zip differ diff --git a/.yarn/cache/@esbuild-linux-arm64-npm-0.17.13-533eb0e4eb-8.zip b/.yarn/cache/@esbuild-linux-arm64-npm-0.17.13-533eb0e4eb-8.zip deleted file mode 100644 index d69620a54..000000000 Binary files a/.yarn/cache/@esbuild-linux-arm64-npm-0.17.13-533eb0e4eb-8.zip and /dev/null differ diff --git a/.yarn/cache/@esbuild-linux-arm64-npm-0.18.20-7b48b328fe-8.zip b/.yarn/cache/@esbuild-linux-arm64-npm-0.18.20-7b48b328fe-8.zip new file mode 100644 index 000000000..6eb51fcc9 Binary files /dev/null and b/.yarn/cache/@esbuild-linux-arm64-npm-0.18.20-7b48b328fe-8.zip differ diff --git a/.yarn/cache/@esbuild-linux-x64-npm-0.17.13-01575597b4-8.zip b/.yarn/cache/@esbuild-linux-x64-npm-0.17.13-01575597b4-8.zip deleted file mode 100644 index e8d42bffa..000000000 Binary files a/.yarn/cache/@esbuild-linux-x64-npm-0.17.13-01575597b4-8.zip and /dev/null differ diff --git a/.yarn/cache/@esbuild-linux-x64-npm-0.18.20-de8e99b449-8.zip b/.yarn/cache/@esbuild-linux-x64-npm-0.18.20-de8e99b449-8.zip new file mode 100644 index 000000000..bcbc77a84 Binary files /dev/null and b/.yarn/cache/@esbuild-linux-x64-npm-0.18.20-de8e99b449-8.zip differ diff --git a/.yarn/cache/@esbuild-win32-arm64-npm-0.17.13-cd496c2d1d-8.zip b/.yarn/cache/@esbuild-win32-arm64-npm-0.17.13-cd496c2d1d-8.zip deleted file mode 100644 index 233ca33f7..000000000 Binary files a/.yarn/cache/@esbuild-win32-arm64-npm-0.17.13-cd496c2d1d-8.zip and /dev/null differ diff --git a/.yarn/cache/@esbuild-win32-arm64-npm-0.18.20-a58fe6c6a3-8.zip b/.yarn/cache/@esbuild-win32-arm64-npm-0.18.20-a58fe6c6a3-8.zip new file mode 100644 index 000000000..cf9c15613 Binary files /dev/null and b/.yarn/cache/@esbuild-win32-arm64-npm-0.18.20-a58fe6c6a3-8.zip differ diff --git a/.yarn/cache/@esbuild-win32-x64-npm-0.17.13-29882f65f7-8.zip b/.yarn/cache/@esbuild-win32-x64-npm-0.17.13-29882f65f7-8.zip deleted file mode 100644 index 5e0f19912..000000000 Binary files a/.yarn/cache/@esbuild-win32-x64-npm-0.17.13-29882f65f7-8.zip and /dev/null differ diff --git a/.yarn/cache/@esbuild-win32-x64-npm-0.18.20-37a9ab2bda-8.zip b/.yarn/cache/@esbuild-win32-x64-npm-0.18.20-37a9ab2bda-8.zip new file mode 100644 index 000000000..768cc68f1 Binary files /dev/null and b/.yarn/cache/@esbuild-win32-x64-npm-0.18.20-37a9ab2bda-8.zip differ diff --git a/.yarn/cache/@eslint-community-regexpp-npm-4.4.1-44c7391499-db97d8d08e.zip b/.yarn/cache/@eslint-community-regexpp-npm-4.4.1-44c7391499-db97d8d08e.zip deleted file mode 100644 index 7399004e8..000000000 Binary files a/.yarn/cache/@eslint-community-regexpp-npm-4.4.1-44c7391499-db97d8d08e.zip and /dev/null differ diff --git a/.yarn/cache/@eslint-community-regexpp-npm-4.8.0-92ece47e3d-601e6d033d.zip b/.yarn/cache/@eslint-community-regexpp-npm-4.8.0-92ece47e3d-601e6d033d.zip new file mode 100644 index 000000000..0cbfbf8d8 Binary files /dev/null and b/.yarn/cache/@eslint-community-regexpp-npm-4.8.0-92ece47e3d-601e6d033d.zip differ diff --git a/.yarn/cache/@eslint-eslintrc-npm-2.0.3-531b6e79f7-ddc51f25f8.zip b/.yarn/cache/@eslint-eslintrc-npm-2.0.3-531b6e79f7-ddc51f25f8.zip deleted file mode 100644 index 87252c4e6..000000000 Binary files a/.yarn/cache/@eslint-eslintrc-npm-2.0.3-531b6e79f7-ddc51f25f8.zip and /dev/null differ diff --git a/.yarn/cache/@eslint-eslintrc-npm-2.1.2-feb0771c9f-bc742a1e3b.zip b/.yarn/cache/@eslint-eslintrc-npm-2.1.2-feb0771c9f-bc742a1e3b.zip new file mode 100644 index 000000000..43f671368 Binary files /dev/null and b/.yarn/cache/@eslint-eslintrc-npm-2.1.2-feb0771c9f-bc742a1e3b.zip differ diff --git a/.yarn/cache/@eslint-js-npm-8.43.0-60a60994b7-580487a09c.zip b/.yarn/cache/@eslint-js-npm-8.48.0-cee42a7097-b2755f9c0e.zip similarity index 50% rename from .yarn/cache/@eslint-js-npm-8.43.0-60a60994b7-580487a09c.zip rename to .yarn/cache/@eslint-js-npm-8.48.0-cee42a7097-b2755f9c0e.zip index 506e1223d..fc4909569 100644 Binary files a/.yarn/cache/@eslint-js-npm-8.43.0-60a60994b7-580487a09c.zip and b/.yarn/cache/@eslint-js-npm-8.48.0-cee42a7097-b2755f9c0e.zip differ diff --git a/.yarn/cache/@parcel-bundler-default-npm-2.9.2-cd927ae646-acd5045aae.zip b/.yarn/cache/@parcel-bundler-default-npm-2.9.3-da108dccec-271f354e61.zip similarity index 95% rename from .yarn/cache/@parcel-bundler-default-npm-2.9.2-cd927ae646-acd5045aae.zip rename to .yarn/cache/@parcel-bundler-default-npm-2.9.3-da108dccec-271f354e61.zip index 3c65cdf51..ce1830b18 100644 Binary files a/.yarn/cache/@parcel-bundler-default-npm-2.9.2-cd927ae646-acd5045aae.zip and b/.yarn/cache/@parcel-bundler-default-npm-2.9.3-da108dccec-271f354e61.zip differ diff --git a/.yarn/cache/@parcel-cache-npm-2.9.2-5aee286b54-7968be08b0.zip b/.yarn/cache/@parcel-cache-npm-2.9.3-1875c3a53a-31bb356d2e.zip similarity index 77% rename from .yarn/cache/@parcel-cache-npm-2.9.2-5aee286b54-7968be08b0.zip rename to .yarn/cache/@parcel-cache-npm-2.9.3-1875c3a53a-31bb356d2e.zip index f8493457f..b1a4afd12 100644 Binary files a/.yarn/cache/@parcel-cache-npm-2.9.2-5aee286b54-7968be08b0.zip and b/.yarn/cache/@parcel-cache-npm-2.9.3-1875c3a53a-31bb356d2e.zip differ diff --git a/.yarn/cache/@parcel-codeframe-npm-2.9.2-964de9e20f-6a9cc23994.zip b/.yarn/cache/@parcel-codeframe-npm-2.9.2-964de9e20f-6a9cc23994.zip deleted file mode 100644 index 418797d35..000000000 Binary files a/.yarn/cache/@parcel-codeframe-npm-2.9.2-964de9e20f-6a9cc23994.zip and /dev/null differ diff --git a/.yarn/cache/@parcel-codeframe-npm-2.9.3-2580057b7a-f86a4d90eb.zip b/.yarn/cache/@parcel-codeframe-npm-2.9.3-2580057b7a-f86a4d90eb.zip new file mode 100644 index 000000000..5d341a35a Binary files /dev/null and b/.yarn/cache/@parcel-codeframe-npm-2.9.3-2580057b7a-f86a4d90eb.zip differ diff --git a/.yarn/cache/@parcel-compressor-raw-npm-2.9.2-7dfbfadaf9-263005e4bc.zip b/.yarn/cache/@parcel-compressor-raw-npm-2.9.3-be5ba2acf4-2124c347a5.zip similarity index 54% rename from .yarn/cache/@parcel-compressor-raw-npm-2.9.2-7dfbfadaf9-263005e4bc.zip rename to .yarn/cache/@parcel-compressor-raw-npm-2.9.3-be5ba2acf4-2124c347a5.zip index 8e275a348..ace0bf6e5 100644 Binary files a/.yarn/cache/@parcel-compressor-raw-npm-2.9.2-7dfbfadaf9-263005e4bc.zip and b/.yarn/cache/@parcel-compressor-raw-npm-2.9.3-be5ba2acf4-2124c347a5.zip differ diff --git a/.yarn/cache/@parcel-config-default-npm-2.9.2-7a372f4a8e-b07a1c93d7.zip b/.yarn/cache/@parcel-config-default-npm-2.9.3-a459e67e01-61ef21351e.zip similarity index 66% rename from .yarn/cache/@parcel-config-default-npm-2.9.2-7a372f4a8e-b07a1c93d7.zip rename to .yarn/cache/@parcel-config-default-npm-2.9.3-a459e67e01-61ef21351e.zip index 63f6f01c0..206f55e21 100644 Binary files a/.yarn/cache/@parcel-config-default-npm-2.9.2-7a372f4a8e-b07a1c93d7.zip and b/.yarn/cache/@parcel-config-default-npm-2.9.3-a459e67e01-61ef21351e.zip differ diff --git a/.yarn/cache/@parcel-core-npm-2.9.2-43efe8c401-34fdd57791.zip b/.yarn/cache/@parcel-core-npm-2.9.3-b343ad5e82-e4ba4e0909.zip similarity index 98% rename from .yarn/cache/@parcel-core-npm-2.9.2-43efe8c401-34fdd57791.zip rename to .yarn/cache/@parcel-core-npm-2.9.3-b343ad5e82-e4ba4e0909.zip index ef55218dd..28e4d0112 100644 Binary files a/.yarn/cache/@parcel-core-npm-2.9.2-43efe8c401-34fdd57791.zip and b/.yarn/cache/@parcel-core-npm-2.9.3-b343ad5e82-e4ba4e0909.zip differ diff --git a/.yarn/cache/@parcel-diagnostic-npm-2.9.2-b8228983c3-b27c14d711.zip b/.yarn/cache/@parcel-diagnostic-npm-2.9.3-76e1419611-5897500e3b.zip similarity index 90% rename from .yarn/cache/@parcel-diagnostic-npm-2.9.2-b8228983c3-b27c14d711.zip rename to .yarn/cache/@parcel-diagnostic-npm-2.9.3-76e1419611-5897500e3b.zip index fcb0ed1ad..9066887d2 100644 Binary files a/.yarn/cache/@parcel-diagnostic-npm-2.9.2-b8228983c3-b27c14d711.zip and b/.yarn/cache/@parcel-diagnostic-npm-2.9.3-76e1419611-5897500e3b.zip differ diff --git a/.yarn/cache/@parcel-events-npm-2.9.2-24de4cd1a4-4bc905a5e3.zip b/.yarn/cache/@parcel-events-npm-2.9.3-3d50908dd1-c61ac95ce2.zip similarity index 82% rename from .yarn/cache/@parcel-events-npm-2.9.2-24de4cd1a4-4bc905a5e3.zip rename to .yarn/cache/@parcel-events-npm-2.9.3-3d50908dd1-c61ac95ce2.zip index a07ab00c0..e2d0e7244 100644 Binary files a/.yarn/cache/@parcel-events-npm-2.9.2-24de4cd1a4-4bc905a5e3.zip and b/.yarn/cache/@parcel-events-npm-2.9.3-3d50908dd1-c61ac95ce2.zip differ diff --git a/.yarn/cache/@parcel-fs-npm-2.9.2-44cca43adc-410c63e0dc.zip b/.yarn/cache/@parcel-fs-npm-2.9.2-44cca43adc-410c63e0dc.zip deleted file mode 100644 index d2a4b942b..000000000 Binary files a/.yarn/cache/@parcel-fs-npm-2.9.2-44cca43adc-410c63e0dc.zip and /dev/null differ diff --git a/.yarn/cache/@parcel-fs-npm-2.9.3-f6cd93298b-c9bf9ca9e6.zip b/.yarn/cache/@parcel-fs-npm-2.9.3-f6cd93298b-c9bf9ca9e6.zip new file mode 100644 index 000000000..a5075f12e Binary files /dev/null and b/.yarn/cache/@parcel-fs-npm-2.9.3-f6cd93298b-c9bf9ca9e6.zip differ diff --git a/.yarn/cache/@parcel-fs-search-npm-2.9.2-0251af50fa-68fd149a48.zip b/.yarn/cache/@parcel-fs-search-npm-2.9.3-59171084fe-6e7df35cc2.zip similarity index 91% rename from .yarn/cache/@parcel-fs-search-npm-2.9.2-0251af50fa-68fd149a48.zip rename to .yarn/cache/@parcel-fs-search-npm-2.9.3-59171084fe-6e7df35cc2.zip index a8267425e..2fecc86b2 100644 Binary files a/.yarn/cache/@parcel-fs-search-npm-2.9.2-0251af50fa-68fd149a48.zip and b/.yarn/cache/@parcel-fs-search-npm-2.9.3-59171084fe-6e7df35cc2.zip differ diff --git a/.yarn/cache/@parcel-graph-npm-2.9.2-cb6ed79dfc-9943396a21.zip b/.yarn/cache/@parcel-graph-npm-2.9.3-206e15e603-7fdd830928.zip similarity index 98% rename from .yarn/cache/@parcel-graph-npm-2.9.2-cb6ed79dfc-9943396a21.zip rename to .yarn/cache/@parcel-graph-npm-2.9.3-206e15e603-7fdd830928.zip index aa8ffafa5..f1b455896 100644 Binary files a/.yarn/cache/@parcel-graph-npm-2.9.2-cb6ed79dfc-9943396a21.zip and b/.yarn/cache/@parcel-graph-npm-2.9.3-206e15e603-7fdd830928.zip differ diff --git a/.yarn/cache/@parcel-hash-npm-2.9.2-f26f4ce463-7ee42d33a1.zip b/.yarn/cache/@parcel-hash-npm-2.9.3-a485b7951b-d5329116c5.zip similarity index 91% rename from .yarn/cache/@parcel-hash-npm-2.9.2-f26f4ce463-7ee42d33a1.zip rename to .yarn/cache/@parcel-hash-npm-2.9.3-a485b7951b-d5329116c5.zip index 45307f20f..da92ff9fb 100644 Binary files a/.yarn/cache/@parcel-hash-npm-2.9.2-f26f4ce463-7ee42d33a1.zip and b/.yarn/cache/@parcel-hash-npm-2.9.3-a485b7951b-d5329116c5.zip differ diff --git a/.yarn/cache/@parcel-logger-npm-2.9.2-3241bcb0e5-072052724a.zip b/.yarn/cache/@parcel-logger-npm-2.9.3-2a18b6c370-eb68996b7b.zip similarity index 76% rename from .yarn/cache/@parcel-logger-npm-2.9.2-3241bcb0e5-072052724a.zip rename to .yarn/cache/@parcel-logger-npm-2.9.3-2a18b6c370-eb68996b7b.zip index 1c9bcb19a..8fce0fe11 100644 Binary files a/.yarn/cache/@parcel-logger-npm-2.9.2-3241bcb0e5-072052724a.zip and b/.yarn/cache/@parcel-logger-npm-2.9.3-2a18b6c370-eb68996b7b.zip differ diff --git a/.yarn/cache/@parcel-markdown-ansi-npm-2.9.2-2985c646b4-171d62a761.zip b/.yarn/cache/@parcel-markdown-ansi-npm-2.9.3-98f72ce8d0-da1fed88dd.zip similarity index 64% rename from .yarn/cache/@parcel-markdown-ansi-npm-2.9.2-2985c646b4-171d62a761.zip rename to .yarn/cache/@parcel-markdown-ansi-npm-2.9.3-98f72ce8d0-da1fed88dd.zip index f5c0e86b1..690f7a1d0 100644 Binary files a/.yarn/cache/@parcel-markdown-ansi-npm-2.9.2-2985c646b4-171d62a761.zip and b/.yarn/cache/@parcel-markdown-ansi-npm-2.9.3-98f72ce8d0-da1fed88dd.zip differ diff --git a/.yarn/cache/@parcel-namer-default-npm-2.9.2-f84d8c75d8-903da6aada.zip b/.yarn/cache/@parcel-namer-default-npm-2.9.3-2a2acb717f-23a588ee0f.zip similarity index 80% rename from .yarn/cache/@parcel-namer-default-npm-2.9.2-f84d8c75d8-903da6aada.zip rename to .yarn/cache/@parcel-namer-default-npm-2.9.3-2a2acb717f-23a588ee0f.zip index 053fa8ecf..4b0ed29e0 100644 Binary files a/.yarn/cache/@parcel-namer-default-npm-2.9.2-f84d8c75d8-903da6aada.zip and b/.yarn/cache/@parcel-namer-default-npm-2.9.3-2a2acb717f-23a588ee0f.zip differ diff --git a/.yarn/cache/@parcel-node-resolver-core-npm-3.0.2-e5591710a1-82d5122e36.zip b/.yarn/cache/@parcel-node-resolver-core-npm-3.0.3-e85849af08-871f09066f.zip similarity index 90% rename from .yarn/cache/@parcel-node-resolver-core-npm-3.0.2-e5591710a1-82d5122e36.zip rename to .yarn/cache/@parcel-node-resolver-core-npm-3.0.3-e85849af08-871f09066f.zip index e5f0700ad..93bf444ee 100644 Binary files a/.yarn/cache/@parcel-node-resolver-core-npm-3.0.2-e5591710a1-82d5122e36.zip and b/.yarn/cache/@parcel-node-resolver-core-npm-3.0.3-e85849af08-871f09066f.zip differ diff --git a/.yarn/cache/@parcel-optimizer-css-npm-2.9.2-f17b6fe3fc-2ba9bd6eea.zip b/.yarn/cache/@parcel-optimizer-css-npm-2.9.3-dab14ff100-09cdfb8191.zip similarity index 80% rename from .yarn/cache/@parcel-optimizer-css-npm-2.9.2-f17b6fe3fc-2ba9bd6eea.zip rename to .yarn/cache/@parcel-optimizer-css-npm-2.9.3-dab14ff100-09cdfb8191.zip index 331e62942..ebb8b0bef 100644 Binary files a/.yarn/cache/@parcel-optimizer-css-npm-2.9.2-f17b6fe3fc-2ba9bd6eea.zip and b/.yarn/cache/@parcel-optimizer-css-npm-2.9.3-dab14ff100-09cdfb8191.zip differ diff --git a/.yarn/cache/@parcel-optimizer-data-url-npm-2.9.2-c7dded7731-fed10fad94.zip b/.yarn/cache/@parcel-optimizer-data-url-npm-2.9.3-2bb13f2a2f-38823e2aa5.zip similarity index 65% rename from .yarn/cache/@parcel-optimizer-data-url-npm-2.9.2-c7dded7731-fed10fad94.zip rename to .yarn/cache/@parcel-optimizer-data-url-npm-2.9.3-2bb13f2a2f-38823e2aa5.zip index feacc7775..ee523fb00 100644 Binary files a/.yarn/cache/@parcel-optimizer-data-url-npm-2.9.2-c7dded7731-fed10fad94.zip and b/.yarn/cache/@parcel-optimizer-data-url-npm-2.9.3-2bb13f2a2f-38823e2aa5.zip differ diff --git a/.yarn/cache/@parcel-optimizer-htmlnano-npm-2.9.2-01a9d51f22-9a5f1caf59.zip b/.yarn/cache/@parcel-optimizer-htmlnano-npm-2.9.3-682b0538d3-32658dd81c.zip similarity index 83% rename from .yarn/cache/@parcel-optimizer-htmlnano-npm-2.9.2-01a9d51f22-9a5f1caf59.zip rename to .yarn/cache/@parcel-optimizer-htmlnano-npm-2.9.3-682b0538d3-32658dd81c.zip index 918a8cb96..56e3ff3dc 100644 Binary files a/.yarn/cache/@parcel-optimizer-htmlnano-npm-2.9.2-01a9d51f22-9a5f1caf59.zip and b/.yarn/cache/@parcel-optimizer-htmlnano-npm-2.9.3-682b0538d3-32658dd81c.zip differ diff --git a/.yarn/cache/@parcel-optimizer-image-npm-2.9.2-2e26c5a74b-8cbf4b2e9a.zip b/.yarn/cache/@parcel-optimizer-image-npm-2.9.2-2e26c5a74b-8cbf4b2e9a.zip deleted file mode 100644 index 6895ab855..000000000 Binary files a/.yarn/cache/@parcel-optimizer-image-npm-2.9.2-2e26c5a74b-8cbf4b2e9a.zip and /dev/null differ diff --git a/.yarn/cache/@parcel-optimizer-image-npm-2.9.3-f742dd90da-5053b27244.zip b/.yarn/cache/@parcel-optimizer-image-npm-2.9.3-f742dd90da-5053b27244.zip new file mode 100644 index 000000000..b02078702 Binary files /dev/null and b/.yarn/cache/@parcel-optimizer-image-npm-2.9.3-f742dd90da-5053b27244.zip differ diff --git a/.yarn/cache/@parcel-optimizer-svgo-npm-2.9.2-4519e191ce-67ed4bd0db.zip b/.yarn/cache/@parcel-optimizer-svgo-npm-2.9.3-e6bd39a7c6-fd2f1a9fc6.zip similarity index 70% rename from .yarn/cache/@parcel-optimizer-svgo-npm-2.9.2-4519e191ce-67ed4bd0db.zip rename to .yarn/cache/@parcel-optimizer-svgo-npm-2.9.3-e6bd39a7c6-fd2f1a9fc6.zip index 7d4f03f8b..992a20a8d 100644 Binary files a/.yarn/cache/@parcel-optimizer-svgo-npm-2.9.2-4519e191ce-67ed4bd0db.zip and b/.yarn/cache/@parcel-optimizer-svgo-npm-2.9.3-e6bd39a7c6-fd2f1a9fc6.zip differ diff --git a/.yarn/cache/@parcel-optimizer-swc-npm-2.9.2-ccab80a9cc-e21d0bee33.zip b/.yarn/cache/@parcel-optimizer-swc-npm-2.9.3-9920b222d4-087012a418.zip similarity index 77% rename from .yarn/cache/@parcel-optimizer-swc-npm-2.9.2-ccab80a9cc-e21d0bee33.zip rename to .yarn/cache/@parcel-optimizer-swc-npm-2.9.3-9920b222d4-087012a418.zip index e1c6bde85..30b1736ee 100644 Binary files a/.yarn/cache/@parcel-optimizer-swc-npm-2.9.2-ccab80a9cc-e21d0bee33.zip and b/.yarn/cache/@parcel-optimizer-swc-npm-2.9.3-9920b222d4-087012a418.zip differ diff --git a/.yarn/cache/@parcel-package-manager-npm-2.9.2-ce78c9a74b-f7f1913f7f.zip b/.yarn/cache/@parcel-package-manager-npm-2.9.2-ce78c9a74b-f7f1913f7f.zip deleted file mode 100644 index c6e32f1a5..000000000 Binary files a/.yarn/cache/@parcel-package-manager-npm-2.9.2-ce78c9a74b-f7f1913f7f.zip and /dev/null differ diff --git a/.yarn/cache/@parcel-package-manager-npm-2.9.3-c065cee1b5-46acc905b8.zip b/.yarn/cache/@parcel-package-manager-npm-2.9.3-c065cee1b5-46acc905b8.zip new file mode 100644 index 000000000..c692d483b Binary files /dev/null and b/.yarn/cache/@parcel-package-manager-npm-2.9.3-c065cee1b5-46acc905b8.zip differ diff --git a/.yarn/cache/@parcel-packager-css-npm-2.9.2-6a69ae150c-835894034e.zip b/.yarn/cache/@parcel-packager-css-npm-2.9.3-c966dca775-725245c5d6.zip similarity index 86% rename from .yarn/cache/@parcel-packager-css-npm-2.9.2-6a69ae150c-835894034e.zip rename to .yarn/cache/@parcel-packager-css-npm-2.9.3-c966dca775-725245c5d6.zip index ed9072fbd..cd6cf154c 100644 Binary files a/.yarn/cache/@parcel-packager-css-npm-2.9.2-6a69ae150c-835894034e.zip and b/.yarn/cache/@parcel-packager-css-npm-2.9.3-c966dca775-725245c5d6.zip differ diff --git a/.yarn/cache/@parcel-packager-html-npm-2.9.2-7468873086-8551a11ea2.zip b/.yarn/cache/@parcel-packager-html-npm-2.9.3-eb1e5ba8d3-163217c86a.zip similarity index 82% rename from .yarn/cache/@parcel-packager-html-npm-2.9.2-7468873086-8551a11ea2.zip rename to .yarn/cache/@parcel-packager-html-npm-2.9.3-eb1e5ba8d3-163217c86a.zip index 785643e05..9ba449f4c 100644 Binary files a/.yarn/cache/@parcel-packager-html-npm-2.9.2-7468873086-8551a11ea2.zip and b/.yarn/cache/@parcel-packager-html-npm-2.9.3-eb1e5ba8d3-163217c86a.zip differ diff --git a/.yarn/cache/@parcel-packager-js-npm-2.9.2-dd0cd199e4-49fef23dc6.zip b/.yarn/cache/@parcel-packager-js-npm-2.9.3-27b52dc79e-db8c74ec80.zip similarity index 96% rename from .yarn/cache/@parcel-packager-js-npm-2.9.2-dd0cd199e4-49fef23dc6.zip rename to .yarn/cache/@parcel-packager-js-npm-2.9.3-27b52dc79e-db8c74ec80.zip index 05aac7f1d..313f64a2b 100644 Binary files a/.yarn/cache/@parcel-packager-js-npm-2.9.2-dd0cd199e4-49fef23dc6.zip and b/.yarn/cache/@parcel-packager-js-npm-2.9.3-27b52dc79e-db8c74ec80.zip differ diff --git a/.yarn/cache/@parcel-packager-raw-npm-2.9.2-1a5961f4f5-b56412fc29.zip b/.yarn/cache/@parcel-packager-raw-npm-2.9.3-1adbe4f9b6-840ddac49c.zip similarity index 60% rename from .yarn/cache/@parcel-packager-raw-npm-2.9.2-1a5961f4f5-b56412fc29.zip rename to .yarn/cache/@parcel-packager-raw-npm-2.9.3-1adbe4f9b6-840ddac49c.zip index af1c0b8f0..ef5c37d00 100644 Binary files a/.yarn/cache/@parcel-packager-raw-npm-2.9.2-1a5961f4f5-b56412fc29.zip and b/.yarn/cache/@parcel-packager-raw-npm-2.9.3-1adbe4f9b6-840ddac49c.zip differ diff --git a/.yarn/cache/@parcel-packager-svg-npm-2.9.2-1d3bdae8e7-ef38f501fb.zip b/.yarn/cache/@parcel-packager-svg-npm-2.9.3-1e484acb3f-ff09cfdbc5.zip similarity index 80% rename from .yarn/cache/@parcel-packager-svg-npm-2.9.2-1d3bdae8e7-ef38f501fb.zip rename to .yarn/cache/@parcel-packager-svg-npm-2.9.3-1e484acb3f-ff09cfdbc5.zip index 05333558b..3bee212d0 100644 Binary files a/.yarn/cache/@parcel-packager-svg-npm-2.9.2-1d3bdae8e7-ef38f501fb.zip and b/.yarn/cache/@parcel-packager-svg-npm-2.9.3-1e484acb3f-ff09cfdbc5.zip differ diff --git a/.yarn/cache/@parcel-plugin-npm-2.9.2-a6fcdfe690-3104b076ec.zip b/.yarn/cache/@parcel-plugin-npm-2.9.3-361c994700-e9d775a4fd.zip similarity index 77% rename from .yarn/cache/@parcel-plugin-npm-2.9.2-a6fcdfe690-3104b076ec.zip rename to .yarn/cache/@parcel-plugin-npm-2.9.3-361c994700-e9d775a4fd.zip index 03332d6f7..22ab6259b 100644 Binary files a/.yarn/cache/@parcel-plugin-npm-2.9.2-a6fcdfe690-3104b076ec.zip and b/.yarn/cache/@parcel-plugin-npm-2.9.3-361c994700-e9d775a4fd.zip differ diff --git a/.yarn/cache/@parcel-profiler-npm-2.9.2-f86abba7d6-390faeb1a0.zip b/.yarn/cache/@parcel-profiler-npm-2.9.3-d11664e14b-30e988b99e.zip similarity index 87% rename from .yarn/cache/@parcel-profiler-npm-2.9.2-f86abba7d6-390faeb1a0.zip rename to .yarn/cache/@parcel-profiler-npm-2.9.3-d11664e14b-30e988b99e.zip index 168a9dd9d..911739da2 100644 Binary files a/.yarn/cache/@parcel-profiler-npm-2.9.2-f86abba7d6-390faeb1a0.zip and b/.yarn/cache/@parcel-profiler-npm-2.9.3-d11664e14b-30e988b99e.zip differ diff --git a/.yarn/cache/@parcel-reporter-cli-npm-2.9.2-04a53602ed-d9b5ca577f.zip b/.yarn/cache/@parcel-reporter-cli-npm-2.9.2-04a53602ed-d9b5ca577f.zip deleted file mode 100644 index 1f586a758..000000000 Binary files a/.yarn/cache/@parcel-reporter-cli-npm-2.9.2-04a53602ed-d9b5ca577f.zip and /dev/null differ diff --git a/.yarn/cache/@parcel-reporter-cli-npm-2.9.3-d81ba5564f-f274aa2959.zip b/.yarn/cache/@parcel-reporter-cli-npm-2.9.3-d81ba5564f-f274aa2959.zip new file mode 100644 index 000000000..9deacdcd8 Binary files /dev/null and b/.yarn/cache/@parcel-reporter-cli-npm-2.9.3-d81ba5564f-f274aa2959.zip differ diff --git a/.yarn/cache/@parcel-reporter-dev-server-npm-2.9.2-a9675da842-1fdc8d48fd.zip b/.yarn/cache/@parcel-reporter-dev-server-npm-2.9.2-a9675da842-1fdc8d48fd.zip deleted file mode 100644 index 0d5b83e2f..000000000 Binary files a/.yarn/cache/@parcel-reporter-dev-server-npm-2.9.2-a9675da842-1fdc8d48fd.zip and /dev/null differ diff --git a/.yarn/cache/@parcel-reporter-dev-server-npm-2.9.3-60ff1088fd-e8beff5f94.zip b/.yarn/cache/@parcel-reporter-dev-server-npm-2.9.3-60ff1088fd-e8beff5f94.zip new file mode 100644 index 000000000..a2682877b Binary files /dev/null and b/.yarn/cache/@parcel-reporter-dev-server-npm-2.9.3-60ff1088fd-e8beff5f94.zip differ diff --git a/.yarn/cache/@parcel-reporter-tracer-npm-2.9.2-ad4deef524-e08623e902.zip b/.yarn/cache/@parcel-reporter-tracer-npm-2.9.3-80736d1c81-7922b19760.zip similarity index 89% rename from .yarn/cache/@parcel-reporter-tracer-npm-2.9.2-ad4deef524-e08623e902.zip rename to .yarn/cache/@parcel-reporter-tracer-npm-2.9.3-80736d1c81-7922b19760.zip index e23db8ae7..aca70fb11 100644 Binary files a/.yarn/cache/@parcel-reporter-tracer-npm-2.9.2-ad4deef524-e08623e902.zip and b/.yarn/cache/@parcel-reporter-tracer-npm-2.9.3-80736d1c81-7922b19760.zip differ diff --git a/.yarn/cache/@parcel-resolver-default-npm-2.9.2-130b2b9fc6-dc502cd62f.zip b/.yarn/cache/@parcel-resolver-default-npm-2.9.2-130b2b9fc6-dc502cd62f.zip deleted file mode 100644 index 03e9fbfaf..000000000 Binary files a/.yarn/cache/@parcel-resolver-default-npm-2.9.2-130b2b9fc6-dc502cd62f.zip and /dev/null differ diff --git a/.yarn/cache/@parcel-resolver-default-npm-2.9.3-f1c2ca1c12-9e14d5b9bc.zip b/.yarn/cache/@parcel-resolver-default-npm-2.9.3-f1c2ca1c12-9e14d5b9bc.zip new file mode 100644 index 000000000..a528e6f60 Binary files /dev/null and b/.yarn/cache/@parcel-resolver-default-npm-2.9.3-f1c2ca1c12-9e14d5b9bc.zip differ diff --git a/.yarn/cache/@parcel-runtime-browser-hmr-npm-2.9.2-c5978cbee9-4d08afa026.zip b/.yarn/cache/@parcel-runtime-browser-hmr-npm-2.9.3-24c44db571-e79e827598.zip similarity index 89% rename from .yarn/cache/@parcel-runtime-browser-hmr-npm-2.9.2-c5978cbee9-4d08afa026.zip rename to .yarn/cache/@parcel-runtime-browser-hmr-npm-2.9.3-24c44db571-e79e827598.zip index 19210d13c..65a4b7dd7 100644 Binary files a/.yarn/cache/@parcel-runtime-browser-hmr-npm-2.9.2-c5978cbee9-4d08afa026.zip and b/.yarn/cache/@parcel-runtime-browser-hmr-npm-2.9.3-24c44db571-e79e827598.zip differ diff --git a/.yarn/cache/@parcel-runtime-js-npm-2.9.2-617b40156f-8dada6fecf.zip b/.yarn/cache/@parcel-runtime-js-npm-2.9.3-95e94e0d1e-143c3a9d9b.zip similarity index 81% rename from .yarn/cache/@parcel-runtime-js-npm-2.9.2-617b40156f-8dada6fecf.zip rename to .yarn/cache/@parcel-runtime-js-npm-2.9.3-95e94e0d1e-143c3a9d9b.zip index cf0e818b9..1768b8698 100644 Binary files a/.yarn/cache/@parcel-runtime-js-npm-2.9.2-617b40156f-8dada6fecf.zip and b/.yarn/cache/@parcel-runtime-js-npm-2.9.3-95e94e0d1e-143c3a9d9b.zip differ diff --git a/.yarn/cache/@parcel-runtime-react-refresh-npm-2.9.2-dc674a15e8-16631bc020.zip b/.yarn/cache/@parcel-runtime-react-refresh-npm-2.9.3-2b78158a03-8fb9f8165e.zip similarity index 77% rename from .yarn/cache/@parcel-runtime-react-refresh-npm-2.9.2-dc674a15e8-16631bc020.zip rename to .yarn/cache/@parcel-runtime-react-refresh-npm-2.9.3-2b78158a03-8fb9f8165e.zip index 2d7f772c3..f5932b769 100644 Binary files a/.yarn/cache/@parcel-runtime-react-refresh-npm-2.9.2-dc674a15e8-16631bc020.zip and b/.yarn/cache/@parcel-runtime-react-refresh-npm-2.9.3-2b78158a03-8fb9f8165e.zip differ diff --git a/.yarn/cache/@parcel-runtime-service-worker-npm-2.9.2-c099b0c8ba-21180ba472.zip b/.yarn/cache/@parcel-runtime-service-worker-npm-2.9.3-74438ce430-e296a42e3e.zip similarity index 64% rename from .yarn/cache/@parcel-runtime-service-worker-npm-2.9.2-c099b0c8ba-21180ba472.zip rename to .yarn/cache/@parcel-runtime-service-worker-npm-2.9.3-74438ce430-e296a42e3e.zip index d148d365e..478d52942 100644 Binary files a/.yarn/cache/@parcel-runtime-service-worker-npm-2.9.2-c099b0c8ba-21180ba472.zip and b/.yarn/cache/@parcel-runtime-service-worker-npm-2.9.3-74438ce430-e296a42e3e.zip differ diff --git a/.yarn/cache/@parcel-transformer-babel-npm-2.9.2-ff6950ff1f-4177b0f176.zip b/.yarn/cache/@parcel-transformer-babel-npm-2.9.3-dbdeb9d470-4d0246290e.zip similarity index 96% rename from .yarn/cache/@parcel-transformer-babel-npm-2.9.2-ff6950ff1f-4177b0f176.zip rename to .yarn/cache/@parcel-transformer-babel-npm-2.9.3-dbdeb9d470-4d0246290e.zip index 32844f650..ffd5fc609 100644 Binary files a/.yarn/cache/@parcel-transformer-babel-npm-2.9.2-ff6950ff1f-4177b0f176.zip and b/.yarn/cache/@parcel-transformer-babel-npm-2.9.3-dbdeb9d470-4d0246290e.zip differ diff --git a/.yarn/cache/@parcel-transformer-css-npm-2.9.2-87b7d1818d-4aacbe62fa.zip b/.yarn/cache/@parcel-transformer-css-npm-2.9.3-ba3985d114-aad8e32439.zip similarity index 85% rename from .yarn/cache/@parcel-transformer-css-npm-2.9.2-87b7d1818d-4aacbe62fa.zip rename to .yarn/cache/@parcel-transformer-css-npm-2.9.3-ba3985d114-aad8e32439.zip index 860f2eb3e..c77fbcbd5 100644 Binary files a/.yarn/cache/@parcel-transformer-css-npm-2.9.2-87b7d1818d-4aacbe62fa.zip and b/.yarn/cache/@parcel-transformer-css-npm-2.9.3-ba3985d114-aad8e32439.zip differ diff --git a/.yarn/cache/@parcel-transformer-html-npm-2.9.2-1265e03787-baf4047c55.zip b/.yarn/cache/@parcel-transformer-html-npm-2.9.3-3ce9db1e20-77f150b568.zip similarity index 92% rename from .yarn/cache/@parcel-transformer-html-npm-2.9.2-1265e03787-baf4047c55.zip rename to .yarn/cache/@parcel-transformer-html-npm-2.9.3-3ce9db1e20-77f150b568.zip index c07ab4b5f..022447207 100644 Binary files a/.yarn/cache/@parcel-transformer-html-npm-2.9.2-1265e03787-baf4047c55.zip and b/.yarn/cache/@parcel-transformer-html-npm-2.9.3-3ce9db1e20-77f150b568.zip differ diff --git a/.yarn/cache/@parcel-transformer-image-npm-2.9.2-9c204c156c-197ffd8245.zip b/.yarn/cache/@parcel-transformer-image-npm-2.9.3-a6b435f582-554ff7c6c2.zip similarity index 85% rename from .yarn/cache/@parcel-transformer-image-npm-2.9.2-9c204c156c-197ffd8245.zip rename to .yarn/cache/@parcel-transformer-image-npm-2.9.3-a6b435f582-554ff7c6c2.zip index f07dad4bf..a44124bbc 100644 Binary files a/.yarn/cache/@parcel-transformer-image-npm-2.9.2-9c204c156c-197ffd8245.zip and b/.yarn/cache/@parcel-transformer-image-npm-2.9.3-a6b435f582-554ff7c6c2.zip differ diff --git a/.yarn/cache/@parcel-transformer-inline-string-npm-2.9.2-fd24e64c5c-d9146597b4.zip b/.yarn/cache/@parcel-transformer-inline-string-npm-2.9.3-4322e85564-e93463e7bb.zip similarity index 56% rename from .yarn/cache/@parcel-transformer-inline-string-npm-2.9.2-fd24e64c5c-d9146597b4.zip rename to .yarn/cache/@parcel-transformer-inline-string-npm-2.9.3-4322e85564-e93463e7bb.zip index 8cbf65913..d7db92ab4 100644 Binary files a/.yarn/cache/@parcel-transformer-inline-string-npm-2.9.2-fd24e64c5c-d9146597b4.zip and b/.yarn/cache/@parcel-transformer-inline-string-npm-2.9.3-4322e85564-e93463e7bb.zip differ diff --git a/.yarn/cache/@parcel-transformer-js-npm-2.9.2-f233609d97-0ea4ff8282.zip b/.yarn/cache/@parcel-transformer-js-npm-2.9.3-06fac1651a-c262307651.zip similarity index 78% rename from .yarn/cache/@parcel-transformer-js-npm-2.9.2-f233609d97-0ea4ff8282.zip rename to .yarn/cache/@parcel-transformer-js-npm-2.9.3-06fac1651a-c262307651.zip index 4c95eb724..2396852b2 100644 Binary files a/.yarn/cache/@parcel-transformer-js-npm-2.9.2-f233609d97-0ea4ff8282.zip and b/.yarn/cache/@parcel-transformer-js-npm-2.9.3-06fac1651a-c262307651.zip differ diff --git a/.yarn/cache/@parcel-transformer-json-npm-2.9.2-6294f04574-656c01128e.zip b/.yarn/cache/@parcel-transformer-json-npm-2.9.3-8b93a2737f-96e2157cfd.zip similarity index 61% rename from .yarn/cache/@parcel-transformer-json-npm-2.9.2-6294f04574-656c01128e.zip rename to .yarn/cache/@parcel-transformer-json-npm-2.9.3-8b93a2737f-96e2157cfd.zip index 66cb348dd..5e79e7d9a 100644 Binary files a/.yarn/cache/@parcel-transformer-json-npm-2.9.2-6294f04574-656c01128e.zip and b/.yarn/cache/@parcel-transformer-json-npm-2.9.3-8b93a2737f-96e2157cfd.zip differ diff --git a/.yarn/cache/@parcel-transformer-postcss-npm-2.9.2-66e7b1728c-4c514e8098.zip b/.yarn/cache/@parcel-transformer-postcss-npm-2.9.3-0bc0ad23cc-c396c25c5a.zip similarity index 92% rename from .yarn/cache/@parcel-transformer-postcss-npm-2.9.2-66e7b1728c-4c514e8098.zip rename to .yarn/cache/@parcel-transformer-postcss-npm-2.9.3-0bc0ad23cc-c396c25c5a.zip index 34402629c..8269f91a1 100644 Binary files a/.yarn/cache/@parcel-transformer-postcss-npm-2.9.2-66e7b1728c-4c514e8098.zip and b/.yarn/cache/@parcel-transformer-postcss-npm-2.9.3-0bc0ad23cc-c396c25c5a.zip differ diff --git a/.yarn/cache/@parcel-transformer-posthtml-npm-2.9.2-e6929cf94c-a88988f714.zip b/.yarn/cache/@parcel-transformer-posthtml-npm-2.9.3-e8c88a24c3-58d4836900.zip similarity index 78% rename from .yarn/cache/@parcel-transformer-posthtml-npm-2.9.2-e6929cf94c-a88988f714.zip rename to .yarn/cache/@parcel-transformer-posthtml-npm-2.9.3-e8c88a24c3-58d4836900.zip index 23e2b0733..46ffbe362 100644 Binary files a/.yarn/cache/@parcel-transformer-posthtml-npm-2.9.2-e6929cf94c-a88988f714.zip and b/.yarn/cache/@parcel-transformer-posthtml-npm-2.9.3-e8c88a24c3-58d4836900.zip differ diff --git a/.yarn/cache/@parcel-transformer-raw-npm-2.9.2-77f972073e-1603569c73.zip b/.yarn/cache/@parcel-transformer-raw-npm-2.9.3-77466dc855-b639e2f5fd.zip similarity index 56% rename from .yarn/cache/@parcel-transformer-raw-npm-2.9.2-77f972073e-1603569c73.zip rename to .yarn/cache/@parcel-transformer-raw-npm-2.9.3-77466dc855-b639e2f5fd.zip index 83f342080..7abf082f3 100644 Binary files a/.yarn/cache/@parcel-transformer-raw-npm-2.9.2-77f972073e-1603569c73.zip and b/.yarn/cache/@parcel-transformer-raw-npm-2.9.3-77466dc855-b639e2f5fd.zip differ diff --git a/.yarn/cache/@parcel-transformer-react-refresh-wrap-npm-2.9.2-9ece2e6944-9de36a5fa4.zip b/.yarn/cache/@parcel-transformer-react-refresh-wrap-npm-2.9.3-fba22031ec-aede3d82af.zip similarity index 80% rename from .yarn/cache/@parcel-transformer-react-refresh-wrap-npm-2.9.2-9ece2e6944-9de36a5fa4.zip rename to .yarn/cache/@parcel-transformer-react-refresh-wrap-npm-2.9.3-fba22031ec-aede3d82af.zip index 04e907452..edf9dba87 100644 Binary files a/.yarn/cache/@parcel-transformer-react-refresh-wrap-npm-2.9.2-9ece2e6944-9de36a5fa4.zip and b/.yarn/cache/@parcel-transformer-react-refresh-wrap-npm-2.9.3-fba22031ec-aede3d82af.zip differ diff --git a/.yarn/cache/@parcel-transformer-sass-npm-2.9.2-29ff1924b6-928b8767f3.zip b/.yarn/cache/@parcel-transformer-sass-npm-2.9.3-234c526ad6-534eb9239f.zip similarity index 81% rename from .yarn/cache/@parcel-transformer-sass-npm-2.9.2-29ff1924b6-928b8767f3.zip rename to .yarn/cache/@parcel-transformer-sass-npm-2.9.3-234c526ad6-534eb9239f.zip index 472d33bee..6cefc3329 100644 Binary files a/.yarn/cache/@parcel-transformer-sass-npm-2.9.2-29ff1924b6-928b8767f3.zip and b/.yarn/cache/@parcel-transformer-sass-npm-2.9.3-234c526ad6-534eb9239f.zip differ diff --git a/.yarn/cache/@parcel-transformer-svg-npm-2.9.2-f5135ba1d5-1b8b2c60ee.zip b/.yarn/cache/@parcel-transformer-svg-npm-2.9.3-6316a1b4cc-19cec37f9c.zip similarity index 83% rename from .yarn/cache/@parcel-transformer-svg-npm-2.9.2-f5135ba1d5-1b8b2c60ee.zip rename to .yarn/cache/@parcel-transformer-svg-npm-2.9.3-6316a1b4cc-19cec37f9c.zip index 7c9c8d1e8..797a3ace1 100644 Binary files a/.yarn/cache/@parcel-transformer-svg-npm-2.9.2-f5135ba1d5-1b8b2c60ee.zip and b/.yarn/cache/@parcel-transformer-svg-npm-2.9.3-6316a1b4cc-19cec37f9c.zip differ diff --git a/.yarn/cache/@parcel-types-npm-2.9.2-da147a7755-976fb44534.zip b/.yarn/cache/@parcel-types-npm-2.9.3-eef76f9fa9-2a21622772.zip similarity index 95% rename from .yarn/cache/@parcel-types-npm-2.9.2-da147a7755-976fb44534.zip rename to .yarn/cache/@parcel-types-npm-2.9.3-eef76f9fa9-2a21622772.zip index aaf472d80..72eafa066 100644 Binary files a/.yarn/cache/@parcel-types-npm-2.9.2-da147a7755-976fb44534.zip and b/.yarn/cache/@parcel-types-npm-2.9.3-eef76f9fa9-2a21622772.zip differ diff --git a/.yarn/cache/@parcel-utils-npm-2.9.2-267a2360a2-130cf1a6cb.zip b/.yarn/cache/@parcel-utils-npm-2.9.2-267a2360a2-130cf1a6cb.zip deleted file mode 100644 index e272fb117..000000000 Binary files a/.yarn/cache/@parcel-utils-npm-2.9.2-267a2360a2-130cf1a6cb.zip and /dev/null differ diff --git a/.yarn/cache/@parcel-utils-npm-2.9.3-6666fec42c-4c1df52754.zip b/.yarn/cache/@parcel-utils-npm-2.9.3-6666fec42c-4c1df52754.zip new file mode 100644 index 000000000..9d55b87c6 Binary files /dev/null and b/.yarn/cache/@parcel-utils-npm-2.9.3-6666fec42c-4c1df52754.zip differ diff --git a/.yarn/cache/@parcel-workers-npm-2.9.2-9acb007028-7e980749c1.zip b/.yarn/cache/@parcel-workers-npm-2.9.3-b0559c8ccb-d6ac6e2abf.zip similarity index 96% rename from .yarn/cache/@parcel-workers-npm-2.9.2-9acb007028-7e980749c1.zip rename to .yarn/cache/@parcel-workers-npm-2.9.3-b0559c8ccb-d6ac6e2abf.zip index dac46b859..c23318245 100644 Binary files a/.yarn/cache/@parcel-workers-npm-2.9.2-9acb007028-7e980749c1.zip and b/.yarn/cache/@parcel-workers-npm-2.9.3-b0559c8ccb-d6ac6e2abf.zip differ diff --git a/.yarn/cache/@rollup-pluginutils-npm-5.0.2-6aa9d0ddd4-edea15e543.zip b/.yarn/cache/@rollup-pluginutils-npm-5.0.2-6aa9d0ddd4-edea15e543.zip deleted file mode 100644 index d898c5035..000000000 Binary files a/.yarn/cache/@rollup-pluginutils-npm-5.0.2-6aa9d0ddd4-edea15e543.zip and /dev/null differ diff --git a/.yarn/cache/@rollup-pluginutils-npm-5.0.3-33f9e7f020-8efbdeac53.zip b/.yarn/cache/@rollup-pluginutils-npm-5.0.3-33f9e7f020-8efbdeac53.zip new file mode 100644 index 000000000..e8af59735 Binary files /dev/null and b/.yarn/cache/@rollup-pluginutils-npm-5.0.3-33f9e7f020-8efbdeac53.zip differ diff --git a/.yarn/cache/@vitejs-plugin-vue-npm-4.2.3-f2af5ce2fe-1c70c1cd18.zip b/.yarn/cache/@vitejs-plugin-vue-npm-4.2.3-f2af5ce2fe-1c70c1cd18.zip deleted file mode 100644 index 4060d8244..000000000 Binary files a/.yarn/cache/@vitejs-plugin-vue-npm-4.2.3-f2af5ce2fe-1c70c1cd18.zip and /dev/null differ diff --git a/.yarn/cache/@vitejs-plugin-vue-npm-4.3.3-ffc8f9f2ac-17f8d73708.zip b/.yarn/cache/@vitejs-plugin-vue-npm-4.3.3-ffc8f9f2ac-17f8d73708.zip new file mode 100644 index 000000000..4f77fdcf5 Binary files /dev/null and b/.yarn/cache/@vitejs-plugin-vue-npm-4.3.3-ffc8f9f2ac-17f8d73708.zip differ diff --git a/.yarn/cache/acorn-npm-8.10.0-2230c9e83e-538ba38af0.zip b/.yarn/cache/acorn-npm-8.10.0-2230c9e83e-538ba38af0.zip new file mode 100644 index 000000000..682020700 Binary files /dev/null and b/.yarn/cache/acorn-npm-8.10.0-2230c9e83e-538ba38af0.zip differ diff --git a/.yarn/cache/acorn-npm-8.8.0-9ef399ab45-7270ca82b2.zip b/.yarn/cache/acorn-npm-8.8.0-9ef399ab45-7270ca82b2.zip deleted file mode 100644 index b5376b139..000000000 Binary files a/.yarn/cache/acorn-npm-8.8.0-9ef399ab45-7270ca82b2.zip and /dev/null differ diff --git a/.yarn/cache/array-buffer-byte-length-npm-1.0.0-331671f28a-044e101ce1.zip b/.yarn/cache/array-buffer-byte-length-npm-1.0.0-331671f28a-044e101ce1.zip new file mode 100644 index 000000000..d2d609a66 Binary files /dev/null and b/.yarn/cache/array-buffer-byte-length-npm-1.0.0-331671f28a-044e101ce1.zip differ diff --git a/.yarn/cache/array.prototype.findlastindex-npm-1.2.2-dc5ee7bf67-8a166359f6.zip b/.yarn/cache/array.prototype.findlastindex-npm-1.2.2-dc5ee7bf67-8a166359f6.zip new file mode 100644 index 000000000..43baf2b33 Binary files /dev/null and b/.yarn/cache/array.prototype.findlastindex-npm-1.2.2-dc5ee7bf67-8a166359f6.zip differ diff --git a/.yarn/cache/arraybuffer.prototype.slice-npm-1.0.1-d44cb5acc0-e3e9b2a3e9.zip b/.yarn/cache/arraybuffer.prototype.slice-npm-1.0.1-d44cb5acc0-e3e9b2a3e9.zip new file mode 100644 index 000000000..aa44dd713 Binary files /dev/null and b/.yarn/cache/arraybuffer.prototype.slice-npm-1.0.1-d44cb5acc0-e3e9b2a3e9.zip differ diff --git a/.yarn/cache/bootstrap-npm-5.2.3-7458283a23-0211805dec.zip b/.yarn/cache/bootstrap-npm-5.2.3-7458283a23-0211805dec.zip deleted file mode 100644 index 24c59290c..000000000 Binary files a/.yarn/cache/bootstrap-npm-5.2.3-7458283a23-0211805dec.zip and /dev/null differ diff --git a/.yarn/cache/bootstrap-npm-5.3.0-240c38a3b2-29a83cc8ca.zip b/.yarn/cache/bootstrap-npm-5.3.0-240c38a3b2-29a83cc8ca.zip new file mode 100644 index 000000000..8099bab24 Binary files /dev/null and b/.yarn/cache/bootstrap-npm-5.3.0-240c38a3b2-29a83cc8ca.zip differ diff --git a/.yarn/cache/c8-npm-8.0.0-905b9370f4-9b107e412a.zip b/.yarn/cache/c8-npm-8.0.1-6462c8130b-2c47531d21.zip similarity index 93% rename from .yarn/cache/c8-npm-8.0.0-905b9370f4-9b107e412a.zip rename to .yarn/cache/c8-npm-8.0.1-6462c8130b-2c47531d21.zip index 210f69e8d..ff8bf91a2 100644 Binary files a/.yarn/cache/c8-npm-8.0.0-905b9370f4-9b107e412a.zip and b/.yarn/cache/c8-npm-8.0.1-6462c8130b-2c47531d21.zip differ diff --git a/.yarn/cache/caniuse-lite-npm-1.0.30001495-4b9e0263f7-c0a139a2e6.zip b/.yarn/cache/caniuse-lite-npm-1.0.30001495-4b9e0263f7-c0a139a2e6.zip deleted file mode 100644 index 0857df82a..000000000 Binary files a/.yarn/cache/caniuse-lite-npm-1.0.30001495-4b9e0263f7-c0a139a2e6.zip and /dev/null differ diff --git a/.yarn/cache/caniuse-lite-npm-1.0.30001519-1d6b5bc825-66085133ed.zip b/.yarn/cache/caniuse-lite-npm-1.0.30001519-1d6b5bc825-66085133ed.zip new file mode 100644 index 000000000..d3c87e0da Binary files /dev/null and b/.yarn/cache/caniuse-lite-npm-1.0.30001519-1d6b5bc825-66085133ed.zip differ diff --git a/.yarn/cache/cliui-npm-7.0.4-d6b8a9edb6-ce2e8f578a.zip b/.yarn/cache/cliui-npm-8.0.1-3b029092cf-79648b3b00.zip similarity index 70% rename from .yarn/cache/cliui-npm-7.0.4-d6b8a9edb6-ce2e8f578a.zip rename to .yarn/cache/cliui-npm-8.0.1-3b029092cf-79648b3b00.zip index 24f58564e..a90643c5e 100644 Binary files a/.yarn/cache/cliui-npm-7.0.4-d6b8a9edb6-ce2e8f578a.zip and b/.yarn/cache/cliui-npm-8.0.1-3b029092cf-79648b3b00.zip differ diff --git a/.yarn/cache/define-properties-npm-1.2.0-3547cd0fd2-e60aee6a19.zip b/.yarn/cache/define-properties-npm-1.2.0-3547cd0fd2-e60aee6a19.zip new file mode 100644 index 000000000..bcbfcf6e6 Binary files /dev/null and b/.yarn/cache/define-properties-npm-1.2.0-3547cd0fd2-e60aee6a19.zip differ diff --git a/.yarn/cache/es-abstract-npm-1.22.1-bfe4c9a3e1-614e2c1c37.zip b/.yarn/cache/es-abstract-npm-1.22.1-bfe4c9a3e1-614e2c1c37.zip new file mode 100644 index 000000000..1f0b5c1d9 Binary files /dev/null and b/.yarn/cache/es-abstract-npm-1.22.1-bfe4c9a3e1-614e2c1c37.zip differ diff --git a/.yarn/cache/esbuild-npm-0.17.13-538abc913d-c3be8d41a3.zip b/.yarn/cache/esbuild-npm-0.17.13-538abc913d-c3be8d41a3.zip deleted file mode 100644 index 994bb8b78..000000000 Binary files a/.yarn/cache/esbuild-npm-0.17.13-538abc913d-c3be8d41a3.zip and /dev/null differ diff --git a/.yarn/cache/esbuild-npm-0.18.20-004a76d281-5d253614e5.zip b/.yarn/cache/esbuild-npm-0.18.20-004a76d281-5d253614e5.zip new file mode 100644 index 000000000..74931c9be Binary files /dev/null and b/.yarn/cache/esbuild-npm-0.18.20-004a76d281-5d253614e5.zip differ diff --git a/.yarn/cache/eslint-module-utils-npm-2.7.4-a1640084cb-5da13645da.zip b/.yarn/cache/eslint-module-utils-npm-2.7.4-a1640084cb-5da13645da.zip deleted file mode 100644 index 005d442b0..000000000 Binary files a/.yarn/cache/eslint-module-utils-npm-2.7.4-a1640084cb-5da13645da.zip and /dev/null differ diff --git a/.yarn/cache/eslint-module-utils-npm-2.8.0-05e42bcab0-74c6dfea76.zip b/.yarn/cache/eslint-module-utils-npm-2.8.0-05e42bcab0-74c6dfea76.zip new file mode 100644 index 000000000..964bee4e4 Binary files /dev/null and b/.yarn/cache/eslint-module-utils-npm-2.8.0-05e42bcab0-74c6dfea76.zip differ diff --git a/.yarn/cache/eslint-npm-8.43.0-5757109ac8-55654ce00b.zip b/.yarn/cache/eslint-npm-8.47.0-84c6b60ea8-1988617f70.zip similarity index 74% rename from .yarn/cache/eslint-npm-8.43.0-5757109ac8-55654ce00b.zip rename to .yarn/cache/eslint-npm-8.47.0-84c6b60ea8-1988617f70.zip index f51b7c389..1f79008bd 100644 Binary files a/.yarn/cache/eslint-npm-8.43.0-5757109ac8-55654ce00b.zip and b/.yarn/cache/eslint-npm-8.47.0-84c6b60ea8-1988617f70.zip differ diff --git a/.yarn/cache/eslint-plugin-cypress-npm-2.13.3-0ad3bff9c9-9affbcee29.zip b/.yarn/cache/eslint-plugin-cypress-npm-2.14.0-4d90862e1d-3fa118a757.zip similarity index 78% rename from .yarn/cache/eslint-plugin-cypress-npm-2.13.3-0ad3bff9c9-9affbcee29.zip rename to .yarn/cache/eslint-plugin-cypress-npm-2.14.0-4d90862e1d-3fa118a757.zip index 8ba449dd8..df90e603b 100644 Binary files a/.yarn/cache/eslint-plugin-cypress-npm-2.13.3-0ad3bff9c9-9affbcee29.zip and b/.yarn/cache/eslint-plugin-cypress-npm-2.14.0-4d90862e1d-3fa118a757.zip differ diff --git a/.yarn/cache/eslint-plugin-import-npm-2.27.5-35b044b26f-f500571a38.zip b/.yarn/cache/eslint-plugin-import-npm-2.27.5-35b044b26f-f500571a38.zip deleted file mode 100644 index 6b2c4b1f3..000000000 Binary files a/.yarn/cache/eslint-plugin-import-npm-2.27.5-35b044b26f-f500571a38.zip and /dev/null differ diff --git a/.yarn/cache/eslint-plugin-import-npm-2.28.1-2056ddf35c-e8ae6dd8f0.zip b/.yarn/cache/eslint-plugin-import-npm-2.28.1-2056ddf35c-e8ae6dd8f0.zip new file mode 100644 index 000000000..694db7307 Binary files /dev/null and b/.yarn/cache/eslint-plugin-import-npm-2.28.1-2056ddf35c-e8ae6dd8f0.zip differ diff --git a/.yarn/cache/eslint-plugin-vue-npm-9.15.1-9577f26965-b1cdb16e43.zip b/.yarn/cache/eslint-plugin-vue-npm-9.15.1-9577f26965-b1cdb16e43.zip deleted file mode 100644 index 7fec21f7a..000000000 Binary files a/.yarn/cache/eslint-plugin-vue-npm-9.15.1-9577f26965-b1cdb16e43.zip and /dev/null differ diff --git a/.yarn/cache/eslint-plugin-vue-npm-9.17.0-c32115eab8-2ef53a0387.zip b/.yarn/cache/eslint-plugin-vue-npm-9.17.0-c32115eab8-2ef53a0387.zip new file mode 100644 index 000000000..2453c1f22 Binary files /dev/null and b/.yarn/cache/eslint-plugin-vue-npm-9.17.0-c32115eab8-2ef53a0387.zip differ diff --git a/.yarn/cache/eslint-scope-npm-7.2.0-88784f5a38-64591a2d8b.zip b/.yarn/cache/eslint-scope-npm-7.2.2-53cb0df8e8-ec97dbf5fb.zip similarity index 64% rename from .yarn/cache/eslint-scope-npm-7.2.0-88784f5a38-64591a2d8b.zip rename to .yarn/cache/eslint-scope-npm-7.2.2-53cb0df8e8-ec97dbf5fb.zip index 466323f2b..29b002eb9 100644 Binary files a/.yarn/cache/eslint-scope-npm-7.2.0-88784f5a38-64591a2d8b.zip and b/.yarn/cache/eslint-scope-npm-7.2.2-53cb0df8e8-ec97dbf5fb.zip differ diff --git a/.yarn/cache/eslint-visitor-keys-npm-3.4.3-a356ac7e46-36e9ef87fc.zip b/.yarn/cache/eslint-visitor-keys-npm-3.4.3-a356ac7e46-36e9ef87fc.zip new file mode 100644 index 000000000..7c61b814b Binary files /dev/null and b/.yarn/cache/eslint-visitor-keys-npm-3.4.3-a356ac7e46-36e9ef87fc.zip differ diff --git a/.yarn/cache/espree-npm-9.5.2-5fc9506cda-6506289d6e.zip b/.yarn/cache/espree-npm-9.5.2-5fc9506cda-6506289d6e.zip deleted file mode 100644 index 4c6380f99..000000000 Binary files a/.yarn/cache/espree-npm-9.5.2-5fc9506cda-6506289d6e.zip and /dev/null differ diff --git a/.yarn/cache/espree-npm-9.6.1-a50722a5a9-eb8c149c7a.zip b/.yarn/cache/espree-npm-9.6.1-a50722a5a9-eb8c149c7a.zip new file mode 100644 index 000000000..0014c0574 Binary files /dev/null and b/.yarn/cache/espree-npm-9.6.1-a50722a5a9-eb8c149c7a.zip differ diff --git a/.yarn/cache/get-intrinsic-npm-1.2.1-ae857fd610-5b61d88552.zip b/.yarn/cache/get-intrinsic-npm-1.2.1-ae857fd610-5b61d88552.zip new file mode 100644 index 000000000..687f61116 Binary files /dev/null and b/.yarn/cache/get-intrinsic-npm-1.2.1-ae857fd610-5b61d88552.zip differ diff --git a/.yarn/cache/globals-npm-11.12.0-1fa7f41a6c-67051a45ec.zip b/.yarn/cache/globals-npm-11.12.0-1fa7f41a6c-67051a45ec.zip deleted file mode 100644 index 306b5aaca..000000000 Binary files a/.yarn/cache/globals-npm-11.12.0-1fa7f41a6c-67051a45ec.zip and /dev/null differ diff --git a/.yarn/cache/globals-npm-13.21.0-c0829ce1cb-86c92ca8a0.zip b/.yarn/cache/globals-npm-13.21.0-c0829ce1cb-86c92ca8a0.zip new file mode 100644 index 000000000..597f67a92 Binary files /dev/null and b/.yarn/cache/globals-npm-13.21.0-c0829ce1cb-86c92ca8a0.zip differ diff --git a/.yarn/cache/html-validate-npm-8.0.5-b9c8df9b15-05c5255032.zip b/.yarn/cache/html-validate-npm-8.0.5-b9c8df9b15-05c5255032.zip deleted file mode 100644 index d9104a700..000000000 Binary files a/.yarn/cache/html-validate-npm-8.0.5-b9c8df9b15-05c5255032.zip and /dev/null differ diff --git a/.yarn/cache/html-validate-npm-8.2.0-51da0ed7e6-793287a454.zip b/.yarn/cache/html-validate-npm-8.2.0-51da0ed7e6-793287a454.zip new file mode 100644 index 000000000..818e29455 Binary files /dev/null and b/.yarn/cache/html-validate-npm-8.2.0-51da0ed7e6-793287a454.zip differ diff --git a/.yarn/cache/internal-slot-npm-1.0.5-a2241f3e66-97e84046bf.zip b/.yarn/cache/internal-slot-npm-1.0.5-a2241f3e66-97e84046bf.zip new file mode 100644 index 000000000..18fccd3ac Binary files /dev/null and b/.yarn/cache/internal-slot-npm-1.0.5-a2241f3e66-97e84046bf.zip differ diff --git a/.yarn/cache/is-array-buffer-npm-3.0.2-0dec897785-dcac9dda66.zip b/.yarn/cache/is-array-buffer-npm-3.0.2-0dec897785-dcac9dda66.zip new file mode 100644 index 000000000..7556381d4 Binary files /dev/null and b/.yarn/cache/is-array-buffer-npm-3.0.2-0dec897785-dcac9dda66.zip differ diff --git a/.yarn/cache/is-core-module-npm-2.13.0-e444c50225-053ab101fb.zip b/.yarn/cache/is-core-module-npm-2.13.0-e444c50225-053ab101fb.zip new file mode 100644 index 000000000..636775cb5 Binary files /dev/null and b/.yarn/cache/is-core-module-npm-2.13.0-e444c50225-053ab101fb.zip differ diff --git a/.yarn/cache/isarray-npm-2.0.5-4ba522212d-bd5bbe4104.zip b/.yarn/cache/isarray-npm-2.0.5-4ba522212d-bd5bbe4104.zip new file mode 100644 index 000000000..f46224f1c Binary files /dev/null and b/.yarn/cache/isarray-npm-2.0.5-4ba522212d-bd5bbe4104.zip differ diff --git a/.yarn/cache/istanbul-lib-report-npm-3.0.1-b17446ab24-fd17a1b879.zip b/.yarn/cache/istanbul-lib-report-npm-3.0.1-b17446ab24-fd17a1b879.zip new file mode 100644 index 000000000..b946848af Binary files /dev/null and b/.yarn/cache/istanbul-lib-report-npm-3.0.1-b17446ab24-fd17a1b879.zip differ diff --git a/.yarn/cache/istanbul-reports-npm-3.1.4-5faaa9636c-2132983355.zip b/.yarn/cache/istanbul-reports-npm-3.1.4-5faaa9636c-2132983355.zip deleted file mode 100644 index c9a9a9c94..000000000 Binary files a/.yarn/cache/istanbul-reports-npm-3.1.4-5faaa9636c-2132983355.zip and /dev/null differ diff --git a/.yarn/cache/istanbul-reports-npm-3.1.6-66918eb97f-44c4c0582f.zip b/.yarn/cache/istanbul-reports-npm-3.1.6-66918eb97f-44c4c0582f.zip new file mode 100644 index 000000000..4a337c339 Binary files /dev/null and b/.yarn/cache/istanbul-reports-npm-3.1.6-66918eb97f-44c4c0582f.zip differ diff --git a/.yarn/cache/luxon-npm-3.3.0-bdbae9bfd5-50cf17a0dc.zip b/.yarn/cache/luxon-npm-3.3.0-bdbae9bfd5-50cf17a0dc.zip deleted file mode 100644 index e70d3dc06..000000000 Binary files a/.yarn/cache/luxon-npm-3.3.0-bdbae9bfd5-50cf17a0dc.zip and /dev/null differ diff --git a/.yarn/cache/luxon-npm-3.4.0-8e0b97226e-ca9b6d0e0a.zip b/.yarn/cache/luxon-npm-3.4.0-8e0b97226e-ca9b6d0e0a.zip new file mode 100644 index 000000000..6be5a9ac0 Binary files /dev/null and b/.yarn/cache/luxon-npm-3.4.0-8e0b97226e-ca9b6d0e0a.zip differ diff --git a/.yarn/cache/make-dir-npm-4.0.0-ec3cd921cc-bf0731a2dd.zip b/.yarn/cache/make-dir-npm-4.0.0-ec3cd921cc-bf0731a2dd.zip new file mode 100644 index 000000000..2a141eff6 Binary files /dev/null and b/.yarn/cache/make-dir-npm-4.0.0-ec3cd921cc-bf0731a2dd.zip differ diff --git a/.yarn/cache/object.fromentries-npm-2.0.6-424cf4cd3c-453c6d6941.zip b/.yarn/cache/object.fromentries-npm-2.0.6-424cf4cd3c-453c6d6941.zip new file mode 100644 index 000000000..5c9a301a0 Binary files /dev/null and b/.yarn/cache/object.fromentries-npm-2.0.6-424cf4cd3c-453c6d6941.zip differ diff --git a/.yarn/cache/object.groupby-npm-1.0.0-b360bea3aa-64b00b287d.zip b/.yarn/cache/object.groupby-npm-1.0.0-b360bea3aa-64b00b287d.zip new file mode 100644 index 000000000..ba072a91a Binary files /dev/null and b/.yarn/cache/object.groupby-npm-1.0.0-b360bea3aa-64b00b287d.zip differ diff --git a/.yarn/cache/optionator-npm-0.9.1-577e397aae-dbc6fa0656.zip b/.yarn/cache/optionator-npm-0.9.1-577e397aae-dbc6fa0656.zip deleted file mode 100644 index 6e6efe345..000000000 Binary files a/.yarn/cache/optionator-npm-0.9.1-577e397aae-dbc6fa0656.zip and /dev/null differ diff --git a/.yarn/cache/optionator-npm-0.9.3-56c3a4bf80-0928199944.zip b/.yarn/cache/optionator-npm-0.9.3-56c3a4bf80-0928199944.zip new file mode 100644 index 000000000..06266323c Binary files /dev/null and b/.yarn/cache/optionator-npm-0.9.3-56c3a4bf80-0928199944.zip differ diff --git a/.yarn/cache/parcel-npm-2.9.2-a28e47b190-bd16d67104.zip b/.yarn/cache/parcel-npm-2.9.3-33db24662f-d9b9c0083f.zip similarity index 92% rename from .yarn/cache/parcel-npm-2.9.2-a28e47b190-bd16d67104.zip rename to .yarn/cache/parcel-npm-2.9.3-33db24662f-d9b9c0083f.zip index 009f0406a..e06294ddc 100644 Binary files a/.yarn/cache/parcel-npm-2.9.2-a28e47b190-bd16d67104.zip and b/.yarn/cache/parcel-npm-2.9.3-33db24662f-d9b9c0083f.zip differ diff --git a/.yarn/cache/pinia-npm-2.1.4-8c3fdb8813-5285b1415e.zip b/.yarn/cache/pinia-npm-2.1.4-8c3fdb8813-5285b1415e.zip deleted file mode 100644 index c99e2a553..000000000 Binary files a/.yarn/cache/pinia-npm-2.1.4-8c3fdb8813-5285b1415e.zip and /dev/null differ diff --git a/.yarn/cache/pinia-npm-2.1.6-e0a07396ee-4e881e590c.zip b/.yarn/cache/pinia-npm-2.1.6-e0a07396ee-4e881e590c.zip new file mode 100644 index 000000000..3bb2c9e11 Binary files /dev/null and b/.yarn/cache/pinia-npm-2.1.6-e0a07396ee-4e881e590c.zip differ diff --git a/.yarn/cache/postcss-npm-8.4.23-d4a02a832d-8bb9d1b2ea.zip b/.yarn/cache/postcss-npm-8.4.23-d4a02a832d-8bb9d1b2ea.zip deleted file mode 100644 index 561478eb0..000000000 Binary files a/.yarn/cache/postcss-npm-8.4.23-d4a02a832d-8bb9d1b2ea.zip and /dev/null differ diff --git a/.yarn/cache/postcss-npm-8.4.27-2a9f5f8f40-1cdd0c2988.zip b/.yarn/cache/postcss-npm-8.4.27-2a9f5f8f40-1cdd0c2988.zip new file mode 100644 index 000000000..11d492b6c Binary files /dev/null and b/.yarn/cache/postcss-npm-8.4.27-2a9f5f8f40-1cdd0c2988.zip differ diff --git a/.yarn/cache/postcss-selector-parser-npm-6.0.10-a4d7aaa270-46afaa60e3.zip b/.yarn/cache/postcss-selector-parser-npm-6.0.10-a4d7aaa270-46afaa60e3.zip deleted file mode 100644 index 496c72f70..000000000 Binary files a/.yarn/cache/postcss-selector-parser-npm-6.0.10-a4d7aaa270-46afaa60e3.zip and /dev/null differ diff --git a/.yarn/cache/postcss-selector-parser-npm-6.0.13-f732d92326-f89163338a.zip b/.yarn/cache/postcss-selector-parser-npm-6.0.13-f732d92326-f89163338a.zip new file mode 100644 index 000000000..1623d46ce Binary files /dev/null and b/.yarn/cache/postcss-selector-parser-npm-6.0.13-f732d92326-f89163338a.zip differ diff --git a/.yarn/cache/regexp.prototype.flags-npm-1.5.0-5623b9e07f-c541687cdb.zip b/.yarn/cache/regexp.prototype.flags-npm-1.5.0-5623b9e07f-c541687cdb.zip new file mode 100644 index 000000000..79f001c12 Binary files /dev/null and b/.yarn/cache/regexp.prototype.flags-npm-1.5.0-5623b9e07f-c541687cdb.zip differ diff --git a/.yarn/cache/rollup-npm-3.21.6-ae95b73a21-bb6786ee0d.zip b/.yarn/cache/rollup-npm-3.21.6-ae95b73a21-bb6786ee0d.zip deleted file mode 100644 index dcc06fb87..000000000 Binary files a/.yarn/cache/rollup-npm-3.21.6-ae95b73a21-bb6786ee0d.zip and /dev/null differ diff --git a/.yarn/cache/rollup-npm-3.28.0-4ab1b4022e-6ded4a0d3c.zip b/.yarn/cache/rollup-npm-3.28.0-4ab1b4022e-6ded4a0d3c.zip new file mode 100644 index 000000000..fba58d7ee Binary files /dev/null and b/.yarn/cache/rollup-npm-3.28.0-4ab1b4022e-6ded4a0d3c.zip differ diff --git a/.yarn/cache/safe-array-concat-npm-1.0.0-897b2c630a-f43cb98fe3.zip b/.yarn/cache/safe-array-concat-npm-1.0.0-897b2c630a-f43cb98fe3.zip new file mode 100644 index 000000000..df430cd1d Binary files /dev/null and b/.yarn/cache/safe-array-concat-npm-1.0.0-897b2c630a-f43cb98fe3.zip differ diff --git a/.yarn/cache/sass-npm-1.63.4-bf5f3496c2-12bde5beff.zip b/.yarn/cache/sass-npm-1.63.4-bf5f3496c2-12bde5beff.zip deleted file mode 100644 index adadea953..000000000 Binary files a/.yarn/cache/sass-npm-1.63.4-bf5f3496c2-12bde5beff.zip and /dev/null differ diff --git a/.yarn/cache/sass-npm-1.66.1-563acb4a8f-74fc11d0fc.zip b/.yarn/cache/sass-npm-1.66.1-563acb4a8f-74fc11d0fc.zip new file mode 100644 index 000000000..6502f76ba Binary files /dev/null and b/.yarn/cache/sass-npm-1.66.1-563acb4a8f-74fc11d0fc.zip differ diff --git a/.yarn/cache/semver-npm-6.3.1-bcba31fdbe-ae47d06de2.zip b/.yarn/cache/semver-npm-6.3.1-bcba31fdbe-ae47d06de2.zip new file mode 100644 index 000000000..91f42cf84 Binary files /dev/null and b/.yarn/cache/semver-npm-6.3.1-bcba31fdbe-ae47d06de2.zip differ diff --git a/.yarn/cache/semver-npm-7.5.4-c4ad957fcd-12d8ad952f.zip b/.yarn/cache/semver-npm-7.5.4-c4ad957fcd-12d8ad952f.zip new file mode 100644 index 000000000..f8689471f Binary files /dev/null and b/.yarn/cache/semver-npm-7.5.4-c4ad957fcd-12d8ad952f.zip differ diff --git a/.yarn/cache/string.prototype.trim-npm-1.2.7-3fbaf3b9d2-05b7b2d6af.zip b/.yarn/cache/string.prototype.trim-npm-1.2.7-3fbaf3b9d2-05b7b2d6af.zip new file mode 100644 index 000000000..ee6a456c0 Binary files /dev/null and b/.yarn/cache/string.prototype.trim-npm-1.2.7-3fbaf3b9d2-05b7b2d6af.zip differ diff --git a/.yarn/cache/tsconfig-paths-npm-3.14.1-17a815b5c5-8afa01c673.zip b/.yarn/cache/tsconfig-paths-npm-3.14.2-90ce75420d-a6162eaa1a.zip similarity index 91% rename from .yarn/cache/tsconfig-paths-npm-3.14.1-17a815b5c5-8afa01c673.zip rename to .yarn/cache/tsconfig-paths-npm-3.14.2-90ce75420d-a6162eaa1a.zip index 98a7ab1f8..0b7678825 100644 Binary files a/.yarn/cache/tsconfig-paths-npm-3.14.1-17a815b5c5-8afa01c673.zip and b/.yarn/cache/tsconfig-paths-npm-3.14.2-90ce75420d-a6162eaa1a.zip differ diff --git a/.yarn/cache/typed-array-buffer-npm-1.0.0-95cb610310-3e0281c79b.zip b/.yarn/cache/typed-array-buffer-npm-1.0.0-95cb610310-3e0281c79b.zip new file mode 100644 index 000000000..7e8dc8f1e Binary files /dev/null and b/.yarn/cache/typed-array-buffer-npm-1.0.0-95cb610310-3e0281c79b.zip differ diff --git a/.yarn/cache/typed-array-byte-length-npm-1.0.0-94d79975ca-b03db16458.zip b/.yarn/cache/typed-array-byte-length-npm-1.0.0-94d79975ca-b03db16458.zip new file mode 100644 index 000000000..9cd6f3478 Binary files /dev/null and b/.yarn/cache/typed-array-byte-length-npm-1.0.0-94d79975ca-b03db16458.zip differ diff --git a/.yarn/cache/typed-array-byte-offset-npm-1.0.0-8cbb911cf5-04f6f02d0e.zip b/.yarn/cache/typed-array-byte-offset-npm-1.0.0-8cbb911cf5-04f6f02d0e.zip new file mode 100644 index 000000000..2318610bb Binary files /dev/null and b/.yarn/cache/typed-array-byte-offset-npm-1.0.0-8cbb911cf5-04f6f02d0e.zip differ diff --git a/.yarn/cache/vanillajs-datepicker-npm-1.3.3-c1fde0e681-be830750a5.zip b/.yarn/cache/vanillajs-datepicker-npm-1.3.4-bc86e15a9c-830958f8af.zip similarity index 73% rename from .yarn/cache/vanillajs-datepicker-npm-1.3.3-c1fde0e681-be830750a5.zip rename to .yarn/cache/vanillajs-datepicker-npm-1.3.4-bc86e15a9c-830958f8af.zip index a48ca28cf..151d4c923 100644 Binary files a/.yarn/cache/vanillajs-datepicker-npm-1.3.3-c1fde0e681-be830750a5.zip and b/.yarn/cache/vanillajs-datepicker-npm-1.3.4-bc86e15a9c-830958f8af.zip differ diff --git a/.yarn/cache/vite-npm-4.3.9-24f3552941-8c45a51627.zip b/.yarn/cache/vite-npm-4.3.9-24f3552941-8c45a51627.zip deleted file mode 100644 index 397029456..000000000 Binary files a/.yarn/cache/vite-npm-4.3.9-24f3552941-8c45a51627.zip and /dev/null differ diff --git a/.yarn/cache/vite-npm-4.4.9-e845c1bbf8-c511024cea.zip b/.yarn/cache/vite-npm-4.4.9-e845c1bbf8-c511024cea.zip new file mode 100644 index 000000000..96494b7e0 Binary files /dev/null and b/.yarn/cache/vite-npm-4.4.9-e845c1bbf8-c511024cea.zip differ diff --git a/.yarn/cache/vue-eslint-parser-npm-9.3.0-f1933c0f13-9bdf375655.zip b/.yarn/cache/vue-eslint-parser-npm-9.3.1-a0feb51670-6d1476b45f.zip similarity index 76% rename from .yarn/cache/vue-eslint-parser-npm-9.3.0-f1933c0f13-9bdf375655.zip rename to .yarn/cache/vue-eslint-parser-npm-9.3.1-a0feb51670-6d1476b45f.zip index d33a8a100..82eadd144 100644 Binary files a/.yarn/cache/vue-eslint-parser-npm-9.3.0-f1933c0f13-9bdf375655.zip and b/.yarn/cache/vue-eslint-parser-npm-9.3.1-a0feb51670-6d1476b45f.zip differ diff --git a/.yarn/cache/vue-router-npm-4.2.2-56d5f442c5-4181b3776a.zip b/.yarn/cache/vue-router-npm-4.2.2-56d5f442c5-4181b3776a.zip deleted file mode 100644 index 57bca9d09..000000000 Binary files a/.yarn/cache/vue-router-npm-4.2.2-56d5f442c5-4181b3776a.zip and /dev/null differ diff --git a/.yarn/cache/vue-router-npm-4.2.4-59b21f5c05-9fe1fc11b6.zip b/.yarn/cache/vue-router-npm-4.2.4-59b21f5c05-9fe1fc11b6.zip new file mode 100644 index 000000000..086d7230b Binary files /dev/null and b/.yarn/cache/vue-router-npm-4.2.4-59b21f5c05-9fe1fc11b6.zip differ diff --git a/.yarn/cache/which-typed-array-npm-1.1.11-f37f0cefe2-711ffc8ef8.zip b/.yarn/cache/which-typed-array-npm-1.1.11-f37f0cefe2-711ffc8ef8.zip new file mode 100644 index 000000000..d9fa5911e Binary files /dev/null and b/.yarn/cache/which-typed-array-npm-1.1.11-f37f0cefe2-711ffc8ef8.zip differ diff --git a/.yarn/cache/word-wrap-npm-1.2.3-7fb15ab002-30b48f91fc.zip b/.yarn/cache/word-wrap-npm-1.2.3-7fb15ab002-30b48f91fc.zip deleted file mode 100644 index 518977eb8..000000000 Binary files a/.yarn/cache/word-wrap-npm-1.2.3-7fb15ab002-30b48f91fc.zip and /dev/null differ diff --git a/.yarn/cache/yargs-npm-16.2.0-547873d425-b14afbb51e.zip b/.yarn/cache/yargs-npm-16.2.0-547873d425-b14afbb51e.zip deleted file mode 100644 index d11c27d51..000000000 Binary files a/.yarn/cache/yargs-npm-16.2.0-547873d425-b14afbb51e.zip and /dev/null differ diff --git a/.yarn/cache/yargs-npm-17.7.2-80b62638e1-73b572e863.zip b/.yarn/cache/yargs-npm-17.7.2-80b62638e1-73b572e863.zip new file mode 100644 index 000000000..54c49dc9c Binary files /dev/null and b/.yarn/cache/yargs-npm-17.7.2-80b62638e1-73b572e863.zip differ diff --git a/.yarn/cache/yargs-parser-npm-20.2.9-a1d19e598d-8bb69015f2.zip b/.yarn/cache/yargs-parser-npm-20.2.9-a1d19e598d-8bb69015f2.zip deleted file mode 100644 index f230038cf..000000000 Binary files a/.yarn/cache/yargs-parser-npm-20.2.9-a1d19e598d-8bb69015f2.zip and /dev/null differ diff --git a/.yarn/cache/yargs-parser-npm-21.1.1-8fdc003314-ed2d96a616.zip b/.yarn/cache/yargs-parser-npm-21.1.1-8fdc003314-ed2d96a616.zip new file mode 100644 index 000000000..d68ba748e Binary files /dev/null and b/.yarn/cache/yargs-parser-npm-21.1.1-8fdc003314-ed2d96a616.zip differ diff --git a/README.md b/README.md index 7a46bd9cd..20c9f3e59 100644 --- a/README.md +++ b/README.md @@ -83,7 +83,7 @@ If VS Code is not available to you, in your clone, type `cd docker; ./run` Once the containers are started, run the tests to make sure your checkout is a good place to start from (all tests should pass - if any fail, ask for help at tools-develop@). Inside the app container's shell type: ```sh -ietf/manage.py test --settings=settings_postgrestest +ietf/manage.py test --settings=settings_test ``` Note that we recently moved the datatracker onto PostgreSQL - you may still find older documentation that suggests testing with settings_sqlitetest. That will no longer work. @@ -228,7 +228,7 @@ before activating a new release. From a datatracker container, run the command: ```sh -./ietf/manage.py test --settings=settings_postgrestest +./ietf/manage.py test --settings=settings_test ``` > You can limit the run to specific tests using the `--pattern` argument. diff --git a/client/App.vue b/client/App.vue index 0664525ca..2a6c5e6e9 100644 --- a/client/App.vue +++ b/client/App.vue @@ -26,6 +26,21 @@ const siteStore = useSiteStore() const appContainer = ref(null) +// -------------------------------------------------------------------- +// Set user theme +// -------------------------------------------------------------------- + +const desiredTheme = window.localStorage?.getItem('theme') +if (desiredTheme === 'dark') { + siteStore.theme = 'dark' +} else if (desiredTheme === 'light') { + siteStore.theme = 'light' +} else if (window.matchMedia("(prefers-color-scheme: dark)").matches) { + siteStore.theme = 'dark' +} else { + siteStore.theme = 'light' +} + // -------------------------------------------------------------------- // Handle browser resize // -------------------------------------------------------------------- diff --git a/client/agenda/Agenda.vue b/client/agenda/Agenda.vue index 1cd1042f4..0212fc8cb 100644 --- a/client/agenda/Agenda.vue +++ b/client/agenda/Agenda.vue @@ -533,6 +533,13 @@ onMounted(() => { color: $blue-700; position: relative; + @at-root .theme-dark & { + border: 1px solid $blue-800; + background: linear-gradient(to top, lighten($blue-900, 2%), lighten($blue-900, 5%)); + color: $blue-100; + box-shadow: inset 0 0 0 1px #000; + } + > button { position: absolute; top: 15px; diff --git a/client/agenda/AgendaDetailsModal.vue b/client/agenda/AgendaDetailsModal.vue index 0a140b8c4..037e32f9c 100644 --- a/client/agenda/AgendaDetailsModal.vue +++ b/client/agenda/AgendaDetailsModal.vue @@ -282,6 +282,10 @@ async function fetchSessionMaterials () { .bi { font-size: 20px; color: $indigo; + + @at-root .theme-dark & { + color: $indigo-300; + } } .detail-header { @@ -343,6 +347,11 @@ async function fetchSessionMaterials () { border-radius: 5px; font-weight: 500; + @at-root .theme-dark & { + background-color: $gray-900; + border-color: $gray-700; + } + a { cursor: pointer; @@ -365,6 +374,11 @@ async function fetchSessionMaterials () { margin-top: 12px; border-radius: 5px; + @at-root .theme-dark & { + background-color: $gray-900; + border-color: $gray-700; + } + .bi { color: $blue; } @@ -377,6 +391,10 @@ async function fetchSessionMaterials () { border: none; border-radius: 5px; display: block; + + @at-root .theme-dark & { + background-color: $gray-900; + } } } diff --git a/client/agenda/AgendaFilter.vue b/client/agenda/AgendaFilter.vue index 629096211..b1f106570 100644 --- a/client/agenda/AgendaFilter.vue +++ b/client/agenda/AgendaFilter.vue @@ -217,30 +217,58 @@ function toggleFilterGroup (key) { padding: 5px; border-radius: 10px; + @at-root .theme-dark & { + background-color: $gray-800; + } + &:nth-child(2) { background-color: $blue-100; + @at-root .theme-dark & { + background-color: $gray-800; + } + .agenda-personalize-areamain { button { color: $blue-600; + + @at-root .theme-dark & { + color: $blue-100; + } } } .agenda-personalize-groups { background-color: lighten($blue-100, 7%); + + @at-root .theme-dark & { + background-color: $gray-700; + } } } &:nth-child(3) { background-color: $orange-100; + @at-root .theme-dark & { + background-color: $gray-800; + } + .agenda-personalize-areamain { button { color: $orange-600; + + @at-root .theme-dark & { + color: $orange-100; + } } } .agenda-personalize-groups { background-color: lighten($orange-100, 7%); + + @at-root .theme-dark & { + background-color: $gray-700; + } } } @@ -276,6 +304,12 @@ function toggleFilterGroup (key) { transition: background-color .5s ease; position: relative; + @at-root .theme-dark & { + background-color: $gray-600; + border-color: $gray-700; + color: #FFF; + } + > .bi { margin-right: .5rem; } @@ -310,6 +344,10 @@ function toggleFilterGroup (key) { flex: 1; display: flex; flex-wrap: wrap; + + @at-root .theme-dark & { + background-color: $gray-700; + } } &-group { @@ -324,6 +362,12 @@ function toggleFilterGroup (key) { color: $gray-600; margin-right: 0px; + @at-root .theme-dark & { + background-color: $gray-600; + border-color: $gray-700; + color: #FFF; + } + @media screen and (max-width: $bs5-break-sm) { font-size: .9em; } diff --git a/client/agenda/AgendaQuickAccess.vue b/client/agenda/AgendaQuickAccess.vue index ae23edcab..5952e6de1 100644 --- a/client/agenda/AgendaQuickAccess.vue +++ b/client/agenda/AgendaQuickAccess.vue @@ -219,6 +219,9 @@ function scrollToNow (ev) { </script> <style lang="scss"> +@import "bootstrap/scss/functions"; +@import "bootstrap/scss/variables"; + .agenda-quickaccess { width: 300px; @@ -252,6 +255,10 @@ function scrollToNow (ev) { text-align: center; margin-top: 12px; + @at-root .theme-dark & { + border-color: $secondary; + } + @media screen and (max-width: 1350px) { flex-direction: column; } @@ -267,6 +274,11 @@ function scrollToNow (ev) { background-color: #FFF; transform: translate(-50%, 0); text-transform: uppercase; + + @at-root .theme-dark & { + background-color: $gray-900; + color: #FFF; + } } button { diff --git a/client/agenda/AgendaScheduleList.vue b/client/agenda/AgendaScheduleList.vue index e31fe9c82..74d07ac5b 100644 --- a/client/agenda/AgendaScheduleList.vue +++ b/client/agenda/AgendaScheduleList.vue @@ -684,6 +684,10 @@ onBeforeUnmount(() => { border-radius: 5px; border-collapse: separate; border-spacing: 0; + + @at-root .theme-dark & { + border-color: #000; + } } // -> Table HEADER @@ -703,6 +707,11 @@ onBeforeUnmount(() => { font-weight: 600; border-right: 1px solid #FFF; + @at-root .theme-dark & { + border-bottom-color: #000; + border-right-color: #000; + } + @media screen and (max-width: $bs5-break-md) { font-size: .8em; padding: 0 6px; @@ -757,6 +766,10 @@ onBeforeUnmount(() => { tr:nth-child(odd) td { background-color: #F9F9F9; + + @at-root .theme-dark & { + background-color: darken($gray-900, 5%); + } } &-display-noresult > td { @@ -766,6 +779,12 @@ onBeforeUnmount(() => { color: $gray-800; text-shadow: 1px 1px 0 #FFF; font-weight: 600; + + @at-root .theme-dark & { + background: linear-gradient(to bottom, $gray-900, $gray-800); + color: #FFF; + text-shadow: 1px 1px 0 $gray-900; + } } &-display-day > td { @@ -777,6 +796,10 @@ onBeforeUnmount(() => { font-weight: 600; scroll-margin-top: 25px; + @at-root .theme-dark & { + border-bottom-color: #000; + } + @media screen and (max-width: $bs5-break-md) { font-size: .9em; } @@ -789,6 +812,11 @@ onBeforeUnmount(() => { padding: 0 12px; color: #333; + @at-root .theme-dark & { + background: linear-gradient(to top, lighten($blue-900, 8%), lighten($blue-900, 4%)) !important; + color: $blue-100; + } + @media screen and (max-width: $bs5-break-md) { padding: 0 6px; } @@ -796,12 +824,21 @@ onBeforeUnmount(() => { &.agenda-table-cell-ts { border-right: 1px solid $blue-200 !important; color: $blue-700; + + @at-root .theme-dark & { + border-right-color: $blue-700 !important; + color: $blue-200; + } } &.agenda-table-cell-name { color: $blue-700; font-weight: 600; + @at-root .theme-dark & { + color: $blue-200; + } + @media screen and (max-width: $bs5-break-md) { font-size: .9em; } @@ -813,6 +850,10 @@ onBeforeUnmount(() => { padding: 0 12px; color: #333; + @at-root .theme-dark & { + color: #FFF; + } + @media screen and (max-width: $bs5-break-md) { padding: 2px 6px; } @@ -821,6 +862,11 @@ onBeforeUnmount(() => { background-color: desaturate($blue-700, 50%) !important; border-bottom: 1px solid #FFF; padding-bottom: 2px; + + @at-root .theme-dark & { + background-color: $gray-800 !important; + border-bottom-color: #000; + } } &.agenda-table-cell-ts { @@ -829,6 +875,13 @@ onBeforeUnmount(() => { border-right: 1px solid $blue-200 !important; color: $blue-200; border-bottom: 1px solid #FFF; + + @at-root .theme-dark & { + background: linear-gradient(to right, rgba(lighten($blue-900, 8%), .1), lighten($blue-900, 5%)); + border-right-color: $blue-700 !important; + border-bottom-color: $blue-700; + color: $blue-700; + } } } @@ -837,6 +890,11 @@ onBeforeUnmount(() => { border-right: 1px solid $gray-300 !important; white-space: nowrap; + @at-root .theme-dark & { + color: $yellow-100; + border-right-color: $gray-700 !important; + } + @media screen and (max-width: 1300px) { font-size: .85rem; } @@ -880,6 +938,11 @@ onBeforeUnmount(() => { border-right: 1px solid $gray-300 !important; white-space: nowrap; + @at-root .theme-dark & { + color: $gray-400; + border-right-color: $gray-700 !important; + } + @media screen and (max-width: $bs5-break-md) { font-size: .7rem; word-break: break-all; @@ -906,6 +969,14 @@ onBeforeUnmount(() => { border-top-left-radius: 0; border-bottom-left-radius: 0; margin-right: 6px; + + @at-root .theme-dark & { + background-color: $gray-700; + border-bottom-color: $gray-600; + border-right-color: $gray-600; + color: $gray-200; + text-shadow: 1px 1px $gray-800; + } } } @@ -937,6 +1008,10 @@ onBeforeUnmount(() => { } &.bi-green { color: $green-500; + + @at-root .theme-dark & { + color: $green-300; + } } &.bi-pink { color: $pink-500; @@ -986,6 +1061,11 @@ onBeforeUnmount(() => { padding: 2px 3px; transition: background-color .6s ease; + @at-root .theme-dark & { + background-color: rgba(0, 0, 0, .2); + color: $gray-200; + } + &:hover, &:focus { color: $blue; } @@ -994,6 +1074,10 @@ onBeforeUnmount(() => { color: $red-500; background-color: rgba($red-500, .1); + @at-root .theme-dark & { + color: $red-400; + } + &:hover, &:focus { background-color: rgba($red-500, .3); } @@ -1002,6 +1086,10 @@ onBeforeUnmount(() => { color: $orange-700; background-color: rgba($orange-500, .1); + @at-root .theme-dark & { + color: $orange-400; + } + &:hover, &:focus { background-color: rgba($orange-500, .3); } @@ -1010,6 +1098,10 @@ onBeforeUnmount(() => { color: $blue-600; background-color: rgba($blue-300, .1); + @at-root .theme-dark & { + color: $blue-300; + } + &:hover, &:focus { background-color: rgba($blue-300, .3); } @@ -1018,6 +1110,10 @@ onBeforeUnmount(() => { color: $green-500; background-color: rgba($green-300, .1); + @at-root .theme-dark & { + color: $green-300; + } + &:hover, &:focus { background-color: rgba($green-300, .3); } @@ -1026,6 +1122,10 @@ onBeforeUnmount(() => { color: $purple-500; background-color: rgba($purple-400, .1); + @at-root .theme-dark & { + color: $purple-300; + } + &:hover, &:focus { background-color: rgba($purple-400, .3); } @@ -1034,6 +1134,10 @@ onBeforeUnmount(() => { color: $pink-500; background-color: rgba($pink-400, .1); + @at-root .theme-dark & { + color: $pink-400; + } + &:hover, &:focus { background-color: rgba($pink-400, .3); } @@ -1042,6 +1146,10 @@ onBeforeUnmount(() => { color: $teal-600; background-color: rgba($teal-400, .1); + @at-root .theme-dark & { + color: $teal-300; + } + &:hover, &:focus { background-color: rgba($teal-400, .3); } @@ -1068,6 +1176,10 @@ onBeforeUnmount(() => { text-align: right; white-space: nowrap; + @at-root .theme-dark & { + border-right-color: $gray-700 !important; + } + @media screen and (max-width: 1300px) { font-size: .9rem; } @@ -1093,6 +1205,15 @@ onBeforeUnmount(() => { border-bottom: none; } + &.agenda-table-cell-ts.is-session-event { + @at-root .theme-dark & { + background: transparent; + color: $red-300; + border-top: 1px solid darken($red-100, 5%); + border-bottom-color: darken($red-100, 5%); + } + } + &.agenda-table-cell-room { border-right: 1px solid darken($red-100, 5%) !important; } @@ -1111,6 +1232,15 @@ onBeforeUnmount(() => { border-bottom: none; } + &.agenda-table-cell-ts.is-session-event { + @at-root .theme-dark & { + background: transparent; + color: $orange-300; + border-top: 1px solid darken($orange-100, 5%); + border-bottom-color: darken($orange-100, 5%); + } + } + &.agenda-table-cell-room { border-right: 1px solid darken($orange-100, 5%) !important; } @@ -1124,10 +1254,21 @@ onBeforeUnmount(() => { border-top: 1px solid darken($indigo-100, 5%); border-bottom: 1px solid darken($indigo-100, 5%); + @at-root .theme-dark & { + color: $indigo-100; + // border-bottom-color: #000; + } + &.agenda-table-cell-ts { background: linear-gradient(to right, lighten($indigo-100, 8%), lighten($indigo-100, 5%)); color: $indigo-700; border-right: 1px solid $indigo-100 !important; + + @at-root .theme-dark & { + background: rgba($indigo, .1) !important; + color: $indigo-100; + border-right-color: $indigo-500 !important; + } } &.agenda-table-cell-room { @@ -1137,10 +1278,18 @@ onBeforeUnmount(() => { &.agenda-table-cell-name { color: $indigo-700; font-style: italic; + + @at-root .theme-dark & { + color: $indigo-200; + } } &.agenda-table-cell-links { background: linear-gradient(to right, lighten($indigo-100, 5%), lighten($indigo-100, 8%)); + + @at-root .theme-dark & { + background: rgba($indigo, .1) !important; + } } } &-type-plenary td { @@ -1149,9 +1298,19 @@ onBeforeUnmount(() => { border-top: 1px solid darken($teal-100, 5%); border-bottom: 1px solid darken($teal-100, 5%); + @at-root .theme-dark & { + background: rgba($teal, .15) !important; + color: $teal-100; + border-bottom: 1px solid darken($teal-600, 5%); + } + &.agenda-table-cell-ts { background: linear-gradient(to right, lighten($teal-100, 8%), lighten($teal-100, 2%)); border-right: 1px solid $teal-200 !important; + + @at-root .theme-dark & { + border-right-color: $teal-700 !important; + } } &.agenda-table-cell-room { @@ -1161,10 +1320,18 @@ onBeforeUnmount(() => { &.agenda-table-cell-name { font-weight: 600; color: $teal-700; + + @at-root .theme-dark & { + color: $teal-200; + } } &.agenda-table-cell-links { background: linear-gradient(to right, rgba(lighten($teal, 54%), 0), lighten($teal, 54%)); + + @at-root .theme-dark & { + background: rgba($teal, .15) !important; + } } } diff --git a/client/agenda/AgendaSettings.vue b/client/agenda/AgendaSettings.vue index 41cd226b6..b074bc324 100644 --- a/client/agenda/AgendaSettings.vue +++ b/client/agenda/AgendaSettings.vue @@ -457,6 +457,14 @@ onMounted(() => { font-size: .8rem; color: $gray-700; text-shadow: 1px 1px 0 #FFF; + + @at-root .theme-dark & { + background-color: $gray-900; + text-shadow: none; + border-bottom-color: $gray-700; + border-right-color: $gray-700; + color: #FFF; + } } &-calcoffset { diff --git a/client/agenda/FloorPlan.vue b/client/agenda/FloorPlan.vue index 3b242eca3..eccd59aea 100644 --- a/client/agenda/FloorPlan.vue +++ b/client/agenda/FloorPlan.vue @@ -258,6 +258,11 @@ onMounted(() => { border-radius: 5px; font-weight: 500; + @at-root .theme-dark & { + background-color: darken($gray-900, 5%); + border-color: $gray-700; + } + a { cursor: pointer; diff --git a/client/agenda/agenda.scss b/client/agenda/agenda.scss index 6d5cd634b..e3e46d14f 100644 --- a/client/agenda/agenda.scss +++ b/client/agenda/agenda.scss @@ -10,6 +10,10 @@ justify-content: space-between; align-items: center; + @at-root .theme-dark & { + color: $gray-300; + } + @media screen and (max-width: $bs5-break-sm) { justify-content: center; @@ -25,6 +29,10 @@ -webkit-background-clip: text; -webkit-text-fill-color: transparent; box-decoration-break: clone; + + @at-root .theme-dark & { + background-image: linear-gradient(220deg, $yellow-200 20%, $orange-400 70%); + } } } diff --git a/client/components/n-theme.vue b/client/components/n-theme.vue index 9fff81671..b55c9772b 100644 --- a/client/components/n-theme.vue +++ b/client/components/n-theme.vue @@ -1,24 +1,45 @@ <template lang='pug'> -n-config-provider(:theme-overrides='themeOverrides') +n-config-provider( + :theme='currentTheme' + :theme-overrides='state.themeOverrides' + ) slot </template> -<script> -import { NConfigProvider } from 'naive-ui' +<script setup> +import { computed, reactive, watch } from 'vue' +import { darkTheme, NConfigProvider } from 'naive-ui' -export default { - components: { - NConfigProvider - }, - data () { - return { - themeOverrides: { - common: { - primaryColor: '#0d6efd', - primaryColorHover: '#0d6efd' - } - } +import { useSiteStore } from '../shared/store' + +// STORES + +const siteStore = useSiteStore() + +// DATA + +const state = reactive({ + themeOverrides: { + common: { + primaryColor: '#0d6efd', + primaryColorHover: '#0d6efd' } } -} +}) + +// COMPUTED + +const currentTheme = computed(() => { + return siteStore.theme === 'dark' ? darkTheme : null +}) + +// APPLY BODY THEME CLASS + +watch(() => siteStore.theme, (newValue) => { + if (newValue === 'dark') { + document.body.classList.add('theme-dark') + } else { + document.body.classList.remove('theme-dark') + } +}, { immediate: true }) </script> diff --git a/client/shared/store.js b/client/shared/store.js index 389d5e5a8..5dd57f2c8 100644 --- a/client/shared/store.js +++ b/client/shared/store.js @@ -6,6 +6,7 @@ export const useSiteStore = defineStore('site', { criticalErrorLink: null, criticalErrorLinkText: null, isMobile: /Mobi/i.test(navigator.userAgent), - viewport: Math.round(window.innerWidth) + viewport: Math.round(window.innerWidth), + theme: null }) }) diff --git a/dev/coverage-action/package-lock.json b/dev/coverage-action/package-lock.json index 62922b342..8de5686e3 100644 --- a/dev/coverage-action/package-lock.json +++ b/dev/coverage-action/package-lock.json @@ -14,15 +14,24 @@ "chart.js": "3.5.1", "chartjs-node-canvas": "4.1.6", "lodash": "4.17.21", - "luxon": "3.3.0" + "luxon": "3.4.0" }, "devDependencies": { - "eslint": "8.43.0", + "eslint": "8.47.0", "eslint-config-standard": "17.1.0", - "eslint-plugin-import": "2.27.5", + "eslint-plugin-import": "2.28.1", "eslint-plugin-node": "11.1.0", "eslint-plugin-promise": "6.1.1", - "npm-check-updates": "16.10.13" + "npm-check-updates": "16.10.16" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, "node_modules/@actions/core": { @@ -79,23 +88,23 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.4.0.tgz", - "integrity": "sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.8.0.tgz", + "integrity": "sha512-JylOEEzDiOryeUnFbQz+oViCXS0KsvR1mvHkoMiu5+UiBvy+RYX7tzlIIIEstF/gVa2tj9AQXk3dgnxv6KxhFg==", "dev": 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==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", + "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.5.2", + "espree": "^9.6.0", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -111,20 +120,14 @@ } }, "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==", + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.48.0.tgz", + "integrity": "sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", - "dev": true - }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz", @@ -292,14 +295,13 @@ } }, "node_modules/@npmcli/git": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-4.0.3.tgz", - "integrity": "sha512-8cXNkDIbnXPVbhXMmQ7/bklCAjtmPaXfI9aEM4iH+xSuEHINLMHhlfESvVwdqmHJRJkR48vNJTSUvoF6GRPSFA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-4.1.0.tgz", + "integrity": "sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==", "dev": true, "dependencies": { "@npmcli/promise-spawn": "^6.0.0", "lru-cache": "^7.4.4", - "mkdirp": "^1.0.4", "npm-pick-manifest": "^8.0.0", "proc-log": "^3.0.0", "promise-inflight": "^1.0.1", @@ -321,9 +323,9 @@ } }, "node_modules/@npmcli/git/node_modules/which": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.0.tgz", - "integrity": "sha512-nla//68K9NU6yRiwDY/Q8aU6siKlSs64aEC7+IV56QoAuyQT2ovsJcgGYGyqMOmI/CGN1BOR6mM5EN0FBO+zyQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", + "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", "dev": true, "dependencies": { "isexe": "^2.0.0" @@ -351,20 +353,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@npmcli/move-file": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", - "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", - "deprecated": "This functionality has been moved to @npmcli/fs", - "dev": true, - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, "node_modules/@npmcli/node-gyp": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz", @@ -387,9 +375,9 @@ } }, "node_modules/@npmcli/promise-spawn/node_modules/which": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.0.tgz", - "integrity": "sha512-nla//68K9NU6yRiwDY/Q8aU6siKlSs64aEC7+IV56QoAuyQT2ovsJcgGYGyqMOmI/CGN1BOR6mM5EN0FBO+zyQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", + "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", "dev": true, "dependencies": { "isexe": "^2.0.0" @@ -402,9 +390,9 @@ } }, "node_modules/@npmcli/run-script": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-6.0.0.tgz", - "integrity": "sha512-ql+AbRur1TeOdl1FY+RAwGW9fcr4ZwiVKabdvm93mujGREVuVLbdkXRJDrkTXSdCjaxYydr1wlA2v67jxWG5BQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-6.0.2.tgz", + "integrity": "sha512-NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA==", "dev": true, "dependencies": { "@npmcli/node-gyp": "^3.0.0", @@ -418,9 +406,9 @@ } }, "node_modules/@npmcli/run-script/node_modules/which": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.0.tgz", - "integrity": "sha512-nla//68K9NU6yRiwDY/Q8aU6siKlSs64aEC7+IV56QoAuyQT2ovsJcgGYGyqMOmI/CGN1BOR6mM5EN0FBO+zyQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", + "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", "dev": true, "dependencies": { "isexe": "^2.0.0" @@ -584,11 +572,36 @@ "node": ">=12" } }, - "node_modules/@sigstore/protobuf-specs": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.1.0.tgz", - "integrity": "sha512-a31EnjuIDSX8IXBUib3cYLDRlPMU36AWX4xS8ysLaNu4ZzUesDiPt83pgrW2X1YLMe5L2HbDyaKK5BrL4cNKaQ==", + "node_modules/@sigstore/bundle": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-1.0.0.tgz", + "integrity": "sha512-yLvrWDOh6uMOUlFCTJIZEnwOT9Xte7NPXUqVexEKGSF5XtBAuSg5du0kn3dRR0p47a4ah10Y0mNt8+uyeQXrBQ==", "dev": true, + "dependencies": { + "@sigstore/protobuf-specs": "^0.2.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/protobuf-specs": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.2.0.tgz", + "integrity": "sha512-8ZhZKAVfXjIspDWwm3D3Kvj0ddbJ0HqDZ/pOs5cx88HpT8mVsotFrg7H1UMnXOuDHz6Zykwxn4mxG3QLuN+RUg==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/tuf": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-1.0.3.tgz", + "integrity": "sha512-2bRovzs0nJZFlCN3rXirE4gwxCn97JNjMmwpecqlbgV9WcxX7WRuIrgzx/X7Ib7MYRbyUTpBYE0s2x6AmZXnlg==", + "dev": true, + "dependencies": { + "@sigstore/protobuf-specs": "^0.2.0", + "tuf-js": "^1.1.7" + }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } @@ -626,13 +639,23 @@ "node": ">= 10" } }, - "node_modules/@tufjs/models": { + "node_modules/@tufjs/canonical-json": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-1.0.0.tgz", - "integrity": "sha512-RRMu4uMxWnZlxaIBxahSb2IssFZiu188sndesZflWOe1cA/qUqtemSIoBWbuVKPvvdktapImWNnKpBcc+VrCQw==", + "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-1.0.0.tgz", + "integrity": "sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@tufjs/models": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-1.0.4.tgz", + "integrity": "sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==", "dev": true, "dependencies": { - "minimatch": "^6.1.0" + "@tufjs/canonical-json": "1.0.0", + "minimatch": "^9.0.0" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -648,15 +671,15 @@ } }, "node_modules/@tufjs/models/node_modules/minimatch": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-6.2.0.tgz", - "integrity": "sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -671,7 +694,7 @@ "node_modules/@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, "node_modules/abbrev": { @@ -680,9 +703,9 @@ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, "node_modules/acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -850,6 +873,25 @@ "node": ">=8" } }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.2.tgz", + "integrity": "sha512-tb5thFFlUcp7NdNF6/MpDk/1r/4awWG1FIz3YqDf+/zJSTezBb+/5WViH41obXULHVpDzoiCLpJ/ZO9YbJMsdw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/array.prototype.flat": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", @@ -1041,21 +1083,20 @@ } }, "node_modules/cacache": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.0.4.tgz", - "integrity": "sha512-Z/nL3gU+zTUjz5pCA5vVjYM8pmaw2kxM7JEiE0fv3w77Wj+sFbi70CrBruUWH0uNcEdvLDixFpgA2JM4F4DBjA==", + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.1.3.tgz", + "integrity": "sha512-jAdjGxmPxZh0IipMdR7fK/4sDSrHMLUV0+GvVUsjwyGNKHsh79kW/otg+GkbXwl6Uzvy9wsvHOX4nUoWldeZMg==", "dev": true, "dependencies": { "@npmcli/fs": "^3.1.0", "fs-minipass": "^3.0.0", - "glob": "^8.0.1", + "glob": "^10.2.2", "lru-cache": "^7.7.1", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-collect": "^1.0.2", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", "ssri": "^10.0.0", "tar": "^6.1.11", "unique-filename": "^3.0.0" @@ -1074,31 +1115,34 @@ } }, "node_modules/cacache/node_modules/fs-minipass": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.1.tgz", - "integrity": "sha512-MhaJDcFRTuLidHrIttu0RDGyyXs/IYHVmlcxfLAEFIWjc1vdLAkdwT7Ace2u7DbitWC0toKMl5eJZRYNVreIMw==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.2.tgz", + "integrity": "sha512-2GAfyfoaCDRrM6jaOS3UsBts8yJ55VioXdWcOL7dK9zdAuKT71+WBA4ifnNYqVjYv+4SsPxjK0JT4yIIn4cA/g==", "dev": true, "dependencies": { - "minipass": "^4.0.0" + "minipass": "^5.0.0" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/cacache/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "version": "10.3.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.3.tgz", + "integrity": "sha512-92vPiMb/iqpmEgsOoIDvTjc50wf9CCCvMzsi6W0JLPeUKE8TWP1a73PgqSrqy7iAZxaSD1YdzU7QZR5LF51MJw==", "dev": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "foreground-child": "^3.1.0", + "jackspeak": "^2.0.3", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/cjs/src/bin.js" }, "engines": { - "node": ">=12" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -1114,21 +1158,24 @@ } }, "node_modules/cacache/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/cacache/node_modules/minipass": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.5.tgz", - "integrity": "sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "dev": true, "engines": { "node": ">=8" @@ -1718,27 +1765,27 @@ } }, "node_modules/eslint": { - "version": "8.43.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.43.0.tgz", - "integrity": "sha512-aaCpf2JqqKesMFGgmRPessmVKjcGXqdlAYLLC3THM8t5nBRZRQ+st5WM/hoJXkdioEXLLbXgclUpM0TXo5HX5Q==", + "version": "8.47.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.47.0.tgz", + "integrity": "sha512-spUQWrdPt+pRVP1TTJLmfRNJJHHZryFmptzcafwSvHsceV81djHOdnEeDmkdotZyLNjDhrOasNK8nikkoG1O8Q==", "dev": 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", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.2", + "@eslint/js": "^8.47.0", "@humanwhocodes/config-array": "^0.11.10", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", + "ajv": "^6.12.4", "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", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -1748,7 +1795,6 @@ "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", @@ -1758,9 +1804,8 @@ "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.1", + "optionator": "^0.9.3", "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" }, "bin": { @@ -1823,9 +1868,9 @@ } }, "node_modules/eslint-module-utils": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", - "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", "dev": true, "dependencies": { "debug": "^3.2.7" @@ -1868,26 +1913,28 @@ } }, "node_modules/eslint-plugin-import": { - "version": "2.27.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", - "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==", + "version": "2.28.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz", + "integrity": "sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==", "dev": true, "dependencies": { "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-import-resolver-node": "^0.3.7", - "eslint-module-utils": "^2.7.4", + "eslint-module-utils": "^2.8.0", "has": "^1.0.3", - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "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.1", - "semver": "^6.3.0", - "tsconfig-paths": "^3.14.1" + "semver": "^6.3.1", + "tsconfig-paths": "^3.14.2" }, "engines": { "node": ">=4" @@ -1918,9 +1965,9 @@ } }, "node_modules/eslint-plugin-import/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -2069,9 +2116,9 @@ } }, "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==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", @@ -2109,9 +2156,9 @@ } }, "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==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -2133,12 +2180,12 @@ } }, "node_modules/espree": { - "version": "9.5.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz", - "integrity": "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, "dependencies": { - "acorn": "^8.8.0", + "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.4.1" }, @@ -2191,6 +2238,12 @@ "node": ">=0.10.0" } }, + "node_modules/exponential-backoff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", + "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==", + "dev": true + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -2222,7 +2275,7 @@ "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, "node_modules/fast-memoize": { @@ -2423,13 +2476,14 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", - "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", "dev": true, "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", + "has-proto": "^1.0.1", "has-symbols": "^1.0.3" }, "funding": { @@ -2532,9 +2586,9 @@ } }, "node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "version": "13.21.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.21.0.tgz", + "integrity": "sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -2852,12 +2906,12 @@ } }, "node_modules/ignore-walk": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.1.tgz", - "integrity": "sha512-/c8MxUAqpRccq+LyDOecwF+9KqajueJHh8fz7g3YqjMZt+NSfJzx05zrKiXwa2sKwFCzaiZ5qUVfRj0pmxixEA==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.3.tgz", + "integrity": "sha512-C7FfFoTA+bI10qfeydT8aZbvr91vAEU+2W5BZUlzPec47oNb07SsOfwYrtxuvOYdUApPP/Qlh4DtAO51Ekk2QA==", "dev": true, "dependencies": { - "minimatch": "^6.1.6" + "minimatch": "^9.0.0" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -2873,15 +2927,15 @@ } }, "node_modules/ignore-walk/node_modules/minimatch": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-6.2.0.tgz", - "integrity": "sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -2930,12 +2984,6 @@ "node": ">=8" } }, - "node_modules/infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true - }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -2951,9 +2999,9 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "node_modules/ini": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.0.tgz", - "integrity": "sha512-HLR38RSF2iulAzc3I/sma4CoYxQP844rPYCNfzGDOHqa/YqVlwuuZgBx6M50/X8dKgzk0cm1qRg3+47mK2N+cQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz", + "integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==", "dev": true, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -3046,9 +3094,9 @@ } }, "node_modules/is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", "dev": true, "dependencies": { "has": "^1.0.3" @@ -3502,9 +3550,9 @@ } }, "node_modules/luxon": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.3.0.tgz", - "integrity": "sha512-An0UCfG/rSiqtAIiBPO0Y9/zAnHUZxAMiCpTd5h2smgsj7GGmcenvrvww2cqNA8/4A5ZrD1gJpHN2mIHZQF+Mg==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.4.0.tgz", + "integrity": "sha512-7eDo4Pt7aGhoCheGFIuq4Xa2fJm4ZpmldpGhjTYBNUYNCN6TIEP6v7chwwwt3KRp7YR+rghbfvjyo3V5y9hgBw==", "engines": { "node": ">=12" } @@ -3532,100 +3580,29 @@ } }, "node_modules/make-fetch-happen": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", - "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", + "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", "dev": true, "dependencies": { "agentkeepalive": "^4.2.1", - "cacache": "^16.1.0", - "http-cache-semantics": "^4.1.0", + "cacache": "^17.0.0", + "http-cache-semantics": "^4.1.1", "http-proxy-agent": "^5.0.0", "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", + "minipass": "^5.0.0", + "minipass-fetch": "^3.0.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "negotiator": "^0.6.3", "promise-retry": "^2.0.1", "socks-proxy-agent": "^7.0.0", - "ssri": "^9.0.0" + "ssri": "^10.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/make-fetch-happen/node_modules/@npmcli/fs": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", - "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", - "dev": true, - "dependencies": { - "@gar/promisify": "^1.1.3", - "semver": "^7.3.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/make-fetch-happen/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/make-fetch-happen/node_modules/cacache": { - "version": "16.1.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", - "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", - "dev": true, - "dependencies": { - "@npmcli/fs": "^2.1.0", - "@npmcli/move-file": "^2.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "glob": "^8.0.1", - "infer-owner": "^1.0.4", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", - "tar": "^6.1.11", - "unique-filename": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/make-fetch-happen/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/make-fetch-happen/node_modules/lru-cache": { @@ -3637,52 +3614,13 @@ "node": ">=12" } }, - "node_modules/make-fetch-happen/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "node_modules/make-fetch-happen/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, "engines": { - "node": ">=10" - } - }, - "node_modules/make-fetch-happen/node_modules/ssri": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", - "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", - "dev": true, - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/make-fetch-happen/node_modules/unique-filename": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", - "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", - "dev": true, - "dependencies": { - "unique-slug": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/make-fetch-happen/node_modules/unique-slug": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", - "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=8" } }, "node_modules/merge2": { @@ -3759,22 +3697,31 @@ } }, "node_modules/minipass-fetch": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", - "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.3.tgz", + "integrity": "sha512-n5ITsTkDqYkYJZjcRWzZt9qnZKCT7nKCosJhHoj7S7zD+BP4jVbWs+odsniw5TA3E0sLomhTKOKjF86wf11PuQ==", "dev": true, "dependencies": { - "minipass": "^3.1.6", + "minipass": "^5.0.0", "minipass-sized": "^1.0.3", "minizlib": "^2.1.2" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" }, "optionalDependencies": { "encoding": "^0.1.13" } }, + "node_modules/minipass-fetch/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/minipass-flush": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", @@ -3889,15 +3836,16 @@ } }, "node_modules/node-gyp": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.3.1.tgz", - "integrity": "sha512-4Q16ZCqq3g8awk6UplT7AuxQ35XN4R/yf/+wSAwcBUAjg7l58RTactWaP8fIDTi0FzI7YcVLujwExakZlfWkXg==", + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.4.0.tgz", + "integrity": "sha512-dMXsYP6gc9rRbejLXmTbVRYjAHw7ppswsKyMxuxJxxOHzluIO1rGp9TOQgjFJ+2MCqcOcQTOPB/8Xwhr+7s4Eg==", "dev": true, "dependencies": { "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", "glob": "^7.1.4", "graceful-fs": "^4.2.6", - "make-fetch-happen": "^10.0.3", + "make-fetch-happen": "^11.0.3", "nopt": "^6.0.0", "npmlog": "^6.0.0", "rimraf": "^3.0.2", @@ -4049,12 +3997,12 @@ } }, "node_modules/npm-check-updates": { - "version": "16.10.13", - "resolved": "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-16.10.13.tgz", - "integrity": "sha512-ZsWrtHnaMkcxAaCtDFEr8i7jgM0Bz2AYsnsJlmxISgltG8ie43bWC6G9icxFKfYSLeJJtcj/Yw1Mq5f8GL2F3g==", + "version": "16.10.16", + "resolved": "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-16.10.16.tgz", + "integrity": "sha512-d8mNYce/l8o5RHPE5ZUp2P1zj9poI7KWQCh5AsTIP3EhicONEhc63mLQQv4/nkCsMb3wCrikx6YOo4BOwN4+1w==", "dev": true, "dependencies": { - "chalk": "^5.2.0", + "chalk": "^5.3.0", "cli-table3": "^0.6.3", "commander": "^10.0.0", "fast-memoize": "^2.5.2", @@ -4063,25 +4011,25 @@ "get-stdin": "^8.0.0", "globby": "^11.0.4", "hosted-git-info": "^5.1.0", - "ini": "^4.0.0", + "ini": "^4.1.1", "js-yaml": "^4.1.0", "json-parse-helpfulerror": "^1.0.3", "jsonlines": "^0.1.1", "lodash": "^4.17.21", - "minimatch": "^9.0.0", + "minimatch": "^9.0.3", "p-map": "^4.0.0", - "pacote": "15.1.1", + "pacote": "15.2.0", "parse-github-url": "^1.0.2", "progress": "^2.0.3", "prompts-ncu": "^3.0.0", - "rc-config-loader": "^4.1.2", + "rc-config-loader": "^4.1.3", "remote-git-tags": "^3.0.0", - "rimraf": "^5.0.0", - "semver": "^7.4.0", + "rimraf": "^5.0.1", + "semver": "^7.5.3", "semver-utils": "^1.1.4", "source-map-support": "^0.5.21", "spawn-please": "^2.0.1", - "strip-json-comments": "^5.0.0", + "strip-json-comments": "^5.0.1", "untildify": "^4.0.0", "update-notifier": "^6.0.2" }, @@ -4103,9 +4051,9 @@ } }, "node_modules/npm-check-updates/node_modules/chalk": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", - "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", "dev": true, "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" @@ -4137,9 +4085,9 @@ } }, "node_modules/npm-check-updates/node_modules/minimatch": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz", - "integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -4179,9 +4127,9 @@ } }, "node_modules/npm-check-updates/node_modules/strip-json-comments": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-5.0.0.tgz", - "integrity": "sha512-V1LGY4UUo0jgwC+ELQ2BNWfPa17TIuwBLg+j1AA/9RPzKINl1lhxVEu2r+ZTTO8aetIsUzE5Qj6LMSBkoGYKKw==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-5.0.1.tgz", + "integrity": "sha512-0fk9zBqO67Nq5M/m45qHCJxylV/DhBlIOVExqgOMiCCrzrhU6tCibRXNqE3jwJLftzE9SNuZtYbpzcO+i9FiKw==", "dev": true, "engines": { "node": ">=14.16" @@ -4191,9 +4139,9 @@ } }, "node_modules/npm-install-checks": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.0.0.tgz", - "integrity": "sha512-SBU9oFglRVZnfElwAtF14NivyulDqF1VKqqwNsFW9HDcbHMAPHpRSsVFgKuwFGq/hVvWZExz62Th0kvxn/XE7Q==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.1.1.tgz", + "integrity": "sha512-dH3GmQL4vsPtld59cOn8uY0iOqRmqKvV+DLGwNXV/Q7MDgD2QfOADWd/mFXcIE5LVhYYGjA3baz6W9JneqnuCw==", "dev": true, "dependencies": { "semver": "^7.1.1" @@ -4203,9 +4151,9 @@ } }, "node_modules/npm-normalize-package-bin": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.0.tgz", - "integrity": "sha512-g+DPQSkusnk7HYXr75NtzkIP4+N81i3RPsGFidF3DzHd9MT9wWngmqoeg/fnHFz5MNdtG4w03s+QnhewSLTT2Q==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", + "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", "dev": true, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -4260,9 +4208,9 @@ } }, "node_modules/npm-pick-manifest": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-8.0.1.tgz", - "integrity": "sha512-mRtvlBjTsJvfCCdmPtiu2bdlx8d/KXtF7yNXNWe7G0Z36qWA9Ny5zXsI2PfBZEv7SXgoxTmNaTzGSbbzDZChoA==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-8.0.2.tgz", + "integrity": "sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg==", "dev": true, "dependencies": { "npm-install-checks": "^6.0.0", @@ -4275,13 +4223,13 @@ } }, "node_modules/npm-registry-fetch": { - "version": "14.0.3", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-14.0.3.tgz", - "integrity": "sha512-YaeRbVNpnWvsGOjX2wk5s85XJ7l1qQBGAp724h8e2CZFFhMSuw9enom7K1mWVUtvXO1uUSFIAPofQK0pPN0ZcA==", + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-14.0.5.tgz", + "integrity": "sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==", "dev": true, "dependencies": { "make-fetch-happen": "^11.0.0", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-fetch": "^3.0.0", "minipass-json-stream": "^1.0.1", "minizlib": "^2.1.2", @@ -4292,67 +4240,15 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm-registry-fetch/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/npm-registry-fetch/node_modules/make-fetch-happen": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.0.3.tgz", - "integrity": "sha512-oPLh5m10lRNNZDjJ2kP8UpboUx2uFXVaVweVe/lWut4iHWcQEmfqSVJt2ihZsFI8HbpwyyocaXbCAWf0g1ukIA==", - "dev": true, - "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^4.0.0", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^10.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/npm-registry-fetch/node_modules/minipass": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.5.tgz", - "integrity": "sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "dev": true, "engines": { "node": ">=8" } }, - "node_modules/npm-registry-fetch/node_modules/minipass-fetch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.1.tgz", - "integrity": "sha512-t9/wowtf7DYkwz8cfMSt0rMwiyNIBXf5CKZ3S5ZMqRqMYT0oLTp0x1WorMI9WTwvaPg21r1JbFxJMum8JrLGfw==", - "dev": true, - "dependencies": { - "minipass": "^4.0.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, "node_modules/npmlog": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", @@ -4408,6 +4304,35 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/object.fromentries": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", + "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.0.tgz", + "integrity": "sha512-70MWG6NfRH9GnbZOikuhPPYzpUpof9iW2J9E4dW7FXTqPNb6rllE6u39SKwwiNh8lCwX3DDb5OgcKGiEBrTTyw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.21.2", + "get-intrinsic": "^1.2.1" + } + }, "node_modules/object.values": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", @@ -4434,17 +4359,17 @@ } }, "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", "dev": true, "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", "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" + "type-check": "^0.4.0" }, "engines": { "node": ">= 0.8.0" @@ -4523,9 +4448,9 @@ } }, "node_modules/pacote": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-15.1.1.tgz", - "integrity": "sha512-eeqEe77QrA6auZxNHIp+1TzHQ0HBKf5V6c8zcaYZ134EJe1lCi+fjXATkNiEEfbG+e50nu02GLvUtmZcGOYabQ==", + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-15.2.0.tgz", + "integrity": "sha512-rJVZeIwHTUta23sIZgEIM62WYwbmGbThdbnkt81ravBplQv+HjyroqnLRNH2+sLJHcGZmLRmhPwACqhfTcOmnA==", "dev": true, "dependencies": { "@npmcli/git": "^4.0.0", @@ -4534,7 +4459,7 @@ "@npmcli/run-script": "^6.0.0", "cacache": "^17.0.0", "fs-minipass": "^3.0.0", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "npm-package-arg": "^10.0.0", "npm-packlist": "^7.0.0", "npm-pick-manifest": "^8.0.0", @@ -4543,7 +4468,7 @@ "promise-retry": "^2.0.1", "read-package-json": "^6.0.0", "read-package-json-fast": "^3.0.0", - "sigstore": "^1.0.0", + "sigstore": "^1.3.0", "ssri": "^10.0.0", "tar": "^6.1.11" }, @@ -4555,21 +4480,21 @@ } }, "node_modules/pacote/node_modules/fs-minipass": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.1.tgz", - "integrity": "sha512-MhaJDcFRTuLidHrIttu0RDGyyXs/IYHVmlcxfLAEFIWjc1vdLAkdwT7Ace2u7DbitWC0toKMl5eJZRYNVreIMw==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.2.tgz", + "integrity": "sha512-2GAfyfoaCDRrM6jaOS3UsBts8yJ55VioXdWcOL7dK9zdAuKT71+WBA4ifnNYqVjYv+4SsPxjK0JT4yIIn4cA/g==", "dev": true, "dependencies": { - "minipass": "^4.0.0" + "minipass": "^5.0.0" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/pacote/node_modules/minipass": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.5.tgz", - "integrity": "sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "dev": true, "engines": { "node": ">=8" @@ -4632,13 +4557,13 @@ "dev": true }, "node_modules/path-scurry": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.9.2.tgz", - "integrity": "sha512-qSDLy2aGFPm8i4rsbHd4MNyTcrzHFsLQykrtbuGRknZZCBBVXSv2tSCDN2Cg6Rt/GFRw8GoW9y9Ecw5rIPG1sg==", + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", "dev": true, "dependencies": { - "lru-cache": "^9.1.1", - "minipass": "^5.0.0 || ^6.0.2" + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -4823,9 +4748,9 @@ } }, "node_modules/rc-config-loader": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/rc-config-loader/-/rc-config-loader-4.1.2.tgz", - "integrity": "sha512-qKTnVWFl9OQYKATPzdfaZIbTxcHziQl92zYSxYC6umhOqyAsoj8H8Gq/+aFjAso68sBdjTz3A7omqeAkkF1MWg==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/rc-config-loader/-/rc-config-loader-4.1.3.tgz", + "integrity": "sha512-kD7FqML7l800i6pS6pvLyIE2ncbk9Du8Q0gp/4hMPhJU6ZxApkoLcGD8ZeqgiAlfwZ6BlETq6qqe+12DUL207w==", "dev": true, "dependencies": { "debug": "^4.3.4", @@ -4862,12 +4787,12 @@ } }, "node_modules/read-package-json": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-6.0.0.tgz", - "integrity": "sha512-b/9jxWJ8EwogJPpv99ma+QwtqB7FSl3+V6UXS7Aaay8/5VwMY50oIFooY1UKXMWpfNCM6T/PoGqa5GD1g9xf9w==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-6.0.4.tgz", + "integrity": "sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw==", "dev": true, "dependencies": { - "glob": "^8.0.1", + "glob": "^10.2.2", "json-parse-even-better-errors": "^3.0.0", "normalize-package-data": "^5.0.0", "npm-normalize-package-bin": "^3.0.0" @@ -4899,34 +4824,49 @@ } }, "node_modules/read-package-json/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "version": "10.3.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.3.tgz", + "integrity": "sha512-92vPiMb/iqpmEgsOoIDvTjc50wf9CCCvMzsi6W0JLPeUKE8TWP1a73PgqSrqy7iAZxaSD1YdzU7QZR5LF51MJw==", "dev": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "foreground-child": "^3.1.0", + "jackspeak": "^2.0.3", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/cjs/src/bin.js" }, "engines": { - "node": ">=12" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/read-package-json/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/read-package-json/node_modules/minipass": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.2.tgz", + "integrity": "sha512-eL79dXrE1q9dBbDCLg7xfn/vl7MS4F1gvJAgjJrQli/jbQWdUttuVawphqpffoIYfRdq78LHx6GP4bU/EQ2ATA==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" } }, "node_modules/readable-stream": { @@ -5017,12 +4957,12 @@ } }, "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "version": "1.22.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", + "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", "dev": true, "dependencies": { - "is-core-module": "^2.9.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -5159,9 +5099,9 @@ "optional": true }, "node_modules/semver": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", - "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -5239,14 +5179,15 @@ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, "node_modules/sigstore": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-1.1.1.tgz", - "integrity": "sha512-4hR3tPP1y59YWlaoAgAWFVZ7srTjNWOrrpkQXWu05qP0BvwFYyt3K3l848+IHo+mKhkOzGcNDf7ktASXLEPC+A==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-1.8.0.tgz", + "integrity": "sha512-ogU8qtQ3VFBawRJ8wjsBEX/vIFeHuGs1fm4jZtjWQwjo8pfAt7T/rh+udlAN4+QUe0IzA8qRSc/YZ7dHP6kh+w==", "dev": true, "dependencies": { - "@sigstore/protobuf-specs": "^0.1.0", - "make-fetch-happen": "^11.0.1", - "tuf-js": "^1.0.0" + "@sigstore/bundle": "^1.0.0", + "@sigstore/protobuf-specs": "^0.2.0", + "@sigstore/tuf": "^1.0.3", + "make-fetch-happen": "^11.0.1" }, "bin": { "sigstore": "bin/sigstore.js" @@ -5255,67 +5196,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/sigstore/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/sigstore/node_modules/make-fetch-happen": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.0.3.tgz", - "integrity": "sha512-oPLh5m10lRNNZDjJ2kP8UpboUx2uFXVaVweVe/lWut4iHWcQEmfqSVJt2ihZsFI8HbpwyyocaXbCAWf0g1ukIA==", - "dev": true, - "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^4.0.0", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^10.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/sigstore/node_modules/minipass": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.5.tgz", - "integrity": "sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/sigstore/node_modules/minipass-fetch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.1.tgz", - "integrity": "sha512-t9/wowtf7DYkwz8cfMSt0rMwiyNIBXf5CKZ3S5ZMqRqMYT0oLTp0x1WorMI9WTwvaPg21r1JbFxJMum8JrLGfw==", - "dev": true, - "dependencies": { - "minipass": "^4.0.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, "node_modules/simple-concat": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", @@ -5462,21 +5342,21 @@ "dev": true }, "node_modules/ssri": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.1.tgz", - "integrity": "sha512-WVy6di9DlPOeBWEjMScpNipeSX2jIZBGEn5Uuo8Q7aIuFEuDX0pw8RxcOjlD1TWP4obi24ki7m/13+nFpcbXrw==", + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.4.tgz", + "integrity": "sha512-12+IR2CB2C28MMAw0Ncqwj5QbTcs0nGIhgJzYWzDkb21vWmfNI83KS4f3Ci6GI98WreIfG7o9UXp3C0qbpA8nQ==", "dev": true, "dependencies": { - "minipass": "^4.0.0" + "minipass": "^5.0.0" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/ssri/node_modules/minipass": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.5.tgz", - "integrity": "sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "dev": true, "engines": { "node": ">=8" @@ -5590,7 +5470,7 @@ "node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, "engines": { "node": ">=4" @@ -5672,13 +5552,13 @@ "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" }, "node_modules/tsconfig-paths": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", - "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", + "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", "dev": true, "dependencies": { "@types/json5": "^0.0.29", - "json5": "^1.0.1", + "json5": "^1.0.2", "minimist": "^1.2.6", "strip-bom": "^3.0.0" } @@ -5689,79 +5569,19 @@ "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" }, "node_modules/tuf-js": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-1.1.1.tgz", - "integrity": "sha512-WTp382/PR96k0dI4GD5RdiRhgOU0rAC7+lnoih/5pZg3cyb3aNMqDozleEEWwyfT3+FOg7Qz9JU3n6A44tLSHw==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-1.1.7.tgz", + "integrity": "sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg==", "dev": true, "dependencies": { - "@tufjs/models": "1.0.0", - "make-fetch-happen": "^11.0.1" + "@tufjs/models": "1.0.4", + "debug": "^4.3.4", + "make-fetch-happen": "^11.1.1" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/tuf-js/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/tuf-js/node_modules/make-fetch-happen": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.0.3.tgz", - "integrity": "sha512-oPLh5m10lRNNZDjJ2kP8UpboUx2uFXVaVweVe/lWut4iHWcQEmfqSVJt2ihZsFI8HbpwyyocaXbCAWf0g1ukIA==", - "dev": true, - "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^4.0.0", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^10.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/tuf-js/node_modules/minipass": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.5.tgz", - "integrity": "sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/tuf-js/node_modules/minipass-fetch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.1.tgz", - "integrity": "sha512-t9/wowtf7DYkwz8cfMSt0rMwiyNIBXf5CKZ3S5ZMqRqMYT0oLTp0x1WorMI9WTwvaPg21r1JbFxJMum8JrLGfw==", - "dev": true, - "dependencies": { - "minipass": "^4.0.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, "node_modules/tunnel": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", @@ -6107,15 +5927,6 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "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, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/wrap-ansi": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", @@ -6261,6 +6072,12 @@ } }, "dependencies": { + "@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true + }, "@actions/core": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.10.0.tgz", @@ -6306,20 +6123,20 @@ } }, "@eslint-community/regexpp": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.4.0.tgz", - "integrity": "sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.8.0.tgz", + "integrity": "sha512-JylOEEzDiOryeUnFbQz+oViCXS0KsvR1mvHkoMiu5+UiBvy+RYX7tzlIIIEstF/gVa2tj9AQXk3dgnxv6KxhFg==", "dev": 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==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", + "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.5.2", + "espree": "^9.6.0", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -6329,15 +6146,9 @@ } }, "@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 - }, - "@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.48.0.tgz", + "integrity": "sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw==", "dev": true }, "@humanwhocodes/config-array": { @@ -6463,14 +6274,13 @@ } }, "@npmcli/git": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-4.0.3.tgz", - "integrity": "sha512-8cXNkDIbnXPVbhXMmQ7/bklCAjtmPaXfI9aEM4iH+xSuEHINLMHhlfESvVwdqmHJRJkR48vNJTSUvoF6GRPSFA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-4.1.0.tgz", + "integrity": "sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==", "dev": true, "requires": { "@npmcli/promise-spawn": "^6.0.0", "lru-cache": "^7.4.4", - "mkdirp": "^1.0.4", "npm-pick-manifest": "^8.0.0", "proc-log": "^3.0.0", "promise-inflight": "^1.0.1", @@ -6486,9 +6296,9 @@ "dev": true }, "which": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.0.tgz", - "integrity": "sha512-nla//68K9NU6yRiwDY/Q8aU6siKlSs64aEC7+IV56QoAuyQT2ovsJcgGYGyqMOmI/CGN1BOR6mM5EN0FBO+zyQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", + "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", "dev": true, "requires": { "isexe": "^2.0.0" @@ -6506,16 +6316,6 @@ "npm-normalize-package-bin": "^3.0.0" } }, - "@npmcli/move-file": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", - "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", - "dev": true, - "requires": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - } - }, "@npmcli/node-gyp": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz", @@ -6532,9 +6332,9 @@ }, "dependencies": { "which": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.0.tgz", - "integrity": "sha512-nla//68K9NU6yRiwDY/Q8aU6siKlSs64aEC7+IV56QoAuyQT2ovsJcgGYGyqMOmI/CGN1BOR6mM5EN0FBO+zyQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", + "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", "dev": true, "requires": { "isexe": "^2.0.0" @@ -6543,9 +6343,9 @@ } }, "@npmcli/run-script": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-6.0.0.tgz", - "integrity": "sha512-ql+AbRur1TeOdl1FY+RAwGW9fcr4ZwiVKabdvm93mujGREVuVLbdkXRJDrkTXSdCjaxYydr1wlA2v67jxWG5BQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-6.0.2.tgz", + "integrity": "sha512-NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA==", "dev": true, "requires": { "@npmcli/node-gyp": "^3.0.0", @@ -6556,9 +6356,9 @@ }, "dependencies": { "which": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.0.tgz", - "integrity": "sha512-nla//68K9NU6yRiwDY/Q8aU6siKlSs64aEC7+IV56QoAuyQT2ovsJcgGYGyqMOmI/CGN1BOR6mM5EN0FBO+zyQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", + "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", "dev": true, "requires": { "isexe": "^2.0.0" @@ -6702,12 +6502,31 @@ "config-chain": "^1.1.11" } }, + "@sigstore/bundle": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-1.0.0.tgz", + "integrity": "sha512-yLvrWDOh6uMOUlFCTJIZEnwOT9Xte7NPXUqVexEKGSF5XtBAuSg5du0kn3dRR0p47a4ah10Y0mNt8+uyeQXrBQ==", + "dev": true, + "requires": { + "@sigstore/protobuf-specs": "^0.2.0" + } + }, "@sigstore/protobuf-specs": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.1.0.tgz", - "integrity": "sha512-a31EnjuIDSX8IXBUib3cYLDRlPMU36AWX4xS8ysLaNu4ZzUesDiPt83pgrW2X1YLMe5L2HbDyaKK5BrL4cNKaQ==", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.2.0.tgz", + "integrity": "sha512-8ZhZKAVfXjIspDWwm3D3Kvj0ddbJ0HqDZ/pOs5cx88HpT8mVsotFrg7H1UMnXOuDHz6Zykwxn4mxG3QLuN+RUg==", "dev": true }, + "@sigstore/tuf": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-1.0.3.tgz", + "integrity": "sha512-2bRovzs0nJZFlCN3rXirE4gwxCn97JNjMmwpecqlbgV9WcxX7WRuIrgzx/X7Ib7MYRbyUTpBYE0s2x6AmZXnlg==", + "dev": true, + "requires": { + "@sigstore/protobuf-specs": "^0.2.0", + "tuf-js": "^1.1.7" + } + }, "@sindresorhus/is": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.3.0.tgz", @@ -6729,13 +6548,20 @@ "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", "dev": true }, - "@tufjs/models": { + "@tufjs/canonical-json": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-1.0.0.tgz", - "integrity": "sha512-RRMu4uMxWnZlxaIBxahSb2IssFZiu188sndesZflWOe1cA/qUqtemSIoBWbuVKPvvdktapImWNnKpBcc+VrCQw==", + "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-1.0.0.tgz", + "integrity": "sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==", + "dev": true + }, + "@tufjs/models": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-1.0.4.tgz", + "integrity": "sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==", "dev": true, "requires": { - "minimatch": "^6.1.0" + "@tufjs/canonical-json": "1.0.0", + "minimatch": "^9.0.0" }, "dependencies": { "brace-expansion": { @@ -6748,9 +6574,9 @@ } }, "minimatch": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-6.2.0.tgz", - "integrity": "sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -6767,7 +6593,7 @@ "@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, "abbrev": { @@ -6776,9 +6602,9 @@ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, "acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", "dev": true }, "acorn-jsx": { @@ -6901,6 +6727,19 @@ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true }, + "array.prototype.findlastindex": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.2.tgz", + "integrity": "sha512-tb5thFFlUcp7NdNF6/MpDk/1r/4awWG1FIz3YqDf+/zJSTezBb+/5WViH41obXULHVpDzoiCLpJ/ZO9YbJMsdw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.1.3" + } + }, "array.prototype.flat": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", @@ -7037,21 +6876,20 @@ } }, "cacache": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.0.4.tgz", - "integrity": "sha512-Z/nL3gU+zTUjz5pCA5vVjYM8pmaw2kxM7JEiE0fv3w77Wj+sFbi70CrBruUWH0uNcEdvLDixFpgA2JM4F4DBjA==", + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.1.3.tgz", + "integrity": "sha512-jAdjGxmPxZh0IipMdR7fK/4sDSrHMLUV0+GvVUsjwyGNKHsh79kW/otg+GkbXwl6Uzvy9wsvHOX4nUoWldeZMg==", "dev": true, "requires": { "@npmcli/fs": "^3.1.0", "fs-minipass": "^3.0.0", - "glob": "^8.0.1", + "glob": "^10.2.2", "lru-cache": "^7.7.1", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-collect": "^1.0.2", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", "ssri": "^10.0.0", "tar": "^6.1.11", "unique-filename": "^3.0.0" @@ -7067,25 +6905,25 @@ } }, "fs-minipass": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.1.tgz", - "integrity": "sha512-MhaJDcFRTuLidHrIttu0RDGyyXs/IYHVmlcxfLAEFIWjc1vdLAkdwT7Ace2u7DbitWC0toKMl5eJZRYNVreIMw==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.2.tgz", + "integrity": "sha512-2GAfyfoaCDRrM6jaOS3UsBts8yJ55VioXdWcOL7dK9zdAuKT71+WBA4ifnNYqVjYv+4SsPxjK0JT4yIIn4cA/g==", "dev": true, "requires": { - "minipass": "^4.0.0" + "minipass": "^5.0.0" } }, "glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "version": "10.3.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.3.tgz", + "integrity": "sha512-92vPiMb/iqpmEgsOoIDvTjc50wf9CCCvMzsi6W0JLPeUKE8TWP1a73PgqSrqy7iAZxaSD1YdzU7QZR5LF51MJw==", "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "foreground-child": "^3.1.0", + "jackspeak": "^2.0.3", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" } }, "lru-cache": { @@ -7095,18 +6933,18 @@ "dev": true }, "minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, "requires": { "brace-expansion": "^2.0.1" } }, "minipass": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.5.tgz", - "integrity": "sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "dev": true } } @@ -7534,27 +7372,27 @@ "dev": true }, "eslint": { - "version": "8.43.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.43.0.tgz", - "integrity": "sha512-aaCpf2JqqKesMFGgmRPessmVKjcGXqdlAYLLC3THM8t5nBRZRQ+st5WM/hoJXkdioEXLLbXgclUpM0TXo5HX5Q==", + "version": "8.47.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.47.0.tgz", + "integrity": "sha512-spUQWrdPt+pRVP1TTJLmfRNJJHHZryFmptzcafwSvHsceV81djHOdnEeDmkdotZyLNjDhrOasNK8nikkoG1O8Q==", "dev": 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", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.2", + "@eslint/js": "^8.47.0", "@humanwhocodes/config-array": "^0.11.10", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", + "ajv": "^6.12.4", "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", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -7564,7 +7402,6 @@ "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", @@ -7574,9 +7411,8 @@ "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.1", + "optionator": "^0.9.3", "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" }, "dependencies": { @@ -7621,9 +7457,9 @@ } }, "eslint-module-utils": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", - "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", "dev": true, "requires": { "debug": "^3.2.7" @@ -7651,26 +7487,28 @@ } }, "eslint-plugin-import": { - "version": "2.27.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", - "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==", + "version": "2.28.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz", + "integrity": "sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==", "dev": true, "requires": { "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-import-resolver-node": "^0.3.7", - "eslint-module-utils": "^2.7.4", + "eslint-module-utils": "^2.8.0", "has": "^1.0.3", - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "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.1", - "semver": "^6.3.0", - "tsconfig-paths": "^3.14.1" + "semver": "^6.3.1", + "tsconfig-paths": "^3.14.2" }, "dependencies": { "debug": { @@ -7692,9 +7530,9 @@ } }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true } } @@ -7795,9 +7633,9 @@ "requires": {} }, "eslint-scope": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", - "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, "requires": { "esrecurse": "^4.3.0", @@ -7822,18 +7660,18 @@ } }, "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==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true }, "espree": { - "version": "9.5.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz", - "integrity": "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, "requires": { - "acorn": "^8.8.0", + "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.4.1" } @@ -7868,6 +7706,12 @@ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true }, + "exponential-backoff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", + "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==", + "dev": true + }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -7896,7 +7740,7 @@ "fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, "fast-memoize": { @@ -8051,13 +7895,14 @@ } }, "get-intrinsic": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", - "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", "dev": true, "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", + "has-proto": "^1.0.1", "has-symbols": "^1.0.3" } }, @@ -8123,9 +7968,9 @@ } }, "globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "version": "13.21.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.21.0.tgz", + "integrity": "sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -8351,12 +8196,12 @@ "dev": true }, "ignore-walk": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.1.tgz", - "integrity": "sha512-/c8MxUAqpRccq+LyDOecwF+9KqajueJHh8fz7g3YqjMZt+NSfJzx05zrKiXwa2sKwFCzaiZ5qUVfRj0pmxixEA==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.3.tgz", + "integrity": "sha512-C7FfFoTA+bI10qfeydT8aZbvr91vAEU+2W5BZUlzPec47oNb07SsOfwYrtxuvOYdUApPP/Qlh4DtAO51Ekk2QA==", "dev": true, "requires": { - "minimatch": "^6.1.6" + "minimatch": "^9.0.0" }, "dependencies": { "brace-expansion": { @@ -8369,9 +8214,9 @@ } }, "minimatch": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-6.2.0.tgz", - "integrity": "sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -8407,12 +8252,6 @@ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true }, - "infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true - }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -8428,9 +8267,9 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "ini": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.0.tgz", - "integrity": "sha512-HLR38RSF2iulAzc3I/sma4CoYxQP844rPYCNfzGDOHqa/YqVlwuuZgBx6M50/X8dKgzk0cm1qRg3+47mK2N+cQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz", + "integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==", "dev": true }, "internal-slot": { @@ -8496,9 +8335,9 @@ } }, "is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", "dev": true, "requires": { "has": "^1.0.3" @@ -8818,9 +8657,9 @@ } }, "luxon": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.3.0.tgz", - "integrity": "sha512-An0UCfG/rSiqtAIiBPO0Y9/zAnHUZxAMiCpTd5h2smgsj7GGmcenvrvww2cqNA8/4A5ZrD1gJpHN2mIHZQF+Mg==" + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.4.0.tgz", + "integrity": "sha512-7eDo4Pt7aGhoCheGFIuq4Xa2fJm4ZpmldpGhjTYBNUYNCN6TIEP6v7chwwwt3KRp7YR+rghbfvjyo3V5y9hgBw==" }, "make-dir": { "version": "3.1.0", @@ -8838,128 +8677,39 @@ } }, "make-fetch-happen": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", - "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", + "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", "dev": true, "requires": { "agentkeepalive": "^4.2.1", - "cacache": "^16.1.0", - "http-cache-semantics": "^4.1.0", + "cacache": "^17.0.0", + "http-cache-semantics": "^4.1.1", "http-proxy-agent": "^5.0.0", "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", + "minipass": "^5.0.0", + "minipass-fetch": "^3.0.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "negotiator": "^0.6.3", "promise-retry": "^2.0.1", "socks-proxy-agent": "^7.0.0", - "ssri": "^9.0.0" + "ssri": "^10.0.0" }, "dependencies": { - "@npmcli/fs": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", - "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", - "dev": true, - "requires": { - "@gar/promisify": "^1.1.3", - "semver": "^7.3.5" - } - }, - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "cacache": { - "version": "16.1.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", - "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", - "dev": true, - "requires": { - "@npmcli/fs": "^2.1.0", - "@npmcli/move-file": "^2.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "glob": "^8.0.1", - "infer-owner": "^1.0.4", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", - "tar": "^6.1.11", - "unique-filename": "^2.0.0" - } - }, - "glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - } - }, "lru-cache": { "version": "7.18.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true }, - "minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "ssri": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", - "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", - "dev": true, - "requires": { - "minipass": "^3.1.1" - } - }, - "unique-filename": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", - "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", - "dev": true, - "requires": { - "unique-slug": "^3.0.0" - } - }, - "unique-slug": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", - "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4" - } + "minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true } } }, @@ -9016,15 +8766,23 @@ } }, "minipass-fetch": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", - "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.3.tgz", + "integrity": "sha512-n5ITsTkDqYkYJZjcRWzZt9qnZKCT7nKCosJhHoj7S7zD+BP4jVbWs+odsniw5TA3E0sLomhTKOKjF86wf11PuQ==", "dev": true, "requires": { "encoding": "^0.1.13", - "minipass": "^3.1.6", + "minipass": "^5.0.0", "minipass-sized": "^1.0.3", "minizlib": "^2.1.2" + }, + "dependencies": { + "minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true + } } }, "minipass-flush": { @@ -9109,15 +8867,16 @@ } }, "node-gyp": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.3.1.tgz", - "integrity": "sha512-4Q16ZCqq3g8awk6UplT7AuxQ35XN4R/yf/+wSAwcBUAjg7l58RTactWaP8fIDTi0FzI7YcVLujwExakZlfWkXg==", + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.4.0.tgz", + "integrity": "sha512-dMXsYP6gc9rRbejLXmTbVRYjAHw7ppswsKyMxuxJxxOHzluIO1rGp9TOQgjFJ+2MCqcOcQTOPB/8Xwhr+7s4Eg==", "dev": true, "requires": { "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", "glob": "^7.1.4", "graceful-fs": "^4.2.6", - "make-fetch-happen": "^10.0.3", + "make-fetch-happen": "^11.0.3", "nopt": "^6.0.0", "npmlog": "^6.0.0", "rimraf": "^3.0.2", @@ -9228,12 +8987,12 @@ } }, "npm-check-updates": { - "version": "16.10.13", - "resolved": "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-16.10.13.tgz", - "integrity": "sha512-ZsWrtHnaMkcxAaCtDFEr8i7jgM0Bz2AYsnsJlmxISgltG8ie43bWC6G9icxFKfYSLeJJtcj/Yw1Mq5f8GL2F3g==", + "version": "16.10.16", + "resolved": "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-16.10.16.tgz", + "integrity": "sha512-d8mNYce/l8o5RHPE5ZUp2P1zj9poI7KWQCh5AsTIP3EhicONEhc63mLQQv4/nkCsMb3wCrikx6YOo4BOwN4+1w==", "dev": true, "requires": { - "chalk": "^5.2.0", + "chalk": "^5.3.0", "cli-table3": "^0.6.3", "commander": "^10.0.0", "fast-memoize": "^2.5.2", @@ -9242,25 +9001,25 @@ "get-stdin": "^8.0.0", "globby": "^11.0.4", "hosted-git-info": "^5.1.0", - "ini": "^4.0.0", + "ini": "^4.1.1", "js-yaml": "^4.1.0", "json-parse-helpfulerror": "^1.0.3", "jsonlines": "^0.1.1", "lodash": "^4.17.21", - "minimatch": "^9.0.0", + "minimatch": "^9.0.3", "p-map": "^4.0.0", - "pacote": "15.1.1", + "pacote": "15.2.0", "parse-github-url": "^1.0.2", "progress": "^2.0.3", "prompts-ncu": "^3.0.0", - "rc-config-loader": "^4.1.2", + "rc-config-loader": "^4.1.3", "remote-git-tags": "^3.0.0", - "rimraf": "^5.0.0", - "semver": "^7.4.0", + "rimraf": "^5.0.1", + "semver": "^7.5.3", "semver-utils": "^1.1.4", "source-map-support": "^0.5.21", "spawn-please": "^2.0.1", - "strip-json-comments": "^5.0.0", + "strip-json-comments": "^5.0.1", "untildify": "^4.0.0", "update-notifier": "^6.0.2" }, @@ -9275,9 +9034,9 @@ } }, "chalk": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", - "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", "dev": true }, "glob": { @@ -9294,9 +9053,9 @@ } }, "minimatch": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz", - "integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -9318,26 +9077,26 @@ } }, "strip-json-comments": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-5.0.0.tgz", - "integrity": "sha512-V1LGY4UUo0jgwC+ELQ2BNWfPa17TIuwBLg+j1AA/9RPzKINl1lhxVEu2r+ZTTO8aetIsUzE5Qj6LMSBkoGYKKw==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-5.0.1.tgz", + "integrity": "sha512-0fk9zBqO67Nq5M/m45qHCJxylV/DhBlIOVExqgOMiCCrzrhU6tCibRXNqE3jwJLftzE9SNuZtYbpzcO+i9FiKw==", "dev": true } } }, "npm-install-checks": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.0.0.tgz", - "integrity": "sha512-SBU9oFglRVZnfElwAtF14NivyulDqF1VKqqwNsFW9HDcbHMAPHpRSsVFgKuwFGq/hVvWZExz62Th0kvxn/XE7Q==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.1.1.tgz", + "integrity": "sha512-dH3GmQL4vsPtld59cOn8uY0iOqRmqKvV+DLGwNXV/Q7MDgD2QfOADWd/mFXcIE5LVhYYGjA3baz6W9JneqnuCw==", "dev": true, "requires": { "semver": "^7.1.1" } }, "npm-normalize-package-bin": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.0.tgz", - "integrity": "sha512-g+DPQSkusnk7HYXr75NtzkIP4+N81i3RPsGFidF3DzHd9MT9wWngmqoeg/fnHFz5MNdtG4w03s+QnhewSLTT2Q==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", + "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", "dev": true }, "npm-package-arg": { @@ -9379,9 +9138,9 @@ } }, "npm-pick-manifest": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-8.0.1.tgz", - "integrity": "sha512-mRtvlBjTsJvfCCdmPtiu2bdlx8d/KXtF7yNXNWe7G0Z36qWA9Ny5zXsI2PfBZEv7SXgoxTmNaTzGSbbzDZChoA==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-8.0.2.tgz", + "integrity": "sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg==", "dev": true, "requires": { "npm-install-checks": "^6.0.0", @@ -9391,13 +9150,13 @@ } }, "npm-registry-fetch": { - "version": "14.0.3", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-14.0.3.tgz", - "integrity": "sha512-YaeRbVNpnWvsGOjX2wk5s85XJ7l1qQBGAp724h8e2CZFFhMSuw9enom7K1mWVUtvXO1uUSFIAPofQK0pPN0ZcA==", + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-14.0.5.tgz", + "integrity": "sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==", "dev": true, "requires": { "make-fetch-happen": "^11.0.0", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-fetch": "^3.0.0", "minipass-json-stream": "^1.0.1", "minizlib": "^2.1.2", @@ -9405,52 +9164,11 @@ "proc-log": "^3.0.0" }, "dependencies": { - "lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true - }, - "make-fetch-happen": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.0.3.tgz", - "integrity": "sha512-oPLh5m10lRNNZDjJ2kP8UpboUx2uFXVaVweVe/lWut4iHWcQEmfqSVJt2ihZsFI8HbpwyyocaXbCAWf0g1ukIA==", - "dev": true, - "requires": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^4.0.0", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^10.0.0" - } - }, "minipass": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.5.tgz", - "integrity": "sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "dev": true - }, - "minipass-fetch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.1.tgz", - "integrity": "sha512-t9/wowtf7DYkwz8cfMSt0rMwiyNIBXf5CKZ3S5ZMqRqMYT0oLTp0x1WorMI9WTwvaPg21r1JbFxJMum8JrLGfw==", - "dev": true, - "requires": { - "encoding": "^0.1.13", - "minipass": "^4.0.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - } } } }, @@ -9494,6 +9212,29 @@ "object-keys": "^1.1.1" } }, + "object.fromentries": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", + "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "object.groupby": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.0.tgz", + "integrity": "sha512-70MWG6NfRH9GnbZOikuhPPYzpUpof9iW2J9E4dW7FXTqPNb6rllE6u39SKwwiNh8lCwX3DDb5OgcKGiEBrTTyw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.21.2", + "get-intrinsic": "^1.2.1" + } + }, "object.values": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", @@ -9514,17 +9255,17 @@ } }, "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", "dev": true, "requires": { + "@aashutoshrathi/word-wrap": "^1.2.3", "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" + "type-check": "^0.4.0" } }, "p-cancelable": { @@ -9573,9 +9314,9 @@ } }, "pacote": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-15.1.1.tgz", - "integrity": "sha512-eeqEe77QrA6auZxNHIp+1TzHQ0HBKf5V6c8zcaYZ134EJe1lCi+fjXATkNiEEfbG+e50nu02GLvUtmZcGOYabQ==", + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-15.2.0.tgz", + "integrity": "sha512-rJVZeIwHTUta23sIZgEIM62WYwbmGbThdbnkt81ravBplQv+HjyroqnLRNH2+sLJHcGZmLRmhPwACqhfTcOmnA==", "dev": true, "requires": { "@npmcli/git": "^4.0.0", @@ -9584,7 +9325,7 @@ "@npmcli/run-script": "^6.0.0", "cacache": "^17.0.0", "fs-minipass": "^3.0.0", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "npm-package-arg": "^10.0.0", "npm-packlist": "^7.0.0", "npm-pick-manifest": "^8.0.0", @@ -9593,24 +9334,24 @@ "promise-retry": "^2.0.1", "read-package-json": "^6.0.0", "read-package-json-fast": "^3.0.0", - "sigstore": "^1.0.0", + "sigstore": "^1.3.0", "ssri": "^10.0.0", "tar": "^6.1.11" }, "dependencies": { "fs-minipass": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.1.tgz", - "integrity": "sha512-MhaJDcFRTuLidHrIttu0RDGyyXs/IYHVmlcxfLAEFIWjc1vdLAkdwT7Ace2u7DbitWC0toKMl5eJZRYNVreIMw==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.2.tgz", + "integrity": "sha512-2GAfyfoaCDRrM6jaOS3UsBts8yJ55VioXdWcOL7dK9zdAuKT71+WBA4ifnNYqVjYv+4SsPxjK0JT4yIIn4cA/g==", "dev": true, "requires": { - "minipass": "^4.0.0" + "minipass": "^5.0.0" } }, "minipass": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.5.tgz", - "integrity": "sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "dev": true } } @@ -9654,13 +9395,13 @@ "dev": true }, "path-scurry": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.9.2.tgz", - "integrity": "sha512-qSDLy2aGFPm8i4rsbHd4MNyTcrzHFsLQykrtbuGRknZZCBBVXSv2tSCDN2Cg6Rt/GFRw8GoW9y9Ecw5rIPG1sg==", + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", "dev": true, "requires": { - "lru-cache": "^9.1.1", - "minipass": "^5.0.0 || ^6.0.2" + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "dependencies": { "lru-cache": { @@ -9793,9 +9534,9 @@ } }, "rc-config-loader": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/rc-config-loader/-/rc-config-loader-4.1.2.tgz", - "integrity": "sha512-qKTnVWFl9OQYKATPzdfaZIbTxcHziQl92zYSxYC6umhOqyAsoj8H8Gq/+aFjAso68sBdjTz3A7omqeAkkF1MWg==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/rc-config-loader/-/rc-config-loader-4.1.3.tgz", + "integrity": "sha512-kD7FqML7l800i6pS6pvLyIE2ncbk9Du8Q0gp/4hMPhJU6ZxApkoLcGD8ZeqgiAlfwZ6BlETq6qqe+12DUL207w==", "dev": true, "requires": { "debug": "^4.3.4", @@ -9813,12 +9554,12 @@ } }, "read-package-json": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-6.0.0.tgz", - "integrity": "sha512-b/9jxWJ8EwogJPpv99ma+QwtqB7FSl3+V6UXS7Aaay8/5VwMY50oIFooY1UKXMWpfNCM6T/PoGqa5GD1g9xf9w==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-6.0.4.tgz", + "integrity": "sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw==", "dev": true, "requires": { - "glob": "^8.0.1", + "glob": "^10.2.2", "json-parse-even-better-errors": "^3.0.0", "normalize-package-data": "^5.0.0", "npm-normalize-package-bin": "^3.0.0" @@ -9834,26 +9575,32 @@ } }, "glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "version": "10.3.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.3.tgz", + "integrity": "sha512-92vPiMb/iqpmEgsOoIDvTjc50wf9CCCvMzsi6W0JLPeUKE8TWP1a73PgqSrqy7iAZxaSD1YdzU7QZR5LF51MJw==", "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "foreground-child": "^3.1.0", + "jackspeak": "^2.0.3", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" } }, "minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, "requires": { "brace-expansion": "^2.0.1" } + }, + "minipass": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.2.tgz", + "integrity": "sha512-eL79dXrE1q9dBbDCLg7xfn/vl7MS4F1gvJAgjJrQli/jbQWdUttuVawphqpffoIYfRdq78LHx6GP4bU/EQ2ATA==", + "dev": true } } }, @@ -9925,12 +9672,12 @@ "dev": true }, "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "version": "1.22.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", + "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", "dev": true, "requires": { - "is-core-module": "^2.9.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -10008,9 +9755,9 @@ "optional": true }, "semver": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", - "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "requires": { "lru-cache": "^6.0.0" } @@ -10067,63 +9814,15 @@ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, "sigstore": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-1.1.1.tgz", - "integrity": "sha512-4hR3tPP1y59YWlaoAgAWFVZ7srTjNWOrrpkQXWu05qP0BvwFYyt3K3l848+IHo+mKhkOzGcNDf7ktASXLEPC+A==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-1.8.0.tgz", + "integrity": "sha512-ogU8qtQ3VFBawRJ8wjsBEX/vIFeHuGs1fm4jZtjWQwjo8pfAt7T/rh+udlAN4+QUe0IzA8qRSc/YZ7dHP6kh+w==", "dev": true, "requires": { - "@sigstore/protobuf-specs": "^0.1.0", - "make-fetch-happen": "^11.0.1", - "tuf-js": "^1.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true - }, - "make-fetch-happen": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.0.3.tgz", - "integrity": "sha512-oPLh5m10lRNNZDjJ2kP8UpboUx2uFXVaVweVe/lWut4iHWcQEmfqSVJt2ihZsFI8HbpwyyocaXbCAWf0g1ukIA==", - "dev": true, - "requires": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^4.0.0", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^10.0.0" - } - }, - "minipass": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.5.tgz", - "integrity": "sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q==", - "dev": true - }, - "minipass-fetch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.1.tgz", - "integrity": "sha512-t9/wowtf7DYkwz8cfMSt0rMwiyNIBXf5CKZ3S5ZMqRqMYT0oLTp0x1WorMI9WTwvaPg21r1JbFxJMum8JrLGfw==", - "dev": true, - "requires": { - "encoding": "^0.1.13", - "minipass": "^4.0.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - } - } + "@sigstore/bundle": "^1.0.0", + "@sigstore/protobuf-specs": "^0.2.0", + "@sigstore/tuf": "^1.0.3", + "make-fetch-happen": "^11.0.1" } }, "simple-concat": { @@ -10238,18 +9937,18 @@ "dev": true }, "ssri": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.1.tgz", - "integrity": "sha512-WVy6di9DlPOeBWEjMScpNipeSX2jIZBGEn5Uuo8Q7aIuFEuDX0pw8RxcOjlD1TWP4obi24ki7m/13+nFpcbXrw==", + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.4.tgz", + "integrity": "sha512-12+IR2CB2C28MMAw0Ncqwj5QbTcs0nGIhgJzYWzDkb21vWmfNI83KS4f3Ci6GI98WreIfG7o9UXp3C0qbpA8nQ==", "dev": true, "requires": { - "minipass": "^4.0.0" + "minipass": "^5.0.0" }, "dependencies": { "minipass": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.5.tgz", - "integrity": "sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "dev": true } } @@ -10336,7 +10035,7 @@ "strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true }, "strip-json-comments": { @@ -10394,13 +10093,13 @@ "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" }, "tsconfig-paths": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", - "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", + "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", "dev": true, "requires": { "@types/json5": "^0.0.29", - "json5": "^1.0.1", + "json5": "^1.0.2", "minimist": "^1.2.6", "strip-bom": "^3.0.0" } @@ -10411,62 +10110,14 @@ "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" }, "tuf-js": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-1.1.1.tgz", - "integrity": "sha512-WTp382/PR96k0dI4GD5RdiRhgOU0rAC7+lnoih/5pZg3cyb3aNMqDozleEEWwyfT3+FOg7Qz9JU3n6A44tLSHw==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-1.1.7.tgz", + "integrity": "sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg==", "dev": true, "requires": { - "@tufjs/models": "1.0.0", - "make-fetch-happen": "^11.0.1" - }, - "dependencies": { - "lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true - }, - "make-fetch-happen": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.0.3.tgz", - "integrity": "sha512-oPLh5m10lRNNZDjJ2kP8UpboUx2uFXVaVweVe/lWut4iHWcQEmfqSVJt2ihZsFI8HbpwyyocaXbCAWf0g1ukIA==", - "dev": true, - "requires": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^4.0.0", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^10.0.0" - } - }, - "minipass": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.5.tgz", - "integrity": "sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q==", - "dev": true - }, - "minipass-fetch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.1.tgz", - "integrity": "sha512-t9/wowtf7DYkwz8cfMSt0rMwiyNIBXf5CKZ3S5ZMqRqMYT0oLTp0x1WorMI9WTwvaPg21r1JbFxJMum8JrLGfw==", - "dev": true, - "requires": { - "encoding": "^0.1.13", - "minipass": "^4.0.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - } - } + "@tufjs/models": "1.0.4", + "debug": "^4.3.4", + "make-fetch-happen": "^11.1.1" } }, "tunnel": { @@ -10728,12 +10379,6 @@ } } }, - "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 - }, "wrap-ansi": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", diff --git a/dev/coverage-action/package.json b/dev/coverage-action/package.json index c940e370c..37a889f80 100644 --- a/dev/coverage-action/package.json +++ b/dev/coverage-action/package.json @@ -11,14 +11,14 @@ "chart.js": "3.5.1", "chartjs-node-canvas": "4.1.6", "lodash": "4.17.21", - "luxon": "3.3.0" + "luxon": "3.4.0" }, "devDependencies": { - "eslint": "8.43.0", + "eslint": "8.47.0", "eslint-config-standard": "17.1.0", - "eslint-plugin-import": "2.27.5", + "eslint-plugin-import": "2.28.1", "eslint-plugin-node": "11.1.0", "eslint-plugin-promise": "6.1.1", - "npm-check-updates": "16.10.13" + "npm-check-updates": "16.10.16" } } diff --git a/dev/del-old-packages/package-lock.json b/dev/del-old-packages/package-lock.json index 68268cbaa..4675a41b6 100644 --- a/dev/del-old-packages/package-lock.json +++ b/dev/del-old-packages/package-lock.json @@ -10,7 +10,7 @@ "license": "ISC", "dependencies": { "@octokit/core": "^4.2.4", - "luxon": "^3.3.0" + "luxon": "^3.4.2" } }, "node_modules/@octokit/auth-token": { @@ -141,9 +141,9 @@ } }, "node_modules/luxon": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.3.0.tgz", - "integrity": "sha512-An0UCfG/rSiqtAIiBPO0Y9/zAnHUZxAMiCpTd5h2smgsj7GGmcenvrvww2cqNA8/4A5ZrD1gJpHN2mIHZQF+Mg==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.4.2.tgz", + "integrity": "sha512-uBoAVCVcajsrqy3pv7eo5jEUz1oeLmCcnMv8n4AJpT5hbpN9lUssAXibNElpbLce3Mhm9dyBzwYLs9zctM/0tA==", "engines": { "node": ">=12" } @@ -315,9 +315,9 @@ "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" }, "luxon": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.3.0.tgz", - "integrity": "sha512-An0UCfG/rSiqtAIiBPO0Y9/zAnHUZxAMiCpTd5h2smgsj7GGmcenvrvww2cqNA8/4A5ZrD1gJpHN2mIHZQF+Mg==" + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.4.2.tgz", + "integrity": "sha512-uBoAVCVcajsrqy3pv7eo5jEUz1oeLmCcnMv8n4AJpT5hbpN9lUssAXibNElpbLce3Mhm9dyBzwYLs9zctM/0tA==" }, "node-fetch": { "version": "2.6.7", diff --git a/dev/del-old-packages/package.json b/dev/del-old-packages/package.json index 97b0e02f6..26fc4cec3 100644 --- a/dev/del-old-packages/package.json +++ b/dev/del-old-packages/package.json @@ -11,6 +11,6 @@ "license": "ISC", "dependencies": { "@octokit/core": "^4.2.4", - "luxon": "^3.3.0" + "luxon": "^3.4.2" } } diff --git a/dev/deploy-to-container/start.sh b/dev/deploy-to-container/start.sh index 2257aaf11..5621c68fa 100644 --- a/dev/deploy-to-container/start.sh +++ b/dev/deploy-to-container/start.sh @@ -27,6 +27,9 @@ if [ -n "$PGHOST" ]; then psql -U django -h $PGHOST -d datatracker -v ON_ERROR_STOP=1 -c '\x' -c 'ALTER USER django set search_path=datatracker,public;' fi +echo "Starting memcached..." +/usr/bin/memcached -d -u root + echo "Running Datatracker checks..." ./ietf/manage.py check diff --git a/dev/diff/package-lock.json b/dev/diff/package-lock.json index 385768d47..08f85bca4 100644 --- a/dev/diff/package-lock.json +++ b/dev/diff/package-lock.json @@ -8,15 +8,15 @@ "dependencies": { "chalk": "^5.3.0", "dockerode": "^3.3.5", - "enquirer": "^2.3.6", + "enquirer": "^2.4.1", "extract-zip": "^2.0.1", "fs-extra": "^11.1.1", "got": "^13.0.0", "keypress": "^0.2.1", - "listr2": "^6.6.0", + "listr2": "^6.6.1", "lodash-es": "^4.17.21", - "luxon": "^3.3.0", - "pretty-bytes": "^6.1.0", + "luxon": "^3.4.0", + "pretty-bytes": "^6.1.1", "tar": "^6.1.15", "yargs": "^17.7.2" }, @@ -426,11 +426,12 @@ } }, "node_modules/enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", "dependencies": { - "ansi-colors": "^4.1.1" + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" }, "engines": { "node": ">=8.6" @@ -654,9 +655,9 @@ } }, "node_modules/listr2": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-6.6.0.tgz", - "integrity": "sha512-qkLg7IeYcZGkxo5sZzl676xHwQzNZ8qAQLQSDMA88sLM1SDcabwyXD1mXHi/PGQHyt/mu81adJdkqsCSUSuQzQ==", + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-6.6.1.tgz", + "integrity": "sha512-+rAXGHh0fkEWdXBmX+L6mmfmXmXvDGEKzkjxO+8mP3+nI/r/CWznVBvsibXdxda9Zz0OW2e2ikphN3OwCT/jSg==", "dependencies": { "cli-truncate": "^3.1.0", "colorette": "^2.0.20", @@ -858,9 +859,9 @@ } }, "node_modules/luxon": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.3.0.tgz", - "integrity": "sha512-An0UCfG/rSiqtAIiBPO0Y9/zAnHUZxAMiCpTd5h2smgsj7GGmcenvrvww2cqNA8/4A5ZrD1gJpHN2mIHZQF+Mg==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.4.0.tgz", + "integrity": "sha512-7eDo4Pt7aGhoCheGFIuq4Xa2fJm4ZpmldpGhjTYBNUYNCN6TIEP6v7chwwwt3KRp7YR+rghbfvjyo3V5y9hgBw==", "engines": { "node": ">=12" } @@ -981,9 +982,9 @@ "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" }, "node_modules/pretty-bytes": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-6.1.0.tgz", - "integrity": "sha512-Rk753HI8f4uivXi4ZCIYdhmG1V+WKzvRMg/X+M42a6t7D07RcmopXJMDNk6N++7Bl75URRGsb40ruvg7Hcp2wQ==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-6.1.1.tgz", + "integrity": "sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==", "engines": { "node": "^14.13.1 || >=16.0.0" }, @@ -1659,11 +1660,12 @@ } }, "enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", "requires": { - "ansi-colors": "^4.1.1" + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" } }, "escalade": { @@ -1823,9 +1825,9 @@ } }, "listr2": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-6.6.0.tgz", - "integrity": "sha512-qkLg7IeYcZGkxo5sZzl676xHwQzNZ8qAQLQSDMA88sLM1SDcabwyXD1mXHi/PGQHyt/mu81adJdkqsCSUSuQzQ==", + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-6.6.1.tgz", + "integrity": "sha512-+rAXGHh0fkEWdXBmX+L6mmfmXmXvDGEKzkjxO+8mP3+nI/r/CWznVBvsibXdxda9Zz0OW2e2ikphN3OwCT/jSg==", "requires": { "cli-truncate": "^3.1.0", "colorette": "^2.0.20", @@ -1948,9 +1950,9 @@ "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==" }, "luxon": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.3.0.tgz", - "integrity": "sha512-An0UCfG/rSiqtAIiBPO0Y9/zAnHUZxAMiCpTd5h2smgsj7GGmcenvrvww2cqNA8/4A5ZrD1gJpHN2mIHZQF+Mg==" + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.4.0.tgz", + "integrity": "sha512-7eDo4Pt7aGhoCheGFIuq4Xa2fJm4ZpmldpGhjTYBNUYNCN6TIEP6v7chwwwt3KRp7YR+rghbfvjyo3V5y9hgBw==" }, "mimic-fn": { "version": "2.1.0", @@ -2032,9 +2034,9 @@ "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" }, "pretty-bytes": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-6.1.0.tgz", - "integrity": "sha512-Rk753HI8f4uivXi4ZCIYdhmG1V+WKzvRMg/X+M42a6t7D07RcmopXJMDNk6N++7Bl75URRGsb40ruvg7Hcp2wQ==" + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-6.1.1.tgz", + "integrity": "sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==" }, "pump": { "version": "3.0.0", diff --git a/dev/diff/package.json b/dev/diff/package.json index 8c3187f1d..34749cb66 100644 --- a/dev/diff/package.json +++ b/dev/diff/package.json @@ -4,15 +4,15 @@ "dependencies": { "chalk": "^5.3.0", "dockerode": "^3.3.5", - "enquirer": "^2.3.6", + "enquirer": "^2.4.1", "extract-zip": "^2.0.1", "fs-extra": "^11.1.1", "got": "^13.0.0", "keypress": "^0.2.1", - "listr2": "^6.6.0", + "listr2": "^6.6.1", "lodash-es": "^4.17.21", - "luxon": "^3.3.0", - "pretty-bytes": "^6.1.0", + "luxon": "^3.4.0", + "pretty-bytes": "^6.1.1", "tar": "^6.1.15", "yargs": "^17.7.2" }, diff --git a/docker-compose.yml b/docker-compose.yml index 3b13fc46e..413c04ff6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -26,7 +26,7 @@ services: # UID: 1001 # GID: 1001 # DATADIR: data - # DJANGO_SETTINGS_MODULE: settings_postgrestest + # DJANGO_SETTINGS_MODULE: settings_test # Uncomment the next line to use a non-root user for all processes. # user: dev diff --git a/docker/README.md b/docker/README.md index 61fdcfa85..bc9af7c21 100644 --- a/docker/README.md +++ b/docker/README.md @@ -99,7 +99,7 @@ You can also open the datatracker project folder and click the **Reopen in conta 2. Wait for the containers to initialize. Upon completion, you will be dropped into a shell from which you can start the datatracker and execute related commands as usual, for example ``` - ietf/manage.py runserver 0.0.0.0:8001 + ietf/manage.py runserver 8001 ``` to start the datatracker. diff --git a/docker/configs/nginx-502.html b/docker/configs/nginx-502.html index 9e4374f3c..b5577d3e1 100644 --- a/docker/configs/nginx-502.html +++ b/docker/configs/nginx-502.html @@ -51,7 +51,7 @@ <div> <p>Is the datatracker server running?</p> <p class="mt">Using <strong>VS Code</strong>, open the <strong>Run and Debug</strong> tab on the left and click the <i>‣</i> symbol (Run Server) to start the server.</p> - <p>Otherwise, run the command <code>ietf/manage.py runserver 0.0.0.0:8001</code> from the terminal.</p> + <p>Otherwise, run the command <code>ietf/manage.py runserver 8001</code> from the terminal.</p> </div> <div class="mt"> <p>You can manage the database at <a href="/pgadmin">/pgadmin</a>.</p> diff --git a/docker/configs/settings_local.py b/docker/configs/settings_local.py index 8178db1ef..07c16c2e9 100644 --- a/docker/configs/settings_local.py +++ b/docker/configs/settings_local.py @@ -8,7 +8,6 @@ ALLOWED_HOSTS = ['*'] from ietf.settings_postgresqldb import DATABASES # pyflakes:ignore IDSUBMIT_IDNITS_BINARY = "/usr/local/bin/idnits" -IDSUBMIT_REPOSITORY_PATH = "test/id/" IDSUBMIT_STAGING_PATH = "test/staging/" AGENDA_PATH = '/assets/www6s/proceedings/' @@ -50,6 +49,7 @@ STATUS_CHANGE_PATH = '/assets/ietf-ftp/status-changes/' INTERNET_DRAFT_ARCHIVE_DIR = '/assets/archive/id' INTERNET_ALL_DRAFTS_ARCHIVE_DIR = '/assets/archive/id' BIBXML_BASE_PATH = '/assets/ietfdata/derived/bibxml' +IDSUBMIT_REPOSITORY_PATH = INTERNET_DRAFT_PATH NOMCOM_PUBLIC_KEYS_DIR = 'data/nomcom_keys/public_keys/' SLIDE_STAGING_PATH = 'test/staging/' diff --git a/docker/scripts/app-init.sh b/docker/scripts/app-init.sh index e15aed38b..7e58e797c 100755 --- a/docker/scripts/app-init.sh +++ b/docker/scripts/app-init.sh @@ -106,11 +106,11 @@ if [ -z "$EDITOR_VSCODE" ]; then echo echo "You can execute arbitrary commands now, e.g.," echo - echo " ietf/manage.py runserver 0.0.0.0:8001" + echo " ietf/manage.py runserver 8001" echo echo "to start a development instance of the Datatracker." echo - echo " ietf/manage.py test --settings=settings_postgrestest" + echo " ietf/manage.py test --settings=settings_test" echo echo "to run all the python tests." echo diff --git a/docker/scripts/db-load-default-extensions.sh b/docker/scripts/db-load-default-extensions.sh index 23329267c..efb64b75d 100644 --- a/docker/scripts/db-load-default-extensions.sh +++ b/docker/scripts/db-load-default-extensions.sh @@ -2,7 +2,7 @@ set -e # Adding the extension to the default template is needed to allow the test-suite -# to be run on postgres (see ietf.settings_postgrestest). The test runner always +# to be run on postgres (see ietf.settings_test). The test runner always # makes a fresh test database instance, and since we are bypassing the migration # framework and using a fixture to set the database structure, there's no reaonable # way to install the extension as part of the test run. diff --git a/ietf/api/views.py b/ietf/api/views.py index 0e346e758..b9ff1ed34 100644 --- a/ietf/api/views.py +++ b/ietf/api/views.py @@ -425,8 +425,14 @@ def directauth(request): # Note well that we are using user.username, not what was passed to the API. if user_query.count() == 1 and authenticate(username = user_query.first().username, password = password): + user = user_query.get() + if user_query.filter(person__isnull=True).count() == 1: # Can't inspect user.person direclty here + log.log(f"Direct auth of personless user {user.pk}:{user.username}") + else: + log.log(f"Direct auth: {user.pk}:{user.person.plain_name()}") return HttpResponse(json.dumps(dict(result="success")), content_type='application/json') + log.log(f"Direct auth failure: {username}") return HttpResponse(json.dumps(dict(result="failure", reason="authentication failed")), content_type='application/json') else: diff --git a/ietf/doc/templatetags/ballot_icon.py b/ietf/doc/templatetags/ballot_icon.py index 9ddb3833a..ebcc605cd 100644 --- a/ietf/doc/templatetags/ballot_icon.py +++ b/ietf/doc/templatetags/ballot_icon.py @@ -212,9 +212,9 @@ def state_age_colored(doc): goal1 = 14 goal2 = 28 if days > goal2: - class_name = "bg-danger" + class_name = "text-bg-danger" elif days > goal1: - class_name = "bg-warning" + class_name = "text-bg-warning" else: # don't show a badge when things are in the green; clutters display # class_name = "text-success" @@ -247,6 +247,6 @@ def auth48_alert_badge(doc): rfced_state = doc.get_state_slug('draft-rfceditor') if rfced_state == 'auth48': - return mark_safe('<span class="badge rounded-pill bg-info" title="AUTH48">AUTH48</span>') + return mark_safe('<span class="badge rounded-pill text-bg-info" title="AUTH48">AUTH48</span>') return '' diff --git a/ietf/doc/templatetags/ietf_filters.py b/ietf/doc/templatetags/ietf_filters.py index 901289c8f..e59ef2bed 100644 --- a/ietf/doc/templatetags/ietf_filters.py +++ b/ietf/doc/templatetags/ietf_filters.py @@ -706,10 +706,10 @@ def action_holder_badge(action_holder): '' >>> action_holder_badge(DocumentActionHolderFactory(time_added=timezone.now() - datetime.timedelta(days=16))) - '<span class="badge rounded-pill bg-danger" title="In state for 16 days; goal is <15 days."><i class="bi bi-clock-fill"></i> 16</span>' + '<span class="badge rounded-pill text-bg-danger" title="In state for 16 days; goal is <15 days."><i class="bi bi-clock-fill"></i> 16</span>' >>> action_holder_badge(DocumentActionHolderFactory(time_added=timezone.now() - datetime.timedelta(days=30))) - '<span class="badge rounded-pill bg-danger" title="In state for 30 days; goal is <15 days."><i class="bi bi-clock-fill"></i> 30</span>' + '<span class="badge rounded-pill text-bg-danger" title="In state for 30 days; goal is <15 days."><i class="bi bi-clock-fill"></i> 30</span>' >>> settings.DOC_ACTION_HOLDER_AGE_LIMIT_DAYS = old_limit """ @@ -717,7 +717,7 @@ def action_holder_badge(action_holder): age = (timezone.now() - action_holder.time_added).days if age > age_limit: return mark_safe( - '<span class="badge rounded-pill bg-danger" title="In state for %d day%s; goal is <%d days."><i class="bi bi-clock-fill"></i> %d</span>' + '<span class="badge rounded-pill text-bg-danger" title="In state for %d day%s; goal is <%d days."><i class="bi bi-clock-fill"></i> %d</span>' % (age, "s" if age != 1 else "", age_limit, age) ) else: @@ -844,3 +844,37 @@ def is_valid_url(url): except ValidationError: return False return True + + +@register.filter +def badgeify(blob): + """ + Add an appropriate bootstrap badge around "text", based on its contents. + """ + config = [ + (r"rejected|not ready", "danger", "x-lg"), + (r"complete|accepted|ready", "success", ""), + (r"has nits|almost ready", "info", "info-lg"), + (r"has issues", "warning", "exclamation-lg"), + (r"assigned", "info", "person-plus-fill"), + (r"will not review|overtaken by events|withdrawn", "secondary", "dash-lg"), + (r"no response", "warning", "question-lg"), + ] + text = str(blob) + + for pattern, color, icon in config: + if re.search(pattern, text, flags=re.IGNORECASE): + # Shorten the badge text + text = re.sub(r"with ", "w/", text, flags=re.IGNORECASE) + text = re.sub(r"document", "doc", text, flags=re.IGNORECASE) + text = re.sub(r"will not", "won't", text, flags=re.IGNORECASE) + + return mark_safe( + f""" + <span class="badge rounded-pill text-bg-{color} text-wrap"> + <i class="bi bi-{icon}"></i> {text.capitalize()} + </span> + """ + ) + + return text diff --git a/ietf/doc/tests.py b/ietf/doc/tests.py index cedc02c09..05e721034 100644 --- a/ietf/doc/tests.py +++ b/ietf/doc/tests.py @@ -431,8 +431,8 @@ class SearchTests(TestCase): self.assertEqual(r.status_code, 200) q = PyQuery(r.content) self.assertEqual(len(q('td.doc')),3) - self.assertTrue(q('td.status span.bg-warning[title*="%s"]' % "for 15 days")) - self.assertTrue(q('td.status span.bg-danger[title*="%s"]' % "for 29 days")) + self.assertTrue(q('td.status span.text-bg-warning[title*="%s"]' % "for 15 days")) + self.assertTrue(q('td.status span.text-bg-danger[title*="%s"]' % "for 29 days")) for ah in [draft.action_holders.first() for draft in drafts]: self.assertContains(r, escape(ah.name)) @@ -2773,7 +2773,7 @@ class PdfizedTests(TestCase): url = urlreverse(self.view, kwargs=argdict) r = self.client.get(url) self.assertEqual(r.status_code,200) - self.assertEqual(r.get('Content-Type'),'application/pdf;charset=utf-8') + self.assertEqual(r.get('Content-Type'),'application/pdf') def should_404(self, argdict): url = urlreverse(self.view, kwargs=argdict) diff --git a/ietf/doc/tests_draft.py b/ietf/doc/tests_draft.py index dc027af77..2437a74cd 100644 --- a/ietf/doc/tests_draft.py +++ b/ietf/doc/tests_draft.py @@ -1,4 +1,4 @@ -# Copyright The IETF Trust 2011-2020, All Rights Reserved +# Copyright The IETF Trust 2011-2023, All Rights Reserved # -*- coding: utf-8 -*- @@ -311,6 +311,24 @@ class ChangeStateTests(TestCase): # action holders self.assertCountEqual(draft.action_holders.all(), [ad]) + def test_iesg_state_edit_button(self): + ad = Person.objects.get(user__username="ad") + draft = WgDraftFactory(ad=ad,states=[('draft','active'),('draft-iesg','ad-eval')]) + + url = urlreverse("ietf.doc.views_doc.document_main", kwargs=dict(name=draft.name)) + self.client.login(username="ad", password="ad+password") + + r = self.client.get(url) + self.assertEqual(r.status_code, 200) + q = PyQuery(r.content) + self.assertIn("Edit", q('tr:contains("IESG state")').text()) + + draft.set_state(State.objects.get(used=True, type="draft-iesg", slug="dead")) + r = self.client.get(url) + self.assertEqual(r.status_code, 200) + q = PyQuery(r.content) + self.assertNotIn("Edit", q('tr:contains("IESG state")').text()) + class EditInfoTests(TestCase): def test_edit_info(self): diff --git a/ietf/doc/tests_statement.py b/ietf/doc/tests_statement.py index 6115dbc5a..a511e957b 100644 --- a/ietf/doc/tests_statement.py +++ b/ietf/doc/tests_statement.py @@ -5,6 +5,7 @@ import debug # pyflakes:ignore from pyquery import PyQuery from pathlib import Path +from zoneinfo import ZoneInfo from django.conf import settings from django.core.files.uploadedfile import SimpleUploadedFile @@ -68,7 +69,10 @@ This test section has some text. self.assertEqual(q("#statement-type").text(), "IAB Statement") self.assertIn("has some text", q(".card-body").text()) published = doc.docevent_set.filter(type="published_statement").last().time - self.assertIn(published.date().isoformat(), q("#published").text()) + self.assertIn( + published.astimezone(ZoneInfo(settings.TIME_ZONE)).date().isoformat(), + q("#published").text(), + ) doc.set_state(State.objects.get(type_id="statement", slug="replaced")) doc2 = StatementFactory() diff --git a/ietf/doc/views_doc.py b/ietf/doc/views_doc.py index 5f45eebac..209b38d9c 100644 --- a/ietf/doc/views_doc.py +++ b/ietf/doc/views_doc.py @@ -640,6 +640,14 @@ def document_main(request, name, rev=None, document_html=False): # Do not show the Auth48 URL in the "Additional URLs" section additional_urls = doc.documenturl_set.exclude(tag_id='auth48') + # Stream description and name passing test + if doc.stream != None: + stream_desc = doc.stream.desc + stream = "draft-stream-" + doc.stream.slug + else: + stream_desc = "(None)" + stream = "(None)" + html = None js = None css = None @@ -658,6 +666,7 @@ def document_main(request, name, rev=None, document_html=False): html = doc.html_body() if request.COOKIES.get("pagedeps") == "inline": js = Path(finders.find("ietf/js/document_html.js")).read_text() + js += Path(finders.find("ietf/js/theme.js")).read_text() css = Path(finders.find("ietf/css/document_html_inline.css")).read_text() if html: css += Path(finders.find("ietf/css/document_html_txt.css")).read_text() @@ -675,6 +684,8 @@ def document_main(request, name, rev=None, document_html=False): split_content=split_content, revisions=simple_diff_revisions if document_html else revisions, snapshot=snapshot, + stream=stream, + stream_desc=stream_desc, latest_revision=latest_revision, latest_rev=latest_rev, can_edit=can_edit, @@ -1092,7 +1103,7 @@ def document_pdfized(request, name, rev=None, ext=None): pdf = doc.pdfized() if pdf: - return HttpResponse(pdf,content_type='application/pdf;charset=utf-8') + return HttpResponse(pdf,content_type='application/pdf') else: raise Http404 diff --git a/ietf/doc/views_help.py b/ietf/doc/views_help.py index fd46bda31..73cdcdd20 100644 --- a/ietf/doc/views_help.py +++ b/ietf/doc/views_help.py @@ -7,12 +7,13 @@ from ietf.doc.models import State, StateType, IESG_SUBSTATE_TAGS from ietf.name.models import DocRelationshipName, DocTagName from ietf.doc.utils import get_tags_for_stream_id -# TODO: This is haphazardly implemented. Either flesh it out or reconsider the utility of showing these in these this way. -def state_help(request, type): +def state_help(request, type=None): slug, title = { "draft-iesg": ("draft-iesg", "IESG States for Internet-Drafts"), "draft-rfceditor": ("draft-rfceditor", "RFC Editor States for Internet-Drafts"), "draft-iana-action": ("draft-iana-action", "IANA Action States for Internet-Drafts"), + "draft-iana-review": ("draft-iana-review", "IANA Review States for Internet-Drafts"), + "draft-iana-experts": ("draft-iana-experts", "IANA Expert Review States for Internet-Drafts"), "draft-stream-ietf": ("draft-stream-ietf", "IETF Stream States for Internet-Drafts"), "draft-stream-irtf": ("draft-stream-irtf", "IRTF Stream States for Internet-Drafts"), "draft-stream-ise": ("draft-stream-ise", "ISE Stream States for Internet-Drafts"), @@ -26,7 +27,7 @@ def state_help(request, type): }.get(type, (None, None)) state_type = get_object_or_404(StateType, slug=slug) - states = State.objects.filter(type=state_type).order_by("order") + states = State.objects.filter(used=True, type=state_type).order_by("order") has_next_states = False for state in states: diff --git a/ietf/doc/views_search.py b/ietf/doc/views_search.py index ac823b6a5..14e572c61 100644 --- a/ietf/doc/views_search.py +++ b/ietf/doc/views_search.py @@ -58,7 +58,7 @@ from ietf.doc.models import ( Document, DocHistory, State, IESG_BALLOT_ACTIVE_STATES, IESG_STATCHG_CONFLREV_ACTIVE_STATES, IESG_CHARTER_ACTIVE_STATES ) from ietf.doc.fields import select2_id_doc_name_json -from ietf.doc.utils import get_search_cache_key, augment_events_with_revision +from ietf.doc.utils import get_search_cache_key, augment_events_with_revision, needed_ballot_positions from ietf.group.models import Group from ietf.idindex.index import active_drafts_index_by_group from ietf.name.models import DocTagName, DocTypeName, StreamName @@ -497,6 +497,7 @@ def ad_workload(request): [ ("Publication Requested Internet-Draft", False), ("AD Evaluation Internet-Draft", False), + ("Last Call Requested Internet-Draft", True), ("In Last Call Internet-Draft", True), ("Waiting for Writeup Internet-Draft", False), ("IESG Evaluation - Defer Internet-Draft", False), @@ -532,6 +533,7 @@ def ad_workload(request): [ ("Publication Requested Status Change", False), ("AD Evaluation Status Change", False), + ("Last Call Requested Status Change", True), ("In Last Call Status Change", True), ("Waiting for Writeup Status Change", False), ("IESG Evaluation Status Change", True), @@ -705,18 +707,20 @@ def docs_for_ad(request, name): for d in results: d.search_heading = ad_dashboard_group(d) - # - # Additional content showing docs with blocking positions by this ad + + # Additional content showing docs with blocking positions by this AD, + # and docs that the AD hasn't balloted on that are lacking ballot positions to progress blocked_docs = [] + not_balloted_docs = [] if ad in get_active_ads(): - possible_docs = Document.objects.filter(Q(states__type="draft-iesg", - states__slug__in=IESG_BALLOT_ACTIVE_STATES) | - Q(states__type="charter", - states__slug__in=IESG_CHARTER_ACTIVE_STATES) | - Q(states__type__in=("statchg", "conflrev"), - states__slug__in=IESG_STATCHG_CONFLREV_ACTIVE_STATES), - docevent__ballotpositiondocevent__pos__blocking=True, - docevent__ballotpositiondocevent__balloter=ad).distinct() + iesg_docs = Document.objects.filter(Q(states__type="draft-iesg", + states__slug__in=IESG_BALLOT_ACTIVE_STATES) | + Q(states__type="charter", + states__slug__in=IESG_CHARTER_ACTIVE_STATES) | + Q(states__type__in=("statchg", "conflrev"), + states__slug__in=IESG_STATCHG_CONFLREV_ACTIVE_STATES)).distinct() + possible_docs = iesg_docs.filter(docevent__ballotpositiondocevent__pos__blocking=True, + docevent__ballotpositiondocevent__balloter=ad) for doc in possible_docs: ballot = doc.active_ballot() if not ballot: @@ -737,12 +741,26 @@ def docs_for_ad(request, name): if blocked_docs: blocked_docs.sort(key=lambda d: min(p.time for p in d.blocking_positions if p.balloter==ad), reverse=True) - for d in blocked_docs: - if d.get_base_name() == 'charter-ietf-shmoo-01-04.txt': - print('Is in list') + possible_docs = iesg_docs.exclude( + Q(docevent__ballotpositiondocevent__balloter=ad) + ) + for doc in possible_docs: + ballot = doc.active_ballot() + if ( + not ballot + or doc.get_state_slug("draft") == "repl" + or (doc.telechat_date() and doc.telechat_date() > timezone.now().date()) + ): + continue + + iesg_ballot_summary = needed_ballot_positions( + doc, list(ballot.active_balloter_positions().values()) + ) + if re.search(r"\bNeeds\s+\d+", iesg_ballot_summary): + not_balloted_docs.append(doc) return render(request, 'doc/drafts_for_ad.html', { - 'form':form, 'docs':results, 'meta':meta, 'ad_name': ad.plain_name(), 'blocked_docs': blocked_docs + 'form':form, 'docs':results, 'meta':meta, 'ad_name': ad.plain_name(), 'blocked_docs': blocked_docs, 'not_balloted_docs': not_balloted_docs }) def drafts_in_last_call(request): lc_state = State.objects.get(type="draft-iesg", slug="lc").pk diff --git a/ietf/group/admin.py b/ietf/group/admin.py index afaa87c0b..5095b6b24 100644 --- a/ietf/group/admin.py +++ b/ietf/group/admin.py @@ -5,6 +5,8 @@ import re from functools import update_wrapper +from base64 import b64encode + import debug # pyflakes:ignore from django import forms @@ -12,6 +14,7 @@ from django import forms from django.contrib import admin from django.contrib.admin.utils import unquote from django.core.management import load_command_class +from django.db.models import BinaryField from django.http import Http404 from django.shortcuts import render from django.utils.encoding import force_str @@ -20,7 +23,7 @@ from django.utils.translation import gettext as _ from ietf.group.models import (Group, GroupFeatures, GroupHistory, GroupEvent, GroupURL, GroupMilestone, GroupMilestoneHistory, GroupStateTransitions, Role, RoleHistory, ChangeStateGroupEvent, - MilestoneGroupEvent, GroupExtResource, ) + MilestoneGroupEvent, GroupExtResource, Appeal, AppealArtifact ) from ietf.name.models import GroupTypeName from ietf.utils.validators import validate_external_resource_value @@ -291,3 +294,52 @@ class GroupExtResourceAdmin(admin.ModelAdmin): search_fields = ['group__acronym', 'value', 'display_name', 'name__slug',] raw_id_fields = ['group', ] admin.site.register(GroupExtResource, GroupExtResourceAdmin) + +class AppealAdmin(admin.ModelAdmin): + list_display = ["group", "date", "name"] + search_fields = ["group__acronym", "date", "name"] + raw_id_fields = ["group"] +admin.site.register(Appeal, AppealAdmin) + +# From https://stackoverflow.com/questions/58529099/adding-file-upload-widget-for-binaryfield-to-django-admin +class BinaryFileInput(forms.ClearableFileInput): + + def is_initial(self, value): + """ + Return whether value is considered to be initial value. + """ + return bool(value) + + def format_value(self, value): + """Format the size of the value in the db. + + We can't render it's name or url, but we'd like to give some information + as to wether this file is not empty/corrupt. + """ + if self.is_initial(value): + return f'{len(value)} bytes' + + + def value_from_datadict(self, data, files, name): + """Return the file contents so they can be put in the db.""" + upload = super().value_from_datadict(data, files, name) + if upload: + bits = upload.read() + return b64encode(bits).decode("ascii") # Who made this so hard? + +class RestrictContentTypeChoicesForm(forms.ModelForm): + content_type = forms.ChoiceField( + choices=( + ( "text/markdown;charset=utf-8", "Markdown"), + ( "application/pdf", "PDF") + ) + ) +class AppealArtifactAdmin(admin.ModelAdmin): + list_display = ["display_title", "appeal","date"] + ordering = ["-appeal__date", "date"] + formfield_overrides = { + BinaryField: { "widget": BinaryFileInput() }, + } + form = RestrictContentTypeChoicesForm + +admin.site.register(AppealArtifact, AppealArtifactAdmin) diff --git a/ietf/group/factories.py b/ietf/group/factories.py index d56fcf721..8968b9b4c 100644 --- a/ietf/group/factories.py +++ b/ietf/group/factories.py @@ -7,8 +7,16 @@ from typing import List # pyflakes:ignore from django.utils import timezone -from ietf.group.models import Group, Role, GroupEvent, GroupMilestone, \ - GroupHistory, RoleHistory +from ietf.group.models import ( + Appeal, + AppealArtifact, + Group, + GroupEvent, + GroupMilestone, + GroupHistory, + Role, + RoleHistory +) from ietf.review.factories import ReviewTeamSettingsFactory from ietf.utils.timezone import date_today @@ -120,3 +128,34 @@ class RoleHistoryFactory(factory.django.DjangoModelFactory): person = factory.SubFactory('ietf.person.factories.PersonFactory') email = factory.LazyAttribute(lambda obj: obj.person.email()) +class AppealFactory(factory.django.DjangoModelFactory): + class Meta: + model=Appeal + + name=factory.Faker("sentence") + group=factory.SubFactory(GroupFactory, acronym="iab") + +class AppealArtifactFactory(factory.django.DjangoModelFactory): + class Meta: + model=AppealArtifact + + appeal = factory.SubFactory(AppealFactory) + artifact_type = factory.SubFactory("ietf.name.factories.AppealArtifactTypeNameFactory", slug="appeal") + content_type = "text/markdown;charset=utf-8" + # Needs newer factory_boy + # bits = factory.Transformer( + # "Some example **Markdown**", + # lambda o: memoryview(o.encode("utf-8") if isinstance(o,str) else o) + # ) + # + # Usage: a = AppealArtifactFactory(set_bits__using="foo bar") or + # a = AppealArtifactFactory(set_bits__using=b"foo bar") + @factory.post_generation + def set_bits(obj, create, extracted, **kwargs): + if not create: + return + using = kwargs.pop("using","Some example **Markdown**") + if isinstance(using, str): + using = using.encode("utf-8") + obj.bits = memoryview(using) + diff --git a/ietf/group/management/commands/import_iab_appeals.py b/ietf/group/management/commands/import_iab_appeals.py new file mode 100644 index 000000000..bd62157c0 --- /dev/null +++ b/ietf/group/management/commands/import_iab_appeals.py @@ -0,0 +1,205 @@ +# Copyright The IETF Trust 2023, All Rights Reserved + +import debug # pyflakes: ignore + +import datetime +import shutil +import subprocess +import tempfile + +from pathlib import Path + +from django.core.management.base import BaseCommand + +from ietf.group.models import Appeal, AppealArtifact + +from ietf.name.models import AppealArtifactTypeName + + +PDF_FILES = [ + "2006-01-04-appeal.pdf", + "2006-08-24-appeal.pdf", + "2006-09-11-appeal.pdf", + "2008-11-29-appeal.pdf", + "2010-06-07-appeal.pdf", + "2010-06-07-response.pdf", + "2013-07-08-appeal.pdf", + "2015-06-22-appeal.pdf", + "2019-01-31-appeal.pdf", + "2019-01-31-response.pdf", +] + +NAME_PART_MAP = { + "appeal": "appeal", + "response": "response", + "appeal_with_response": "response", + "reply_to_response": "reply", +} + + +def bits_name(date, part): + part_type = part["type"] + name_fragment = NAME_PART_MAP[part_type] + prefix = f"{date:%Y-%m-%d}-{name_fragment}" + if f"{prefix}.pdf" in PDF_FILES: + ext = "pdf" + else: + ext = "md" + return f"{prefix}.{ext}" + + +def date_from_string(datestring): + year, month, day = [int(part) for part in datestring.split("-")] + return datetime.date(year, month, day) + + +def work_to_do(): + # Taken from https://www.iab.org/appeals/ on 2023-08-24 - some lines carved out below as exceptions + input = """ + 2020-07-31 IAB appeal for arpa assignment (Timothy McSweeney) IAB Response (2020-08-26) + 2019-01-31 An appeal to make the procedure related to Independent Submission Stream more transparent (Shyam Bandyopadhyay) IAB Response (2019-03-06) + 2015-06-22 Appeal to the IAB concerning the IESG response to his appeal concerning the IESG approval of the “draft-ietf-ianaplan-icg-response” (JFC Morfin) IAB Response (2015-07-08) + 2013-07-08 Appeal to the IAB irt. RFC 6852 (JFC Morfin) IAB Response (2013-07-17) + 2010-06-07 Appeal over the IESG Publication of the IDNA2008 Document Set Without Appropriate Explanation to the Internet Community (JFC Morfin) IAB Response (2010-08-20) + 2008-11-29 Appeal to the IAB Concerning the Way Users Are Not Permitted To Adequately Contribute to the IETF (JFC Morfin) IAB Response (2009-01-28) + 2006-10-10 Complaints about suspension from the ietf@ietf.org mailing list (Todd Glassey) IAB Response (2006-10-31) + 2006-09-11 Appeal to the IAB over IESG dismissed appeals from J-F C. Morfin (JFC Morfin) IAB Response (2006-12-05) + 2006-09-10 Appeal of IESG Decision of July 10, 2006 from Dean Anderson (Dean Anderson) IAB Response (2006-09-27) + 2006-08-24 Appeal Against the decision to consider expediting an RFC Publication from J-F C. Morfin (JFC Morfin) IAB Response (2006-09-07) + 2006-04-18 Appeal Against IESG PR-Action from Dean Anderson (Dean Anderson) IAB Response (2006-07-13) + 2006-02-08 Appeal Against IESG Decision by Julian Mehnle (Julian Mehnle) IAB Response (2006-03-02) + 2006-01-04 Appeal Against IESG Decision by Jefsey Morfin (JFC Morfin) IAB Response (2006-01-31) + 2003-01-04 Appeal against IESG decision (Robert Elz) IAB Response (includes original appeal)(2003-02-15) + 2000-11-15 Appeal Against IESG Action by Mr. D J Bernstein (D J Bernstein) IAB Response (2001-02-26) + 1999-10-23 Appeal against IESG Inaction by W.A. Simpson (William Allen Simpson) IAB Response (2000-01-11) + 1999-05-01 Appeal against IESG action (William Allen Simpson) IAB Response (1999-10-05) + 1996-03-06 Appeal SNMPv2 SMI Appeal by Mr. David T. Perkins, IAB consideration (David Perkins) IAB Response (includes original appeal) (1996-03-06) + """ + + work = [] + + for line in input.split("\n"): + line = line.strip() + if line == "": + continue + appeal_date = line[:10] + response_date = line[-11:-1] + title = line[11:-12].strip().split(")")[0] + ")" + item = dict(title=title, date=appeal_date, parts=[]) + if appeal_date in [ + "2006-10-10", + "2000-11-15", + "1999-10-23", + "1999-05-01", + "1996-03-06", + ]: + item["parts"].append(dict(type="appeal_with_response", date=response_date)) + else: + item["parts"].append(dict(type="appeal", date=appeal_date)) + item["parts"].append(dict(type="response", date=response_date)) + work.append(item) + + # Hand building the items for the following + # exceptions=""" + # 2003-10-09 Appeal to the IAB on the site-local issue (Tony Hain) + # IAB Response (2003-11-12) + # Tony Hain reply to IAB Response (2003-11-18) + # 1995-02-18 (etc.) Appeal Against IESG Inaction by Mr. Dave Cocker, Mr W. Simpson (Dave Crocker, William Allen Simpson) IAB Response (1995-04-04 and 1995-04-05) + # """ + item = dict( + title="Appeal to the IAB on the site-local issue (Tony Hain)", + date="2003-10-09", + parts=[], + ) + item["parts"].append( + dict( + type="appeal", + date="2003-10-09", + ) + ) + item["parts"].append( + dict( + type="response", + date="2003-11-12", + ) + ) + item["parts"].append( + dict( + type="reply_to_response", + date="2003-11-18", + ) + ) + work.append(item) + + item = dict( + title="Appeal Against IESG Inaction by Mr. Dave Cocker, Mr W. Simpson (Dave Crocker, William Allen Simpson)", + date="1995-02-18", + parts=[], + ) + item["parts"].append( + dict( + type="appeal", + date="1995-02-18", + ) + ) + item["parts"].append( + dict( + type="response", + date="1995-04-05", + ) + ) + work.append(item) + + for item in work: + item["date"] = date_from_string(item["date"]) + for part in item["parts"]: + part["date"] = date_from_string(part["date"]) + + work.sort(key=lambda o: o["date"]) + + return work + + +class Command(BaseCommand): + help = "Performs a one-time import of IAB appeals" + + def handle(self, *args, **options): + tmpdir = tempfile.mkdtemp() + process = subprocess.Popen( + ["git", "clone", "https://github.com/kesara/iab-scraper.git", tmpdir], + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + ) + stdout, stderr = process.communicate() + if not Path(tmpdir).joinpath("iab_appeals", "1995-02-18-appeal.md").exists(): + print("Git clone of the iab-scraper directory did not go as expected") + print("stdout:", stdout) + print("stderr:", stderr) + print(f"Clean up {tmpdir} manually") + exit(-1) + + work = work_to_do() + + for item in work: + # IAB is group 7 + appeal = Appeal.objects.create(name=item["title"], date=item["date"], group_id=7) + for part in item["parts"]: + bits_file_name = bits_name(item["date"], part) + if bits_file_name.endswith(".pdf"): + content_type = "application/pdf" + else: + content_type = "text/markdown;charset=utf-8" + with Path(tmpdir).joinpath("iab_appeals", bits_file_name).open( + "rb" + ) as source_file: + bits = source_file.read() + artifact_type = AppealArtifactTypeName.objects.get(slug=part["type"]) + AppealArtifact.objects.create( + appeal = appeal, + artifact_type=artifact_type, + date=part["date"], + content_type=content_type, + bits=bits, + ) + + shutil.rmtree(tmpdir) diff --git a/ietf/group/migrations/0002_appeal.py b/ietf/group/migrations/0002_appeal.py new file mode 100644 index 000000000..e993eba35 --- /dev/null +++ b/ietf/group/migrations/0002_appeal.py @@ -0,0 +1,83 @@ +# Copyright The IETF Trust 2023, All Rights Reserved + +from django.db import migrations, models +import django.db.models.deletion +import ietf.utils.models +import ietf.utils.timezone + + +class Migration(migrations.Migration): + dependencies = [ + ("name", "0007_appeal_artifact_typename"), + ("group", "0001_initial"), + ] + + operations = [ + migrations.CreateModel( + name="Appeal", + fields=[ + ( + "id", + models.AutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ("name", models.CharField(max_length=512)), + ("date", models.DateField(default=ietf.utils.timezone.date_today)), + ( + "group", + models.ForeignKey( + on_delete=django.db.models.deletion.PROTECT, to="group.group" + ), + ), + ], + options={ + "ordering": ["-date", "-id"], + }, + ), + migrations.CreateModel( + name="AppealArtifact", + fields=[ + ( + "id", + models.AutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ("date", models.DateField(default=ietf.utils.timezone.date_today)), + ( + "title", + models.CharField( + blank=True, + help_text="The artifact_type.name will be used if this field is blank", + max_length=256, + ), + ), + ("order", models.IntegerField(default=0)), + ("content_type", models.CharField(max_length=32)), + ("bits", models.BinaryField(editable=True)), + ( + "appeal", + ietf.utils.models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, to="group.appeal" + ), + ), + ( + "artifact_type", + ietf.utils.models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + to="name.appealartifacttypename", + ), + ), + ], + options={ + "ordering": ["date", "order", "artifact_type__order"], + }, + ), + ] diff --git a/ietf/group/models.py b/ietf/group/models.py index 112522f2c..52549e8cc 100644 --- a/ietf/group/models.py +++ b/ietf/group/models.py @@ -13,16 +13,19 @@ from django.db import models from django.db.models.deletion import CASCADE, PROTECT from django.dispatch import receiver from django.utils import timezone +from django.utils.text import slugify import debug # pyflakes:ignore from ietf.name.models import (GroupStateName, GroupTypeName, DocTagName, GroupMilestoneStateName, RoleName, - AgendaTypeName, AgendaFilterTypeName, ExtResourceName, SessionPurposeName) + AgendaTypeName, AgendaFilterTypeName, ExtResourceName, SessionPurposeName, + AppealArtifactTypeName ) from ietf.person.models import Email, Person from ietf.utils.db import IETFJSONField from ietf.utils.mail import formataddr, send_mail_text from ietf.utils import log from ietf.utils.models import ForeignKey, OneToOneField +from ietf.utils.timezone import date_today from ietf.utils.validators import JSONForeignKeyListValidator @@ -409,6 +412,46 @@ class RoleHistory(models.Model): class Meta: verbose_name_plural = "role histories" +class Appeal(models.Model): + name = models.CharField(max_length=512) + group = models.ForeignKey(Group, on_delete=models.PROTECT) + date = models.DateField(default=date_today) + + class Meta: + ordering = ['-date', '-id'] + + def __str__(self): + return f"{self.date} - {self.name}" + +class AppealArtifact(models.Model): + appeal = ForeignKey(Appeal) + artifact_type = ForeignKey(AppealArtifactTypeName) + date = models.DateField(default=date_today) + title = models.CharField(max_length=256, blank=True, help_text="The artifact_type.name will be used if this field is blank") + order = models.IntegerField(default=0) + content_type = models.CharField(max_length=32) + # "Abusing" BinaryField (see the django docs) for the small number of + # these things we have on purpose. Later, any non-markdown content may + # move off into statics instead. + bits = models.BinaryField(editable=True) + + class Meta: + ordering = ['date', 'order', 'artifact_type__order'] + + def display_title(self): + if self.title != "": + return self.title + else: + return self.artifact_type.name + + def is_markdown(self): + return self.content_type == "text/markdown;charset=utf-8" + + def download_name(self): + return f"{self.date}-{slugify(self.display_title())}.{'md' if self.is_markdown() else 'pdf'}" + + def __str__(self): + return f"{self.date} {self.display_title()} : {self.appeal.name}" # --- Signal hooks for group models --- diff --git a/ietf/group/resources.py b/ietf/group/resources.py index 310fb5fb9..698f50460 100644 --- a/ietf/group/resources.py +++ b/ietf/group/resources.py @@ -13,7 +13,7 @@ from ietf import api from ietf.group.models import (Group, GroupStateTransitions, GroupMilestone, GroupHistory, # type: ignore GroupURL, Role, GroupEvent, RoleHistory, GroupMilestoneHistory, MilestoneGroupEvent, - ChangeStateGroupEvent, GroupFeatures, GroupExtResource) + ChangeStateGroupEvent, GroupFeatures, GroupExtResource, Appeal, AppealArtifact) from ietf.person.resources import PersonResource @@ -333,3 +333,42 @@ class GroupExtResourceResource(ModelResource): "name": ALL_WITH_RELATIONS, } api.group.register(GroupExtResourceResource()) + + +class AppealResource(ModelResource): + group = ToOneField(GroupResource, 'group') + class Meta: + queryset = Appeal.objects.all() + serializer = api.Serializer() + cache = SimpleCache() + #resource_name = 'appeal' + ordering = ['id', ] + filtering = { + "id": ALL, + "name": ALL, + "date": ALL, + "group": ALL_WITH_RELATIONS, + } +api.group.register(AppealResource()) + +from ietf.name.resources import AppealArtifactTypeNameResource +class AppealArtifactResource(ModelResource): + appeal = ToOneField(AppealResource, 'appeal') + artifact_type = ToOneField(AppealArtifactTypeNameResource, 'artifact_type') + class Meta: + excludes= ("bits",) + queryset = AppealArtifact.objects.all() + serializer = api.Serializer() + cache = SimpleCache() + #resource_name = 'appealartifact' + ordering = [ "id", ] + filtering = { + "id": ALL, + "date": ALL, + "title": ALL, + "order": ALL, + "content_type": ALL, + "appeal": ALL_WITH_RELATIONS, + "artifact_type": ALL_WITH_RELATIONS, + } +api.group.register(AppealArtifactResource()) diff --git a/ietf/group/tests_appeals.py b/ietf/group/tests_appeals.py new file mode 100644 index 000000000..ae6c54bf4 --- /dev/null +++ b/ietf/group/tests_appeals.py @@ -0,0 +1,71 @@ +# Copyright The IETF Trust 2023, All Rights Reserved + +import debug # pyflakes: ignore +import datetime + +from pyquery import PyQuery + +from django.urls import reverse as urlreverse + +from ietf.utils.test_utils import login_testing_unauthorized, TestCase +from ietf.group.factories import ( + AppealFactory, + AppealArtifactFactory, +) +class AppealTests(TestCase): + + def test_download_name(self): + artifact = AppealArtifactFactory() + self.assertEqual(artifact.download_name(),f"{artifact.date}-appeal.md") + artifact = AppealArtifactFactory(content_type="application/pdf",artifact_type__slug="response") + self.assertEqual(artifact.download_name(),f"{artifact.date}-response.pdf") + + + def test_appeal_list_view(self): + appeal_date = datetime.date.today()-datetime.timedelta(days=14) + response_date = appeal_date+datetime.timedelta(days=8) + appeal = AppealFactory(name="A name to look for", date=appeal_date) + appeal_artifact = AppealArtifactFactory(appeal=appeal, artifact_type__slug="appeal", date=appeal_date) + response_artifact = AppealArtifactFactory(appeal=appeal, artifact_type__slug="response", content_type="application/pdf", date=response_date) + + url = urlreverse("ietf.group.views.appeals", kwargs=dict(acronym="iab")) + r = self.client.get(url) + self.assertEqual(r.status_code, 200) + q = PyQuery(r.content) + self.assertEqual(len(q("#appeals > tbody > tr")), 1) + self.assertEqual(q("#appeal-1-date").text(), f"{appeal_date}") + self.assertEqual(f"{appeal_artifact.display_title()} - {appeal_date}", q("#artifact-1-1").text()) + self.assertEqual(f"{response_artifact.display_title()} - {response_date}", q("#artifact-1-2").text()) + self.assertIsNone(q("#artifact-1-1").attr("download")) + self.assertEqual(q("#artifact-1-2").attr("download"), response_artifact.download_name()) + + def test_markdown_view(self): + artifact = AppealArtifactFactory() + url = urlreverse("ietf.group.views.appeal_artifact", kwargs=dict(acronym="iab", artifact_id=artifact.pk)) + r = self.client.get(url) + self.assertEqual(r.status_code, 200) + q = PyQuery(r.content) + self.assertEqual(q("#content>p>strong").text(),"Markdown") + self.assertIsNone(q("#content a").attr("download")) + self.client.login(username='secretary', password='secretary+password') + r = self.client.get(url) + self.assertEqual(r.status_code, 200) + q = PyQuery(r.content) + self.assertEqual(q("#content a").attr("download"), artifact.download_name()) + + def test_markdown_download(self): + artifact = AppealArtifactFactory() + url = urlreverse("ietf.group.views.appeal_artifact_markdown", kwargs=dict(acronym="iab", artifact_id=artifact.pk)) + login_testing_unauthorized(self, "secretary", url) + r = self.client.get(url) + self.assertContains(r, "**Markdown**", status_code=200) + + def test_pdf_download(self): + artifact = AppealArtifactFactory(content_type="application/pdf") # The bits won't _really_ be pdf + url = urlreverse("ietf.group.views.appeal_artifact", kwargs=dict(acronym="iab", artifact_id=artifact.pk)) + r = self.client.get(url) + self.assertEqual(r.status_code, 200) + self.assertEqual(r.get("Content-Disposition"), f'attachment; filename="{artifact.download_name()}"') + self.assertEqual(r.get("Content-Type"), artifact.content_type) + self.assertEqual(r.content, artifact.bits.tobytes()) + diff --git a/ietf/group/tests_info.py b/ietf/group/tests_info.py index 6a4677701..e57b2e0cd 100644 --- a/ietf/group/tests_info.py +++ b/ietf/group/tests_info.py @@ -473,13 +473,13 @@ class GroupPagesTests(TestCase): r = self.client.get(url) self.assertEqual(r.status_code,200) q = PyQuery(r.content) - self.assertEqual(q('.badge.bg-warning').text(),"Concluded WG") + self.assertEqual(q('.badge.text-bg-warning').text(),"Concluded WG") replaced_group = GroupFactory(state_id='replaced') url = urlreverse("ietf.group.views.history",kwargs={'acronym':replaced_group.acronym}) r = self.client.get(url) self.assertEqual(r.status_code,200) q = PyQuery(r.content) - self.assertEqual(q('.badge.bg-warning').text(),"Replaced WG") + self.assertEqual(q('.badge.text-bg-warning').text(),"Replaced WG") class GroupEditTests(TestCase): diff --git a/ietf/group/tests_review.py b/ietf/group/tests_review.py index af374f676..60c11689b 100644 --- a/ietf/group/tests_review.py +++ b/ietf/group/tests_review.py @@ -236,7 +236,7 @@ class ReviewTests(TestCase): r = self.client.get(url) self.assertEqual(r.status_code, 200) # We should see the new document with status of no response - self.assertContains(r, "No Response") + self.assertContains(r, "No response") self.assertContains(r, review_req1.doc.name) self.assertContains(r, review_req2.doc.name) # None of the reviews should be completed this time, diff --git a/ietf/group/urls.py b/ietf/group/urls.py index 814fb9733..b2af8d9e2 100644 --- a/ietf/group/urls.py +++ b/ietf/group/urls.py @@ -48,6 +48,11 @@ info_detail_urls = [ url(r'^reset_next_reviewer/$', views.reset_next_reviewer), url(r'^email-aliases/$', RedirectView.as_view(pattern_name=views.email,permanent=False),name='ietf.group.urls_info_details.redirect.email'), url(r'^statements/$', views.statements), + url(r'^appeals/$', views.appeals), + url(r'^appeals/artifact/(?P<artifact_id>\d+)$', views.appeal_artifact), + url(r'^appeals/artifact/(?P<artifact_id>\d+)/markdown$', views.appeal_artifact_markdown), + + ] diff --git a/ietf/group/utils.py b/ietf/group/utils.py index 42ae4554b..ed6552998 100644 --- a/ietf/group/utils.py +++ b/ietf/group/utils.py @@ -233,6 +233,7 @@ def construct_group_menu_context(request, group, selected, group_type, others): entries.append(("Meetings", urlreverse("ietf.group.views.meetings", kwargs=kwargs))) if group.acronym in ["iab", "iesg"]: entries.append(("Statements", urlreverse("ietf.group.views.statements", kwargs=kwargs))) + entries.append(("Appeals", urlreverse("ietf.group.views.appeals", kwargs=kwargs))) entries.append(("History", urlreverse("ietf.group.views.history", kwargs=kwargs))) entries.append(("Photos", urlreverse("ietf.group.views.group_photos", kwargs=kwargs))) entries.append(("Email expansions", urlreverse("ietf.group.views.email", kwargs=kwargs))) diff --git a/ietf/group/views.py b/ietf/group/views.py index d93dfddac..10606b603 100644 --- a/ietf/group/views.py +++ b/ietf/group/views.py @@ -72,7 +72,7 @@ from ietf.group.forms import (GroupForm, StatusUpdateForm, ConcludeGroupForm, St AddUnavailablePeriodForm, EndUnavailablePeriodForm, ReviewSecretarySettingsForm, ) from ietf.group.mails import email_admin_re_charter, email_personnel_change, email_comment from ietf.group.models import ( Group, Role, GroupEvent, GroupStateTransitions, - ChangeStateGroupEvent, GroupFeatures ) + ChangeStateGroupEvent, GroupFeatures, AppealArtifact ) from ietf.group.utils import (get_charter_text, can_manage_all_groups_of_type, milestone_reviewer_for_group_type, can_provide_status_update, can_manage_materials, group_attribute_change_desc, @@ -111,7 +111,7 @@ from ietf.doc.models import LastCallDocEvent from ietf.name.models import ReviewAssignmentStateName from ietf.utils.mail import send_mail_text, parse_preformatted -from ietf.ietfauth.utils import user_is_person +from ietf.ietfauth.utils import user_is_person, role_required from ietf.dbtemplate.models import DBTemplate from ietf.mailtrigger.utils import gather_address_lists from ietf.mailtrigger.models import Recipient @@ -1332,6 +1332,16 @@ def group_menu_data(request): # groups_by_parent[g.parent_id].append({ 'acronym': g.acronym, 'name': escape(g.name), 'url': url }) groups_by_parent[g.parent_id].append({ 'acronym': g.acronym, 'name': escape(g.name), 'type': escape(g.type.verbose_name or g.type.name), 'url': url }) + iab = Group.objects.get(acronym="iab") + groups_by_parent[iab.pk].insert( + 0, + { + "acronym": iab.acronym, + "name": iab.name, + "type": "Top Level Group", + "url": urlreverse("ietf.group.views.group_home", kwargs={"acronym": iab.acronym}) + } + ) return JsonResponse(groups_by_parent) @@ -2103,5 +2113,48 @@ def statements(request, acronym, group_type=None): ), ) +def appeals(request, acronym, group_type=None): + if not acronym in ["iab", "iesg"]: + raise Http404 + group = get_group_or_404(acronym, group_type) + appeals = group.appeal_set.all() + return render( + request, + "group/appeals.html", + construct_group_menu_context( + request, + group, + "appeals", + group_type, + { + "group": group, + "appeals": appeals, + }, + ), + ) - +def appeal_artifact(request, acronym, artifact_id, group_type=None): + artifact = get_object_or_404(AppealArtifact, pk=artifact_id) + if artifact.is_markdown(): + artifact_html = markdown.markdown(artifact.bits.tobytes().decode("utf-8")) + return render( + request, + "group/appeal_artifact.html", + dict(artifact=artifact, artifact_html=artifact_html) + ) + else: + return HttpResponse( + artifact.bits, + headers = { + "Content-Type": artifact.content_type, + "Content-Disposition": f'attachment; filename="{artifact.download_name()}"' + } + ) + +@role_required("Secretariat") +def appeal_artifact_markdown(request, acronym, artifact_id, group_type=None): + artifact = get_object_or_404(AppealArtifact, pk=artifact_id) + if artifact.is_markdown(): + return HttpResponse(artifact.bits, content_type=artifact.content_type) + else: + raise Http404 diff --git a/ietf/ipr/factories.py b/ietf/ipr/factories.py index 7f884d94f..823d58129 100644 --- a/ietf/ipr/factories.py +++ b/ietf/ipr/factories.py @@ -1,4 +1,4 @@ -# Copyright The IETF Trust 2018-2020, All Rights Reserved +# Copyright The IETF Trust 2018-2023, All Rights Reserved # -*- coding: utf-8 -*- @@ -95,3 +95,11 @@ class IprEventFactory(factory.django.DjangoModelFactory): disclosure = factory.SubFactory(IprDisclosureBaseFactory) desc = factory.Faker('sentence') +class IprDocRelFactory(factory.django.DjangoModelFactory): + class Meta: + model = IprDocRel + + disclosure = factory.SubFactory(HolderIprDisclosureFactory) + document = factory.SubFactory("ietf.doc.factories.IndividualDraftFactory") + revisions = "00" + sections = "" diff --git a/ietf/ipr/forms.py b/ietf/ipr/forms.py index 23f059958..2b1d278f4 100644 --- a/ietf/ipr/forms.py +++ b/ietf/ipr/forms.py @@ -1,4 +1,4 @@ -# Copyright The IETF Trust 2014-2020, All Rights Reserved +# Copyright The IETF Trust 2014-2023, All Rights Reserved # -*- coding: utf-8 -*- @@ -105,6 +105,15 @@ class DraftForm(forms.ModelForm): } help_texts = { 'sections': 'Sections' } + def clean(self): + cleaned_data = super().clean() + revisions = cleaned_data.get("revisions") + document = cleaned_data.get("document") + if not document.name.startswith("rfc"): + if revisions.strip() == "": + self.add_error("revisions", "Revisions of this Internet-Draft for which this disclosure is relevant must be specified.") + return cleaned_data + patent_number_help_text = "Enter one or more comma-separated patent publication or application numbers as two-letter country code and serial number, e.g.: US62/123456 or WO2017123456. Do not include thousands-separator commas in serial numbers. It is preferable to use individual disclosures for each patent, even if this field permits multiple patents to be listed, in order to get inventor, title, and date information below correct." validate_patent_number = RegexValidator( regex=(r"^(" diff --git a/ietf/ipr/templatetags/ipr_filters.py b/ietf/ipr/templatetags/ipr_filters.py index 21d5579bf..013038750 100644 --- a/ietf/ipr/templatetags/ipr_filters.py +++ b/ietf/ipr/templatetags/ipr_filters.py @@ -1,10 +1,14 @@ -# Copyright The IETF Trust 2014-2020, All Rights Reserved +# Copyright The IETF Trust 2014-2023, All Rights Reserved # -*- coding: utf-8 -*- +import debug # pyflakes: ignore + from django import template from django.utils.html import format_html +from ietf.doc.models import NewRevisionDocEvent + register = template.Library() @@ -26,3 +30,37 @@ def render_message_for_history(msg): @register.filter def to_class_name(value): return value.__class__.__name__ + +def draft_rev_at_time(iprdocrel): + draft = iprdocrel.document.document + event = iprdocrel.disclosure.get_latest_event_posted() + if event is None: + return ("","The Internet-Draft's revision at the time this disclosure was posted could not be determined.") + time = event.time + if not NewRevisionDocEvent.objects.filter(doc=draft).exists(): + return ("","The Internet-Draft's revision at the time this disclosure was posted could not be determined.") + rev_event_before = NewRevisionDocEvent.objects.filter(doc=draft, time__lte=time).order_by('-time').first() + if rev_event_before is None: + return ("","The Internet-Draft's initial submission was after this disclosure was posted.") + else: + return(rev_event_before.rev, "") + +@register.filter +def no_revisions_message(iprdocrel): + draft = iprdocrel.document.document + if draft.type_id != "draft" or iprdocrel.revisions.strip() != "": + return "" + rev_at_time, exception = draft_rev_at_time(iprdocrel) + current_rev = draft.rev + + first_line = "No revisions for this Internet-Draft were specified in this disclosure." + contact_line = "Contact the discloser or patent holder if there are questions about which revisions this disclosure pertains to." + + if current_rev == "00": + return f"{first_line} However, there is only one revision of this Internet-Draft." + + if rev_at_time: + return f"{first_line} The Internet-Draft's revision was {rev_at_time} at the time this disclosure was posted. {contact_line}" + else: + return f"{first_line} {exception} {contact_line}" + diff --git a/ietf/ipr/tests.py b/ietf/ipr/tests.py index be90b7c6d..a64d6ac48 100644 --- a/ietf/ipr/tests.py +++ b/ietf/ipr/tests.py @@ -1,4 +1,4 @@ -# Copyright The IETF Trust 2009-2020, All Rights Reserved +# Copyright The IETF Trust 2009-2023, All Rights Reserved # -*- coding: utf-8 -*- @@ -15,13 +15,25 @@ from django.utils import timezone import debug # pyflakes:ignore -from ietf.doc.factories import DocumentFactory, WgDraftFactory, WgRfcFactory, RfcFactory +from ietf.doc.factories import ( + DocumentFactory, + WgDraftFactory, + WgRfcFactory, + RfcFactory, + NewRevisionDocEventFactory +) from ietf.group.factories import RoleFactory -from ietf.ipr.factories import HolderIprDisclosureFactory, GenericIprDisclosureFactory, IprEventFactory +from ietf.ipr.factories import ( + HolderIprDisclosureFactory, + GenericIprDisclosureFactory, + IprDocRelFactory, + IprEventFactory +) from ietf.ipr.mail import (process_response_email, get_reply_to, get_update_submitter_emails, get_pseudo_submitter, get_holders, get_update_cc_addrs) from ietf.ipr.models import (IprDisclosureBase,GenericIprDisclosure,HolderIprDisclosure, ThirdPartyIprDisclosure) +from ietf.ipr.templatetags.ipr_filters import no_revisions_message from ietf.ipr.utils import get_genitive, get_ipr_summary from ietf.mailtrigger.utils import gather_address_lists from ietf.message.models import Message @@ -305,6 +317,38 @@ class IprTests(TestCase): r = self.client.post(url, data) self.assertContains(r, "Your IPR disclosure has been submitted", msg_prefix="Checked patent number: %s" % patent_number) + def test_new_specific_no_revision(self): + draft = WgDraftFactory() + WgRfcFactory() + url = urlreverse("ietf.ipr.views.new", kwargs={ "type": "specific" }) + + # successful post + empty_outbox() + data = { + "holder_legal_name": "Test Legal", + "holder_contact_name": "Test Holder", + "holder_contact_email": "test@holder.com", + "holder_contact_info": "555-555-0100", + "ietfer_name": "Test Participant", + "ietfer_contact_info": "555-555-0101", + "iprdocrel_set-TOTAL_FORMS": 2, + "iprdocrel_set-INITIAL_FORMS": 0, + "iprdocrel_set-0-document": draft.docalias.first().pk, + "iprdocrel_set-1-document": DocAlias.objects.filter(name__startswith="rfc").first().pk, + "patent_number": "SE12345678901", + "patent_inventor": "A. Nonymous", + "patent_title": "A method of transferring bits", + "patent_date": "2000-01-01", + "has_patent_pending": False, + "licensing": "royalty-free", + "submitter_name": "Test Holder", + "submitter_email": "test@holder.com", + } + r = self.client.post(url, data) + self.assertEqual(r.status_code, 200) + q = PyQuery(r.content) + self.assertTrue(q("#id_iprdocrel_set-0-revisions").hasClass("is-invalid")) + def test_new_thirdparty(self): """Add a new third-party disclosure. Note: submitter does not need to be logged in. """ @@ -761,4 +805,64 @@ Subject: test removed_docevent = doc.docevent_set.filter(type='removed_related_ipr').first() self.assertIn(ipr.title, removed_docevent.desc, 'IprDisclosure title does not appear in DocEvent desc when removed') + + def test_no_revisions_message(self): + draft = WgDraftFactory(rev="02") + now = timezone.now() + for rev in range(0,3): + NewRevisionDocEventFactory(doc=draft, rev=f"{rev:02d}", time=now-datetime.timedelta(days=30*(2-rev))) + # Disclosure has non-empty revisions field on its related draft + iprdocrel = IprDocRelFactory(document=draft.docalias.first()) + IprEventFactory(type_id="posted",time=now,disclosure=iprdocrel.disclosure) + self.assertEqual( + no_revisions_message(iprdocrel), + "" + ) + + # Disclosure has more than one revision, none called out, disclosure after submissions + iprdocrel = IprDocRelFactory(document=draft.docalias.first(), revisions="") + IprEventFactory(type_id="posted",time=now,disclosure=iprdocrel.disclosure) + self.assertEqual( + no_revisions_message(iprdocrel), + "No revisions for this Internet-Draft were specified in this disclosure. The Internet-Draft's revision was 02 at the time this disclosure was posted. Contact the discloser or patent holder if there are questions about which revisions this disclosure pertains to." + ) + + # Disclosure has more than one revision, none called out, disclosure after 01 + iprdocrel = IprDocRelFactory(document=draft.docalias.first(), revisions="") + e = IprEventFactory(type_id="posted",disclosure=iprdocrel.disclosure) + e.time = now-datetime.timedelta(days=15) + e.save() + self.assertEqual( + no_revisions_message(iprdocrel), + "No revisions for this Internet-Draft were specified in this disclosure. The Internet-Draft's revision was 01 at the time this disclosure was posted. Contact the discloser or patent holder if there are questions about which revisions this disclosure pertains to." + ) + + # Disclosure has more than one revision, none called out, disclosure was before the 00 + iprdocrel = IprDocRelFactory(document=draft.docalias.first(), revisions="") + e = IprEventFactory(type_id="posted",disclosure=iprdocrel.disclosure) + e.time = now-datetime.timedelta(days=180) + e.save() + self.assertEqual( + no_revisions_message(iprdocrel), + "No revisions for this Internet-Draft were specified in this disclosure. The Internet-Draft's initial submission was after this disclosure was posted. Contact the discloser or patent holder if there are questions about which revisions this disclosure pertains to." + ) + + # disclosed draft has no NewRevisionDocEvents + draft = WgDraftFactory(rev="20") + draft.docevent_set.all().delete() + iprdocrel = IprDocRelFactory(document=draft.docalias.first(), revisions="") + IprEventFactory(type_id="posted",disclosure=iprdocrel.disclosure) + self.assertEqual( + no_revisions_message(iprdocrel), + "No revisions for this Internet-Draft were specified in this disclosure. The Internet-Draft's revision at the time this disclosure was posted could not be determined. Contact the discloser or patent holder if there are questions about which revisions this disclosure pertains to." + ) + + # disclosed draft has only one revision + draft = WgDraftFactory(rev="00") + iprdocrel = IprDocRelFactory(document=draft.docalias.first(), revisions="") + IprEventFactory(type_id="posted",disclosure=iprdocrel.disclosure) + self.assertEqual( + no_revisions_message(iprdocrel), + "No revisions for this Internet-Draft were specified in this disclosure. However, there is only one revision of this Internet-Draft." + ) diff --git a/ietf/meeting/management/commands/import_iab_agendas.py b/ietf/meeting/management/commands/import_iab_agendas.py new file mode 100644 index 000000000..a1b78003e --- /dev/null +++ b/ietf/meeting/management/commands/import_iab_agendas.py @@ -0,0 +1,240 @@ +# Copyright The IETF Trust 2023, All Rights Reserved + +import datetime +import os +import shutil +import subprocess +import tempfile + +from pathlib import Path + +from django.core.management.base import BaseCommand +from django.conf import settings + +from ietf.doc.models import Document, DocAlias, DocEvent +from ietf.meeting.models import Meeting, Session + + +def agendas_to_import(): + return [ + "2018-09-05.md", + "2018-09-12.md", + "2018-09-26.md", + "2018-10-03.md", + "2018-10-10.md", + "2018-10-24.md", + "2018-11-04.md", + "2018-11-05.md", + "2018-11-08.md", + "2018-11-21.md", + "2018-11-28.md", + "2018-12-05.md", + "2018-12-19.md", + "2019-01-09.md", + "2019-01-16.md", + "2019-01-23.md", + "2019-02-06.md", + "2019-02-13.md", + "2019-02-27.md", + "2019-03-06.md", + "2019-03-13.md", + "2019-03-24.md", + "2019-03-25.md", + "2019-03-28.md", + "2019-04-10.md", + "2019-04-17.md", + "2019-05-01.md", + "2019-05-08.md", + "2019-05-29.md", + "2019-06-12.md", + "2019-06-26.md", + "2019-07-10.md", + "2019-07-21.md", + "2019-07-25.md", + "2019-08-07.md", + "2019-08-21.md", + "2019-08-28.md", + "2019-09-04.md", + "2019-09-18.md", + "2019-10-02.md", + "2019-10-16.md", + "2019-10-30.md", + "2019-11-17.md", + "2019-11-18.md", + "2019-11-21.md", + "2019-12-04.md", + "2019-12-11.md", + "2019-12-18.md", + "2020-01-08.md", + "2020-01-15.md", + "2020-01-22.md", + "2020-02-05.md", + "2020-02-12.md", + "2020-02-19.md", + "2020-03-04.md", + "2020-03-11.md", + "2020-03-18.md", + "2020-04-01.md", + "2020-04-08.md", + "2020-04-15.md", + "2020-04-29.md", + "2020-05-13.md", + "2020-05-20.md", + "2020-05-27.md", + "2020-06-10.md", + "2020-06-17.md", + "2020-07-01.md", + "2020-07-15.md", + "2020-08-12.md", + "2020-08-26.md", + "2020-09-09.md", + "2020-09-23.md", + "2020-10-07.md", + "2020-10-14.md", + "2020-10-21.md", + "2020-11-04.md", + "2020-12-02.md", + "2020-12-16.md", + "2021-01-06.md", + "2021-01-13.md", + "2021-01-20.md", + "2021-01-27.md", + "2021-02-03.md", + "2021-02-10.md", + "2021-02-17.md", + "2021-02-24.md", + "2021-03-03.md", + "2021-03-24.md", + "2021-03-31.md", + "2021-04-07.md", + "2021-04-14.md", + "2021-04-21.md", + "2021-05-05.md", + "2021-05-12.md", + "2021-05-19.md", + "2021-05-26.md", + "2021-06-02.md", + "2021-06-16.md", + "2021-06-23.md", + "2021-06-30.md", + "2021-07-14.md", + "2021-07-21.md", + "2021-08-11.md", + "2021-08-25.md", + "2021-09-01.md", + "2021-09-08.md", + "2021-09-22.md", + "2021-10-06.md", + "2021-10-20.md", + "2021-10-27.md", + "2021-11-17.md", + "2021-12-01.md", + "2021-12-08.md", + "2021-12-15.md", + "2022-01-12.md", + "2022-01-19.md", + "2022-02-02.md", + "2022-02-16.md", + "2022-02-23.md", + "2022-03-02.md", + "2022-03-09.md", + "2022-03-20.md", + "2022-04-06.md", + "2022-04-13.md", + "2022-04-20.md", + "2022-04-27.md", + "2022-05-04.md", + "2022-05-11.md", + "2022-06-01.md", + "2022-06-15.md", + "2022-06-22.md", + "2022-06-29.md", + "2022-07-06.md", + "2022-07-24.md", + "2022-07-26.md", + "2022-08-10.md", + "2022-08-24.md", + "2022-09-07.md", + "2022-09-21.md", + "2022-09-28.md", + "2022-10-05.md", + "2022-10-12.md", + "2022-10-26.md", + "2022-11-06.md", + "2022-11-08.md", + "2022-11-10.md", + "2022-11-23.md", + "2022-12-07.md", + "2022-12-14.md", + ] + + +class Command(BaseCommand): + help = "Performs a one-time import of older IAB agendas" + + def handle(self, *args, **options): + if Document.objects.filter(name="agenda-interim-2018-iab-26-20180905").exists(): + print("Command has already been run - exiting") + exit(0) + + tmpdir = tempfile.mkdtemp() + process = subprocess.Popen( + ["git", "clone", "https://github.com/kesara/iab-scraper.git", tmpdir], + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + ) + stdout, stderr = process.communicate() + if not Path(tmpdir).joinpath("iab_agendas", "2018-09-05.md").exists(): + print("Git clone of the iab-scraper directory did not go as expected") + print("stdout:", stdout) + print("stderr:", stderr) + print(f"Clean up {tmpdir} manually") + exit(-1) + + agendas = agendas_to_import() + for agenda in agendas: + [year, month, day] = [int(part) for part in agenda[:10].split("-")] + agenda_date = datetime.date(year, month, day) + meeting = Meeting.objects.get( + date=agenda_date, type_id="interim", session__group__acronym="iab" + ) + counter = int(meeting.number.split("-")[3]) + agenda_docname = ( + f"agenda-interim-{year}-iab-{counter:02d}-{agenda_date:%Y%m%d}" + ) + agenda_filename = f"{agenda_docname}-00.md" + # Create Document + doc = Document.objects.create( + name=agenda_docname, + type_id="agenda", + title=f"Agenda {meeting.number} {agenda_date:%Y-%m-%d}", + group_id=7, # The IAB group + rev="00", + uploaded_filename=agenda_filename, + ) + DocAlias.objects.create(name=doc.name).docs.add(doc) + e = DocEvent.objects.create( + type="comment", + doc=doc, + rev="00", + by_id=1, # The "(System)" person + desc="Agenda moved into datatracker from iab wordpress website", + ) + doc.save_with_history([e]) + + session = Session.objects.get(meeting=meeting) + # Add Document to Session + session.sessionpresentation_set.create(document=doc, rev=doc.rev) + + # Put file in place + source = Path(tmpdir).joinpath("iab_agendas", agenda) + dest = Path(settings.AGENDA_PATH).joinpath( + meeting.number, "agenda", agenda_filename + ) + if dest.exists(): + print(f"WARNING: {dest} already exists - not overwriting it.") + else: + os.makedirs(dest.parent, exist_ok=True) + shutil.copy(source, dest) + + shutil.rmtree(tmpdir) diff --git a/ietf/meeting/views.py b/ietf/meeting/views.py index 4a1544a5e..4c30c67f8 100644 --- a/ietf/meeting/views.py +++ b/ietf/meeting/views.py @@ -2431,7 +2431,8 @@ def session_details(request, num, acronym): # we somewhat arbitrarily use the group of the last session we get from # get_sessions() above when checking can_manage_session_materials() - can_manage = can_manage_session_materials(request.user, session.group, session) + group = session.group + can_manage = can_manage_session_materials(request.user, group, session) can_view_request = can_view_interim_request(meeting, request.user) scheduled_sessions = [s for s in sessions if s.current_status == 'sched'] @@ -2449,7 +2450,7 @@ def session_details(request, num, acronym): 'unscheduled_sessions':unscheduled_sessions , 'pending_suggestions' : pending_suggestions, 'meeting' :meeting , - 'acronym' :acronym, + 'group': group, 'is_materials_manager' : session.group.has_role(request.user, session.group.features.matman_roles), 'can_manage_materials' : can_manage, 'can_view_request': can_view_request, diff --git a/ietf/name/admin.py b/ietf/name/admin.py index 5a72dc22f..2458da37d 100644 --- a/ietf/name/admin.py +++ b/ietf/name/admin.py @@ -2,63 +2,141 @@ from django.contrib import admin from ietf.name.models import ( - AgendaTypeName, BallotPositionName, ConstraintName, ContinentName, CountryName, DBTemplateTypeName, - DocRelationshipName, DocReminderTypeName, DocTagName, DocTypeName, DraftSubmissionStateName, - FeedbackTypeName, FormalLanguageName, GroupMilestoneStateName, GroupStateName, GroupTypeName, - ImportantDateName, IntendedStdLevelName, IprDisclosureStateName, IprEventTypeName, - IprLicenseTypeName, LiaisonStatementEventTypeName, LiaisonStatementPurposeName, - LiaisonStatementState, LiaisonStatementTagName, MeetingTypeName, NomineePositionStateName, - ReviewRequestStateName, ReviewResultName, ReviewTypeName, RoleName, RoomResourceName, - SessionStatusName, StdLevelName, StreamName, TimeSlotTypeName, TopicAudienceName, - DocUrlTagName, ReviewAssignmentStateName, ReviewerQueuePolicyName, TimerangeName, - ExtResourceName, ExtResourceTypeName, SlideSubmissionStatusName, ProceedingsMaterialTypeName, - AgendaFilterTypeName, SessionPurposeName, TelechatAgendaSectionName ) + AgendaTypeName, + BallotPositionName, + ConstraintName, + ContinentName, + CountryName, + DBTemplateTypeName, + DocRelationshipName, + DocReminderTypeName, + DocTagName, + DocTypeName, + DraftSubmissionStateName, + FeedbackTypeName, + FormalLanguageName, + GroupMilestoneStateName, + GroupStateName, + GroupTypeName, + ImportantDateName, + IntendedStdLevelName, + IprDisclosureStateName, + IprEventTypeName, + IprLicenseTypeName, + LiaisonStatementEventTypeName, + LiaisonStatementPurposeName, + LiaisonStatementState, + LiaisonStatementTagName, + MeetingTypeName, + NomineePositionStateName, + ReviewRequestStateName, + ReviewResultName, + ReviewTypeName, + RoleName, + RoomResourceName, + SessionStatusName, + StdLevelName, + StreamName, + TimeSlotTypeName, + TopicAudienceName, + DocUrlTagName, + ReviewAssignmentStateName, + ReviewerQueuePolicyName, + TimerangeName, + ExtResourceName, + ExtResourceTypeName, + SlideSubmissionStatusName, + ProceedingsMaterialTypeName, + AgendaFilterTypeName, + SessionPurposeName, + TelechatAgendaSectionName, + AppealArtifactTypeName, +) from ietf.stats.models import CountryAlias + class NameAdmin(admin.ModelAdmin): list_display = ["slug", "name", "desc", "used", "order"] search_fields = ["slug", "name"] - prepopulate_from = { "slug": ("name",) } + prepopulate_from = {"slug": ("name",)} + class DocRelationshipNameAdmin(NameAdmin): list_display = ["slug", "name", "revname", "desc", "used"] + + admin.site.register(DocRelationshipName, DocRelationshipNameAdmin) - + + class DocTypeNameAdmin(NameAdmin): list_display = ["slug", "name", "prefix", "desc", "used"] + + admin.site.register(DocTypeName, DocTypeNameAdmin) + class GroupTypeNameAdmin(NameAdmin): list_display = ["slug", "name", "verbose_name", "desc", "used"] + + admin.site.register(GroupTypeName, GroupTypeNameAdmin) + class CountryAliasInline(admin.TabularInline): model = CountryAlias extra = 1 + class CountryNameAdmin(NameAdmin): list_display = ["slug", "name", "continent", "in_eu"] list_filter = ["continent", "in_eu"] inlines = [CountryAliasInline] + + admin.site.register(CountryName, CountryNameAdmin) + class ImportantDateNameAdmin(NameAdmin): list_display = ["slug", "name", "desc", "used", "default_offset_days"] - ordering = ('-used','default_offset_days',) -admin.site.register(ImportantDateName,ImportantDateNameAdmin) + ordering = ( + "-used", + "default_offset_days", + ) + + +admin.site.register(ImportantDateName, ImportantDateNameAdmin) + class ExtResourceNameAdmin(NameAdmin): - list_display = ["slug", "name", "type", "desc", "used",] -admin.site.register(ExtResourceName,ExtResourceNameAdmin) + list_display = [ + "slug", + "name", + "type", + "desc", + "used", + ] + + +admin.site.register(ExtResourceName, ExtResourceNameAdmin) + class ProceedingsMaterialTypeNameAdmin(NameAdmin): - list_display = ["slug", "name", "desc", "used", "order",] + list_display = [ + "slug", + "name", + "desc", + "used", + "order", + ] + + admin.site.register(ProceedingsMaterialTypeName, ProceedingsMaterialTypeNameAdmin) admin.site.register(AgendaFilterTypeName, NameAdmin) admin.site.register(AgendaTypeName, NameAdmin) +admin.site.register(AppealArtifactTypeName, NameAdmin) admin.site.register(BallotPositionName, NameAdmin) admin.site.register(ConstraintName, NameAdmin) admin.site.register(ContinentName, NameAdmin) diff --git a/ietf/name/factories.py b/ietf/name/factories.py new file mode 100644 index 000000000..73399dcbb --- /dev/null +++ b/ietf/name/factories.py @@ -0,0 +1,13 @@ +# Copyright The IETF Trust 2023, All Rights Reserved +# -*- coding: utf-8 -*- + +import factory + +from .models import ( + AppealArtifactTypeName, +) + +class AppealArtifactTypeNameFactory(factory.django.DjangoModelFactory): + class Meta: + model = AppealArtifactTypeName + django_get_or_create = ("slug",) diff --git a/ietf/name/fixtures/names.json b/ietf/name/fixtures/names.json index f8535a5dd..bed428c60 100644 --- a/ietf/name/fixtures/names.json +++ b/ietf/name/fixtures/names.json @@ -6635,6 +6635,56 @@ "model": "name.agendatypename", "pk": "workshop" }, + { + "fields": { + "desc": "The content of an appeal", + "name": "Appeal", + "order": 1, + "used": true + }, + "model": "name.appealartifacttypename", + "pk": "appeal" + }, + { + "fields": { + "desc": "The content of an appeal combined with the content of a response", + "name": "Response (with appeal included)", + "order": 2, + "used": true + }, + "model": "name.appealartifacttypename", + "pk": "appeal_with_response" + }, + { + "fields": { + "desc": "Other content related to an appeal", + "name": "Other content", + "order": 5, + "used": true + }, + "model": "name.appealartifacttypename", + "pk": "other_content" + }, + { + "fields": { + "desc": "The content of a reply to an appeal response", + "name": "Reply to response", + "order": 4, + "used": true + }, + "model": "name.appealartifacttypename", + "pk": "reply_to_response" + }, + { + "fields": { + "desc": "The content of a response to an appeal", + "name": "Response", + "order": 3, + "used": true + }, + "model": "name.appealartifacttypename", + "pk": "response" + }, { "fields": { "blocking": false, @@ -11155,6 +11205,7 @@ { "fields": { "desc": "", + "legend": "C", "name": "Comment", "order": 1, "used": true @@ -11165,6 +11216,7 @@ { "fields": { "desc": "", + "legend": "J", "name": "Junk", "order": 5, "used": true @@ -11175,6 +11227,7 @@ { "fields": { "desc": "", + "legend": "N", "name": "Nomination", "order": 2, "used": true @@ -11185,6 +11238,7 @@ { "fields": { "desc": "", + "legend": "O", "name": "Overcome by events", "order": 4, "used": true @@ -11195,6 +11249,7 @@ { "fields": { "desc": "", + "legend": "Q", "name": "Questionnaire response", "order": 3, "used": true @@ -11205,6 +11260,7 @@ { "fields": { "desc": "", + "legend": "R", "name": "Read", "order": 6, "used": true @@ -16513,7 +16569,7 @@ "fields": { "command": "xym", "switch": "--version", - "time": "2023-08-13T07:09:38.976Z", + "time": "2023-08-22T07:09:39.542Z", "used": true, "version": "xym 0.7.0" }, @@ -16524,7 +16580,7 @@ "fields": { "command": "pyang", "switch": "--version", - "time": "2023-08-13T07:09:39.314Z", + "time": "2023-08-22T07:09:39.881Z", "used": true, "version": "pyang 2.5.3" }, @@ -16535,7 +16591,7 @@ "fields": { "command": "yanglint", "switch": "--version", - "time": "2023-08-13T07:09:39.334Z", + "time": "2023-08-22T07:09:39.899Z", "used": true, "version": "yanglint SO 1.9.2" }, @@ -16546,7 +16602,7 @@ "fields": { "command": "xml2rfc", "switch": "--version", - "time": "2023-08-13T07:09:40.245Z", + "time": "2023-08-22T07:09:40.791Z", "used": true, "version": "xml2rfc 3.18.0" }, diff --git a/ietf/name/migrations/0005_feedbacktypename_schema.py b/ietf/name/migrations/0005_feedbacktypename_schema.py new file mode 100644 index 000000000..cedb129be --- /dev/null +++ b/ietf/name/migrations/0005_feedbacktypename_schema.py @@ -0,0 +1,20 @@ +# Copyright The IETF Trust 2023, All Rights Reserved + +from django.db import migrations, models + +class Migration(migrations.Migration): + dependencies = [ + ("name", "0004_statements"), + ] + + operations = [ + migrations.AddField( + model_name="FeedbackTypeName", + name="legend", + field=models.CharField( + default="", + help_text="One-character legend for feedback classification form", + max_length=1, + ), + ), + ] diff --git a/ietf/name/migrations/0006_feedbacktypename_data.py b/ietf/name/migrations/0006_feedbacktypename_data.py new file mode 100644 index 000000000..f11fca889 --- /dev/null +++ b/ietf/name/migrations/0006_feedbacktypename_data.py @@ -0,0 +1,36 @@ +# Copyright The IETF Trust 2023, All Rights Reserved + +from django.db import migrations + +def forward(apps, schema_editor): + FeedbackTypeName = apps.get_model("name", "FeedbackTypeName") + FeedbackTypeName.objects.create(slug="obe", name="Overcome by events") + for slug, legend, order in ( + ('comment', 'C', 1), + ('nomina', 'N', 2), + ('questio', 'Q', 3), + ('obe', 'O', 4), + ('junk', 'J', 5), + ('read', 'R', 6), + ): + ft = FeedbackTypeName.objects.get(slug=slug) + ft.legend = legend + ft.order = order + ft.save() + +def reverse(apps, schema_editor): + FeedbackTypeName = apps.get_model("name", "FeedbackTypeName") + FeedbackTypeName.objects.filter(slug="obe").delete() + for ft in FeedbackTypeName.objects.all(): + ft.legend = "" + ft.order = 0 + ft.save() + +class Migration(migrations.Migration): + dependencies = [ + ("name", "0005_feedbacktypename_schema"), + ] + + operations = [ + migrations.RunPython(forward, reverse), + ] diff --git a/ietf/name/migrations/0007_appeal_artifact_typename.py b/ietf/name/migrations/0007_appeal_artifact_typename.py new file mode 100644 index 000000000..1a604dad8 --- /dev/null +++ b/ietf/name/migrations/0007_appeal_artifact_typename.py @@ -0,0 +1,59 @@ +# Copyright The IETF Trust 2023, All Rights Reserved + +from django.db import migrations, models + + +def forward(apps, schema_editor): + AppealArtifactTypeName = apps.get_model("name", "AppealArtifactTypeName") + for slug, name, desc, order in [ + ("appeal", "Appeal", "The content of an appeal", 1), + ( + "appeal_with_response", + "Response (with appeal included)", + "The content of an appeal combined with the content of a response", + 2, + ), + ("response", "Response", "The content of a response to an appeal", 3), + ( + "reply_to_response", + "Reply to response", + "The content of a reply to an appeal response", + 4, + ), + ("other_content", "Other content", "Other content related to an appeal", 5), + ]: + AppealArtifactTypeName.objects.create( + slug=slug, name=name, desc=desc, order=order + ) + + +def reverse(apps, schema_editor): + AppealArtifactTypeName = apps.get_model("name", "AppealArtifactTypeName") + AppealArtifactTypeName.objects.delete() + + +class Migration(migrations.Migration): + dependencies = [ + ("name", "0006_feedbacktypename_data"), + ] + + operations = [ + migrations.CreateModel( + name="AppealArtifactTypeName", + fields=[ + ( + "slug", + models.CharField(max_length=32, primary_key=True, serialize=False), + ), + ("name", models.CharField(max_length=255)), + ("desc", models.TextField(blank=True)), + ("used", models.BooleanField(default=True)), + ("order", models.IntegerField(default=0)), + ], + options={ + "ordering": ["order", "name"], + "abstract": False, + }, + ), + migrations.RunPython(forward, reverse), + ] diff --git a/ietf/name/models.py b/ietf/name/models.py index 4b750a62a..9bedd6cc2 100644 --- a/ietf/name/models.py +++ b/ietf/name/models.py @@ -94,6 +94,7 @@ class NomineePositionStateName(NameModel): """Status of a candidate for a position: None, Accepted, Declined""" class FeedbackTypeName(NameModel): """Type of feedback: questionnaires, nominations, comments""" + legend = models.CharField(max_length=1, default="", help_text="One-character legend for feedback classification form") class DBTemplateTypeName(NameModel): """reStructuredText, Plain, Django""" class DraftSubmissionStateName(NameModel): @@ -149,4 +150,7 @@ class ExtResourceName(NameModel): class SlideSubmissionStatusName(NameModel): "Pending, Accepted, Rejected" class TelechatAgendaSectionName(NameModel): - "roll_call", "minutes", "action_items" + """roll_call, minutes, action_items""" + +class AppealArtifactTypeName(NameModel): + pass diff --git a/ietf/name/resources.py b/ietf/name/resources.py index 5624916f0..dffa7669d 100644 --- a/ietf/name/resources.py +++ b/ietf/name/resources.py @@ -18,7 +18,8 @@ from ietf.name.models import ( AgendaFilterTypeName, AgendaTypeName, BallotPosit ReviewAssignmentStateName, ReviewRequestStateName, ReviewResultName, ReviewTypeName, RoleName, RoomResourceName, SessionStatusName, StdLevelName, StreamName, TimeSlotTypeName, TopicAudienceName, ReviewerQueuePolicyName, TimerangeName, ExtResourceTypeName, ExtResourceName, - SlideSubmissionStatusName, ProceedingsMaterialTypeName, SessionPurposeName, TelechatAgendaSectionName ) + SlideSubmissionStatusName, ProceedingsMaterialTypeName, SessionPurposeName, TelechatAgendaSectionName, + AppealArtifactTypeName ) class TimeSlotTypeNameResource(ModelResource): class Meta: @@ -737,3 +738,17 @@ class TelechatAgendaSectionNameResource(ModelResource): "order": ALL, } api.name.register(TelechatAgendaSectionNameResource()) + +class AppealArtifactTypeNameResource(ModelResource): + class Meta: + cache = SimpleCache() + queryset = AppealArtifactTypeName.objects.all() + serializer = api.Serializer() + filtering = { + "slug": ALL, + "name": ALL, + "desc": ALL, + "used": ALL, + "order": ALL, + } +api.name.register(AppealArtifactTypeNameResource()) diff --git a/ietf/nomcom/forms.py b/ietf/nomcom/forms.py index ad7bc67c2..919ed6e18 100644 --- a/ietf/nomcom/forms.py +++ b/ietf/nomcom/forms.py @@ -653,7 +653,7 @@ class PrivateKeyForm(forms.Form): class PendingFeedbackForm(forms.ModelForm): - type = forms.ModelChoiceField(queryset=FeedbackTypeName.objects.all().order_by('pk'), widget=forms.RadioSelect, empty_label='Unclassified', required=False) + type = forms.ModelChoiceField(queryset=FeedbackTypeName.objects.all(), widget=forms.RadioSelect, empty_label='Unclassified', required=False) class Meta: model = Feedback diff --git a/ietf/nomcom/management/commands/create_test_nomcom.py b/ietf/nomcom/management/commands/create_test_nomcom.py index bfca892b8..3365ea8f4 100644 --- a/ietf/nomcom/management/commands/create_test_nomcom.py +++ b/ietf/nomcom/management/commands/create_test_nomcom.py @@ -11,7 +11,7 @@ import debug # pyflakes:ignore from ietf.nomcom.factories import nomcom_kwargs_for_year, NomComFactory, NomineePositionFactory, key from ietf.person.factories import EmailFactory from ietf.group.models import Group -from ietf.person.models import User +from ietf.person.models import Person, User class Command(BaseCommand): help = ("Create (or delete) a nomcom for test and development purposes.") @@ -27,7 +27,9 @@ class Command(BaseCommand): if opt_delete: if Group.objects.filter(acronym='nomcom7437').exists(): Group.objects.filter(acronym='nomcom7437').delete() - User.objects.filter(username__in=['testchair','testmember','testcandidate']).delete() + users_to_delete = ['testchair','testmember','testcandidate'] + Person.objects.filter(user__username__in=users_to_delete).delete() + User.objects.filter(username__in=users_to_delete).delete() self.stdout.write("Deleted test group 'nomcom7437' and its related objects.") else: self.stderr.write("test nomcom 'nomcom7437' does not exist; nothing to do.\n") @@ -57,6 +59,6 @@ class Command(BaseCommand): position__nomcom=nc, position__name='Test Area Director', position__is_iesg_position=True, ) - self.stdout.write("%s\n" % key) + self.stdout.write("%s\n" % key.decode()) self.stdout.write("Nomcom 7437 created. The private key can also be found at any time\nin ietf/nomcom/factories.py. Note that it is NOT a secure key.\n") diff --git a/ietf/nomcom/tests.py b/ietf/nomcom/tests.py index bce7e5a21..b7d3a44ff 100644 --- a/ietf/nomcom/tests.py +++ b/ietf/nomcom/tests.py @@ -1450,7 +1450,7 @@ class FeedbackIndexTests(TestCase): self.assertEqual(response.status_code,200) q = PyQuery(response.content) r = q('tfoot').eq(0).find('td').contents() - self.assertEqual([a.strip() for a in r], ['1', '1', '1']) + self.assertEqual([a.strip() for a in r], ['1', '1', '1', '0']) class FeedbackLastSeenTests(TestCase): @@ -1485,7 +1485,7 @@ class FeedbackLastSeenTests(TestCase): response = self.client.get(url) self.assertEqual(response.status_code,200) q = PyQuery(response.content) - self.assertEqual( len(q('.bg-success')), 4 ) + self.assertEqual( len(q('.text-bg-success')), 4 ) f = self.nc.feedback_set.first() f.time = self.hour_ago @@ -1495,20 +1495,20 @@ class FeedbackLastSeenTests(TestCase): response = self.client.get(url) self.assertEqual(response.status_code,200) q = PyQuery(response.content) - self.assertEqual( len(q('.bg-success')), 3 ) + self.assertEqual( len(q('.text-bg-success')), 3 ) FeedbackLastSeen.objects.update(time=self.second_from_now) response = self.client.get(url) self.assertEqual(response.status_code,200) q = PyQuery(response.content) - self.assertEqual( len(q('.bg-success')), 1 ) + self.assertEqual( len(q('.text-bg-success')), 1 ) TopicFeedbackLastSeen.objects.create(reviewer=self.member,topic=self.topic) TopicFeedbackLastSeen.objects.update(time=self.second_from_now) response = self.client.get(url) self.assertEqual(response.status_code,200) q = PyQuery(response.content) - self.assertEqual( len(q('.bg-success')), 0 ) + self.assertEqual( len(q('.text-bg-success')), 0 ) def test_feedback_nominee_badges(self): url = reverse('ietf.nomcom.views.view_feedback_nominee', kwargs={'year':self.nc.year(), 'nominee_id':self.nominee.id}) @@ -1517,7 +1517,7 @@ class FeedbackLastSeenTests(TestCase): response = self.client.get(url) self.assertEqual(response.status_code,200) q = PyQuery(response.content) - self.assertEqual( len(q('.bg-success')), 3 ) + self.assertEqual( len(q('.text-bg-success')), 3 ) f = self.nc.feedback_set.first() f.time = self.hour_ago @@ -1527,13 +1527,13 @@ class FeedbackLastSeenTests(TestCase): response = self.client.get(url) self.assertEqual(response.status_code,200) q = PyQuery(response.content) - self.assertEqual( len(q('.bg-success')), 2 ) + self.assertEqual( len(q('.text-bg-success')), 2 ) FeedbackLastSeen.objects.update(time=self.second_from_now) response = self.client.get(url) self.assertEqual(response.status_code,200) q = PyQuery(response.content) - self.assertEqual( len(q('.bg-success')), 0 ) + self.assertEqual( len(q('.text-bg-success')), 0 ) def test_feedback_topic_badges(self): url = reverse('ietf.nomcom.views.view_feedback_topic', kwargs={'year':self.nc.year(), 'topic_id':self.topic.id}) @@ -1542,7 +1542,7 @@ class FeedbackLastSeenTests(TestCase): response = self.client.get(url) self.assertEqual(response.status_code,200) q = PyQuery(response.content) - self.assertEqual( len(q('.bg-success')), 1 ) + self.assertEqual( len(q('.text-bg-success')), 1 ) f = self.topic.feedback_set.first() f.time = self.hour_ago @@ -1552,13 +1552,13 @@ class FeedbackLastSeenTests(TestCase): response = self.client.get(url) self.assertEqual(response.status_code,200) q = PyQuery(response.content) - self.assertEqual( len(q('.bg-success')), 0 ) + self.assertEqual( len(q('.text-bg-success')), 0 ) TopicFeedbackLastSeen.objects.update(time=self.second_from_now) response = self.client.get(url) self.assertEqual(response.status_code,200) q = PyQuery(response.content) - self.assertEqual( len(q('.bg-success')), 0 ) + self.assertEqual( len(q('.text-bg-success')), 0 ) class NewActiveNomComTests(TestCase): @@ -2863,3 +2863,113 @@ class VolunteerDecoratorUnitTests(TestCase): self.assertEqual(v.qualifications,'path_2') if v.person == author_person: self.assertEqual(v.qualifications,'path_3') + +class ReclassifyFeedbackTests(TestCase): + """Tests for feedback reclassification""" + + def setUp(self): + super().setUp() + setup_test_public_keys_dir(self) + self.nc = NomComFactory.create(**nomcom_kwargs_for_year()) + self.chair = self.nc.group.role_set.filter(name='chair').first().person + self.member = self.nc.group.role_set.filter(name='member').first().person + self.nominee = self.nc.nominee_set.order_by('pk').first() + self.position = self.nc.position_set.first() + self.topic = self.nc.topic_set.first() + + def tearDown(self): + teardown_test_public_keys_dir(self) + super().tearDown() + + def test_download_feedback_nominee(self): + # not really a reclassification test, but in closely adjacent code + fb = FeedbackFactory.create(nomcom=self.nc,type_id='questio') + fb.positions.add(self.position) + fb.nominees.add(self.nominee) + fb.save() + self.assertEqual(Feedback.objects.questionnaires().count(), 1) + + url = reverse('ietf.nomcom.views.view_feedback_nominee', kwargs={'year':self.nc.year(), 'nominee_id':self.nominee.id}) + login_testing_unauthorized(self,self.member.user.username,url) + provide_private_key_to_test_client(self) + response = self.client.post(url, {'feedback_id': fb.id, 'submit': 'download'}) + self.assertEqual(response.status_code, 403) + + self.client.logout() + self.client.login(username=self.chair.user.username, password=self.chair.user.username + "+password") + provide_private_key_to_test_client(self) + + response = self.client.post(url, {'feedback_id': fb.id, 'submit': 'download'}) + self.assertEqual(response.status_code, 200) + self.assertIn('questionnaire-', response['Content-Disposition']) + + def test_reclassify_feedback_nominee(self): + fb = FeedbackFactory.create(nomcom=self.nc,type_id='comment') + fb.positions.add(self.position) + fb.nominees.add(self.nominee) + fb.save() + self.assertEqual(Feedback.objects.comments().count(), 1) + + url = reverse('ietf.nomcom.views.view_feedback_nominee', kwargs={'year':self.nc.year(), 'nominee_id':self.nominee.id}) + login_testing_unauthorized(self,self.member.user.username,url) + provide_private_key_to_test_client(self) + response = self.client.post(url, {'feedback_id': fb.id, 'type': 'obe', 'submit': 'reclassify'}) + self.assertEqual(response.status_code, 403) + + self.client.logout() + self.client.login(username=self.chair.user.username, password=self.chair.user.username + "+password") + provide_private_key_to_test_client(self) + + response = self.client.post(url, {'feedback_id': fb.id, 'type': 'obe', 'submit': 'reclassify'}) + self.assertEqual(response.status_code, 200) + + fb = Feedback.objects.get(id=fb.id) + self.assertEqual(fb.type_id,'obe') + self.assertEqual(Feedback.objects.comments().count(), 0) + self.assertEqual(Feedback.objects.filter(type='obe').count(), 1) + + def test_reclassify_feedback_topic(self): + fb = FeedbackFactory.create(nomcom=self.nc,type_id='comment') + fb.topics.add(self.topic) + fb.save() + self.assertEqual(Feedback.objects.comments().count(), 1) + + url = reverse('ietf.nomcom.views.view_feedback_topic', kwargs={'year':self.nc.year(), 'topic_id':self.topic.id}) + login_testing_unauthorized(self,self.member.user.username,url) + provide_private_key_to_test_client(self) + response = self.client.post(url, {'feedback_id': fb.id, 'type': 'unclassified'}) + self.assertEqual(response.status_code, 403) + + self.client.logout() + self.client.login(username=self.chair.user.username, password=self.chair.user.username + "+password") + provide_private_key_to_test_client(self) + + response = self.client.post(url, {'feedback_id': fb.id, 'type': 'unclassified'}) + self.assertEqual(response.status_code, 200) + + fb = Feedback.objects.get(id=fb.id) + self.assertEqual(fb.type_id,None) + self.assertEqual(Feedback.objects.comments().count(), 0) + self.assertEqual(Feedback.objects.filter(type=None).count(), 1) + + def test_reclassify_feedback_unrelated(self): + fb = FeedbackFactory(nomcom=self.nc, type_id='read') + self.assertEqual(Feedback.objects.filter(type='read').count(), 1) + + url = reverse('ietf.nomcom.views.view_feedback_unrelated', kwargs={'year':self.nc.year()}) + login_testing_unauthorized(self,self.member.user.username,url) + provide_private_key_to_test_client(self) + response = self.client.post(url, {'feedback_id': fb.id, 'type': 'junk'}) + self.assertEqual(response.status_code, 403) + + self.client.logout() + self.client.login(username=self.chair.user.username, password=self.chair.user.username + "+password") + provide_private_key_to_test_client(self) + + response = self.client.post(url, {'feedback_id': fb.id, 'type': 'junk'}) + self.assertEqual(response.status_code, 200) + + fb = Feedback.objects.get(id=fb.id) + self.assertEqual(fb.type_id, 'junk') + self.assertEqual(Feedback.objects.filter(type='read').count(), 0) + self.assertEqual(Feedback.objects.filter(type='junk').count(), 1) diff --git a/ietf/nomcom/views.py b/ietf/nomcom/views.py index 883bc3ca1..6bd85dad8 100644 --- a/ietf/nomcom/views.py +++ b/ietf/nomcom/views.py @@ -1,10 +1,10 @@ -# Copyright The IETF Trust 2012-2020, All Rights Reserved +# Copyright The IETF Trust 2012-2023, All Rights Reserved # -*- coding: utf-8 -*- import datetime import re -from collections import OrderedDict, Counter +from collections import Counter import csv import hmac @@ -14,11 +14,12 @@ from django.contrib.auth.decorators import login_required from django.contrib.auth.models import AnonymousUser from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger from django.forms.models import modelformset_factory, inlineformset_factory -from django.http import Http404, HttpResponseRedirect, HttpResponse +from django.http import Http404, HttpResponseRedirect, HttpResponse, HttpResponseForbidden from django.shortcuts import render, get_object_or_404, redirect from django.template.loader import render_to_string from django.urls import reverse from django.utils.encoding import force_bytes, force_str +from django.utils.text import slugify from email.errors import HeaderParseError @@ -767,7 +768,6 @@ def process_nomination_status(request, year, nominee_position_id, state, date, h 'selected': 'feedback', 'form': form }) - @role_required("Nomcom") @nomcom_private_key_required def view_feedback(request, year): @@ -775,7 +775,7 @@ def view_feedback(request, year): nominees = Nominee.objects.get_by_nomcom(nomcom).not_duplicated().distinct() independent_feedback_types = [] nominee_feedback_types = [] - for ft in FeedbackTypeName.objects.all(): + for ft in FeedbackTypeName.objects.filter(used=True): if ft.slug in settings.NOMINEE_FEEDBACK_TYPES: nominee_feedback_types.append(ft) else: @@ -838,7 +838,8 @@ def view_feedback(request, year): 'topics_feedback': topics_feedback, 'independent_feedback': independent_feedback, 'nominees_feedback': nominees_feedback, - 'nomcom': nomcom}) + 'nomcom': nomcom, + }) @role_required("Nomcom Chair", "Nomcom Advisor") @@ -924,23 +925,13 @@ def view_feedback_pending(request, year): formset = FeedbackFormSet(queryset=feedback_page.object_list) for form in formset.forms: form.set_nomcom(nomcom, request.user) - type_dict = OrderedDict() - for t in FeedbackTypeName.objects.all().order_by('pk'): - rest = t.name - slug = rest[0] - rest = rest[1:] - while slug in type_dict and rest: - slug = rest[0] - rest = rest[1] - type_dict[slug] = t return render(request, 'nomcom/view_feedback_pending.html', {'year': year, 'selected': 'feedback_pending', 'formset': formset, 'extra_step': extra_step, - 'type_dict': type_dict, 'extra_ids': extra_ids, - 'types': FeedbackTypeName.objects.all().order_by('pk'), + 'types': FeedbackTypeName.objects.filter(used=True), 'nomcom': nomcom, 'is_chair_task' : True, 'page': feedback_page, @@ -951,22 +942,59 @@ def view_feedback_pending(request, year): @nomcom_private_key_required def view_feedback_unrelated(request, year): nomcom = get_nomcom_by_year(year) + + if request.method == 'POST': + if not nomcom.group.has_role(request.user, ['chair','advisor']): + return HttpResponseForbidden('Restricted to roles: Nomcom Chair, Nomcom Advisor') + feedback_id = request.POST.get('feedback_id', None) + feedback = get_object_or_404(Feedback, id=feedback_id) + type = request.POST.get('type', None) + if type: + if type == 'unclassified': + feedback.type = None + messages.success(request, 'The selected feedback has been de-classified. Please reclassify it in the Pending emails tab.') + else: + feedback.type = FeedbackTypeName.objects.get(slug=type) + messages.success(request, f'The selected feedback has been reclassified as {feedback.type.name}.') + feedback.save() + else: + return render(request, 'nomcom/view_feedback_unrelated.html', + {'year': year, + 'nomcom': nomcom, + 'feedback_types': FeedbackTypeName.objects.filter(used=True).exclude(slug__in=settings.NOMINEE_FEEDBACK_TYPES), + 'reclassify_feedback': feedback, + 'is_chair_task' : True, + }) + feedback_types = [] - for ft in FeedbackTypeName.objects.exclude(slug__in=settings.NOMINEE_FEEDBACK_TYPES): + for ft in FeedbackTypeName.objects.filter(used=True).exclude(slug__in=settings.NOMINEE_FEEDBACK_TYPES): feedback_types.append({'ft': ft, 'feedback': ft.feedback_set.get_by_nomcom(nomcom)}) - return render(request, 'nomcom/view_feedback_unrelated.html', {'year': year, - 'selected': 'view_feedback', 'feedback_types': feedback_types, - 'nomcom': nomcom}) + 'nomcom': nomcom, + }) @role_required("Nomcom") @nomcom_private_key_required def view_feedback_topic(request, year, topic_id): - nomcom = get_nomcom_by_year(year) + # At present, the only feedback type for topics is 'comment'. + # Reclassifying from 'comment' to 'comment' is a no-op, + # so the only meaningful action is to de-classify it. + if request.method == 'POST': + nomcom = get_nomcom_by_year(year) + if not nomcom.group.has_role(request.user, ['chair','advisor']): + return HttpResponseForbidden('Restricted to roles: Nomcom Chair, Nomcom Advisor') + feedback_id = request.POST.get('feedback_id', None) + feedback = get_object_or_404(Feedback, id=feedback_id) + feedback.type = None + feedback.topics.clear() + feedback.save() + messages.success(request, 'The selected feedback has been de-classified. Please reclassify it in the Pending emails tab.') + topic = get_object_or_404(Topic, id=topic_id) + nomcom = get_nomcom_by_year(year) feedback_types = FeedbackTypeName.objects.filter(slug__in=['comment',]) last_seen = TopicFeedbackLastSeen.objects.filter(reviewer=request.user.person,topic=topic).first() @@ -978,18 +1006,56 @@ def view_feedback_topic(request, year, topic_id): return render(request, 'nomcom/view_feedback_topic.html', {'year': year, - 'selected': 'view_feedback', 'topic': topic, 'feedback_types': feedback_types, 'last_seen_time' : last_seen_time, - 'nomcom': nomcom}) + 'nomcom': nomcom, + }) @role_required("Nomcom") @nomcom_private_key_required def view_feedback_nominee(request, year, nominee_id): nomcom = get_nomcom_by_year(year) nominee = get_object_or_404(Nominee, id=nominee_id) - feedback_types = FeedbackTypeName.objects.filter(slug__in=settings.NOMINEE_FEEDBACK_TYPES) + feedback_types = FeedbackTypeName.objects.filter(used=True, slug__in=settings.NOMINEE_FEEDBACK_TYPES) + + if request.method == 'POST': + if not nomcom.group.has_role(request.user, ['chair','advisor']): + return HttpResponseForbidden('Restricted to roles: Nomcom Chair, Nomcom Advisor') + feedback_id = request.POST.get('feedback_id', None) + feedback = get_object_or_404(Feedback, id=feedback_id) + submit = request.POST.get('submit', None) + if submit == 'download': + fn = f'questionnaire-{slugify(nominee.name())}-{feedback.time.date()}.txt' + response = render_to_string('nomcom/download_questionnaire.txt', + {'year': year, + 'nominee': nominee, + 'feedback': feedback, + 'positions': ','.join([str(p) for p in feedback.positions.all()]), + }, + request=request) + response = HttpResponse(response, content_type='text/plain') + response['Content-Disposition'] = f'attachment; filename="{fn}"' + return response + elif submit == 'reclassify': + type = request.POST.get('type', None) + if type: + if type == 'unclassified': + feedback.type = None + feedback.nominees.clear() + messages.success(request, 'The selected feedback has been de-classified. Please reclassify it in the Pending emails tab.') + else: + feedback.type = FeedbackTypeName.objects.get(slug=type) + messages.success(request, f'The selected feedback has been reclassified as {feedback.type.name}.') + feedback.save() + else: + return render(request, 'nomcom/view_feedback_nominee.html', + {'year': year, + 'nomcom': nomcom, + 'feedback_types': feedback_types, + 'reclassify_feedback': feedback, + 'is_chair_task': True, + }) last_seen = FeedbackLastSeen.objects.filter(reviewer=request.user.person,nominee=nominee).first() last_seen_time = (last_seen and last_seen.time) or datetime.datetime(year=1, month=1, day=1, tzinfo=datetime.timezone.utc) @@ -1000,11 +1066,11 @@ def view_feedback_nominee(request, year, nominee_id): return render(request, 'nomcom/view_feedback_nominee.html', {'year': year, - 'selected': 'view_feedback', 'nominee': nominee, 'feedback_types': feedback_types, 'last_seen_time' : last_seen_time, - 'nomcom': nomcom}) + 'nomcom': nomcom, + }) @role_required("Nomcom Chair", "Nomcom Advisor") diff --git a/ietf/secr/sreq/forms.py b/ietf/secr/sreq/forms.py index 0c112a063..1100bc7c8 100644 --- a/ietf/secr/sreq/forms.py +++ b/ietf/secr/sreq/forms.py @@ -28,7 +28,7 @@ JOINT_FOR_SESSION_CHOICES = (('1', 'First session'), ('2', 'Second session'), (' # Helper Functions # ------------------------------------------------- def allowed_conflicting_groups(): - return Group.objects.filter(type__in=['wg', 'ag', 'rg', 'rag', 'program'], state__in=['bof', 'proposed', 'active']) + return Group.objects.filter(type__in=['wg', 'ag', 'rg', 'rag', 'program', 'edwg'], state__in=['bof', 'proposed', 'active']) def check_conflict(groups, source_group): ''' diff --git a/ietf/settings.py b/ietf/settings.py index 67dbe052b..67713cab2 100644 --- a/ietf/settings.py +++ b/ietf/settings.py @@ -1,4 +1,4 @@ -# Copyright The IETF Trust 2007-2022, All Rights Reserved +# Copyright The IETF Trust 2007-2023, All Rights Reserved # -*- coding: utf-8 -*- @@ -10,6 +10,7 @@ import os import sys import datetime import warnings +from hashlib import sha384 from typing import Any, Dict, List, Tuple # pyflakes:ignore warnings.simplefilter("always", DeprecationWarning) @@ -724,44 +725,6 @@ DOC_ACTION_HOLDER_AGE_LIMIT_DAYS = 20 CACHE_MIDDLEWARE_SECONDS = 300 CACHE_MIDDLEWARE_KEY_PREFIX = '' -# The default with no CACHES setting is 'django.core.cache.backends.locmem.LocMemCache' -# This setting is possibly overridden further down, after the import of settings_local -CACHES = { - 'default': { - 'BACKEND': 'ietf.utils.cache.LenientMemcacheCache', - 'LOCATION': '127.0.0.1:11211', - 'VERSION': __version__, - 'KEY_PREFIX': 'ietf:dt', - }, - 'sessions': { - 'BACKEND': 'ietf.utils.cache.LenientMemcacheCache', - 'LOCATION': '127.0.0.1:11211', - # No release-specific VERSION setting. - 'KEY_PREFIX': 'ietf:dt', - }, - 'htmlized': { - 'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache', - 'LOCATION': '/a/cache/datatracker/htmlized', - 'OPTIONS': { - 'MAX_ENTRIES': 100000, # 100,000 - }, - }, - 'pdfized': { - 'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache', - 'LOCATION': '/a/cache/datatracker/pdfized', - 'OPTIONS': { - 'MAX_ENTRIES': 100000, # 100,000 - }, - }, - 'slowpages': { - 'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache', - 'LOCATION': '/a/cache/datatracker/slowpages', - 'OPTIONS': { - 'MAX_ENTRIES': 5000, - }, - }, -} - HTMLIZER_VERSION = 1 HTMLIZER_URL_PREFIX = "/doc/html" HTMLIZER_CACHE_TIME = 60*60*24*14 # 14 days @@ -801,7 +764,7 @@ NOMCOM_PUBLIC_KEYS_DIR = '/a/www/nomcom/public_keys/' NOMCOM_FROM_EMAIL = 'nomcom-chair-{year}@ietf.org' OPENSSL_COMMAND = '/usr/bin/openssl' DAYS_TO_EXPIRE_NOMINATION_LINK = '' -NOMINEE_FEEDBACK_TYPES = ['comment', 'questio', 'nomina'] +NOMINEE_FEEDBACK_TYPES = ['comment', 'questio', 'nomina', 'obe'] # SlideSubmission settings SLIDE_STAGING_PATH = '/a/www/www6s/staging/' @@ -1227,6 +1190,84 @@ else: MIDDLEWARE += DEV_MIDDLEWARE TEMPLATES[0]['OPTIONS']['context_processors'] += DEV_TEMPLATE_CONTEXT_PROCESSORS +if 'CACHES' not in locals(): + if SERVER_MODE == 'production': + CACHES = { + 'default': { + 'BACKEND': 'ietf.utils.cache.LenientMemcacheCache', + 'LOCATION': '127.0.0.1:11211', + 'VERSION': __version__, + 'KEY_PREFIX': 'ietf:dt', + 'KEY_FUNCTION': lambda key, key_prefix, version: ( + f"{key_prefix}:{version}:{sha384(str(key).encode('utf8')).hexdigest()}" + ), + }, + 'sessions': { + 'BACKEND': 'ietf.utils.cache.LenientMemcacheCache', + 'LOCATION': '127.0.0.1:11211', + # No release-specific VERSION setting. + 'KEY_PREFIX': 'ietf:dt', + }, + 'htmlized': { + 'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache', + 'LOCATION': '/a/cache/datatracker/htmlized', + 'OPTIONS': { + 'MAX_ENTRIES': 100000, # 100,000 + }, + }, + 'pdfized': { + 'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache', + 'LOCATION': '/a/cache/datatracker/pdfized', + 'OPTIONS': { + 'MAX_ENTRIES': 100000, # 100,000 + }, + }, + 'slowpages': { + 'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache', + 'LOCATION': '/a/cache/datatracker/slowpages', + 'OPTIONS': { + 'MAX_ENTRIES': 5000, + }, + }, + } + else: + CACHES = { + 'default': { + 'BACKEND': 'django.core.cache.backends.dummy.DummyCache', + #'BACKEND': 'ietf.utils.cache.LenientMemcacheCache', + #'LOCATION': '127.0.0.1:11211', + #'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache', + 'VERSION': __version__, + 'KEY_PREFIX': 'ietf:dt', + }, + 'sessions': { + 'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', + }, + 'htmlized': { + 'BACKEND': 'django.core.cache.backends.dummy.DummyCache', + #'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache', + 'LOCATION': '/var/cache/datatracker/htmlized', + 'OPTIONS': { + 'MAX_ENTRIES': 1000, + }, + }, + 'pdfized': { + 'BACKEND': 'django.core.cache.backends.dummy.DummyCache', + #'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache', + 'LOCATION': '/var/cache/datatracker/pdfized', + 'OPTIONS': { + 'MAX_ENTRIES': 1000, + }, + }, + 'slowpages': { + 'BACKEND': 'django.core.cache.backends.dummy.DummyCache', + #'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache', + 'LOCATION': '/var/cache/datatracker/', + 'OPTIONS': { + 'MAX_ENTRIES': 5000, + }, + }, + } # We provide a secret key only for test and development modes. It's # absolutely vital that django fails to start in production mode unless a @@ -1237,44 +1278,6 @@ if SERVER_MODE != 'production': loaders = TEMPLATES[0]['OPTIONS']['loaders'] loaders = tuple(l for e in loaders for l in (e[1] if isinstance(e, tuple) and "cached.Loader" in e[0] else (e,))) TEMPLATES[0]['OPTIONS']['loaders'] = loaders - - CACHES = { - 'default': { - 'BACKEND': 'django.core.cache.backends.dummy.DummyCache', - #'BACKEND': 'ietf.utils.cache.LenientMemcacheCache', - #'LOCATION': '127.0.0.1:11211', - #'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache', - 'VERSION': __version__, - 'KEY_PREFIX': 'ietf:dt', - }, - 'sessions': { - 'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', - }, - 'htmlized': { - 'BACKEND': 'django.core.cache.backends.dummy.DummyCache', - #'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache', - 'LOCATION': '/var/cache/datatracker/htmlized', - 'OPTIONS': { - 'MAX_ENTRIES': 1000, - }, - }, - 'pdfized': { - 'BACKEND': 'django.core.cache.backends.dummy.DummyCache', - #'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache', - 'LOCATION': '/var/cache/datatracker/pdfized', - 'OPTIONS': { - 'MAX_ENTRIES': 1000, - }, - }, - 'slowpages': { - 'BACKEND': 'django.core.cache.backends.dummy.DummyCache', - #'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache', - 'LOCATION': '/var/cache/datatracker/', - 'OPTIONS': { - 'MAX_ENTRIES': 5000, - }, - }, - } SESSION_ENGINE = "django.contrib.sessions.backends.db" if 'SECRET_KEY' not in locals(): diff --git a/ietf/settings_postgrestest.py b/ietf/settings_test.py similarity index 96% rename from ietf/settings_postgrestest.py rename to ietf/settings_test.py index 13bbc9239..3f69f0ae3 100755 --- a/ietf/settings_postgrestest.py +++ b/ietf/settings_test.py @@ -6,7 +6,7 @@ # useful for speeding up tests that depend on the test database, try # for instance: # -# ./manage.py test --settings=settings_postgrestest doc.ChangeStateTestCase +# ./manage.py test --settings=settings_test doc.ChangeStateTestCase # import os diff --git a/ietf/static/css/datepicker.scss b/ietf/static/css/datepicker.scss index 21d6aac24..4e2655b3f 100644 --- a/ietf/static/css/datepicker.scss +++ b/ietf/static/css/datepicker.scss @@ -1,2 +1,15 @@ -@import "vanillajs-datepicker/sass/index-bs5"; +@import "bootstrap/scss/functions"; + +// Enable color modes +$color-mode-type: data; + +@import "bootstrap/scss/variables"; +@import "bootstrap/scss/variables-dark"; +@import "bootstrap/scss/maps"; +@import "bootstrap/scss/mixins"; +@import "bootstrap/scss/root"; + +// FIXME: color.scale doesn't seem to work with CSS variables, so avoid those:` +$dp-cell-focus-background-color: $dropdown-link-hover-bg !default; + @import "vanillajs-datepicker/sass/datepicker-bs5"; diff --git a/ietf/static/css/document_html.scss b/ietf/static/css/document_html.scss index bc1c71db4..d34cae4ac 100644 --- a/ietf/static/css/document_html.scss +++ b/ietf/static/css/document_html.scss @@ -1,10 +1,35 @@ @use "sass:map"; -$font-family-sans-serif: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; -$font-family-monospace: "Noto Sans Mono", SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; +$font-family-sans-serif: "Inter", +system-ui, +-apple-system, +"Segoe UI", +Roboto, +"Helvetica Neue", +"Noto Sans", +"Liberation Sans", +Arial, +sans-serif, +"Apple Color Emoji", +"Segoe UI Emoji", +"Segoe UI Symbol", +"Noto Color Emoji"; +$font-family-monospace: "Noto Sans Mono", +SFMono-Regular, +Menlo, +Monaco, +Consolas, +"Liberation Mono", +"Courier New", +monospace; @import "bootstrap/scss/functions"; + +// Enable color modes +$color-mode-type: data; + @import "bootstrap/scss/variables"; +@import "bootstrap/scss/variables-dark"; @import "bootstrap/scss/maps"; @import "bootstrap/scss/mixins"; @import "bootstrap/scss/utilities"; @@ -20,7 +45,7 @@ $font-family-monospace: "Noto Sans Mono", SFMono-Regular, Menlo, Monaco, Consola @import "bootstrap/scss/forms"; @import "bootstrap/scss/buttons"; @import "bootstrap/scss/transitions"; -// @import "bootstrap/scss/dropdown"; +@import "bootstrap/scss/dropdown"; @import "bootstrap/scss/button-group"; @import "bootstrap/scss/nav"; @import "bootstrap/scss/navbar"; @@ -60,12 +85,42 @@ $font-family-monospace: "Noto Sans Mono", SFMono-Regular, Menlo, Monaco, Consola scrollbar-width: none; } -.sidebar-toggle[aria-expanded="true"] { +.sidebar-toggle[aria-expanded="true"] .sidebar-shown { display: none; } -.sidebar-toggle[aria-expanded="false"] { - display: inherit; +.sidebar-toggle[aria-expanded="false"] .sidebar-collapsed { + display: none; +} + +.sidebar-toolbar { + z-index: 1; +} + +// Toggle classes for dark/light modes +[data-bs-theme="dark"] { + .d-dm-none { + display: none; + } + + .d-lm-none { + display: initial; + } +} + +[data-bs-theme="light"] { + .d-dm-none { + display: initial; + } + + .d-lm-none { + display: none; + } +} + +// Show theme toggler checkbox +.dropdown-menu .active .bi { + display: block !important; } @media screen { @@ -328,7 +383,7 @@ tbody.meta tr { page-break-inside: avoid; } -/* + /* a:link, a:visited { // color: inherit; diff --git a/ietf/static/css/document_html_txt.scss b/ietf/static/css/document_html_txt.scss index c506a4173..a75c491d2 100644 --- a/ietf/static/css/document_html_txt.scss +++ b/ietf/static/css/document_html_txt.scss @@ -374,7 +374,7 @@ thead, tfoot { border-bottom-style: double; } td, th { - border: 1px solid black; + border: 1px solid inherit; // padding: var(--half-line) 1ch; padding-top: var(--half-line); padding-right: 1ch; @@ -393,7 +393,7 @@ td, th { /* Links */ a.selfRef, a.pilcrow, .iref + a.internal { - color: black; + color: inherit; text-decoration: none; } a.relref, a.xref { @@ -449,4 +449,19 @@ section > p, section > dl.references > dd { * doesn't break words at '/' like other browsers. */ overflow-wrap: break-word; } + +/* From https://github.com/martinthomson/rfc-css/blob/main/rfc.css */ +/* SVG Trick: a prefix match works because only black and white are allowed */ +svg :is([stroke="black"], [stroke^="#000"]) { + stroke: var(--bs-body-color); +} +svg :is([stroke="white"], [stroke^="#fff"]) { + stroke: var(--bs-body-bg); +} +svg :is([fill="black"], [fill^="#000"], :not([fill])) { + fill: var(--bs-body-color); +} +svg :is([fill="white"], [fill^="#fff"]) { + fill: var(--bs-body-bg); +} } diff --git a/ietf/static/css/ietf.scss b/ietf/static/css/ietf.scss index de733e7a8..06a0de80b 100644 --- a/ietf/static/css/ietf.scss +++ b/ietf/static/css/ietf.scss @@ -12,12 +12,36 @@ $popover-max-width: 100%; // Override default fonts -$font-family-sans-serif: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; -$font-family-monospace: "Noto Sans Mono", SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; +$font-family-sans-serif: "Inter", +system-ui, +-apple-system, +"Segoe UI", +Roboto, +"Helvetica Neue", +"Noto Sans", +"Liberation Sans", +Arial, +sans-serif, +"Apple Color Emoji", +"Segoe UI Emoji", +"Segoe UI Symbol", +"Noto Color Emoji"; +$font-family-monospace: "Noto Sans Mono", +SFMono-Regular, +Menlo, +Monaco, +Consolas, +"Liberation Mono", +"Courier New", +monospace; + +// Enable color modes +$color-mode-type: data; // Only import what we need: @import "bootstrap/scss/variables"; +@import "bootstrap/scss/variables-dark"; $h1-font-size: $font-size-base * 2.2; $h2-font-size: $font-size-base * 1.8; @@ -84,6 +108,27 @@ html { scroll-padding-top: 60px; } +// Toggle classes for dark/light modes +[data-bs-theme="dark"] { + .d-dm-none { + display: none; + } + + .d-lm-none { + display: initial; + } +} + +[data-bs-theme="light"] { + .d-dm-none { + display: initial; + } + + .d-lm-none { + display: none; + } +} + // Make submenus open on hover. @include media-breakpoint-up(lg) { .dropdown-menu>li>ul { @@ -362,7 +407,7 @@ th, } .ballot-icon table .my { - border: 2 * $table-border-width solid #000; + border: calc(2 * $table-border-width) solid #000; } // See https://getbootstrap.com/docs/5.1/customize/color/#all-colors @@ -474,36 +519,64 @@ td.position-recuse { } td.position-norecord { - background-color: $white; // $color-norecord; + background-color: transparent; } td.position-empty { border: none !important; } -tr.position-moretime-row, -tr.position-notready-row, -tr.position-discuss-row, -tr.position-block-row { - background-color: tint-color($color-discuss, 85%); +[data-bs-theme="light"] { + + tr.position-moretime-row, + tr.position-notready-row, + tr.position-discuss-row, + tr.position-block-row { + background-color: tint-color($color-discuss, 85%); + } + + tr.position-yes-row { + background-color: tint-color($color-yes, 75%); + } + + tr.position-noobj-row { + background-color: tint-color($color-noobj, 50%); + } + + tr.position-abstain-row { + background-color: tint-color($color-abstain, 85%); + } + + tr.position-recuse-row { + background-color: tint-color($color-recuse, 85%); + } } -tr.position-yes-row { - background-color: tint-color($color-yes, 75%); -} +[data-bs-theme="dark"] { -tr.position-noobj-row { - background-color: tint-color($color-noobj, 50%); -} + tr.position-moretime-row, + tr.position-notready-row, + tr.position-discuss-row, + tr.position-block-row { + background-color: shade-color($color-discuss, 85%); + } -tr.position-abstain-row { - background-color: tint-color($color-abstain, 85%); -} + tr.position-yes-row { + background-color: shade-color($color-yes, 75%); + } -tr.position-recuse-row { - background-color: tint-color($color-recuse, 85%); -} + tr.position-noobj-row { + background-color: shade-color($color-noobj, 75%); + } + tr.position-abstain-row { + background-color: shade-color($color-abstain, 85%); + } + + tr.position-recuse-row { + background-color: shade-color($color-recuse, 85%); + } +} /* === Edit Meeting Schedule ====================================== */ diff --git a/ietf/static/css/list.scss b/ietf/static/css/list.scss index d52fc879a..142013c3d 100644 --- a/ietf/static/css/list.scss +++ b/ietf/static/css/list.scss @@ -1,6 +1,11 @@ // Import bootstrap helpers @import "bootstrap/scss/functions"; + +// Enable color modes +$color-mode-type: data; + @import "bootstrap/scss/variables"; +@import "bootstrap/scss/variables-dark"; table .sort { cursor: pointer; diff --git a/ietf/static/css/select2.scss b/ietf/static/css/select2.scss index 44824a358..ab53c228e 100644 --- a/ietf/static/css/select2.scss +++ b/ietf/static/css/select2.scss @@ -1,5 +1,16 @@ @import "bootstrap/scss/functions"; + +// Enable color modes +$color-mode-type: data; + @import "bootstrap/scss/variables"; +@import "bootstrap/scss/variables-dark"; +@import "bootstrap/scss/maps"; @import "bootstrap/scss/mixins"; +@import "bootstrap/scss/root"; + +// FIXME: bs-5.3.0 workaround from https://github.com/apalfrey/select2-bootstrap-5-theme/issues/75#issuecomment-1573265695 +$s2bs5-border-color: $border-color; + @import "select2/src/scss/core"; @import "select2-bootstrap-5-theme/src/include-all"; diff --git a/ietf/static/images/iab-logo-white.svg b/ietf/static/images/iab-logo-white.svg new file mode 100644 index 000000000..264b7bb84 --- /dev/null +++ b/ietf/static/images/iab-logo-white.svg @@ -0,0 +1,64 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + width="201.333" + height="155.949" + version="1.1" + id="svg14" + sodipodi:docname="iab-logo-white.svg" + inkscape:version="1.2.2 (b0a84865, 2022-12-01)" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"> + <defs + id="defs18" /> + <sodipodi:namedview + id="namedview16" + pagecolor="#ffffff" + bordercolor="#000000" + borderopacity="0.25" + inkscape:showpageshadow="2" + inkscape:pageopacity="0.0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1" + showgrid="false" + inkscape:zoom="6.1887522" + inkscape:cx="75.944227" + inkscape:cy="79.579855" + inkscape:window-width="2403" + inkscape:window-height="1303" + inkscape:window-x="0" + inkscape:window-y="25" + inkscape:window-maximized="0" + inkscape:current-layer="svg14" /> + <path + d="m131.984 101.1 16.918-16.918a1.998 1.998 0 0 0 0-2.828l-33.836-33.84a2 2 0 0 0-2.828 0l-33.84 33.84a2 2 0 0 0 0 2.828l33.84 33.836a2 2 0 0 0 2.828 0z" + style="fill:#183f80;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + transform="matrix(1.33333 0 0 -1.33333 -2.183 158.801)" + id="path2" /> + <path + d="m95.316 101.1 16.922-16.918a1.998 1.998 0 0 0 0-2.828l-33.84-33.84a2 2 0 0 0-2.828 0l-33.84 33.84a2 2 0 0 0 0 2.828l33.84 33.836a2 2 0 0 0 2.828 0z" + style="fill:#999;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + transform="matrix(1.33333 0 0 -1.33333 -2.183 158.801)" + id="path4" /> + <path + d="M58.652 101.1 75.57 84.182a1.998 1.998 0 0 0 0-2.828v0l-33.836-33.84a2 2 0 0 0-2.828 0v0l-33.84 33.84a2 2 0 0 0 0 2.828v0l33.84 33.836a2 2 0 0 0 2.828 0z" + style="fill:#fff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + transform="matrix(1.33333 0 0 -1.33333 -2.183 158.801)" + id="path6" /> + <path + d="m4.77 84.662-2.633-2.753 19.582-19.332L40.098 80.85l18.703-18.641 36.668 36.325 18.613-18.325 18.148 17.957 17.086-16.992 2.821 2.754-19.907 19.606s-18.195-17.864-18.195-18c0-.137-18.75 18.414-18.609 18.414.136 0-36.625-36.461-36.625-36.461l-18.61 18.414-18.382-17.906Z" + style="fill:#ff0;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + transform="matrix(1.33333 0 0 -1.33333 -2.183 158.801)" + id="path8" /> + <path + d="M109.223 32.963h18.414s6.508-.414 7.062-6.785c.555-6.367-5.539-7.336-5.539-7.336s7.617-.14 7.34-7.617c-.277-7.477-9-8.445-9-8.445l-3.047-.141h-15.371zm8.722-6.367v-5.402h5.125s2.629.832 2.629 2.91c0 2.074-2.769 2.492-2.769 2.492zm0-11.769v-5.68h5.953s2.911.832 2.911 2.91c0 2.074-3.047 2.77-3.047 2.77h-5.403z" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#183f80;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + transform="matrix(1.33333 0 0 -1.33333 -2.183 158.801)" + id="path10" /> + <path + d="M71.758 33.1h10.25L93.684 2.776h-9.825L82 7.756H71.48l-1.714-4.832-9.825.133Zm5.105-8.258-3.113-9.75h6.09zM27 33.1h8.527V2.776H27Z" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#183f80;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + transform="matrix(1.33333 0 0 -1.33333 -2.183 158.801)" + id="path12" /> +</svg> diff --git a/ietf/static/images/ietf-logo-nor-white.svg b/ietf/static/images/ietf-logo-nor-white.svg index 004e58af8..42c033600 100644 --- a/ietf/static/images/ietf-logo-nor-white.svg +++ b/ietf/static/images/ietf-logo-nor-white.svg @@ -1,26 +1,136 @@ -<svg version="1.1" id="svg41" width="290.41" height="159.08" - xmlns="http://www.w3.org/2000/svg"> - <defs id="defs11"> - <style id="style9">.cls-2{fill:#bbbcc1}.cls-3{fill:#221e1f}</style> - </defs> - <path id="path6" class="cls-2" d="M97.57 0h.07c6.78 6.78 13.59 13.52 20.36 20.36-3 3.11-6.15 6.16-9.21 9.24L97.68 40.69a.57.57 0 0 0-.34-.18c-.78-.68-1.48-1.46-2.22-2.18L77.3 20.52c-.17-.12 0-.28.08-.38q7.94-7.9 15.84-15.84c1.5-1.39 2.9-2.87 4.35-4.3z" style="fill:#bbbcc1"/> - <path id="path8" class="cls-2" d="M145.54 0h.06c4.84 4.72 9.59 9.52 14.4 14.33 1.91 1.93 3.88 3.8 5.74 5.78l-20.39 20.41a10.44 10.44 0 0 1-.77-.71c-6.39-6.34-12.72-12.73-19.1-19.07-.09-.12-.33-.27-.18-.44C132 13.52 138.81 6.77 145.54 0Z" style="fill:#bbbcc1"/> - <path id="path10" class="cls-2" d="M193.57 0h.07q8.63 8.64 17.27 17.26c1 1 2 1.92 2.9 3-6.69 6.69-13.4 13.36-20.06 20.08-1.65-1.54-3.19-3.18-4.8-4.75l-15.39-15.4a2.65 2.65 0 0 1 .77-.93z" style="fill:#bbbcc1"/> - <path id="path12" class="cls-2" d="M25.25 23.97c.14-.2.32 0 .44.11 4.33 4.37 8.72 8.7 13.08 13.06 1.4 1.44 2.87 2.8 4.23 4.28H9.75v-1.55h-.29a7 7 0 0 1 .82-.9z" style="fill:#bbbcc1"/> - <path id="path14" class="cls-2" d="M73.2 23.99c.12-.17.34-.09.45.05l20.09 20.09Q83.66 54.21 73.57 64.29 63.4 54.07 53.19 43.89l.28-.17q9.86-9.87 19.73-19.73Z" style="fill:#bbbcc1"/> - <path id="path16" class="cls-2" d="M120.75 24.52c.22-.2.39-.49.68-.59a3.06 3.06 0 0 1 .69.61l11.66 11.65c2.63 2.67 5.32 5.27 7.92 8q-10.14 10.14-20.28 20.27c-3.58-3.55-7.13-7.13-10.7-10.69-3.16-3.19-6.38-6.3-9.53-9.49a1 1 0 0 1 .25-.45c6.45-6.49 12.86-12.94 19.31-19.31z" style="fill:#bbbcc1"/> - <path id="path18" class="cls-2" d="M249.25 40.3c5.51-5.49 11-11 16.52-16.48l13.83 13.82c.72.76 1.52 1.45 2.2 2.25h-1.16v1.78h-32.66c.37-.5.83-.92 1.27-1.37z" style="fill:#bbbcc1"/> - <path id="path20" class="cls-2" d="M169.35 24.52c.12-.21.29 0 .39.1l19.82 19.9c-6.66 6.74-13.41 13.4-20.09 20.13a23.82 23.82 0 0 1-1.78-1.7l-15.48-15.54c-.94-1-2-1.86-2.83-2.89q9.99-10 19.97-20z" style="fill:#bbbcc1"/> - <path id="path22" class="cls-2" d="M211.48 30.37c2-2 4-4 6-5.93.62.5 1.14 1.13 1.72 1.68l18.35 18.4q-9.65 9.69-19.33 19.35a3.93 3.93 0 0 1-.87.76c-1.1-1.18-2.27-2.29-3.4-3.44-5.54-5.56-11.11-11.08-16.64-16.66 4.69-4.73 9.43-9.46 14.17-14.16z" style="fill:#bbbcc1"/> - <path id="path24" class="cls-2" d="M9.75 46.92H43a3.58 3.58 0 0 1-.47.56L29.32 60.7c-1.32 1.3-2.6 2.66-4 3.92-4.8-4.84-9.64-9.64-14.45-14.47a11.2 11.2 0 0 1-1.16-1.23c.06-.67.04-1.33.04-2z" style="fill:#bbbcc1"/> - <path id="path26" class="cls-2" d="M248.51 47.3h32.12v1.61h.73a8.79 8.79 0 0 1-1.1 1.18l-9.47 9.47c-1.7 1.67-3.34 3.41-5.09 5q-7.63-7.65-15.3-15.3a21.1 21.1 0 0 1-1.89-1.96z" style="fill:#bbbcc1"/> - <path id="path28" class="cls-2" d="m193.48 48.36.27-.29c2.73 2.76 5.52 5.46 8.26 8.21l12 12c-.88 1.07-2 1.94-2.94 2.94L198.7 83.6c-1.72 1.68-3.38 3.44-5.13 5.08q-7.57-7.55-15.18-15.16c-1.74-1.72-3.43-3.49-5.21-5.17.92-1.08 2-2 3-3 5.72-5.7 11.41-11.43 17.14-17.12z" style="fill:#bbbcc1"/> - <path id="path30" class="cls-2" d="M125.39 68.52q10.19-10.17 20.36-20.36c1 .82 1.83 1.8 2.76 2.68L166 68.31q-10.19 10.21-20.4 20.4c-1.86-1.79-3.65-3.65-5.48-5.45-4.91-4.92-9.83-9.82-14.73-14.74Z" style="fill:#bbbcc1"/> - <path id="path32" class="cls-2" d="m77.42 68.52 20.15-20.15 20.18 20.15q-8.43 8.46-16.89 16.9c-1.11 1.07-2.15 2.22-3.29 3.25-5.48-5.43-10.91-10.91-16.37-16.35-1.2-1.26-2.57-2.48-3.78-3.8Z" style="fill:#bbbcc1"/> - <path id="path35" class="cls-3" d="M169.58 16.22c1.36 1.28 2.65 2.64 4 3.94L189 35.52c1.61 1.57 3.15 3.21 4.8 4.75 6.66-6.72 13.37-13.39 20.06-20.08 1.26-1.24 2.49-2.51 3.76-3.74 8.4 8.39 16.79 16.81 25.22 25.17h37.82v-1.78h9.75v9h-9.73V47.3h-40.33c-.93-.93-1.86-1.87-2.8-2.8l-18.39-18.38c-.58-.55-1.1-1.18-1.72-1.68-2 1.95-4 4-6 5.93-4.74 4.7-9.44 9.43-14.17 14.14l-3.56 3.56-.27.29-.18-.16-3.7-3.68-19.82-19.88c-.1-.1-.27-.31-.39-.1l-20 20q-1.83 1.8-3.63 3.63-10.15 10.17-20.33 20.35c-1.29 1.27-2.55 2.56-3.84 3.82l-3.8-3.82-20.18-20.15-20.15 20.15c-1.25 1.22-2.46 2.48-3.72 3.69Q61.07 59.52 48.44 46.93H9.75v2H0v-9h8.34a5.76 5.76 0 0 0 1.1 0h.29c.05.52 0 1 0 1.55h41c.82.83 1.65 1.64 2.47 2.47q10.2 10.18 20.38 20.4 10.09-10.06 20.17-20.16c1.2-1.21 2.42-2.39 3.6-3.62a.57.57 0 0 1 .34.18c1.16 1.19 2.34 2.35 3.51 3.52 3.15 3.19 6.37 6.3 9.53 9.49 3.57 3.56 7.12 7.14 10.7 10.69l20.27-20.33 3.65-3.6 20.37-20.37c1.29-1.29 2.6-2.57 3.86-3.89m0 1.31c-1.76 1.84-3.59 3.6-5.38 5.42q-21.4 21.32-42.79 42.71l-24-24Q85.52 53.64 73.6 65.59c-2.47-2.41-4.88-4.88-7.33-7.31L53.48 45.52c-1.08-1.06-2.11-2.16-3.22-3.17H9.77v3.69h38.31c.27 0 .61-.1.83.1l24.81 24.78q11.86-11.9 23.76-23.76h.15l14.07 14.03c3.26 3.28 6.57 6.52 9.79 9.83a4.33 4.33 0 0 0 .75-.67q23.63-23.62 47.26-47.25l24 24c2.17-2.27 4.46-4.43 6.67-6.67l17.2-17.2c.33-.11.51.42.78.58q11.31 11.3 22.62 22.61h39.88v-3.9h-38.31c-7.58-7.65-15.24-15.22-22.85-22.83-.67-.63-1.27-1.35-2-1.93a9.69 9.69 0 0 1-.94 1c-7.59 7.62-15.22 15.2-22.79 22.82a2 2 0 0 1-.61-.5l-18.43-18.45c-1.72-1.69-3.39-3.44-5.15-5.11z" style="fill:#221e1f"/> - <path id="path39" class="cls-3" d="M8.51 125.08h12v34h-12q.02-17.02 0-34z" style="fill:#FFF"/> - <path id="path41" class="cls-3" d="M82.39 125.07h25.48v7.22H94.34v5.94h12.41v7.17h-12.4v6.45h13.76v7.17H82.39q-.01-16.96 0-33.95z" style="fill:#FFF"/> - <path id="path43" class="cls-3" d="M166.5 125.08h33.19v8.56h-10.64v25.41h-11.91v-25.41h-10.63c-.01-2.86 0-5.71-.01-8.56z" style="fill:#FFF"/> - <path id="path45" class="cls-3" d="M259.25 125.07h24.85v7.22h-12.89v6.1h12.13v7.21h-12.13v13.42h-11.96z" style="fill:#FFF"/> - <path id="path50" d="M169.57 17.52c1.76 1.66 3.43 3.41 5.15 5.1l18.45 18.46a2 2 0 0 0 .61.5c7.57-7.62 15.2-15.2 22.79-22.82a9.69 9.69 0 0 0 .94-1c.71.58 1.31 1.3 2 1.93 7.61 7.61 15.27 15.18 22.85 22.83h38.29v3.83h-39.88q-11.33-11.3-22.62-22.61c-.27-.16-.45-.69-.78-.58l-17.2 17.2c-2.21 2.24-4.5 4.4-6.67 6.67l-24-24q-23.66 23.61-47.26 47.25a4.33 4.33 0 0 1-.75.67c-3.22-3.31-6.53-6.55-9.79-9.83l-14.07-14h-.15Q85.6 59.03 73.72 70.92L48.89 46.1c-.22-.2-.56-.06-.83-.1H9.75v-3.69h40.49c1.11 1 2.14 2.11 3.22 3.17l12.81 12.8c2.45 2.43 4.86 4.9 7.33 7.31q11.93-11.94 23.86-23.85l24 24q21.43-21.34 42.78-42.75c1.76-1.86 3.57-3.62 5.33-5.47z" style="fill:#fdd34f"/> +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + version="1.1" + id="svg41" + width="290.41" + height="159.08" + sodipodi:docname="ietf-logo-nor-white.svg" + inkscape:version="1.2.2 (b0a84865, 2022-12-01)" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"> + <sodipodi:namedview + id="namedview25" + pagecolor="#ffffff" + bordercolor="#000000" + borderopacity="0.25" + inkscape:showpageshadow="2" + inkscape:pageopacity="0.0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1" + showgrid="false" + inkscape:zoom="4.2904858" + inkscape:cx="144.73885" + inkscape:cy="74.000944" + inkscape:window-width="1390" + inkscape:window-height="1205" + inkscape:window-x="365" + inkscape:window-y="125" + inkscape:window-maximized="0" + inkscape:current-layer="svg41" /> + <defs + id="defs11"> + <style + id="style9">.cls-2{fill:#bbbcc1}.cls-3{fill:#221e1f}</style> + </defs> + <path + id="path6" + class="cls-2" + d="M97.57 0h.07c6.78 6.78 13.59 13.52 20.36 20.36-3 3.11-6.15 6.16-9.21 9.24L97.68 40.69a.57.57 0 0 0-.34-.18c-.78-.68-1.48-1.46-2.22-2.18L77.3 20.52c-.17-.12 0-.28.08-.38q7.94-7.9 15.84-15.84c1.5-1.39 2.9-2.87 4.35-4.3z" + style="fill:#bbbcc1" /> + <path + id="path8" + class="cls-2" + d="M145.54 0h.06c4.84 4.72 9.59 9.52 14.4 14.33 1.91 1.93 3.88 3.8 5.74 5.78l-20.39 20.41a10.44 10.44 0 0 1-.77-.71c-6.39-6.34-12.72-12.73-19.1-19.07-.09-.12-.33-.27-.18-.44C132 13.52 138.81 6.77 145.54 0Z" + style="fill:#bbbcc1" /> + <path + id="path10" + class="cls-2" + d="M193.57 0h.07q8.63 8.64 17.27 17.26c1 1 2 1.92 2.9 3-6.69 6.69-13.4 13.36-20.06 20.08-1.65-1.54-3.19-3.18-4.8-4.75l-15.39-15.4a2.65 2.65 0 0 1 .77-.93z" + style="fill:#bbbcc1" /> + <path + id="path12" + class="cls-2" + d="M25.25 23.97c.14-.2.32 0 .44.11 4.33 4.37 8.72 8.7 13.08 13.06 1.4 1.44 2.87 2.8 4.23 4.28H9.75v-1.55h-.29a7 7 0 0 1 .82-.9z" + style="fill:#bbbcc1" /> + <path + id="path14" + class="cls-2" + d="M73.2 23.99c.12-.17.34-.09.45.05l20.09 20.09Q83.66 54.21 73.57 64.29 63.4 54.07 53.19 43.89l.28-.17q9.86-9.87 19.73-19.73Z" + style="fill:#bbbcc1" /> + <path + id="path16" + class="cls-2" + d="M120.75 24.52c.22-.2.39-.49.68-.59a3.06 3.06 0 0 1 .69.61l11.66 11.65c2.63 2.67 5.32 5.27 7.92 8q-10.14 10.14-20.28 20.27c-3.58-3.55-7.13-7.13-10.7-10.69-3.16-3.19-6.38-6.3-9.53-9.49a1 1 0 0 1 .25-.45c6.45-6.49 12.86-12.94 19.31-19.31z" + style="fill:#bbbcc1" /> + <path + id="path18" + class="cls-2" + d="M249.25 40.3c5.51-5.49 11-11 16.52-16.48l13.83 13.82c.72.76 1.52 1.45 2.2 2.25h-1.16v1.78h-32.66c.37-.5.83-.92 1.27-1.37z" + style="fill:#bbbcc1" /> + <path + id="path20" + class="cls-2" + d="M169.35 24.52c.12-.21.29 0 .39.1l19.82 19.9c-6.66 6.74-13.41 13.4-20.09 20.13a23.82 23.82 0 0 1-1.78-1.7l-15.48-15.54c-.94-1-2-1.86-2.83-2.89q9.99-10 19.97-20z" + style="fill:#bbbcc1" /> + <path + id="path22" + class="cls-2" + d="M211.48 30.37c2-2 4-4 6-5.93.62.5 1.14 1.13 1.72 1.68l18.35 18.4q-9.65 9.69-19.33 19.35a3.93 3.93 0 0 1-.87.76c-1.1-1.18-2.27-2.29-3.4-3.44-5.54-5.56-11.11-11.08-16.64-16.66 4.69-4.73 9.43-9.46 14.17-14.16z" + style="fill:#bbbcc1" /> + <path + id="path24" + class="cls-2" + d="M9.75 46.92H43a3.58 3.58 0 0 1-.47.56L29.32 60.7c-1.32 1.3-2.6 2.66-4 3.92-4.8-4.84-9.64-9.64-14.45-14.47a11.2 11.2 0 0 1-1.16-1.23c.06-.67.04-1.33.04-2z" + style="fill:#bbbcc1" /> + <path + id="path26" + class="cls-2" + d="M248.51 47.3h32.12v1.61h.73a8.79 8.79 0 0 1-1.1 1.18l-9.47 9.47c-1.7 1.67-3.34 3.41-5.09 5q-7.63-7.65-15.3-15.3a21.1 21.1 0 0 1-1.89-1.96z" + style="fill:#bbbcc1" /> + <path + id="path28" + class="cls-2" + d="m193.48 48.36.27-.29c2.73 2.76 5.52 5.46 8.26 8.21l12 12c-.88 1.07-2 1.94-2.94 2.94L198.7 83.6c-1.72 1.68-3.38 3.44-5.13 5.08q-7.57-7.55-15.18-15.16c-1.74-1.72-3.43-3.49-5.21-5.17.92-1.08 2-2 3-3 5.72-5.7 11.41-11.43 17.14-17.12z" + style="fill:#bbbcc1" /> + <path + id="path30" + class="cls-2" + d="M125.39 68.52q10.19-10.17 20.36-20.36c1 .82 1.83 1.8 2.76 2.68L166 68.31q-10.19 10.21-20.4 20.4c-1.86-1.79-3.65-3.65-5.48-5.45-4.91-4.92-9.83-9.82-14.73-14.74Z" + style="fill:#bbbcc1" /> + <path + id="path32" + class="cls-2" + d="m77.42 68.52 20.15-20.15 20.18 20.15q-8.43 8.46-16.89 16.9c-1.11 1.07-2.15 2.22-3.29 3.25-5.48-5.43-10.91-10.91-16.37-16.35-1.2-1.26-2.57-2.48-3.78-3.8Z" + style="fill:#bbbcc1" /> + <path + id="path35" + class="cls-3" + d="M169.58 16.22c1.36 1.28 2.65 2.64 4 3.94L189 35.52c1.61 1.57 3.15 3.21 4.8 4.75 6.66-6.72 13.37-13.39 20.06-20.08 1.26-1.24 2.49-2.51 3.76-3.74 8.4 8.39 16.79 16.81 25.22 25.17h37.82v-1.78h9.75v9h-9.73V47.3h-40.33c-.93-.93-1.86-1.87-2.8-2.8l-18.39-18.38c-.58-.55-1.1-1.18-1.72-1.68-2 1.95-4 4-6 5.93-4.74 4.7-9.44 9.43-14.17 14.14l-3.56 3.56-.27.29-.18-.16-3.7-3.68-19.82-19.88c-.1-.1-.27-.31-.39-.1l-20 20q-1.83 1.8-3.63 3.63-10.15 10.17-20.33 20.35c-1.29 1.27-2.55 2.56-3.84 3.82l-3.8-3.82-20.18-20.15-20.15 20.15c-1.25 1.22-2.46 2.48-3.72 3.69Q61.07 59.52 48.44 46.93H9.75v2H0v-9h8.34a5.76 5.76 0 0 0 1.1 0h.29c.05.52 0 1 0 1.55h41c.82.83 1.65 1.64 2.47 2.47q10.2 10.18 20.38 20.4 10.09-10.06 20.17-20.16c1.2-1.21 2.42-2.39 3.6-3.62a.57.57 0 0 1 .34.18c1.16 1.19 2.34 2.35 3.51 3.52 3.15 3.19 6.37 6.3 9.53 9.49 3.57 3.56 7.12 7.14 10.7 10.69l20.27-20.33 3.65-3.6 20.37-20.37c1.29-1.29 2.6-2.57 3.86-3.89m0 1.31c-1.76 1.84-3.59 3.6-5.38 5.42q-21.4 21.32-42.79 42.71l-24-24Q85.52 53.64 73.6 65.59c-2.47-2.41-4.88-4.88-7.33-7.31L53.48 45.52c-1.08-1.06-2.11-2.16-3.22-3.17H9.77v3.69h38.31c.27 0 .61-.1.83.1l24.81 24.78q11.86-11.9 23.76-23.76h.15l14.07 14.03c3.26 3.28 6.57 6.52 9.79 9.83a4.33 4.33 0 0 0 .75-.67q23.63-23.62 47.26-47.25l24 24c2.17-2.27 4.46-4.43 6.67-6.67l17.2-17.2c.33-.11.51.42.78.58q11.31 11.3 22.62 22.61h39.88v-3.9h-38.31c-7.58-7.65-15.24-15.22-22.85-22.83-.67-.63-1.27-1.35-2-1.93a9.69 9.69 0 0 1-.94 1c-7.59 7.62-15.22 15.2-22.79 22.82a2 2 0 0 1-.61-.5l-18.43-18.45c-1.72-1.69-3.39-3.44-5.15-5.11z" + style="fill:#ffffff" /> + <path + id="path39" + class="cls-3" + d="M8.51 125.08h12v34h-12q.02-17.02 0-34z" + style="fill:#FFF" /> + <path + id="path41" + class="cls-3" + d="M82.39 125.07h25.48v7.22H94.34v5.94h12.41v7.17h-12.4v6.45h13.76v7.17H82.39q-.01-16.96 0-33.95z" + style="fill:#FFF" /> + <path + id="path43" + class="cls-3" + d="M166.5 125.08h33.19v8.56h-10.64v25.41h-11.91v-25.41h-10.63c-.01-2.86 0-5.71-.01-8.56z" + style="fill:#FFF" /> + <path + id="path45" + class="cls-3" + d="M259.25 125.07h24.85v7.22h-12.89v6.1h12.13v7.21h-12.13v13.42h-11.96z" + style="fill:#FFF" /> + <path + id="path50" + d="M169.57 17.52c1.76 1.66 3.43 3.41 5.15 5.1l18.45 18.46a2 2 0 0 0 .61.5c7.57-7.62 15.2-15.2 22.79-22.82a9.69 9.69 0 0 0 .94-1c.71.58 1.31 1.3 2 1.93 7.61 7.61 15.27 15.18 22.85 22.83h38.29v3.83h-39.88q-11.33-11.3-22.62-22.61c-.27-.16-.45-.69-.78-.58l-17.2 17.2c-2.21 2.24-4.5 4.4-6.67 6.67l-24-24q-23.66 23.61-47.26 47.25a4.33 4.33 0 0 1-.75.67c-3.22-3.31-6.53-6.55-9.79-9.83l-14.07-14h-.15Q85.6 59.03 73.72 70.92L48.89 46.1c-.22-.2-.56-.06-.83-.1H9.75v-3.69h40.49c1.11 1 2.14 2.11 3.22 3.17l12.81 12.8c2.45 2.43 4.86 4.9 7.33 7.31q11.93-11.94 23.86-23.85l24 24q21.43-21.34 42.78-42.75c1.76-1.86 3.57-3.62 5.33-5.47z" + style="fill:#fdd34f" /> </svg> diff --git a/ietf/static/images/ietf-logo-white.svg b/ietf/static/images/ietf-logo-white.svg new file mode 100644 index 000000000..2417f917c --- /dev/null +++ b/ietf/static/images/ietf-logo-white.svg @@ -0,0 +1,146 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + version="1.1" + id="svg41" + width="300" + height="159.08" + sodipodi:docname="ietf-logo-white.svg" + inkscape:version="1.2.2 (b0a84865, 2022-12-01)" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"> + <sodipodi:namedview + id="namedview27" + pagecolor="#ffffff" + bordercolor="#000000" + borderopacity="0.25" + inkscape:showpageshadow="2" + inkscape:pageopacity="0.0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1" + showgrid="false" + inkscape:zoom="4.1533333" + inkscape:cx="150" + inkscape:cy="79.574639" + inkscape:window-width="1390" + inkscape:window-height="1205" + inkscape:window-x="436" + inkscape:window-y="99" + inkscape:window-maximized="0" + inkscape:current-layer="svg41" /> + <defs + id="defs11"> + <style + id="style9">.cls-2{fill:#bbbcc1}.cls-3{fill:#221e1f}</style> + </defs> + <path + id="path6" + class="cls-2" + d="M97.57 0h.07c6.78 6.78 13.59 13.52 20.36 20.36-3 3.11-6.15 6.16-9.21 9.24L97.68 40.69a.57.57 0 0 0-.34-.18c-.78-.68-1.48-1.46-2.22-2.18L77.3 20.52c-.17-.12 0-.28.08-.38q7.94-7.9 15.84-15.84c1.5-1.39 2.9-2.87 4.35-4.3z" + style="fill:#bbbcc1" /> + <path + id="path8" + class="cls-2" + d="M145.54 0h.06c4.84 4.72 9.59 9.52 14.4 14.33 1.91 1.93 3.88 3.8 5.74 5.78l-20.39 20.41a10.44 10.44 0 0 1-.77-.71c-6.39-6.34-12.72-12.73-19.1-19.07-.09-.12-.33-.27-.18-.44C132 13.52 138.81 6.77 145.54 0Z" + style="fill:#bbbcc1" /> + <path + id="path10" + class="cls-2" + d="M193.57 0h.07q8.63 8.64 17.27 17.26c1 1 2 1.92 2.9 3-6.69 6.69-13.4 13.36-20.06 20.08-1.65-1.54-3.19-3.18-4.8-4.75l-15.39-15.4a2.65 2.65 0 0 1 .77-.93z" + style="fill:#bbbcc1" /> + <path + id="path12" + class="cls-2" + d="M25.25 23.97c.14-.2.32 0 .44.11 4.33 4.37 8.72 8.7 13.08 13.06 1.4 1.44 2.87 2.8 4.23 4.28H9.75v-1.55h-.29a7 7 0 0 1 .82-.9z" + style="fill:#bbbcc1" /> + <path + id="path14" + class="cls-2" + d="M73.2 23.99c.12-.17.34-.09.45.05l20.09 20.09Q83.66 54.21 73.57 64.29 63.4 54.07 53.19 43.89l.28-.17q9.86-9.87 19.73-19.73Z" + style="fill:#bbbcc1" /> + <path + id="path16" + class="cls-2" + d="M120.75 24.52c.22-.2.39-.49.68-.59a3.06 3.06 0 0 1 .69.61l11.66 11.65c2.63 2.67 5.32 5.27 7.92 8q-10.14 10.14-20.28 20.27c-3.58-3.55-7.13-7.13-10.7-10.69-3.16-3.19-6.38-6.3-9.53-9.49a1 1 0 0 1 .25-.45c6.45-6.49 12.86-12.94 19.31-19.31z" + style="fill:#bbbcc1" /> + <path + id="path18" + class="cls-2" + d="M249.25 40.3c5.51-5.49 11-11 16.52-16.48l13.83 13.82c.72.76 1.52 1.45 2.2 2.25h-1.16v1.78h-32.66c.37-.5.83-.92 1.27-1.37z" + style="fill:#bbbcc1" /> + <path + id="path20" + class="cls-2" + d="M169.35 24.52c.12-.21.29 0 .39.1l19.82 19.9c-6.66 6.74-13.41 13.4-20.09 20.13a23.82 23.82 0 0 1-1.78-1.7l-15.48-15.54c-.94-1-2-1.86-2.83-2.89q9.99-10 19.97-20z" + style="fill:#bbbcc1" /> + <path + id="path22" + class="cls-2" + d="M211.48 30.37c2-2 4-4 6-5.93.62.5 1.14 1.13 1.72 1.68l18.35 18.4q-9.65 9.69-19.33 19.35a3.93 3.93 0 0 1-.87.76c-1.1-1.18-2.27-2.29-3.4-3.44-5.54-5.56-11.11-11.08-16.64-16.66 4.69-4.73 9.43-9.46 14.17-14.16z" + style="fill:#bbbcc1" /> + <path + id="path24" + class="cls-2" + d="M9.75 46.92H43a3.58 3.58 0 0 1-.47.56L29.32 60.7c-1.32 1.3-2.6 2.66-4 3.92-4.8-4.84-9.64-9.64-14.45-14.47a11.2 11.2 0 0 1-1.16-1.23c.06-.67.04-1.33.04-2z" + style="fill:#bbbcc1" /> + <path + id="path26" + class="cls-2" + d="M248.51 47.3h32.12v1.61h.73a8.79 8.79 0 0 1-1.1 1.18l-9.47 9.47c-1.7 1.67-3.34 3.41-5.09 5q-7.63-7.65-15.3-15.3a21.1 21.1 0 0 1-1.89-1.96z" + style="fill:#bbbcc1" /> + <path + id="path28" + class="cls-2" + d="m193.48 48.36.27-.29c2.73 2.76 5.52 5.46 8.26 8.21l12 12c-.88 1.07-2 1.94-2.94 2.94L198.7 83.6c-1.72 1.68-3.38 3.44-5.13 5.08q-7.57-7.55-15.18-15.16c-1.74-1.72-3.43-3.49-5.21-5.17.92-1.08 2-2 3-3 5.72-5.7 11.41-11.43 17.14-17.12z" + style="fill:#bbbcc1" /> + <path + id="path30" + class="cls-2" + d="M125.39 68.52q10.19-10.17 20.36-20.36c1 .82 1.83 1.8 2.76 2.68L166 68.31q-10.19 10.21-20.4 20.4c-1.86-1.79-3.65-3.65-5.48-5.45-4.91-4.92-9.83-9.82-14.73-14.74Z" + style="fill:#bbbcc1" /> + <path + id="path32" + class="cls-2" + d="m77.42 68.52 20.15-20.15 20.18 20.15q-8.43 8.46-16.89 16.9c-1.11 1.07-2.15 2.22-3.29 3.25-5.48-5.43-10.91-10.91-16.37-16.35-1.2-1.26-2.57-2.48-3.78-3.8Z" + style="fill:#bbbcc1" /> + <path + id="path35" + class="cls-3" + d="M169.58 16.22c1.36 1.28 2.65 2.64 4 3.94L189 35.52c1.61 1.57 3.15 3.21 4.8 4.75 6.66-6.72 13.37-13.39 20.06-20.08 1.26-1.24 2.49-2.51 3.76-3.74 8.4 8.39 16.79 16.81 25.22 25.17h37.82v-1.78h9.75v9h-9.73V47.3h-40.33c-.93-.93-1.86-1.87-2.8-2.8l-18.39-18.38c-.58-.55-1.1-1.18-1.72-1.68-2 1.95-4 4-6 5.93-4.74 4.7-9.44 9.43-14.17 14.14l-3.56 3.56-.27.29-.18-.16-3.7-3.68-19.82-19.88c-.1-.1-.27-.31-.39-.1l-20 20q-1.83 1.8-3.63 3.63-10.15 10.17-20.33 20.35c-1.29 1.27-2.55 2.56-3.84 3.82l-3.8-3.82-20.18-20.15-20.15 20.15c-1.25 1.22-2.46 2.48-3.72 3.69Q61.07 59.52 48.44 46.93H9.75v2H0v-9h8.34a5.76 5.76 0 0 0 1.1 0h.29c.05.52 0 1 0 1.55h41c.82.83 1.65 1.64 2.47 2.47q10.2 10.18 20.38 20.4 10.09-10.06 20.17-20.16c1.2-1.21 2.42-2.39 3.6-3.62a.57.57 0 0 1 .34.18c1.16 1.19 2.34 2.35 3.51 3.52 3.15 3.19 6.37 6.3 9.53 9.49 3.57 3.56 7.12 7.14 10.7 10.69l20.27-20.33 3.65-3.6 20.37-20.37c1.29-1.29 2.6-2.57 3.86-3.89m0 1.31c-1.76 1.84-3.59 3.6-5.38 5.42q-21.4 21.32-42.79 42.71l-24-24Q85.52 53.64 73.6 65.59c-2.47-2.41-4.88-4.88-7.33-7.31L53.48 45.52c-1.08-1.06-2.11-2.16-3.22-3.17H9.77v3.69h38.31c.27 0 .61-.1.83.1l24.81 24.78q11.86-11.9 23.76-23.76h.15l14.07 14.03c3.26 3.28 6.57 6.52 9.79 9.83a4.33 4.33 0 0 0 .75-.67q23.63-23.62 47.26-47.25l24 24c2.17-2.27 4.46-4.43 6.67-6.67l17.2-17.2c.33-.11.51.42.78.58q11.31 11.3 22.62 22.61h39.88v-3.9h-38.31c-7.58-7.65-15.24-15.22-22.85-22.83-.67-.63-1.27-1.35-2-1.93a9.69 9.69 0 0 1-.94 1c-7.59 7.62-15.22 15.2-22.79 22.82a2 2 0 0 1-.61-.5l-18.43-18.45c-1.72-1.69-3.39-3.44-5.15-5.11z" + style="fill:#ffffff" /> + <path + id="path37" + class="cls-3" + d="M289.31 128.3a5.54 5.54 0 0 1 10.69 1.38v1.19a5.55 5.55 0 0 1-10 2.65 5.52 5.52 0 0 1-.72-5.21m4.26-2.38a4.42 4.42 0 1 0 4.4 7 4.42 4.42 0 0 0-4.4-7z" + style="fill:#ffffff" /> + <path + id="path39" + class="cls-3" + d="M8.51 125.08h12v34h-12q.02-17.02 0-34z" + style="fill:#ffffff" /> + <path + id="path41" + class="cls-3" + d="M82.39 125.07h25.48v7.22H94.34v5.94h12.41v7.17h-12.4v6.45h13.76v7.17H82.39q-.01-16.96 0-33.95z" + style="fill:#ffffff" /> + <path + id="path43" + class="cls-3" + d="M166.5 125.08h33.19v8.56h-10.64v25.41h-11.91v-25.41h-10.63c-.01-2.86 0-5.71-.01-8.56z" + style="fill:#ffffff" /> + <path + id="path45" + class="cls-3" + d="M259.25 125.07h24.85v7.22h-12.89v6.1h12.13v7.21h-12.13v13.42h-11.96z" + style="fill:#ffffff" /> + <path + id="path47" + class="cls-3" + d="M292 127.3h3.08a1.63 1.63 0 0 1 1.63 2.2 1.54 1.54 0 0 1-1.51 1.02c.66.3 1 1 1.32 1.57.2.36.44.7.61 1.08h-1.51a7.69 7.69 0 0 0-1.39-2.19 1.43 1.43 0 0 0-1-.21v2.4a10.26 10.26 0 0 1-1.24 0v-5.88m1.25.95v1.56a5.58 5.58 0 0 0 1.87-.14.72.72 0 0 0 .07-1.25 5.39 5.39 0 0 0-1.95-.16z" + style="fill:#ffffff" /> + <path + id="path50" + d="M169.57 17.52c1.76 1.66 3.43 3.41 5.15 5.1l18.45 18.46a2 2 0 0 0 .61.5c7.57-7.62 15.2-15.2 22.79-22.82a9.69 9.69 0 0 0 .94-1c.71.58 1.31 1.3 2 1.93 7.61 7.61 15.27 15.18 22.85 22.83h38.29v3.83h-39.88q-11.33-11.3-22.62-22.61c-.27-.16-.45-.69-.78-.58l-17.2 17.2c-2.21 2.24-4.5 4.4-6.67 6.67l-24-24q-23.66 23.61-47.26 47.25a4.33 4.33 0 0 1-.75.67c-3.22-3.31-6.53-6.55-9.79-9.83l-14.07-14h-.15Q85.6 59.03 73.72 70.92L48.89 46.1c-.22-.2-.56-.06-.83-.1H9.75v-3.69h40.49c1.11 1 2.14 2.11 3.22 3.17l12.81 12.8c2.45 2.43 4.86 4.9 7.33 7.31q11.93-11.94 23.86-23.85l24 24q21.43-21.34 42.78-42.75c1.76-1.86 3.57-3.62 5.33-5.47z" + style="fill:#fdd34f" /> +</svg> diff --git a/ietf/static/images/irtf-logo-white.svg b/ietf/static/images/irtf-logo-white.svg new file mode 100644 index 000000000..a67412581 --- /dev/null +++ b/ietf/static/images/irtf-logo-white.svg @@ -0,0 +1,65 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + width="627.284" + height="449.19662" + style="display:inline" + version="1.1" + id="svg303" + sodipodi:docname="irtf-logo-white.svg" + inkscape:version="1.2.2 (b0a84865, 2022-12-01)" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"> + <defs + id="defs307" /> + <sodipodi:namedview + id="namedview305" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:showpageshadow="2" + inkscape:pageopacity="0.0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1" + showgrid="false" + inkscape:zoom="1.0373737" + inkscape:cx="303.65142" + inkscape:cy="192.31257" + inkscape:window-width="1797" + inkscape:window-height="1083" + inkscape:window-x="392" + inkscape:window-y="162" + inkscape:window-maximized="0" + inkscape:current-layer="svg303" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;line-height:0%;font-family:'Arial Black';-inkscape-font-specification:'Arial Black,';text-align:start;letter-spacing:0;word-spacing:0;writing-mode:lr-tb;text-anchor:start;fill:#fccf34;fill-opacity:1;stroke:#fccf34;stroke-width:1.908;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + x="170.22" + y="448.24261" + id="text289"><tspan + x="170.22" + y="448.24261" + style="font-size:102.5px;line-height:1.25;fill:#fccf34;fill-opacity:1;stroke:#fccf34;stroke-opacity:1" + id="tspan287">R</tspan></text> + <path + style="fill:#bdbcbc;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 54.872,156.1246 -44.033,44.031 44.033,44.034 44.032,-44.034 -44.032,-44.03 m 519.185,-0.001 -44.032,44.031 44.032,44.034 44.031,-44.034 -44.03,-44.03 m -311.778,-0.001 -44.032,44.031 44.032,44.034 44.032,-44.034 -44.032,-44.03 m 103.693,-0.001 -44.032,44.031 44.032,44.034 44.032,-44.034 -44.032,-44.03 m 103.693,-0.001 -44.032,44.031 44.032,44.034 44.033,-44.034 -44.033,-44.03 m -258.863,52.051 -44.032,44.032 44.032,44.032 44.032,-44.032 -44.032,-44.032 m -52.217,-52.052 -44.033,44.031 44.033,44.034 44.033,-44.034 -44.033,-44.03 m 155.911,52.051 -44.032,44.032 44.032,44.032 44.032,-44.032 -44.032,-44.032 m 103.693,0 -44.032,44.032 44.032,44.032 44.032,-44.032 -44.032,-44.032 m -207.387,-103.58 -44.032,44.03 44.032,44.034 44.032,-44.033 -44.032,-44.031 m 103.694,0 -44.032,44.03 44.032,44.034 44.032,-44.033 -44.032,-44.031 m 103.693,0 -44.032,44.03 44.032,44.034 44.032,-44.033 -44.032,-44.031" + id="path291" /> + <path + style="fill:#fccf34;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 18.434,195.0236 h 90.633 l 49.886,49.886 51.52,-51.52 51.807,51.807 104.12,-104.12 52.06,52.059 51.52,-51.52 53.948,53.949 h 88.475 v 10.248 h -92.79 l -49.903,-49.901 -51.79,51.79 -51.79,-51.79 -103.58,103.581 -51.79,-51.792 -51.52,51.522 -54.22,-54.22 H 17.893 l 0.54,-9.98" + id="path293" /> + <path + style="fill:none;stroke:#ffffff;stroke-width:1.908;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 18.434,195.0236 h 90.633 l 49.886,49.886 51.52,-51.52 51.807,51.807 104.12,-104.12 52.06,52.059 51.52,-51.52 53.948,53.949 h 88.475 v 10.248 h -92.79 l -49.903,-49.901 -51.79,51.79 -51.79,-51.79 -103.58,103.581 -51.79,-51.792 -51.52,51.522 -54.22,-54.22 H 17.893 l 0.54,-9.98 z" + id="path295" /> + <path + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 0,210.2616 h 21.04 v -19.421 H 0 Z m 606.244,0 h 21.04 v -19.421 h -21.04 z M 18.471,448.2426 h 25.715 v -73.378 H 18.471 Z m 341.277,-54.979 v -18.399 h 71.55 v 18.399 h -22.919 v 54.979 h -25.714 v -54.98 h -22.917 m 200.334,-18.398 h 53.58 v 15.494 h -27.867 v 13.34 h 26.145 v 15.495 h -26.145 v 29.049 h -25.712 v -73.378" + id="path297" /> + <path + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.908;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 366.286,52.2036 -29.062,29.06 29.062,29.062 29.06,-29.062 -29.06,-29.06 m -111.179,7.485 -29.061,29.06 29.06,29.062 29.062,-29.062 -29.061,-29.06 m -148.231,44.032 -29.061,29.06 29.061,29.063 29.061,-29.062 -29.061,-29.06 m 37.408,171.686 -29.061,29.06 29.061,29.063 29.061,-29.062 -29.06,-29.06 m 222.358,-14.971 -29.061,29.06 29.06,29.062 29.062,-29.062 -29.061,-29.06 m 155.211,-22.201 -29.061,29.06 29.061,29.062 29.061,-29.062 -29.061,-29.06 m -377.706,-171.283 -14.531,14.53 14.53,14.531 14.531,-14.53 -14.53,-14.531 m 52.217,-22.027 -14.53,14.53 14.53,14.531 14.53,-14.531 -14.53,-14.53 m 14.751,-44.252 -14.531,14.53 14.53,14.531 14.531,-14.53 -14.53,-14.531 m 74.192,29.501 -14.531,14.53 14.531,14.53 14.53,-14.53 -14.53,-14.53 m 118.444,-14.751 -14.531,14.53 14.53,14.531 14.532,-14.53 -14.531,-14.53 m 29.501,29.501 -14.53,14.53 14.53,14.531 14.53,-14.531 -14.53,-14.53 m 51.477,22.027 -14.531,14.53 14.53,14.531 14.531,-14.53 -14.53,-14.531 m -362.872,185.713 -14.531,14.53 14.53,14.531 14.531,-14.53 -14.53,-14.531 m 89.615,59.823 -14.531,14.53 14.531,14.53 14.53,-14.53 -14.53,-14.53 m 103.693,0 -14.53,14.53 14.53,14.53 14.53,-14.53 -14.53,-14.53 m 140.42,-37.302 -14.531,14.53 14.53,14.531 14.531,-14.53 -14.53,-14.53 m -36.726,37.301 -14.531,14.53 14.53,14.53 14.531,-14.53 -14.53,-14.53 m -140.94,-37.082 -29.06,29.06 29.06,29.063 29.062,-29.062 -29.062,-29.06 m 243.488,-171.688 -14.531,14.53 14.53,14.532 14.531,-14.531 -14.53,-14.53 m -28.713,-73.546 -14.531,14.53 14.53,14.53 14.531,-14.53 -14.53,-14.53" + id="path299" /> +</svg> diff --git a/ietf/static/images/irtf-logo.svg b/ietf/static/images/irtf-logo.svg index be64890b2..10b2a9681 100644 --- a/ietf/static/images/irtf-logo.svg +++ b/ietf/static/images/irtf-logo.svg @@ -6,7 +6,7 @@ version="1.1" id="svg303" sodipodi:docname="irtf-logo.svg" - inkscape:version="1.2.1 (9c6d41e4, 2022-07-14)" + inkscape:version="1.2.2 (b0a84865, 2022-12-01)" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns="http://www.w3.org/2000/svg" @@ -24,12 +24,12 @@ inkscape:deskcolor="#d1d1d1" showgrid="false" inkscape:zoom="1.0373737" - inkscape:cx="304.1334" - inkscape:cy="446.80136" + inkscape:cx="303.65142" + inkscape:cy="447.76535" inkscape:window-width="1797" inkscape:window-height="1083" inkscape:window-x="951" - inkscape:window-y="445" + inkscape:window-y="417" inkscape:window-maximized="0" inkscape:current-layer="svg303" /> <g @@ -38,14 +38,14 @@ transform="translate(-79.997,-54.868397)"> <text xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;line-height:0%;font-family:'Arial Black';-inkscape-font-specification:'Arial Black,';text-align:start;letter-spacing:0;word-spacing:0;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.908;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + style="font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;line-height:0%;font-family:'Arial Black';-inkscape-font-specification:'Arial Black,';text-align:start;letter-spacing:0;word-spacing:0;writing-mode:lr-tb;text-anchor:start;fill:#fccf34;fill-opacity:1;stroke:#000000;stroke-width:1.908;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" x="250.217" y="565.47302" transform="translate(0,-62.362)" id="text289"><tspan x="250.217" y="565.47302" - style="font-size:102.5px;line-height:1.25" + style="font-size:102.5px;line-height:1.25;fill:#fccf34;fill-opacity:1" id="tspan287">R</tspan></text> <path style="fill:#bdbcbc;fill-opacity:1;fill-rule:nonzero;stroke:none" diff --git a/ietf/static/js/ietf.js b/ietf/static/js/ietf.js index 69c8fa9ae..7f7e92415 100644 --- a/ietf/static/js/ietf.js +++ b/ietf/static/js/ietf.js @@ -168,7 +168,7 @@ $(function () { .attr("tabindex", 0) .after($(` <div class="col-xl-2 ps-0 small"> - <div id="righthand-panel" class="position-fixed col-xl-2 bg-light d-flex flex-column justify-content-between align-items-start"> + <div id="righthand-panel" class="position-fixed col-xl-2 bg-light-subtle d-flex flex-column justify-content-between align-items-start"> <nav id="righthand-nav" class="navbar w-100 overflow-auto align-items-start flex-fill"></nav> </div> </div> diff --git a/ietf/static/js/password_strength.js b/ietf/static/js/password_strength.js index eaeed2e1c..4df5c1443 100644 --- a/ietf/static/js/password_strength.js +++ b/ietf/static/js/password_strength.js @@ -30,7 +30,7 @@ widget .find(".label-danger") - .addClass("bg-danger") + .addClass("text-bg-danger") .removeClass("label-danger"); widget @@ -64,13 +64,13 @@ .val()); if (result.score < 3) { - password_strength_bar.removeClass('bg-success') - .addClass('bg-warning'); + password_strength_bar.removeClass('text-bg-success') + .addClass('text-bg-warning'); password_strength_info.find('.badge') .removeClass('d-none'); } else { - password_strength_bar.removeClass('bg-warning') - .addClass('bg-success'); + password_strength_bar.removeClass('text-bg-warning') + .addClass('text-bg-success'); password_strength_info.find('.badge') .addClass('d-none'); } @@ -86,8 +86,8 @@ .html(result.crack_times_display.offline_slow_hashing_1e4_per_second); password_strength_offline_info.removeClass('d-none'); } else { - password_strength_bar.removeClass('bg-success') - .addClass('bg-warning'); + password_strength_bar.removeClass('text-bg-success') + .addClass('text-bg-warning'); password_strength_bar.width('0%') .attr('aria-valuenow', 0); password_strength_info.addClass('d-none'); @@ -186,4 +186,4 @@ // Call the init for backwards compatibility djangoPasswordStrength.init(); -})(jQuery, window, document); \ No newline at end of file +})(jQuery, window, document); diff --git a/ietf/static/js/theme.js b/ietf/static/js/theme.js new file mode 100644 index 000000000..d10a47256 --- /dev/null +++ b/ietf/static/js/theme.js @@ -0,0 +1,93 @@ +/*! + * Color mode toggler for Bootstrap's docs (https://getbootstrap.com/) + * Copyright 2011-2023 The Bootstrap Authors + * Licensed under the Creative Commons Attribution 3.0 Unported License. + * + * Based on the below, with some changes for the datatracker: + * https://github.com/twbs/bootstrap/blob/main/site/static/docs/5.3/assets/js/color-modes.js + */ + +(() => { + 'use strict' + + const getStoredTheme = () => localStorage.getItem('theme') || 'auto' + const setStoredTheme = theme => localStorage.setItem('theme', theme) + + const getPreferredTheme = () => { + const storedTheme = getStoredTheme() + if (storedTheme) { + return storedTheme + } + + return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light' + } + + const setTheme = theme => { + if (theme === 'auto') { + if (window.matchMedia('(prefers-color-scheme: dark)').matches) { + document.documentElement.setAttribute('data-bs-theme', 'dark') + } else if (window.matchMedia('(prefers-color-scheme: light)').matches) { + document.documentElement.setAttribute('data-bs-theme', 'light') + } + } else { + document.documentElement.setAttribute('data-bs-theme', theme) + } + } + + setTheme(getPreferredTheme()) + + const showActiveTheme = (theme, focus = false) => { + const themeSwitcher = document.querySelector('#bd-theme') + + if (!themeSwitcher) { + return + } + + // Commented-out lines are from the original bs5 js, which uses a more complicated pref dropdown. + // Kept them here for easier future diffing. + const themeSwitcherText = document.querySelector('#bd-theme-text') + const activeThemeIcon = document.querySelector('.theme-icon-active') + const btnToActive = document.querySelector(`[data-bs-theme-value="${theme}"]`) + const iconPattern = new RegExp(/\bbi-[\w-]+\b/); + const iconOfActiveBtn = btnToActive.querySelector('i').className.match(iconPattern)[0] + + document.querySelectorAll('[data-bs-theme-value]').forEach(element => { + element.classList.remove('active') + element.setAttribute('aria-pressed', 'false') + }) + + btnToActive.classList.add('active') + btnToActive.setAttribute('aria-pressed', 'true') + if (activeThemeIcon) { + activeThemeIcon.className = activeThemeIcon.className.replace(iconPattern, iconOfActiveBtn) + } + if (themeSwitcherText) { + const themeSwitcherLabel = `${themeSwitcherText.textContent} (${btnToActive.dataset.bsThemeValue})` + themeSwitcher.setAttribute('aria-label', themeSwitcherLabel) + } + if (focus) { + themeSwitcher.focus() + } + } + + window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', () => { + const storedTheme = getStoredTheme() + if (storedTheme !== 'light' && storedTheme !== 'dark') { + setTheme(getPreferredTheme()) + } + }) + + window.addEventListener('DOMContentLoaded', () => { + showActiveTheme(getPreferredTheme()) + + document.querySelectorAll('[data-bs-theme-value]') + .forEach(toggle => { + toggle.addEventListener('click', () => { + const theme = toggle.getAttribute('data-bs-theme-value') + setStoredTheme(theme) + setTheme(theme) + showActiveTheme(theme, true) + }) + }) + }) +})() diff --git a/ietf/submit/models.py b/ietf/submit/models.py index 514659d71..51f7541e3 100644 --- a/ietf/submit/models.py +++ b/ietf/submit/models.py @@ -79,11 +79,18 @@ class Submission(models.Model): return Document.objects.filter(name=self.name).first() def latest_checks(self): - checks = [ self.checks.filter(checker=c).latest('time') for c in self.checks.values_list('checker', flat=True).distinct() ] - return checks + """Latest check of each type, excluding any that did not apply + + Ignores any checks where passed is None + """ + latest_for_each_checker = [ + self.checks.filter(checker=c).latest("time") + for c in self.checks.values_list("checker", flat=True).distinct() + ] + return [check for check in latest_for_each_checker if check.passed is not None] def has_yang(self): - return any ( [ c.checker=='yang validation' and c.passed is not None for c in self.latest_checks()] ) + return any(c.checker == "yang validation" for c in self.latest_checks()) @property def replaces_names(self): diff --git a/ietf/submit/tests.py b/ietf/submit/tests.py index 79b4edf8e..29b21c19f 100644 --- a/ietf/submit/tests.py +++ b/ietf/submit/tests.py @@ -3782,3 +3782,54 @@ class TestOldNamesAreProtected(BaseSubmitTestCase): files["xml"], _ = submission_file("draft-something-hascapitalletters-00", "draft-something-hascapitalletters-00.xml", None, "test_submission.xml") r = self.post_to_upload_submission(url, files) self.assertContains(r,"Case-conflicting draft name found",status_code=200) + + +class SubmissionStatusTests(BaseSubmitTestCase): + """Tests of the submission_status view + + Many tests are interspersed in the monolithic tests above. We can aspire to break these + out more modularly, though. + """ + + def test_submission_checks(self): + for state_slug in ("uploaded", "cancel", "posted"): + submission = SubmissionFactory(state_id=state_slug) + url = urlreverse( + "ietf.submit.views.submission_status", + kwargs={"submission_id": submission.pk}, + ) + # No checks + r = self.client.get(url) + self.assertContains( + r, + "No submission checks were applied to your Internet-Draft.", + status_code=200, + ) + # Inapplicable check + submission.checks.create( + checker="yang validation", passed=None, message="Yang message" + ) + r = self.client.get(url) + self.assertContains( + r, + "No submission checks were applied to your Internet-Draft.", + status_code=200, + ) + # Passed check + submission.checks.create( + checker="idnits check", passed=True, message="idnits ok" + ) + r = self.client.get(url) + self.assertContains( + r, + "Your Internet-Draft has been verified to pass the submission checks.", + status_code=200, + ) + # Failed check + passed check + submission.checks.filter(checker="yang validation").update(passed=False) + r = self.client.get(url) + self.assertContains( + r, + "Your Internet-Draft failed at least one submission check.", + status_code=200, + ) diff --git a/ietf/submit/utils.py b/ietf/submit/utils.py index 7a95ee930..7253210f0 100644 --- a/ietf/submit/utils.py +++ b/ietf/submit/utils.py @@ -11,6 +11,8 @@ import time import traceback import xml2rfc +from pathlib import Path +from shutil import move from typing import Optional, Union # pyflakes:ignore from unidecode import unidecode @@ -633,24 +635,27 @@ def cancel_submission(submission): submission.save() remove_submission_files(submission) + def rename_submission_files(submission, prev_rev, new_rev): for ext in settings.IDSUBMIT_FILE_TYPES: - source = os.path.join(settings.IDSUBMIT_STAGING_PATH, '%s-%s.%s' % (submission.name, prev_rev, ext)) - dest = os.path.join(settings.IDSUBMIT_STAGING_PATH, '%s-%s.%s' % (submission.name, new_rev, ext)) - if os.path.exists(source): - os.rename(source, dest) + staging_path = Path(settings.IDSUBMIT_STAGING_PATH) + source = staging_path / f"{submission.name}-{prev_rev}.{ext}" + dest = staging_path / f"{submission.name}-{new_rev}.{ext}" + if source.exists(): + move(source, dest) + def move_files_to_repository(submission): for ext in settings.IDSUBMIT_FILE_TYPES: - source = os.path.join(settings.IDSUBMIT_STAGING_PATH, '%s-%s.%s' % (submission.name, submission.rev, ext)) - dest = os.path.join(settings.IDSUBMIT_REPOSITORY_PATH, '%s-%s.%s' % (submission.name, submission.rev, ext)) - if os.path.exists(source): - os.rename(source, dest) - else: - if os.path.exists(dest): - log.log("Intended to move '%s' to '%s', but found source missing while destination exists.") - elif ext in submission.file_types.split(','): - raise ValueError("Intended to move '%s' to '%s', but found source and destination missing.") + fname = f"{submission.name}-{submission.rev}.{ext}" + source = Path(settings.IDSUBMIT_STAGING_PATH) / fname + dest = Path(settings.IDSUBMIT_REPOSITORY_PATH) / fname + if source.exists(): + move(source, dest) + elif dest.exists(): + log.log("Intended to move '%s' to '%s', but found source missing while destination exists.") + elif ext in submission.file_types.split(','): + raise ValueError("Intended to move '%s' to '%s', but found source and destination missing.") def remove_staging_files(name, rev, exts=None): diff --git a/ietf/submit/views.py b/ietf/submit/views.py index 9301a8229..b583a53fc 100644 --- a/ietf/submit/views.py +++ b/ietf/submit/views.py @@ -317,8 +317,13 @@ def submission_status(request, submission_id, access_token=None): if access_token and not key_matched: raise Http404 - errors = validate_submission(submission) - passes_checks = all([ c.passed!=False for c in submission.checks.all() ]) + if submission.state.slug == "cancel": + errors = {} + else: + errors = validate_submission(submission) + latest_checks = submission.latest_checks() + applied_any_checks = len(latest_checks) > 0 + passes_checks = applied_any_checks and all(c.passed for c in latest_checks) is_secretariat = has_role(request.user, "Secretariat") is_chair = submission.group and submission.group.has_role(request.user, "chair") @@ -353,7 +358,21 @@ def submission_status(request, submission_id, access_token=None): message = None if submission.state_id == "cancel": - message = ('error', 'This submission has been cancelled, modification is no longer possible.') + # would be nice to have a less heuristic mechansim for reporting async processing failure + async_processing_error = submission.submissionevent_set.filter( + desc__startswith="Submission rejected: A system error occurred" + ).exists() + if async_processing_error: + message = ( + "error", + "This submission has been cancelled due to a system error during processing. " + "Modification is no longer possible.", + ) + else: + message = ( + "error", + "This submission has been cancelled, modification is no longer possible.", + ) elif submission.state_id == "auth": message = ('success', 'The submission is pending email authentication. An email has been sent to: %s' % ", ".join(confirmation_list)) elif submission.state_id == "grp-appr": @@ -530,6 +549,7 @@ def submission_status(request, submission_id, access_token=None): 'selected': 'status', 'submission': submission, 'errors': errors, + 'applied_any_checks': applied_any_checks, 'passes_checks': passes_checks, 'submitter_form': submitter_form, 'replaces_form': replaces_form, diff --git a/ietf/templates/401.html b/ietf/templates/401.html index a88ce940e..8c06dff9e 100644 --- a/ietf/templates/401.html +++ b/ietf/templates/401.html @@ -3,9 +3,7 @@ {% load static %} {% block title %}401 Unauthorized{% endblock %} {% block content %} - <img class="col-2 mb-5" - src="{% static 'ietf/images/ietf-logo.svg' %}" - alt="IETF"> + {% include "logo.html" with org="ietf" classes="col-2 mb-5" only %} <div class="alert alert-warning my-3"> <h1>Authentication Required</h1> <hr> diff --git a/ietf/templates/403.html b/ietf/templates/403.html index 155e4ea99..2ea87eb3a 100644 --- a/ietf/templates/403.html +++ b/ietf/templates/403.html @@ -3,9 +3,7 @@ {% load static %} {% block title %}Error: Restricted Access{% endblock %} {% block content %} - <img class="col-2 mb-5" - src="{% static 'ietf/images/ietf-logo.svg' %}" - alt="IETF"> + {% include "logo.html" with org="ietf" classes="col-2 mb-5" only %} <div class="alert alert-warning my-3"> <h1>Restricted Access</h1> <hr> diff --git a/ietf/templates/404.html b/ietf/templates/404.html index de247c89a..b21bd5d97 100644 --- a/ietf/templates/404.html +++ b/ietf/templates/404.html @@ -3,9 +3,7 @@ {% load static %} {% block title %}Error: Page Not Found{% endblock %} {% block content %} - <img class="col-2 mb-5" - src="{% static 'ietf/images/ietf-logo.svg' %}" - alt="IETF"> + {% include "logo.html" with org="ietf" classes="col-2 mb-5" only %} <div class="alert alert-warning my-3"> <h1>The page you were looking for couldn't be found</h1> <hr> diff --git a/ietf/templates/500.html b/ietf/templates/500.html index b7ea01bdd..bd205dad6 100644 --- a/ietf/templates/500.html +++ b/ietf/templates/500.html @@ -3,9 +3,7 @@ {% load static %} {% block title %}500 Internal Server Error{% endblock %} {% block content %} - <img class="col-2 mb-5" - src="{% static 'ietf/images/ietf-logo.svg' %}" - alt="IETF"> + {% include "logo.html" with org="ietf" classes="col-2 mb-5" only %} <div class="alert alert-warning my-3"> <h1>Internal Server Error</h1> <hr> diff --git a/ietf/templates/base.html b/ietf/templates/base.html index 4546594c2..8263a5738 100644 --- a/ietf/templates/base.html +++ b/ietf/templates/base.html @@ -6,7 +6,7 @@ {% origin %} {% load django_bootstrap5 %} {% load django_vite %} -<html lang="en" {% block html_attrs %}{% endblock %}> +<html data-bs-theme="auto" lang="en" {% block html_attrs %}{% endblock %}> <head> {% analytical_head_top %} <meta charset="utf-8"> @@ -19,6 +19,8 @@ <link href="{{ settings.STATIC_IETF_ORG }}/fonts/noto-sans-mono/import.css" rel="stylesheet"> <link rel="stylesheet" href="{% static 'ietf/css/ietf.css' %}"> <link rel="stylesheet" href="{% static 'ietf/css/select2.css' %}"> + {# load this in the head, to prevent flickering #} + <script src="{% static 'ietf/js/theme.js' %}"></script> <style> {% block morecss %}{% endblock %} </style> @@ -33,11 +35,10 @@ data-group-menu-data-url="{% url 'ietf.group.views.group_menu_data' %}"> {% analytical_body_top %} <a class="visually-hidden visually-hidden-focusable" href="#content">Skip to main content</a> - <nav class="navbar navbar-expand-lg {% if server_mode and server_mode != "production" %} bg-warning {% else %} bg-secondary {% endif %} {% if navbar_mode %} {{ navbar_mode }} {% else %} fixed-top {% endif %}"> + <nav class="navbar navbar-expand-lg fixed-top {% if server_mode and server_mode != "production" %}bg-danger-subtle{% else %}bg-secondary-subtle{% endif %}"> <div class="container-fluid"> <a class="navbar-brand" href="/"> - <img alt="IETF Logo" class="me-2" - src="{% static 'ietf/images/ietf-logo-nor-white.svg' %}"> + {% include "logo.html" with org="ietf" classes="me-2" nor=True only %} Datatracker {% if server_mode and server_mode != "production" %} <span class="text-danger">δ</span> @@ -49,7 +50,7 @@ </ul> </div> <div class="d-flex align-items-center"> - <a class="nav-link {% if server_mode and server_mode != "production" %}text-danger{% else %}text-warning{% endif %} d-none d-xl-inline me-xl-4" + <a class="nav-link text-danger d-none d-xl-inline me-xl-4" target="_blank" href="https://github.com/ietf-tools/datatracker/issues/new/choose"> Report a bug @@ -87,7 +88,7 @@ <div class="pt-3 container-fluid"> <div class="row"> {% if request.COOKIES.left_menu == "on" and not hide_menu %} - <div class="d-none d-md-block bg-light py-3 leftmenu small"> + <div class="d-none d-md-block bg-light-subtle py-3 leftmenu small"> <ul class="nav nav-pills flex-column"> {% include "base/menu.html" with flavor="left" %} </ul> @@ -115,8 +116,7 @@ </div> </div> {% block footer %} - <footer class="col-md-12 col-sm-12 bg-white text-center position-sticky"> - <hr class="mx-3"> + <footer class="col-md-12 col-sm-12 border-top mt-5 py-5 bg-light-subtle text-center position-sticky"> <a href="https://www.ietf.org/" class="p-3">IETF</a> <a href="https://www.ietf.org/iesg/" class="p-3">IESG</a> <a href="https://www.iab.org/" class="p-3">IAB</a> diff --git a/ietf/templates/cookies/settings.html b/ietf/templates/cookies/settings.html index 5ded2f3bd..3515491c3 100644 --- a/ietf/templates/cookies/settings.html +++ b/ietf/templates/cookies/settings.html @@ -12,7 +12,7 @@ cookies disabled then you will not be able to change the settings (everything still continues to work by using default settings). </p> - <h2>How many days is considered "new"?</h2> + <h2 class="mt-4">How many days is considered "new"?</h2> <p> This setting affects how many days are considered "new enough" to get the special highlighting in the documents table. The default setting is {{ defaults.new_enough }} days. </p> @@ -60,7 +60,7 @@ 90 days </a> </p> - <h2>How many days is considered "soon"?</h2> + <h2 class="mt-4">How many days is considered "soon"?</h2> <p> This setting tells what is considered "soon" when showing documents that are going to be expire soon. The Default setting is {{ defaults.expires_soon }} days. </p> @@ -108,7 +108,7 @@ 90 days </a> </p> - <h2>Show full document text by default?</h2> + <h2 class="mt-4">Show full document text by default?</h2> <p> Show the full text immediately on the document page instead of only showing beginning of it. This defaults to {{ defaults.full_draft }}. </p> @@ -128,7 +128,7 @@ On </a> </p> - <h2>Show the left-hand menu?</h2> + <h2 class="mt-4">Show the left-hand menu?</h2> <p> Show the left-hand menu on all regular pages? This defaults to {{ defaults.left_menu }}. </p> @@ -148,4 +148,24 @@ On </a> </p> + + + <h2 class="mt-4">Which color mode should be used?</h2> + <p> + Use a light, dark or automatic (as indicated by OS) color mode. + </p> + <p class="btn-group d-flex" id="bd-theme"> + + <a class="btn btn-outline-primary" data-bs-theme-value="light"> + <i class="theme-icon bi bi-brightness-high-fill"></i> Light + </a> + + <a class="btn btn-outline-primary" data-bs-theme-value="dark"> + <i class="theme-icon bi bi-moon-stars-fill"></i> Dark + </a> + + <a class="btn btn-outline-primary" data-bs-theme-value="auto"> + <i class="theme-icon bi bi-circle-half"></i> Auto + </a> + </p> {% endblock %} \ No newline at end of file diff --git a/ietf/templates/doc/charter/submit.html b/ietf/templates/doc/charter/submit.html index 54bd68a41..d39180407 100644 --- a/ietf/templates/doc/charter/submit.html +++ b/ietf/templates/doc/charter/submit.html @@ -39,7 +39,7 @@ <th scope="row">State</th> <td> {{ group.state.name }} - {% if requested_close %}<div class="badge rounded-pill bg-info">In the process of being closed</div>{% endif %} + {% if requested_close %}<div class="badge rounded-pill text-bg-info">In the process of being closed</div>{% endif %} </td> </tr> </tbody> diff --git a/ietf/templates/doc/document_ballot_content.html b/ietf/templates/doc/document_ballot_content.html index 6a12fe9a0..803ed84a3 100644 --- a/ietf/templates/doc/document_ballot_content.html +++ b/ietf/templates/doc/document_ballot_content.html @@ -104,7 +104,7 @@ </div> {% if p.pos.blocking and p.discuss %} <div class="card border-danger {% if p.comment %} mb-2{% endif %}"> - <div class="card-header bg-danger text-light"> + <div class="card-header text-bg-danger"> <div> <b>{{ p.pos.name }}</b> ({{ p.discuss_time|date:"Y-m-d" }}{% if not p.for_current_revision and p.get_dochistory.rev %}{% if p.discuss_time %} {% endif %}for -{{ p.get_dochistory.rev }}{% endif %}) @@ -180,7 +180,7 @@ <div class="h5 d-flex mt-4" id="{{ doc.name|slugify }}_{{ p.balloter.plain_name|slugify }}"> <div class="flex-fill text-body-secondary"> - {{ p.balloter.plain_name }} <span class="badge rounded-pill bg-secondary">Former IESG member</span> + {{ p.balloter.plain_name }} <span class="badge rounded-pill text-bg-secondary">Former IESG member</span> </div> <div class="flex-fill text-end"> {% if p.old_positions %}<span class="text-body-secondary small">(was {{ p.old_positions|join:", " }})</span>{% endif %} diff --git a/ietf/templates/doc/document_bofreq.html b/ietf/templates/doc/document_bofreq.html index 9fb4030b9..cbf64c148 100644 --- a/ietf/templates/doc/document_bofreq.html +++ b/ietf/templates/doc/document_bofreq.html @@ -21,7 +21,7 @@ <td class="edit"></td> <td> {{ doc.get_state.slug|capfirst }} BOF request - {% if snapshot %}<span class="badge rounded-pill bg-warning">Snapshot</span>{% endif %} + {% if snapshot %}<span class="badge rounded-pill text-bg-warning">Snapshot</span>{% endif %} </td> </tr> <tr> diff --git a/ietf/templates/doc/document_charter.html b/ietf/templates/doc/document_charter.html index cdc0bbdc3..3f055ab5f 100644 --- a/ietf/templates/doc/document_charter.html +++ b/ietf/templates/doc/document_charter.html @@ -59,7 +59,7 @@ <th scope="row"> {{ group.name }} {{ group.type.name }} <a href="{{ group.about_url }}">({{ group.acronym }})</a> - {% if snapshot %}<span class="badge rounded-pill bg-warning">Snapshot</span>{% endif %} + {% if snapshot %}<span class="badge rounded-pill text-bg-warning">Snapshot</span>{% endif %} </th> </tr> <tr> @@ -94,8 +94,8 @@ {% else %} No document state {% endif %} - {% if chartering == "initial" %}<span class="badge rounded-pill bg-info">Initial chartering</span>{% endif %} - {% if chartering == "rechartering" %}<span class="badge rounded-pill bg-info">Rechartering</span>{% endif %} + {% if chartering == "initial" %}<span class="badge rounded-pill text-bg-info">Initial chartering</span>{% endif %} + {% if chartering == "rechartering" %}<span class="badge rounded-pill text-bg-info">Rechartering</span>{% endif %} </td> </tr> </tbody> diff --git a/ietf/templates/doc/document_chatlog.html b/ietf/templates/doc/document_chatlog.html index 4e4738250..7c97471e6 100644 --- a/ietf/templates/doc/document_chatlog.html +++ b/ietf/templates/doc/document_chatlog.html @@ -26,7 +26,7 @@ <a href="{{ doc.group.about_url }}">({{ doc.group.acronym }})</a> {{ doc.group.type.name }} {% endif %} - {% if snapshot %}<span class="badge rounded-pill bg-warning">Snapshot</span>{% endif %} + {% if snapshot %}<span class="badge rounded-pill text-bg-warning">Snapshot</span>{% endif %} </td> </tr> <tr> diff --git a/ietf/templates/doc/document_conflict_review.html b/ietf/templates/doc/document_conflict_review.html index e3b58c633..00300e780 100644 --- a/ietf/templates/doc/document_conflict_review.html +++ b/ietf/templates/doc/document_conflict_review.html @@ -29,8 +29,8 @@ <td> <a href="{% url "ietf.doc.views_doc.document_main" name=conflictdoc.name %}"> {% if conflictdoc.get_state_slug == 'rfc' %}{{ conflictdoc.name|prettystdname }}{% else %}{{ conflictdoc.name }}-{{ conflictdoc.rev }}{% endif %}</a> - <span class="badge rounded-pill bg-info">{{ conflictdoc.stream }} stream</span> - {% if snapshot %}<span class="badge rounded-pill bg-warning">Snapshot</span>{% endif %} + <span class="badge rounded-pill text-bg-info">{{ conflictdoc.stream }} stream</span> + {% if snapshot %}<span class="badge rounded-pill text-bg-warning">Snapshot</span>{% endif %} </td> </tr> <tr> @@ -54,11 +54,7 @@ {% endif %} </td> <td> - {% if "no-problem" in doc.get_state.name|slugify %} - <span class="text-success">{{ doc.get_state.name}}</span> - {% else %} - {{ doc.get_state.name }} - {% endif %} + {{ doc.get_state.name|badgeify }} </td> </tr> </tbody> @@ -149,4 +145,4 @@ </script> <script src="{% static 'ietf/js/document_timeline.js' %}"> </script> -{% endblock %} +{% endblock %} \ No newline at end of file diff --git a/ietf/templates/doc/document_draft.html b/ietf/templates/doc/document_draft.html index 68305be2f..15e3a8047 100644 --- a/ietf/templates/doc/document_draft.html +++ b/ietf/templates/doc/document_draft.html @@ -1,5 +1,5 @@ {% extends "base.html" %} -{# Copyright The IETF Trust 2016-2020, All Rights Reserved #} +{# Copyright The IETF Trust 2016-2023, All Rights Reserved #} {% load origin %} {% load static %} {% load ietf_filters %} @@ -47,7 +47,7 @@ {% if doc.stream %} <th scope="row"> {% if doc.stream.slug != "legacy" %} - <a href="{% url "ietf.help.views.state" doc=doc.type.slug type=doc.stream.slug %}"> + <a href="{% url "ietf.doc.views_help.state_help" type=stream %}"> {% if doc.stream_id == 'ietf' %} WG {% else %} @@ -224,7 +224,7 @@ href="{% url 'ietf.doc.views_doc.document_shepherd_writeup' name=doc.name %}"> Show </a> - <span class="badge rounded-pill bg-secondary">Last changed {{ shepherd_writeup.time|date:"Y-m-d" }}</span> + <span class="badge rounded-pill text-bg-secondary">Last changed {{ shepherd_writeup.time|date:"Y-m-d" }}</span> {% else %} <span class="text-body-secondary"> (None) @@ -274,12 +274,12 @@ IESG </th> <th scope="row"> - <a href="{% url "ietf.help.views.state" doc=doc.type.slug type="iesg" %}"> + <a href="{% url "ietf.doc.views_help.state_help" type="draft-iesg" %}"> IESG state </a> </th> <td class="edit"> - {% if iesg_state.slug != 'idexists' and can_edit %} + {% if iesg_state.slug != 'idexists' and iesg_state.slug != 'dead' and can_edit %} <a class="btn btn-primary btn-sm" href="{% url 'ietf.doc.views_draft.change_state' name=doc.name %}"> Edit @@ -468,7 +468,7 @@ IANA </th> <th scope="row"> - <a href="{% url "ietf.help.views.state" doc=doc.type.slug type="iana-review" %}"> + <a href="{% url "ietf.doc.views_help.state_help" type="draft-iana-review" %}"> IANA review state </a> </th> @@ -497,7 +497,7 @@ {% if not can_edit_iana_state and not iana_review_state %}IANA{% endif %} </th> <th scope="row"> - <a href="{% url "ietf.help.views.state" doc=doc.type.slug type="iana-action" %}"> + <a href="{% url "ietf.doc.views_help.state_help" type="draft-iana-action" %}"> IANA action state </a> </th> @@ -526,7 +526,7 @@ {% if not can_edit_iana_state and not iana_review_state and not iana_action_state %}IANA{% endif %} </th> <th scope="row"> - <a href="{% url "ietf.help.views.state" doc=doc.type.slug type="iana-experts" %}"> + <a href="{% url "ietf.doc.views_help.state_help" type="draft-iana-experts" %}"> IANA expert review state </a> </th> @@ -587,7 +587,7 @@ RFC Editor </th> <th scope="row"> - <a href="{% url "ietf.help.views.state" doc=doc.type.slug type="rfceditor" %}"> + <a href="{% url "ietf.doc.views_help.state_help" type="draft-rfceditor" %}"> RFC Editor state </a> </th> @@ -644,7 +644,7 @@ </i> IPR {% if doc.related_ipr %} - <span class="badge rounded-pill"> + <span class="badge rounded-pill text-bg-secondary"> {{ doc.related_ipr|length }} </span> {% endif %} @@ -786,7 +786,7 @@ {% endif %} {% else %} <div class="card border-warning mt-5"> - <div class="card-header bg-warning"> + <div class="card-header text-bg-warning"> <p><b>This Internet-Draft is no longer active. A copy of the expired Internet-Draft is available in these formats:</b></p> diff --git a/ietf/templates/doc/document_html.html b/ietf/templates/doc/document_html.html index d9d4860a4..0d68f0448 100644 --- a/ietf/templates/doc/document_html.html +++ b/ietf/templates/doc/document_html.html @@ -5,7 +5,7 @@ {% load static %} {% load ietf_filters textfilters %} {% origin %} -<html lang="en"> +<html data-bs-theme="auto" lang="en"> <head> {% analytical_head_top %} <meta charset="utf-8"> @@ -29,6 +29,7 @@ <link rel="stylesheet" href="{% static 'ietf/css/document_html_txt.css' %}"> {% endif %} <script src="{% static 'ietf/js/document_html.js' %}"></script> + <script src="{% static 'ietf/js/theme.js' %}"></script> {% endif %} <link rel="alternate" type="application/atom+xml" title="Document changes" href="/feed/document-changes/{{ doc.name }}/"> <meta name="description" @@ -50,18 +51,51 @@ </head> <body> {% analytical_body_top %} - <button class="btn btn-outline-secondary position-fixed top-0 end-0 m-2 sidebar-toggle" - type="button" - id="sidebar-on" - data-bs-toggle="collapse" - data-bs-target="#sidebar" - aria-expanded="{% if request.COOKIES.sidebar != 'off'%}true{% else %}false{% endif %}" - aria-controls="sidebar" - aria-label="Show metadata sidebar" - title="Show metadata sidebar"> - <i class="bi bi-layout-sidebar-reverse"></i> - </button> - <nav class="navbar bg-light px-1 fixed-top d-print-none d-md-none"> + <div class="btn-toolbar sidebar-toolbar position-fixed top-0 end-0 m-2 m-lg-3"> + <div class="dropdown"> + <button class="btn btn-outline-secondary btn-sm me-1 dropdown-toggle d-flex align-items-center" + id="bd-theme" type="button" aria-expanded="false" data-bs-toggle="dropdown" + aria-label="Toggle theme"> + <i class="theme-icon-active bi bi-circle-half"></i> + </button> + + <ul class="dropdown-menu" aria-labelledby="bd-theme"> + <li> + <button type="button" class="dropdown-item d-flex align-items-center" + data-bs-theme-value="light" aria-pressed="false"> + <i class="me-2 opacity-50 theme-icon bi bi-sun-fill"></i> + Light<i class="bi bi-check2 ms-auto d-none"></i> + </button> + </li> + <li> + <button type="button" class="dropdown-item d-flex align-items-center" + data-bs-theme-value="dark" aria-pressed="false"> + <i class="me-2 opacity-50 theme-icon bi bi-moon-stars-fill"></i> + Dark<i class="bi bi-check2 ms-auto d-none"></i> + </button> + </li> + <li> + <button type="button" class="dropdown-item d-flex align-items-center active" + data-bs-theme-value="auto" aria-pressed="true"> + <i class="me-2 opacity-50 theme-icon bi bi-circle-half"></i> + Auto<i class="bi bi-check2 ms-auto d-none"></i> + </button> + </li> + </ul> + </div> + <button class="btn btn-outline-secondary btn-sm sidebar-toggle" + type="button" + data-bs-toggle="collapse" + data-bs-target="#sidebar" + aria-expanded="{% if request.COOKIES.sidebar != 'off'%}true{% else %}false{% endif %}" + aria-controls="sidebar" + aria-label="Toggle metadata sidebar" + title="Toggle metadata sidebar"> + <i class="bi bi-layout-sidebar-reverse sidebar-shown"></i> + <i class="bi bi-arrow-bar-up sidebar-collapsed"></i> + </button> + </div> + <nav class="navbar bg-light-subtle px-1 fixed-top d-print-none d-md-none"> <a class="nav-link ps-1" href="{% url 'ietf.doc.views_doc.document_main' name=doc.name %}"> {% if not snapshot and doc.get_state_slug == "rfc" %} @@ -88,7 +122,7 @@ <span class="navbar-toggler-icon small"></span> </button> <div class="navbar-nav navbar-nav-scroll overscroll-none collapse pt-1" id="docinfo-collapse"> - <div class="bg-light p-0"> + <div class="bg-light-subtle p-0"> <table class="table table-sm table-borderless small"> <tbody class="meta align-top"> <tr> @@ -136,19 +170,8 @@ </div> {% endif %} </div> - <div class="d-print-none col-md-3 bg-light collapse{% if request.COOKIES.sidebar != 'off'%} show{% endif %}" id="sidebar"> + <div class="d-print-none col-md-3 bg-light-subtle collapse{% if request.COOKIES.sidebar != 'off'%} show{% endif %}" id="sidebar"> <div class="position-fixed border-start sidebar overflow-scroll overscroll-none no-scrollbar"> - <button class="btn btn-outline-secondary float-end m-2" - type="button" - id="sidebar-off" - data-bs-toggle="collapse" - data-bs-target="#sidebar" - aria-expanded="{% if request.COOKIES.sidebar != 'off'%}true{% else %}false{% endif %}" - aria-controls="sidebar" - aria-label="Hide metadata sidebar" - title="Hide metadata sidebar"> - <i class="bi bi-arrow-bar-up"></i> - </button> <div class="pt-2 pt-lg-3 px-md-2 px-lg-3"> <a class="btn btn-primary btn-sm" href="{% url 'ietf.doc.views_doc.document_main' name=doc.name %}">Datatracker</a> <p class="fw-bold pt-2"> diff --git a/ietf/templates/doc/document_info.html b/ietf/templates/doc/document_info.html index 488756362..33d89a60d 100644 --- a/ietf/templates/doc/document_info.html +++ b/ietf/templates/doc/document_info.html @@ -26,7 +26,7 @@ {% endif %} {% if document_html %}<br>{% endif %} {% if has_verified_errata or has_errata %} - <a class="{% if document_html %}btn btn-primary btn-sm my-1{% else %}badge rounded-pill bg-danger text-decoration-none text-light{% endif %}" + <a class="{% if document_html %}btn btn-primary btn-sm my-1{% else %}badge rounded-pill text-bg-danger text-decoration-none{% endif %}" href="https://www.rfc-editor.org/errata_search.php?rfc={{ doc.rfc_number }}" title="Click to view errata." rel="nofollow"> {% if document_html %}View errata{% else %}Errata{% endif %} </a> @@ -40,7 +40,7 @@ </a> {% endif %} {% if doc.related_ipr %} - <a title="Click to view IPR declarations." class="{% if document_html %}btn btn-warning btn-sm my-1{% else %}badge rounded-pill bg-warning text-decoration-none text-light{% endif %}" href="{% url 'ietf.ipr.views.search' %}?submit=draft&id={{ doc.name }}">IPR</a> + <a title="Click to view IPR declarations." class="{% if document_html %}btn btn-warning btn-sm my-1{% else %}badge rounded-pill text-bg-warning text-decoration-none{% endif %}" href="{% url 'ietf.ipr.views.search' %}?submit=draft&id={{ doc.name }}">IPR</a> {% endif %} {% if obsoleted_by %}<div>Obsoleted by {{ obsoleted_by|urlize_related_source_list:document_html|join:", " }}</div>{% endif %} {% if updated_by %}<div>Updated by {{ updated_by|urlize_related_source_list:document_html|join:", " }}</div>{% endif %} @@ -71,7 +71,7 @@ {% endif %} {% endif %} {% if doc.get_state_slug != "active" and doc.get_state_slug != "rfc" %} - <div class="badge rounded-pill bg-warning{% if not document_html %} float-end{% endif %}"> + <div class="badge rounded-pill text-bg-warning{% if not document_html %} float-end{% endif %}"> Expired & archived </div> {% endif %} @@ -239,17 +239,7 @@ {% endif %} {% if document_html %} {% if doc.stream.name|lower in 'iab,ietf,irtf' %} - <img alt="{{ doc.stream.name|upper }} Logo" - title="{{ doc.stream.desc }}" - class="w-25 mt-1" - {% if doc.stream.name|lower == 'iab' %} - src="{% static 'ietf/images/iab-logo.svg' %}" - {% elif doc.stream.name|lower == 'ietf' %} - src="{% static 'ietf/images/ietf-logo.svg' %}" - {% elif doc.stream.name|lower == 'irtf' %} - src="{% static 'ietf/images/irtf-logo.svg' %}" - {% endif %} - > + {% include "logo.html" with org=doc.stream.name|lower classes="w-25 mt-1" title=stream_desc nor=True only %} {% else %} {{ doc.stream.desc }} {% endif %} diff --git a/ietf/templates/doc/document_material.html b/ietf/templates/doc/document_material.html index a52dcd07b..189c635ce 100644 --- a/ietf/templates/doc/document_material.html +++ b/ietf/templates/doc/document_material.html @@ -26,7 +26,7 @@ <a href="{{ doc.group.about_url }}">({{ doc.group.acronym }})</a> {{ doc.group.type.name }} {% endif %} - {% if snapshot %}<span class="badge rounded-pill bg-warning">Snapshot</span>{% endif %} + {% if snapshot %}<span class="badge rounded-pill text-bg-warning">Snapshot</span>{% endif %} </td> </tr> <tr> diff --git a/ietf/templates/doc/document_polls.html b/ietf/templates/doc/document_polls.html index 3254f64eb..06ddc31b0 100644 --- a/ietf/templates/doc/document_polls.html +++ b/ietf/templates/doc/document_polls.html @@ -26,7 +26,7 @@ <a href="{{ doc.group.about_url }}">({{ doc.group.acronym }})</a> {{ doc.group.type.name }} {% endif %} - {% if snapshot %}<span class="badge rounded-pill bg-warning">Snapshot</span>{% endif %} + {% if snapshot %}<span class="badge rounded-pill text-bg-warning">Snapshot</span>{% endif %} </td> </tr> <tr> diff --git a/ietf/templates/doc/document_referenced_by.html b/ietf/templates/doc/document_referenced_by.html index ad6ff79c8..8d308fc7e 100644 --- a/ietf/templates/doc/document_referenced_by.html +++ b/ietf/templates/doc/document_referenced_by.html @@ -44,7 +44,7 @@ <a href="{% url 'ietf.doc.views_doc.document_main' name=name %}">{{ name|prettystdname }}</a> {% if ref.target.name != name %} <br> - <span class="badge rounded-pill bg-info">As {{ ref.target.name }}</span> + <span class="badge rounded-pill text-bg-info">As {{ ref.target.name }}</span> {% endif %} </td> <td> diff --git a/ietf/templates/doc/document_statement.html b/ietf/templates/doc/document_statement.html index 7e6d5b947..1d743b067 100644 --- a/ietf/templates/doc/document_statement.html +++ b/ietf/templates/doc/document_statement.html @@ -21,7 +21,7 @@ <td class="edit"></td> <td> <span id="statement-type">{% if doc.get_state.slug != "active" %}{{doc.get_state.name}} {% endif %}{% if doc.group %}{{doc.group.acronym|upper}} {%endif%}Statement</span> - {% if snapshot %}<span class="badge rounded-pill bg-warning">Snapshot</span>{% endif %} + {% if snapshot %}<span class="badge rounded-pill text-bg-warning">Snapshot</span>{% endif %} {% if replaced_by %}<div>Replaced by {{ replaced_by|urlize_related_source_list:False|join:", " }}</div>{% endif %} {% if replaces %}<div>Replaces {{ replaces|urlize_related_target_list:False|join:", " }}</div>{% endif %} </td> diff --git a/ietf/templates/doc/document_status_change.html b/ietf/templates/doc/document_status_change.html index 1a5878d6f..fdb9bab4c 100644 --- a/ietf/templates/doc/document_status_change.html +++ b/ietf/templates/doc/document_status_change.html @@ -35,7 +35,7 @@ </td> <th scope="row"> {{ doc.title }} - {% if snapshot %}<span class="badge rounded-pill bg-warning">Snapshot</span>{% endif %} + {% if snapshot %}<span class="badge rounded-pill text-bg-warning">Snapshot</span>{% endif %} </th> </tr> <tr> diff --git a/ietf/templates/doc/drafts_for_ad.html b/ietf/templates/doc/drafts_for_ad.html index e02fed18c..28ebb2225 100644 --- a/ietf/templates/doc/drafts_for_ad.html +++ b/ietf/templates/doc/drafts_for_ad.html @@ -52,8 +52,35 @@ {% endfor %} </tbody> </table> - <h2 class="mt-4">Documents for {{ ad_name }}</h2> {% endif %} + {% if not_balloted_docs %} + <h2 class="mt-4">Missing ballot positions for {{ ad_name }}</h2> + <table class="table table-sm table-striped tablesorter"> + <thead> + <tr> + <th scope="col" data-sort="document">Document</th> + <th scope="col" data-sort="status">Status</th> + <th scope="col" class="d-none d-sm-table-cell" data-sort="responsible">Responsible AD</th> + </tr> + </thead> + <tbody> + {% for doc in not_balloted_docs %} + <tr> + <td>{{ doc.displayname_with_link }}</td> + {% include "doc/search/status_columns.html" %} + <td class="d-none d-sm-table-cell"> + {% if doc.ad %} + {% person_link doc.ad %} + {% else %} + <span class="text-body-secondary">(None)</span> + {% endif %} + </td> + </tr> + {% endfor %} + </tbody> + </table> + {% endif %} + <h2 class="mt-4">Documents for {{ ad_name }}</h2> {% include "doc/search/search_results.html" with start_table=True end_table=True %} {% endblock %} {% block js %} diff --git a/ietf/templates/doc/drafts_in_iesg_process.html b/ietf/templates/doc/drafts_in_iesg_process.html index d28719c42..f128e528a 100644 --- a/ietf/templates/doc/drafts_in_iesg_process.html +++ b/ietf/templates/doc/drafts_in_iesg_process.html @@ -79,4 +79,4 @@ {% endblock %} {% block js %} <script src="{% static "ietf/js/list.js" %}"></script> -{% endblock %} +{% endblock %} \ No newline at end of file diff --git a/ietf/templates/doc/frontpage.html b/ietf/templates/doc/frontpage.html index 38575aab4..b845c2628 100644 --- a/ietf/templates/doc/frontpage.html +++ b/ietf/templates/doc/frontpage.html @@ -11,9 +11,9 @@ <div class="row"> <div class="col-md-12"> <div class="text-center p-5"> - <img class="ietflogo p-3" - src="{% static 'ietf/images/ietf-logo.svg' %}" - alt="IETF"> + <div class="ietflogo mx-auto p-3"> + {% include "logo.html" with org="ietf" only %} + </div> {% if server_mode != "production" %} <h1 class="text-danger">Datatracker – {{ server_mode|capfirst }} Mode</h1> {% else %} diff --git a/ietf/templates/doc/review/request_info.html b/ietf/templates/doc/review/request_info.html index 14bdd3bee..31578f010 100644 --- a/ietf/templates/doc/review/request_info.html +++ b/ietf/templates/doc/review/request_info.html @@ -1,7 +1,7 @@ {# Copyright The IETF Trust 2017, All Rights Reserved #} {% load origin django_bootstrap5 %} {% origin %} -{% load person_filters %} +{% load person_filters ietf_filters %} <table class="my-3 table table-sm table-borderless"> <tbody class="meta border-top"> <tr> @@ -217,11 +217,9 @@ State </th> <td> - <span class="{% if assignment.state.name|slugify == 'accepted' %}text-success{% endif %}"> - {{ assignment.state.name }} - </span> + {{ assignment.state.name|badgeify }} {% if snapshot %} - <span class="badge rounded-pill bg-warning"> + <span class="badge rounded-pill text-bg-warning"> Snapshot </span> {% endif %} @@ -312,8 +310,8 @@ <th scope="row"> Result </th> - <td class="{% if assignment.result.name|slice:5 == 'Ready' %}text-success{% else %}text-danger{% endif %}"> - {{ assignment.result.name }} + <td> + {{ assignment.result.name|badgeify }} </td> </tr> {% endif %} diff --git a/ietf/templates/doc/review_assignment_summary.html b/ietf/templates/doc/review_assignment_summary.html index ed5c4bfdd..6bb42ea07 100644 --- a/ietf/templates/doc/review_assignment_summary.html +++ b/ietf/templates/doc/review_assignment_summary.html @@ -1,3 +1,4 @@ +{% load ietf_filters %} <div class="review-assignment-summary"> {% if review_assignment.state_id == "completed" or review_assignment.state_id == "part-completed" %} <a href="{% if review_assignment.review %}{% url 'ietf.doc.views_doc.document_main' review_assignment.review.name %}{% else %}{% url 'ietf.doc.views_review.review_request' review_assignment.review_request.doc.name review_assignment.review_request.pk %}{% endif %}"> @@ -10,18 +11,16 @@ -{{ review_assignment.reviewed_rev }}){% endif %} by {{ review_assignment.reviewer.person.plain_name }}</a> {% if review_assignment.state_id == "part-completed" %} - <span class="badge rounded-pill ms-1 bg-secondary">Partially completed</span> + <span class="badge rounded-pill text-bg-secondary ms-1">Partially completed</span> {% endif %} {% if review_assignment.result %} - <span class="badge rounded-pill ms-1 {% if review_assignment.result.name|slice:5|slugify == 'ready' %}bg-success{% else %}bg-info{% endif %}"> - {{ review_assignment.result.name }} - </span> + {{ review_assignment.result.name|badgeify }} {% endif %} {% else %} <a class="text-body-secondary" href="{% url 'ietf.doc.views_review.review_request' review_assignment.review_request.doc.name review_assignment.review_request.pk %}"> {{ review_assignment.review_request.team.acronym|upper }} {{ review_assignment.review_request.type.name }} Review due {{ review_assignment.review_request.deadline|date:"Y-m-d" }}</a> - <span class="badge rounded-pill ms-1 bg-secondary"> + <span class="badge rounded-pill text-bg-secondary ms-1"> Incomplete </span> {% endif %} diff --git a/ietf/templates/doc/review_request_summary.html b/ietf/templates/doc/review_request_summary.html index efeb4a030..af4f2d5f7 100644 --- a/ietf/templates/doc/review_request_summary.html +++ b/ietf/templates/doc/review_request_summary.html @@ -3,7 +3,7 @@ href="{% url 'ietf.doc.views_review.review_request' review_request.doc.name review_request.pk %}"> {{ review_request.team.acronym|upper }} {{ review_request.type.name }} Review due {{ review_request.deadline|date:"Y-m-d" }} </a> - <span class="badge rounded-pill ms-1 bg-secondary"> + <span class="badge rounded-pill text-bg-secondary ms-1"> Requested </span> -</div> +</div> \ No newline at end of file diff --git a/ietf/templates/doc/search/search_result_row.html b/ietf/templates/doc/search/search_result_row.html index 6430e061c..f6d7975dc 100644 --- a/ietf/templates/doc/search/search_result_row.html +++ b/ietf/templates/doc/search/search_result_row.html @@ -7,7 +7,7 @@ {% load person_filters %} {% load django_bootstrap5 %} <tr {% if color_ad_position %}{% with doc|ballotposition:user as pos %}{% if pos %}class="position-{{ pos.slug }}-row"{% endif %}{% endwith %}{% endif %}> - <td> + <td class="bg-transparent"> {% if user.is_authenticated %} <a href="{% url "ietf.community.views.untrack_document" username=request.user.username name=doc.name %}" class="track-untrack-doc {% if not doc.tracked_in_personal_community_list %}d-none{% endif %}" @@ -45,7 +45,7 @@ </a> {% endfor %} </td> - <td class="doc"> + <td class="doc bg-transparent"> {% if doc.pages %}<small class="float-end text-body-secondary d-none d-sm-block">{{ doc.pages }} page{{ doc.pages|pluralize }}</small>{% endif %} <div> <a href="{{ doc.get_absolute_url }}"> @@ -85,12 +85,12 @@ {% endcomment %} <b>{{ doc.title }}</b> {% if doc.has_verified_errata %} - <a class="badge rounded-pill bg-danger text-decoration-none text-light float-end" + <a class="badge rounded-pill text-bg-danger text-decoration-none float-end" href="https://www.rfc-editor.org/errata_search.php?rfc={{ doc.rfc_number }}"> Errata </a> {% elif doc.has_errata %} - <a class="badge rounded-pill bg-warning text-decoration-none text-light float-end" + <a class="badge rounded-pill text-bg-warning text-decoration-none float-end" href="https://www.rfc-editor.org/errata_search.php?rfc={{ doc.rfc_number }}"> Errata </a> @@ -105,50 +105,50 @@ </div> {% endif %} </td> - <td> - {% if doc.latest_revision_date|timesince_days|new_enough:request and doc.type_id != "rfc" %} - {% if doc.rev != "00" %} - <a href="{{ rfcdiff_base_url }}?url2={{ doc.name }}-{{ doc.rev }}"> - {% elif doc.replaces %} - <a href="{{ rfcdiff_base_url }}?url1={{ doc.replaces_name }}&url2={{ doc.name }}-{{ doc.rev }}"> - {% endif %} - {% endif %} - {% if doc.type_id == "rfc" %} - {{ doc.latest_revision_date|date:"Y-m" }} - {% else %} - {{ doc.latest_revision_date|date:"Y-m-d" }} - {% endif %} - {% if doc.latest_revision_date|timesince_days|new_enough:request and doc.type_id != "rfc" %} - {% if doc.rev != "00" or doc.replaces %}</a>{% endif %} - {% endif %} - {% if doc.latest_revision_date|timesince_days|new_enough:request %} - <br> - <div class="float-end"> - <span class="badge rounded-pill bg-success">New</span> - </div> - {% endif %} - {% if doc.type_id == "draft" and doc.get_state_slug == "active" and doc.expirable and doc.expires|timesince_days|expires_soon:request %} - <br> - <span class="badge rounded-pill bg-warning">Expires soon</span> - {% endif %} - </td> - {% include "doc/search/status_columns.html" %} - <td class="text-center d-none d-sm-table-cell"> - {% if doc.related_ipr %} - <a href="{% url "ietf.ipr.views.search" %}?submit=draft&id={{ doc.name }}"> - <span class="badge rounded-pill bg-info">{{ doc.related_ipr|length }}</span> - </a> - {% endif %} - </td> - {% if ad_name == None or ad_name != doc.ad.plain_name %} - <td class="d-none d-sm-table-cell"> - {% if doc.ad %} - {% person_link doc.ad title="Area Director" %} - {% endif %} - <br> - {% if doc.shepherd %} - {% email_person_link doc.shepherd title="Shepherd" class="small text-body-secondary" %} - {% endif %} - </td> + <td class="bg-transparent"> + {% if doc.latest_revision_date|timesince_days|new_enough:request and doc.type_id != "rfc" %} + {% if doc.rev != "00" %} + <a href="{{ rfcdiff_base_url }}?url2={{ doc.name }}-{{ doc.rev }}"> + {% elif doc.replaces %} + <a href="{{ rfcdiff_base_url }}?url1={{ doc.replaces_name }}&url2={{ doc.name }}-{{ doc.rev }}"> {% endif %} - </tr> \ No newline at end of file + {% endif %} + {% if doc.type_id == "rfc" %} + {{ doc.latest_revision_date|date:"Y-m" }} + {% else %} + {{ doc.latest_revision_date|date:"Y-m-d" }} + {% endif %} + {% if doc.latest_revision_date|timesince_days|new_enough:request and doc.type_id != "rfc" %} + {% if doc.rev != "00" or doc.replaces %}</a>{% endif %} + {% endif %} + {% if doc.latest_revision_date|timesince_days|new_enough:request %} + <br> + <div class="float-end"> + <span class="badge rounded-pill text-bg-success">New</span> + </div> + {% endif %} + {% if doc.get_state_slug == "active" and doc.expirable and doc.expires|timesince_days|expires_soon:request %} + <br> + <span class="badge rounded-pill text-bg-warning">Expires soon</span> + {% endif %} + </td> + {% include "doc/search/status_columns.html" %} + <td class="text-center d-none d-sm-table-cell bg-transparent"> + {% if doc.related_ipr %} + <a href="{% url "ietf.ipr.views.search" %}?submit=draft&id={{ doc.name }}"> + <span class="badge rounded-pill text-bg-info">{{ doc.related_ipr|length }}</span> + </a> + {% endif %} + </td> + {% if ad_name == None or ad_name != doc.ad.plain_name %} + <td class="d-none d-sm-table-cell bg-transparent"> + {% if doc.ad %} + {% person_link doc.ad title="Area Director" %} + {% endif %} + <br> + {% if doc.shepherd %} + {% email_person_link doc.shepherd title="Shepherd" class="small text-body-secondary" %} + {% endif %} + </td> + {% endif %} +</tr> \ No newline at end of file diff --git a/ietf/templates/doc/search/status_columns.html b/ietf/templates/doc/search/status_columns.html index 556cbb799..a126cc1a2 100644 --- a/ietf/templates/doc/search/status_columns.html +++ b/ietf/templates/doc/search/status_columns.html @@ -2,10 +2,8 @@ {% load origin %} {% origin %} {% load ietf_filters ballot_icon person_filters %} -<td class="status"> - {% if doc.ballot %} - <div class="float-end ms-1 mb-1" id="ballot-icon-{{ doc.name }}">{% ballot_icon doc %}</div> - {% endif %} +<td class="status bg-transparent"> + <div class="float-end ms-1 mb-1" id="ballot-icon-{{ doc.name }}">{% ballot_icon doc %}</div> {% if not doc.get_state_slug == "rfc" %} {% if '::' in doc.friendly_state %} {{ doc.friendly_state|safe }} @@ -52,9 +50,9 @@ {% for review_assignment in doc.review_assignments %} {% if review_assignment.state_id == "completed" or review_assignment.state_id == "part-completed" %} <span title="{{ review_assignment.review_request.team.acronym|upper }} {{ review_assignment.review_request.type.name }} review {% if review_assignment.reviewed_rev and review_assignment.reviewed_rev != current_rev or review_assignment.review_request.doc.name != current_doc_name %}of {% if review_assignment.review_request.doc.name != current_doc_name %}{{ review_assignment.review_request.doc.name }}{% endif %}-{{ review_assignment.reviewed_rev }}{% endif %}: {{review_assignment.result}}" - class="badge rounded-pill {% if review_assignment.result.name|slice:5|slugify == 'ready' %}bg-success{% elif review_assignment.result.name|slice:9|slugify == 'not-ready' %}bg-danger{% elif review_assignment.result.name|slice:10|slugify == 'has-issues' %}bg-warning{% else %}bg-info{% endif %}"> + class="badge rounded-pill {% if review_assignment.result.name|slice:5|slugify == 'ready' %}text-bg-success{% elif review_assignment.result.name|slice:9|slugify == 'not-ready' %}text-bg-danger{% elif review_assignment.result.name|slice:10|slugify == 'has-issues' %}text-bg-warning{% else %}text-bg-info{% endif %}"> {% else %} - <span title="Incomplete, due {{ review_assignment.review_request.deadline|date:"Y-m-d" }}" class="badge rounded-pill bg-secondary"> + <span title="Incomplete, due {{ review_assignment.review_request.deadline|date:"Y-m-d" }}" class="badge rounded-pill text-bg-secondary"> {% endif %} <a class="text-reset text-decoration-none" href="{% if review_assignment.review %}{% url 'ietf.doc.views_doc.document_main' review_assignment.review.name %}{% else %}{% url 'ietf.doc.views_review.review_request' review_assignment.review_request.doc.name review_assignment.review_request.pk %}{% endif %}"> {{ review_assignment.review_request.team.acronym }} @@ -92,4 +90,4 @@ <span class="text-body-secondary">Updated by {{ doc.updated_by_list|join:", "|urlize_ietf_docs }}</span> {% endif %} {% endif %} -</td> +</td> \ No newline at end of file diff --git a/ietf/templates/doc/state_help.html b/ietf/templates/doc/state_help.html index d7678987a..34481b786 100644 --- a/ietf/templates/doc/state_help.html +++ b/ietf/templates/doc/state_help.html @@ -1,7 +1,6 @@ {% extends "base.html" %} {# Copyright The IETF Trust 2015, All Rights Reserved #} -{% load origin %} -{% load static %} +{% load origin static ietf_filters textfilters %} {% block title %}{{ title }}{% endblock %} {% block pagehead %} <link rel="stylesheet" href="{% static "ietf/css/list.css" %}"> @@ -27,7 +26,7 @@ {% for state in states %} <tr id="{{ state.slug|default:"idexists" }}"> <th scope="row">{{ state.name }}</th> - <td>{{ state.desc|safe|linebreaksbr }}</td> + <td>{{ state.desc|urlize_ietf_docs|linkify }}</td> {% if has_next_states %} <td> {% for s in state.next_states.all %} diff --git a/ietf/templates/doc/status_change/status_changes.html b/ietf/templates/doc/status_change/status_changes.html index 31d6130a3..bdb6c7a50 100644 --- a/ietf/templates/doc/status_change/status_changes.html +++ b/ietf/templates/doc/status_change/status_changes.html @@ -46,4 +46,4 @@ {% endblock %} {% block js %} <script src="{% static "ietf/js/list.js" %}"></script> -{% endblock %} +{% endblock %} \ No newline at end of file diff --git a/ietf/templates/group/active_iabgroups.html b/ietf/templates/group/active_iabgroups.html index ac542cd3c..cd8e3cfd6 100644 --- a/ietf/templates/group/active_iabgroups.html +++ b/ietf/templates/group/active_iabgroups.html @@ -44,4 +44,4 @@ {% endblock %} {% block js %} <script src="{% static "ietf/js/list.js" %}"></script> -{% endblock %} +{% endblock %} \ No newline at end of file diff --git a/ietf/templates/group/active_wgs.html b/ietf/templates/group/active_wgs.html index 1dc301e0c..0e581ea7c 100644 --- a/ietf/templates/group/active_wgs.html +++ b/ietf/templates/group/active_wgs.html @@ -26,7 +26,7 @@ {% for ad in area.ads_and_pre_ads %} <li> {% person_link ad.person %} - {% if ad.name == "pre-ad" %}<span class="badge rounded-pill bg-info">Incoming AD</span>{% endif %} + {% if ad.name == "pre-ad" %}<span class="badge rounded-pill text-bg-info">Incoming AD</span>{% endif %} </li> {% endfor %} </ul> diff --git a/ietf/templates/group/all_status.html b/ietf/templates/group/all_status.html index c480dac5f..7a4c6b651 100644 --- a/ietf/templates/group/all_status.html +++ b/ietf/templates/group/all_status.html @@ -17,7 +17,7 @@ <div class="card-header"> {{ rpt.group.acronym }} {% if rpt.group.state.slug != "active" %} - <span class="badge rounded-pill bg-success">{{ rpt.group.state.slug|upper }}</span> + <span class="badge rounded-pill text-bg-success">{{ rpt.group.state.slug|upper }}</span> {% endif %} {{ rpt.time|date:"Y-m-d" }} </div> @@ -33,7 +33,7 @@ <div class="card-header"> {{ rpt.group.acronym }} {% if rpt.group.state.slug != "active" %} - <span class="badge rounded-pill bg-success">{{ rpt.group.state.slug|upper }}</span> + <span class="badge rounded-pill text-bg-success">{{ rpt.group.state.slug|upper }}</span> {% endif %} {{ rpt.time|date:"Y-m-d" }} </div> diff --git a/ietf/templates/group/appeal_artifact.html b/ietf/templates/group/appeal_artifact.html new file mode 100644 index 000000000..4f810078a --- /dev/null +++ b/ietf/templates/group/appeal_artifact.html @@ -0,0 +1,24 @@ +{% extends "base.html" %} +{% load ietf_filters %} +{# Copyright The IETF Trust 2023. All Rights Reserved. #} +{% load origin %} +{% block title %}{{artifact.display_title}} - {{artifact.appeal.name}}{% endblock %} +{% block pagehead %} + <meta name="description" + content="{{artifact.date}} = {{artifact.display_title}} - {{artifact.appeal.name}}"> +{% endblock %} +{% block content %} + {% origin %} + <h1> + {{artifact.appeal.name}} - {{artifact.appeal.date}} + <br> + <small class="text-body-secondary">{{ artifact.display_title }} - {{ artifact.date }}</small> + </h1> + {{ artifact_html }} + {% if request.user|has_role:"Secretariat" %} + <hr> + <div> + <a class="btn btn-primary btn-sm" download="{{artifact.download_name}}" href="{% url 'ietf.group.views.appeal_artifact_markdown' acronym=artifact.appeal.group.acronym artifact_id=artifact.pk %}">Download markdown source</a> + </div> + {% endif %} +{% endblock %} \ No newline at end of file diff --git a/ietf/templates/group/appeals.html b/ietf/templates/group/appeals.html new file mode 100644 index 000000000..2e0ab6546 --- /dev/null +++ b/ietf/templates/group/appeals.html @@ -0,0 +1,38 @@ +{% extends "group/group_base.html" %} +{# Copyright The IETF Trust 2023, All Rights Reserved #} +{% load origin %} +{% load ietf_filters person_filters textfilters %} +{% load static %} +{% block pagehead %} + <link rel="stylesheet" href="{% static "ietf/css/list.css" %}"> +{% endblock %} +{% block group_content %} + {% origin %} + <h2 class="my-3">{{group.acronym|upper}} Appeals</h2> + + <table id="appeals" class="my-3 table table-sm table-striped tablesorter"> + <thead> + <tr> + <th class="col-1" scope="col" data-sort="date">Date</th> + <th scope="col" data-sort="appeal">Appeal</th> + </tr> + </thead> + <tbody> + {% for appeal in appeals %} + <tr id="appeal-{{forloop.counter}}"> + <td id="appeal-{{forloop.counter}}-date">{{ appeal.date|date:"Y-m-d" }}</td> + <td>{{appeal.name}} + <div class="buttonlist"> + {% for part in appeal.appealartifact_set.all %} + <a id="artifact-{{forloop.parentloop.counter}}-{{forloop.counter}}" class="btn btn-primary btn-sm" href="{% url 'ietf.group.views.appeal_artifact' acronym=group.acronym artifact_id=part.pk %}"{% if not part.is_markdown %} download="{{part.download_name}}"{%endif%}>{{part.display_title}} - {{part.date|date:"Y-m-d"}}</a> + {% endfor %} + </div> + </td> + </tr> + {% endfor %} + </tbody> + </table> +{% endblock %} +{% block js %} + <script src="{% static "ietf/js/list.js" %}"></script> +{% endblock %} \ No newline at end of file diff --git a/ietf/templates/group/customize_workflow.html b/ietf/templates/group/customize_workflow.html index 5334c6a89..e0904d2f4 100644 --- a/ietf/templates/group/customize_workflow.html +++ b/ietf/templates/group/customize_workflow.html @@ -49,7 +49,7 @@ {{ state.name }} </span> {% if not state.used %}<span class="text-body-secondary">(not used in {{ group.acronym }})</span>{% endif %} - {% if state.mandatory %}<span class="badge rounded-pill bg-success">Mandatory</span>{% endif %} + {% if state.mandatory %}<span class="badge rounded-pill text-bg-success">Mandatory</span>{% endif %} </td> <td class="next-states"> {% if state.used_next_states %} @@ -79,7 +79,7 @@ <input class="form-check-input" type="checkbox" name="next_states" value="{{ s.pk }}" id="id-{{ s.pk }}-{{ state.pk }}" {% if checked %} checked{% endif %}> <label class="form-check-label" for="id-{{ s.pk }}-{{ state.pk }}"> {{ s.name }} - {% if default %}<span class="badge rounded-pill bg-secondary">Default</span>{% endif %} + {% if default %}<span class="badge rounded-pill text-bg-secondary">Default</span>{% endif %} </label> </div> {% endfor %} diff --git a/ietf/templates/group/edit_milestones.html b/ietf/templates/group/edit_milestones.html index 1ae1c57a5..b576ace18 100644 --- a/ietf/templates/group/edit_milestones.html +++ b/ietf/templates/group/edit_milestones.html @@ -65,7 +65,7 @@ <div class="row milestone{% if form.delete.data %} delete{% endif %}"> <div class="due handle col-md-2 col-form-label col-form-label-md"> {% if form.milestone.resolved %} - <span class="badge rounded-pill bg-success">{{ form.milestone.resolved }}</span> + <span class="badge rounded-pill text-bg-success">{{ form.milestone.resolved }}</span> {% elif group.uses_milestone_dates and form.milestone.due %} <b>{{ form.milestone.due|date:"M Y" }}</b> {% endif %} @@ -74,12 +74,12 @@ <b>{{ form.milestone.desc|urlize_ietf_docs }}</b> {% if form.needs_review %} <span title="This milestone is not active yet, awaiting {{ reviewer }} acceptance" - class="badge rounded-pill bg-warning"> + class="badge rounded-pill text-bg-warning"> Awaiting accept </span> {% endif %} - {% if form.changed %}<span class="badge rounded-pill bg-info">Changed</span>{% endif %} - {% if form.delete.data %}<span class="badge rounded-pill bg-danger">Deleted</span>{% endif %} + {% if form.changed %}<span class="badge rounded-pill text-bg-info">Changed</span>{% endif %} + {% if form.delete.data %}<span class="badge rounded-pill text-bg-danger">Deleted</span>{% endif %} {% for d in form.docs_names %}<div class="doc">{{ d }}</div>{% endfor %} </div> </div> diff --git a/ietf/templates/group/group_about.html b/ietf/templates/group/group_about.html index 7e986c11c..27ebab35c 100644 --- a/ietf/templates/group/group_about.html +++ b/ietf/templates/group/group_about.html @@ -67,7 +67,7 @@ height: 100vh; </td> <td> <span class="{% if group.state.name|slugify == 'active' %}text-success{% elif group.state.name|slugify == 'concluded' %}text-danger{% endif %}">{{ group.state.name }}</span> - {% if requested_close %}<div class="badge rounded-pill bg-info">Being closed</div>{% endif %} + {% if requested_close %}<div class="badge rounded-pill text-bg-info">Being closed</div>{% endif %} </td> </tr> {% if group.features.has_chartering_process %} @@ -80,7 +80,7 @@ height: 100vh; <a href="{% url "ietf.doc.views_doc.document_main" name=group.charter.name %}"> {{ group.charter.name }}-{{ group.charter.rev }}</a> {% if group.charter.get_state.name %} - <span class="badge rounded-pill bg-info">{{ group.charter.get_state.name }}</span> + <span class="badge rounded-pill text-bg-info">{{ group.charter.get_state.name }}</span> {% endif %} {% else %} <span class="text-body-secondary">(None)</span> @@ -112,7 +112,7 @@ height: 100vh; href="{% url "ietf.group.views.group_about_status" acronym=group.acronym %}"> Show </a> - <span class="badge rounded-pill bg-secondary"> + <span class="badge rounded-pill text-bg-secondary"> Changed {{ status_update.time|date:"Y-m-d" }} </span> {% else %} diff --git a/ietf/templates/group/group_base.html b/ietf/templates/group/group_base.html index b6c3f99ba..f6dcc8cdd 100644 --- a/ietf/templates/group/group_base.html +++ b/ietf/templates/group/group_base.html @@ -10,10 +10,10 @@ {% origin %} <h1> {% if group.state_id == "dormant" or group.state_id == "conclude" %} - <span class="badge rounded-pill bg-warning float-end ms-3">Concluded {{ group.type.name }}</span> + <span class="badge rounded-pill text-bg-warning float-end ms-3">Concluded {{ group.type.name }}</span> {% endif %} - {% if group.state_id == "replaced" %}<span class="badge rounded-pill bg-warning float-end ms-3">Replaced {{ group.type.name }}</span>{% endif %} - {% if group.state_id == "proposed" %}<span class="badge rounded-pill bg-info float-end ms-3">Proposed {{ group.type.name }}</span>{% endif %} + {% if group.state_id == "replaced" %}<span class="badge rounded-pill text-bg-warning float-end ms-3">Replaced {{ group.type.name }}</span>{% endif %} + {% if group.state_id == "proposed" %}<span class="badge rounded-pill text-bg-info float-end ms-3">Proposed {{ group.type.name }}</span>{% endif %} {{ group.name }} ({{ group.acronym }}) </h1> <ul class="nav nav-tabs my-3"> diff --git a/ietf/templates/group/index.html b/ietf/templates/group/index.html index 4087ebfe8..609c65018 100644 --- a/ietf/templates/group/index.html +++ b/ietf/templates/group/index.html @@ -27,7 +27,7 @@ <td> {% with stream.get_chair as role %} {% person_link role.person %} - {% if role %}<span class="badge rounded-pill bg-info">{{ role.name }}</span>{% endif %} + {% if role %}<span class="badge rounded-pill text-bg-info">{{ role.name }}</span>{% endif %} {% endwith %} </td> </tr> diff --git a/ietf/templates/group/manage_review_requests.html b/ietf/templates/group/manage_review_requests.html index edb12a2ee..99b23c138 100644 --- a/ietf/templates/group/manage_review_requests.html +++ b/ietf/templates/group/manage_review_requests.html @@ -36,7 +36,7 @@ {{ r.type.name }} {% endif %} deadline {{ r.deadline|date:"Y-m-d" }} - {% if r.due %}<span class="badge rounded-pill bg-warning">{{ r.due }} day{{ r.due|pluralize }}</span>{% endif %} + {% if r.due %}<span class="badge rounded-pill text-bg-warning">{{ r.due }} day{{ r.due|pluralize }}</span>{% endif %} </span> <a href="{% if r.requested_rev %}{% url "ietf.doc.views_doc.document_main" name=r.doc.name rev=r.requested_rev %}{% else %}{% url "ietf.doc.views_doc.document_main" name=r.doc.name %}{% endif %}?include_text=1"> {{ r.doc.name }}- @@ -63,7 +63,7 @@ {% endif %} <br> {% else %} - <span class="badge rounded-pill bg-info">Auto-suggested</span> + <span class="badge rounded-pill text-bg-info">Auto-suggested</span> <br> {% endif %} {% if r.doc.authors %} @@ -135,10 +135,10 @@ {% endfor %} {% endif %} <div> - <span class="badge rounded-pill bg-secondary">{{ r.doc.pages }} page{{ r.doc.pages|pluralize }}</span> - <span class="badge rounded-pill bg-info">{{ r.doc.friendly_state }}</span> + <span class="badge rounded-pill text-bg-secondary">{{ r.doc.pages }} page{{ r.doc.pages|pluralize }}</span> + <span class="badge rounded-pill text-bg-info">{{ r.doc.friendly_state }}</span> </div> - {% if r.doc.telechat_date %}<span class="badge rounded-pill bg-warning">IESG telechat {{ r.doc.telechat_date }}</span>{% endif %} + {% if r.doc.telechat_date %}<span class="badge rounded-pill text-bg-warning">IESG telechat {{ r.doc.telechat_date }}</span>{% endif %} {% if r.comment %}<pre class="border p-3 pasted">{{ r.comment }}</pre>{% endif %} </div> <div class="col-sm-6"> @@ -169,8 +169,8 @@ title="Click to reassign reviewer"> {% person_link r.reviewer.person %} </button> - {% if r.state_id == "accepted" %}<span class="badge rounded-pill bg-secondary">Accepted</span>{% endif %} - {% if r.reviewer_unavailable %}<span class="badge rounded-pill bg-danger">Unavailable</span>{% endif %} + {% if r.state_id == "accepted" %}<span class="badge rounded-pill text-bg-secondary">Accepted</span>{% endif %} + {% if r.reviewer_unavailable %}<span class="badge rounded-pill text-bg-danger">Unavailable</span>{% endif %} {% else %} <button type="button" class="btn btn-sm btn-primary btn-success" diff --git a/ietf/templates/group/materials.html b/ietf/templates/group/materials.html index 2bfb8fe3e..8ab6fb512 100644 --- a/ietf/templates/group/materials.html +++ b/ietf/templates/group/materials.html @@ -39,7 +39,7 @@ {% for p in past_pres_list %} {{ p.grouper }} {% if p.list|length > 1 %} - <span class="badge rounded-pill bg-info">{{ p.list|length }} sessions</span> + <span class="badge rounded-pill text-bg-info">{{ p.list|length }} sessions</span> {% else %} {% for pr in p.list %} {% if pr.rev != d.rev %}(-{{ pr.rev }}){% endif %} @@ -52,7 +52,7 @@ {% for p in meeting_pres_list %} {{ p.grouper }} {% if p.list|length > 1 %} - <span class="badge rounded-pill bg-info">{{ p.list|length }} sessions</span> + <span class="badge rounded-pill text-bg-info">{{ p.list|length }} sessions</span> {% else %} {% for pr in p.list %} {% if pr.rev != d.rev %}(-{{ pr.rev }}){% endif %} diff --git a/ietf/templates/group/meetings.html b/ietf/templates/group/meetings.html index eddf374de..a344e74d8 100644 --- a/ietf/templates/group/meetings.html +++ b/ietf/templates/group/meetings.html @@ -135,6 +135,10 @@ </td> <td> {% if not s.canceled %} + <a class="btn btn-sm {% if not s.agenda %}btn-secondary disabled{% else %}btn-primary{% endif %}" + {% if s.agenda %}href="{{ s.agenda.get_absolute_url }}"{% endif %}> + Agenda + </a> <a class="btn btn-sm {% if not s.minutes %}btn-secondary disabled{% else %}btn-primary{% endif %}" {% if s.minutes %}href="{{ s.minutes.get_absolute_url }}"{% endif %}> Minutes diff --git a/ietf/templates/group/milestones.html b/ietf/templates/group/milestones.html index 8375a51e8..2aac1fed9 100644 --- a/ietf/templates/group/milestones.html +++ b/ietf/templates/group/milestones.html @@ -36,7 +36,7 @@ <tr> <td> {% if milestone.resolved %} - <span class="badge rounded-pill bg-success">{{ milestone.resolved }}</span> + <span class="badge rounded-pill text-bg-success">{{ milestone.resolved }}</span> {% else %} {% if group.uses_milestone_dates %} {{ milestone.due|date:"M Y" }} diff --git a/ietf/templates/group/reset_charter_milestones.html b/ietf/templates/group/reset_charter_milestones.html index 903d4e113..79f26e3e3 100644 --- a/ietf/templates/group/reset_charter_milestones.html +++ b/ietf/templates/group/reset_charter_milestones.html @@ -30,7 +30,7 @@ <label class="form-check-label" for="id-{{ milestone.id }}"> {{ milestone.desc }} </label> - <span class="badge rounded-pill {% if milestone.resolved %}bg-success{% else %}bg-info{% endif %}"> + <span class="badge rounded-pill {% if milestone.resolved %}text-bg-success{% else %}text-bg-info{% endif %}"> {% if milestone.resolved %} {{ milestone.resolved }} {% else %} diff --git a/ietf/templates/group/review_requests.html b/ietf/templates/group/review_requests.html index 59beb0ff8..61b93de2b 100644 --- a/ietf/templates/group/review_requests.html +++ b/ietf/templates/group/review_requests.html @@ -2,7 +2,7 @@ {# Copyright The IETF Trust 2015, All Rights Reserved #} {% load origin %} {% origin %} -{% load ietf_filters static person_filters %} +{% load ietf_filters static person_filters ietf_filters %} {% block group_subtitle %}Review requests{% endblock %} {% block pagehead %} <link rel="stylesheet" href="{% static "ietf/css/list.css" %}"> @@ -48,13 +48,13 @@ {% if r.pk %} {{ r.time|date:"Y-m-d" }} by {% person_link r.requested_by %} {% else %} - <span class="badge rounded-pill bg-info">Auto-suggested</span> + <span class="badge rounded-pill text-bg-info">Auto-suggested</span> {% endif %} </td> <td> {{ r.deadline|date:"Y-m-d" }} {% if r.due %} - <span class="badge rounded-pill bg-warning" + <span class="badge rounded-pill text-bg-warning" title="{{ r.due }} day{{ r.due|pluralize }} past deadline">{{ r.due }} day{{ r.due|pluralize }}</span> {% endif %} </td> @@ -96,14 +96,13 @@ <td> {{ a.review_request.deadline|date:"Y-m-d" }} {% if a.due %} - <span class="badge rounded-pill bg-warning" + <span class="badge rounded-pill text-bg-warning" title="{{ a.due }} day{{ a.due|pluralize }} past deadline">{{ a.due }} day{{ a.due|pluralize }}</span> {% endif %} </td> <td> {% person_link a.reviewer.person %} - {% if a.state_id == "accepted" %}<span class="badge rounded-pill bg-success">Accepted</span>{% endif %} - {% if a.reviewer_unavailable %}<span class="badge rounded-pill bg-danger">Unavailable</span>{% endif %} + {{ a.state_id|badgeify }} </td> <td>{{ a.review_request.doc.friendly_state }}</td> <td> @@ -178,7 +177,7 @@ {{ r.request_closed_time|date:"Y-m-d" }} </td> <td> - {{ r.state.name }} + {{ r.state.name|badgeify }} </td> </tr> {% endfor %} @@ -242,10 +241,10 @@ {% person_link a.reviewer.person %} </td> <td> - {{ a.state }} + {{ a.state|badgeify }} </td> <td> - {% if a.result %}{{ a.result }}{% endif %} + {% if a.result %}{{ a.result|badgeify }}{% endif %} </td> </tr> {% endfor %} @@ -255,4 +254,4 @@ {% block js %} <script src="{% static "ietf/js/list.js" %}"> </script> - {% endblock %} + {% endblock %} \ No newline at end of file diff --git a/ietf/templates/group/reviewer_overview.html b/ietf/templates/group/reviewer_overview.html index b4b1b6e3d..75bd15f1d 100644 --- a/ietf/templates/group/reviewer_overview.html +++ b/ietf/templates/group/reviewer_overview.html @@ -98,7 +98,7 @@ <a href="{% url 'ietf.doc.views_review.review_request' name=doc_name request_id=req_pk %}">{{ deadline|date|split:"-"|join:"-<wbr>" }}</a> </div> <div class="col-md-2 me-1"> - <span class="badge rounded-pill bg-{% if state.slug == 'completed' or state.slug == 'part-completed' %}success{% elif state.slug == 'no-response' %}danger{% elif state.slug == 'overtaken' %}warning{% elif state.slug == 'requested' or state.slug == 'accepted' %}primary{% else %}secondary{% endif %} text-wrap">{{ state.name }}</span> + {{ state.name|badgeify }} </div> <div class="col-md-1 me-1 text-end d-none d-lg-block"> {% if assignment_to_closure_days != None %} diff --git a/ietf/templates/ietfauth/review_overview.html b/ietf/templates/ietfauth/review_overview.html index b33e75421..28c6e0559 100644 --- a/ietf/templates/ietfauth/review_overview.html +++ b/ietf/templates/ietfauth/review_overview.html @@ -1,7 +1,7 @@ {% extends "base.html" %} {# Copyright The IETF Trust 2015-2019, All Rights Reserved #} {% load origin %} -{% load django_bootstrap5 static %} +{% load django_bootstrap5 static ietf_filters %} {% block pagehead %} <link rel="stylesheet" href="{% static "ietf/css/list.css" %}"> {{ review_wish_form.media.css }} @@ -51,7 +51,7 @@ <td>{{ r.review_request.type.name }}</td> <td> {{ r.review_request.deadline|date:"Y-m-d" }} - {% if r.due %}<span class="badge rounded-pill bg-warning">{{ r.due }} day{{ r.due|pluralize }}</span>{% endif %} + {% if r.due %}<span class="badge rounded-pill text-bg-warning">{{ r.due }} day{{ r.due|pluralize }}</span>{% endif %} </td> </tr> {% endfor %} @@ -98,10 +98,10 @@ <td>{{ r.review_request.type.name }}</td> <td> {{ r.review_request.deadline|date:"Y-m-d" }} - {% if r.due %}<span class="badge rounded-pill bg-warning">{{ r.due }} day{{ r.due|pluralize }}</span>{% endif %} + {% if r.due %}<span class="badge rounded-pill text-bg-warning">{{ r.due }} day{{ r.due|pluralize }}</span>{% endif %} </td> <td> - <span class="badge rounded-pill {% if r.state_id == "completed" or r.state_id == "part-completed" %}bg-success{% endif %}">{{ r.state.name }}</span> + {{ r.state.name|badgeify }} </td> <td> {% if r.result %}{{ r.result.name }}{% endif %} diff --git a/ietf/templates/ipr/details_history.html b/ietf/templates/ipr/details_history.html index d5ec45e8a..11730741b 100644 --- a/ietf/templates/ipr/details_history.html +++ b/ietf/templates/ipr/details_history.html @@ -51,7 +51,7 @@ <td>{% person_link e.by %}</td> <td class="text-break"> {% if e.message %} - {% if e.response_due %}<span class="badge rounded-pill bg-info">Response due {{ e.response_due|date:"Y-m-d" }}</span>{% endif %} + {% if e.response_due %}<span class="badge rounded-pill text-bg-info">Response due {{ e.response_due|date:"Y-m-d" }}</span>{% endif %} {# FIXME: can't do format_history_text, because that inserts a <div> into the <pre>, which is illegal. Need to rework the snippeting. #} <pre>{{ e.message|render_message_for_history|urlize_ietf_docs|linkify }}</pre> {% else %} diff --git a/ietf/templates/ipr/details_view.html b/ietf/templates/ipr/details_view.html index aa695aeee..97a2af656 100644 --- a/ietf/templates/ipr/details_view.html +++ b/ietf/templates/ipr/details_view.html @@ -1,5 +1,5 @@ {% extends "base.html" %} -{# Copyright The IETF Trust 2015, 2017. All Rights Reserved. #} +{# Copyright The IETF Trust 2015-2023. All Rights Reserved. #} {% load origin %} {% load ietf_filters ipr_filters textfilters %} {% block title %}IPR Details - {{ ipr.title }}{% endblock %} @@ -388,6 +388,13 @@ <dd class="col-sm-8 my-0"> {{ iprdocrel.revisions }} </dd> + {% elif iprdocrel.doc_type == "Internet-Draft" %} + <dt class="{% if prev %}col-sm-4{% else %}col-sm-3{% endif %} my-0 fw-bolder fst-italic"> + Notice: + </dt> + <dd class="{% if prev %}col-sm-8{% else %}col-sm-9{% endif %} my-0 fst-italic"> + {{ iprdocrel|no_revisions_message }} + </dd> {% endif %} {% if iprdocrel.sections %} <dt class="col-sm-4 my-0"> @@ -427,6 +434,13 @@ <dd class="{% if prev %}col-sm-8{% else %}col-sm-9{% endif %} my-0"> {{ iprdocrel.revisions }} </dd> + {% elif iprdocrel.doc_type == "Internet-Draft" %} + <dt class="{% if prev %}col-sm-4{% else %}col-sm-3{% endif %} my-0 fw-bolder fst-italic"> + Notice: + </dt> + <dd class="{% if prev %}col-sm-8{% else %}col-sm-9{% endif %} my-0 fst-italic"> + {{ iprdocrel|no_revisions_message }} + </dd> {% endif %} {% if iprdocrel.sections %} <dt class="{% if prev %}col-sm-4{% else %}col-sm-3{% endif %} my-0"> diff --git a/ietf/templates/ipr/search_doc_result.html b/ietf/templates/ipr/search_doc_result.html index 4a3a4eda2..92b42ce90 100644 --- a/ietf/templates/ipr/search_doc_result.html +++ b/ietf/templates/ipr/search_doc_result.html @@ -28,7 +28,7 @@ <tr> <td>{{ ipr.time|date:"Y-m-d" }}</td> <td>{{ ipr.id }}</td> - <td><a href="{% url "ietf.ipr.views.show" id=ipr.id %}">{{ ipr.title }}</a>{% if ipr.state_id == 'removed' %}<span class="badge rounded-pill bg-info">Removed</span>{% endif %} + <td><a href="{% url "ietf.ipr.views.show" id=ipr.id %}">{{ ipr.title }}</a>{% if ipr.state_id == 'removed' %}<span class="badge rounded-pill text-bg-info">Removed</span>{% endif %} {% if ipr.updates %} <br>(Updates ID#: {% for upd in ipr.updates %}{{upd.target_id}}{% if not forloop.last %}, {% endif %}{% endfor %}){% endif %} </td> </tr> diff --git a/ietf/templates/ipr/search_result.html b/ietf/templates/ipr/search_result.html index a104e45c0..fc93ec92a 100644 --- a/ietf/templates/ipr/search_result.html +++ b/ietf/templates/ipr/search_result.html @@ -100,4 +100,4 @@ {% block js %} <script src="{% static "ietf/js/list.js" %}"></script> <script src="{% static 'ietf/js/ipr-search.js' %}"></script> -{% endblock %} +{% endblock %} \ No newline at end of file diff --git a/ietf/templates/liaisons/liaison_table.html b/ietf/templates/liaisons/liaison_table.html index 03c9b36b7..e74b08f21 100644 --- a/ietf/templates/liaisons/liaison_table.html +++ b/ietf/templates/liaisons/liaison_table.html @@ -24,9 +24,9 @@ <span title="{{ liaison.is_outgoing|yesno:'Outgoing,Incoming' }} liaison" class="badge rounded-pill {% if liaison.is_outgoing %} - bg-warning + text-bg-warning {% else %} - bg-info + text-bg-info {% endif %}">Action needed</span> {% endif %} </td> diff --git a/ietf/templates/logo.html b/ietf/templates/logo.html new file mode 100644 index 000000000..0de2eaeae --- /dev/null +++ b/ietf/templates/logo.html @@ -0,0 +1,35 @@ +{% load origin %} +{% load static %} +{% origin %} + +<img alt="{{ org|upper }} Logo" + class="d-lm-none{% if classes %} {{ classes }}{% endif %}" + {% if title %}title="{{ title }}"{% endif %} + {% if org == "iab" %} + src="{% static 'ietf/images/iab-logo-white.svg' %}" + {% elif org == "ietf" %} + {% if nor %} + src="{% static 'ietf/images/ietf-logo-nor-white.svg' %}" + {% else %} + src="{% static 'ietf/images/ietf-logo-white.svg' %}" + {% endif %} + {% elif org == "irtf" %} + src="{% static 'ietf/images/irtf-logo-white.svg' %}" + {% endif %} + > + +<img alt="{{ org|upper }} Logo" + class="d-dm-none{% if classes %} {{ classes }}{% endif %}" + {% if title %}title="{{ title }}"{% endif %} + {% if org == "iab" %} + src="{% static 'ietf/images/iab-logo.svg' %}" + {% elif org == "ietf" %} + {% if nor %} + src="{% static 'ietf/images/ietf-logo-nor.svg' %}" + {% else %} + src="{% static 'ietf/images/ietf-logo.svg' %}" + {% endif %} + {% elif org == "irtf" %} + src="{% static 'ietf/images/irtf-logo.svg' %}" + {% endif %} + > \ No newline at end of file diff --git a/ietf/templates/meeting/agenda.html b/ietf/templates/meeting/agenda.html index 41cccd8e2..a4eab654b 100644 --- a/ietf/templates/meeting/agenda.html +++ b/ietf/templates/meeting/agenda.html @@ -39,6 +39,10 @@ backdrop-filter: blur(10px); } +.theme-dark #app-loading { + background-color: rgba(0,0,0,.75); +} + #app-loading:before { content: ''; box-sizing: border-box; @@ -56,6 +60,10 @@ z-index: 2000000000; } +.theme-dark #app-loading:before { + border-top-color: #FFF; +} + #app-loading:after { content: 'Loading meeting {{ meetingData.meetingNumber }}...'; position: absolute; @@ -69,6 +77,10 @@ z-index: 2000000000; } +.theme-dark #app-loading:after { + color: #FFF; +} + #app-loading-footer { position: absolute; text-align: center; diff --git a/ietf/templates/meeting/edit_meeting_timeslots_and_misc_sessions.html b/ietf/templates/meeting/edit_meeting_timeslots_and_misc_sessions.html index ada5f7ada..5f08d3d4b 100644 --- a/ietf/templates/meeting/edit_meeting_timeslots_and_misc_sessions.html +++ b/ietf/templates/meeting/edit_meeting_timeslots_and_misc_sessions.html @@ -36,7 +36,7 @@ data-day="{{ day.day.isoformat }}"> <div class="room-label" title="{{ room.name }}"> <strong>{{ room.name }}</strong> - {% if room.capacity %}<span class="badge rounded-pill bg-secondary">{{ room.capacity }}</span>{% endif %} + {% if room.capacity %}<span class="badge rounded-pill text-bg-secondary">{{ room.capacity }}</span>{% endif %} </div> <div class="timeline"> <!-- [html-validate-disable-block no-inline-style -- FIXME: should style this better] --> diff --git a/ietf/templates/meeting/group_materials.html b/ietf/templates/meeting/group_materials.html index 8a6a65485..aea20827d 100644 --- a/ietf/templates/meeting/group_materials.html +++ b/ietf/templates/meeting/group_materials.html @@ -12,13 +12,13 @@ <a href="{% url 'ietf.group.views.group_home' acronym=entry.group.acronym %}">{{ entry.group.acronym }}</a> </div> {% if entry.group.state.slug == "bof" %} - <span class="badge rounded-pill bg-success">{{ entry.group.state.slug|upper }}</span> + <span class="badge rounded-pill text-bg-success">{{ entry.group.state.slug|upper }}</span> {% endif %} {% endif %} </td> {% if entry.canceled %} <td colspan="{% if user|has_role:'Secretariat' or user_groups %}6{% else %}5{% endif %}"> - <span class="badge rounded-pill bg-danger">Session cancelled</span> + <span class="badge rounded-pill text-bg-danger">Session cancelled</span> </td> {% else %} <td> @@ -32,7 +32,7 @@ </a> <br> {% empty %} - {% if show_agenda == "True" %}<span class="badge rounded-pill bg-warning">No agenda</span>{% endif %} + {% if show_agenda == "True" %}<span class="badge rounded-pill text-bg-warning">No agenda</span>{% endif %} {% endfor %} </td> <td> @@ -42,7 +42,7 @@ </a> <br> {% empty %} - {% if show_agenda == "True" %}<span class="badge rounded-pill bg-warning">No minutes</span>{% endif %} + {% if show_agenda == "True" %}<span class="badge rounded-pill text-bg-warning">No minutes</span>{% endif %} {% endfor %} {% if entry.session.type_id == 'regular' and show_agenda == "True" %} {% for bluesheet in entry.bluesheets %} @@ -54,7 +54,7 @@ </a> <br> {% empty %} - <span class="badge rounded-pill bg-warning">No bluesheets</span> + <span class="badge rounded-pill text-bg-warning">No bluesheets</span> {% endfor %} {% endif %} </td> @@ -67,7 +67,7 @@ <a href="{{ slide.material|meeting_href:meeting }}">{{ slide.material.title|clean_whitespace }}</a> <br> {% empty %} - <span class="badge rounded-pill bg-warning">No slides</span> + <span class="badge rounded-pill text-bg-warning">No slides</span> {% endfor %} </td> <td> @@ -81,7 +81,7 @@ </a> <br> {% empty %} - <span class="badge rounded-pill bg-warning">No Internet-Drafts</span> + <span class="badge rounded-pill text-bg-warning">No Internet-Drafts</span> {% endfor %} </td> <td> diff --git a/ietf/templates/meeting/group_proceedings.html b/ietf/templates/meeting/group_proceedings.html index 77c0616b1..618c28164 100644 --- a/ietf/templates/meeting/group_proceedings.html +++ b/ietf/templates/meeting/group_proceedings.html @@ -11,14 +11,14 @@ <div id="{{ entry.group.acronym }}"> <a href="{% url 'ietf.group.views.group_home' acronym=entry.group.acronym %}">{{ entry.group.acronym }}</a> </div> - {% if entry.group.state_id == "bof" %}<span class="badge rounded-pill bg-success">BOF</span>{% endif %} + {% if entry.group.state_id == "bof" %}<span class="badge rounded-pill text-bg-success">BOF</span>{% endif %} {% else %} <h1>{{ entry.group }}</h1> {% endif %} </td> {% if entry.canceled %} <td colspan="4"> - <span class="badge rounded-pill bg-danger">Session cancelled</span> + <span class="badge rounded-pill text-bg-danger">Session cancelled</span> </td> {% else %} {# artifacts #} @@ -31,7 +31,7 @@ <br> {% empty %} {% if show_agenda and not meeting.proceedings_final %} - <span class="badge rounded-pill bg-warning">No agenda</span> + <span class="badge rounded-pill text-bg-warning">No agenda</span> <br> {% endif %} {% endfor %} @@ -43,7 +43,7 @@ <br> {% empty %} {% if show_agenda and not meeting.proceedings_final %} - <span class="badge rounded-pill bg-warning">No minutes</span> + <span class="badge rounded-pill text-bg-warning">No minutes</span> <br> {% endif %} {% endfor %} @@ -71,7 +71,7 @@ <a href="{{ slide.material|meeting_href:meeting }}">{{ slide.material.title|clean_whitespace }}</a> <br> {% empty %} - {% if not meeting.proceedings_final %}<span class="badge rounded-pill bg-warning">No slides</span>{% endif %} + {% if not meeting.proceedings_final %}<span class="badge rounded-pill text-bg-warning">No slides</span>{% endif %} {% endfor %} </td> {# drafts #} @@ -82,7 +82,7 @@ </a> <br> {% empty %} - {% if not meeting.proceedings_final %}<span class="badge rounded-pill bg-warning">No Internet-Drafts</span>{% endif %} + {% if not meeting.proceedings_final %}<span class="badge rounded-pill text-bg-warning">No Internet-Drafts</span>{% endif %} {% endfor %} </td> {% endif %} diff --git a/ietf/templates/meeting/interim_pending.html b/ietf/templates/meeting/interim_pending.html index 7fbc4347b..b702f6458 100644 --- a/ietf/templates/meeting/interim_pending.html +++ b/ietf/templates/meeting/interim_pending.html @@ -31,11 +31,11 @@ <a class="interim-meeting-link" href="{% url 'ietf.meeting.views.interim_request_details' number=meeting.number %}"> {{ meeting.number }} - {% if meeting.interim_meeting_cancelled %}<span class="badge rounded-pill bg-warning ms-1">Cancelled</span>{% endif %} + {% if meeting.interim_meeting_cancelled %}<span class="badge rounded-pill text-bg-warning ms-1">Cancelled</span>{% endif %} </a> </td> <td> - {% if meeting.can_approve %}<span class="badge rounded-pill bg-success">Can be approved</span>{% endif %} + {% if meeting.can_approve %}<span class="badge rounded-pill text-bg-success">Can be approved</span>{% endif %} </td> </tr> {% endfor %} diff --git a/ietf/templates/meeting/materials_editable_groups.html b/ietf/templates/meeting/materials_editable_groups.html index d91e6f214..5c8645ecf 100644 --- a/ietf/templates/meeting/materials_editable_groups.html +++ b/ietf/templates/meeting/materials_editable_groups.html @@ -14,7 +14,7 @@ {% if g|has_sessions:meeting_num %} <a href="{% url 'ietf.meeting.views.session_details' num=meeting_num acronym=g.acronym %}">{{ g.acronym }}</a> {% else %} - {{ g.acronym }} <span class="badge rounded-pill bg-info ms-2">No session requested</span> + {{ g.acronym }} <span class="badge rounded-pill text-bg-info ms-2">No session requested</span> {% endif %} </li> {% endfor %} diff --git a/ietf/templates/meeting/past.html b/ietf/templates/meeting/past.html index 6de44b80b..2b92c311d 100644 --- a/ietf/templates/meeting/past.html +++ b/ietf/templates/meeting/past.html @@ -37,7 +37,7 @@ <td> {% if meeting.type_id == "interim" %} <a href="{% url 'ietf.meeting.views.session_details' num=meeting.number acronym=meeting.responsible_group.acronym %}">{{ meeting.number }}</a> - {% if meeting.interim_meeting_cancelled %}<span class="badge rounded-pill bg-warning">Cancelled</span>{% endif %} + {% if meeting.interim_meeting_cancelled %}<span class="badge rounded-pill text-bg-warning">Cancelled</span>{% endif %} {% else %} <a href="{% url 'agenda' num=meeting.number %}">IETF-{{ meeting.number }}</a> {% endif %} diff --git a/ietf/templates/meeting/requests.html b/ietf/templates/meeting/requests.html index 8478f3992..18d8c5cf8 100644 --- a/ietf/templates/meeting/requests.html +++ b/ietf/templates/meeting/requests.html @@ -155,7 +155,7 @@ {{ session.group.acronym }} </a> {% if session.purpose_id != "regular" %} - <br><span class="badge rounded-pill bg-info">{{session.purpose}}</span> + <br><span class="badge rounded-pill text-bg-info">{{session.purpose}}</span> {% endif %} {% if session.joint_with_groups.count %}joint with {{ session.joint_with_groups_acronyms|join:' ' }}{% endif %} {% if session.requested_duration %} @@ -169,7 +169,7 @@ </div> {% endif %} {% if session.group.state.slug != "active" %} - <br><span class="badge rounded-pill bg-success">{{ session.group.state.name }}</span> + <br><span class="badge rounded-pill text-bg-success">{{ session.group.state.name }}</span> {% endif %} </td> <td class="d-none d-lg-table-cell"> diff --git a/ietf/templates/meeting/schedule_list.html b/ietf/templates/meeting/schedule_list.html index d85e770b2..1de121a6b 100644 --- a/ietf/templates/meeting/schedule_list.html +++ b/ietf/templates/meeting/schedule_list.html @@ -70,16 +70,16 @@ <td>{{ schedule.notes|linebreaksbr }}</td> <td> {% if schedule.visible %} - <div class="badge rounded-pill bg-success">Visible</div> + <div class="badge rounded-pill text-bg-success">Visible</div> {% else %} - <div class="badge rounded-pill bg-warning">Hidden</div> + <div class="badge rounded-pill text-bg-warning">Hidden</div> {% endif %} </td> <td> {% if schedule.public %} - <div class="badge rounded-pill bg-success">Public</div> + <div class="badge rounded-pill text-bg-success">Public</div> {% else %} - <div class="badge rounded-pill bg-warning">Private</div> + <div class="badge rounded-pill text-bg-warning">Private</div> {% endif %} </td> <td> diff --git a/ietf/templates/meeting/session_details.html b/ietf/templates/meeting/session_details.html index 7648f0b35..96f42708a 100644 --- a/ietf/templates/meeting/session_details.html +++ b/ietf/templates/meeting/session_details.html @@ -1,7 +1,7 @@ {% extends "base.html" %} {# Copyright The IETF Trust 2015, All Rights Reserved #} {% load origin ietf_filters static %} -{% block title %}{{ meeting }} : {{ acronym }}{% endblock %} +{% block title %}{{ meeting }} : {{ group.acronym }}{% endblock %} {% block morecss %} .drag-handle { cursor: move; @@ -12,13 +12,13 @@ <h1> {{ meeting }} <br> - <small class="text-body-secondary">{{ acronym }}</small> + <small class="text-body-secondary"><a href="{% url 'ietf.group.views.group_about' acronym=group.acronym %}">{{ group.acronym }}</a>: {{ group.name }}</small> </h1> {% if meeting.start_datetime >= thisweek %} <a class="regular float-end" - title="icalendar entry for {{ acronym }}@{{ meeting.number }}" - aria-label="icalendar entry for {{ acronym }}@{{ meeting.number }}" - href="{% url 'ietf.meeting.views.agenda_ical' num=meeting.number acronym=acronym %}"> + title="icalendar entry for {{ group.acronym }}@{{ meeting.number }}" + aria-label="icalendar entry for {{ group.acronym }}@{{ meeting.number }}" + href="{% url 'ietf.meeting.views.agenda_ical' num=meeting.number acronym=group.acronym %}"> <i class="bi bi-calendar"></i> </a> {% endif %} diff --git a/ietf/templates/meeting/session_details_panel.html b/ietf/templates/meeting/session_details_panel.html index 855fc60cf..434608ad6 100644 --- a/ietf/templates/meeting/session_details_panel.html +++ b/ietf/templates/meeting/session_details_panel.html @@ -21,7 +21,7 @@ {% if time.tzinfo.zone != "UTC" %}<span class="small">({{ time|utc|dateformat:"H:i T" }})</span>{% endif %} {% endfor %} {% if session.cancelled %} - <small class="badge rounded-pill bg-warning">Cancelled</small> + <small class="badge rounded-pill text-bg-warning">Cancelled</small> {% else %} {{ session.status }} {% endif %} @@ -344,7 +344,7 @@ {% if session.video_stream_url %} <tr> <td> - <a href="https://www.meetecho.com/ietf{{ meeting.number }}/recordings#{{ acronym.upper }}"> + <a href="https://www.meetecho.com/ietf{{ meeting.number }}/recordings#{{ group.acronym.upper }}"> <i class="bi bi-file-slides"></i> Session recording </a> </td> diff --git a/ietf/templates/meeting/session_materials.html b/ietf/templates/meeting/session_materials.html index 198bb1140..40d02fb63 100644 --- a/ietf/templates/meeting/session_materials.html +++ b/ietf/templates/meeting/session_materials.html @@ -18,10 +18,10 @@ <h4 class="mt-4">Agenda</h4> <div class="agenda-frame" data-src="{{ agenda.get_href }}"></div> {% else %} - <span class="badge rounded-pill bg-info">Agenda submitted as {{ agenda.file_extension|upper }}</span> + <span class="badge rounded-pill text-bg-info">Agenda submitted as {{ agenda.file_extension|upper }}</span> {% endif %} {% else %} - <span class="badge rounded-pill bg-warning">No agenda submitted</span> + <span class="badge rounded-pill text-bg-warning">No agenda submitted</span> {% endif %} {% endwith %} {% if item.session.slides %} @@ -41,10 +41,10 @@ <h4 class="mt-4">Minutes</h4> <div class="minutes-frame" data-src="{{ minutes.get_href }}"></div> {% else %} - <span class="badge rounded-pill bg-info">Minutes submitted as {{ minutes.file_extension|upper }}</span> + <span class="badge rounded-pill text-bg-info">Minutes submitted as {{ minutes.file_extension|upper }}</span> {% endif %} {% else %} - <span class="badge rounded-pill bg-warning">No minutes submitted</span> + <span class="badge rounded-pill text-bg-warning">No minutes submitted</span> {% endif %} {% endwith %} </body> diff --git a/ietf/templates/meeting/upcoming.html b/ietf/templates/meeting/upcoming.html index 815698dbf..802b1b03c 100644 --- a/ietf/templates/meeting/upcoming.html +++ b/ietf/templates/meeting/upcoming.html @@ -86,7 +86,7 @@ </td> {% if session.current_status == 'canceled' %} <td class="text-end"> - <span class="badge rounded-pill bg-warning">Cancelled</span> + <span class="badge rounded-pill text-bg-warning">Cancelled</span> </td> {% else %} <td class="text-end">{% include "meeting/interim_session_buttons.html" with show_agenda=True use_notes=meeting.uses_notes %}</td> @@ -94,7 +94,7 @@ {% endwith %} {% else %} <td> - <span class="badge rounded-pill bg-warning">Unexpected entry type: {{ entry|classname }}</span> + <span class="badge rounded-pill text-bg-warning">Unexpected entry type: {{ entry|classname }}</span> </td> <td></td> <td></td> diff --git a/ietf/templates/nomcom/download_questionnaire.txt b/ietf/templates/nomcom/download_questionnaire.txt new file mode 100644 index 000000000..71514095c --- /dev/null +++ b/ietf/templates/nomcom/download_questionnaire.txt @@ -0,0 +1,9 @@ +{# Copyright The IETF Trust 2023, All Rights Reserved #}{% autoescape off %}{% load nomcom_tags %}Questionnaire response from {{ nominee.person.name }} + +From: {{ feedback.author|formatted_email|default:"Anonymous" }} +Date: {{ feedback.time|date:"Y-m-d" }} +Positions: {{ positions }}{% if feedback.subject %} +Subject: {{ feedback.subject }}{% endif %} + +{% decrypt feedback.comments request year 1 %} +{% endautoescape %} \ No newline at end of file diff --git a/ietf/templates/nomcom/feedback.html b/ietf/templates/nomcom/feedback.html index 2ab8d5e0d..4ef18fc5f 100644 --- a/ietf/templates/nomcom/feedback.html +++ b/ietf/templates/nomcom/feedback.html @@ -41,7 +41,7 @@ {% with count=counts|lookup:np.position.id|lookup:np.nominee.id %} title="{% if count %}{{ count }} earlier comment{{ count|pluralize }} from you {% else %}You have not yet provided feedback {% endif %} on {{ np.nominee.email.address }} as {{ np.position }}"> {{ np.nominee.name }} - <span class="position-absolute top-0 start-100 translate-middle badge rounded-pill bg-danger"> + <span class="position-absolute top-0 start-100 translate-middle badge rounded-pill text-bg-danger"> {{ count | default:"0" }} </span> {% endwith %} @@ -60,7 +60,7 @@ title="{% if count %}{{ count }} earlier comment{{ count|pluralize }} from you {% else %}You have not yet provided feedback {% endif %} on {{ t.subject }}"> {{ t.subject }} {% with count=topic_counts|lookup:t.id %} - <span class="position-absolute top-0 start-100 translate-middle badge rounded-pill bg-danger"> + <span class="position-absolute top-0 start-100 translate-middle badge rounded-pill text-bg-danger"> {{ count | default:"0" }} </span> {% endwith %} diff --git a/ietf/templates/nomcom/nomcom_private_base.html b/ietf/templates/nomcom/nomcom_private_base.html index dcf1edc97..7f7829915 100644 --- a/ietf/templates/nomcom/nomcom_private_base.html +++ b/ietf/templates/nomcom/nomcom_private_base.html @@ -11,7 +11,7 @@ {% origin %} <h1> NomCom {{ year }} - {% if nomcom.group.state_id == 'conclude' %}<span class="badge rounded-pill bg-info">Concluded</span>{% endif %} + {% if nomcom.group.state_id == 'conclude' %}<span class="badge rounded-pill text-bg-info">Concluded</span>{% endif %} <br> <small class="text-body-secondary">Private area {% if is_chair_task %}- Chair/Advisors only{% endif %} @@ -55,7 +55,7 @@ <a class="nav-link {% if selected == "feedback_pending" %}active{% endif %}" href="{% url 'ietf.nomcom.views.view_feedback_pending' year %}"> Pending emails - {% if nomcom.pending_email_count %}<span class="badge rounded-pill bg-primary">{{ nomcom.pending_email_count }}</span>{% endif %} + {% if nomcom.pending_email_count %}<span class="badge rounded-pill text-bg-primary">{{ nomcom.pending_email_count }}</span>{% endif %} </a> </li> <li class="nav-item dropdown"> diff --git a/ietf/templates/nomcom/nomcom_public_base.html b/ietf/templates/nomcom/nomcom_public_base.html index 9e575a59e..d369b28fc 100644 --- a/ietf/templates/nomcom/nomcom_public_base.html +++ b/ietf/templates/nomcom/nomcom_public_base.html @@ -11,7 +11,7 @@ {% origin %} <h1> NomCom {{ year }} - {% if nomcom.group.state_id == 'conclude' %}<span class="badge rounded-pill bg-info">Concluded</span>{% endif %} + {% if nomcom.group.state_id == 'conclude' %}<span class="badge rounded-pill text-bg-info">Concluded</span>{% endif %} </h1> <ul class="nav nav-tabs my-3"> <li class="nav-item"> diff --git a/ietf/templates/nomcom/reclassify_feedback_item.html b/ietf/templates/nomcom/reclassify_feedback_item.html new file mode 100644 index 000000000..fb967493c --- /dev/null +++ b/ietf/templates/nomcom/reclassify_feedback_item.html @@ -0,0 +1,103 @@ +{# Copyright The IETF Trust 2023, All Rights Reserved #} +{% load nomcom_tags textfilters %} + <h2 class="mt-3">Reclassify feedback item</h2> + <form method="post"> + {% csrf_token %} + <table class="table table-sm"> + <thead> + <tr> + <th scope="col">Code</th> + <th scope="col">Explanation</th> + </tr> + </thead> + <tbody> + <tr> + <th scope="row">U</th> + <td>Unclassified</td> + </tr> + {% for ft in feedback_types %} + <tr> + <th scope="row">{{ ft.legend }}</th> + <td>{{ ft.name }}</td> + </tr> + {% endfor %} + </tbody> + </table> + <table class="table table-sm table-striped"> + <thead> + <tr> + <th scope="col">Date</th> + <th scope="col" class="text-center" title="Unclassified">U</th> + {% for ft in feedback_types %} + <th scope="col" class="text-center" title="{{ ft.name }}">{{ ft.legend }}</th> + {% endfor %} + <th scope="col">Author</th> + <th scope="col">Subject</th> + <th scope="col"></th> + </tr> + </thead> + <tbody> + <tr> + <!-- [html-validate-disable-block input-missing-label -- labelled via aria-label] --> + <td>{{ reclassify_feedback.time|date:"r" }}</td> + <td class="text-center"> + <input type="radio" + class="form-check-input" + name="type" + value="unclassified" + id="unclassified" + aria-label="Unclassified" + title="Unclassified"> + </td> + {% for ft in feedback_types %} + <td class="text-center"> + <input type="radio" + class="form-check-input" + name="type" + value="{{ ft.slug }}" + id="{{ ft.name|slugify }}" + aria-label="{{ ft.name }}" + {% if reclassify_feedback.type == t %}checked{% endif %} + title="{{ ft.name }}"> + </td> + {% endfor %} + <td>{{ reclassify_feedback.author }}</td> + <td>{{ reclassify_feedback.subject }}</td> + <td> + <button type="button" + class="btn btn-primary btn-sm" + data-bs-toggle="modal" + data-bs-target="#modal{{ reclassify_feedback.id }}"> + View + </button> + <div class="modal fade" + id="modal{{ reclassify_feedback.id }}" + tabindex="-1" + role="dialog" + aria-labelledby="label{{ reclassify_feedback.id }}" + aria-hidden="true"> + <div class="modal-dialog modal-dialog-scrollable modal-xl"> + <div class="modal-content"> + <div class="modal-header"> + <p class="h5 modal-title" id="label{{ reclassify_feedback.id }}">{{ reclassify_feedback.subject }}</p> + <button type="button" + class="btn-close" + data-bs-dismiss="modal" + aria-label="Close"></button> + </div> + <div class="modal-body"> + <pre>{% decrypt reclassify_feedback.comments request year 1 %}</pre> + </div> + <div class="modal-footer"> + <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button> + </div> + </div> + </div> + </div> + </td> + </tr> + </tbody> + </table> + <input type="hidden" name="feedback_id" value="{{ reclassify_feedback.id }}"> + <button class="btn btn-primary" type="submit" name="submit" value="reclassify">Classify</button> + </form> diff --git a/ietf/templates/nomcom/view_feedback.html b/ietf/templates/nomcom/view_feedback.html index d1b7f77e4..7506c3504 100644 --- a/ietf/templates/nomcom/view_feedback.html +++ b/ietf/templates/nomcom/view_feedback.html @@ -47,7 +47,7 @@ </td> {% for fbtype_name, fbtype_count, fbtype_newflag in fb_dict.feedback %} <td> - {% if fbtype_newflag %}<span class="badge rounded-pill bg-success">New</span>{% endif %} + {% if fbtype_newflag %}<span class="badge rounded-pill text-bg-success">New</span>{% endif %} {{ fbtype_count }} </td> {% endfor %} @@ -86,7 +86,7 @@ </td> {% for fbtype_name, fbtype_count, fbtype_newflag in fb_dict.feedback %} <td> - {% if fbtype_newflag %}<span class="badge rounded-pill bg-success">New</span>{% endif %} + {% if fbtype_newflag %}<span class="badge rounded-pill text-bg-success">New</span>{% endif %} {{ fbtype_count }} </td> {% endfor %} diff --git a/ietf/templates/nomcom/view_feedback_nominee.html b/ietf/templates/nomcom/view_feedback_nominee.html index 7ead9f477..9194ee84b 100644 --- a/ietf/templates/nomcom/view_feedback_nominee.html +++ b/ietf/templates/nomcom/view_feedback_nominee.html @@ -1,10 +1,13 @@ {% extends "nomcom/nomcom_private_base.html" %} -{# Copyright The IETF Trust 2015, All Rights Reserved #} +{# Copyright The IETF Trust 2015-2023, All Rights Reserved #} {% load origin %} {% load nomcom_tags textfilters %} {% block subtitle %}- View feedback about {{ nominee.email.person.name }}{% endblock %} {% block nomcom_content %} - {% origin %} +{% origin %} +{% if reclassify_feedback %} + {% include "nomcom/reclassify_feedback_item.html" %} +{% else %} <h2>Feedback about {{ nominee }}</h2> <ul class="nav nav-tabs my-3" role="tablist"> {% for ft in feedback_types %} @@ -26,13 +29,13 @@ {% if feedback.type.slug == ft.slug %} <dl class="row"> <dt class="col-sm-2"> - {% if feedback.time > last_seen_time %}<span class="badge rounded-pill bg-success">New</span>{% endif %} + {% if feedback.time > last_seen_time %}<span class="badge rounded-pill text-bg-success">New</span>{% endif %} From </dt> <dd class="col-sm-10"> {{ feedback.author|formatted_email|default:"Anonymous"|linkify }} {% if ft.slug == "nomina" and feedback.nomination_set.first.share_nominator %} - <span class="badge rounded-pill bg-info">OK to share name with nominee</span> + <span class="badge rounded-pill text-bg-info">OK to share name with nominee</span> {% endif %} </dd> <dt class="col-sm-2"> @@ -81,6 +84,24 @@ <dd class="col-sm-10 pasted"> <pre>{% decrypt feedback.comments request year 1 %}</pre> </dd> + {% if user|is_chair_or_advisor:year %} + <dt class="col-sm-2"> + <form id="reclassify-{{ feedback.id }}" method="post"> + {% csrf_token %} + <input type="hidden" name="feedback_id" value="{{ feedback.id }}"> + {% if ft.slug == "questio" %} + <p><button class="btn btn-warning btn-sm" type="submit" name="submit" value="download"> + Download + </button></p> + {% endif %} + <button class="btn btn-warning btn-sm" type="submit" name="submit" value="reclassify"> + Reclassify + </button> + </form> + </dt> + <dd> + </dd> + {% endif %} </dl> {% if not forloop.last %}<hr>{% endif %} {% endif %} @@ -90,6 +111,7 @@ </div> <a class="btn btn-secondary" href="{% url 'ietf.nomcom.views.view_feedback' year %}">Back</a> +{% endif %} {% endblock %} {% block js %} <script> diff --git a/ietf/templates/nomcom/view_feedback_pending.html b/ietf/templates/nomcom/view_feedback_pending.html index b086eae29..5681ca5d7 100644 --- a/ietf/templates/nomcom/view_feedback_pending.html +++ b/ietf/templates/nomcom/view_feedback_pending.html @@ -42,7 +42,7 @@ Type </dt> <dd class="col-sm-10"> - <span class="badge rounded-pill bg-info">{{ form.feedback_type }}</span> + <span class="badge rounded-pill text-bg-info">{{ form.feedback_type }}</span> </dd> <dt class="col-sm-2"> Feedback @@ -73,9 +73,9 @@ </tr> </thead> <tbody> - {% for legend, t in type_dict.items %} + {% for t in types %} <tr> - <th scope="row">{{ legend }}</th> + <th scope="row">{{ t.legend }}</th> <td>{{ t.name }}</td> </tr> {% endfor %} @@ -85,7 +85,7 @@ <thead> <tr> <th scope="col">Date</th> - {% for legend, t in type_dict.items %}<th scope="col" class="text-center" title="{{ t.name }}">{{ legend }}</th>{% endfor %} + {% for t in types %}<th scope="col" class="text-center" title="{{ t.name }}">{{ t.legend }}</th>{% endfor %} <th scope="col">Author</th> <th scope="col">Subject</th> <th scope="col"></th> diff --git a/ietf/templates/nomcom/view_feedback_topic.html b/ietf/templates/nomcom/view_feedback_topic.html index a7282691f..795de5f90 100644 --- a/ietf/templates/nomcom/view_feedback_topic.html +++ b/ietf/templates/nomcom/view_feedback_topic.html @@ -1,10 +1,13 @@ {% extends "nomcom/nomcom_private_base.html" %} -{# Copyright The IETF Trust 2017, All Rights Reserved #} +{# Copyright The IETF Trust 2017-2023, All Rights Reserved #} {% load origin %} {% load nomcom_tags textfilters %} {% block subtitle %}- View feedback about {{ topic.subject }}{% endblock %} {% block nomcom_content %} - {% origin %} +{% origin %} +{% if reclassify_feedback %} + {% include "nomcom/reclassify_feedback_item.html" %} +{% else %} <h2>Feedback about {{ topic.subject }}</h2> <ul class="nav nav-tabs my-3" role="tablist"> {% for ft in feedback_types %} @@ -26,7 +29,7 @@ {% if feedback.type.slug == ft.slug %} <dl class="row"> <dt class="col-sm-2"> - {% if feedback.time > last_seen_time %}<span class="badge rounded-pill bg-success">New</span>{% endif %} + {% if feedback.time > last_seen_time %}<span class="badge rounded-pill text-bg-success">New</span>{% endif %} From </dt> <dd class="col-sm-10"> @@ -44,6 +47,19 @@ <dd class="col-sm-10 pasted"> <pre>{% decrypt feedback.comments request year 1 %}</pre> </dd> + {% if user|is_chair_or_advisor:year %} + <dt class="col-sm-2"> + <form id="reclassify-{{ feedback.id }}" method="post"> + {% csrf_token %} + <input type="hidden" name="feedback_id" value="{{ feedback.id }}"> + <button class="btn btn-warning btn-sm" type="submit"> + Reclassify + </button> + </form> + </dt> + <dd> + </dd> + {% endif %} </dl> {% if not forloop.last %}<hr>{% endif %} {% endif %} @@ -53,6 +69,7 @@ </div> <a class="btn btn-secondary" href="{% url 'ietf.nomcom.views.view_feedback' year %}">Back</a> +{% endif %} {% endblock %} {% block js %} <script> diff --git a/ietf/templates/nomcom/view_feedback_unrelated.html b/ietf/templates/nomcom/view_feedback_unrelated.html index c04cd67a8..0e749e748 100644 --- a/ietf/templates/nomcom/view_feedback_unrelated.html +++ b/ietf/templates/nomcom/view_feedback_unrelated.html @@ -1,10 +1,13 @@ {% extends "nomcom/nomcom_private_base.html" %} -{# Copyright The IETF Trust 2015, All Rights Reserved #} +{# Copyright The IETF Trust 2015-2023, All Rights Reserved #} {% load origin %} {% load nomcom_tags textfilters %} {% block subtitle %}- View unrelated feedback{% endblock %} {% block nomcom_content %} - {% origin %} +{% origin %} +{% if reclassify_feedback %} + {% include "nomcom/reclassify_feedback_item.html" %} +{% else %} <h2>Feedback not related to nominees</h2> <ul role="tablist" class="nav nav-tabs my-3"> {% for ft in feedback_types %} @@ -45,6 +48,19 @@ <dd class="col-sm-10 pasted"> <pre>{% decrypt feedback.comments request year 1 %}</pre> </dd> + {% if user|is_chair_or_advisor:year %} + <dt class="col-sm-2"> + <form id="reclassify-{{ feedback.id }}" method="post"> + {% csrf_token %} + <input type="hidden" name="feedback_id" value="{{ feedback.id }}"> + <button class="btn btn-warning btn-sm" type="submit"> + Reclassify + </button> + </form> + </dt> + <dd> + </dd> + {% endif %} </dl> {% endfor %} </div> @@ -54,6 +70,7 @@ <a class="btn btn-secondary" href="{% url 'ietf.nomcom.views.view_feedback' year %}">Back</a> </p> +{% endif %} {% endblock %} {% block js %} <script> diff --git a/ietf/templates/oidc_provider/error.html b/ietf/templates/oidc_provider/error.html index db41e6395..0499c750e 100644 --- a/ietf/templates/oidc_provider/error.html +++ b/ietf/templates/oidc_provider/error.html @@ -3,9 +3,7 @@ {% load static %} {% block title %}Permission Error{% endblock %} {% block content %} - <img class="col-2 mb-5" - src="{% static 'ietf/images/ietf-logo.svg' %}" - alt="IETF"> + {% include "logo.html" with org="ietf" classes="col-2 mb-5" only %} <div class="alert alert-warning my-3"> <h2>{{ error }}</h2> <hr> diff --git a/ietf/templates/person/person_info.html b/ietf/templates/person/person_info.html index a9e11462b..5d3994db7 100644 --- a/ietf/templates/person/person_info.html +++ b/ietf/templates/person/person_info.html @@ -11,7 +11,7 @@ </dt> <dd class="col-md-9"> {% if person.user %} - {{ person.user }} <span class="badge rounded-pill bg-info"> Last login + {{ person.user }} <span class="badge rounded-pill text-bg-info"> Last login {% if person.user.last_login %} {{ person.user.last_login|date:"Y-m-d" }} {% else %} diff --git a/ietf/templates/submit/announce_to_authors.txt b/ietf/templates/submit/announce_to_authors.txt index 7622cb969..e3359bb60 100644 --- a/ietf/templates/submit/announce_to_authors.txt +++ b/ietf/templates/submit/announce_to_authors.txt @@ -1,24 +1,23 @@ -{% autoescape off %} -A new version of I-D, {{ submission.name }}-{{ submission.rev }}.txt -has been successfully submitted by {{ submission.submitter_parsed.name }} and posted to the -IETF repository. +{% autoescape off %}{% filter wordwrap:78 %}A new version of Internet-Draft {{ submission.name }}-{{ submission.rev }}.txt has been successfully submitted by {{ submission.submitter_parsed.name }} and posted to the +IETF repository.{% endfilter %} -Name: {{ submission.name }} -Revision: {{ submission.rev }} -Title: {{ submission.title }} -Document date: {{ submission.document_date|date:"Y-m-d" }} -Group: {{ group }} -Pages: {{ submission.pages }} -URL: {{ settings.IETF_ID_ARCHIVE_URL }}{{ submission.name }}-{{ submission.rev }}.txt -Status: {{ settings.IDTRACKER_BASE_URL }}{% url 'ietf.doc.views_doc.document_main' name=submission.name %}{% if submission.xml_version == "3" %} -Html: {{ settings.IETF_ID_ARCHIVE_URL }}{{ submission.name }}-{{ submission.rev }}.html{% endif %} -Htmlized: {{ settings.IDTRACKER_BASE_URL }}{% url 'ietf.doc.views_doc.document_html' name=submission.name %} -{% if submission.rev != "00" %}Diff: {{rfcdiff_base_url}}?url2={{ submission.name }}-{{ submission.rev }}{% endif %} +Name: {{ submission.name }} +Revision: {{ submission.rev }} +Title: {{ submission.title }} +Date: {{ submission.document_date|date:"Y-m-d" }} +Group: {{ group }} +Pages: {{ submission.pages }} +URL: {{ settings.IETF_ID_ARCHIVE_URL }}{{ submission.name }}-{{ submission.rev }}.txt +Status: {{ settings.IDTRACKER_BASE_URL }}{% url 'ietf.doc.views_doc.document_main' name=submission.name %}{% if submission.xml_version == "3" %} +HTML: {{ settings.IETF_ID_ARCHIVE_URL }}{{ submission.name }}-{{ submission.rev }}.html{% endif %} +HTMLized: {{ settings.IDTRACKER_BASE_URL }}{% url 'ietf.doc.views_doc.document_html' name=submission.name %} +{% if submission.rev != "00" %}Diff: {{rfcdiff_base_url}}?url2={{ submission.name }}-{{ submission.rev }}{% endif %} Abstract: -{{ submission.abstract }} - -{{ submission.note|default:"" }} + +{{ submission.abstract.rstrip }} + +{{ submission.note.rstrip|default:"" }} The IETF Secretariat {% endautoescape %} diff --git a/ietf/templates/submit/announce_to_lists.txt b/ietf/templates/submit/announce_to_lists.txt index b45c4a1eb..d7a3739af 100644 --- a/ietf/templates/submit/announce_to_lists.txt +++ b/ietf/templates/submit/announce_to_lists.txt @@ -1,14 +1,14 @@ -{% autoescape off %} -{% filter wordwrap:78 %}A New Internet-Draft is available from the on-line Internet-Drafts directories.{% if submission.group %} This Internet-Draft is a work item of the {{ submission.group.name }} ({{ submission.group.acronym|upper }}){% if submission.group.type.name %} {{ submission.group.type.name }}{% endif %} of the {% if submission.group.type_id == "rg" %}IRTF{% else %}IETF{% endif %}.{% endif %}{% endfilter %} +{% autoescape off %}{% filter wordwrap:78 %}Internet-Draft {{ submission.name }}-{{ submission.rev }}.txt is now available.{% if submission.group %} It is a work item of the {{ submission.group.name }} ({{ submission.group.acronym|upper }}){% if submission.group.type.name %} {{ submission.group.type.name }}{% endif %} of the {% if submission.group.type_id == "rg" %}IRTF{% else %}IETF{% endif %}.{% endif %}{% endfilter %} - Title : {{ submission.title }} - Author{{ submission.authors|pluralize:" ,s" }} : {% for author in submission.authors %}{{ author.name }}{% if not forloop.last %} - {% endif %}{% endfor %} - Filename : {{ submission.name }}-{{ submission.rev }}.txt - Pages : {{ submission.pages }} - Date : {{ submission.submission_date|date:"Y-m-d" }} + Title: {{ submission.title }} + Author{{ submission.authors|pluralize:",s" }}: {% if submission.authors|length == 1 %} {% endif %}{% for author in submission.authors %}{{ author.name }}{% if not forloop.last %} + {% endif %}{% endfor %} + Name: {{ submission.name }}-{{ submission.rev }}.txt + Pages: {{ submission.pages }} + Dates: {{ submission.submission_date|date:"Y-m-d" }} Abstract: + {{ submission.abstract.rstrip }} The IETF datatracker status page for this Internet-Draft is: @@ -16,11 +16,12 @@ The IETF datatracker status page for this Internet-Draft is: {% if submission.xml_version == "3" %} There is also an HTML version available at: {{ settings.IETF_ID_ARCHIVE_URL }}{{ submission.name }}-{{ submission.rev }}.html{% else %} -There is also an htmlized version available at: +There is also an HTMLized version available at: {{ settings.IDTRACKER_BASE_URL }}{% url 'ietf.doc.views_doc.document_html' name=submission.name rev=submission.rev %}{% endif %} {% if submission.rev != "00" %} A diff from the previous version is available at: {{settings.RFCDIFF_BASE_URL}}?url2={{ submission.name }}-{{ submission.rev }} {% endif %} -Internet-Drafts are also available by rsync at rsync.ietf.org::internet-drafts +Internet-Drafts are also available by rsync at: +rsync.ietf.org::internet-drafts {% endautoescape %} diff --git a/ietf/templates/submit/submission_status.html b/ietf/templates/submit/submission_status.html index feebf8fad..6f18d7094 100644 --- a/ietf/templates/submit/submission_status.html +++ b/ietf/templates/submit/submission_status.html @@ -40,8 +40,10 @@ <p class="alert {% if passes_checks %}alert-success{% else %}alert-warning{% endif %} my-3"> {% if passes_checks %} Your Internet-Draft has been verified to pass the submission checks. + {% elif applied_any_checks %} + Your Internet-Draft failed at least one submission check. {% else %} - Your Internet-Draft has <b>NOT</b> been verified to pass the submission checks. + No submission checks were applied to your Internet-Draft. {% endif %} </p> {% if submission.authors|length > 5 %} @@ -70,41 +72,39 @@ {% endif %} {% endfor %} {% for check in submission.latest_checks %} - {% if check.passed != None %} - <button class="btn btn-{% if check.passed %}{% if check.warnings %}warning{% elif check.errors %}danger{% else %}success{% endif %}{% else %}danger{% endif %}" - type="button" - data-bs-toggle="modal" - data-bs-target="#check-{{ check.pk }}"> - View {{ check.checker }} - </button> - <div class="modal fade" - id="check-{{ check.pk }}" - tabindex="-1" - role="dialog" - aria-labelledby="check-{{ check.pk }}" - aria-hidden="true"> - <div class="modal-dialog modal-dialog-scrollable modal-xl"> - <div class="modal-content"> - <div class="modal-header"> - <p class="h5 modal-title" id="{{ check.checker|slugify }}-label"> - {{ check.checker|title }} for {{ submission.name }}-{{ submission.rev }} - </p> - <button type="button" - class="btn-close" - data-bs-dismiss="modal" - aria-label="Close"></button> - </div> - <div class="modal-body" id="{{ check.checker|slugify }}-message"> - <pre>{{ check.message|urlize_ietf_docs|linkify }}</pre> - </div> - <div class="modal-footer"> - <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button> - </div> + <button class="btn btn-{% if check.passed %}{% if check.warnings %}warning{% elif check.errors %}danger{% else %}success{% endif %}{% else %}danger{% endif %}" + type="button" + data-bs-toggle="modal" + data-bs-target="#check-{{ check.pk }}"> + View {{ check.checker }} + </button> + <div class="modal fade" + id="check-{{ check.pk }}" + tabindex="-1" + role="dialog" + aria-labelledby="check-{{ check.pk }}" + aria-hidden="true"> + <div class="modal-dialog modal-dialog-scrollable modal-xl"> + <div class="modal-content"> + <div class="modal-header"> + <p class="h5 modal-title" id="{{ check.checker|slugify }}-label"> + {{ check.checker|title }} for {{ submission.name }}-{{ submission.rev }} + </p> + <button type="button" + class="btn-close" + data-bs-dismiss="modal" + aria-label="Close"></button> + </div> + <div class="modal-body" id="{{ check.checker|slugify }}-message"> + <pre>{{ check.message|urlize_ietf_docs|linkify }}</pre> + </div> + <div class="modal-footer"> + <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button> </div> </div> </div> - {% endif %} - {% endfor %} + </div> + {% endfor %} {% endif %} <div class="modal fade" id="twopages" @@ -152,9 +152,13 @@ {% endwith %} Please contact the secretariat for assistance if it has been more than an hour. </div> - {% else %} + {% else %} <h2 class="mt-5">Meta-data from the submission</h2> - {% if errors %} + {% if submission.state.slug == "cancel" %} + <div class="alert alert-warning my-3"> + <b>Note:</b> The meta-data shown for a cancelled draft may be incorrect or incomplete. + </div> + {% elif errors %} <div class="alert alert-danger my-3"> <p> <b>Meta-Data errors found!</b> @@ -373,7 +377,7 @@ <div> {{ res.name.name }}: {{ res.value }} {% if res.display_name %}(as "{{ res.display_name }}"){% endif %} - {% if external_resources.show_changes and added %}<span class="badge rounded-pill bg-success">New</span>{% endif %} + {% if external_resources.show_changes and added %}<span class="badge rounded-pill text-bg-success">New</span>{% endif %} </div> {% endwith %} {% empty %} @@ -392,7 +396,7 @@ <div> {{ res.name.name }}: {{ res.value }} {% if res.display_name %}(as "{{ res.display_name }}"){% endif %} - {% if removed %}<span class="badge rounded-pill bg-warning">Removed</span>{% endif %} + {% if removed %}<span class="badge rounded-pill text-bg-warning">Removed</span>{% endif %} </div> {% endwith %} {% empty %} diff --git a/ietf/templates/submit/tool_instructions.html b/ietf/templates/submit/tool_instructions.html index 9d726b21d..08265f529 100644 --- a/ietf/templates/submit/tool_instructions.html +++ b/ietf/templates/submit/tool_instructions.html @@ -204,4 +204,4 @@ </tbody> </table> {% include "submit/problem-reports-footer.html" %} -{% endblock %} +{% endblock %} \ No newline at end of file diff --git a/package.json b/package.json index 1d8365ce0..fefadc7c9 100644 --- a/package.json +++ b/package.json @@ -18,10 +18,10 @@ "@fullcalendar/vue3": "6.1.8", "@popperjs/core": "2.11.8", "@twuni/emojify": "1.0.2", - "bootstrap": "5.2.3", + "bootstrap": "5.3.0", "bootstrap-icons": "1.10.5", "browser-fs-access": "0.34.1", - "caniuse-lite": "1.0.30001495", + "caniuse-lite": "1.0.30001519", "d3": "7.8.5", "file-saver": "2.0.5", "highcharts": "11.1.0", @@ -31,13 +31,13 @@ "list.js": "2.3.1", "lodash": "4.17.21", "lodash-es": "4.17.21", - "luxon": "3.3.0", + "luxon": "3.4.0", "moment": "2.29.4", "moment-timezone": "0.5.43", "ms": "2.1.3", "murmurhash-js": "1.0.0", "naive-ui": "2.34.4", - "pinia": "2.1.4", + "pinia": "2.1.6", "pinia-plugin-persist": "1.0.0", "select2": "4.1.0-rc.0", "select2-bootstrap-5-theme": "1.3.0", @@ -45,34 +45,34 @@ "shepherd.js": "11.1.1", "slugify": "1.6.6", "sortablejs": "1.15.0", - "vanillajs-datepicker": "1.3.3", + "vanillajs-datepicker": "1.3.4", "vue": "3.3.4", - "vue-router": "4.2.2", + "vue-router": "4.2.4", "zxcvbn": "4.4.2" }, "devDependencies": { - "@parcel/optimizer-data-url": "2.9.2", - "@parcel/transformer-inline-string": "2.9.2", - "@parcel/transformer-sass": "2.9.2", - "@rollup/pluginutils": "5.0.2", - "@vitejs/plugin-vue": "4.2.3", + "@parcel/optimizer-data-url": "2.9.3", + "@parcel/transformer-inline-string": "2.9.3", + "@parcel/transformer-sass": "2.9.3", + "@rollup/pluginutils": "5.0.3", + "@vitejs/plugin-vue": "4.3.3", "browserlist": "latest", - "c8": "8.0.0", - "eslint": "8.43.0", + "c8": "8.0.1", + "eslint": "8.47.0", "eslint-config-standard": "17.1.0", - "eslint-plugin-cypress": "2.13.3", - "eslint-plugin-import": "2.27.5", + "eslint-plugin-cypress": "2.14.0", + "eslint-plugin-import": "2.28.1", "eslint-plugin-n": "16.0.1", "eslint-plugin-node": "11.1.0", "eslint-plugin-promise": "6.1.1", - "eslint-plugin-vue": "9.15.1", - "html-validate": "8.0.5", + "eslint-plugin-vue": "9.17.0", + "html-validate": "8.2.0", "jquery-migrate": "3.4.1", - "parcel": "2.9.2", + "parcel": "2.9.3", "pug": "3.0.2", - "sass": "1.63.4", + "sass": "1.66.1", "seedrandom": "3.0.5", - "vite": "4.3.9" + "vite": "4.4.9" }, "targets": { "ietf": { @@ -88,6 +88,7 @@ "ietf/static/css/select2.scss", "ietf/static/images/iab-logo-card.png", "ietf/static/images/iab-logo.svg", + "ietf/static/images/iab-logo-white.svg", "ietf/static/images/iesg-draft-state-diagram.png", "ietf/static/images/ietf-logo-card.png", "ietf/static/images/ietf-logo-nor-16-dev.png", @@ -103,8 +104,10 @@ "ietf/static/images/ietf-logo-nor-mask.svg", "ietf/static/images/ietf-logo-nor-white.svg", "ietf/static/images/ietf-logo-nor.svg", + "ietf/static/images/ietf-logo-white.svg", "ietf/static/images/ietf-logo.svg", "ietf/static/images/irtf-logo-card.png", + "ietf/static/images/irtf-logo-white.svg", "ietf/static/images/irtf-logo.svg", "ietf/static/js/agenda_filter.js", "ietf/static/js/agenda_materials.js", @@ -143,6 +146,7 @@ "ietf/static/js/sortable.js", "ietf/static/js/stats.js", "ietf/static/js/status-change-edit-relations.js", + "ietf/static/js/theme.js", "ietf/static/js/timeslot_edit.js", "ietf/static/js/timezone.js", "ietf/static/js/upcoming.js", diff --git a/playwright/package-lock.json b/playwright/package-lock.json index f77fba98e..f00079562 100644 --- a/playwright/package-lock.json +++ b/playwright/package-lock.json @@ -9,20 +9,29 @@ "@faker-js/faker": "8.0.2", "lodash": "4.17.21", "lodash-es": "4.17.21", - "luxon": "3.3.0", + "luxon": "3.4.0", "ms": "2.1.3", "seedrandom": "3.0.5", "slugify": "1.6.6" }, "devDependencies": { - "@playwright/test": "1.35.1", - "eslint": "8.43.0", + "@playwright/test": "1.37.1", + "eslint": "8.47.0", "eslint-config-standard": "17.1.0", - "eslint-plugin-import": "2.27.5", + "eslint-plugin-import": "2.28.1", "eslint-plugin-n": "16.0.1", "eslint-plugin-node": "11.1.0", "eslint-plugin-promise": "6.1.1", - "npm-check-updates": "16.10.13" + "npm-check-updates": "16.10.16" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, "node_modules/@colors/colors": { @@ -51,23 +60,23 @@ } }, "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==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.8.0.tgz", + "integrity": "sha512-JylOEEzDiOryeUnFbQz+oViCXS0KsvR1mvHkoMiu5+UiBvy+RYX7tzlIIIEstF/gVa2tj9AQXk3dgnxv6KxhFg==", "dev": 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==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", + "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.5.2", + "espree": "^9.6.0", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -83,9 +92,9 @@ } }, "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==", + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.48.0.tgz", + "integrity": "sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -106,12 +115,6 @@ "npm": ">=6.14.13" } }, - "node_modules/@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", - "dev": true - }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz", @@ -260,14 +263,13 @@ } }, "node_modules/@npmcli/git": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-4.0.3.tgz", - "integrity": "sha512-8cXNkDIbnXPVbhXMmQ7/bklCAjtmPaXfI9aEM4iH+xSuEHINLMHhlfESvVwdqmHJRJkR48vNJTSUvoF6GRPSFA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-4.1.0.tgz", + "integrity": "sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==", "dev": true, "dependencies": { "@npmcli/promise-spawn": "^6.0.0", "lru-cache": "^7.4.4", - "mkdirp": "^1.0.4", "npm-pick-manifest": "^8.0.0", "proc-log": "^3.0.0", "promise-inflight": "^1.0.1", @@ -289,9 +291,9 @@ } }, "node_modules/@npmcli/git/node_modules/which": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.0.tgz", - "integrity": "sha512-nla//68K9NU6yRiwDY/Q8aU6siKlSs64aEC7+IV56QoAuyQT2ovsJcgGYGyqMOmI/CGN1BOR6mM5EN0FBO+zyQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", + "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", "dev": true, "dependencies": { "isexe": "^2.0.0" @@ -319,20 +321,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@npmcli/move-file": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", - "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", - "deprecated": "This functionality has been moved to @npmcli/fs", - "dev": true, - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, "node_modules/@npmcli/node-gyp": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz", @@ -355,9 +343,9 @@ } }, "node_modules/@npmcli/promise-spawn/node_modules/which": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.0.tgz", - "integrity": "sha512-nla//68K9NU6yRiwDY/Q8aU6siKlSs64aEC7+IV56QoAuyQT2ovsJcgGYGyqMOmI/CGN1BOR6mM5EN0FBO+zyQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", + "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", "dev": true, "dependencies": { "isexe": "^2.0.0" @@ -370,9 +358,9 @@ } }, "node_modules/@npmcli/run-script": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-6.0.0.tgz", - "integrity": "sha512-ql+AbRur1TeOdl1FY+RAwGW9fcr4ZwiVKabdvm93mujGREVuVLbdkXRJDrkTXSdCjaxYydr1wlA2v67jxWG5BQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-6.0.2.tgz", + "integrity": "sha512-NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA==", "dev": true, "dependencies": { "@npmcli/node-gyp": "^3.0.0", @@ -386,9 +374,9 @@ } }, "node_modules/@npmcli/run-script/node_modules/which": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.0.tgz", - "integrity": "sha512-nla//68K9NU6yRiwDY/Q8aU6siKlSs64aEC7+IV56QoAuyQT2ovsJcgGYGyqMOmI/CGN1BOR6mM5EN0FBO+zyQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", + "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", "dev": true, "dependencies": { "isexe": "^2.0.0" @@ -411,13 +399,13 @@ } }, "node_modules/@playwright/test": { - "version": "1.35.1", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.35.1.tgz", - "integrity": "sha512-b5YoFe6J9exsMYg0pQAobNDR85T1nLumUYgUTtKm4d21iX2L7WqKq9dW8NGJ+2vX0etZd+Y7UeuqsxDXm9+5ZA==", + "version": "1.37.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.37.1.tgz", + "integrity": "sha512-bq9zTli3vWJo8S3LwB91U0qDNQDpEXnw7knhxLM0nwDvexQAwx9tO8iKDZSqqneVq+URd/WIoz+BALMqUTgdSg==", "dev": true, "dependencies": { "@types/node": "*", - "playwright-core": "1.35.1" + "playwright-core": "1.37.1" }, "bin": { "playwright": "cli.js" @@ -454,11 +442,36 @@ "node": ">=12" } }, - "node_modules/@sigstore/protobuf-specs": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.1.0.tgz", - "integrity": "sha512-a31EnjuIDSX8IXBUib3cYLDRlPMU36AWX4xS8ysLaNu4ZzUesDiPt83pgrW2X1YLMe5L2HbDyaKK5BrL4cNKaQ==", + "node_modules/@sigstore/bundle": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-1.0.0.tgz", + "integrity": "sha512-yLvrWDOh6uMOUlFCTJIZEnwOT9Xte7NPXUqVexEKGSF5XtBAuSg5du0kn3dRR0p47a4ah10Y0mNt8+uyeQXrBQ==", "dev": true, + "dependencies": { + "@sigstore/protobuf-specs": "^0.2.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/protobuf-specs": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.2.0.tgz", + "integrity": "sha512-8ZhZKAVfXjIspDWwm3D3Kvj0ddbJ0HqDZ/pOs5cx88HpT8mVsotFrg7H1UMnXOuDHz6Zykwxn4mxG3QLuN+RUg==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/tuf": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-1.0.3.tgz", + "integrity": "sha512-2bRovzs0nJZFlCN3rXirE4gwxCn97JNjMmwpecqlbgV9WcxX7WRuIrgzx/X7Ib7MYRbyUTpBYE0s2x6AmZXnlg==", + "dev": true, + "dependencies": { + "@sigstore/protobuf-specs": "^0.2.0", + "tuf-js": "^1.1.7" + }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } @@ -496,13 +509,23 @@ "node": ">= 10" } }, - "node_modules/@tufjs/models": { + "node_modules/@tufjs/canonical-json": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-1.0.0.tgz", - "integrity": "sha512-RRMu4uMxWnZlxaIBxahSb2IssFZiu188sndesZflWOe1cA/qUqtemSIoBWbuVKPvvdktapImWNnKpBcc+VrCQw==", + "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-1.0.0.tgz", + "integrity": "sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@tufjs/models": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-1.0.4.tgz", + "integrity": "sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==", "dev": true, "dependencies": { - "minimatch": "^6.1.0" + "@tufjs/canonical-json": "1.0.0", + "minimatch": "^9.0.0" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -518,15 +541,15 @@ } }, "node_modules/@tufjs/models/node_modules/minimatch": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-6.2.0.tgz", - "integrity": "sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -557,9 +580,9 @@ "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==", + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -731,6 +754,25 @@ "node": ">=8" } }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.2.tgz", + "integrity": "sha512-tb5thFFlUcp7NdNF6/MpDk/1r/4awWG1FIz3YqDf+/zJSTezBb+/5WViH41obXULHVpDzoiCLpJ/ZO9YbJMsdw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/array.prototype.flat": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", @@ -919,21 +961,20 @@ } }, "node_modules/cacache": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.0.4.tgz", - "integrity": "sha512-Z/nL3gU+zTUjz5pCA5vVjYM8pmaw2kxM7JEiE0fv3w77Wj+sFbi70CrBruUWH0uNcEdvLDixFpgA2JM4F4DBjA==", + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.1.3.tgz", + "integrity": "sha512-jAdjGxmPxZh0IipMdR7fK/4sDSrHMLUV0+GvVUsjwyGNKHsh79kW/otg+GkbXwl6Uzvy9wsvHOX4nUoWldeZMg==", "dev": true, "dependencies": { "@npmcli/fs": "^3.1.0", "fs-minipass": "^3.0.0", - "glob": "^8.0.1", + "glob": "^10.2.2", "lru-cache": "^7.7.1", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-collect": "^1.0.2", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", "ssri": "^10.0.0", "tar": "^6.1.11", "unique-filename": "^3.0.0" @@ -952,19 +993,22 @@ } }, "node_modules/cacache/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "version": "10.3.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.3.tgz", + "integrity": "sha512-92vPiMb/iqpmEgsOoIDvTjc50wf9CCCvMzsi6W0JLPeUKE8TWP1a73PgqSrqy7iAZxaSD1YdzU7QZR5LF51MJw==", "dev": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "foreground-child": "^3.1.0", + "jackspeak": "^2.0.3", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/cjs/src/bin.js" }, "engines": { - "node": ">=12" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -980,15 +1024,18 @@ } }, "node_modules/cacache/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/cacheable-lookup": { @@ -1540,27 +1587,27 @@ } }, "node_modules/eslint": { - "version": "8.43.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.43.0.tgz", - "integrity": "sha512-aaCpf2JqqKesMFGgmRPessmVKjcGXqdlAYLLC3THM8t5nBRZRQ+st5WM/hoJXkdioEXLLbXgclUpM0TXo5HX5Q==", + "version": "8.47.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.47.0.tgz", + "integrity": "sha512-spUQWrdPt+pRVP1TTJLmfRNJJHHZryFmptzcafwSvHsceV81djHOdnEeDmkdotZyLNjDhrOasNK8nikkoG1O8Q==", "dev": 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", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.2", + "@eslint/js": "^8.47.0", "@humanwhocodes/config-array": "^0.11.10", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", + "ajv": "^6.12.4", "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", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -1570,7 +1617,6 @@ "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", @@ -1580,9 +1626,8 @@ "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.1", + "optionator": "^0.9.3", "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" }, "bin": { @@ -1645,9 +1690,9 @@ } }, "node_modules/eslint-module-utils": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", - "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", "dev": true, "dependencies": { "debug": "^3.2.7" @@ -1690,26 +1735,28 @@ } }, "node_modules/eslint-plugin-import": { - "version": "2.27.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", - "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==", + "version": "2.28.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz", + "integrity": "sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==", "dev": true, "dependencies": { "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-import-resolver-node": "^0.3.7", - "eslint-module-utils": "^2.7.4", + "eslint-module-utils": "^2.8.0", "has": "^1.0.3", - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "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.1", - "semver": "^6.3.0", - "tsconfig-paths": "^3.14.1" + "semver": "^6.3.1", + "tsconfig-paths": "^3.14.2" }, "engines": { "node": ">=4" @@ -1740,9 +1787,9 @@ } }, "node_modules/eslint-plugin-import/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -1858,9 +1905,9 @@ } }, "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==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", @@ -1874,9 +1921,9 @@ } }, "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==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -1886,12 +1933,12 @@ } }, "node_modules/espree": { - "version": "9.5.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz", - "integrity": "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, "dependencies": { - "acorn": "^8.8.0", + "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.4.1" }, @@ -1944,6 +1991,12 @@ "node": ">=0.10.0" } }, + "node_modules/exponential-backoff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", + "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==", + "dev": true + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -2120,12 +2173,12 @@ } }, "node_modules/fs-minipass": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.1.tgz", - "integrity": "sha512-MhaJDcFRTuLidHrIttu0RDGyyXs/IYHVmlcxfLAEFIWjc1vdLAkdwT7Ace2u7DbitWC0toKMl5eJZRYNVreIMw==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.2.tgz", + "integrity": "sha512-2GAfyfoaCDRrM6jaOS3UsBts8yJ55VioXdWcOL7dK9zdAuKT71+WBA4ifnNYqVjYv+4SsPxjK0JT4yIIn4cA/g==", "dev": true, "dependencies": { - "minipass": "^4.0.0" + "minipass": "^5.0.0" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -2204,13 +2257,14 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", - "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", "dev": true, "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", + "has-proto": "^1.0.1", "has-symbols": "^1.0.3" }, "funding": { @@ -2314,9 +2368,9 @@ } }, "node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "version": "13.21.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.21.0.tgz", + "integrity": "sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -2610,12 +2664,12 @@ } }, "node_modules/ignore-walk": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.1.tgz", - "integrity": "sha512-/c8MxUAqpRccq+LyDOecwF+9KqajueJHh8fz7g3YqjMZt+NSfJzx05zrKiXwa2sKwFCzaiZ5qUVfRj0pmxixEA==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.3.tgz", + "integrity": "sha512-C7FfFoTA+bI10qfeydT8aZbvr91vAEU+2W5BZUlzPec47oNb07SsOfwYrtxuvOYdUApPP/Qlh4DtAO51Ekk2QA==", "dev": true, "dependencies": { - "minimatch": "^6.1.6" + "minimatch": "^9.0.0" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -2631,15 +2685,15 @@ } }, "node_modules/ignore-walk/node_modules/minimatch": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-6.2.0.tgz", - "integrity": "sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -2688,12 +2742,6 @@ "node": ">=8" } }, - "node_modules/infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true - }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -2711,9 +2759,9 @@ "dev": true }, "node_modules/ini": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.0.tgz", - "integrity": "sha512-HLR38RSF2iulAzc3I/sma4CoYxQP844rPYCNfzGDOHqa/YqVlwuuZgBx6M50/X8dKgzk0cm1qRg3+47mK2N+cQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz", + "integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==", "dev": true, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -2806,9 +2854,9 @@ } }, "node_modules/is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", "dev": true, "dependencies": { "has": "^1.0.3" @@ -3261,120 +3309,37 @@ } }, "node_modules/luxon": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.3.0.tgz", - "integrity": "sha512-An0UCfG/rSiqtAIiBPO0Y9/zAnHUZxAMiCpTd5h2smgsj7GGmcenvrvww2cqNA8/4A5ZrD1gJpHN2mIHZQF+Mg==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.4.0.tgz", + "integrity": "sha512-7eDo4Pt7aGhoCheGFIuq4Xa2fJm4ZpmldpGhjTYBNUYNCN6TIEP6v7chwwwt3KRp7YR+rghbfvjyo3V5y9hgBw==", "engines": { "node": ">=12" } }, "node_modules/make-fetch-happen": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", - "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", + "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", "dev": true, "dependencies": { "agentkeepalive": "^4.2.1", - "cacache": "^16.1.0", - "http-cache-semantics": "^4.1.0", + "cacache": "^17.0.0", + "http-cache-semantics": "^4.1.1", "http-proxy-agent": "^5.0.0", "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", + "minipass": "^5.0.0", + "minipass-fetch": "^3.0.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "negotiator": "^0.6.3", "promise-retry": "^2.0.1", "socks-proxy-agent": "^7.0.0", - "ssri": "^9.0.0" + "ssri": "^10.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/make-fetch-happen/node_modules/@npmcli/fs": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", - "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", - "dev": true, - "dependencies": { - "@gar/promisify": "^1.1.3", - "semver": "^7.3.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/make-fetch-happen/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/make-fetch-happen/node_modules/cacache": { - "version": "16.1.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", - "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", - "dev": true, - "dependencies": { - "@npmcli/fs": "^2.1.0", - "@npmcli/move-file": "^2.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "glob": "^8.0.1", - "infer-owner": "^1.0.4", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", - "tar": "^6.1.11", - "unique-filename": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/make-fetch-happen/node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/make-fetch-happen/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/make-fetch-happen/node_modules/lru-cache": { @@ -3386,66 +3351,6 @@ "node": ">=12" } }, - "node_modules/make-fetch-happen/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-fetch-happen/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/make-fetch-happen/node_modules/ssri": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", - "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", - "dev": true, - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/make-fetch-happen/node_modules/unique-filename": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", - "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", - "dev": true, - "dependencies": { - "unique-slug": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/make-fetch-happen/node_modules/unique-slug": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", - "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -3499,9 +3404,9 @@ "dev": true }, "node_modules/minipass": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.5.tgz", - "integrity": "sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "dev": true, "engines": { "node": ">=8" @@ -3532,34 +3437,22 @@ } }, "node_modules/minipass-fetch": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", - "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.3.tgz", + "integrity": "sha512-n5ITsTkDqYkYJZjcRWzZt9qnZKCT7nKCosJhHoj7S7zD+BP4jVbWs+odsniw5TA3E0sLomhTKOKjF86wf11PuQ==", "dev": true, "dependencies": { - "minipass": "^3.1.6", + "minipass": "^5.0.0", "minipass-sized": "^1.0.3", "minizlib": "^2.1.2" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" }, "optionalDependencies": { "encoding": "^0.1.13" } }, - "node_modules/minipass-fetch/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/minipass-flush": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", @@ -3712,15 +3605,16 @@ } }, "node_modules/node-gyp": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.3.1.tgz", - "integrity": "sha512-4Q16ZCqq3g8awk6UplT7AuxQ35XN4R/yf/+wSAwcBUAjg7l58RTactWaP8fIDTi0FzI7YcVLujwExakZlfWkXg==", + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.4.0.tgz", + "integrity": "sha512-dMXsYP6gc9rRbejLXmTbVRYjAHw7ppswsKyMxuxJxxOHzluIO1rGp9TOQgjFJ+2MCqcOcQTOPB/8Xwhr+7s4Eg==", "dev": true, "dependencies": { "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", "glob": "^7.1.4", "graceful-fs": "^4.2.6", - "make-fetch-happen": "^10.0.3", + "make-fetch-happen": "^11.0.3", "nopt": "^6.0.0", "npmlog": "^6.0.0", "rimraf": "^3.0.2", @@ -3811,12 +3705,12 @@ } }, "node_modules/npm-check-updates": { - "version": "16.10.13", - "resolved": "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-16.10.13.tgz", - "integrity": "sha512-ZsWrtHnaMkcxAaCtDFEr8i7jgM0Bz2AYsnsJlmxISgltG8ie43bWC6G9icxFKfYSLeJJtcj/Yw1Mq5f8GL2F3g==", + "version": "16.10.16", + "resolved": "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-16.10.16.tgz", + "integrity": "sha512-d8mNYce/l8o5RHPE5ZUp2P1zj9poI7KWQCh5AsTIP3EhicONEhc63mLQQv4/nkCsMb3wCrikx6YOo4BOwN4+1w==", "dev": true, "dependencies": { - "chalk": "^5.2.0", + "chalk": "^5.3.0", "cli-table3": "^0.6.3", "commander": "^10.0.0", "fast-memoize": "^2.5.2", @@ -3825,25 +3719,25 @@ "get-stdin": "^8.0.0", "globby": "^11.0.4", "hosted-git-info": "^5.1.0", - "ini": "^4.0.0", + "ini": "^4.1.1", "js-yaml": "^4.1.0", "json-parse-helpfulerror": "^1.0.3", "jsonlines": "^0.1.1", "lodash": "^4.17.21", - "minimatch": "^9.0.0", + "minimatch": "^9.0.3", "p-map": "^4.0.0", - "pacote": "15.1.1", + "pacote": "15.2.0", "parse-github-url": "^1.0.2", "progress": "^2.0.3", "prompts-ncu": "^3.0.0", - "rc-config-loader": "^4.1.2", + "rc-config-loader": "^4.1.3", "remote-git-tags": "^3.0.0", - "rimraf": "^5.0.0", - "semver": "^7.4.0", + "rimraf": "^5.0.1", + "semver": "^7.5.3", "semver-utils": "^1.1.4", "source-map-support": "^0.5.21", "spawn-please": "^2.0.1", - "strip-json-comments": "^5.0.0", + "strip-json-comments": "^5.0.1", "untildify": "^4.0.0", "update-notifier": "^6.0.2" }, @@ -3865,9 +3759,9 @@ } }, "node_modules/npm-check-updates/node_modules/chalk": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", - "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", "dev": true, "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" @@ -3899,9 +3793,9 @@ } }, "node_modules/npm-check-updates/node_modules/minimatch": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz", - "integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -3941,9 +3835,9 @@ } }, "node_modules/npm-check-updates/node_modules/strip-json-comments": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-5.0.0.tgz", - "integrity": "sha512-V1LGY4UUo0jgwC+ELQ2BNWfPa17TIuwBLg+j1AA/9RPzKINl1lhxVEu2r+ZTTO8aetIsUzE5Qj6LMSBkoGYKKw==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-5.0.1.tgz", + "integrity": "sha512-0fk9zBqO67Nq5M/m45qHCJxylV/DhBlIOVExqgOMiCCrzrhU6tCibRXNqE3jwJLftzE9SNuZtYbpzcO+i9FiKw==", "dev": true, "engines": { "node": ">=14.16" @@ -3953,9 +3847,9 @@ } }, "node_modules/npm-install-checks": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.0.0.tgz", - "integrity": "sha512-SBU9oFglRVZnfElwAtF14NivyulDqF1VKqqwNsFW9HDcbHMAPHpRSsVFgKuwFGq/hVvWZExz62Th0kvxn/XE7Q==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.1.1.tgz", + "integrity": "sha512-dH3GmQL4vsPtld59cOn8uY0iOqRmqKvV+DLGwNXV/Q7MDgD2QfOADWd/mFXcIE5LVhYYGjA3baz6W9JneqnuCw==", "dev": true, "dependencies": { "semver": "^7.1.1" @@ -3965,9 +3859,9 @@ } }, "node_modules/npm-normalize-package-bin": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.0.tgz", - "integrity": "sha512-g+DPQSkusnk7HYXr75NtzkIP4+N81i3RPsGFidF3DzHd9MT9wWngmqoeg/fnHFz5MNdtG4w03s+QnhewSLTT2Q==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", + "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", "dev": true, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -4022,9 +3916,9 @@ } }, "node_modules/npm-pick-manifest": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-8.0.1.tgz", - "integrity": "sha512-mRtvlBjTsJvfCCdmPtiu2bdlx8d/KXtF7yNXNWe7G0Z36qWA9Ny5zXsI2PfBZEv7SXgoxTmNaTzGSbbzDZChoA==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-8.0.2.tgz", + "integrity": "sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg==", "dev": true, "dependencies": { "npm-install-checks": "^6.0.0", @@ -4037,13 +3931,13 @@ } }, "node_modules/npm-registry-fetch": { - "version": "14.0.3", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-14.0.3.tgz", - "integrity": "sha512-YaeRbVNpnWvsGOjX2wk5s85XJ7l1qQBGAp724h8e2CZFFhMSuw9enom7K1mWVUtvXO1uUSFIAPofQK0pPN0ZcA==", + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-14.0.5.tgz", + "integrity": "sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==", "dev": true, "dependencies": { "make-fetch-happen": "^11.0.0", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-fetch": "^3.0.0", "minipass-json-stream": "^1.0.1", "minizlib": "^2.1.2", @@ -4054,58 +3948,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm-registry-fetch/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/npm-registry-fetch/node_modules/make-fetch-happen": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.0.3.tgz", - "integrity": "sha512-oPLh5m10lRNNZDjJ2kP8UpboUx2uFXVaVweVe/lWut4iHWcQEmfqSVJt2ihZsFI8HbpwyyocaXbCAWf0g1ukIA==", - "dev": true, - "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^4.0.0", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^10.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-registry-fetch/node_modules/minipass-fetch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.1.tgz", - "integrity": "sha512-t9/wowtf7DYkwz8cfMSt0rMwiyNIBXf5CKZ3S5ZMqRqMYT0oLTp0x1WorMI9WTwvaPg21r1JbFxJMum8JrLGfw==", - "dev": true, - "dependencies": { - "minipass": "^4.0.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, "node_modules/npmlog": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", @@ -4157,6 +3999,35 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/object.fromentries": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", + "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.0.tgz", + "integrity": "sha512-70MWG6NfRH9GnbZOikuhPPYzpUpof9iW2J9E4dW7FXTqPNb6rllE6u39SKwwiNh8lCwX3DDb5OgcKGiEBrTTyw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.21.2", + "get-intrinsic": "^1.2.1" + } + }, "node_modules/object.values": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", @@ -4184,17 +4055,17 @@ } }, "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", "dev": true, "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", "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" + "type-check": "^0.4.0" }, "engines": { "node": ">= 0.8.0" @@ -4273,9 +4144,9 @@ } }, "node_modules/pacote": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-15.1.1.tgz", - "integrity": "sha512-eeqEe77QrA6auZxNHIp+1TzHQ0HBKf5V6c8zcaYZ134EJe1lCi+fjXATkNiEEfbG+e50nu02GLvUtmZcGOYabQ==", + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-15.2.0.tgz", + "integrity": "sha512-rJVZeIwHTUta23sIZgEIM62WYwbmGbThdbnkt81ravBplQv+HjyroqnLRNH2+sLJHcGZmLRmhPwACqhfTcOmnA==", "dev": true, "dependencies": { "@npmcli/git": "^4.0.0", @@ -4284,7 +4155,7 @@ "@npmcli/run-script": "^6.0.0", "cacache": "^17.0.0", "fs-minipass": "^3.0.0", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "npm-package-arg": "^10.0.0", "npm-packlist": "^7.0.0", "npm-pick-manifest": "^8.0.0", @@ -4293,7 +4164,7 @@ "promise-retry": "^2.0.1", "read-package-json": "^6.0.0", "read-package-json-fast": "^3.0.0", - "sigstore": "^1.0.0", + "sigstore": "^1.3.0", "ssri": "^10.0.0", "tar": "^6.1.11" }, @@ -4362,13 +4233,13 @@ "dev": true }, "node_modules/path-scurry": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.9.2.tgz", - "integrity": "sha512-qSDLy2aGFPm8i4rsbHd4MNyTcrzHFsLQykrtbuGRknZZCBBVXSv2tSCDN2Cg6Rt/GFRw8GoW9y9Ecw5rIPG1sg==", + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", "dev": true, "dependencies": { - "lru-cache": "^9.1.1", - "minipass": "^5.0.0 || ^6.0.2" + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -4417,9 +4288,9 @@ } }, "node_modules/playwright-core": { - "version": "1.35.1", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.35.1.tgz", - "integrity": "sha512-pNXb6CQ7OqmGDRspEjlxE49w+4YtR6a3X6mT1hZXeJHWmsEz7SunmvZeiG/+y1yyMZdHnnn73WKYdtV1er0Xyg==", + "version": "1.37.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.37.1.tgz", + "integrity": "sha512-17EuQxlSIYCmEMwzMqusJ2ztDgJePjrbttaefgdsiqeLWidjYz9BxXaTaZWxH1J95SHGk6tjE+dwgWILJoUZfA==", "dev": true, "bin": { "playwright-core": "cli.js" @@ -4565,9 +4436,9 @@ } }, "node_modules/rc-config-loader": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/rc-config-loader/-/rc-config-loader-4.1.2.tgz", - "integrity": "sha512-qKTnVWFl9OQYKATPzdfaZIbTxcHziQl92zYSxYC6umhOqyAsoj8H8Gq/+aFjAso68sBdjTz3A7omqeAkkF1MWg==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/rc-config-loader/-/rc-config-loader-4.1.3.tgz", + "integrity": "sha512-kD7FqML7l800i6pS6pvLyIE2ncbk9Du8Q0gp/4hMPhJU6ZxApkoLcGD8ZeqgiAlfwZ6BlETq6qqe+12DUL207w==", "dev": true, "dependencies": { "debug": "^4.3.4", @@ -4604,12 +4475,12 @@ } }, "node_modules/read-package-json": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-6.0.0.tgz", - "integrity": "sha512-b/9jxWJ8EwogJPpv99ma+QwtqB7FSl3+V6UXS7Aaay8/5VwMY50oIFooY1UKXMWpfNCM6T/PoGqa5GD1g9xf9w==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-6.0.4.tgz", + "integrity": "sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw==", "dev": true, "dependencies": { - "glob": "^8.0.1", + "glob": "^10.2.2", "json-parse-even-better-errors": "^3.0.0", "normalize-package-data": "^5.0.0", "npm-normalize-package-bin": "^3.0.0" @@ -4641,34 +4512,40 @@ } }, "node_modules/read-package-json/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "version": "10.3.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.3.tgz", + "integrity": "sha512-92vPiMb/iqpmEgsOoIDvTjc50wf9CCCvMzsi6W0JLPeUKE8TWP1a73PgqSrqy7iAZxaSD1YdzU7QZR5LF51MJw==", "dev": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "foreground-child": "^3.1.0", + "jackspeak": "^2.0.3", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/cjs/src/bin.js" }, "engines": { - "node": ">=12" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/read-package-json/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/readable-stream": { @@ -4760,12 +4637,12 @@ } }, "node_modules/resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "version": "1.22.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", + "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", "dev": true, "dependencies": { - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -4993,14 +4870,15 @@ "dev": true }, "node_modules/sigstore": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-1.1.1.tgz", - "integrity": "sha512-4hR3tPP1y59YWlaoAgAWFVZ7srTjNWOrrpkQXWu05qP0BvwFYyt3K3l848+IHo+mKhkOzGcNDf7ktASXLEPC+A==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-1.8.0.tgz", + "integrity": "sha512-ogU8qtQ3VFBawRJ8wjsBEX/vIFeHuGs1fm4jZtjWQwjo8pfAt7T/rh+udlAN4+QUe0IzA8qRSc/YZ7dHP6kh+w==", "dev": true, "dependencies": { - "@sigstore/protobuf-specs": "^0.1.0", - "make-fetch-happen": "^11.0.1", - "tuf-js": "^1.0.0" + "@sigstore/bundle": "^1.0.0", + "@sigstore/protobuf-specs": "^0.2.0", + "@sigstore/tuf": "^1.0.3", + "make-fetch-happen": "^11.0.1" }, "bin": { "sigstore": "bin/sigstore.js" @@ -5009,58 +4887,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/sigstore/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/sigstore/node_modules/make-fetch-happen": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.0.3.tgz", - "integrity": "sha512-oPLh5m10lRNNZDjJ2kP8UpboUx2uFXVaVweVe/lWut4iHWcQEmfqSVJt2ihZsFI8HbpwyyocaXbCAWf0g1ukIA==", - "dev": true, - "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^4.0.0", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^10.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/sigstore/node_modules/minipass-fetch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.1.tgz", - "integrity": "sha512-t9/wowtf7DYkwz8cfMSt0rMwiyNIBXf5CKZ3S5ZMqRqMYT0oLTp0x1WorMI9WTwvaPg21r1JbFxJMum8JrLGfw==", - "dev": true, - "dependencies": { - "minipass": "^4.0.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, "node_modules/sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", @@ -5186,12 +5012,12 @@ "dev": true }, "node_modules/ssri": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.1.tgz", - "integrity": "sha512-WVy6di9DlPOeBWEjMScpNipeSX2jIZBGEn5Uuo8Q7aIuFEuDX0pw8RxcOjlD1TWP4obi24ki7m/13+nFpcbXrw==", + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.4.tgz", + "integrity": "sha512-12+IR2CB2C28MMAw0Ncqwj5QbTcs0nGIhgJzYWzDkb21vWmfNI83KS4f3Ci6GI98WreIfG7o9UXp3C0qbpA8nQ==", "dev": true, "dependencies": { - "minipass": "^4.0.0" + "minipass": "^5.0.0" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -5351,14 +5177,14 @@ } }, "node_modules/tar": { - "version": "6.1.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", - "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", + "version": "6.1.15", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.15.tgz", + "integrity": "sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==", "dev": true, "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" @@ -5410,82 +5236,31 @@ } }, "node_modules/tsconfig-paths": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", - "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", + "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", "dev": true, "dependencies": { "@types/json5": "^0.0.29", - "json5": "^1.0.1", + "json5": "^1.0.2", "minimist": "^1.2.6", "strip-bom": "^3.0.0" } }, "node_modules/tuf-js": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-1.1.1.tgz", - "integrity": "sha512-WTp382/PR96k0dI4GD5RdiRhgOU0rAC7+lnoih/5pZg3cyb3aNMqDozleEEWwyfT3+FOg7Qz9JU3n6A44tLSHw==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-1.1.7.tgz", + "integrity": "sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg==", "dev": true, "dependencies": { - "@tufjs/models": "1.0.0", - "make-fetch-happen": "^11.0.1" + "@tufjs/models": "1.0.4", + "debug": "^4.3.4", + "make-fetch-happen": "^11.1.1" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/tuf-js/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/tuf-js/node_modules/make-fetch-happen": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.0.3.tgz", - "integrity": "sha512-oPLh5m10lRNNZDjJ2kP8UpboUx2uFXVaVweVe/lWut4iHWcQEmfqSVJt2ihZsFI8HbpwyyocaXbCAWf0g1ukIA==", - "dev": true, - "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^4.0.0", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^10.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/tuf-js/node_modules/minipass-fetch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.1.tgz", - "integrity": "sha512-t9/wowtf7DYkwz8cfMSt0rMwiyNIBXf5CKZ3S5ZMqRqMYT0oLTp0x1WorMI9WTwvaPg21r1JbFxJMum8JrLGfw==", - "dev": true, - "dependencies": { - "minipass": "^4.0.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -5798,15 +5573,6 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "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, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/wrap-ansi": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", @@ -5954,6 +5720,12 @@ } }, "dependencies": { + "@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true + }, "@colors/colors": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", @@ -5971,20 +5743,20 @@ } }, "@eslint-community/regexpp": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", - "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.8.0.tgz", + "integrity": "sha512-JylOEEzDiOryeUnFbQz+oViCXS0KsvR1mvHkoMiu5+UiBvy+RYX7tzlIIIEstF/gVa2tj9AQXk3dgnxv6KxhFg==", "dev": 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==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", + "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.5.2", + "espree": "^9.6.0", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -5994,9 +5766,9 @@ } }, "@eslint/js": { - "version": "8.43.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.43.0.tgz", - "integrity": "sha512-s2UHCoiXfxMvmfzqoN+vrQ84ahUSYde9qNO1MdxmoEhyHWsfmwOpFlwYV+ePJEVc7gFnATGUi376WowX1N7tFg==", + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.48.0.tgz", + "integrity": "sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw==", "dev": true }, "@faker-js/faker": { @@ -6004,12 +5776,6 @@ "resolved": "https://registry.npmjs.org/@faker-js/faker/-/faker-8.0.2.tgz", "integrity": "sha512-Uo3pGspElQW91PCvKSIAXoEgAUlRnH29sX2/p89kg7sP1m2PzCufHINd0FhTXQf6DYGiUlVncdSPa2F9wxed2A==" }, - "@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", - "dev": true - }, "@humanwhocodes/config-array": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz", @@ -6117,14 +5883,13 @@ } }, "@npmcli/git": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-4.0.3.tgz", - "integrity": "sha512-8cXNkDIbnXPVbhXMmQ7/bklCAjtmPaXfI9aEM4iH+xSuEHINLMHhlfESvVwdqmHJRJkR48vNJTSUvoF6GRPSFA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-4.1.0.tgz", + "integrity": "sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==", "dev": true, "requires": { "@npmcli/promise-spawn": "^6.0.0", "lru-cache": "^7.4.4", - "mkdirp": "^1.0.4", "npm-pick-manifest": "^8.0.0", "proc-log": "^3.0.0", "promise-inflight": "^1.0.1", @@ -6140,9 +5905,9 @@ "dev": true }, "which": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.0.tgz", - "integrity": "sha512-nla//68K9NU6yRiwDY/Q8aU6siKlSs64aEC7+IV56QoAuyQT2ovsJcgGYGyqMOmI/CGN1BOR6mM5EN0FBO+zyQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", + "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", "dev": true, "requires": { "isexe": "^2.0.0" @@ -6160,16 +5925,6 @@ "npm-normalize-package-bin": "^3.0.0" } }, - "@npmcli/move-file": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", - "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", - "dev": true, - "requires": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - } - }, "@npmcli/node-gyp": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz", @@ -6186,9 +5941,9 @@ }, "dependencies": { "which": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.0.tgz", - "integrity": "sha512-nla//68K9NU6yRiwDY/Q8aU6siKlSs64aEC7+IV56QoAuyQT2ovsJcgGYGyqMOmI/CGN1BOR6mM5EN0FBO+zyQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", + "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", "dev": true, "requires": { "isexe": "^2.0.0" @@ -6197,9 +5952,9 @@ } }, "@npmcli/run-script": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-6.0.0.tgz", - "integrity": "sha512-ql+AbRur1TeOdl1FY+RAwGW9fcr4ZwiVKabdvm93mujGREVuVLbdkXRJDrkTXSdCjaxYydr1wlA2v67jxWG5BQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-6.0.2.tgz", + "integrity": "sha512-NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA==", "dev": true, "requires": { "@npmcli/node-gyp": "^3.0.0", @@ -6210,9 +5965,9 @@ }, "dependencies": { "which": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.0.tgz", - "integrity": "sha512-nla//68K9NU6yRiwDY/Q8aU6siKlSs64aEC7+IV56QoAuyQT2ovsJcgGYGyqMOmI/CGN1BOR6mM5EN0FBO+zyQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", + "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", "dev": true, "requires": { "isexe": "^2.0.0" @@ -6228,14 +5983,14 @@ "optional": true }, "@playwright/test": { - "version": "1.35.1", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.35.1.tgz", - "integrity": "sha512-b5YoFe6J9exsMYg0pQAobNDR85T1nLumUYgUTtKm4d21iX2L7WqKq9dW8NGJ+2vX0etZd+Y7UeuqsxDXm9+5ZA==", + "version": "1.37.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.37.1.tgz", + "integrity": "sha512-bq9zTli3vWJo8S3LwB91U0qDNQDpEXnw7knhxLM0nwDvexQAwx9tO8iKDZSqqneVq+URd/WIoz+BALMqUTgdSg==", "dev": true, "requires": { "@types/node": "*", "fsevents": "2.3.2", - "playwright-core": "1.35.1" + "playwright-core": "1.37.1" } }, "@pnpm/network.ca-file": { @@ -6257,12 +6012,31 @@ "config-chain": "^1.1.11" } }, + "@sigstore/bundle": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-1.0.0.tgz", + "integrity": "sha512-yLvrWDOh6uMOUlFCTJIZEnwOT9Xte7NPXUqVexEKGSF5XtBAuSg5du0kn3dRR0p47a4ah10Y0mNt8+uyeQXrBQ==", + "dev": true, + "requires": { + "@sigstore/protobuf-specs": "^0.2.0" + } + }, "@sigstore/protobuf-specs": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.1.0.tgz", - "integrity": "sha512-a31EnjuIDSX8IXBUib3cYLDRlPMU36AWX4xS8ysLaNu4ZzUesDiPt83pgrW2X1YLMe5L2HbDyaKK5BrL4cNKaQ==", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.2.0.tgz", + "integrity": "sha512-8ZhZKAVfXjIspDWwm3D3Kvj0ddbJ0HqDZ/pOs5cx88HpT8mVsotFrg7H1UMnXOuDHz6Zykwxn4mxG3QLuN+RUg==", "dev": true }, + "@sigstore/tuf": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-1.0.3.tgz", + "integrity": "sha512-2bRovzs0nJZFlCN3rXirE4gwxCn97JNjMmwpecqlbgV9WcxX7WRuIrgzx/X7Ib7MYRbyUTpBYE0s2x6AmZXnlg==", + "dev": true, + "requires": { + "@sigstore/protobuf-specs": "^0.2.0", + "tuf-js": "^1.1.7" + } + }, "@sindresorhus/is": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.3.0.tgz", @@ -6284,13 +6058,20 @@ "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", "dev": true }, - "@tufjs/models": { + "@tufjs/canonical-json": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-1.0.0.tgz", - "integrity": "sha512-RRMu4uMxWnZlxaIBxahSb2IssFZiu188sndesZflWOe1cA/qUqtemSIoBWbuVKPvvdktapImWNnKpBcc+VrCQw==", + "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-1.0.0.tgz", + "integrity": "sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==", + "dev": true + }, + "@tufjs/models": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-1.0.4.tgz", + "integrity": "sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==", "dev": true, "requires": { - "minimatch": "^6.1.0" + "@tufjs/canonical-json": "1.0.0", + "minimatch": "^9.0.0" }, "dependencies": { "brace-expansion": { @@ -6303,9 +6084,9 @@ } }, "minimatch": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-6.2.0.tgz", - "integrity": "sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -6338,9 +6119,9 @@ "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==", + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", "dev": true }, "acorn-jsx": { @@ -6467,6 +6248,19 @@ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true }, + "array.prototype.findlastindex": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.2.tgz", + "integrity": "sha512-tb5thFFlUcp7NdNF6/MpDk/1r/4awWG1FIz3YqDf+/zJSTezBb+/5WViH41obXULHVpDzoiCLpJ/ZO9YbJMsdw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.1.3" + } + }, "array.prototype.flat": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", @@ -6600,21 +6394,20 @@ } }, "cacache": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.0.4.tgz", - "integrity": "sha512-Z/nL3gU+zTUjz5pCA5vVjYM8pmaw2kxM7JEiE0fv3w77Wj+sFbi70CrBruUWH0uNcEdvLDixFpgA2JM4F4DBjA==", + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.1.3.tgz", + "integrity": "sha512-jAdjGxmPxZh0IipMdR7fK/4sDSrHMLUV0+GvVUsjwyGNKHsh79kW/otg+GkbXwl6Uzvy9wsvHOX4nUoWldeZMg==", "dev": true, "requires": { "@npmcli/fs": "^3.1.0", "fs-minipass": "^3.0.0", - "glob": "^8.0.1", + "glob": "^10.2.2", "lru-cache": "^7.7.1", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-collect": "^1.0.2", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", "ssri": "^10.0.0", "tar": "^6.1.11", "unique-filename": "^3.0.0" @@ -6630,16 +6423,16 @@ } }, "glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "version": "10.3.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.3.tgz", + "integrity": "sha512-92vPiMb/iqpmEgsOoIDvTjc50wf9CCCvMzsi6W0JLPeUKE8TWP1a73PgqSrqy7iAZxaSD1YdzU7QZR5LF51MJw==", "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "foreground-child": "^3.1.0", + "jackspeak": "^2.0.3", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" } }, "lru-cache": { @@ -6649,9 +6442,9 @@ "dev": true }, "minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -7065,27 +6858,27 @@ "dev": true }, "eslint": { - "version": "8.43.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.43.0.tgz", - "integrity": "sha512-aaCpf2JqqKesMFGgmRPessmVKjcGXqdlAYLLC3THM8t5nBRZRQ+st5WM/hoJXkdioEXLLbXgclUpM0TXo5HX5Q==", + "version": "8.47.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.47.0.tgz", + "integrity": "sha512-spUQWrdPt+pRVP1TTJLmfRNJJHHZryFmptzcafwSvHsceV81djHOdnEeDmkdotZyLNjDhrOasNK8nikkoG1O8Q==", "dev": 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", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.2", + "@eslint/js": "^8.47.0", "@humanwhocodes/config-array": "^0.11.10", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", + "ajv": "^6.12.4", "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", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -7095,7 +6888,6 @@ "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", @@ -7105,9 +6897,8 @@ "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.1", + "optionator": "^0.9.3", "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" } }, @@ -7141,9 +6932,9 @@ } }, "eslint-module-utils": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", - "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", "dev": true, "requires": { "debug": "^3.2.7" @@ -7171,26 +6962,28 @@ } }, "eslint-plugin-import": { - "version": "2.27.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", - "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==", + "version": "2.28.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz", + "integrity": "sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==", "dev": true, "requires": { "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-import-resolver-node": "^0.3.7", - "eslint-module-utils": "^2.7.4", + "eslint-module-utils": "^2.8.0", "has": "^1.0.3", - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "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.1", - "semver": "^6.3.0", - "tsconfig-paths": "^3.14.1" + "semver": "^6.3.1", + "tsconfig-paths": "^3.14.2" }, "dependencies": { "debug": { @@ -7212,9 +7005,9 @@ } }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true } } @@ -7290,9 +7083,9 @@ "requires": {} }, "eslint-scope": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", - "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, "requires": { "esrecurse": "^4.3.0", @@ -7300,18 +7093,18 @@ } }, "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==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true }, "espree": { - "version": "9.5.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz", - "integrity": "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, "requires": { - "acorn": "^8.8.0", + "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.4.1" } @@ -7346,6 +7139,12 @@ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true }, + "exponential-backoff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", + "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==", + "dev": true + }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -7487,12 +7286,12 @@ "dev": true }, "fs-minipass": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.1.tgz", - "integrity": "sha512-MhaJDcFRTuLidHrIttu0RDGyyXs/IYHVmlcxfLAEFIWjc1vdLAkdwT7Ace2u7DbitWC0toKMl5eJZRYNVreIMw==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.2.tgz", + "integrity": "sha512-2GAfyfoaCDRrM6jaOS3UsBts8yJ55VioXdWcOL7dK9zdAuKT71+WBA4ifnNYqVjYv+4SsPxjK0JT4yIIn4cA/g==", "dev": true, "requires": { - "minipass": "^4.0.0" + "minipass": "^5.0.0" } }, "fs.realpath": { @@ -7549,13 +7348,14 @@ } }, "get-intrinsic": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", - "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", "dev": true, "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", + "has-proto": "^1.0.1", "has-symbols": "^1.0.3" } }, @@ -7622,9 +7422,9 @@ } }, "globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "version": "13.21.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.21.0.tgz", + "integrity": "sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -7836,12 +7636,12 @@ "dev": true }, "ignore-walk": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.1.tgz", - "integrity": "sha512-/c8MxUAqpRccq+LyDOecwF+9KqajueJHh8fz7g3YqjMZt+NSfJzx05zrKiXwa2sKwFCzaiZ5qUVfRj0pmxixEA==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.3.tgz", + "integrity": "sha512-C7FfFoTA+bI10qfeydT8aZbvr91vAEU+2W5BZUlzPec47oNb07SsOfwYrtxuvOYdUApPP/Qlh4DtAO51Ekk2QA==", "dev": true, "requires": { - "minimatch": "^6.1.6" + "minimatch": "^9.0.0" }, "dependencies": { "brace-expansion": { @@ -7854,9 +7654,9 @@ } }, "minimatch": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-6.2.0.tgz", - "integrity": "sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -7892,12 +7692,6 @@ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true }, - "infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true - }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -7915,9 +7709,9 @@ "dev": true }, "ini": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.0.tgz", - "integrity": "sha512-HLR38RSF2iulAzc3I/sma4CoYxQP844rPYCNfzGDOHqa/YqVlwuuZgBx6M50/X8dKgzk0cm1qRg3+47mK2N+cQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz", + "integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==", "dev": true }, "internal-slot": { @@ -7983,9 +7777,9 @@ } }, "is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", "dev": true, "requires": { "has": "^1.0.3" @@ -8307,151 +8101,38 @@ } }, "luxon": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.3.0.tgz", - "integrity": "sha512-An0UCfG/rSiqtAIiBPO0Y9/zAnHUZxAMiCpTd5h2smgsj7GGmcenvrvww2cqNA8/4A5ZrD1gJpHN2mIHZQF+Mg==" + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.4.0.tgz", + "integrity": "sha512-7eDo4Pt7aGhoCheGFIuq4Xa2fJm4ZpmldpGhjTYBNUYNCN6TIEP6v7chwwwt3KRp7YR+rghbfvjyo3V5y9hgBw==" }, "make-fetch-happen": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", - "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", + "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", "dev": true, "requires": { "agentkeepalive": "^4.2.1", - "cacache": "^16.1.0", - "http-cache-semantics": "^4.1.0", + "cacache": "^17.0.0", + "http-cache-semantics": "^4.1.1", "http-proxy-agent": "^5.0.0", "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", + "minipass": "^5.0.0", + "minipass-fetch": "^3.0.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "negotiator": "^0.6.3", "promise-retry": "^2.0.1", "socks-proxy-agent": "^7.0.0", - "ssri": "^9.0.0" + "ssri": "^10.0.0" }, "dependencies": { - "@npmcli/fs": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", - "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", - "dev": true, - "requires": { - "@gar/promisify": "^1.1.3", - "semver": "^7.3.5" - } - }, - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "cacache": { - "version": "16.1.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", - "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", - "dev": true, - "requires": { - "@npmcli/fs": "^2.1.0", - "@npmcli/move-file": "^2.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "glob": "^8.0.1", - "infer-owner": "^1.0.4", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", - "tar": "^6.1.11", - "unique-filename": "^2.0.0" - } - }, - "fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - } - }, "lru-cache": { "version": "7.18.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true - }, - "minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "ssri": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", - "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", - "dev": true, - "requires": { - "minipass": "^3.1.1" - } - }, - "unique-filename": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", - "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", - "dev": true, - "requires": { - "unique-slug": "^3.0.0" - } - }, - "unique-slug": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", - "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4" - } } } }, @@ -8493,9 +8174,9 @@ "dev": true }, "minipass": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.5.tgz", - "integrity": "sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "dev": true }, "minipass-collect": { @@ -8519,26 +8200,15 @@ } }, "minipass-fetch": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", - "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.3.tgz", + "integrity": "sha512-n5ITsTkDqYkYJZjcRWzZt9qnZKCT7nKCosJhHoj7S7zD+BP4jVbWs+odsniw5TA3E0sLomhTKOKjF86wf11PuQ==", "dev": true, "requires": { "encoding": "^0.1.13", - "minipass": "^3.1.6", + "minipass": "^5.0.0", "minipass-sized": "^1.0.3", "minizlib": "^2.1.2" - }, - "dependencies": { - "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - } } }, "minipass-flush": { @@ -8667,15 +8337,16 @@ "dev": true }, "node-gyp": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.3.1.tgz", - "integrity": "sha512-4Q16ZCqq3g8awk6UplT7AuxQ35XN4R/yf/+wSAwcBUAjg7l58RTactWaP8fIDTi0FzI7YcVLujwExakZlfWkXg==", + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.4.0.tgz", + "integrity": "sha512-dMXsYP6gc9rRbejLXmTbVRYjAHw7ppswsKyMxuxJxxOHzluIO1rGp9TOQgjFJ+2MCqcOcQTOPB/8Xwhr+7s4Eg==", "dev": true, "requires": { "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", "glob": "^7.1.4", "graceful-fs": "^4.2.6", - "make-fetch-happen": "^10.0.3", + "make-fetch-happen": "^11.0.3", "nopt": "^6.0.0", "npmlog": "^6.0.0", "rimraf": "^3.0.2", @@ -8738,12 +8409,12 @@ } }, "npm-check-updates": { - "version": "16.10.13", - "resolved": "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-16.10.13.tgz", - "integrity": "sha512-ZsWrtHnaMkcxAaCtDFEr8i7jgM0Bz2AYsnsJlmxISgltG8ie43bWC6G9icxFKfYSLeJJtcj/Yw1Mq5f8GL2F3g==", + "version": "16.10.16", + "resolved": "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-16.10.16.tgz", + "integrity": "sha512-d8mNYce/l8o5RHPE5ZUp2P1zj9poI7KWQCh5AsTIP3EhicONEhc63mLQQv4/nkCsMb3wCrikx6YOo4BOwN4+1w==", "dev": true, "requires": { - "chalk": "^5.2.0", + "chalk": "^5.3.0", "cli-table3": "^0.6.3", "commander": "^10.0.0", "fast-memoize": "^2.5.2", @@ -8752,25 +8423,25 @@ "get-stdin": "^8.0.0", "globby": "^11.0.4", "hosted-git-info": "^5.1.0", - "ini": "^4.0.0", + "ini": "^4.1.1", "js-yaml": "^4.1.0", "json-parse-helpfulerror": "^1.0.3", "jsonlines": "^0.1.1", "lodash": "^4.17.21", - "minimatch": "^9.0.0", + "minimatch": "^9.0.3", "p-map": "^4.0.0", - "pacote": "15.1.1", + "pacote": "15.2.0", "parse-github-url": "^1.0.2", "progress": "^2.0.3", "prompts-ncu": "^3.0.0", - "rc-config-loader": "^4.1.2", + "rc-config-loader": "^4.1.3", "remote-git-tags": "^3.0.0", - "rimraf": "^5.0.0", - "semver": "^7.4.0", + "rimraf": "^5.0.1", + "semver": "^7.5.3", "semver-utils": "^1.1.4", "source-map-support": "^0.5.21", "spawn-please": "^2.0.1", - "strip-json-comments": "^5.0.0", + "strip-json-comments": "^5.0.1", "untildify": "^4.0.0", "update-notifier": "^6.0.2" }, @@ -8785,9 +8456,9 @@ } }, "chalk": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", - "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", "dev": true }, "glob": { @@ -8804,9 +8475,9 @@ } }, "minimatch": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz", - "integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -8828,26 +8499,26 @@ } }, "strip-json-comments": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-5.0.0.tgz", - "integrity": "sha512-V1LGY4UUo0jgwC+ELQ2BNWfPa17TIuwBLg+j1AA/9RPzKINl1lhxVEu2r+ZTTO8aetIsUzE5Qj6LMSBkoGYKKw==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-5.0.1.tgz", + "integrity": "sha512-0fk9zBqO67Nq5M/m45qHCJxylV/DhBlIOVExqgOMiCCrzrhU6tCibRXNqE3jwJLftzE9SNuZtYbpzcO+i9FiKw==", "dev": true } } }, "npm-install-checks": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.0.0.tgz", - "integrity": "sha512-SBU9oFglRVZnfElwAtF14NivyulDqF1VKqqwNsFW9HDcbHMAPHpRSsVFgKuwFGq/hVvWZExz62Th0kvxn/XE7Q==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.1.1.tgz", + "integrity": "sha512-dH3GmQL4vsPtld59cOn8uY0iOqRmqKvV+DLGwNXV/Q7MDgD2QfOADWd/mFXcIE5LVhYYGjA3baz6W9JneqnuCw==", "dev": true, "requires": { "semver": "^7.1.1" } }, "npm-normalize-package-bin": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.0.tgz", - "integrity": "sha512-g+DPQSkusnk7HYXr75NtzkIP4+N81i3RPsGFidF3DzHd9MT9wWngmqoeg/fnHFz5MNdtG4w03s+QnhewSLTT2Q==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", + "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", "dev": true }, "npm-package-arg": { @@ -8889,9 +8560,9 @@ } }, "npm-pick-manifest": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-8.0.1.tgz", - "integrity": "sha512-mRtvlBjTsJvfCCdmPtiu2bdlx8d/KXtF7yNXNWe7G0Z36qWA9Ny5zXsI2PfBZEv7SXgoxTmNaTzGSbbzDZChoA==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-8.0.2.tgz", + "integrity": "sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg==", "dev": true, "requires": { "npm-install-checks": "^6.0.0", @@ -8901,61 +8572,18 @@ } }, "npm-registry-fetch": { - "version": "14.0.3", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-14.0.3.tgz", - "integrity": "sha512-YaeRbVNpnWvsGOjX2wk5s85XJ7l1qQBGAp724h8e2CZFFhMSuw9enom7K1mWVUtvXO1uUSFIAPofQK0pPN0ZcA==", + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-14.0.5.tgz", + "integrity": "sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==", "dev": true, "requires": { "make-fetch-happen": "^11.0.0", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-fetch": "^3.0.0", "minipass-json-stream": "^1.0.1", "minizlib": "^2.1.2", "npm-package-arg": "^10.0.0", "proc-log": "^3.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true - }, - "make-fetch-happen": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.0.3.tgz", - "integrity": "sha512-oPLh5m10lRNNZDjJ2kP8UpboUx2uFXVaVweVe/lWut4iHWcQEmfqSVJt2ihZsFI8HbpwyyocaXbCAWf0g1ukIA==", - "dev": true, - "requires": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^4.0.0", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^10.0.0" - } - }, - "minipass-fetch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.1.tgz", - "integrity": "sha512-t9/wowtf7DYkwz8cfMSt0rMwiyNIBXf5CKZ3S5ZMqRqMYT0oLTp0x1WorMI9WTwvaPg21r1JbFxJMum8JrLGfw==", - "dev": true, - "requires": { - "encoding": "^0.1.13", - "minipass": "^4.0.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - } - } } }, "npmlog": { @@ -8994,6 +8622,29 @@ "object-keys": "^1.1.1" } }, + "object.fromentries": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", + "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "object.groupby": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.0.tgz", + "integrity": "sha512-70MWG6NfRH9GnbZOikuhPPYzpUpof9iW2J9E4dW7FXTqPNb6rllE6u39SKwwiNh8lCwX3DDb5OgcKGiEBrTTyw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.21.2", + "get-intrinsic": "^1.2.1" + } + }, "object.values": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", @@ -9015,17 +8666,17 @@ } }, "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", "dev": true, "requires": { + "@aashutoshrathi/word-wrap": "^1.2.3", "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" + "type-check": "^0.4.0" } }, "p-cancelable": { @@ -9074,9 +8725,9 @@ } }, "pacote": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-15.1.1.tgz", - "integrity": "sha512-eeqEe77QrA6auZxNHIp+1TzHQ0HBKf5V6c8zcaYZ134EJe1lCi+fjXATkNiEEfbG+e50nu02GLvUtmZcGOYabQ==", + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-15.2.0.tgz", + "integrity": "sha512-rJVZeIwHTUta23sIZgEIM62WYwbmGbThdbnkt81ravBplQv+HjyroqnLRNH2+sLJHcGZmLRmhPwACqhfTcOmnA==", "dev": true, "requires": { "@npmcli/git": "^4.0.0", @@ -9085,7 +8736,7 @@ "@npmcli/run-script": "^6.0.0", "cacache": "^17.0.0", "fs-minipass": "^3.0.0", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "npm-package-arg": "^10.0.0", "npm-packlist": "^7.0.0", "npm-pick-manifest": "^8.0.0", @@ -9094,7 +8745,7 @@ "promise-retry": "^2.0.1", "read-package-json": "^6.0.0", "read-package-json-fast": "^3.0.0", - "sigstore": "^1.0.0", + "sigstore": "^1.3.0", "ssri": "^10.0.0", "tar": "^6.1.11" } @@ -9139,13 +8790,13 @@ "dev": true }, "path-scurry": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.9.2.tgz", - "integrity": "sha512-qSDLy2aGFPm8i4rsbHd4MNyTcrzHFsLQykrtbuGRknZZCBBVXSv2tSCDN2Cg6Rt/GFRw8GoW9y9Ecw5rIPG1sg==", + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", "dev": true, "requires": { - "lru-cache": "^9.1.1", - "minipass": "^5.0.0 || ^6.0.2" + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "dependencies": { "lru-cache": { @@ -9175,9 +8826,9 @@ "dev": true }, "playwright-core": { - "version": "1.35.1", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.35.1.tgz", - "integrity": "sha512-pNXb6CQ7OqmGDRspEjlxE49w+4YtR6a3X6mT1hZXeJHWmsEz7SunmvZeiG/+y1yyMZdHnnn73WKYdtV1er0Xyg==", + "version": "1.37.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.37.1.tgz", + "integrity": "sha512-17EuQxlSIYCmEMwzMqusJ2ztDgJePjrbttaefgdsiqeLWidjYz9BxXaTaZWxH1J95SHGk6tjE+dwgWILJoUZfA==", "dev": true }, "prelude-ls": { @@ -9284,9 +8935,9 @@ } }, "rc-config-loader": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/rc-config-loader/-/rc-config-loader-4.1.2.tgz", - "integrity": "sha512-qKTnVWFl9OQYKATPzdfaZIbTxcHziQl92zYSxYC6umhOqyAsoj8H8Gq/+aFjAso68sBdjTz3A7omqeAkkF1MWg==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/rc-config-loader/-/rc-config-loader-4.1.3.tgz", + "integrity": "sha512-kD7FqML7l800i6pS6pvLyIE2ncbk9Du8Q0gp/4hMPhJU6ZxApkoLcGD8ZeqgiAlfwZ6BlETq6qqe+12DUL207w==", "dev": true, "requires": { "debug": "^4.3.4", @@ -9304,12 +8955,12 @@ } }, "read-package-json": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-6.0.0.tgz", - "integrity": "sha512-b/9jxWJ8EwogJPpv99ma+QwtqB7FSl3+V6UXS7Aaay8/5VwMY50oIFooY1UKXMWpfNCM6T/PoGqa5GD1g9xf9w==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-6.0.4.tgz", + "integrity": "sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw==", "dev": true, "requires": { - "glob": "^8.0.1", + "glob": "^10.2.2", "json-parse-even-better-errors": "^3.0.0", "normalize-package-data": "^5.0.0", "npm-normalize-package-bin": "^3.0.0" @@ -9325,22 +8976,22 @@ } }, "glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "version": "10.3.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.3.tgz", + "integrity": "sha512-92vPiMb/iqpmEgsOoIDvTjc50wf9CCCvMzsi6W0JLPeUKE8TWP1a73PgqSrqy7iAZxaSD1YdzU7QZR5LF51MJw==", "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "foreground-child": "^3.1.0", + "jackspeak": "^2.0.3", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" } }, "minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -9417,12 +9068,12 @@ "dev": true }, "resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "version": "1.22.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", + "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", "dev": true, "requires": { - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -9570,57 +9221,15 @@ "dev": true }, "sigstore": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-1.1.1.tgz", - "integrity": "sha512-4hR3tPP1y59YWlaoAgAWFVZ7srTjNWOrrpkQXWu05qP0BvwFYyt3K3l848+IHo+mKhkOzGcNDf7ktASXLEPC+A==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-1.8.0.tgz", + "integrity": "sha512-ogU8qtQ3VFBawRJ8wjsBEX/vIFeHuGs1fm4jZtjWQwjo8pfAt7T/rh+udlAN4+QUe0IzA8qRSc/YZ7dHP6kh+w==", "dev": true, "requires": { - "@sigstore/protobuf-specs": "^0.1.0", - "make-fetch-happen": "^11.0.1", - "tuf-js": "^1.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true - }, - "make-fetch-happen": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.0.3.tgz", - "integrity": "sha512-oPLh5m10lRNNZDjJ2kP8UpboUx2uFXVaVweVe/lWut4iHWcQEmfqSVJt2ihZsFI8HbpwyyocaXbCAWf0g1ukIA==", - "dev": true, - "requires": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^4.0.0", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^10.0.0" - } - }, - "minipass-fetch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.1.tgz", - "integrity": "sha512-t9/wowtf7DYkwz8cfMSt0rMwiyNIBXf5CKZ3S5ZMqRqMYT0oLTp0x1WorMI9WTwvaPg21r1JbFxJMum8JrLGfw==", - "dev": true, - "requires": { - "encoding": "^0.1.13", - "minipass": "^4.0.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - } - } + "@sigstore/bundle": "^1.0.0", + "@sigstore/protobuf-specs": "^0.2.0", + "@sigstore/tuf": "^1.0.3", + "make-fetch-happen": "^11.0.1" } }, "sisteransi": { @@ -9725,12 +9334,12 @@ "dev": true }, "ssri": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.1.tgz", - "integrity": "sha512-WVy6di9DlPOeBWEjMScpNipeSX2jIZBGEn5Uuo8Q7aIuFEuDX0pw8RxcOjlD1TWP4obi24ki7m/13+nFpcbXrw==", + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.4.tgz", + "integrity": "sha512-12+IR2CB2C28MMAw0Ncqwj5QbTcs0nGIhgJzYWzDkb21vWmfNI83KS4f3Ci6GI98WreIfG7o9UXp3C0qbpA8nQ==", "dev": true, "requires": { - "minipass": "^4.0.0" + "minipass": "^5.0.0" } }, "string_decoder": { @@ -9843,14 +9452,14 @@ "dev": true }, "tar": { - "version": "6.1.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", - "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", + "version": "6.1.15", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.15.tgz", + "integrity": "sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==", "dev": true, "requires": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" @@ -9894,68 +9503,26 @@ } }, "tsconfig-paths": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", - "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", + "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", "dev": true, "requires": { "@types/json5": "^0.0.29", - "json5": "^1.0.1", + "json5": "^1.0.2", "minimist": "^1.2.6", "strip-bom": "^3.0.0" } }, "tuf-js": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-1.1.1.tgz", - "integrity": "sha512-WTp382/PR96k0dI4GD5RdiRhgOU0rAC7+lnoih/5pZg3cyb3aNMqDozleEEWwyfT3+FOg7Qz9JU3n6A44tLSHw==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-1.1.7.tgz", + "integrity": "sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg==", "dev": true, "requires": { - "@tufjs/models": "1.0.0", - "make-fetch-happen": "^11.0.1" - }, - "dependencies": { - "lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true - }, - "make-fetch-happen": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.0.3.tgz", - "integrity": "sha512-oPLh5m10lRNNZDjJ2kP8UpboUx2uFXVaVweVe/lWut4iHWcQEmfqSVJt2ihZsFI8HbpwyyocaXbCAWf0g1ukIA==", - "dev": true, - "requires": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^4.0.0", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^10.0.0" - } - }, - "minipass-fetch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.1.tgz", - "integrity": "sha512-t9/wowtf7DYkwz8cfMSt0rMwiyNIBXf5CKZ3S5ZMqRqMYT0oLTp0x1WorMI9WTwvaPg21r1JbFxJMum8JrLGfw==", - "dev": true, - "requires": { - "encoding": "^0.1.13", - "minipass": "^4.0.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - } - } + "@tufjs/models": "1.0.4", + "debug": "^4.3.4", + "make-fetch-happen": "^11.1.1" } }, "type-check": { @@ -10190,12 +9757,6 @@ } } }, - "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 - }, "wrap-ansi": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", diff --git a/playwright/package.json b/playwright/package.json index 73ee159a4..ae2a3cea3 100644 --- a/playwright/package.json +++ b/playwright/package.json @@ -7,20 +7,20 @@ "test:debug": "playwright test --debug" }, "devDependencies": { - "@playwright/test": "1.35.1", - "eslint": "8.43.0", + "@playwright/test": "1.37.1", + "eslint": "8.47.0", "eslint-config-standard": "17.1.0", - "eslint-plugin-import": "2.27.5", + "eslint-plugin-import": "2.28.1", "eslint-plugin-n": "16.0.1", "eslint-plugin-node": "11.1.0", "eslint-plugin-promise": "6.1.1", - "npm-check-updates": "16.10.13" + "npm-check-updates": "16.10.16" }, "dependencies": { "@faker-js/faker": "8.0.2", "lodash": "4.17.21", "lodash-es": "4.17.21", - "luxon": "3.3.0", + "luxon": "3.4.0", "ms": "2.1.3", "seedrandom": "3.0.5", "slugify": "1.6.6" diff --git a/yarn.lock b/yarn.lock index 6180bdaf1..34cec4da4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5,6 +5,13 @@ __metadata: version: 6 cacheKey: 8 +"@aashutoshrathi/word-wrap@npm:^1.2.3": + version: 1.2.6 + resolution: "@aashutoshrathi/word-wrap@npm:1.2.6" + checksum: ada901b9e7c680d190f1d012c84217ce0063d8f5c5a7725bb91ec3c5ed99bb7572680eb2d2938a531ccbaec39a95422fcd8a6b4a13110c7d98dd75402f66a0cd + languageName: node + linkType: hard + "@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.0, @babel/code-frame@npm:^7.16.0": version: 7.16.7 resolution: "@babel/code-frame@npm:7.16.7" @@ -92,161 +99,161 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm64@npm:0.17.13": - version: 0.17.13 - resolution: "@esbuild/android-arm64@npm:0.17.13" +"@esbuild/android-arm64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/android-arm64@npm:0.18.20" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@esbuild/android-arm@npm:0.17.13": - version: 0.17.13 - resolution: "@esbuild/android-arm@npm:0.17.13" +"@esbuild/android-arm@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/android-arm@npm:0.18.20" conditions: os=android & cpu=arm languageName: node linkType: hard -"@esbuild/android-x64@npm:0.17.13": - version: 0.17.13 - resolution: "@esbuild/android-x64@npm:0.17.13" +"@esbuild/android-x64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/android-x64@npm:0.18.20" conditions: os=android & cpu=x64 languageName: node linkType: hard -"@esbuild/darwin-arm64@npm:0.17.13": - version: 0.17.13 - resolution: "@esbuild/darwin-arm64@npm:0.17.13" +"@esbuild/darwin-arm64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/darwin-arm64@npm:0.18.20" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@esbuild/darwin-x64@npm:0.17.13": - version: 0.17.13 - resolution: "@esbuild/darwin-x64@npm:0.17.13" +"@esbuild/darwin-x64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/darwin-x64@npm:0.18.20" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@esbuild/freebsd-arm64@npm:0.17.13": - version: 0.17.13 - resolution: "@esbuild/freebsd-arm64@npm:0.17.13" +"@esbuild/freebsd-arm64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/freebsd-arm64@npm:0.18.20" conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard -"@esbuild/freebsd-x64@npm:0.17.13": - version: 0.17.13 - resolution: "@esbuild/freebsd-x64@npm:0.17.13" +"@esbuild/freebsd-x64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/freebsd-x64@npm:0.18.20" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@esbuild/linux-arm64@npm:0.17.13": - version: 0.17.13 - resolution: "@esbuild/linux-arm64@npm:0.17.13" +"@esbuild/linux-arm64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/linux-arm64@npm:0.18.20" conditions: os=linux & cpu=arm64 languageName: node linkType: hard -"@esbuild/linux-arm@npm:0.17.13": - version: 0.17.13 - resolution: "@esbuild/linux-arm@npm:0.17.13" +"@esbuild/linux-arm@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/linux-arm@npm:0.18.20" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@esbuild/linux-ia32@npm:0.17.13": - version: 0.17.13 - resolution: "@esbuild/linux-ia32@npm:0.17.13" +"@esbuild/linux-ia32@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/linux-ia32@npm:0.18.20" conditions: os=linux & cpu=ia32 languageName: node linkType: hard -"@esbuild/linux-loong64@npm:0.17.13": - version: 0.17.13 - resolution: "@esbuild/linux-loong64@npm:0.17.13" +"@esbuild/linux-loong64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/linux-loong64@npm:0.18.20" conditions: os=linux & cpu=loong64 languageName: node linkType: hard -"@esbuild/linux-mips64el@npm:0.17.13": - version: 0.17.13 - resolution: "@esbuild/linux-mips64el@npm:0.17.13" +"@esbuild/linux-mips64el@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/linux-mips64el@npm:0.18.20" conditions: os=linux & cpu=mips64el languageName: node linkType: hard -"@esbuild/linux-ppc64@npm:0.17.13": - version: 0.17.13 - resolution: "@esbuild/linux-ppc64@npm:0.17.13" +"@esbuild/linux-ppc64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/linux-ppc64@npm:0.18.20" conditions: os=linux & cpu=ppc64 languageName: node linkType: hard -"@esbuild/linux-riscv64@npm:0.17.13": - version: 0.17.13 - resolution: "@esbuild/linux-riscv64@npm:0.17.13" +"@esbuild/linux-riscv64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/linux-riscv64@npm:0.18.20" conditions: os=linux & cpu=riscv64 languageName: node linkType: hard -"@esbuild/linux-s390x@npm:0.17.13": - version: 0.17.13 - resolution: "@esbuild/linux-s390x@npm:0.17.13" +"@esbuild/linux-s390x@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/linux-s390x@npm:0.18.20" conditions: os=linux & cpu=s390x languageName: node linkType: hard -"@esbuild/linux-x64@npm:0.17.13": - version: 0.17.13 - resolution: "@esbuild/linux-x64@npm:0.17.13" +"@esbuild/linux-x64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/linux-x64@npm:0.18.20" conditions: os=linux & cpu=x64 languageName: node linkType: hard -"@esbuild/netbsd-x64@npm:0.17.13": - version: 0.17.13 - resolution: "@esbuild/netbsd-x64@npm:0.17.13" +"@esbuild/netbsd-x64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/netbsd-x64@npm:0.18.20" conditions: os=netbsd & cpu=x64 languageName: node linkType: hard -"@esbuild/openbsd-x64@npm:0.17.13": - version: 0.17.13 - resolution: "@esbuild/openbsd-x64@npm:0.17.13" +"@esbuild/openbsd-x64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/openbsd-x64@npm:0.18.20" conditions: os=openbsd & cpu=x64 languageName: node linkType: hard -"@esbuild/sunos-x64@npm:0.17.13": - version: 0.17.13 - resolution: "@esbuild/sunos-x64@npm:0.17.13" +"@esbuild/sunos-x64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/sunos-x64@npm:0.18.20" conditions: os=sunos & cpu=x64 languageName: node linkType: hard -"@esbuild/win32-arm64@npm:0.17.13": - version: 0.17.13 - resolution: "@esbuild/win32-arm64@npm:0.17.13" +"@esbuild/win32-arm64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/win32-arm64@npm:0.18.20" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@esbuild/win32-ia32@npm:0.17.13": - version: 0.17.13 - resolution: "@esbuild/win32-ia32@npm:0.17.13" +"@esbuild/win32-ia32@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/win32-ia32@npm:0.18.20" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@esbuild/win32-x64@npm:0.17.13": - version: 0.17.13 - resolution: "@esbuild/win32-x64@npm:0.17.13" +"@esbuild/win32-x64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/win32-x64@npm:0.18.20" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@eslint-community/eslint-utils@npm:^4.1.2, @eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.3.0, @eslint-community/eslint-utils@npm:^4.4.0": +"@eslint-community/eslint-utils@npm:^4.1.2, @eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": version: 4.4.0 resolution: "@eslint-community/eslint-utils@npm:4.4.0" dependencies: @@ -257,13 +264,6 @@ __metadata: languageName: node linkType: hard -"@eslint-community/regexpp@npm:^4.4.0": - version: 4.4.1 - resolution: "@eslint-community/regexpp@npm:4.4.1" - checksum: db97d8d08e784147b55ab0dda5892503c1a0eebad94d1c4646d89a94f02ca70b25f05d8e021fc05a075e7eb312e03e21f63d84f0b327719f8cf3bb64e66917cb - languageName: node - linkType: hard - "@eslint-community/regexpp@npm:^4.5.0": version: 4.5.1 resolution: "@eslint-community/regexpp@npm:4.5.1" @@ -271,27 +271,34 @@ __metadata: languageName: node linkType: hard -"@eslint/eslintrc@npm:^2.0.3": - version: 2.0.3 - resolution: "@eslint/eslintrc@npm:2.0.3" +"@eslint-community/regexpp@npm:^4.6.1": + version: 4.8.0 + resolution: "@eslint-community/regexpp@npm:4.8.0" + checksum: 601e6d033d556e98e8c929905bef335f20d7389762812df4d0f709d9b4d2631610dda975fb272e23b5b68e24a163b3851b114c8080a0a19fb4c141a1eff6305b + languageName: node + linkType: hard + +"@eslint/eslintrc@npm:^2.1.2": + version: 2.1.2 + resolution: "@eslint/eslintrc@npm:2.1.2" dependencies: ajv: ^6.12.4 debug: ^4.3.2 - espree: ^9.5.2 + espree: ^9.6.0 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 - checksum: ddc51f25f8524d8231db9c9bf03177e503d941a332e8d5ce3b10b09241be4d5584a378a529a27a527586bfbccf3031ae539eb891352033c340b012b4d0c81d92 + checksum: bc742a1e3b361f06fedb4afb6bf32cbd27171292ef7924f61c62f2aed73048367bcc7ac68f98c06d4245cd3fabc43270f844e3c1699936d4734b3ac5398814a7 languageName: node linkType: hard -"@eslint/js@npm:8.43.0": - version: 8.43.0 - resolution: "@eslint/js@npm:8.43.0" - checksum: 580487a09c82ac169744d36e4af77bc4f582c9a37749d1e9481eb93626c8f3991b2390c6e4e69e5642e3b6e870912b839229a0e23594fae348156ea5a8ed7e2e +"@eslint/js@npm:^8.47.0": + version: 8.48.0 + resolution: "@eslint/js@npm:8.48.0" + checksum: b2755f9c0ee810c886eba3c50dcacb184ba5a5cd1cbc01988ee506ad7340653cae0bd55f1d95c64b56dfc6d25c2caa7825335ffd2c50165bae9996fe0f396851 languageName: node linkType: hard @@ -739,17 +746,17 @@ __metadata: languageName: node linkType: hard -"@parcel/bundler-default@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/bundler-default@npm:2.9.2" +"@parcel/bundler-default@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/bundler-default@npm:2.9.3" dependencies: - "@parcel/diagnostic": 2.9.2 - "@parcel/graph": 2.9.2 - "@parcel/hash": 2.9.2 - "@parcel/plugin": 2.9.2 - "@parcel/utils": 2.9.2 + "@parcel/diagnostic": 2.9.3 + "@parcel/graph": 2.9.3 + "@parcel/hash": 2.9.3 + "@parcel/plugin": 2.9.3 + "@parcel/utils": 2.9.3 nullthrows: ^1.1.1 - checksum: acd5045aaef2a13f45e842514c151c746a004712ad6f0479e566376a0333090f8e2e837b8e783d9d1f013505581faa363056724aa894b516f294c69e01471b12 + checksum: 271f354e6148ab9abbbc0d7a5c22479f64d53196b1bff562a4235fa308c3dced568f1737d4ecb9ff971cdf0d8a36feee083f5491ce8e889cda5d718ed60eebe4 languageName: node linkType: hard @@ -767,17 +774,17 @@ __metadata: languageName: node linkType: hard -"@parcel/cache@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/cache@npm:2.9.2" +"@parcel/cache@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/cache@npm:2.9.3" dependencies: - "@parcel/fs": 2.9.2 - "@parcel/logger": 2.9.2 - "@parcel/utils": 2.9.2 + "@parcel/fs": 2.9.3 + "@parcel/logger": 2.9.3 + "@parcel/utils": 2.9.3 lmdb: 2.7.11 peerDependencies: - "@parcel/core": ^2.9.2 - checksum: 7968be08b0bb7937c279b6978d95ad1f4fd0408b7b92a77971239ed6f2c759da02bff9f2c4037bbf5877851695c1f058f0bc1ed0774e1aab2551444bfaf87cf6 + "@parcel/core": ^2.9.3 + checksum: 31bb356d2edd6e8aa467753256bd9a8cd158e885528f8407ba8ecf250994e86d66f103ba89c8dbb0419639c4de5e98d906d95663eabc3363a972e8eb9b2d6493 languageName: node linkType: hard @@ -790,61 +797,61 @@ __metadata: languageName: node linkType: hard -"@parcel/codeframe@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/codeframe@npm:2.9.2" +"@parcel/codeframe@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/codeframe@npm:2.9.3" dependencies: chalk: ^4.1.0 - checksum: 6a9cc239947e147208248cfbd03ffe94b57881f8523ea381a663143d189698c02bc7447143c93ec4d069a64ed297139e80cd2ea6d0acf422fc226d570fe0b2ea + checksum: f86a4d90eb4c33fd7c5189bf26b1d41e7955433e5a9be7fe1ce267abb74d7ad4bceeecd77db167c971604d4fef6c6fae4f5f12fa7d7f4078913ed7c92396bc14 languageName: node linkType: hard -"@parcel/compressor-raw@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/compressor-raw@npm:2.9.2" +"@parcel/compressor-raw@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/compressor-raw@npm:2.9.3" dependencies: - "@parcel/plugin": 2.9.2 - checksum: 263005e4bc5cf547ce01ccc60d9414f783be01e9b408658f9dc12583d8c88200b0a56e03ca1b4d737689d0c859eca9afa6a8b553c8b6816108461ed34044e5c8 + "@parcel/plugin": 2.9.3 + checksum: 2124c347a538b18d880ee0ae9e3e574236e402fec46b8288ccde83fcf81b51eb0d85e39067eff3ff6e8872461cbe5b39de4be5a12669efc33e08f8dd70b2b943 languageName: node linkType: hard -"@parcel/config-default@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/config-default@npm:2.9.2" +"@parcel/config-default@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/config-default@npm:2.9.3" dependencies: - "@parcel/bundler-default": 2.9.2 - "@parcel/compressor-raw": 2.9.2 - "@parcel/namer-default": 2.9.2 - "@parcel/optimizer-css": 2.9.2 - "@parcel/optimizer-htmlnano": 2.9.2 - "@parcel/optimizer-image": 2.9.2 - "@parcel/optimizer-svgo": 2.9.2 - "@parcel/optimizer-swc": 2.9.2 - "@parcel/packager-css": 2.9.2 - "@parcel/packager-html": 2.9.2 - "@parcel/packager-js": 2.9.2 - "@parcel/packager-raw": 2.9.2 - "@parcel/packager-svg": 2.9.2 - "@parcel/reporter-dev-server": 2.9.2 - "@parcel/resolver-default": 2.9.2 - "@parcel/runtime-browser-hmr": 2.9.2 - "@parcel/runtime-js": 2.9.2 - "@parcel/runtime-react-refresh": 2.9.2 - "@parcel/runtime-service-worker": 2.9.2 - "@parcel/transformer-babel": 2.9.2 - "@parcel/transformer-css": 2.9.2 - "@parcel/transformer-html": 2.9.2 - "@parcel/transformer-image": 2.9.2 - "@parcel/transformer-js": 2.9.2 - "@parcel/transformer-json": 2.9.2 - "@parcel/transformer-postcss": 2.9.2 - "@parcel/transformer-posthtml": 2.9.2 - "@parcel/transformer-raw": 2.9.2 - "@parcel/transformer-react-refresh-wrap": 2.9.2 - "@parcel/transformer-svg": 2.9.2 + "@parcel/bundler-default": 2.9.3 + "@parcel/compressor-raw": 2.9.3 + "@parcel/namer-default": 2.9.3 + "@parcel/optimizer-css": 2.9.3 + "@parcel/optimizer-htmlnano": 2.9.3 + "@parcel/optimizer-image": 2.9.3 + "@parcel/optimizer-svgo": 2.9.3 + "@parcel/optimizer-swc": 2.9.3 + "@parcel/packager-css": 2.9.3 + "@parcel/packager-html": 2.9.3 + "@parcel/packager-js": 2.9.3 + "@parcel/packager-raw": 2.9.3 + "@parcel/packager-svg": 2.9.3 + "@parcel/reporter-dev-server": 2.9.3 + "@parcel/resolver-default": 2.9.3 + "@parcel/runtime-browser-hmr": 2.9.3 + "@parcel/runtime-js": 2.9.3 + "@parcel/runtime-react-refresh": 2.9.3 + "@parcel/runtime-service-worker": 2.9.3 + "@parcel/transformer-babel": 2.9.3 + "@parcel/transformer-css": 2.9.3 + "@parcel/transformer-html": 2.9.3 + "@parcel/transformer-image": 2.9.3 + "@parcel/transformer-js": 2.9.3 + "@parcel/transformer-json": 2.9.3 + "@parcel/transformer-postcss": 2.9.3 + "@parcel/transformer-posthtml": 2.9.3 + "@parcel/transformer-raw": 2.9.3 + "@parcel/transformer-react-refresh-wrap": 2.9.3 + "@parcel/transformer-svg": 2.9.3 peerDependencies: - "@parcel/core": ^2.9.2 - checksum: b07a1c93d739c9e491bd6bec36349645c8edf83364505f2a88080159ea963560105f3d5d9d12e2a34681804737139f2736277b2a0ec874ae47f66eb60737cc88 + "@parcel/core": ^2.9.3 + checksum: 61ef21351ede9475fbe8e49fecd1bcdd6d50aa323e2f080fdc95a55428f43f0b38929f13252e227267e5ecce933166ede4c1a89c2461c605e37e25e13b7cee13 languageName: node linkType: hard @@ -880,25 +887,25 @@ __metadata: languageName: node linkType: hard -"@parcel/core@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/core@npm:2.9.2" +"@parcel/core@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/core@npm:2.9.3" dependencies: "@mischnic/json-sourcemap": ^0.1.0 - "@parcel/cache": 2.9.2 - "@parcel/diagnostic": 2.9.2 - "@parcel/events": 2.9.2 - "@parcel/fs": 2.9.2 - "@parcel/graph": 2.9.2 - "@parcel/hash": 2.9.2 - "@parcel/logger": 2.9.2 - "@parcel/package-manager": 2.9.2 - "@parcel/plugin": 2.9.2 - "@parcel/profiler": 2.9.2 + "@parcel/cache": 2.9.3 + "@parcel/diagnostic": 2.9.3 + "@parcel/events": 2.9.3 + "@parcel/fs": 2.9.3 + "@parcel/graph": 2.9.3 + "@parcel/hash": 2.9.3 + "@parcel/logger": 2.9.3 + "@parcel/package-manager": 2.9.3 + "@parcel/plugin": 2.9.3 + "@parcel/profiler": 2.9.3 "@parcel/source-map": ^2.1.1 - "@parcel/types": 2.9.2 - "@parcel/utils": 2.9.2 - "@parcel/workers": 2.9.2 + "@parcel/types": 2.9.3 + "@parcel/utils": 2.9.3 + "@parcel/workers": 2.9.3 abortcontroller-polyfill: ^1.1.9 base-x: ^3.0.8 browserslist: ^4.6.6 @@ -908,8 +915,8 @@ __metadata: json5: ^2.2.0 msgpackr: ^1.5.4 nullthrows: ^1.1.1 - semver: ^5.7.1 - checksum: 34fdd5779189d54695c7b71f9d52f5fabe898d769f8059427f30d2be29695e8ac05a4bbcd2309e80d129fde9d18693f0668e190402b4e06ca9c7e1b8bef152f7 + semver: ^7.5.2 + checksum: e4ba4e0909a0d2a097fbb2bdefd388ac19a29ba73e898cdaa18e9fe0ea622d853fcb1033525ab1e9bceb9f8ef544e1fe1b27a2e0228cbb319fe3285e1b59f95b languageName: node linkType: hard @@ -923,13 +930,13 @@ __metadata: languageName: node linkType: hard -"@parcel/diagnostic@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/diagnostic@npm:2.9.2" +"@parcel/diagnostic@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/diagnostic@npm:2.9.3" dependencies: "@mischnic/json-sourcemap": ^0.1.0 nullthrows: ^1.1.1 - checksum: b27c14d711d0770dba1c91644aca31d5360b4d65fe28c07b59cd7b212687cb8d71637a59ff83114950470836153a02ac3da24d0be900e446d2b280a5e47d29cf + checksum: 5897500e3b86181ca5975ec4fca6a931e27e76943efe4d76b02850a35c2394ed94f6f91f94d1a00faf0be2e4a1bfc087150cea8c17d23bbcd0250a0aa12e32d8 languageName: node linkType: hard @@ -940,10 +947,10 @@ __metadata: languageName: node linkType: hard -"@parcel/events@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/events@npm:2.9.2" - checksum: 4bc905a5e317a303cf39b209600f06d049482650336a48117e8b0084c2f73e3e5ff8cb179fe99462ddcb55eeb54db084877ce8f237ef6dc1e699f93e67175efb +"@parcel/events@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/events@npm:2.9.3" + checksum: c61ac95ce201183f2f0f6398e567b1fb02eba7ccb2e0ccab268b949e03095f08ab58ef82e8c547e1e816561ee9a0d9e83d0e86df2c467ff9f9f66451d84c33ee languageName: node linkType: hard @@ -956,10 +963,10 @@ __metadata: languageName: node linkType: hard -"@parcel/fs-search@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/fs-search@npm:2.9.2" - checksum: 68fd149a48e09bd24aa9035ede5c38f92b4b4fb98df7dbcfbfde6bc85dd1e99705c26cc465a2777b4f940017795e3e3d56dab356fb07f45d5647bb2588689fe9 +"@parcel/fs-search@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/fs-search@npm:2.9.3" + checksum: 6e7df35cc20932d20fbbbcc4bb81d346bf142359a308f2bd114a5b681776b9586adc36f88b2b7d7beae33e7b98ef8f30a30ec9f98a35e705477f2282e91efefc languageName: node linkType: hard @@ -978,18 +985,18 @@ __metadata: languageName: node linkType: hard -"@parcel/fs@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/fs@npm:2.9.2" +"@parcel/fs@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/fs@npm:2.9.3" dependencies: - "@parcel/fs-search": 2.9.2 - "@parcel/types": 2.9.2 - "@parcel/utils": 2.9.2 + "@parcel/fs-search": 2.9.3 + "@parcel/types": 2.9.3 + "@parcel/utils": 2.9.3 "@parcel/watcher": ^2.0.7 - "@parcel/workers": 2.9.2 + "@parcel/workers": 2.9.3 peerDependencies: - "@parcel/core": ^2.9.2 - checksum: 410c63e0dcdbf01563248fca0017b1e037ec27b229ebf17815f605bf50676bbc3787b1326898cff30a21d439658d46fb7103258416bd05d79de52def06060a52 + "@parcel/core": ^2.9.3 + checksum: c9bf9ca9e60364fbf84362dd4a19a4c73b17ac6563e9894beafc8728a811226f67010c08018e774e8a194f1c63e5445a78be757246205427ccd34b299c18c9d2 languageName: node linkType: hard @@ -1003,12 +1010,12 @@ __metadata: languageName: node linkType: hard -"@parcel/graph@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/graph@npm:2.9.2" +"@parcel/graph@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/graph@npm:2.9.3" dependencies: nullthrows: ^1.1.1 - checksum: 9943396a21331b82adb1aac6e541688471eae0ab3ff06417eed9e65ea40f78e881bf8f8de0f1ca1a86fa2e297221ec04311f28232dcecad5929b0cf6676fce7e + checksum: 7fdd830928cddd56aca9427fb3ea5ad8fd2378876d71a39f4351f37b7e7bfaeef971f45c3b9c710b337e258eea300ad702446169bac3a4bbae8c283f5e1145be languageName: node linkType: hard @@ -1022,12 +1029,12 @@ __metadata: languageName: node linkType: hard -"@parcel/hash@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/hash@npm:2.9.2" +"@parcel/hash@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/hash@npm:2.9.3" dependencies: xxhash-wasm: ^0.4.2 - checksum: 7ee42d33a1464c28ee118ad305e372e98596621b8df35a449427e6990e4ed858607b885afdcfa09a33079bd878298c62b2a2d231198003ce47a0fa8577b80d3a + checksum: d5329116c55a62026da8a15a5bb8b8b4fbb2308004bd03c6755ca1e7b83a2dd9b18bd2e7c288d25cefd4f5338d128fccbaf8d3f2a9351e292e7f040b4ba80f69 languageName: node linkType: hard @@ -1041,13 +1048,13 @@ __metadata: languageName: node linkType: hard -"@parcel/logger@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/logger@npm:2.9.2" +"@parcel/logger@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/logger@npm:2.9.3" dependencies: - "@parcel/diagnostic": 2.9.2 - "@parcel/events": 2.9.2 - checksum: 072052724aee9ec32b4c91127e7b4ffd1ffbe8398159c5176004bd4f33c143017c3e480ace614d3af91838336783d2905c8608759108331f0ba49617e921837f + "@parcel/diagnostic": 2.9.3 + "@parcel/events": 2.9.3 + checksum: eb68996b7be5a8373083b93e8f5655e4e685c1dec15840d3b724af44ecefc101b595263ec53d3f5f7870c29328e25e67065449f1e310f485f9b7bb4c29bf0ee3 languageName: node linkType: hard @@ -1060,117 +1067,117 @@ __metadata: languageName: node linkType: hard -"@parcel/markdown-ansi@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/markdown-ansi@npm:2.9.2" +"@parcel/markdown-ansi@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/markdown-ansi@npm:2.9.3" dependencies: chalk: ^4.1.0 - checksum: 171d62a76135bd3731d74b2b445ed64118285394389f83b81f074b6677ed66c9b1b62dc84ffcb6e54cc13bf8cd0adc8f83e6518d2d081f0376772411f7db0f74 + checksum: da1fed88dddb4529ebf489676568ca3bae7b302c96156ec0419811b23ee7056a17c308994cf80cb6952abf3f954933348af75e9fd5394b29ea291182b35cb3b4 languageName: node linkType: hard -"@parcel/namer-default@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/namer-default@npm:2.9.2" +"@parcel/namer-default@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/namer-default@npm:2.9.3" dependencies: - "@parcel/diagnostic": 2.9.2 - "@parcel/plugin": 2.9.2 + "@parcel/diagnostic": 2.9.3 + "@parcel/plugin": 2.9.3 nullthrows: ^1.1.1 - checksum: 903da6aada666b900339d962bc516625b4e14111340dcb6047d8c0db6dba9dc267dc8fc818671337605f3b734227768e39491d1d1bc5dac3a430873dcff9f9f0 + checksum: 23a588ee0f1460665c773986d5611219418fa1abac7e270613c52ae22f1fed0a9009a57c8ebf1e9fb0e15a000869b4c351186eac2f411c0a6c00b621377c598c languageName: node linkType: hard -"@parcel/node-resolver-core@npm:3.0.2": - version: 3.0.2 - resolution: "@parcel/node-resolver-core@npm:3.0.2" +"@parcel/node-resolver-core@npm:3.0.3": + version: 3.0.3 + resolution: "@parcel/node-resolver-core@npm:3.0.3" dependencies: "@mischnic/json-sourcemap": ^0.1.0 - "@parcel/diagnostic": 2.9.2 - "@parcel/fs": 2.9.2 - "@parcel/utils": 2.9.2 + "@parcel/diagnostic": 2.9.3 + "@parcel/fs": 2.9.3 + "@parcel/utils": 2.9.3 nullthrows: ^1.1.1 - semver: ^5.7.1 - checksum: 82d5122e36755d5123648d0ab7b918a0f0bddf9845216536cafb5c4b1458f2ea19d89a5893096d0123d750b39ee4822f0b3e89b37d8d163f7bc3cef270017933 + semver: ^7.5.2 + checksum: 871f09066f9226f56ff21da16971c8046fb86fdfb465eba6930038b9a6ca9b288f561b268007e3b812236c2ea0dd2391055cbc1aa35178b356fcdd5fc0066b03 languageName: node linkType: hard -"@parcel/optimizer-css@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/optimizer-css@npm:2.9.2" +"@parcel/optimizer-css@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/optimizer-css@npm:2.9.3" dependencies: - "@parcel/diagnostic": 2.9.2 - "@parcel/plugin": 2.9.2 + "@parcel/diagnostic": 2.9.3 + "@parcel/plugin": 2.9.3 "@parcel/source-map": ^2.1.1 - "@parcel/utils": 2.9.2 + "@parcel/utils": 2.9.3 browserslist: ^4.6.6 lightningcss: ^1.16.1 nullthrows: ^1.1.1 - checksum: 2ba9bd6eeaf696ed928961b3c582a01730d7bd33b0e8c91e9c3bf5b374b239a87557492e653d7bf92758b7d20a277a1beb859587c21ba9b882d3c2d4dbe4539b + checksum: 09cdfb81911ba474f9076a24d08074206e6ade2ffc04ded9724f09677ec60e70fb9bb87685c35717c50b465d77183cb664cd43589506c63400befdac19d96170 languageName: node linkType: hard -"@parcel/optimizer-data-url@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/optimizer-data-url@npm:2.9.2" +"@parcel/optimizer-data-url@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/optimizer-data-url@npm:2.9.3" dependencies: - "@parcel/plugin": 2.9.2 - "@parcel/utils": 2.9.2 + "@parcel/plugin": 2.9.3 + "@parcel/utils": 2.9.3 isbinaryfile: ^4.0.2 mime: ^2.4.4 - checksum: fed10fad948349a1ca1fda9d52c0a5d712639b6499fccc8e431da1312e32ff18fcf171201d4b66f57c5cc109b8b69e393e5ff312bb8b65add5bfb79d0578af22 + checksum: 38823e2aa57d9611a2660262f9c2af6286a21630562f90e2f4e967146853002a4e2c9fe18871fa16a21ecfc65cfc796add74a01dea25c7f0e8370833e881b890 languageName: node linkType: hard -"@parcel/optimizer-htmlnano@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/optimizer-htmlnano@npm:2.9.2" +"@parcel/optimizer-htmlnano@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/optimizer-htmlnano@npm:2.9.3" dependencies: - "@parcel/plugin": 2.9.2 + "@parcel/plugin": 2.9.3 htmlnano: ^2.0.0 nullthrows: ^1.1.1 posthtml: ^0.16.5 svgo: ^2.4.0 - checksum: 9a5f1caf59df73d846982cffe6dcd2a4fb260612c91c6dad39aace0a00d6ce47d38aaab289c051e3f60c8a70bbc8af60af1ccd03484879933fea308921aae81c + checksum: 32658dd81c75df9e85f348fe285d2b64805d47799f7b8574ca2bd79eebdb854385804d933818504f05d1368335e89cc22e001e739a68352967347dc6d7994228 languageName: node linkType: hard -"@parcel/optimizer-image@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/optimizer-image@npm:2.9.2" +"@parcel/optimizer-image@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/optimizer-image@npm:2.9.3" dependencies: - "@parcel/diagnostic": 2.9.2 - "@parcel/plugin": 2.9.2 - "@parcel/utils": 2.9.2 - "@parcel/workers": 2.9.2 + "@parcel/diagnostic": 2.9.3 + "@parcel/plugin": 2.9.3 + "@parcel/utils": 2.9.3 + "@parcel/workers": 2.9.3 peerDependencies: - "@parcel/core": ^2.9.2 - checksum: 8cbf4b2e9ad4ae3fb69db710dd44d3cb8f0c9bda238b4316864d872bee26a1238daa9ef92d5aa862f7819607616d57db154deae0a9eedb9c01ad1173b90f01a8 + "@parcel/core": ^2.9.3 + checksum: 5053b2724474409407fd05d0250144cdcca65b731ce4d731cd9d77a241f4973c1f9e7edd2fce98724a6ad20070e1fed127898e7b3a41e762d81e044985619eb3 languageName: node linkType: hard -"@parcel/optimizer-svgo@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/optimizer-svgo@npm:2.9.2" +"@parcel/optimizer-svgo@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/optimizer-svgo@npm:2.9.3" dependencies: - "@parcel/diagnostic": 2.9.2 - "@parcel/plugin": 2.9.2 - "@parcel/utils": 2.9.2 + "@parcel/diagnostic": 2.9.3 + "@parcel/plugin": 2.9.3 + "@parcel/utils": 2.9.3 svgo: ^2.4.0 - checksum: 67ed4bd0db96a10d968a2aeb469e973530b46136fbd4779e5a9d39c85aa5b929666c2ec5170bdaa21979ab5508ce8becc03c2ef16584dd16e06e8fe07ebfb95b + checksum: fd2f1a9fc67bf44184ea00465695bae50b604f506f60b6f02c607267fd108cc4776d6069412550e0d4133d7d5e91ed91d9b84658c3d2d488d5854f4a93d84e72 languageName: node linkType: hard -"@parcel/optimizer-swc@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/optimizer-swc@npm:2.9.2" +"@parcel/optimizer-swc@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/optimizer-swc@npm:2.9.3" dependencies: - "@parcel/diagnostic": 2.9.2 - "@parcel/plugin": 2.9.2 + "@parcel/diagnostic": 2.9.3 + "@parcel/plugin": 2.9.3 "@parcel/source-map": ^2.1.1 - "@parcel/utils": 2.9.2 + "@parcel/utils": 2.9.3 "@swc/core": ^1.3.36 nullthrows: ^1.1.1 - checksum: e21d0bee331b36a5054ca6a99ec1ee8fb3ebc1cb3e431276f8653eb36fb86dd7bf3cd70b835614e0ce6ae9dc876e3bf91dec5902cb26151d7d1e007e41a88677 + checksum: 087012a418442d13da1a3f0e4452259762e76568153f1a926dd9371e52d54110c2ca68b2e57861be16032a7b5406c7afd90867d50b8a91c402ab8c2afd8a6c49 languageName: node linkType: hard @@ -1191,83 +1198,83 @@ __metadata: languageName: node linkType: hard -"@parcel/package-manager@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/package-manager@npm:2.9.2" +"@parcel/package-manager@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/package-manager@npm:2.9.3" dependencies: - "@parcel/diagnostic": 2.9.2 - "@parcel/fs": 2.9.2 - "@parcel/logger": 2.9.2 - "@parcel/node-resolver-core": 3.0.2 - "@parcel/types": 2.9.2 - "@parcel/utils": 2.9.2 - "@parcel/workers": 2.9.2 - semver: ^5.7.1 + "@parcel/diagnostic": 2.9.3 + "@parcel/fs": 2.9.3 + "@parcel/logger": 2.9.3 + "@parcel/node-resolver-core": 3.0.3 + "@parcel/types": 2.9.3 + "@parcel/utils": 2.9.3 + "@parcel/workers": 2.9.3 + semver: ^7.5.2 peerDependencies: - "@parcel/core": ^2.9.2 - checksum: f7f1913f7fb55800c4446ed641c3cfb9e79439449d0dc9ccc3cda20eb33564559f3ffd0e7b32743dae3fdaf04f8d44c893c3bdd0ff2946ed01433370287be935 + "@parcel/core": ^2.9.3 + checksum: 46acc905b86fa97799096053abdbd384a9b439623064e541c1848ce52923e9f15e5cebaae9ef970872262e5710741836a8644d39155b0d84f15fbbd03089c9d9 languageName: node linkType: hard -"@parcel/packager-css@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/packager-css@npm:2.9.2" +"@parcel/packager-css@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/packager-css@npm:2.9.3" dependencies: - "@parcel/diagnostic": 2.9.2 - "@parcel/plugin": 2.9.2 + "@parcel/diagnostic": 2.9.3 + "@parcel/plugin": 2.9.3 "@parcel/source-map": ^2.1.1 - "@parcel/utils": 2.9.2 + "@parcel/utils": 2.9.3 nullthrows: ^1.1.1 - checksum: 835894034ebae62c279383064c3049f593aef4a8e35a1361701126d58603d606cf005acc6edbb2051a74a4add38f261f21badbe667cec778695ef6b4e33b3014 + checksum: 725245c5d627966a6e7f520f8def814a7751438bb36f7df93d61462b461829b54a886bedeb5b509e00c94152768b06b1205be04d9701fc5c977e2a081e20452d languageName: node linkType: hard -"@parcel/packager-html@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/packager-html@npm:2.9.2" +"@parcel/packager-html@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/packager-html@npm:2.9.3" dependencies: - "@parcel/plugin": 2.9.2 - "@parcel/types": 2.9.2 - "@parcel/utils": 2.9.2 + "@parcel/plugin": 2.9.3 + "@parcel/types": 2.9.3 + "@parcel/utils": 2.9.3 nullthrows: ^1.1.1 posthtml: ^0.16.5 - checksum: 8551a11ea2f95abd2a38633fe294931b2255853b3733fb733882de8c396a29c5e8902f4c232fe33c786b74688bc020418c0801c76a8a5310762d247b48bdce06 + checksum: 163217c86a8ecde8696a2750f8cb51dee028cf5491a49808addb19ee2db1d68b897fde8f887800b0f47a699f61842cb0959119d0dc8f750462623bd2ad608802 languageName: node linkType: hard -"@parcel/packager-js@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/packager-js@npm:2.9.2" +"@parcel/packager-js@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/packager-js@npm:2.9.3" dependencies: - "@parcel/diagnostic": 2.9.2 - "@parcel/hash": 2.9.2 - "@parcel/plugin": 2.9.2 + "@parcel/diagnostic": 2.9.3 + "@parcel/hash": 2.9.3 + "@parcel/plugin": 2.9.3 "@parcel/source-map": ^2.1.1 - "@parcel/utils": 2.9.2 + "@parcel/utils": 2.9.3 globals: ^13.2.0 nullthrows: ^1.1.1 - checksum: 49fef23dc6f2cf8083521be44f141be5f7ba11a98079d5caf2c4f8b3a910a61a6abfba64d02b7afdce167f3887c8a5e11346214bf0f5328e4d0800831a44f06a + checksum: db8c74ec80921ea5c6fee9496f007b9f68cfd165710143137c07eaa16873ca976eb0065ffab8e4f9627946d6664141835089ec731ab10b8ee1e3aa53bdbb93b6 languageName: node linkType: hard -"@parcel/packager-raw@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/packager-raw@npm:2.9.2" +"@parcel/packager-raw@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/packager-raw@npm:2.9.3" dependencies: - "@parcel/plugin": 2.9.2 - checksum: b56412fc298f8e2104ac154fc928c49d1eea3804360adeb71038859765951713a84490e0823f201321f2f8e479196177d0fb9dccca343ff451cc54a94cbfbfb2 + "@parcel/plugin": 2.9.3 + checksum: 840ddac49ce8c22cb815a1738cb8a40b9b1c6ccdf5a046b414a5f76fc08a5c870248eb76dbe61c4c06956d1b1c016dc7a49a1383176ae0a2f9cca4c1be9fced7 languageName: node linkType: hard -"@parcel/packager-svg@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/packager-svg@npm:2.9.2" +"@parcel/packager-svg@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/packager-svg@npm:2.9.3" dependencies: - "@parcel/plugin": 2.9.2 - "@parcel/types": 2.9.2 - "@parcel/utils": 2.9.2 + "@parcel/plugin": 2.9.3 + "@parcel/types": 2.9.3 + "@parcel/utils": 2.9.3 posthtml: ^0.16.4 - checksum: ef38f501fbaba30b05da68f47dc475f77ed6da68642d13aef9e9de00e1f6114f1f1e2afeb4e2cb3d2deb314c7d52957acad1a88632c30750879ee6faf976d34a + checksum: ff09cfdbc523822c47e62e00e820b3d476ff9c30fc97b3c33d7d7d6e0926cf0e630106fdc3b079640a46c4af91bf733599c9d66e45943e4a3ecbfa2890e8d33d languageName: node linkType: hard @@ -1280,113 +1287,113 @@ __metadata: languageName: node linkType: hard -"@parcel/plugin@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/plugin@npm:2.9.2" +"@parcel/plugin@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/plugin@npm:2.9.3" dependencies: - "@parcel/types": 2.9.2 - checksum: 3104b076ec0e475cc81d51fd2e74d21daaf7067179af0d397130781944a65dc8fc4c7ada5ac9a27a37f66a46b039095c4c993b2a1a68c0312f334e7dd1594c1f + "@parcel/types": 2.9.3 + checksum: e9d775a4fdf4635940f900eb8dc8f2ef7f6ff087d48ce876cfac567e4070120614a8c8990146732c1d1c2c483d211f00db3ded8dd0610276c997bb2a7a3ba3a5 languageName: node linkType: hard -"@parcel/profiler@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/profiler@npm:2.9.2" +"@parcel/profiler@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/profiler@npm:2.9.3" dependencies: - "@parcel/diagnostic": 2.9.2 - "@parcel/events": 2.9.2 + "@parcel/diagnostic": 2.9.3 + "@parcel/events": 2.9.3 chrome-trace-event: ^1.0.2 - checksum: 390faeb1a057e12be4504e334e0e169c9471e4cc534328be0d3aa2acd65b2f198a298dbf381b7d4f6c8596b41e7d1fec0cfc5e88c9bd52b3372f65b4ed713cfd + checksum: 30e988b99ed7d58ae0bba61cd92f214e73d37e611699796f55f2c22a60f0d24a4be1642b38c7ee71440a408bf7a240e3ff2bf5737d1a243778ff695794ccfcee languageName: node linkType: hard -"@parcel/reporter-cli@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/reporter-cli@npm:2.9.2" +"@parcel/reporter-cli@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/reporter-cli@npm:2.9.3" dependencies: - "@parcel/plugin": 2.9.2 - "@parcel/types": 2.9.2 - "@parcel/utils": 2.9.2 + "@parcel/plugin": 2.9.3 + "@parcel/types": 2.9.3 + "@parcel/utils": 2.9.3 chalk: ^4.1.0 term-size: ^2.2.1 - checksum: d9b5ca577f3db9afb9024bfec89177f094e5d9d540e09f009a62f7603e110fe8be9307063c07421efa6e4c3534a5e3950f872e321532e836f556bee030fd6727 + checksum: f274aa295950cd9f61339b1eaa3265f845570de78585e5343c619cb5bc2b4ba4f37091eb0e726634c19c34366cecbba8779b4e4831596501fd69618ddcbbd4b1 languageName: node linkType: hard -"@parcel/reporter-dev-server@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/reporter-dev-server@npm:2.9.2" +"@parcel/reporter-dev-server@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/reporter-dev-server@npm:2.9.3" dependencies: - "@parcel/plugin": 2.9.2 - "@parcel/utils": 2.9.2 - checksum: 1fdc8d48fd9ac238bc386062c47e7dcd6923b5f0a88defef71d417b056c46eaa6998bbe555dbcd2f5472d8035268d580a831c9bd7c6aceb766343945779014f2 + "@parcel/plugin": 2.9.3 + "@parcel/utils": 2.9.3 + checksum: e8beff5f9415f5f27c1c7f2a4dfaa3e5d53712d00e3df417fc6a0163f0a2a179cc19b4decf4a236d75e251bbdc46e3b216f6fae0826e70bcf459a289c732ec9c languageName: node linkType: hard -"@parcel/reporter-tracer@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/reporter-tracer@npm:2.9.2" +"@parcel/reporter-tracer@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/reporter-tracer@npm:2.9.3" dependencies: - "@parcel/plugin": 2.9.2 - "@parcel/utils": 2.9.2 + "@parcel/plugin": 2.9.3 + "@parcel/utils": 2.9.3 chrome-trace-event: ^1.0.3 nullthrows: ^1.1.1 - checksum: e08623e902668d6b143dc3af03f1f736be11a681a6d3abd4071540d7d84fa010e22b96615694cc7afee27f5718beefd4ab9802285047b807ec2533dd875e13e9 + checksum: 7922b1976062d078c71afa2bb216dc1afe7341d61b98b4773a02ebfb26bc63877a6674dd8a331886584e86b27839d3c9f4569747f96b0f04f9d3543ea2fc9601 languageName: node linkType: hard -"@parcel/resolver-default@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/resolver-default@npm:2.9.2" +"@parcel/resolver-default@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/resolver-default@npm:2.9.3" dependencies: - "@parcel/node-resolver-core": 3.0.2 - "@parcel/plugin": 2.9.2 - checksum: dc502cd62fe660a2fb011222dd7c2dae4751929ef8d64734b0bafcd2fd8d2ea6c45a563721fa7d02cfb6bb82d31698b0f567665e26dc5155817bb438802a4698 + "@parcel/node-resolver-core": 3.0.3 + "@parcel/plugin": 2.9.3 + checksum: 9e14d5b9bc7333bf22bfc445b2659ef5337f7af2cc63ccefb2496b8a0989df2b021233cf8d5fe5d4f08a48b2a494ce997acddf951bbd6ffbec7336a015ee05da languageName: node linkType: hard -"@parcel/runtime-browser-hmr@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/runtime-browser-hmr@npm:2.9.2" +"@parcel/runtime-browser-hmr@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/runtime-browser-hmr@npm:2.9.3" dependencies: - "@parcel/plugin": 2.9.2 - "@parcel/utils": 2.9.2 - checksum: 4d08afa02689f6fe444f88e4ab83684d7527b4942123e1b08ebdfddbfbeddc4d9b9a916164d0b794baec44208ead9f787913114756c3aba9d9b1a222d06a3b38 + "@parcel/plugin": 2.9.3 + "@parcel/utils": 2.9.3 + checksum: e79e827598e63ef083e8dbbed0e731ea202dfcc9f15c4063cbc2a81bad6c0d6981a49e8adea9326978e6d27ba6d4861507e49a062f726b846471dba4abeb0ed5 languageName: node linkType: hard -"@parcel/runtime-js@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/runtime-js@npm:2.9.2" +"@parcel/runtime-js@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/runtime-js@npm:2.9.3" dependencies: - "@parcel/diagnostic": 2.9.2 - "@parcel/plugin": 2.9.2 - "@parcel/utils": 2.9.2 + "@parcel/diagnostic": 2.9.3 + "@parcel/plugin": 2.9.3 + "@parcel/utils": 2.9.3 nullthrows: ^1.1.1 - checksum: 8dada6fecfb75db2fb2e5f0376aa3abc9a83d67b62dc84113f804afea66621abc1e380c4ed0ba7633ec4cb7f1b662c1e273a56c08722e5aa1fb05b3897ab05b5 + checksum: 143c3a9d9b5d37b4db9b7c169273a31f36db945a2264a448f3a90e1ee056ee28dfca325c472121a0f2425f463aac44d7ec7b7229c78f27cf1e642065b965f64f languageName: node linkType: hard -"@parcel/runtime-react-refresh@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/runtime-react-refresh@npm:2.9.2" +"@parcel/runtime-react-refresh@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/runtime-react-refresh@npm:2.9.3" dependencies: - "@parcel/plugin": 2.9.2 - "@parcel/utils": 2.9.2 + "@parcel/plugin": 2.9.3 + "@parcel/utils": 2.9.3 react-error-overlay: 6.0.9 react-refresh: ^0.9.0 - checksum: 16631bc0209c1cb8dd9aa3c1ea8cff0e53cca57ebf557baf7419ba5db846615864f44dd46ce8fe84bcacd5bde4d8ee08c1ab42b6e5e37b201125e2114637af9d + checksum: 8fb9f8165e7e7c29e8b954d71d358197e4a81182856817e92da6a4ec4db3236fd6dc0d3f3cd18da344ee025a4d6ae8bd1f21495fa42b969f3ca2fdd7e4dcbd18 languageName: node linkType: hard -"@parcel/runtime-service-worker@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/runtime-service-worker@npm:2.9.2" +"@parcel/runtime-service-worker@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/runtime-service-worker@npm:2.9.3" dependencies: - "@parcel/plugin": 2.9.2 - "@parcel/utils": 2.9.2 + "@parcel/plugin": 2.9.3 + "@parcel/utils": 2.9.3 nullthrows: ^1.1.1 - checksum: 21180ba472e2ef2969fe58aee7b7cf5a25e4975fd2e3187a92f4f01378cd9c784c63f0bdd0aaaaa1246de793611aad9b7a4b3e8a311125bee1cb9fb8eea8476a + checksum: e296a42e3e20a3a7b911236e8b349182210a8603c9b4a21023308b28a628c43acb23518e2b0502ef11e33463fa0426b344260a835e87f9a24838d5572df162ef languageName: node linkType: hard @@ -1408,182 +1415,182 @@ __metadata: languageName: node linkType: hard -"@parcel/transformer-babel@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/transformer-babel@npm:2.9.2" +"@parcel/transformer-babel@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/transformer-babel@npm:2.9.3" dependencies: - "@parcel/diagnostic": 2.9.2 - "@parcel/plugin": 2.9.2 + "@parcel/diagnostic": 2.9.3 + "@parcel/plugin": 2.9.3 "@parcel/source-map": ^2.1.1 - "@parcel/utils": 2.9.2 + "@parcel/utils": 2.9.3 browserslist: ^4.6.6 json5: ^2.2.0 nullthrows: ^1.1.1 - semver: ^5.7.0 - checksum: 4177b0f17666f75de64888aee599f37fa3b84cf0b2b1bcb33168c7d115c1a37805da9c092605f66220b551f6de7b6e51710822b92ae7b8c9fd688bbefc68d977 + semver: ^7.5.2 + checksum: 4d0246290ec37409a1c1db424b5e2daa974bd8fbec65560f1f5614d12db2956b386fd38539e45544b1be1098fadee8f0e971f5738da897cedda84f608c40a226 languageName: node linkType: hard -"@parcel/transformer-css@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/transformer-css@npm:2.9.2" +"@parcel/transformer-css@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/transformer-css@npm:2.9.3" dependencies: - "@parcel/diagnostic": 2.9.2 - "@parcel/plugin": 2.9.2 + "@parcel/diagnostic": 2.9.3 + "@parcel/plugin": 2.9.3 "@parcel/source-map": ^2.1.1 - "@parcel/utils": 2.9.2 + "@parcel/utils": 2.9.3 browserslist: ^4.6.6 lightningcss: ^1.16.1 nullthrows: ^1.1.1 - checksum: 4aacbe62fa4d013bc624246f22d16f39aacf7b255c0eab17926bf11d026aa53efde10ba28747b22e0710d21e361dc43b8b44f0e93e3748e700c4f741cdcb68ec + checksum: aad8e3243916cc3b7ed9e87910d43437eaced4665914d939b6ebf8ba323c7091fa3bfd532b23f50cbe2daf874c936ac6c946ea6be0dacda18cf2d733109e26f6 languageName: node linkType: hard -"@parcel/transformer-html@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/transformer-html@npm:2.9.2" +"@parcel/transformer-html@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/transformer-html@npm:2.9.3" dependencies: - "@parcel/diagnostic": 2.9.2 - "@parcel/hash": 2.9.2 - "@parcel/plugin": 2.9.2 + "@parcel/diagnostic": 2.9.3 + "@parcel/hash": 2.9.3 + "@parcel/plugin": 2.9.3 nullthrows: ^1.1.1 posthtml: ^0.16.5 posthtml-parser: ^0.10.1 posthtml-render: ^3.0.0 - semver: ^5.7.1 + semver: ^7.5.2 srcset: 4 - checksum: baf4047c55745116db6052d4568353875e14c82763bfbd2fab110a50eb3d811edb5276375829cb9cef15dd7e3ce45db4b34658426f6ef754c9f638670a70c930 + checksum: 77f150b5688fe2b32abeb7e6e4fc05a97816d872b3638e5cd4fec50144f4659c2128e9a60e5e6d2cf8237028abb57f29ae279ade05e3b353cf107a89ae29a307 languageName: node linkType: hard -"@parcel/transformer-image@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/transformer-image@npm:2.9.2" +"@parcel/transformer-image@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/transformer-image@npm:2.9.3" dependencies: - "@parcel/plugin": 2.9.2 - "@parcel/utils": 2.9.2 - "@parcel/workers": 2.9.2 + "@parcel/plugin": 2.9.3 + "@parcel/utils": 2.9.3 + "@parcel/workers": 2.9.3 nullthrows: ^1.1.1 peerDependencies: - "@parcel/core": ^2.9.2 - checksum: 197ffd824532abe1d711c4344477fc404aa87d5ebb76f64752522bf6813b06497a15f15a1eeba19ea8648c608961439f763fa5bcff8a5647063e6e5856a96ade + "@parcel/core": ^2.9.3 + checksum: 554ff7c6c2948059726ee0836a0de93d86e6f2f7d7f8454ecd6b6d7c0cd4a4c92bfe9ab668e45cd0e60118edf9e32b8c3ff5cff2fa8efb87d2db6e94633b744f languageName: node linkType: hard -"@parcel/transformer-inline-string@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/transformer-inline-string@npm:2.9.2" +"@parcel/transformer-inline-string@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/transformer-inline-string@npm:2.9.3" dependencies: - "@parcel/plugin": 2.9.2 - checksum: d9146597b4fddaedd82b3f72489bc9a5ecab8003a561e4b8a9c095618341daaf2c4e39a43e5eaa706491c3fb02c9e5a2865665004a39a9735a559c714a1e28fd + "@parcel/plugin": 2.9.3 + checksum: e93463e7bbad1f12721845d88466b5d642955349b674c4126323092b12c28db2d41e2eac579552563a5d7fb25bbbab3975a465e39e2689c397fe43fa2de5cb67 languageName: node linkType: hard -"@parcel/transformer-js@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/transformer-js@npm:2.9.2" +"@parcel/transformer-js@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/transformer-js@npm:2.9.3" dependencies: - "@parcel/diagnostic": 2.9.2 - "@parcel/plugin": 2.9.2 + "@parcel/diagnostic": 2.9.3 + "@parcel/plugin": 2.9.3 "@parcel/source-map": ^2.1.1 - "@parcel/utils": 2.9.2 - "@parcel/workers": 2.9.2 + "@parcel/utils": 2.9.3 + "@parcel/workers": 2.9.3 "@swc/helpers": ^0.5.0 browserslist: ^4.6.6 nullthrows: ^1.1.1 regenerator-runtime: ^0.13.7 - semver: ^5.7.1 + semver: ^7.5.2 peerDependencies: - "@parcel/core": ^2.9.2 - checksum: 0ea4ff8282c825caaf66612aabeaa9b0d7032fd6b1aa67e54c6b2fdb3a83055406576fa006c5eb0d0fd70d8dbf0b1b01aa32134d15f897d385fdf69e869b1e37 + "@parcel/core": ^2.9.3 + checksum: c262307651857c8434ef33612af0056c83c26874f0bcd8dae9e71e4806239d7a0bcebd8076acb4777b63ecb03104b15b98322f1f5d7214cbecbcd553cd7d82b3 languageName: node linkType: hard -"@parcel/transformer-json@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/transformer-json@npm:2.9.2" +"@parcel/transformer-json@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/transformer-json@npm:2.9.3" dependencies: - "@parcel/plugin": 2.9.2 + "@parcel/plugin": 2.9.3 json5: ^2.2.0 - checksum: 656c01128ed68df06b5dcb11e39702444d37daa645befe93858f7e4d64f86cc81573a201cb6293c3ad2be26cc14131175a4d77ba72619d0172a2ca647a113d57 + checksum: 96e2157cfdde7bcdb83fd1e7718cfb439af53493a60640dfcc5820d78e13cb7c438911c360b5901240ecf51101f164706b4e0058bdf9d6108aa32fe09370a539 languageName: node linkType: hard -"@parcel/transformer-postcss@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/transformer-postcss@npm:2.9.2" +"@parcel/transformer-postcss@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/transformer-postcss@npm:2.9.3" dependencies: - "@parcel/diagnostic": 2.9.2 - "@parcel/hash": 2.9.2 - "@parcel/plugin": 2.9.2 - "@parcel/utils": 2.9.2 + "@parcel/diagnostic": 2.9.3 + "@parcel/hash": 2.9.3 + "@parcel/plugin": 2.9.3 + "@parcel/utils": 2.9.3 clone: ^2.1.1 nullthrows: ^1.1.1 postcss-value-parser: ^4.2.0 - semver: ^5.7.1 - checksum: 4c514e8098b1c4dc27f0917aa06ab0e098c46eec5d4f15d866852ccc12207a03ee91fa768d5ce1d7cfdcd9ed54fe2f7c1ed394a5c24c8450d1b2adb8a4443acd + semver: ^7.5.2 + checksum: c396c25c5a58a1aed0e7381ee3834b5e0423baedf5dd79984b9d1540c8d693d703b4dfabde7bc1152271d783016b8552c9c442eb59152bf5071d355606a961d2 languageName: node linkType: hard -"@parcel/transformer-posthtml@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/transformer-posthtml@npm:2.9.2" +"@parcel/transformer-posthtml@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/transformer-posthtml@npm:2.9.3" dependencies: - "@parcel/plugin": 2.9.2 - "@parcel/utils": 2.9.2 + "@parcel/plugin": 2.9.3 + "@parcel/utils": 2.9.3 nullthrows: ^1.1.1 posthtml: ^0.16.5 posthtml-parser: ^0.10.1 posthtml-render: ^3.0.0 - semver: ^5.7.1 - checksum: a88988f71497a0941e93c0f337e6b2d586e8fc901f7dc4d9f28bb5c3ac43fa59781afe169c37872a0c6c97a9b6d0b24262e6ef39cb8a8309dc5443b8d49f0a4a + semver: ^7.5.2 + checksum: 58d4836900af9949832f69a78349fc29188aa6f54301afe392130e1d2127183691d16b6eef8adcc0d9924e47c6bc7e993c6e1dc7a507dadcb2a115fa50757c82 languageName: node linkType: hard -"@parcel/transformer-raw@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/transformer-raw@npm:2.9.2" +"@parcel/transformer-raw@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/transformer-raw@npm:2.9.3" dependencies: - "@parcel/plugin": 2.9.2 - checksum: 1603569c73ed99da19e2f5953cd1e36c2c13c514e48d2ec3ab4b3fe194c66ab963acd9e5d9dff780997a9e9af0619629c46e2324966841261139427e67dd5bd9 + "@parcel/plugin": 2.9.3 + checksum: b639e2f5fde4066124e58c343b56cd6eeb7820cb6dd1c4feeba5b40b1f3cc222c075d61de9dd8f381dbcbb42b44bdc7bf33c0fb4edbd3da59c4e3c66e4748d4b languageName: node linkType: hard -"@parcel/transformer-react-refresh-wrap@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/transformer-react-refresh-wrap@npm:2.9.2" +"@parcel/transformer-react-refresh-wrap@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/transformer-react-refresh-wrap@npm:2.9.3" dependencies: - "@parcel/plugin": 2.9.2 - "@parcel/utils": 2.9.2 + "@parcel/plugin": 2.9.3 + "@parcel/utils": 2.9.3 react-refresh: ^0.9.0 - checksum: 9de36a5fa4fc87e69379e16fc90b1e089b8b609bdcc1d50eb4bd8fb8a79e33503588e2871759b44dde97d8fbd1c095f4024889d70446c5805a2e2e75c01c33ec + checksum: aede3d82af714c311e504bc2333e11b5dc29bedca580052e2fa44eca3c1e05f630352e83be30e66aaa231323f1b5b7f49011f43ff77613986519a055470649e1 languageName: node linkType: hard -"@parcel/transformer-sass@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/transformer-sass@npm:2.9.2" +"@parcel/transformer-sass@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/transformer-sass@npm:2.9.3" dependencies: - "@parcel/plugin": 2.9.2 + "@parcel/plugin": 2.9.3 "@parcel/source-map": ^2.1.1 sass: ^1.38.0 - checksum: 928b8767f3b53dd0dc59337b05fa782cd8034d8d22f89d058507092b7def652e95b9e0c43193a78ec2eb270f239db3c248f592f176f91a22adf30ec02c30c057 + checksum: 534eb9239f2b274d178ce9fe697b962970bd361519af0e4508c27fbfc877d619382f98fe54b9be28c8f2b6f0261fa6ffef8bc94ea170d1e41e02214460b92d14 languageName: node linkType: hard -"@parcel/transformer-svg@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/transformer-svg@npm:2.9.2" +"@parcel/transformer-svg@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/transformer-svg@npm:2.9.3" dependencies: - "@parcel/diagnostic": 2.9.2 - "@parcel/hash": 2.9.2 - "@parcel/plugin": 2.9.2 + "@parcel/diagnostic": 2.9.3 + "@parcel/hash": 2.9.3 + "@parcel/plugin": 2.9.3 nullthrows: ^1.1.1 posthtml: ^0.16.5 posthtml-parser: ^0.10.1 posthtml-render: ^3.0.0 - semver: ^5.7.1 - checksum: 1b8b2c60ee467febf553ef20ed9500d74cd3d0022c04219d8c29db4a99ade879137ca10afea1c0d5360ae422dc2c6dcee4269bc3205516c5f5bd52ea06bc5f33 + semver: ^7.5.2 + checksum: 19cec37f9cfb4a5506e48e41d70e970584cd06a913dfc92d128031991ff6615ce3302a896c2766fa64be8c8f56f81da47ece05e7b65c30f7e5213e676cae346c languageName: node linkType: hard @@ -1602,18 +1609,18 @@ __metadata: languageName: node linkType: hard -"@parcel/types@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/types@npm:2.9.2" +"@parcel/types@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/types@npm:2.9.3" dependencies: - "@parcel/cache": 2.9.2 - "@parcel/diagnostic": 2.9.2 - "@parcel/fs": 2.9.2 - "@parcel/package-manager": 2.9.2 + "@parcel/cache": 2.9.3 + "@parcel/diagnostic": 2.9.3 + "@parcel/fs": 2.9.3 + "@parcel/package-manager": 2.9.3 "@parcel/source-map": ^2.1.1 - "@parcel/workers": 2.9.2 + "@parcel/workers": 2.9.3 utility-types: ^3.10.0 - checksum: 976fb4453410d89b3e47145b2c45baff1c310a5a2d2834eea5e94653db5ea93e586b826b4aac819c3051b314b550636ac0941ed7ea147d6ec40f7645d99fe574 + checksum: 2a2162277245d2d906a2170d8d20262247e4cb14d8c9504e86ff15e4015cbf747304d098f3211b7705ea8c5b55b47cd3594b5802e615d10d89d09e085435bc6b languageName: node linkType: hard @@ -1632,19 +1639,19 @@ __metadata: languageName: node linkType: hard -"@parcel/utils@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/utils@npm:2.9.2" +"@parcel/utils@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/utils@npm:2.9.3" dependencies: - "@parcel/codeframe": 2.9.2 - "@parcel/diagnostic": 2.9.2 - "@parcel/hash": 2.9.2 - "@parcel/logger": 2.9.2 - "@parcel/markdown-ansi": 2.9.2 + "@parcel/codeframe": 2.9.3 + "@parcel/diagnostic": 2.9.3 + "@parcel/hash": 2.9.3 + "@parcel/logger": 2.9.3 + "@parcel/markdown-ansi": 2.9.3 "@parcel/source-map": ^2.1.1 chalk: ^4.1.0 nullthrows: ^1.1.1 - checksum: 130cf1a6cb9f395f9067a7b15e34f0b0893e5aae69b73b9b3323e7ede9391cbc2a3b35fdde5432eddad2c81ac7f5ccdbdd36170b9119282e2ad991f2c2b0a41d + checksum: 4c1df52754bc56bc3349262bd6cf3f38cf239f27593f7d1aea987588af0a4ec13ce367f4b3026c44791071ce760071554f24cafdb3ff341f0175acd49558ac21 languageName: node linkType: hard @@ -1686,19 +1693,19 @@ __metadata: languageName: node linkType: hard -"@parcel/workers@npm:2.9.2": - version: 2.9.2 - resolution: "@parcel/workers@npm:2.9.2" +"@parcel/workers@npm:2.9.3": + version: 2.9.3 + resolution: "@parcel/workers@npm:2.9.3" dependencies: - "@parcel/diagnostic": 2.9.2 - "@parcel/logger": 2.9.2 - "@parcel/profiler": 2.9.2 - "@parcel/types": 2.9.2 - "@parcel/utils": 2.9.2 + "@parcel/diagnostic": 2.9.3 + "@parcel/logger": 2.9.3 + "@parcel/profiler": 2.9.3 + "@parcel/types": 2.9.3 + "@parcel/utils": 2.9.3 nullthrows: ^1.1.1 peerDependencies: - "@parcel/core": ^2.9.2 - checksum: 7e980749c1353058a7dbf74fb250c453ee382a2522d3b0a7b605a6a13926f6924ac644b2b6bbc4b0ca59a8f8e1b468a82e15efb41d94a1f75ce2906ccd8f506b + "@parcel/core": ^2.9.3 + checksum: d6ac6e2abf1b38aefeef26f687e0091e191f6b1969728abe44c4cda988d070759db3352784c287b6a10ed6694feb05c12a9510ea756b3edbb0367eaa8cfc81a7 languageName: node linkType: hard @@ -1723,9 +1730,9 @@ __metadata: languageName: node linkType: hard -"@rollup/pluginutils@npm:5.0.2": - version: 5.0.2 - resolution: "@rollup/pluginutils@npm:5.0.2" +"@rollup/pluginutils@npm:5.0.3": + version: 5.0.3 + resolution: "@rollup/pluginutils@npm:5.0.3" dependencies: "@types/estree": ^1.0.0 estree-walker: ^2.0.2 @@ -1735,7 +1742,7 @@ __metadata: peerDependenciesMeta: rollup: optional: true - checksum: edea15e543bebc7dcac3b0ac8bc7b8e8e6dbd46e2864dbe5dd28072de1fbd5b0e10d545a610c0edaa178e8a7ac432e2a2a52e547ece1308471412caba47db8ce + checksum: 8efbdeac53c58ba7b26c353a0a95acb0286cb6afec9816e0c52c3537404be80af11d897f78416a3339a8a76cbce8600269bdf4853edfdebcc89b2e90c56bf3d9 languageName: node linkType: hard @@ -1953,13 +1960,13 @@ __metadata: languageName: node linkType: hard -"@vitejs/plugin-vue@npm:4.2.3": - version: 4.2.3 - resolution: "@vitejs/plugin-vue@npm:4.2.3" +"@vitejs/plugin-vue@npm:4.3.3": + version: 4.3.3 + resolution: "@vitejs/plugin-vue@npm:4.3.3" peerDependencies: vite: ^4.0.0 vue: ^3.2.25 - checksum: 1c70c1cd18f6ba3ed6cdf1391a0d441dd8e9a89c728f7eb20d74c84e75fef1fdc651836cce9bf59a8a48e5b2caebf6ca60a908fdd8527a476a750afd2b458592 + checksum: 17f8d737085a7f0e65cdc5347b44d844980b84775e884e7432e623644c3bb5916703139967743c94b70e3db57689d2d2511850cd4adeb9886075fd49fef7124d languageName: node linkType: hard @@ -2123,12 +2130,12 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.8.0": - version: 8.8.0 - resolution: "acorn@npm:8.8.0" +"acorn@npm:^8.9.0": + version: 8.10.0 + resolution: "acorn@npm:8.10.0" bin: acorn: bin/acorn - checksum: 7270ca82b242eafe5687a11fea6e088c960af712683756abf0791b68855ea9cace3057bd5e998ffcef50c944810c1e0ca1da526d02b32110e13c722aa959afdc + checksum: 538ba38af0cc9e5ef983aee196c4b8b4d87c0c94532334fa7e065b2c8a1f85863467bb774231aae91613fcda5e68740c15d97b1967ae3394d20faddddd8af61d languageName: node linkType: hard @@ -2162,7 +2169,7 @@ __metadata: languageName: node linkType: hard -"ajv@npm:^6.10.0, ajv@npm:^6.12.4": +"ajv@npm:^6.12.4": version: 6.12.6 resolution: "ajv@npm:6.12.6" dependencies: @@ -2259,6 +2266,16 @@ __metadata: languageName: node linkType: hard +"array-buffer-byte-length@npm:^1.0.0": + version: 1.0.0 + resolution: "array-buffer-byte-length@npm:1.0.0" + dependencies: + call-bind: ^1.0.2 + is-array-buffer: ^3.0.1 + checksum: 044e101ce150f4804ad19c51d6c4d4cfa505c5b2577bd179256e4aa3f3f6a0a5e9874c78cd428ee566ac574c8a04d7ce21af9fe52e844abfdccb82b33035a7c3 + languageName: node + linkType: hard + "array-includes@npm:^3.1.6": version: 3.1.6 resolution: "array-includes@npm:3.1.6" @@ -2272,6 +2289,19 @@ __metadata: languageName: node linkType: hard +"array.prototype.findlastindex@npm:^1.2.2": + version: 1.2.2 + resolution: "array.prototype.findlastindex@npm:1.2.2" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + es-shim-unscopables: ^1.0.0 + get-intrinsic: ^1.1.3 + checksum: 8a166359f69a2a751c843f26b9c8cd03d0dc396a92cdcb85f4126b5f1cecdae5b2c0c616a71ea8aff026bde68165b44950b3664404bb73db0673e288495ba264 + languageName: node + linkType: hard + "array.prototype.flat@npm:^1.3.1": version: 1.3.1 resolution: "array.prototype.flat@npm:1.3.1" @@ -2296,6 +2326,20 @@ __metadata: languageName: node linkType: hard +"arraybuffer.prototype.slice@npm:^1.0.1": + version: 1.0.1 + resolution: "arraybuffer.prototype.slice@npm:1.0.1" + 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 + checksum: e3e9b2a3e988ebfeddce4c7e8f69df730c9e48cb04b0d40ff0874ce3d86b3d1339dd520ffde5e39c02610bc172ecfbd4bc93324b1cabd9554c44a56b131ce0ce + languageName: node + linkType: hard + "asap@npm:~2.0.3": version: 2.0.6 resolution: "asap@npm:2.0.6" @@ -2370,12 +2414,12 @@ __metadata: languageName: node linkType: hard -"bootstrap@npm:5.2.3": - version: 5.2.3 - resolution: "bootstrap@npm:5.2.3" +"bootstrap@npm:5.3.0": + version: 5.3.0 + resolution: "bootstrap@npm:5.3.0" peerDependencies: - "@popperjs/core": ^2.11.6 - checksum: 0211805dec6a190c0911d142966df30fdb4b4139a04cc6c23dd83c6045ea3cb0a966b360ab2e701e7b3ad96ff01e05fdc0914be97b41bd876b11e457a8bdc6a3 + "@popperjs/core": ^2.11.7 + checksum: 29a83cc8cac96d70051e265a5da342cc488df8fc76dff6746ef7d155698286cd5bdfa3e52c6ebf09f8e5a97f25929ee97aee36237117732e52b0d3276a72c45c languageName: node linkType: hard @@ -2467,25 +2511,25 @@ browserlist@latest: languageName: node linkType: hard -"c8@npm:8.0.0": - version: 8.0.0 - resolution: "c8@npm:8.0.0" +"c8@npm:8.0.1": + version: 8.0.1 + resolution: "c8@npm:8.0.1" 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.0 - istanbul-reports: ^3.1.4 + istanbul-lib-report: ^3.0.1 + istanbul-reports: ^3.1.6 rimraf: ^3.0.2 test-exclude: ^6.0.0 v8-to-istanbul: ^9.0.0 - yargs: ^16.2.0 - yargs-parser: ^20.2.9 + yargs: ^17.7.2 + yargs-parser: ^21.1.1 bin: c8: bin/c8.js - checksum: 9b107e412a3ba2af89c8188d8f65864d6584d9043e61982957318bb4e0d0a8da3fcde6996a2eae3f413a17fb10feb25074899dcd2c770ee4cc467965ff4f93c4 + checksum: 2c47531d21cb67b1e533fbb203ddb5a1c4b45d52c004dcf4eb1376ac8df205f2f4a1b2b9611777ca88dadbbcc2bbdad26b8c5f7ca58a02ecd52afa2aebef73fe languageName: node linkType: hard @@ -2532,10 +2576,10 @@ browserlist@latest: languageName: node linkType: hard -"caniuse-lite@npm:1.0.30001495": - version: 1.0.30001495 - resolution: "caniuse-lite@npm:1.0.30001495" - checksum: c0a139a2e679ca60ae1ce2aaf0e9f5850cc1016b3735200cc1a1347bd7737f0a2a5993bc3f88f43a13ec687befffdae212a849f782702a6fe488de123e92351e +"caniuse-lite@npm:1.0.30001519": + version: 1.0.30001519 + resolution: "caniuse-lite@npm:1.0.30001519" + checksum: 66085133ede05d947e30b62fed2cbae18e5767afda8b0de38840883e1cfe5846bf1568ddbafd31647544e59112355abedaf9c867ac34541bfc20d69e7a19d94c languageName: node linkType: hard @@ -2616,14 +2660,14 @@ browserlist@latest: languageName: node linkType: hard -"cliui@npm:^7.0.2": - version: 7.0.4 - resolution: "cliui@npm:7.0.4" +"cliui@npm:^8.0.1": + version: 8.0.1 + resolution: "cliui@npm:8.0.1" dependencies: string-width: ^4.2.0 - strip-ansi: ^6.0.0 + strip-ansi: ^6.0.1 wrap-ansi: ^7.0.0 - checksum: ce2e8f578a4813806788ac399b9e866297740eecd4ad1823c27fd344d78b22c5f8597d548adbcc46f0573e43e21e751f39446c5a5e804a12aace402b7a315d7f + checksum: 79648b3b0045f2e285b76fb2e24e207c6db44323581e421c3acbd0e86454cba1b37aea976ab50195a49e7384b871e6dfb2247ad7dec53c02454ac6497394cb56 languageName: node linkType: hard @@ -3216,6 +3260,16 @@ browserlist@latest: languageName: node linkType: hard +"define-properties@npm:^1.2.0": + version: 1.2.0 + resolution: "define-properties@npm:1.2.0" + dependencies: + has-property-descriptors: ^1.0.0 + object-keys: ^1.1.1 + checksum: e60aee6a19b102df4e2b1f301816804e81ab48bb91f00d0d935f269bf4b3f79c88b39e4f89eaa132890d23267335fd1140dfcd8d5ccd61031a0a2c41a54e33a6 + languageName: node + linkType: hard + "delaunator@npm:5": version: 5.0.0 resolution: "delaunator@npm:5.0.0" @@ -3468,6 +3522,53 @@ browserlist@latest: languageName: node linkType: hard +"es-abstract@npm:^1.21.2": + version: 1.22.1 + resolution: "es-abstract@npm:1.22.1" + 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 + es-to-primitive: ^1.2.1 + function.prototype.name: ^1.1.5 + get-intrinsic: ^1.2.1 + 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-proto: ^1.0.1 + has-symbols: ^1.0.3 + internal-slot: ^1.0.5 + is-array-buffer: ^3.0.2 + 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.10 + 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 + checksum: 614e2c1c3717cb8d30b6128ef12ea110e06fd7d75ad77091ca1c5dbfb00da130e62e4bbbbbdda190eada098a22b27fe0f99ae5a1171dac2c8663b1e8be8a3a9b + languageName: node + linkType: hard + "es-set-tostringtag@npm:^2.0.1": version: 2.0.1 resolution: "es-set-tostringtag@npm:2.0.1" @@ -3499,32 +3600,32 @@ browserlist@latest: languageName: node linkType: hard -"esbuild@npm:^0.17.5": - version: 0.17.13 - resolution: "esbuild@npm:0.17.13" +"esbuild@npm:^0.18.10": + version: 0.18.20 + resolution: "esbuild@npm:0.18.20" dependencies: - "@esbuild/android-arm": 0.17.13 - "@esbuild/android-arm64": 0.17.13 - "@esbuild/android-x64": 0.17.13 - "@esbuild/darwin-arm64": 0.17.13 - "@esbuild/darwin-x64": 0.17.13 - "@esbuild/freebsd-arm64": 0.17.13 - "@esbuild/freebsd-x64": 0.17.13 - "@esbuild/linux-arm": 0.17.13 - "@esbuild/linux-arm64": 0.17.13 - "@esbuild/linux-ia32": 0.17.13 - "@esbuild/linux-loong64": 0.17.13 - "@esbuild/linux-mips64el": 0.17.13 - "@esbuild/linux-ppc64": 0.17.13 - "@esbuild/linux-riscv64": 0.17.13 - "@esbuild/linux-s390x": 0.17.13 - "@esbuild/linux-x64": 0.17.13 - "@esbuild/netbsd-x64": 0.17.13 - "@esbuild/openbsd-x64": 0.17.13 - "@esbuild/sunos-x64": 0.17.13 - "@esbuild/win32-arm64": 0.17.13 - "@esbuild/win32-ia32": 0.17.13 - "@esbuild/win32-x64": 0.17.13 + "@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 dependenciesMeta: "@esbuild/android-arm": optional: true @@ -3572,7 +3673,7 @@ browserlist@latest: optional: true bin: esbuild: bin/esbuild - checksum: c3be8d41a36504fbfee7ad1206df5cf3464dc9a057a417b66dbf1cdf9a180d299df8eee5d2ffa428ad0303f5f4e3ea238bd50087876daa28f709722035165c8c + checksum: 5d253614e50cdb6ec22095afd0c414f15688e7278a7eb4f3720a6dd1306b0909cf431e7b9437a90d065a31b1c57be60130f63fe3e8d0083b588571f31ee6ec7b languageName: node linkType: hard @@ -3627,26 +3728,26 @@ browserlist@latest: languageName: node linkType: hard -"eslint-module-utils@npm:^2.7.4": - version: 2.7.4 - resolution: "eslint-module-utils@npm:2.7.4" +"eslint-module-utils@npm:^2.8.0": + version: 2.8.0 + resolution: "eslint-module-utils@npm:2.8.0" dependencies: debug: ^3.2.7 peerDependenciesMeta: eslint: optional: true - checksum: 5da13645daff145a5c922896b258f8bba560722c3767254e458d894ff5fbb505d6dfd945bffa932a5b0ae06714da2379bd41011c4c20d2d59cc83e23895360f7 + checksum: 74c6dfea7641ebcfe174be61168541a11a14aa8d72e515f5f09af55cd0d0862686104b0524aa4b8e0ce66418a44aa38a94d2588743db5fd07a6b49ffd16921d2 languageName: node linkType: hard -"eslint-plugin-cypress@npm:2.13.3": - version: 2.13.3 - resolution: "eslint-plugin-cypress@npm:2.13.3" +"eslint-plugin-cypress@npm:2.14.0": + version: 2.14.0 + resolution: "eslint-plugin-cypress@npm:2.14.0" dependencies: - globals: ^11.12.0 + globals: ^13.20.0 peerDependencies: eslint: ">= 3.2.1" - checksum: 9affbcee29e030a4251c4794f7533e8e8c0e3b98ab3470a2c730ed059f733c5857a04c7ac214cc0ca7aeef1b11242e72595de7fc1f6b8b4d4578d9eca10af203 + checksum: 3fa118a757aebb1aa6b419b2944744796aa4fa3cc1e2e19fa97777fd6792fba12b5ae117bf19bf7e7d9a1abdd48398cfba9ca6f2c62fd690a2108a9a02f3f2ae languageName: node linkType: hard @@ -3686,28 +3787,30 @@ browserlist@latest: languageName: node linkType: hard -"eslint-plugin-import@npm:2.27.5": - version: 2.27.5 - resolution: "eslint-plugin-import@npm:2.27.5" +"eslint-plugin-import@npm:2.28.1": + version: 2.28.1 + resolution: "eslint-plugin-import@npm:2.28.1" dependencies: 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-import-resolver-node: ^0.3.7 - eslint-module-utils: ^2.7.4 + eslint-module-utils: ^2.8.0 has: ^1.0.3 - is-core-module: ^2.11.0 + is-core-module: ^2.13.0 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.1 - semver: ^6.3.0 - tsconfig-paths: ^3.14.1 + semver: ^6.3.1 + tsconfig-paths: ^3.14.2 peerDependencies: eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - checksum: f500571a380167e25d72a4d925ef9a7aae8899eada57653e5f3051ec3d3c16d08271fcefe41a30a9a2f4fefc232f066253673ee4ea77b30dba65ae173dade85d + checksum: e8ae6dd8f06d8adf685f9c1cfd46ac9e053e344a05c4090767e83b63a85c8421ada389807a39e73c643b9bff156715c122e89778169110ed68d6428e12607edf languageName: node linkType: hard @@ -3772,20 +3875,20 @@ browserlist@latest: languageName: node linkType: hard -"eslint-plugin-vue@npm:9.15.1": - version: 9.15.1 - resolution: "eslint-plugin-vue@npm:9.15.1" +"eslint-plugin-vue@npm:9.17.0": + version: 9.17.0 + resolution: "eslint-plugin-vue@npm:9.17.0" dependencies: - "@eslint-community/eslint-utils": ^4.3.0 + "@eslint-community/eslint-utils": ^4.4.0 natural-compare: ^1.4.0 - nth-check: ^2.0.1 - postcss-selector-parser: ^6.0.9 - semver: ^7.3.5 - vue-eslint-parser: ^9.3.0 + nth-check: ^2.1.1 + postcss-selector-parser: ^6.0.13 + semver: ^7.5.4 + vue-eslint-parser: ^9.3.1 xml-name-validator: ^4.0.0 peerDependencies: eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 - checksum: b1cdb16e43e681938c25f1d3f2d5d0d76a99172efdcfa0fa98cdb21122d520e12ae2f8ff2b40bf47a5b9f476f54199494a2851d99edc5bad0a25156ef38eeac4 + checksum: 2ef53a03876f7c96828ad10dae7d1c4d87b51e348f58b16de3f2bedbbff9a3410eabfaf65e4890b0b7ae6d1e710c1c370998d5bc64d6ca3095a95713b3a4cf67 languageName: node linkType: hard @@ -3799,13 +3902,13 @@ browserlist@latest: languageName: node linkType: hard -"eslint-scope@npm:^7.2.0": - version: 7.2.0 - resolution: "eslint-scope@npm:7.2.0" +"eslint-scope@npm:^7.2.2": + version: 7.2.2 + resolution: "eslint-scope@npm:7.2.2" dependencies: esrecurse: ^4.3.0 estraverse: ^5.2.0 - checksum: 64591a2d8b244ade9c690b59ef238a11d5c721a98bcee9e9f445454f442d03d3e04eda88e95a4daec558220a99fa384309d9faae3d459bd40e7a81b4063980ae + checksum: ec97dbf5fb04b94e8f4c5a91a7f0a6dd3c55e46bfc7bbcd0e3138c3a76977570e02ed89a1810c778dcd72072ff0e9621ba1379b4babe53921d71e2e4486fda3e languageName: node linkType: hard @@ -3857,26 +3960,33 @@ browserlist@latest: languageName: node linkType: hard -"eslint@npm:8.43.0": - version: 8.43.0 - resolution: "eslint@npm:8.43.0" +"eslint-visitor-keys@npm:^3.4.3": + version: 3.4.3 + resolution: "eslint-visitor-keys@npm:3.4.3" + checksum: 36e9ef87fca698b6fd7ca5ca35d7b2b6eeaaf106572e2f7fd31c12d3bfdaccdb587bba6d3621067e5aece31c8c3a348b93922ab8f7b2cbc6aaab5e1d89040c60 + languageName: node + linkType: hard + +"eslint@npm:8.47.0": + version: 8.47.0 + resolution: "eslint@npm:8.47.0" dependencies: "@eslint-community/eslint-utils": ^4.2.0 - "@eslint-community/regexpp": ^4.4.0 - "@eslint/eslintrc": ^2.0.3 - "@eslint/js": 8.43.0 + "@eslint-community/regexpp": ^4.6.1 + "@eslint/eslintrc": ^2.1.2 + "@eslint/js": ^8.47.0 "@humanwhocodes/config-array": ^0.11.10 "@humanwhocodes/module-importer": ^1.0.1 "@nodelib/fs.walk": ^1.2.8 - ajv: ^6.10.0 + ajv: ^6.12.4 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 + eslint-scope: ^7.2.2 + eslint-visitor-keys: ^3.4.3 + espree: ^9.6.1 esquery: ^1.4.2 esutils: ^2.0.2 fast-deep-equal: ^3.1.3 @@ -3886,7 +3996,6 @@ browserlist@latest: 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 @@ -3896,13 +4005,12 @@ browserlist@latest: lodash.merge: ^4.6.2 minimatch: ^3.1.2 natural-compare: ^1.4.0 - optionator: ^0.9.1 + optionator: ^0.9.3 strip-ansi: ^6.0.1 - strip-json-comments: ^3.1.0 text-table: ^0.2.0 bin: eslint: bin/eslint.js - checksum: 55654ce00b0d128822b57526e40473d0497c7c6be3886afdc0b41b6b0dfbd34d0eae8159911b18451b4db51a939a0e6d2e117e847ae419086884fc3d4fe23c7c + checksum: 1988617f703eadc5c7540468d54dc8e5171cf2bb9483f6172799cd1ff54a9a5e4470f003784e8cef92687eaa14de37172732787040e67817581a20bcb9c15970 languageName: node linkType: hard @@ -3917,14 +4025,14 @@ browserlist@latest: languageName: node linkType: hard -"espree@npm:^9.5.2": - version: 9.5.2 - resolution: "espree@npm:9.5.2" +"espree@npm:^9.6.0, espree@npm:^9.6.1": + version: 9.6.1 + resolution: "espree@npm:9.6.1" dependencies: - acorn: ^8.8.0 + acorn: ^8.9.0 acorn-jsx: ^5.3.2 eslint-visitor-keys: ^3.4.1 - checksum: 6506289d6eb26471c0b383ee24fee5c8ae9d61ad540be956b3127be5ce3bf687d2ba6538ee5a86769812c7c552a9d8239e8c4d150f9ea056c6d5cbe8399c03c1 + checksum: eb8c149c7a2a77b3f33a5af80c10875c3abd65450f60b8af6db1bfcfa8f101e21c1e56a561c6dc13b848e18148d43469e7cd208506238554fb5395a9ea5a1ab9 languageName: node linkType: hard @@ -4169,7 +4277,7 @@ browserlist@latest: languageName: node linkType: hard -"functions-have-names@npm:^1.2.2": +"functions-have-names@npm:^1.2.2, functions-have-names@npm:^1.2.3": version: 1.2.3 resolution: "functions-have-names@npm:1.2.3" checksum: c3f1f5ba20f4e962efb71344ce0a40722163e85bee2101ce25f88214e78182d2d2476aa85ef37950c579eb6cf6ee811c17b3101bb84004bb75655f3e33f3fdb5 @@ -4221,6 +4329,18 @@ browserlist@latest: languageName: node linkType: hard +"get-intrinsic@npm:^1.2.0, get-intrinsic@npm:^1.2.1": + version: 1.2.1 + resolution: "get-intrinsic@npm:1.2.1" + dependencies: + function-bind: ^1.1.1 + has: ^1.0.3 + has-proto: ^1.0.1 + has-symbols: ^1.0.3 + checksum: 5b61d88552c24b0cf6fa2d1b3bc5459d7306f699de060d76442cce49a4721f52b8c560a33ab392cf5575b7810277d54ded9d4d39a1ea61855619ebc005aa7e5f + languageName: node + linkType: hard + "get-port@npm:^4.2.0": version: 4.2.0 resolution: "get-port@npm:4.2.0" @@ -4298,13 +4418,6 @@ browserlist@latest: languageName: node linkType: hard -"globals@npm:^11.12.0": - version: 11.12.0 - resolution: "globals@npm:11.12.0" - checksum: 67051a45eca3db904aee189dfc7cd53c20c7d881679c93f6146ddd4c9f4ab2268e68a919df740d39c71f4445d2b38ee360fc234428baea1dbdfe68bbcb46979e - languageName: node - linkType: hard - "globals@npm:^13.19.0": version: 13.19.0 resolution: "globals@npm:13.19.0" @@ -4323,6 +4436,15 @@ browserlist@latest: languageName: node linkType: hard +"globals@npm:^13.20.0": + version: 13.21.0 + resolution: "globals@npm:13.21.0" + dependencies: + type-fest: ^0.20.2 + checksum: 86c92ca8a04efd864c10852cd9abb1ebe6d447dcc72936783e66eaba1087d7dba5c9c3421a48d6ca722c319378754dbcc3f3f732dbe47592d7de908edf58a773 + languageName: node + linkType: hard + "globalthis@npm:^1.0.3": version: 1.0.3 resolution: "globalthis@npm:1.0.3" @@ -4445,9 +4567,9 @@ browserlist@latest: languageName: node linkType: hard -"html-validate@npm:8.0.5": - version: 8.0.5 - resolution: "html-validate@npm:8.0.5" +"html-validate@npm:8.2.0": + version: 8.2.0 + resolution: "html-validate@npm:8.2.0" dependencies: "@babel/code-frame": ^7.10.0 "@html-validate/stylish": ^4.1.0 @@ -4473,7 +4595,7 @@ browserlist@latest: optional: true bin: html-validate: bin/html-validate.js - checksum: 05c5255032fcbbdc6aff8c8ab245c6760eb4a03086182b669303935e968ce80b68d62d01daa11507a244f1a3f3b3ff4de236b6e0162dda53c7708015917fe486 + checksum: 793287a4549d9c12692a19b8e5e8de64f745c99300c698488c97ec46cee12261fa27e7ea4e3aa951d42a13642fe74aa63b21b2c5ec3faeee41e0aad92857b255 languageName: node linkType: hard @@ -4613,7 +4735,7 @@ browserlist@latest: languageName: node linkType: hard -"import-fresh@npm:^3.0.0, import-fresh@npm:^3.2.1": +"import-fresh@npm:^3.2.1": version: 3.3.0 resolution: "import-fresh@npm:3.3.0" dependencies: @@ -4672,6 +4794,17 @@ browserlist@latest: languageName: node linkType: hard +"internal-slot@npm:^1.0.5": + version: 1.0.5 + resolution: "internal-slot@npm:1.0.5" + dependencies: + get-intrinsic: ^1.2.0 + has: ^1.0.3 + side-channel: ^1.0.4 + checksum: 97e84046bf9e7574d0956bd98d7162313ce7057883b6db6c5c7b5e5f05688864b0978ba07610c726d15d66544ffe4b1050107d93f8a39ebc59b15d8b429b497a + languageName: node + linkType: hard + "internmap@npm:1 - 2": version: 2.0.3 resolution: "internmap@npm:2.0.3" @@ -4697,6 +4830,17 @@ browserlist@latest: languageName: node linkType: hard +"is-array-buffer@npm:^3.0.2": + version: 3.0.2 + resolution: "is-array-buffer@npm:3.0.2" + dependencies: + call-bind: ^1.0.2 + get-intrinsic: ^1.2.0 + is-typed-array: ^1.1.10 + checksum: dcac9dda66ff17df9cabdc58214172bf41082f956eab30bb0d86bc0fab1e44b690fc8e1f855cf2481245caf4e8a5a006a982a71ddccec84032ed41f9d8da8c14 + languageName: node + linkType: hard + "is-arrayish@npm:^0.2.1": version: 0.2.1 resolution: "is-arrayish@npm:0.2.1" @@ -4764,6 +4908,15 @@ browserlist@latest: languageName: node linkType: hard +"is-core-module@npm:^2.13.0": + version: 2.13.0 + resolution: "is-core-module@npm:2.13.0" + dependencies: + has: ^1.0.3 + checksum: 053ab101fb390bfeb2333360fd131387bed54e476b26860dc7f5a700bbf34a0ec4454f7c8c4d43e8a0030957e4b3db6e16d35e1890ea6fb654c833095e040355 + languageName: node + linkType: hard + "is-core-module@npm:^2.3.0, is-core-module@npm:^2.8.1": version: 2.9.0 resolution: "is-core-module@npm:2.9.0" @@ -4934,6 +5087,13 @@ browserlist@latest: languageName: node linkType: hard +"isarray@npm:^2.0.5": + version: 2.0.5 + resolution: "isarray@npm:2.0.5" + checksum: bd5bbe4104438c4196ba58a54650116007fa0262eccef13a4c55b2e09a5b36b59f1e75b9fcc49883dd9d4953892e6fc007eef9e9155648ceea036e184b0f930a + languageName: node + linkType: hard + "isbinaryfile@npm:^4.0.2": version: 4.0.10 resolution: "isbinaryfile@npm:4.0.10" @@ -4966,13 +5126,24 @@ browserlist@latest: languageName: node linkType: hard -"istanbul-reports@npm:^3.1.4": - version: 3.1.4 - resolution: "istanbul-reports@npm:3.1.4" +"istanbul-lib-report@npm:^3.0.1": + version: 3.0.1 + resolution: "istanbul-lib-report@npm:3.0.1" + dependencies: + istanbul-lib-coverage: ^3.0.0 + make-dir: ^4.0.0 + supports-color: ^7.1.0 + checksum: fd17a1b879e7faf9bb1dc8f80b2a16e9f5b7b8498fe6ed580a618c34df0bfe53d2abd35bf8a0a00e628fb7405462576427c7df20bbe4148d19c14b431c974b21 + languageName: node + linkType: hard + +"istanbul-reports@npm:^3.1.6": + version: 3.1.6 + resolution: "istanbul-reports@npm:3.1.6" dependencies: html-escaper: ^2.0.0 istanbul-lib-report: ^3.0.0 - checksum: 2132983355710c522f6b26808015cab9a0ee8b9f5ae0db0d3edeff40b886dd83cb670fb123cb7b32dbe59473d7c00cdde2ba6136bc0acdb20a865fccea64dfe1 + checksum: 44c4c0582f287f02341e9720997f9e82c071627e1e862895745d5f52ec72c9b9f38e1d12370015d2a71dcead794f34c7732aaef3fab80a24bc617a21c3d911d6 languageName: node linkType: hard @@ -5065,7 +5236,7 @@ browserlist@latest: languageName: node linkType: hard -"json5@npm:^1.0.1": +"json5@npm:^1.0.2": version: 1.0.2 resolution: "json5@npm:1.0.2" dependencies: @@ -5346,10 +5517,10 @@ browserlist@latest: languageName: node linkType: hard -"luxon@npm:3.3.0": - version: 3.3.0 - resolution: "luxon@npm:3.3.0" - checksum: 50cf17a0dc155c3dcacbeae8c0b7e80db425e0ba97b9cbdf12a7fc142d841ff1ab1560919f033af46240ed44e2f70c49f76e3422524c7fc8bb8d81ca47c66187 +"luxon@npm:3.4.0": + version: 3.4.0 + resolution: "luxon@npm:3.4.0" + checksum: ca9b6d0e0a8d156574b7e84014ac8e4b60d116d6d7a0fb65ef48eeb8e4415dad6350b76c5ee34f795cadf8b3f9a5fe7a6885733f561e554c50dffb0b704a840b languageName: node linkType: hard @@ -5371,6 +5542,15 @@ browserlist@latest: languageName: node linkType: hard +"make-dir@npm:^4.0.0": + version: 4.0.0 + resolution: "make-dir@npm:4.0.0" + dependencies: + semver: ^7.5.3 + checksum: bf0731a2dd3aab4db6f3de1585cea0b746bb73eb5a02e3d8d72757e376e64e6ada190b1eddcde5b2f24a81b688a9897efd5018737d05e02e2a671dda9cff8a8a + languageName: node + linkType: hard + "make-fetch-happen@npm:^10.0.3": version: 10.1.5 resolution: "make-fetch-happen@npm:10.1.5" @@ -5858,7 +6038,7 @@ browserlist@latest: languageName: node linkType: hard -"nth-check@npm:^2.0.1": +"nth-check@npm:^2.0.1, nth-check@npm:^2.1.1": version: 2.1.1 resolution: "nth-check@npm:2.1.1" dependencies: @@ -5881,7 +6061,7 @@ browserlist@latest: languageName: node linkType: hard -"object-inspect@npm:^1.12.2": +"object-inspect@npm:^1.12.2, object-inspect@npm:^1.12.3": version: 1.12.3 resolution: "object-inspect@npm:1.12.3" checksum: dabfd824d97a5f407e6d5d24810d888859f6be394d8b733a77442b277e0808860555176719c5905e765e3743a7cada6b8b0a3b85e5331c530fd418cc8ae991db @@ -5914,6 +6094,29 @@ browserlist@latest: languageName: node linkType: hard +"object.fromentries@npm:^2.0.6": + version: 2.0.6 + resolution: "object.fromentries@npm:2.0.6" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + checksum: 453c6d694180c0c30df451b60eaf27a5b9bca3fb43c37908fd2b78af895803dc631242bcf05582173afa40d8d0e9c96e16e8874b39471aa53f3ac1f98a085d85 + languageName: node + linkType: hard + +"object.groupby@npm:^1.0.0": + version: 1.0.0 + resolution: "object.groupby@npm:1.0.0" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.2.0 + es-abstract: ^1.21.2 + get-intrinsic: ^1.2.1 + checksum: 64b00b287d57580111c958e7ff375c9b61811fa356f2cf0d35372d43cab61965701f00fac66c19fd8f49c4dfa28744bee6822379c69a73648ad03e09fcdeae70 + languageName: node + linkType: hard + "object.values@npm:^1.1.6": version: 1.1.6 resolution: "object.values@npm:1.1.6" @@ -5943,17 +6146,17 @@ browserlist@latest: languageName: node linkType: hard -"optionator@npm:^0.9.1": - version: 0.9.1 - resolution: "optionator@npm:0.9.1" +"optionator@npm:^0.9.3": + version: 0.9.3 + resolution: "optionator@npm:0.9.3" dependencies: + "@aashutoshrathi/word-wrap": ^1.2.3 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 - checksum: dbc6fa065604b24ea57d734261914e697bd73b69eff7f18e967e8912aa2a40a19a9f599a507fa805be6c13c24c4eae8c71306c239d517d42d4c041c942f508a0 + checksum: 09281999441f2fe9c33a5eeab76700795365a061563d66b098923eb719251a42bdbe432790d35064d0816ead9296dbeb1ad51a733edf4167c96bd5d0882e428a languageName: node linkType: hard @@ -5998,27 +6201,27 @@ browserlist@latest: languageName: node linkType: hard -"parcel@npm:2.9.2": - version: 2.9.2 - resolution: "parcel@npm:2.9.2" +"parcel@npm:2.9.3": + version: 2.9.3 + resolution: "parcel@npm:2.9.3" dependencies: - "@parcel/config-default": 2.9.2 - "@parcel/core": 2.9.2 - "@parcel/diagnostic": 2.9.2 - "@parcel/events": 2.9.2 - "@parcel/fs": 2.9.2 - "@parcel/logger": 2.9.2 - "@parcel/package-manager": 2.9.2 - "@parcel/reporter-cli": 2.9.2 - "@parcel/reporter-dev-server": 2.9.2 - "@parcel/reporter-tracer": 2.9.2 - "@parcel/utils": 2.9.2 + "@parcel/config-default": 2.9.3 + "@parcel/core": 2.9.3 + "@parcel/diagnostic": 2.9.3 + "@parcel/events": 2.9.3 + "@parcel/fs": 2.9.3 + "@parcel/logger": 2.9.3 + "@parcel/package-manager": 2.9.3 + "@parcel/reporter-cli": 2.9.3 + "@parcel/reporter-dev-server": 2.9.3 + "@parcel/reporter-tracer": 2.9.3 + "@parcel/utils": 2.9.3 chalk: ^4.1.0 commander: ^7.0.0 get-port: ^4.2.0 bin: parcel: lib/bin.js - checksum: bd16d671044301535e2032054d1b3831f24f876312c905fe20eecfbb08208b6a3d8aa41808903c9c5b91878d650633f76b5102c20547c34d0412e6ec3ced9ded + checksum: d9b9c0083f49ecb7e35f3da0322fa71912158a847463e877bfa7f170063f3d66a8d57dd5b3f5b69a86ccce6ef07c7a70504b1191bbd477f0c908071516d13749 languageName: node linkType: hard @@ -6118,9 +6321,9 @@ browserlist@latest: languageName: node linkType: hard -"pinia@npm:2.1.4": - version: 2.1.4 - resolution: "pinia@npm:2.1.4" +"pinia@npm:2.1.6": + version: 2.1.6 + resolution: "pinia@npm:2.1.6" dependencies: "@vue/devtools-api": ^6.5.0 vue-demi: ">=0.14.5" @@ -6133,17 +6336,17 @@ browserlist@latest: optional: true typescript: optional: true - checksum: 5285b1415e6c88698d41393e9144dfd0fbbb7f88cdc90637f6bf3526046c1f171befe01b2b063e9f6004f16b6c8dc1ed3ae9b2434ccf69403fec291215f0e1e3 + checksum: 4e881e590c4f6ec9c2dc6174cf7ecc71a48bff1f3a5be878669b3b2fd32994fa64c3cbf499d138bc4e0f222ac6ad1d07935b0a592791acdaf8c9f2a12c98f042 languageName: node linkType: hard -"postcss-selector-parser@npm:^6.0.9": - version: 6.0.10 - resolution: "postcss-selector-parser@npm:6.0.10" +"postcss-selector-parser@npm:^6.0.13": + version: 6.0.13 + resolution: "postcss-selector-parser@npm:6.0.13" dependencies: cssesc: ^3.0.0 util-deprecate: ^1.0.2 - checksum: 46afaa60e3d1998bd7adf6caa374baf857cc58d3ff944e29459c9a9e4680a7fe41597bd5b755fc81d7c388357e9bf67c0251d047c640a09f148e13606b8a8608 + checksum: f89163338a1ce3b8ece8e9055cd5a3165e79a15e1c408e18de5ad8f87796b61ec2d48a2902d179ae0c4b5de10fccd3a325a4e660596549b040bc5ad1b465f096 languageName: node linkType: hard @@ -6165,14 +6368,14 @@ browserlist@latest: languageName: node linkType: hard -"postcss@npm:^8.4.23": - version: 8.4.23 - resolution: "postcss@npm:8.4.23" +"postcss@npm:^8.4.27": + version: 8.4.27 + resolution: "postcss@npm:8.4.27" dependencies: nanoid: ^3.3.6 picocolors: ^1.0.0 source-map-js: ^1.0.2 - checksum: 8bb9d1b2ea6e694f8987d4f18c94617971b2b8d141602725fedcc2222fdc413b776a6e1b969a25d627d7b2681ca5aabb56f59e727ef94072e1b6ac8412105a2f + checksum: 1cdd0c298849df6cd65f7e646a3ba36870a37b65f55fd59d1a165539c263e9b4872a402bf4ed1ca1bc31f58b68b2835545e33ea1a23b161a1f8aa6d5ded81e78 languageName: node linkType: hard @@ -6463,6 +6666,17 @@ browserlist@latest: languageName: node linkType: hard +"regexp.prototype.flags@npm:^1.5.0": + version: 1.5.0 + resolution: "regexp.prototype.flags@npm:1.5.0" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.2.0 + functions-have-names: ^1.2.3 + checksum: c541687cdbdfff1b9a07f6e44879f82c66bbf07665f9a7544c5fd16acdb3ec8d1436caab01662d2fbcad403f3499d49ab0b77fbc7ef29ef961d98cc4bc9755b4 + languageName: node + linkType: hard + "regexpp@npm:^3.0.0": version: 3.2.0 resolution: "regexpp@npm:3.2.0" @@ -6601,9 +6815,9 @@ browserlist@latest: languageName: node linkType: hard -"rollup@npm:^3.21.0": - version: 3.21.6 - resolution: "rollup@npm:3.21.6" +"rollup@npm:^3.27.1": + version: 3.28.0 + resolution: "rollup@npm:3.28.0" dependencies: fsevents: ~2.3.2 dependenciesMeta: @@ -6611,7 +6825,7 @@ browserlist@latest: optional: true bin: rollup: dist/bin/rollup - checksum: bb6786ee0d755f253d3aa3820b05806a482abe9c9fd6dad14df83b386a370d48af20c4be66f732a15b5e89c0ae6269a7b82736b64f34ae61552c58de0eecedeb + checksum: 6ded4a0d3ca531d68e82897d5eebaa9d085014a062620bc328f2859ccf78d6a148a51ed53f1275a5f89b55cc6d7b1440b7cee44e5a9e3a51442f809b4b26f727 languageName: node linkType: hard @@ -6628,31 +6842,31 @@ browserlist@latest: "@fullcalendar/luxon3": 6.1.8 "@fullcalendar/timegrid": 6.1.8 "@fullcalendar/vue3": 6.1.8 - "@parcel/optimizer-data-url": 2.9.2 - "@parcel/transformer-inline-string": 2.9.2 - "@parcel/transformer-sass": 2.9.2 + "@parcel/optimizer-data-url": 2.9.3 + "@parcel/transformer-inline-string": 2.9.3 + "@parcel/transformer-sass": 2.9.3 "@popperjs/core": 2.11.8 - "@rollup/pluginutils": 5.0.2 + "@rollup/pluginutils": 5.0.3 "@twuni/emojify": 1.0.2 - "@vitejs/plugin-vue": 4.2.3 - bootstrap: 5.2.3 + "@vitejs/plugin-vue": 4.3.3 + bootstrap: 5.3.0 bootstrap-icons: 1.10.5 browser-fs-access: 0.34.1 browserlist: latest - c8: 8.0.0 - caniuse-lite: 1.0.30001495 + c8: 8.0.1 + caniuse-lite: 1.0.30001519 d3: 7.8.5 - eslint: 8.43.0 + eslint: 8.47.0 eslint-config-standard: 17.1.0 - eslint-plugin-cypress: 2.13.3 - eslint-plugin-import: 2.27.5 + eslint-plugin-cypress: 2.14.0 + eslint-plugin-import: 2.28.1 eslint-plugin-n: 16.0.1 eslint-plugin-node: 11.1.0 eslint-plugin-promise: 6.1.1 - eslint-plugin-vue: 9.15.1 + eslint-plugin-vue: 9.17.0 file-saver: 2.0.5 highcharts: 11.1.0 - html-validate: 8.0.5 + html-validate: 8.2.0 ical.js: 1.5.0 jquery: 3.7.0 jquery-migrate: 3.4.1 @@ -6660,17 +6874,17 @@ browserlist@latest: list.js: 2.3.1 lodash: 4.17.21 lodash-es: 4.17.21 - luxon: 3.3.0 + luxon: 3.4.0 moment: 2.29.4 moment-timezone: 0.5.43 ms: 2.1.3 murmurhash-js: 1.0.0 naive-ui: 2.34.4 - parcel: 2.9.2 - pinia: 2.1.4 + parcel: 2.9.3 + pinia: 2.1.6 pinia-plugin-persist: 1.0.0 pug: 3.0.2 - sass: 1.63.4 + sass: 1.66.1 seedrandom: 3.0.5 select2: 4.1.0-rc.0 select2-bootstrap-5-theme: 1.3.0 @@ -6678,10 +6892,10 @@ browserlist@latest: shepherd.js: 11.1.1 slugify: 1.6.6 sortablejs: 1.15.0 - vanillajs-datepicker: 1.3.3 - vite: 4.3.9 + vanillajs-datepicker: 1.3.4 + vite: 4.4.9 vue: 3.3.4 - vue-router: 4.2.2 + vue-router: 4.2.4 zxcvbn: 4.4.2 languageName: unknown linkType: soft @@ -6702,6 +6916,18 @@ browserlist@latest: languageName: node linkType: hard +"safe-array-concat@npm:^1.0.0": + version: 1.0.0 + resolution: "safe-array-concat@npm:1.0.0" + dependencies: + call-bind: ^1.0.2 + get-intrinsic: ^1.2.0 + has-symbols: ^1.0.3 + isarray: ^2.0.5 + checksum: f43cb98fe3b566327d0c09284de2b15fb85ae964a89495c1b1a5d50c7c8ed484190f4e5e71aacc167e16231940079b326f2c0807aea633d47cc7322f40a6b57f + languageName: node + linkType: hard + "safe-buffer@npm:^5.0.1, safe-buffer@npm:~5.2.0": version: 5.2.1 resolution: "safe-buffer@npm:5.2.1" @@ -6734,16 +6960,16 @@ browserlist@latest: languageName: node linkType: hard -"sass@npm:1.63.4": - version: 1.63.4 - resolution: "sass@npm:1.63.4" +"sass@npm:1.66.1": + version: 1.66.1 + resolution: "sass@npm:1.66.1" dependencies: chokidar: ">=3.0.0 <4.0.0" immutable: ^4.0.0 source-map-js: ">=0.6.2 <2.0.0" bin: sass: sass.js - checksum: 12bde5beff85a7018157d90c8b9d5aec8b56832f89fcfeca146f10936eecf97e669d22fd41f812b3407ed259bbb114d69c9ecbfc7ee9b15308211fb910cdf5eb + checksum: 74fc11d0fcd5e16c5331b57dd59865705a299c64e89f2b99646869caeb011dc8d0b6144a6c74a90c264e9ef70654207dbf44fc9b7e3393f8bd14809b904c8a52 languageName: node linkType: hard @@ -6790,7 +7016,7 @@ browserlist@latest: languageName: node linkType: hard -"semver@npm:^5.7.0, semver@npm:^5.7.1": +"semver@npm:^5.7.1": version: 5.7.1 resolution: "semver@npm:5.7.1" bin: @@ -6808,6 +7034,15 @@ browserlist@latest: languageName: node linkType: hard +"semver@npm:^6.3.1": + version: 6.3.1 + resolution: "semver@npm:6.3.1" + bin: + semver: bin/semver.js + checksum: ae47d06de28836adb9d3e25f22a92943477371292d9b665fb023fae278d345d508ca1958232af086d85e0155aee22e313e100971898bbb8d5d89b8b1d4054ca2 + languageName: node + linkType: hard + "semver@npm:^7.0.0, semver@npm:^7.3.5, semver@npm:^7.3.6": version: 7.3.7 resolution: "semver@npm:7.3.7" @@ -6819,6 +7054,17 @@ browserlist@latest: languageName: node linkType: hard +"semver@npm:^7.5.2, semver@npm:^7.5.4": + version: 7.5.4 + resolution: "semver@npm:7.5.4" + dependencies: + lru-cache: ^6.0.0 + bin: + semver: bin/semver.js + checksum: 12d8ad952fa353b0995bf180cdac205a4068b759a140e5d3c608317098b3575ac2f1e09182206bf2eb26120e1c0ed8fb92c48c592f6099680de56bb071423ca3 + languageName: node + linkType: hard + "semver@npm:^7.5.3": version: 7.5.3 resolution: "semver@npm:7.5.3" @@ -7038,6 +7284,17 @@ browserlist@latest: languageName: node linkType: hard +"string.prototype.trim@npm:^1.2.7": + version: 1.2.7 + resolution: "string.prototype.trim@npm:1.2.7" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + checksum: 05b7b2d6af63648e70e44c4a8d10d8cc457536df78b55b9d6230918bde75c5987f6b8604438c4c8652eb55e4fc9725d2912789eb4ec457d6995f3495af190c09 + languageName: node + linkType: hard + "string.prototype.trimend@npm:^1.0.6": version: 1.0.6 resolution: "string.prototype.trimend@npm:1.0.6" @@ -7094,7 +7351,7 @@ browserlist@latest: languageName: node linkType: hard -"strip-json-comments@npm:^3.1.0, strip-json-comments@npm:^3.1.1": +"strip-json-comments@npm:^3.1.1": version: 3.1.1 resolution: "strip-json-comments@npm:3.1.1" checksum: 492f73e27268f9b1c122733f28ecb0e7e8d8a531a6662efbd08e22cccb3f9475e90a1b82cab06a392f6afae6d2de636f977e231296400d0ec5304ba70f166443 @@ -7226,15 +7483,15 @@ browserlist@latest: languageName: node linkType: hard -"tsconfig-paths@npm:^3.14.1": - version: 3.14.1 - resolution: "tsconfig-paths@npm:3.14.1" +"tsconfig-paths@npm:^3.14.2": + version: 3.14.2 + resolution: "tsconfig-paths@npm:3.14.2" dependencies: "@types/json5": ^0.0.29 - json5: ^1.0.1 + json5: ^1.0.2 minimist: ^1.2.6 strip-bom: ^3.0.0 - checksum: 8afa01c673ebb4782ba53d3a12df97fa837ce524f8ad38ee4e2b2fd57f5ac79abc21c574e9e9eb014d93efe7fe8214001b96233b5c6ea75bd1ea82afe17a4c6d + checksum: a6162eaa1aed680537f93621b82399c7856afd10ec299867b13a0675e981acac4e0ec00896860480efc59fc10fd0b16fdc928c0b885865b52be62cadac692447 languageName: node linkType: hard @@ -7261,6 +7518,42 @@ browserlist@latest: languageName: node linkType: hard +"typed-array-buffer@npm:^1.0.0": + version: 1.0.0 + resolution: "typed-array-buffer@npm:1.0.0" + dependencies: + call-bind: ^1.0.2 + get-intrinsic: ^1.2.1 + is-typed-array: ^1.1.10 + checksum: 3e0281c79b2a40cd97fe715db803884301993f4e8c18e8d79d75fd18f796e8cd203310fec8c7fdb5e6c09bedf0af4f6ab8b75eb3d3a85da69328f28a80456bd3 + languageName: node + linkType: hard + +"typed-array-byte-length@npm:^1.0.0": + version: 1.0.0 + resolution: "typed-array-byte-length@npm:1.0.0" + dependencies: + call-bind: ^1.0.2 + for-each: ^0.3.3 + has-proto: ^1.0.1 + is-typed-array: ^1.1.10 + checksum: b03db16458322b263d87a702ff25388293f1356326c8a678d7515767ef563ef80e1e67ce648b821ec13178dd628eb2afdc19f97001ceae7a31acf674c849af94 + languageName: node + linkType: hard + +"typed-array-byte-offset@npm:^1.0.0": + version: 1.0.0 + resolution: "typed-array-byte-offset@npm:1.0.0" + dependencies: + available-typed-arrays: ^1.0.5 + call-bind: ^1.0.2 + for-each: ^0.3.3 + has-proto: ^1.0.1 + is-typed-array: ^1.1.10 + checksum: 04f6f02d0e9a948a95fbfe0d5a70b002191fae0b8fe0fe3130a9b2336f043daf7a3dda56a31333c35a067a97e13f539949ab261ca0f3692c41603a46a94e960b + languageName: node + linkType: hard + "typed-array-length@npm:^1.0.4": version: 1.0.4 resolution: "typed-array-length@npm:1.0.4" @@ -7336,10 +7629,10 @@ browserlist@latest: languageName: node linkType: hard -"vanillajs-datepicker@npm:1.3.3": - version: 1.3.3 - resolution: "vanillajs-datepicker@npm:1.3.3" - checksum: be830750a5998f2525356558331e907c7628ec57e665282909fc642680e6fda0e69ad15975b78fcf4715425109175393537d8f82aa9acee02fa0cb485ea0231c +"vanillajs-datepicker@npm:1.3.4": + version: 1.3.4 + resolution: "vanillajs-datepicker@npm:1.3.4" + checksum: 830958f8af5c586ee81ba2b75a76771db425d4eddb68ec08d1b49ac898674376ef3517a0d40eefaf4926a815c23179c54e1637d7327df090f22cdb98056074cf languageName: node linkType: hard @@ -7354,17 +7647,18 @@ browserlist@latest: languageName: node linkType: hard -"vite@npm:4.3.9": - version: 4.3.9 - resolution: "vite@npm:4.3.9" +"vite@npm:4.4.9": + version: 4.4.9 + resolution: "vite@npm:4.4.9" dependencies: - esbuild: ^0.17.5 + esbuild: ^0.18.10 fsevents: ~2.3.2 - postcss: ^8.4.23 - rollup: ^3.21.0 + postcss: ^8.4.27 + rollup: ^3.27.1 peerDependencies: "@types/node": ">= 14" less: "*" + lightningcss: ^1.21.0 sass: "*" stylus: "*" sugarss: "*" @@ -7377,6 +7671,8 @@ browserlist@latest: optional: true less: optional: true + lightningcss: + optional: true sass: optional: true stylus: @@ -7387,7 +7683,7 @@ browserlist@latest: optional: true bin: vite: bin/vite.js - checksum: 8c45a516278d1e0425fac00c0877336790f71484a851a318346a70e0d2aef9f3b9651deb2f9f002c791ceb920eda7d6a3cda753bdefd657321c99f448b02dd25 + checksum: c511024ceae39c68c7dbf2ac4381ee655cd7bb62cf43867a14798bc835d3320b8fa7867a336143c30825c191c1fb4e9aa3348fce831ab617e96203080d3d2908 languageName: node linkType: hard @@ -7441,9 +7737,9 @@ browserlist@latest: languageName: node linkType: hard -"vue-eslint-parser@npm:^9.3.0": - version: 9.3.0 - resolution: "vue-eslint-parser@npm:9.3.0" +"vue-eslint-parser@npm:^9.3.1": + version: 9.3.1 + resolution: "vue-eslint-parser@npm:9.3.1" dependencies: debug: ^4.3.4 eslint-scope: ^7.1.1 @@ -7454,18 +7750,18 @@ browserlist@latest: semver: ^7.3.6 peerDependencies: eslint: ">=6.0.0" - checksum: 9bdf375655c405f49a6e46e20127e42e2cb03ec63e811baf9798da7b881769653bb56aba7007d7e6584b8b22c14f0ffbdaf8fa3a902bd52ce9ff947b78e55188 + checksum: 6d1476b45fcc5b456a1e5c0f33ec695cf1d392ca6113250d5e3441e6cf3b2a0ec28a9455699363641dfb7c48358f215db07856c98385a31ace9bc58196f4156e languageName: node linkType: hard -"vue-router@npm:4.2.2": - version: 4.2.2 - resolution: "vue-router@npm:4.2.2" +"vue-router@npm:4.2.4": + version: 4.2.4 + resolution: "vue-router@npm:4.2.4" dependencies: "@vue/devtools-api": ^6.5.0 peerDependencies: vue: ^3.2.0 - checksum: 4181b3776a57e51060490b7bcd82f48891d5023587e5ffb54cf47c1f6b03dd2d20f5392b99c9e659821fb7b3fee84da2dc532022dae92d8545e67fe96a168d64 + checksum: 9fe1fc11b613c8e020aad5d0850ba5caa971033dfaa4fc117e4595349f2c5f211793a247c30e3c03b0f91c3512b87af929af96b8b20b6b7d4cdccc5af13e5e7f languageName: node linkType: hard @@ -7519,6 +7815,19 @@ browserlist@latest: languageName: node linkType: hard +"which-typed-array@npm:^1.1.10": + version: 1.1.11 + resolution: "which-typed-array@npm:1.1.11" + 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 + checksum: 711ffc8ef891ca6597b19539075ec3e08bb9b4c2ca1f78887e3c07a977ab91ac1421940505a197758fb5939aa9524976d0a5bbcac34d07ed6faa75cedbb17206 + languageName: node + linkType: hard + "which-typed-array@npm:^1.1.9": version: 1.1.9 resolution: "which-typed-array@npm:1.1.9" @@ -7565,13 +7874,6 @@ browserlist@latest: languageName: node linkType: hard -"word-wrap@npm:^1.2.3": - version: 1.2.3 - resolution: "word-wrap@npm:1.2.3" - checksum: 30b48f91fcf12106ed3186ae4fa86a6a1842416df425be7b60485de14bec665a54a68e4b5156647dec3a70f25e84d270ca8bc8cd23182ed095f5c7206a938c1f - languageName: node - linkType: hard - "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0, wrap-ansi@npm:^7.0.0": version: 7.0.0 resolution: "wrap-ansi@npm:7.0.0" @@ -7636,25 +7938,25 @@ browserlist@latest: languageName: node linkType: hard -"yargs-parser@npm:^20.2.2, yargs-parser@npm:^20.2.9": - version: 20.2.9 - resolution: "yargs-parser@npm:20.2.9" - checksum: 8bb69015f2b0ff9e17b2c8e6bfe224ab463dd00ca211eece72a4cd8a906224d2703fb8a326d36fdd0e68701e201b2a60ed7cf81ce0fd9b3799f9fe7745977ae3 +"yargs-parser@npm:^21.1.1": + version: 21.1.1 + resolution: "yargs-parser@npm:21.1.1" + checksum: ed2d96a616a9e3e1cc7d204c62ecc61f7aaab633dcbfab2c6df50f7f87b393993fe6640d017759fe112d0cb1e0119f2b4150a87305cc873fd90831c6a58ccf1c languageName: node linkType: hard -"yargs@npm:^16.2.0": - version: 16.2.0 - resolution: "yargs@npm:16.2.0" +"yargs@npm:^17.7.2": + version: 17.7.2 + resolution: "yargs@npm:17.7.2" dependencies: - cliui: ^7.0.2 + cliui: ^8.0.1 escalade: ^3.1.1 get-caller-file: ^2.0.5 require-directory: ^2.1.1 - string-width: ^4.2.0 + string-width: ^4.2.3 y18n: ^5.0.5 - yargs-parser: ^20.2.2 - checksum: b14afbb51e3251a204d81937c86a7e9d4bdbf9a2bcee38226c900d00f522969ab675703bee2a6f99f8e20103f608382936034e64d921b74df82b63c07c5e8f59 + yargs-parser: ^21.1.1 + checksum: 73b572e863aa4a8cbef323dd911d79d193b772defd5a51aab0aca2d446655216f5002c42c5306033968193bdbf892a7a4c110b0d77954a7fdf563e653967b56a languageName: node linkType: hard